/* Viaxa · tema cinematográfico oscuro */
:root {
  --bg: #0d0908; --panel: #17100e; --line: #2a1e1a;
  --ink: #f5eddf; --muted: #b7a898;
  --wine: #8e1626; --gold: #d6ae5a; --gold-deep: #b98d35;
  --serif: "Bodoni Moda", "Didot", Georgia, serif;
  --sans: "Manrope", system-ui, sans-serif;
  --m: clamp(20px, 4vw, 64px);
  --gap: clamp(96px, 11vw, 180px);
  --ease: cubic-bezier(.16, 1, .3, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; background: var(--bg); color-scheme: dark; }
@media (pointer: fine) { html { overscroll-behavior: none; } }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 clamp(16px, 1.15vw, 18px)/1.6 var(--sans); -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, video { display: block; max-width: 100%; }
a { color: inherit; }
p { margin: 0; }
h1, h2, h3 { margin: 0; font-family: var(--serif); font-weight: 500; line-height: 1; letter-spacing: -.02em; }
h2 { font-size: clamp(40px, 5.6vw, 96px); }
h1, h2, h3 { text-wrap: balance; }
section[id] { scroll-margin-top: 80px; }
a, button, input, select, label { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.skip { position: fixed; left: 16px; top: -60px; z-index: 300; padding: 12px 18px; border-radius: 8px; background: var(--gold); color: #1b120b; font-weight: 600; text-decoration: none; transition: top .3s; }
.skip:focus { top: 16px; }
em { font-style: italic; color: var(--gold); }
::selection { background: var(--gold); color: var(--bg); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Botones */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 50px; padding: 0 26px; border: 0; border-radius: 999px; font: 600 15px/1 var(--sans); text-decoration: none; cursor: pointer; transition: transform .4s var(--ease), background-color .3s; }
.btn--gold { background: var(--gold); color: #1b120b; }
.btn--gold:hover { background: #e6c373; }
.btn--ghost { background: rgba(245,237,223,.14); color: var(--ink); }
.btn--ghost:hover { background: rgba(245,237,223,.24); }
.btn--lg { min-height: 58px; padding: 0 32px; font-size: 16px; }
.btn--block { width: 100%; }
.btn:active { transform: scale(.97); }
.arrow { position: relative; width: 18px; height: 2px; background: currentColor; transition: transform .4s var(--ease); }
.arrow::after { content: ""; position: absolute; right: 0; top: -4px; width: 8px; height: 8px; border: solid currentColor; border-width: 2px 2px 0 0; transform: rotate(45deg); }
.btn:hover .arrow { transform: translateX(5px); }

/* Precarga */
.preloader { position: fixed; inset: 0; z-index: 200; display: grid; place-content: center; justify-items: center; gap: 18px; background: var(--bg); animation: pre-failsafe .6s 10s forwards; }
@keyframes pre-failsafe { to { opacity: 0; visibility: hidden; } }
.no-js .preloader { display: none; }
.preloader__logo { width: min(260px, 56vw); height: auto; }
.preloader__count { font: 500 clamp(80px, 12vw, 180px)/1 var(--serif); font-variant-numeric: tabular-nums; }
.preloader__bar { width: min(320px, 64vw); height: 4px; border-radius: 4px; background: var(--line); overflow: hidden; }
.preloader__bar i { display: block; height: 100%; background: var(--gold); transform: scaleX(0); transform-origin: left; }
.preloader__note { font-size: 14px; color: var(--muted); }

/* Grano de película y barra de progreso */
.grain { position: fixed; inset: -50%; z-index: 90; pointer-events: none; opacity: .07; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); animation: grain 1.2s steps(6) infinite; }
@keyframes grain { 0% { transform: translate(0,0); } 20% { transform: translate(-3%,2%); } 40% { transform: translate(2%,-4%); } 60% { transform: translate(-2%,3%); } 80% { transform: translate(3%,1%); } 100% { transform: translate(0,0); } }
.progress { position: fixed; inset: 0 0 auto; z-index: 95; height: 3px; }
.progress i { display: block; height: 100%; background: var(--gold); transform: scaleX(0); transform-origin: left; }

/* Navegación */
.nav { position: fixed; inset: 0 0 auto; z-index: 80; display: flex; align-items: center; gap: 36px; padding: max(18px, env(safe-area-inset-top)) max(var(--m), env(safe-area-inset-right)) 18px max(var(--m), env(safe-area-inset-left)); transition: transform .5s var(--ease), background-color .4s; }
.nav.is-solid { background: rgba(13, 9, 8, .86); }
.nav.is-hidden { transform: translateY(-100%); }
.nav__brand { margin-right: auto; }
.nav__brand img { width: 150px; height: auto; }
.nav__links { display: flex; gap: 34px; }
.nav__links a { font: 500 15px var(--sans); text-decoration: none; opacity: .86; transition: opacity .3s, color .3s; }
.nav__links a:hover { opacity: 1; color: var(--gold); }
.nav__toggle { display: none; }
.menu { position: fixed; inset: 0; z-index: 70; background: var(--bg); padding: 120px var(--m) 40px; display: flex; flex-direction: column; justify-content: space-between; }
.menu[hidden] { display: none; }
.menu nav { display: grid; gap: 6px; }
.menu nav a { font: 500 clamp(40px, 11vw, 64px)/1.1 var(--serif); text-decoration: none; }
.menu p { color: var(--muted); }
.menu p a { color: var(--gold); }

/* Hero */
.film { position: relative; background: #000; }
.film__pin { position: relative; height: 100svh; min-height: 620px; overflow: hidden; }
.film--scrub { height: 640svh; }
.film--scrub .film__pin { position: sticky; top: 0; }
.film__media { position: absolute; inset: 0; overflow: hidden; }
.film__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,9,8,.8) 0%, rgba(13,9,8,.3) 46%, rgba(13,9,8,0) 70%), linear-gradient(0deg, rgba(13,9,8,.85) 0%, rgba(13,9,8,0) 42%); } /* taste-skill-ignore: oscurecimiento sobre foto para leer el texto */
.hero__poster, .film__canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 50%; }
.film__canvas { opacity: 0; transition: opacity .8s var(--ease); }
.film__canvas.is-ready { opacity: 1; }
.film__chs { position: absolute; inset: 0; z-index: 2; display: grid; align-items: end; padding: 0 var(--m) 118px; pointer-events: none; }
.film__ch { min-width: 0; }
.film__ch h2 { font-size: clamp(40px, 5.6vw, 100px); line-height: .95; letter-spacing: -.035em; margin-bottom: 22px; }
.film__lead { max-width: 44ch; font-size: clamp(17px, 1.4vw, 21px); }
.film__ch .specs { margin-top: 22px; }
.film__ch .btn { margin-top: 26px; }
.film__still { display: none; }
.film--scrub .film__ch { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(22px); transition: opacity .45s var(--ease), transform .45s var(--ease), visibility 0s .45s; }
.film--scrub .film__ch.is-active { opacity: 1; visibility: visible; transform: none; pointer-events: auto; transition: opacity .7s var(--ease), transform .7s var(--ease); }
.film__nav { position: absolute; z-index: 3; left: var(--m); bottom: 36px; display: flex; gap: 8px; }
.film__nav button { border: 0; border-radius: 999px; background: rgba(245,237,223,.14); padding: 10px 16px; cursor: pointer; color: var(--ink); font: 600 14px var(--sans); white-space: nowrap; transition: color .3s, background-color .3s; }
.film__nav button:hover { background: rgba(245,237,223,.26); }
.film__nav button.is-active { background: var(--gold); color: #1b120b; }
.film .hero__meta { transition: opacity .4s; }
.film .hero__meta.is-off { opacity: 0 !important; }
.film:not(.film--scrub) .film__pin { height: auto; overflow: visible; }
.film:not(.film--scrub) .film__media { height: 100svh; }
.film:not(.film--scrub) .film__chs { position: static; display: block; padding: 0; pointer-events: auto; }
.film:not(.film--scrub) .film__ch { position: relative; isolation: isolate; min-height: 100svh; display: grid; align-content: end; justify-items: start; padding: 120px var(--m) 72px; }
.film:not(.film--scrub) .film__still { display: block; position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; filter: brightness(.55); }
.film:not(.film--scrub) .film__nav, .film:not(.film--scrub) .hero__meta { display: none; }
.hero__content { position: relative; z-index: 2; width: 100%; }
.hero__kicker { font-size: 14px; letter-spacing: .04em; color: var(--gold); margin-bottom: 22px; }
.hero__title { font-size: clamp(52px, 7.2vw, 132px); line-height: .92; letter-spacing: -.04em; }
.hero__title .line { display: block; overflow: hidden; padding-bottom: .1em; margin-bottom: -.1em; }
.hero__title .line > span { display: block; }
.hero__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-top: 34px; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__lead { max-width: 44ch; font-size: clamp(17px, 1.4vw, 21px); }
.hero__meta { position: absolute; z-index: 2; right: var(--m); top: 50%; display: grid; justify-items: center; gap: 18px; translate: 0 -50%; font-size: 13px; }
.hero__meta span { writing-mode: vertical-rl; letter-spacing: .08em; }
.hero__scroll { color: var(--muted); }

/* Manifiesto */
.manifesto { padding: var(--gap) var(--m); }
.manifesto__text { max-width: 22ch; font: 500 clamp(34px, 5vw, 84px)/1.08 var(--serif); letter-spacing: -.02em; max-width: 1280px; }
.manifesto__text .w { opacity: .16; transition: opacity .3s; }
.manifesto__text .w.on { opacity: 1; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin: clamp(56px, 7vw, 110px) 0 0; }
.stats dt { font-size: 14px; color: var(--muted); }
.stats dd { margin: 8px 0 0; font: 500 clamp(26px, 2.8vw, 44px)/1.05 var(--serif); color: var(--gold); }

/* Flota Irizar PB: estudio oscuro, el autobús al centro */
.fleet { position: relative; padding: var(--gap) var(--m); background: #1a1210; overflow: hidden; }
.fleet__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: end; }
.fleet__head p { max-width: 46ch; justify-self: end; color: var(--muted); font-size: clamp(17px, 1.3vw, 20px); }
.fleet__stage { position: relative; height: clamp(240px, 32vw, 540px); margin-top: clamp(32px, 5vw, 72px); display: grid; align-items: end; justify-items: center; }
.fleet__ghost { position: absolute; left: 0; right: 0; bottom: 6%; margin: 0; text-align: center; font: 500 clamp(180px, 30vw, 500px)/.8 var(--serif); letter-spacing: -.05em; color: rgba(214,174,90,.09); pointer-events: none; font-variant-numeric: tabular-nums; }
.fleet__bus { position: relative; width: min(1180px, 94%); margin-bottom: 1px; will-change: transform; }
.fleet__bus::before { content: ""; position: absolute; left: 6%; right: 6%; bottom: -10px; height: 26px; border-radius: 50%; background: radial-gradient(closest-side, rgba(0,0,0,.8), rgba(0,0,0,0)); } /* taste-skill-ignore: sombra de contacto del autobús con el piso */
.fleet__bus img { position: relative; display: block; width: 100%; height: auto; }
.fleet__tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 44px; }
.fleet__tabs button { padding: 12px 20px; border-radius: 999px; border: 0; cursor: pointer; background: #2a1d19; color: var(--ink); font: 600 14px var(--sans); transition: background-color .3s, color .3s; }
.fleet__tabs button:hover { background: #3a2822; }
.fleet__tabs button[aria-selected="true"] { background: var(--gold); color: #1b120b; }
.fleet__specs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 48px 0 0; }
.fleet__specs dt { font-size: 14px; color: var(--muted); }
.fleet__specs dd { margin: 6px 0 0; font: 500 clamp(24px, 2.4vw, 40px)/1.1 var(--serif); color: var(--gold); font-variant-numeric: tabular-nums; }
.fleet__detail { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: stretch; margin: clamp(56px, 7vw, 112px) 0 0; border-radius: 8px; overflow: hidden; background: #241a16; }
.fleet__detail img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: 50% 60%; }
.fleet__detail figcaption { display: grid; align-content: center; gap: 28px; padding: clamp(32px, 4.4vw, 72px); }
.fleet__detail h3 { font-size: clamp(34px, 3.4vw, 56px); line-height: 1; margin: 0; }
.fleet__detail ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fleet__detail li { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-radius: 6px; background: #30231d; color: var(--ink); font-size: clamp(15px, 1.1vw, 18px); line-height: 1.35; }
.fleet__detail li::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }

/* Ruedas: cada rin es un círculo que gira según lo que avanza el autobús */
.wheel { position: absolute; pointer-events: none; }
.wheel b { position: absolute; inset: 0; border-radius: 50%; background: center / 100% 100% no-repeat; transform: rotate(var(--r, 0deg)); will-change: transform; }

/* Pie con logo */
.foot__logo { width: min(560px, 70vw); height: auto; margin: 28px auto 8px; }
.foot__tag { font: 500 clamp(20px, 2vw, 30px) var(--serif); margin-bottom: clamp(48px, 7vw, 96px); }

/* Escenas de destinos. Sin JS: una debajo de otra. Con JS (.scenes--fly): apiladas y fijas. */
.scene { position: relative; height: 100svh; min-height: 560px; overflow: hidden; }
.scene > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.scene::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13,9,8,.35) 0%, rgba(13,9,8,0) 30%, rgba(13,9,8,.88) 100%); } /* taste-skill-ignore: oscurecimiento sobre foto para leer el texto */
.scene__text { position: absolute; z-index: 2; left: var(--m); right: var(--m); bottom: clamp(56px, 9vh, 110px); }
.scene__meta { font-size: 15px; letter-spacing: .04em; color: var(--gold); margin-bottom: 10px; }
.scene h3 { font-size: clamp(60px, 13vw, 240px); line-height: .86; letter-spacing: -.045em; margin-left: -.04em; }
.scene__text > p:not(.scene__meta) { max-width: 44ch; margin-top: 22px; font-size: clamp(17px, 1.35vw, 21px); }
.scene .btn { margin-top: 22px; }
.scenes__rail { display: none; }
.scenes--fly { height: 900svh; }
.scenes--fly .scenes__stage { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.scenes--fly .scene { position: absolute; inset: 0; height: auto; will-change: clip-path; }
.scenes--fly .scene > img { will-change: transform; }
.scenes--fly .scenes__rail { position: absolute; z-index: 5; right: var(--m); top: 50%; translate: 0 -50%; display: grid; gap: 2px; justify-items: end; }
.scenes__rail button { display: flex; align-items: center; gap: 12px; padding: 5px 0; border: 0; background: none; cursor: pointer; color: rgba(245,237,223,.55); font: 500 13px var(--sans); transition: color .3s; }
.scenes__rail button::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; transition: transform .4s var(--ease); }
.scenes__rail button:hover, .scenes__rail button.is-active { color: var(--gold); }
.scenes__rail button.is-active::after { transform: scale(1.6); }

