/* Plantilla "Impulso": topbar, header, hero con slider inclinado, buscador, secciones del home y footer.
   Solo cambia con tokens (los inyecta layouts/app.blade.php desde la sucursal/sitio):
   --color-primary-raw -> color de marca   |   --imp-dark -> color oscuro   |   --imp-on-primary -> texto sobre la marca */
@font-face{font-family:'Bebas Neue';src:url('../fonts/bebas-neue-latin.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Outfit';src:url('../fonts/outfit-latin.woff2') format('woff2');font-weight:300 700;font-style:normal;font-display:swap}

:root{
  --imp-p:var(--color-primary-raw,#FFE600);
  --imp-s:var(--imp-dark,#0B0B0B);
  --imp-on-p:var(--imp-on-primary,#0B0B0B);
  --imp-soft:#F4F4F1;
  --imp-mut:#6b6b6b;
  --imp-line:color-mix(in srgb,var(--imp-s) 82%,#fff);
  --imp-display:'Bebas Neue','Arial Narrow',Impact,sans-serif;
  --imp-ui:'Outfit',system-ui,sans-serif;
  --imp-r:14px;
  --imp-slant:polygon(9% 0,100% 0,91% 100%,0 100%);
}
.imp-wrap{max-width:1240px;margin-inline:auto;padding-inline:24px}
.imp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.imp-home,.imp-footer,.imp-header,.imp-top{font-family:var(--imp-ui)}
.imp-home{background:#fff;color:var(--imp-s);line-height:1.5;overflow-x:clip}
.imp-home *,.imp-footer *,.imp-header *,.imp-top *{box-sizing:border-box}
.imp-home a,.imp-footer a,.imp-header a{text-decoration:none}
.imp-home :focus-visible,.imp-footer :focus-visible,.imp-header :focus-visible{outline:3px solid var(--imp-p);outline-offset:3px}
.imp-home :focus-visible{outline-color:var(--imp-s)}

.imp-btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;background:var(--imp-p);color:var(--imp-on-p);padding:13px 26px;border-radius:10px;border:0;cursor:pointer;transition:transform .2s,box-shadow .2s;font:700 15px var(--imp-ui);line-height:1.2}
.imp-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px color-mix(in srgb,var(--imp-p) 38%,transparent)}
.imp-btn--dark{background:var(--imp-s);color:var(--imp-p)}.imp-btn--dark:hover{box-shadow:0 10px 24px rgba(0,0,0,.3)}
.imp-btn--light{background:#fff;color:#0b0b0b}
.imp-kick{font:600 13px var(--imp-ui);letter-spacing:.28em;color:var(--imp-p);text-transform:uppercase}
.imp-h2{font-family:var(--imp-display);font-weight:400;font-size:clamp(44px,5vw,68px);line-height:.95;letter-spacing:.01em;margin:0}
.imp-h2 u{text-decoration:none;background:linear-gradient(var(--imp-p),var(--imp-p)) 0 88%/100% 38% no-repeat;color:inherit}
.imp-tag{background:var(--imp-s);color:var(--imp-p);font:600 11px var(--imp-ui);letter-spacing:.14em;padding:6px 12px;border-radius:99px;text-transform:uppercase}

/* TOP BAR + HEADER */
.imp-top{background:var(--imp-p);color:var(--imp-on-p);font-size:13px;font-weight:500}
.imp-top .imp-wrap{display:flex;justify-content:space-between;gap:16px;padding-block:7px;flex-wrap:wrap}
.imp-top a{color:inherit}.imp-top span+span,.imp-top a+a{margin-left:22px}
.imp-header{background:var(--imp-s);color:#fff;position:sticky;top:0;z-index:50}
.imp-header .imp-wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
.imp-logo{display:flex;align-items:center;flex:none;color:#fff}.imp-logo img{height:40px;width:auto}
.imp-logo-text{font-family:var(--imp-display);font-size:34px;letter-spacing:.04em;line-height:1;color:#fff}
.imp-nav{display:flex;gap:6px}
.imp-nav a{padding:9px 16px;border-radius:99px;font-weight:500;font-size:15px;color:#ddd;transition:.2s;white-space:nowrap}
.imp-nav a:hover,.imp-nav a[aria-current]{background:color-mix(in srgb,var(--imp-p) 16%,transparent);color:var(--imp-p)}
.imp-tools{display:flex;gap:10px;align-items:center;font-size:14px}
.imp-burger{display:none;background:none;border:0;color:#fff;width:44px;height:44px;cursor:pointer;place-items:center}
.imp-mobile{display:none;background:var(--imp-s);border-top:1px solid var(--imp-line);padding:12px 24px 22px}
.imp-mobile a:not(.imp-btn){display:block;padding:12px 0;color:#eee;border-bottom:1px solid var(--imp-line)}
.imp-mobile .imp-btn{margin-top:16px;width:100%}
@media(max-width:980px){.imp-nav,.imp-hide-m{display:none}.imp-burger{display:grid}.imp-mobile.is-open{display:block}.imp-top .imp-hide-m{display:none}}

/* HERO + SLIDER */
.imp-hero{background:var(--imp-s);color:#fff;position:relative;overflow:hidden;padding:70px 0 150px}
.imp-hero:before{content:"";position:absolute;right:-12%;top:-30%;width:62%;height:160%;background:var(--imp-p);transform:skewX(-14deg);opacity:.96}
.imp-hero .imp-wrap{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center}
.imp-h1{font-family:var(--imp-display);font-weight:400;font-size:clamp(64px,9vw,128px);line-height:.88;margin:14px 0 22px;letter-spacing:.01em}
.imp-h1 em{font-style:normal;color:var(--imp-p);display:block}
.imp-lead{max-width:440px;color:#cfcfcf;font-size:18px;font-weight:300;margin:0}
.imp-ticks{display:flex;gap:22px;margin-top:26px;font-size:14px;color:#ddd;flex-wrap:wrap}.imp-ticks i{color:var(--imp-p);font-style:normal;margin-right:6px}
.imp-slider{position:relative;height:460px}
.imp-slide{position:absolute;inset:0;clip-path:var(--imp-slant);opacity:0;transition:opacity .7s;background-size:cover;background-position:center;margin:0}
.imp-slide.is-on{opacity:1}
.imp-slide figcaption{position:absolute;left:14%;bottom:26px;background:var(--imp-s);color:#fff;padding:10px 18px;font-family:var(--imp-display);font-size:26px;letter-spacing:.05em}
.imp-slide figcaption small{font:500 13px var(--imp-ui);color:var(--imp-p);margin-left:10px;letter-spacing:0}
.imp-dots{position:absolute;right:6%;bottom:-34px;display:flex;gap:8px}
.imp-dots button{width:34px;height:6px;border:0;border-radius:9px;background:color-mix(in srgb,var(--imp-s) 33%,transparent);cursor:pointer;padding:0}.imp-dots button.is-on{background:var(--imp-s)}
@media(prefers-reduced-motion:reduce){.imp-slide{transition:none}}

/* BUSCADOR (barra sobre el borde del hero) */
.imp-book{position:relative;margin-top:-92px;z-index:5}
.imp-bar{background:#fff;color:var(--imp-s);border-radius:18px;box-shadow:0 30px 70px rgba(0,0,0,.25);padding:14px;display:grid;grid-template-columns:1.3fr 1.2fr 1.2fr 1fr auto;border-bottom:6px solid var(--imp-p)}
.imp-f{padding:10px 20px;border-right:1px solid #e8e8e4;min-width:0;position:relative}
.imp-f label{display:block;font:600 11px var(--imp-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--imp-mut)}
.imp-f select,.imp-f input{width:100%;background:transparent;border:0;color:var(--imp-s);font:600 17px var(--imp-ui);padding:2px 0;outline:0;appearance:none;-webkit-appearance:none;cursor:pointer;min-width:0}
.imp-f:focus-within{background:var(--imp-soft);border-radius:12px}
.imp-f--last{border:0}
.imp-sel:after{content:"▾";position:absolute;right:14px;bottom:12px;color:var(--imp-mut);pointer-events:none;font-size:13px}
.imp-time{display:grid;grid-template-columns:1fr 74px;gap:4px;align-items:center}.imp-time select{text-align:right}
.imp-bar .imp-btn{margin:6px;padding-inline:34px;font-size:17px;align-self:stretch}
.imp-mini{display:flex;gap:26px;padding:16px 8px 0;font-size:14px;color:var(--imp-mut);flex-wrap:wrap;align-items:center}.imp-mini b{color:var(--imp-s)}
.imp-check{display:flex;gap:8px;align-items:center;cursor:pointer;color:var(--imp-s)}.imp-check input{accent-color:var(--imp-s);width:18px;height:18px}
.imp-drop{display:flex;align-items:center;gap:8px}.imp-drop select{border:1px solid #d6d6d0;border-radius:8px;padding:6px 10px;font:500 14px var(--imp-ui);color:var(--imp-s);background:#fff}
.imp-err{color:#c0392b;font-size:14px;padding:10px 8px 0}
@media(max-width:980px){.imp-bar{grid-template-columns:1fr 1fr}.imp-f{border-right:0;border-bottom:1px solid #e8e8e4}.imp-f--w{grid-column:span 2}.imp-bar .imp-btn{grid-column:span 2}}

/* TRUST */
.imp-trust{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:56px 24px 20px}
.imp-trust div{display:flex;gap:14px;align-items:center}
.imp-trust svg{width:44px;height:44px;padding:10px;background:var(--imp-p);border-radius:12px;flex:none;stroke:var(--imp-on-p)}
.imp-trust b{display:block;font-weight:600}.imp-trust span{font-size:14px;color:var(--imp-mut)}

/* SECCIONES */
.imp-sec{padding:84px 0}
.imp-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:34px;gap:20px;flex-wrap:wrap}
.imp-tabs{display:flex;gap:8px;flex-wrap:wrap}
.imp-tabs button{border:2px solid var(--imp-s);background:none;border-radius:99px;padding:8px 20px;font:600 14px var(--imp-ui);cursor:pointer;color:var(--imp-s);transition:.2s}
.imp-tabs button:hover{background:var(--imp-soft)}.imp-tabs .is-on{background:var(--imp-s);color:var(--imp-p)}
.imp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.imp-car{background:var(--imp-soft);border-radius:var(--imp-r);overflow:hidden;transition:.3s;position:relative}
.imp-car:hover{transform:translateY(-6px);box-shadow:0 24px 44px rgba(0,0,0,.14)}
.imp-car .ph{height:220px;clip-path:polygon(0 0,100% 0,100% 84%,0 100%);background-size:cover;background-position:center;background-color:#ddd;transition:.4s}
.imp-car:hover .ph{background-size:108%}
.imp-car .imp-tag{position:absolute;top:14px;left:14px;z-index:2}
.imp-car .in{padding:6px 22px 22px}.imp-car h3{font-family:var(--imp-display);font-weight:400;font-size:30px;letter-spacing:.03em;margin:0}
.imp-spec{display:flex;gap:16px;font-size:13px;color:var(--imp-mut);margin:4px 0 16px}
.imp-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.imp-pr{font-size:13px;color:var(--imp-mut)}.imp-pr b{font-family:var(--imp-display);font-size:36px;color:var(--imp-s);font-weight:400;display:block;line-height:1}
.imp-car .imp-btn{padding:11px 20px}
.imp-more{text-align:center;margin-top:36px}

.imp-steps{background:var(--imp-s);color:#fff}
.imp-steps .imp-grid{gap:0;margin-top:36px}
.imp-st{padding:34px 34px 40px;border-left:1px solid #2b2b2f}.imp-st:first-child{border:0}
.imp-st b{font-family:var(--imp-display);font-weight:400;font-size:150px;line-height:.8;color:transparent;-webkit-text-stroke:2px var(--imp-p);display:block;margin-bottom:12px}
.imp-st h3{font-size:22px;font-weight:600;margin:0 0 6px}.imp-st p{color:#b9b9b9;font-weight:300;margin:0}

.imp-why{display:grid;grid-template-columns:1fr 1.2fr;gap:70px;align-items:center}
.imp-pic{position:relative}.imp-pic .a{clip-path:var(--imp-slant);height:440px;background-size:cover;background-position:center;background-color:#222}
.imp-pic .badge{position:absolute;right:0;bottom:-24px;background:var(--imp-p);color:var(--imp-on-p);padding:20px 26px;border-radius:14px;font-family:var(--imp-display);font-size:54px;line-height:.9}
.imp-pic .badge small{display:block;font:600 13px var(--imp-ui)}
.imp-list{display:grid;grid-template-columns:1fr 1fr;gap:26px 34px;margin-top:30px}
.imp-list b{display:block;font-weight:600;margin-bottom:2px}.imp-list span{color:var(--imp-mut);font-size:15px}
.imp-list i{display:block;width:36px;height:6px;background:var(--imp-p);margin-bottom:12px;transform:skewX(-20deg)}

.imp-tt{background:var(--imp-soft)}
.imp-q{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px}
.imp-q figure{background:#fff;border-radius:var(--imp-r);padding:28px;border-top:5px solid var(--imp-p);margin:0}
.imp-q p{font-size:17px;margin:10px 0 18px}.imp-q cite{font-style:normal;font-weight:600;font-size:14px}.imp-q small{display:block;color:var(--imp-mut);font-weight:400}
.imp-stars{color:#e6b800;letter-spacing:3px}

.imp-faq{max-width:900px;margin-top:30px}
.imp-faq details{border-top:1px solid #dcdcd6;padding:20px 0}.imp-faq details:last-child{border-bottom:1px solid #dcdcd6}
.imp-faq summary{cursor:pointer;font-size:19px;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center}
.imp-faq summary::-webkit-details-marker{display:none}
.imp-faq summary:after{content:"+";font-family:var(--imp-display);font-size:36px;line-height:1;background:var(--imp-p);color:var(--imp-on-p);width:38px;height:38px;display:grid;place-items:center;border-radius:10px;transition:.2s;flex:none}
.imp-faq details[open] summary:after{transform:rotate(45deg)}
.imp-faq p{color:#444;margin:12px 0 0}.imp-faq a{text-decoration:underline}

.imp-cta{background:var(--imp-p);color:var(--imp-on-p);padding:70px 0}
.imp-cta .imp-wrap{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}.imp-cta .imp-h2{font-size:clamp(48px,6vw,86px)}
.imp-cta .imp-btn:not(.imp-btn--light){background:var(--imp-s);color:var(--imp-p)}

@media(max-width:980px){
  .imp-hero .imp-wrap,.imp-why,.imp-grid,.imp-q{grid-template-columns:1fr}.imp-slider{height:300px}.imp-hero:before{width:100%;right:-60%}
  .imp-trust{grid-template-columns:1fr 1fr}.imp-st{border-left:0;border-top:1px solid #2b2b2f}.imp-st:first-child{border:0}.imp-st b{font-size:100px}
  .imp-sec{padding:60px 0}.imp-list{grid-template-columns:1fr}.imp-pic .a{height:300px}
}
@media(max-width:560px){.imp-trust{grid-template-columns:1fr}}

/* FOOTER */
.imp-footer{background:var(--imp-s);color:#cfcfcf;padding:70px 0 0;font-size:15px;margin-top:auto}
.imp-fg{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:48px}
.imp-footer h4{font:600 12px var(--imp-ui);letter-spacing:.2em;color:var(--imp-p);text-transform:uppercase;margin:0 0 16px}
.imp-footer ul{list-style:none;margin:0;padding:0}.imp-footer li{margin-bottom:9px}.imp-footer a{color:inherit}.imp-footer li a:hover{color:var(--imp-p)}
.imp-soc{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.imp-soc a{width:40px;height:40px;border:1px solid #333;border-radius:50%;display:grid;place-items:center;transition:.2s}.imp-soc a:hover{background:var(--imp-p);color:var(--imp-on-p);border-color:var(--imp-p)}
.imp-mega{font-family:var(--imp-display);font-size:clamp(100px,22vw,330px);line-height:.78;color:var(--imp-p);letter-spacing:.02em;white-space:nowrap;overflow:hidden;margin-top:10px;opacity:.95;text-align:center;user-select:none}
.imp-legal{border-top:1px solid #2a2a2e;padding:18px 0;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;color:#888}
@media(max-width:980px){.imp-fg{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.imp-fg{grid-template-columns:1fr}}

/* ============================================================
   BOOKING (configurar, confirmar, pagar, éxito): mismo tema Impulso.
   Las vistas usan utilidades de Tailwind en verde/azul/turquesa; aquí se
   reasignan a los tokens de marca solo en las rutas de booking.
   ============================================================ */
body.imp-booking{--imp-tint:color-mix(in srgb,var(--imp-p) 20%,#fff);--imp-edge:color-mix(in srgb,var(--imp-p) 55%,#fff);--imp-p-hover:color-mix(in srgb,var(--imp-p) 82%,#000)}
body.imp-booking h1{font-family:var(--imp-display);font-weight:400;letter-spacing:.01em}
/* fondos fuertes = acento de marca con texto sobre-marca */
body.imp-booking :is(.bg-blue-500,.bg-blue-600,.bg-green-500,.bg-green-600,.bg-emerald-500,.bg-emerald-600,.bg-emerald-700,.bg-emerald-800){background-color:var(--imp-p)!important;color:var(--imp-on-p)!important}
body.imp-booking :is(.bg-blue-500,.bg-blue-600,.bg-green-500,.bg-green-600,.bg-emerald-500,.bg-emerald-600,.bg-emerald-700,.bg-emerald-800) :is(span,p,svg,i,small,b,strong,a){color:inherit!important}
body.imp-booking :is(.hover\:bg-blue-700,.hover\:bg-green-700,.hover\:bg-emerald-700,.hover\:bg-emerald-800):hover{background-color:var(--imp-p-hover)!important;color:var(--imp-on-p)!important}
/* fondos suaves */
body.imp-booking :is(.bg-blue-50,.bg-blue-100,.bg-green-50,.bg-green-100,.bg-emerald-50,.bg-cyan-50,.bg-indigo-100,.hover\:bg-green-50:hover,.hover\:bg-blue-50:hover,.hover\:bg-cyan-50:hover){background-color:var(--imp-tint)!important}
/* textos */
body.imp-booking :is(.text-blue-500,.text-blue-600,.text-blue-700,.text-blue-800,.text-blue-900,.text-green-600,.text-green-700,.text-emerald-500,.text-emerald-600,.text-emerald-700,.text-emerald-800,.text-emerald-900,.text-indigo-600,.text-cyan-700,.text-cyan-800,.text-cyan-900,.hover\:text-blue-700:hover,.hover\:text-indigo-800:hover,.hover\:text-emerald-900:hover,.hover\:text-cyan-800:hover){color:var(--imp-s)!important}
body.imp-booking :is(.text-blue-100,.text-green-100,.text-emerald-100,.text-emerald-200){color:rgba(255,255,255,.85)!important}
/* bordes */
body.imp-booking :is(.border-blue-200,.border-emerald-200,.border-indigo-200,.border-cyan-200,.hover\:border-indigo-300:hover){border-color:var(--imp-edge)!important}
body.imp-booking :is(.border-green-600,.border-cyan-700){border-color:var(--imp-s)!important}
/* banners en degradado verde/azul = bloque oscuro de marca */
body.imp-booking :is([class*="from-emerald-"],[class*="from-blue-"],[class*="from-green-"]){background-image:none!important;background-color:var(--imp-s)!important;color:#fff}
/* foco */
body.imp-booking :is(.focus\:ring-blue-500,.focus\:ring-emerald-500):focus{--tw-ring-color:var(--imp-s)!important;box-shadow:0 0 0 2px var(--imp-s)!important}
body.imp-booking .focus\:border-emerald-500:focus{border-color:var(--imp-s)!important}
/* botón de pago y pestañas (pay.blade) */
body.imp-booking .pay-btn{background:var(--imp-p)!important;color:var(--imp-on-p)!important}
body.imp-booking .pay-btn:hover{background:var(--imp-p-hover)!important}
body.imp-booking .pay-hero{background:var(--imp-s)!important}
body.imp-booking .pay-hero :is(h1,h2,p,span){color:#fff}
body.imp-booking :is(input[type=checkbox],input[type=radio]){accent-color:var(--imp-s);color:var(--imp-s)}

/* ------------------------------------------------------------
   BOOKING · estructura Impulso (no solo color)
   riel de pasos en chevrones · auto en banda oscura · secciones auto-numeradas
   campos tipo "formulario de ficha" · resumen como ticket
   ------------------------------------------------------------ */
body.imp-booking{background:#f4f4f1}
/* riel de pasos */
.bk-steps{background:transparent;padding:0;border:0;margin:2rem 0 1.75rem}
.bk-steps__list{display:flex;list-style:none;margin:0 auto;padding-block:0;max-width:1280px}
.bk-steps__list li{flex:1;display:flex;align-items:center;gap:12px;padding:16px 34px 16px 30px;color:#8a8a82;position:relative;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 50%,calc(100% - 22px) 100%,0 100%,22px 50%);margin-left:-22px;background:#e4e4de}
.bk-steps__list li:first-child{margin-left:0;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 50%,calc(100% - 22px) 100%,0 100%)}
.bk-steps__list li:last-child{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,22px 50%)}
.bk-steps__list li b{font-family:var(--imp-display);font-weight:400;font-size:2rem;line-height:1}
.bk-steps__list li span{font:600 .8rem var(--imp-ui);letter-spacing:.12em;text-transform:uppercase}
.bk-steps__list li.is-done{background:var(--imp-s);color:#fff}.bk-steps__list li.is-done b{color:var(--imp-p)}
.bk-steps__list li.is-current{background:var(--imp-p);color:var(--imp-on-p)}
@media(max-width:700px){.bk-steps__list li{padding:12px 22px 12px 26px}.bk-steps__list li span{display:none}.bk-steps__list li.is-current span{display:inline}}
/* temporizador */
/* auto */
.bk-car{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:0;background:var(--imp-s);color:#fff;overflow:hidden}
.bk-car__img{padding:20px 0 20px 20px;display:flex;align-items:center}
.bk-car__img img{width:100%;height:190px;object-fit:cover;clip-path:polygon(9% 0,100% 0,91% 100%,0 100%);background:#222}
.bk-car__info{padding:22px 26px 22px 10px;display:flex;flex-direction:column;gap:8px;min-width:0}
.bk-car__name{font-family:var(--imp-display);font-weight:400;font-size:clamp(2rem,4vw,3rem);line-height:.95;letter-spacing:.02em;margin:0;color:#fff}
.bk-car__sub{color:#bdbdbd;font-size:.85rem;margin:0}
.bk-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.25rem 0 0}
.bk-chips>div{display:flex;flex-direction:column;align-items:center;min-width:72px;padding:.35rem 1rem;background:var(--imp-p);color:var(--imp-on-p);clip-path:polygon(12% 0,100% 0,88% 100%,0 100%);text-align:center}
.bk-chips dt{font-family:var(--imp-display);font-size:1.6rem;line-height:1}
.bk-chips dd{margin:0;font-size:.58rem;letter-spacing:.12em;text-transform:uppercase}
.bk-car__alert{font-size:.8rem;color:#e8e8e8;margin:.25rem 0 0;border-top:1px dashed rgba(255,255,255,.25);padding-top:.6rem}
@media(max-width:700px){.bk-car{grid-template-columns:1fr}.bk-car__img{padding:16px 16px 0}.bk-car__info{padding:16px}}
/* secciones numeradas */
body.imp-booking .booking-main-col{counter-reset:bk}
body.imp-booking .booking-main-col>*{min-width:0}
.bk-title{counter-increment:bk;display:flex;align-items:center;gap:14px;font-family:var(--imp-display)!important;font-weight:400!important;font-size:2.4rem!important;line-height:1!important;letter-spacing:.02em;color:var(--imp-s);margin:0 0 .4rem!important}
.bk-title::before{content:counter(bk,decimal-leading-zero);display:inline-grid;place-items:center;min-width:3.4rem;height:3rem;padding:0 .7rem;background:var(--imp-s);color:var(--imp-p);font-size:2rem;clip-path:polygon(12% 0,100% 0,88% 100%,0 100%)}
/* tarjetas planas con regla superior */
body.imp-booking .booking-card,
body.imp-booking :is(.rounded-lg,.rounded-xl,.rounded-2xl):is(.shadow,.shadow-md,.shadow-lg,.shadow-xl).bg-white{border-radius:0!important;box-shadow:none!important;border-top:4px solid var(--imp-s);border-bottom:1px solid #dcdcd6;background:#fff}
/* seguros */
body.imp-booking .protection-card{border-radius:0;border:2px solid #cfcfc8}
body.imp-booking .protection-card.selected{border-color:var(--imp-s);background:var(--imp-tint);box-shadow:6px 6px 0 var(--imp-s)}
body.imp-booking .protection-card:hover{box-shadow:6px 6px 0 rgba(0,0,0,.18)}
body.imp-booking .protection-card.selected:hover{box-shadow:6px 6px 0 var(--imp-s)}
body.imp-booking .recommended-badge{border-radius:0;background:var(--imp-s);color:var(--imp-p);clip-path:polygon(8% 0,100% 0,92% 100%,0 100%);padding:.3rem 1.4rem;letter-spacing:.08em;text-transform:uppercase}
/* campos: formato ficha */
body.imp-booking .client-grid :is(input:not([type=checkbox]):not([type=radio]),select,textarea),
body.imp-booking #payment-mode-card :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-radius:0!important;border:0!important;border-bottom:3px solid var(--imp-s)!important;background:#f4f4f1!important;box-shadow:none!important}
body.imp-booking .client-grid :is(input,select,textarea):focus{background:var(--imp-tint)!important;outline:0}
body.imp-booking .client-grid label{font:600 .72rem var(--imp-ui);letter-spacing:.14em;text-transform:uppercase;color:#444}
/* resumen: ticket */
body.imp-booking .summary-card{border-radius:0;border:2px solid var(--imp-s);box-shadow:8px 8px 0 var(--imp-s);background:#fff;overflow:hidden}
body.imp-booking .summary-header{background:var(--imp-s);border:0;border-radius:0;padding:1rem 1.25rem}
body.imp-booking .summary-header h3{color:#fff!important;font-family:var(--imp-display);font-weight:400;font-size:1.8rem!important;letter-spacing:.04em;line-height:1}
body.imp-booking .summary-header svg path{fill:var(--imp-p)}
body.imp-booking .summary-row{border-bottom:1px dashed #cfcfc8}
body.imp-booking .summary-row.total{border-radius:0;background:var(--imp-s);clip-path:polygon(0 18%,100% 0,100% 100%,0 100%);padding-top:2rem}
body.imp-booking .summary-row.total .label{color:#d6d6d6;letter-spacing:.14em;text-transform:uppercase;font-size:.75rem}
body.imp-booking .summary-row.total .value,body.imp-booking .summary-row.total .value *{color:var(--imp-p)!important;font-family:var(--imp-display);font-weight:400;font-size:2.6rem;letter-spacing:.02em}
body.imp-booking .summary-row.total .value .text-xs{font:600 .75rem var(--imp-ui);color:#cfcfcf!important;letter-spacing:.08em}
body.imp-booking #submitBtn{border-radius:0;clip-path:polygon(4% 0,100% 0,96% 100%,0 100%);font-family:var(--imp-display);font-weight:400;font-size:1.7rem;letter-spacing:.06em;box-shadow:none;padding-block:1rem}
body.imp-booking #submitBtn:hover{transform:translateY(-2px)}
body.imp-booking .mobile-cta-bar__btn{background:var(--imp-p)!important;color:var(--imp-on-p)!important;border-radius:0;clip-path:polygon(8% 0,100% 0,92% 100%,0 100%);font-weight:800}
body.imp-booking .mobile-cta-bar{border-top:3px solid var(--imp-s)}

/* ------------------------------------------------------------
   Resumen de la reserva: pase de viaje (salida → llegada) + recibo
   ------------------------------------------------------------ */
.bp{margin:0 0 1.1rem;border:2px solid var(--imp-s);background:#fff;position:relative}
.bp-head{display:flex;justify-content:space-between;align-items:center;background:var(--imp-p);color:var(--imp-on-p);padding:.45rem .9rem;font:700 .72rem var(--imp-ui);letter-spacing:.18em;text-transform:uppercase}
.bp-edit{display:inline-flex;align-items:center;gap:.3rem;background:var(--imp-s);color:var(--imp-p);border:0;padding:.25rem .65rem;font:700 .68rem var(--imp-ui);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;clip-path:polygon(10% 0,100% 0,90% 100%,0 100%);transition:.2s}
.bp-edit:hover{background:#000}
.bp-route{display:grid;grid-template-columns:1fr auto 1fr;gap:.25rem;padding:.9rem .9rem .7rem;align-items:start}
.bp-end{display:flex;flex-direction:column;min-width:0}
.bp-end--r{text-align:right;align-items:flex-end}
.bp-end small{font:600 .6rem var(--imp-ui);letter-spacing:.14em;text-transform:uppercase;color:#777}
.bp-code{font-family:var(--imp-display);font-weight:400;font-size:3.1rem;line-height:.95;letter-spacing:.03em;color:var(--imp-s)}
.bp-place{font-size:.72rem;color:#555;line-height:1.25;max-width:100%;overflow-wrap:anywhere}
.bp-time{font-family:var(--imp-display);font-weight:400;font-size:1.7rem;line-height:1;margin-top:.55rem;color:var(--imp-s)}
.bp-date{font-size:.7rem;color:#555;text-transform:capitalize}
.bp-mid{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding-top:1.3rem;min-width:46px;color:var(--imp-s)}
.bp-mid i{display:block;width:1px;flex:0 0 0;border:0;border-top:2px dotted var(--imp-s);width:40px;height:0}
.bp-mid em{font:700 .6rem var(--imp-ui);font-style:normal;letter-spacing:.08em;background:var(--imp-s);color:var(--imp-p);padding:.1rem .4rem;white-space:nowrap}
.bp-tear{position:relative;border-top:2px dashed #b9b9b0;margin:0 .6rem}
.bp-tear::before,.bp-tear::after{content:"";position:absolute;top:-11px;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--imp-s)}
.bp-tear::before{left:-20px;clip-path:inset(0 0 0 50%)}
.bp-tear::after{right:-20px;clip-path:inset(0 50% 0 0)}
.bp-meta{display:grid;grid-template-columns:1fr 1.4fr;gap:.6rem;padding:.7rem .9rem .85rem;margin:0}
.bp-meta dt{font:600 .6rem var(--imp-ui);letter-spacing:.14em;text-transform:uppercase;color:#777}
.bp-meta dd{margin:.1rem 0 0;font-weight:700;font-size:.82rem;color:var(--imp-s);line-height:1.25}
.bp-meta dd small{font-weight:400;color:#666;font-size:.68rem}
/* recibo: encabezados como etiquetas y filas con puntos guía */
body.imp-booking .summary-content{padding:1rem 1rem 1.25rem}
body.imp-booking .summary-content h4{font:700 .7rem var(--imp-ui)!important;letter-spacing:.16em;text-transform:uppercase;color:#555!important;display:flex;align-items:center;gap:.5rem}
body.imp-booking .summary-content .summary-section>h4::before{content:"";width:18px;height:6px;background:var(--imp-p);transform:skewX(-20deg);flex:none}
body.imp-booking .summary-section{border-top:0!important;padding-top:.4rem!important}
body.imp-booking .summary-row{border-bottom:0;padding:.45rem 0;align-items:baseline;gap:.5rem}
body.imp-booking .summary-row .label{flex:0 1 auto}
body.imp-booking .summary-row::before{content:"";order:1;flex:1;border-bottom:2px dotted #c9c9c0;transform:translateY(-4px);min-width:12px}
body.imp-booking .summary-row .value{order:2;white-space:nowrap}
body.imp-booking .summary-row.total::before{display:none}

/* ---- Idioma + moneda en un solo control (header) ---- */
.imp-reg{position:relative}
.imp-reg-btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 14px;border:1.5px solid rgba(255,255,255,.28);background:transparent;color:#fff;border-radius:99px;font:600 14px var(--imp-ui);letter-spacing:.04em;cursor:pointer;transition:.2s}
.imp-reg-btn:hover,.imp-reg-btn[aria-expanded="true"]{border-color:var(--imp-p);color:var(--imp-p)}
.imp-reg-btn i{font-style:normal;opacity:.5}
.imp-reg-chev{transition:transform .2s}.imp-reg-chev.is-open{transform:rotate(180deg)}
.imp-reg-panel{position:absolute;right:0;top:calc(100% + 12px);z-index:60;display:grid;grid-template-columns:1fr 1fr;gap:6px;width:min(520px,92vw);max-height:70vh;overflow:auto;background:#fff;color:var(--imp-s);border-radius:16px;padding:14px;box-shadow:0 24px 60px rgba(0,0,0,.35);border-bottom:5px solid var(--imp-p)}
.imp-reg-col{min-width:0}
.imp-reg-h{font:700 11px var(--imp-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--imp-mut);margin:4px 8px 8px}
.imp-reg-opt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border-radius:10px;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;transition:background .15s}
.imp-reg-opt:hover{background:var(--imp-soft)}
.imp-reg-opt.is-on{background:color-mix(in srgb,var(--imp-p) 28%,#fff)}
.imp-reg-opt .f{font-size:20px;width:26px;text-align:center;flex:none}
.imp-reg-opt b{display:block;font-weight:600;font-size:14.5px;line-height:1.2}
.imp-reg-opt small{display:block;font-size:12px;color:var(--imp-mut);line-height:1.2}
.imp-reg-opt em{margin-left:auto;font-style:normal;font-weight:700}
@media(max-width:560px){.imp-reg-panel{grid-template-columns:1fr;right:auto;left:0}}
