/* Alquilar coche Sabadell — concepto «ida y vuelta»
   Idea: sales de Sabadell y vuelves a Sabadell. Matrícula + ruta circular.
   Mobile first. */
:root{
  --sand:#F4EBDC; --sand-2:#EADFC9; --paper:#FFFBF2;
  --ink:#0F1B2D; --ink-2:#3A4557; --ink-3:#5B6678;
  --sun:#FFC83D; --sun-d:#B88700;
  --teal:#0F6B60; --blue:#1F4BA5; --wa:#25D366;
  --line:rgba(15,27,45,.2);
  --f-disp:"Gloock",Georgia,"Times New Roman",serif;
  --f-body:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"DM Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--s8:4.5rem;--s9:6rem;
  --r:.6rem;
  --wrap:72rem;
  --gut:clamp(1rem,4vw,2rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;background:var(--sand);color:var(--ink);font:400 clamp(1rem,.96rem + .2vw,1.1rem)/1.55 var(--f-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{margin:0;font-weight:400}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:.2rem}
.sr-only,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;inset:.5rem auto auto .5rem;width:auto;height:auto;clip:auto;padding:.7rem 1rem;background:var(--ink);color:var(--sand);z-index:100;border-radius:var(--r)}

.ico{width:1.25rem;height:1.25rem;flex:none}

/* tipografía de sistema */
.eyebrow{display:flex;align-items:center;gap:.7rem;font:500 .8rem/1.2 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.eyebrow::before{content:"";width:1.8rem;height:2px;background:var(--ink);flex:none}
.eyebrow--l{color:#D8DEE9}.eyebrow--l::before{background:var(--sun)}
em{font-style:normal;color:var(--teal)}
.sec{display:grid;gap:var(--s3);margin-bottom:var(--s6)}
.sec h2{font:400 clamp(1.9rem,1.2rem + 3vw,3.4rem)/1.05 var(--f-disp);letter-spacing:-.01em;max-width:18ch}

/* matrícula */
.plate{display:inline-flex;align-items:stretch;border:3px solid var(--ink);border-radius:.45rem;background:#fff;color:var(--ink);overflow:hidden;box-shadow:0 .22rem 0 var(--ink)}
.plate i{display:grid;place-items:end center;width:1.7rem;background:var(--blue);color:#fff;font:500 .7rem/1 var(--f-mono);font-style:normal;padding-bottom:.35rem}
.plate b{font:500 clamp(1.35rem,1.1rem + 1vw,1.9rem)/1 var(--f-mono);letter-spacing:.04em;padding:.55rem .85rem .5rem;white-space:nowrap}

/* botones */
.btn{--bd:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:3rem;padding:.7rem 1.3rem;border:2px solid var(--bd);border-radius:var(--r);background:#fff;color:var(--ink);font:600 1rem/1.15 var(--f-body);text-decoration:none;cursor:pointer;box-shadow:0 .2rem 0 var(--bd);transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}
.btn:hover{transform:translateY(.1rem);box-shadow:0 .1rem 0 var(--bd)}
.btn:active{transform:translateY(.2rem);box-shadow:0 0 0 var(--bd)}
.btn--sun{background:var(--sun)}
.btn--wa{background:var(--wa)}
.btn--ghost{background:transparent}
.btn--block{width:100%}
.lnk{font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.25em;text-decoration-color:var(--sun);min-height:2.75rem;display:inline-flex;align-items:center}
.lnk:hover{text-decoration-color:currentColor}

/* cabecera */
.top{background:var(--ink);color:var(--sand)}
.top__in{max-width:var(--wrap);margin:0 auto;padding:.7rem var(--gut);display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;min-height:2.75rem}
.brand__plate{display:inline-flex;align-items:stretch;border:2px solid var(--sand);border-radius:.3rem;overflow:hidden;background:#fff;height:2.1rem;width:3.1rem}
.brand__plate::after{content:"";flex:1;background:#fff}
.brand__plate i{display:grid;place-items:end center;width:1.1rem;background:var(--blue);color:#fff;font:500 .55rem/1 var(--f-mono);font-style:normal;padding-bottom:.2rem}
.brand__txt{font:500 .72rem/1.1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
.brand__txt b{font:400 1.25rem/1 var(--f-disp);letter-spacing:0;text-transform:none;color:var(--sun)}
.nav{display:none}
.top__wa{--bd:var(--sand);min-height:2.75rem;padding:.5rem 1rem;color:var(--ink)}
@media (min-width:56rem){
  .top{position:sticky;top:0;z-index:50}
  .nav{display:flex;gap:var(--s5)}
  .nav a{text-decoration:none;font-weight:500;padding:.6rem .1rem;border-bottom:2px solid transparent;min-height:2.75rem;display:inline-flex;align-items:center}
  .nav a:hover{border-bottom-color:var(--sun)}
}

/* hero */
.hero{padding:var(--s6) var(--gut) var(--s7);overflow:hidden}
.hero__in{max-width:var(--wrap);margin:0 auto;display:grid;gap:var(--s5)}
.hero h1{font:400 clamp(2.3rem,1.35rem + 4.6vw,4.7rem)/1.02 var(--f-disp);letter-spacing:-.015em;margin:var(--s4) 0 var(--s4);max-width:15ch}
.lead{font-size:clamp(1.05rem,1rem + .35vw,1.25rem);color:var(--ink-2);max-width:34rem}
.price{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3) var(--s4);margin-top:var(--s5)}
.price__note{font-size:.9rem;color:var(--ink-3);max-width:12rem;line-height:1.3}
.hero__car{position:relative;margin:0;display:grid;place-items:center;min-height:15rem}
.sun{grid-area:1/1;width:min(78%,21rem);aspect-ratio:1;border-radius:50%;background:var(--sun)}
.hero__car img{grid-area:1/1;position:relative;width:min(100%,28rem);filter:drop-shadow(0 1rem .9rem rgba(15,27,45,.28))}

/* ticket del formulario */
.ticket{position:relative;background:var(--paper);border:2px solid var(--ink);border-radius:var(--r);padding:var(--s5) var(--s5) var(--s5);box-shadow:.4rem .4rem 0 var(--ink)}
.ticket h2{font:400 1.7rem/1.1 var(--f-disp)}
.ticket__sub{color:var(--ink-2);font-size:.95rem;margin:.25rem 0 var(--s4)}
.leg{border:0;padding:0;margin:0 0 var(--s4)}
.leg legend{display:flex;align-items:center;gap:.55rem;padding:0;margin-bottom:.45rem;font:500 .8rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase}
.dot{width:.8rem;height:.8rem;border-radius:50%;border:2px solid var(--ink)}
.dot--a{background:var(--sun)}.dot--b{background:var(--ink)}
.row{display:grid;grid-template-columns:minmax(0,1fr) 7.2rem;gap:var(--s3)}
.row.row--1{grid-template-columns:minmax(0,1fr);margin-bottom:var(--s3)}
.f{display:grid;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--ink-2)}
.f input,.f select{width:100%;min-height:3rem;padding:.55rem .75rem;border:2px solid var(--ink);border-radius:.45rem;background:#fff;color:var(--ink);font:500 1rem/1.2 var(--f-body);appearance:none;-webkit-appearance:none}
.f select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%230F1B2D' stroke-width='2' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;background-size:.8rem;padding-right:2.4rem;text-overflow:ellipsis}
.f input:focus-visible,.f select:focus-visible{outline:3px solid var(--blue);outline-offset:1px}
.f input[aria-invalid="true"]{border-color:#B3261E;background:#FFF1EF}
.same{position:relative;display:flex;gap:.7rem;align-items:flex-start;margin:var(--s4) calc(var(--s5) * -1) var(--s4);padding:var(--s4) var(--s5);border-block:2px dashed var(--line);font-size:.92rem;line-height:1.4;color:var(--ink-2)}
.same b{color:var(--ink)}
.same .ico{margin-top:.15rem;color:var(--teal)}
.same::before,.same::after{content:"";position:absolute;top:50%;width:1.3rem;height:1.3rem;border-radius:50%;background:var(--sand);border:2px solid var(--ink);transform:translateY(-50%)}
.same::before{left:-.75rem;clip-path:inset(0 0 0 50%)}
.same::after{right:-.75rem;clip-path:inset(0 50% 0 0)}
.sum{min-height:1.4rem;font-weight:600;color:var(--teal);margin:var(--s2) 0 var(--s3)}
.err{padding:.7rem .9rem;margin:0 0 var(--s3);border-left:4px solid #B3261E;background:#FFF1EF;color:#7A1812;font-weight:500;font-size:.95rem}
.fine{margin-top:var(--s3);font-size:.82rem;line-height:1.4;color:var(--ink-3)}
.fine a{text-underline-offset:.2em}

/* ida y vuelta */
.loop{background:var(--sun);padding:var(--s8) var(--gut)}
.loop__in{max-width:var(--wrap);margin:0 auto;display:grid;gap:var(--s5);align-items:center}
.loop h2{font:400 clamp(2rem,1.1rem + 3.4vw,3.6rem)/1.02 var(--f-disp);letter-spacing:-.015em}
.loop h2 em{display:block;color:var(--teal)}
.route{width:100%;max-width:38rem;height:auto;color:var(--ink)}
.loop__txt{font-size:clamp(1.05rem,1rem + .4vw,1.3rem);line-height:1.45;max-width:30rem;font-weight:500}

/* coches */
.fleet{background:var(--ink);color:var(--sand);padding:var(--s8) var(--gut)}
.fleet__in{max-width:var(--wrap);margin:0 auto}
.fleet .sec h2{color:var(--sand)}
.fleet em{color:var(--sun)}
.car{display:grid;gap:var(--s5);padding:var(--s6) 0;border-top:1px solid rgba(244,235,220,.25)}
.car__pic{position:relative;display:grid;place-items:center;min-height:15rem}
.car__pic .sun{grid-area:1/1}
.sun--sm{width:min(72%,17rem);opacity:.95}
.car__pic img{grid-area:1/1;position:relative;width:min(88%,24rem);filter:drop-shadow(0 .9rem .8rem rgba(0,0,0,.45))}
.plate--tag{position:absolute;left:0;bottom:.4rem;border-color:var(--ink);box-shadow:.22rem .22rem 0 var(--sun-d)}
.plate--tag b{font-size:1rem;padding:.4rem .7rem .35rem}
.plate--ask b{font-size:.82rem;letter-spacing:.02em}
.car__kind{font:500 .8rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sun)}
.car h3{font:400 clamp(1.8rem,1.3rem + 2vw,2.7rem)/1.05 var(--f-disp);margin:.5rem 0 var(--s4)}
.spec{margin:0;display:grid;gap:0}
.spec div{display:grid;grid-template-columns:5.2rem minmax(0,1fr);gap:var(--s3);padding:.7rem 0;border-top:1px solid rgba(244,235,220,.2)}
.spec dt{font:500 .75rem/1.6 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#BFC8D8}
.spec dd{margin:0}
.car__cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s5);margin-top:var(--s5)}
.fleet .btn--sun{--bd:var(--sun);border-color:var(--sun);box-shadow:0 .2rem 0 var(--sun-d);color:var(--ink)}
.fleet .btn--sun:hover{box-shadow:0 .1rem 0 var(--sun-d)}
.fleet .lnk{text-decoration-color:var(--sun)}

/* cómo funciona */
.how{padding:var(--s8) var(--gut)}
.how__in{max-width:var(--wrap);margin:0 auto}
.steps{border-top:2px solid var(--ink)}
.steps li{display:grid;grid-template-columns:3.2rem minmax(0,1fr);gap:var(--s2) var(--s4);padding:var(--s5) 0;border-bottom:1px solid var(--line);align-items:start}
.n{font:400 clamp(2.6rem,2rem + 2vw,3.8rem)/.9 var(--f-disp);color:var(--teal)}
.steps h3{font:600 1.2rem/1.2 var(--f-body)}
.steps p{color:var(--ink-2);margin-top:.3rem}

/* requisitos */
.req{background:var(--sand-2);padding:var(--s8) var(--gut)}
.req__in{max-width:var(--wrap);margin:0 auto;display:grid;gap:var(--s5)}
.req .sec{margin:0}
.checks{display:grid;gap:0}
.checks li{position:relative;padding:.9rem 0 .9rem 2.4rem;border-bottom:1px solid var(--line);font-weight:500}
.checks li::before{content:"";position:absolute;left:0;top:1.05rem;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--ink)}
.checks li::after{content:"";position:absolute;left:.46rem;top:1.28rem;width:.45rem;height:.8rem;border:solid var(--sun);border-width:0 2px 2px 0;transform:rotate(45deg) scale(.8);transform-origin:center;margin-top:-.28rem}
.req__note{color:var(--ink-2);max-width:34rem}

/* fotos */
.shots{padding:var(--s8) var(--gut)}
.shots__in{max-width:var(--wrap);margin:0 auto}
.shots__row{margin-bottom:var(--s6)}
.shots__row h3{font:500 .8rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:var(--s3);color:var(--ink-2)}
.shots__row ul{display:flex;gap:var(--s3);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.6rem;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scrollbar-width:thin}
.shots__row li{flex:0 0 78%;scroll-snap-align:center}
.shots__row img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);border:2px solid var(--ink)}

/* plataformas */
.plat{padding:var(--s7) var(--gut);background:var(--paper);border-block:2px solid var(--ink)}
.plat__in{max-width:var(--wrap);margin:0 auto;display:grid;gap:var(--s3)}
.plat h2{font:400 clamp(1.6rem,1.2rem + 1.6vw,2.3rem)/1.1 var(--f-disp)}
.plat p{color:var(--ink-2);max-width:36rem}
.plat__links{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s2)}

/* faq */
.faq{padding:var(--s8) var(--gut)}
.faq__in{max-width:var(--wrap);margin:0 auto;display:grid;gap:var(--s5)}
.faq .sec{margin:0}
.qa{border-top:2px solid var(--ink)}
.qa details{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--s4);padding:1.1rem 0;min-height:3.25rem;font-weight:600;font-size:1.08rem;line-height:1.3}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";flex:none;width:1.3rem;height:1.3rem;background:linear-gradient(var(--ink),var(--ink)) center/100% 2px no-repeat,linear-gradient(var(--ink),var(--ink)) center/2px 100% no-repeat;transition:transform .2s ease}
.qa details[open] summary::after{transform:rotate(45deg)}
.qa details>p,.qa details>ol,.qa details>ul{padding:0 0 1.2rem;color:var(--ink-2);max-width:40rem}
.qa ol,.qa ul{padding-left:1.2rem}
.qa ol{list-style:decimal}.qa ul{list-style:disc}
.qa li{padding:.15rem 0 .15rem .2rem}

/* cierre */
.end{background:var(--ink);color:var(--sand);padding:var(--s8) var(--gut)}
.end__in{max-width:var(--wrap);margin:0 auto;display:grid;gap:var(--s4)}
.end h2{font:400 clamp(2.4rem,1.3rem + 5vw,5rem)/1 var(--f-disp)}
.end em{color:var(--sun)}
.end p{max-width:30rem;color:#D8DEE9;font-size:1.15rem}
.end__btns{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s3)}
.end .btn--sun{--bd:var(--sun);box-shadow:0 .2rem 0 var(--sun-d)}
.end .btn--wa{--bd:var(--wa);box-shadow:0 .2rem 0 #138a40}
.end .btn:hover{box-shadow:0 .1rem 0 rgba(0,0,0,.4)}

.foot{background:#0A1220;color:#C3CBDA;padding:var(--s6) var(--gut);font-size:.92rem}
.foot__in{max-width:var(--wrap);margin:0 auto;display:grid;gap:var(--s4)}
.foot b{color:var(--sand)}
.foot a{min-height:2.75rem;display:inline-flex;align-items:center}

/* ≥ 40rem */
@media (min-width:40rem){
  .row{grid-template-columns:minmax(0,1fr) 8.2rem}
  .shots__row li{flex-basis:46%}
  .foot__in{grid-template-columns:1fr auto;align-items:end}
}
/* ≥ 64rem */
@media (min-width:64rem){
  .hero{padding-top:var(--s7);padding-bottom:var(--s8)}
  .hero__in{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);grid-template-rows:auto 1fr;column-gap:var(--s8);align-items:start}
  .hero__text{grid-column:1;grid-row:1}
  .hero__car{grid-column:1;grid-row:2;min-height:21rem;justify-items:start}
  .hero__car .sun{justify-self:center}
  .ticket{grid-column:2;grid-row:1/3;align-self:center;padding:var(--s6)}
  .same{margin-inline:calc(var(--s6) * -1);padding-inline:var(--s6)}
  .loop__in{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);column-gap:var(--s7)}
  .loop h2{grid-column:1}
  .route{grid-column:2;grid-row:1/3;justify-self:end}
  .loop__txt{grid-column:1}
  .car{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:var(--s8);padding:var(--s7) 0}
  .car--r .car__media{order:2}
  .car__pic{min-height:20rem}
  .sun--sm{width:min(80%,19rem)}
  .steps li{grid-template-columns:5rem minmax(0,19rem) minmax(0,1fr);align-items:baseline;padding:var(--s6) 0}
  .steps li>div{display:contents}
  .steps p{margin:0}
  .req__in{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--s8)}
  .req__note{grid-column:2}
  .shots__row ul{overflow:visible;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}
  .shots__row li{flex:none}
  .plat__in{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:var(--s8)}
  .plat h2,.plat__in>p:not(.plat__links){grid-column:1}
  .plat .plat__links{grid-column:2;grid-row:1/3;margin:0}
  .faq__in{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:var(--s8)}
  .faq .sec{align-self:start;position:sticky;top:6rem}
  .end__in{grid-template-columns:1fr auto;align-items:end;column-gap:var(--s8)}
  .end h2,.end__in>p:not(.end__btns){grid-column:1}
  .end .end__btns{grid-column:2;grid-row:1/3;margin:0;max-width:none}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ===== v3: CTA, sin llaves, carrusel ===== */
.top__cta{display:flex;align-items:center;gap:.5rem}
.top__dates{min-height:2.75rem;padding:.5rem 1rem;--bd:var(--sun);border-color:var(--sun);box-shadow:0 .2rem 0 var(--sun-d);color:var(--ink)}
.top__dates .long{display:none}
.top__wa{--bd:var(--sand);border-color:var(--sand);box-shadow:none;background:transparent;color:var(--sand);min-width:2.75rem;padding:.5rem}
.top__wa span{display:none}
.top__wa:hover{background:rgba(244,235,220,.12);box-shadow:none}
@media (max-width:23.99rem){.top__wa{display:none}}
@media (min-width:40rem){.top__dates .long{display:inline}.top__dates .short{display:none}.top__wa{padding:.5rem 1rem}.top__wa span{display:inline}}
.btn--ghost-l{--bd:var(--sand);background:transparent;color:var(--sand);box-shadow:none;border-color:rgba(244,235,220,.6)}
.btn--ghost-l:hover{background:rgba(244,235,220,.1);box-shadow:none;transform:none}
.end .btn--ghost-l{box-shadow:none}

.hero__key{display:flex;gap:.6rem;align-items:flex-start;margin-top:var(--s4);font-weight:500;color:var(--ink-2);max-width:30rem}
.hero__key .ico{color:var(--teal);margin-top:.15rem}
.hero__key a{color:var(--ink);text-decoration-color:var(--teal);text-decoration-thickness:2px;text-underline-offset:.2em}

.warn{display:flex;gap:.6rem;align-items:flex-start;padding:.7rem .9rem;margin:0 0 var(--s3);border-left:4px solid var(--sun-d);background:#FFF3CF;color:#4A3600;font-size:.92rem;line-height:1.4}
.warn[hidden]{display:none}
.warn .ico{margin-top:.1rem;color:#8A6500}
.alt{margin-top:var(--s2);font-size:.9rem;color:var(--ink-2)}
.alt a{font-weight:600;color:var(--ink);text-underline-offset:.2em}

.sec__lead{color:var(--ink-2);max-width:34rem}
.car__blurb{font-size:1.05rem;line-height:1.5;color:#E5E9F1;margin:0 0 var(--s4);max-width:32rem}
.car__via{margin-top:var(--s4);padding:.6rem .8rem;border:1px dashed rgba(244,235,220,.45);border-radius:.45rem;font-size:.93rem;color:#D8DEE9}
.keyless{display:flex;gap:.7rem;align-items:flex-start;margin-top:var(--s4);padding:.8rem .9rem;border:2px solid #5ED3C0;border-radius:.5rem;background:rgba(94,211,192,.1);font-size:.95rem;line-height:1.4}
.keyless .ico{color:#5ED3C0;margin-top:.1rem;width:1.5rem;height:1.5rem}
.keyless b{color:#5ED3C0}
button.lnk{background:none;border:0;padding:0;font:600 1rem/1.2 var(--f-body);color:inherit;cursor:pointer;text-align:left}

/* sin llaves */
.key{background:var(--paper);border-block:2px solid var(--ink);padding:var(--s8) var(--gut)}
.key__in{max-width:var(--wrap);margin:0 auto}
.key .sec h2{max-width:20ch}
.key__steps{display:grid;gap:0;border-top:2px solid var(--ink);margin-bottom:var(--s5)}
.key__steps li{display:grid;grid-template-columns:3.2rem minmax(0,1fr);column-gap:var(--s4);padding:var(--s4) 0;border-bottom:1px solid var(--line);align-items:baseline}
.key__n{grid-row:1/3;font:500 1.1rem/1 var(--f-mono);color:var(--teal);letter-spacing:.06em}
.key__steps b{font:600 1.15rem/1.25 var(--f-body)}
.key__steps li>span:last-child{color:var(--ink-2)}
.key__btns{display:flex;flex-wrap:wrap;gap:var(--s3)}
.key__note{margin-top:var(--s4);font-size:.9rem;color:var(--ink-3)}

/* carrusel */
.gal{position:relative;max-width:42rem}
.gal__slides li{margin:0}
.gal__open{display:block;width:100%;padding:0;border:2px solid var(--ink);border-radius:var(--r);background:#000;overflow:hidden;cursor:zoom-in;position:relative;box-shadow:.35rem .35rem 0 var(--ink)}
.gal__open img{width:100%;aspect-ratio:4/3;object-fit:cover;border:0;border-radius:0}
.gal__open::after{content:"Ampliar";position:absolute;right:.7rem;bottom:.7rem;padding:.3rem .65rem;border-radius:999px;background:var(--ink);color:var(--sand);font:500 .72rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
.js .gal__slides li{display:none}
.js .gal__slides li.is-on{display:block;animation:galin .35s ease}
@keyframes galin{from{opacity:.2}to{opacity:1}}
html:not(.js) .gal__slides{display:grid;gap:var(--s4)}
html:not(.js) .gal__bar{display:none}
.gal__bar{display:flex;align-items:center;justify-content:center;gap:var(--s3);margin-top:var(--s5)}
.gal__nav{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:2px solid var(--ink);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer}
.gal__nav:hover{background:var(--sun)}
.gal__dots{display:flex;gap:.1rem}
.gal__dot{width:2.75rem;height:2.75rem;display:grid;place-items:center;border:0;background:none;cursor:pointer;padding:0}
.gal__dot::before{content:"";width:.8rem;height:.8rem;border-radius:50%;border:2px solid var(--ink);background:transparent;transition:background-color .2s,transform .2s}
.gal__dot[aria-current="true"]::before{background:var(--ink);transform:scale(1.25)}

/* lightbox */
.lb{border:0;padding:0;background:transparent;max-width:96vw;max-height:96vh;width:min(96vw,64rem);color:#fff;overflow:visible}
.lb::backdrop{background:rgba(10,18,32,.9)}
.lb img{display:block;width:100%;height:auto;max-height:82vh;object-fit:contain;margin:0 auto;border-radius:.4rem}
.lb__x,.lb__nav{position:absolute;display:grid;place-items:center;width:2.9rem;height:2.9rem;border:2px solid var(--sand);border-radius:50%;background:var(--ink);color:var(--sand);cursor:pointer;z-index:2}
.lb__x{top:-3.4rem;right:0}
.lb__nav{top:50%;transform:translateY(-50%)}
.lb__prev{left:.5rem}.lb__next{right:.5rem}
.lb__x:hover,.lb__nav:hover{background:var(--sun);color:var(--ink)}
.lb__n{text-align:center;margin-top:.8rem;font:500 .85rem/1 var(--f-mono);letter-spacing:.12em;color:var(--sand)}

@media (min-width:64rem){
  .shots__in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:var(--s8);align-items:center}
  .shots__in .sec{margin:0}
  .key__in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:var(--s8);align-items:start}
  .key .sec{grid-column:1;grid-row:1/4;margin:0}
  .key__steps{grid-column:2;margin:0 0 var(--s5)}
  .key__btns{grid-column:2}
  .key__note{grid-column:2}
}

/* dock móvil */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:.5rem;padding:.6rem var(--gut) calc(.6rem + env(safe-area-inset-bottom));background:var(--ink);border-top:2px solid var(--sun);transform:translateY(115%);transition:transform .25s ease;visibility:hidden}
.dock.is-on{transform:none;visibility:visible}
.dock .btn--sun{flex:1;--bd:var(--sun);border-color:var(--sun);box-shadow:0 .2rem 0 var(--sun-d)}
.dock__wa{flex:none;width:3rem;padding:0;min-height:3rem}
@media (min-width:56rem){.dock{display:none}}
@media (prefers-reduced-motion:reduce){.dock{transition:none}}

/* v5: el coche decide el flujo */
.direct[hidden],.viaapp[hidden]{display:none}
.ticket__sub--in{margin:0 0 var(--s4)}
.row.row--1 + .direct{margin-top:var(--s3)}
.ticket .keyless{margin:0 0 var(--s4);background:#DDF4EF;border-color:var(--teal);color:var(--ink)}
.ticket .keyless b{color:var(--ink)}
.ticket .keyless .ico{color:var(--teal)}
.viaapp .fine{margin-top:var(--s3)}

/* v7: miniaturas bajo la foto principal de cada coche */
.car__media{display:grid;gap:var(--s4);min-width:0}
.thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);list-style:none;margin:0;padding:0;max-width:24rem;justify-self:center;width:100%}
.thumb{display:block;position:relative;border:2px solid var(--sand);border-radius:.45rem;overflow:hidden;background:#000;cursor:zoom-in;box-shadow:.2rem .2rem 0 var(--sun-d);transition:transform .18s ease,box-shadow .18s ease}
.thumb img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.thumb:hover{transform:translate(-.1rem,-.1rem);box-shadow:.3rem .3rem 0 var(--sun)}
.thumb:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.thumb{transition:none}.thumb:hover{transform:none}}

/* v8: escapadas */
.loop__txt p{margin:0}
.trips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:var(--s5) 0 0;padding:0}
.trips li{display:flex;align-items:baseline;gap:.55rem;padding:.5rem .8rem .45rem;border:2px solid var(--ink);border-radius:.45rem;background:var(--sand);box-shadow:.2rem .2rem 0 var(--ink)}
.trips b{font:400 1.15rem/1 var(--f-disp);color:var(--ink)}
.trips span{font:500 .78rem/1 var(--f-mono);letter-spacing:.06em;color:var(--teal);white-space:nowrap}
.loop__txt .trips__note{margin-top:var(--s3);font:500 .82rem/1.3 var(--f-mono);letter-spacing:.04em;color:var(--ink);opacity:.8}

/* v9: idiomas, cabecera y tablet */
.top{position:relative;z-index:50}
@media (min-width:56rem){.top{position:sticky}}
.top__dates,.nav a{white-space:nowrap}
@media (min-width:56rem) and (max-width:71.99rem){.nav{display:none}}
@media (max-width:29.99rem){.brand__plate{display:none}}

.lang{position:relative}
.lang summary{list-style:none;display:flex;align-items:center;gap:.4rem;min-height:2.75rem;min-width:2.75rem;padding:.5rem .65rem;border:2px solid var(--sand);border-radius:var(--r);cursor:pointer;color:var(--sand);font:600 .85rem/1 var(--f-body);letter-spacing:.04em;justify-content:center}
.lang summary::-webkit-details-marker{display:none}
.lang summary:hover,.lang[open] summary{background:rgba(244,235,220,.12)}
.lang summary:focus-visible{outline-color:var(--sun)}
.lang ul{position:absolute;right:0;top:calc(100% + .5rem);min-width:9.5rem;padding:.25rem;background:var(--paper);color:var(--ink);border:2px solid var(--ink);border-radius:var(--r);box-shadow:.25rem .25rem 0 var(--sun-d);z-index:70}
.lang li a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:2.75rem;padding:.5rem .75rem;border-radius:.4rem;text-decoration:none;font-weight:500}
.lang li a:hover{background:var(--sand-2)}
.lang li a[aria-current]{font-weight:700}
.lang li a[aria-current]::after{content:"";width:.9rem;height:.5rem;border-left:2.5px solid var(--teal);border-bottom:2.5px solid var(--teal);transform:rotate(-45deg) translate(.1rem,-.15rem)}

.foot__r{display:grid;gap:var(--s2);justify-items:start}
.foot__lang{display:flex;flex-wrap:wrap;gap:.25rem .5rem;align-items:center;font-size:.9rem}
.foot__lang a,.foot__lang span{display:inline-flex;align-items:center;min-height:2.75rem}
.foot__lang span{font-weight:600;color:var(--sand)}
@media (min-width:40rem){.foot__r{justify-items:end}}

@media (max-width:22.4rem){.row:not(.row--1){grid-template-columns:minmax(0,1fr)}}
.end .end__btns{max-width:none}

@media (min-width:48rem){
  .car{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:var(--s6);padding:var(--s6) 0}
  .car--r .car__media{order:2}
  .car__pic{min-height:16rem}
}

/* v10: llaves en mano (Mégane) y llave tachada (servicio sin llaves) */
.keyless--hand{border-color:var(--sun);background:rgba(255,200,61,.08)}
.keyless--hand .ico,.keyless--hand b{color:var(--sun)}

/* v11: menú de secciones y cabecera fija */
.top{position:sticky;top:0;z-index:50}
.menu{position:relative}
.menu summary{list-style:none;display:flex;align-items:center;justify-content:center;min-height:2.75rem;min-width:2.75rem;padding:.5rem;border:2px solid var(--sand);border-radius:var(--r);cursor:pointer;color:var(--sand)}
.menu summary::-webkit-details-marker{display:none}
.menu summary:hover,.menu[open] summary{background:rgba(244,235,220,.12)}
.menu summary:focus-visible{outline-color:var(--sun)}
.menu__panel{position:absolute;right:0;top:calc(100% + .5rem);width:min(17rem,calc(100vw - 2rem));padding:.25rem;background:var(--paper);color:var(--ink);border:2px solid var(--ink);border-radius:var(--r);box-shadow:.25rem .25rem 0 var(--sun-d);z-index:70}
.menu__panel nav a{display:flex;align-items:center;min-height:2.75rem;padding:.5rem .75rem;border-radius:.4rem;text-decoration:none;font-weight:500}
.menu__panel a:hover{background:var(--sand-2)}
.menu__lang{display:flex;gap:.25rem;margin-top:.25rem;padding-top:.25rem;border-top:1px solid var(--line)}
.menu__lang a{flex:1;display:flex;align-items:center;justify-content:center;min-height:2.75rem;border-radius:.4rem;text-decoration:none;font-weight:600;font-size:.9rem}
.menu__lang a[aria-current]{background:var(--ink);color:var(--sand)}
@media (min-width:72rem){.menu{display:none}}
@media (min-width:30rem){.menu__lang{display:none}}
@media (max-width:29.99rem){.lang{display:none}}

/* v12: ajustes finos */
@media (max-width:29.99rem){.brand__plate{display:none}}
.foot__lang a,.foot__lang span{padding-inline:.3rem}
.nav a{min-width:2.75rem;justify-content:center}

/* v14: enlace de invitación */
.fine--ref a,.key__note--ref a{font-weight:600;text-underline-offset:.2em}
.key__note--ref{margin-top:var(--s2)}