/* Servicios */
.services { position: relative; }
.band { position: relative; margin: 0; height: 86svh; min-height: 480px; overflow: hidden; }
.band img { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; }
.band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13,9,8,.25), rgba(13,9,8,.9)); } /* taste-skill-ignore: oscurecimiento sobre foto para leer el texto */
.band figcaption { position: absolute; z-index: 2; left: var(--m); right: var(--m); bottom: clamp(40px, 7vh, 80px); }
.svc { list-style: none; margin: 0; padding: 0 var(--m) var(--gap); }
.svc { display: grid; gap: 8px; }
.svc li { display: grid; grid-template-columns: 160px minmax(0, 1.1fr) minmax(0, 1fr); gap: 24px; align-items: baseline; padding: 28px 28px; border-radius: 6px; background: var(--panel); transition: padding .5s var(--ease), background-color .3s; }
.svc li:hover { padding-left: 44px; background: #221714; }
.svc__n { font-size: 14px; color: var(--gold); letter-spacing: .04em; }
.svc h3 { font-size: clamp(26px, 3vw, 46px); line-height: 1.05; }
.svc p { color: var(--muted); }
.svc li:hover p { color: var(--ink); }
.svc__preview { position: fixed; z-index: 60; left: 0; top: 0; width: 320px; aspect-ratio: 4 / 3; overflow: hidden; pointer-events: none; opacity: 0; scale: .8; transition: opacity .35s, scale .5s var(--ease); }
.svc__preview.on { opacity: 1; scale: 1; }
.svc__preview img { width: 100%; height: 100%; object-fit: cover; }

/* Flota */
.specs { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 28px; }
.specs b { font: 500 34px var(--serif); margin-right: 6px; }

/* Cotizador */
.quote { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 96px); align-items: center; padding: var(--gap) var(--m); }
.quote__intro > p { margin-top: 22px; max-width: 40ch; color: var(--muted); font-size: clamp(17px, 1.3vw, 20px); }
.how { list-style: none; counter-reset: how; margin: 36px 0 0; padding: 0; display: grid; gap: 16px; }
.how li { counter-increment: how; display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: baseline; color: var(--muted); }
.how li::before { content: counter(how); font: 500 30px var(--serif); color: var(--gold); }
.how b { color: var(--ink); font-weight: 600; }
.quote__call { margin-top: 34px !important; color: var(--ink) !important; }
.quote__call a { color: var(--gold); }
.planner { background: var(--panel); padding: clamp(24px, 3vw, 48px); display: grid; gap: 28px; border-radius: 6px; }
.planner fieldset { border: 0; margin: 0; padding: 0; }
.planner legend, .field > span { font: 500 24px/1.1 var(--serif); margin-bottom: 14px; padding: 0; }
.field > span { display: flex; justify-content: space-between; font: 600 14px var(--sans); color: var(--muted); margin-bottom: 10px; }
.field output { color: var(--gold); font-variant-numeric: tabular-nums; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips label { position: relative; }
.chips input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.chips span { display: inline-block; padding: 10px 18px; border-radius: 999px; background: #241916; font: 500 15px var(--sans); transition: background-color .3s, color .3s, transform .3s var(--ease); }
.chips label:hover span { transform: translateY(-2px); }
.chips input:checked + span { background: var(--gold); color: #1b120b; }
.chips input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 3px; }
.planner__row { display: grid; grid-template-columns: 2fr 1.3fr .8fr; gap: 20px; align-items: end; }
.field { display: grid; }
.field input[type="date"], .field select { height: 50px; padding: 0 14px; border: 0; border-radius: 8px; background: #241916; color: var(--ink); font: 500 16px var(--sans); color-scheme: dark; }
input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 50px; background: transparent; cursor: pointer; }
input[type="range"]::-webkit-slider-runnable-track { height: 4px; border-radius: 4px; background: #3a2a25; }
input[type="range"]::-moz-range-track { height: 4px; border-radius: 4px; background: #3a2a25; }
input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 24px; height: 24px; margin-top: -10px; border-radius: 50%; background: var(--gold); }
input[type="range"]::-moz-range-thumb { width: 22px; height: 22px; border: 0; border-radius: 50%; background: var(--gold); }
.planner__result { padding: 22px 24px; border-radius: 6px; background: #201613; display: grid; gap: 6px; }
.result__units { font: 500 clamp(44px, 4.6vw, 72px)/1 var(--serif); }
.result__units b { font-weight: 500; color: var(--gold); }
.result__units span { font-size: .42em; }
.result__detail { color: var(--muted); }
.result__seats { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 10px; }
.result__seats i { width: 9px; height: 11px; border-radius: 3px 3px 1px 1px; background: #2c201c; transition: background-color .3s; }
.result__seats i.on { background: var(--gold); }
.result__seats i.bus { width: 100%; height: 0; background: none; }
.planner__note { font-size: 14px; color: var(--muted); }

/* Contacto */
.contact { position: relative; min-height: 100svh; display: flex; align-items: flex-end; padding: var(--gap) var(--m) clamp(56px, 8vh, 96px); overflow: hidden; }
.contact__photo { position: absolute; inset: 0; margin: 0; }
.contact__photo img { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; }
.contact__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,9,8,.9) 0%, rgba(13,9,8,.5) 50%, rgba(13,9,8,.1) 100%), linear-gradient(0deg, rgba(13,9,8,.8), rgba(13,9,8,0) 40%); } /* taste-skill-ignore: oscurecimiento sobre foto para leer el texto */
.contact__info { position: relative; z-index: 2; display: grid; gap: 24px; max-width: 620px; }
.contact__info address { font-style: normal; font-size: clamp(17px, 1.3vw, 20px); }
.hours { margin: 0; display: grid; gap: 6px; max-width: 340px; color: var(--muted); }
.hours div { display: flex; justify-content: space-between; gap: 16px; }
.hours dd { margin: 0; color: var(--ink); font-variant-numeric: tabular-nums; }
.contact__lines { display: grid; gap: 4px; font: 500 clamp(22px, 2vw, 30px)/1.3 var(--serif); }
.contact__lines a { text-decoration: none; width: fit-content; transition: color .3s; }
.contact__lines a:hover { color: var(--gold); }

/* Pie */
.foot { padding: var(--gap) var(--m) 28px; overflow: hidden; text-align: center; }
.foot__motto { font: italic 500 clamp(22px, 2.6vw, 40px) var(--serif); color: var(--gold); }
.foot__word { font: 500 clamp(120px, 30vw, 560px)/.8 var(--serif); letter-spacing: -.05em; margin: .04em 0 .1em; }
.foot__bar { display: flex; justify-content: space-between; gap: 20px; padding: 20px 24px; border-radius: 6px; background: var(--panel); font-size: 14px; color: var(--muted); }
.foot__bar a { text-decoration: none; }
.foot__bar a:hover { color: var(--gold); }

.js [data-reveal] { opacity: 0; transform: translateY(28px); }

@media (max-width: 860px) {
  .nav { padding: 12px 16px; }
  .nav__brand img { width: 108px; }
  .nav__links, .nav__cta { display: none; }
  .nav__toggle { display: grid; place-content: center; gap: 7px; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--gold); cursor: pointer; z-index: 85; }
  .nav__toggle i { width: 18px; height: 2px; background: #1b120b; transition: transform .4s var(--ease); }
  .nav__toggle[aria-expanded="true"] i:first-of-type { transform: translateY(4.5px) rotate(45deg); }
  .nav__toggle[aria-expanded="true"] i:last-of-type { transform: translateY(-4.5px) rotate(-45deg); }
  .film__chs { padding: 0 16px 92px; }
  .film__media::after { background: linear-gradient(0deg, rgba(13,9,8,.94) 0%, rgba(13,9,8,.55) 44%, rgba(13,9,8,.1) 72%); } /* taste-skill-ignore: oscurecimiento sobre foto para leer el texto */
  .film__ch h2 { font-size: clamp(38px, 11vw, 64px); margin-bottom: 14px; }
  .film__nav { left: 16px; right: 16px; bottom: 22px; gap: 6px; overflow-x: auto; scrollbar-width: none; }
  .film__nav button { padding: 9px 12px; font-size: 13px; }
  .film:not(.film--scrub) .film__ch { padding: 96px 16px 48px; }
  .hero__title { font-size: clamp(50px, 15.5vw, 96px); }
  .hero__row { display: grid; gap: 22px; margin-top: 22px; }
  .hero__meta { top: auto; bottom: 20px; right: 16px; translate: none; grid-auto-flow: column; }
  .hero__meta span { writing-mode: horizontal-tb; }
  .hero__scroll { display: none; }
  .manifesto { padding-left: 16px; padding-right: 16px; }
  .stats { grid-template-columns: 1fr 1fr; }
  .fleet { padding-left: 16px; padding-right: 16px; }
  .fleet__head { grid-template-columns: 1fr; gap: 16px; }
  .fleet__head p { justify-self: start; }
  .fleet__stage { height: 46vw; }
  .fleet__bus { width: 100%; }
  .fleet__tabs { justify-content: flex-start; gap: 8px; }
  .fleet__tabs button { padding: 10px 14px; font-size: 13px; }
  .fleet__specs { grid-template-columns: 1fr 1fr; }
  .fleet__detail { grid-template-columns: 1fr; margin-top: 56px; }
  .fleet__detail img { height: auto; aspect-ratio: 3 / 2; }
  .fleet__detail figcaption { gap: 20px; padding: 24px 20px 28px; }
  .fleet__detail li { padding: 14px 16px; }
  .hero__title { max-width: none; }
  .hero__cta .btn { flex: 1 1 auto; }
  .scene__text { left: 16px; right: 16px; bottom: 44px; }
  .scene h3 { font-size: clamp(52px, 16vw, 110px); }
  .scenes--fly .scenes__rail { display: none; }
    .band { height: 64svh; }
  .band figcaption { left: 16px; right: 16px; }
  .svc { padding-left: 16px; padding-right: 16px; }
  .svc li { grid-template-columns: 1fr; gap: 8px; padding: 22px 20px; }
  .svc li:hover { padding-left: 20px; }
  .svc__preview { display: none; }
  .quote { grid-template-columns: 1fr; padding-left: 16px; padding-right: 16px; }
  .planner { padding: 22px 18px; }
  .planner__row { grid-template-columns: 1fr 1fr; }
  .field--range { grid-column: 1 / -1; }
  .contact { padding-left: 16px; padding-right: 16px; }
  .contact__photo::after { background: linear-gradient(0deg, rgba(13,9,8,.95) 30%, rgba(13,9,8,.3) 100%); } /* taste-skill-ignore: oscurecimiento sobre foto para leer el texto */
  .foot { padding-left: 16px; padding-right: 16px; }
  .foot__bar { flex-direction: column; gap: 8px; }
}

@media (max-width: 860px) and (orientation: portrait) {
  .hero__poster, .film__canvas { object-position: 50% 50%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation: none !important; }
  .js [data-reveal] { opacity: 1; transform: none; }
  .manifesto__text .w { opacity: 1; }
}
