/* Keep the booking path readable while the cinematic background plays. */
img, video { max-width: 100%; }
.service-accordion-layout > *, .service-disclosure, .empresas-grid > * { min-width: 0; }
.service-disclosure summary { overflow-wrap: anywhere; }
#taxiOnChat { display: none; }
#taxiOnChat.open { display: flex; flex-direction: column; }
#txonMsgs { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
#txonOpts { flex-shrink: 1; min-height: 0; overflow-y: auto; max-height: 40%; }
.txon-input { min-width: 0; font-size: 16px; }
.txon-opt { min-height: 44px; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid #c8d0d8; outline-offset: 3px; }
.hero .hero-content,
.hero.is-logo-moment .hero-content {
  display: block !important;
  position: relative !important;
  inset: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}
.hero .hero-overlay { display: block !important; opacity: 1 !important; background: linear-gradient(90deg, #06101de8, #06101d80 65%, #06101d35) !important; }
body.is-hero-finale #mainNav .nav-logo { opacity: 1; filter: none; pointer-events: auto; }
.hero .hero-content { max-width: 1400px; padding-inline: clamp(20px, 5vw, 80px); }
.hero .hero-sub { max-width: 48ch; }
.hero .hero-h1 { font-size: clamp(42px, 6vw, 92px) !important; line-height: 1.06 !important; }
.hero-actions { flex-wrap: wrap; }
.hero-actions a { min-height: 48px; justify-content: center; white-space: normal; text-align: center; }
.booking-note { margin: 16px 0 0; color: #dce4ec; font: 400 14px/1.6 var(--body); max-width: 52ch; }
.booking-mobile-bar { display: none; }
.form-grid > *, .reserva-inner, .form-field, .footer-grid > *, .route-copy, .aeropuerto-content { min-width: 0; }
.form-field input, .form-field select, .form-field textarea { width: 100%; max-width: 100%; min-width: 0; font-size: max(16px, 1rem); }
.form-check { min-height: 44px; }
.form-check span, .footer-list a { overflow-wrap: anywhere; }
.btn-primary, .btn-outline, .btn-reservar, .nav-burger, .nav-mobile-close { min-height: 44px; }
.nav-mobile-close { min-width: 44px; }
.nav-mobile { overflow-y: auto; overscroll-behavior: contain; justify-content: flex-start; padding: 80px 20px 40px; gap: clamp(10px, 2.5vh, 28px); z-index: 400; }
.nav-mobile a { max-width: 100%; font-size: clamp(20px, 5vw, 30px); text-align: center; min-height: 44px; display: flex; align-items: center; }
.fare-scroll { min-width: 0; max-width: 100%; overscroll-behavior-x: contain; }
#taxiOnChat { width: min(360px, calc(100vw - 32px)); max-height: min(500px, calc(100dvh - 200px)); }
section[id] { scroll-margin-top: 110px; }
@media (max-width: 1024px) {
  .hero, body.has-promo-banner .hero, .hero.is-logo-moment, body.has-promo-banner .hero.is-logo-moment {
    height: auto; min-height: 620px; min-height: min(760px, 100svh); aspect-ratio: auto;
    padding: 150px 0 64px; align-items: center;
  }
  .hero .hero-content { padding-block: 20px; }
  .hero .hero-sub { font-size: 18px !important; line-height: 1.65 !important; }
  .hero .hero-overlay { background: linear-gradient(0deg, #06101df2, #06101d80) !important; }
}
@media (max-width: 640px) {
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  .hero, body.has-promo-banner .hero, .hero.is-logo-moment, body.has-promo-banner .hero.is-logo-moment { min-height: 0; padding: 112px 0 40px; }
  .hero .hero-h1 { font-size: clamp(38px, 10vw, 58px) !important; }
  .hero .hero-eyebrow { letter-spacing: .14em; font-size: 13px; }
  .hero-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .hero-actions a { width: 100%; padding-inline: 16px; }
  .booking-mobile-bar {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px;
    position: fixed; inset: auto 0 0; z-index: 290;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
    background: #0b1829f5; border-top: 1px solid #c8d0d840;
  }
  .booking-mobile-bar a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px; border: 1px solid #c8d0d870; color: #fff; font: 600 15px var(--body); text-decoration: none; }
  .booking-mobile-bar a:last-child { background: #176c40; border-color: #388b5e; }
  .wa-fab { display: none; }
  #taxiOnBtn { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); right: 16px; width: 44px; height: 44px; }
  #taxiOnBtn .txon-logo { width: 40px; height: 34px; }
  .accessibility-launcher { bottom: calc(140px + env(safe-area-inset-bottom, 0px)); right: 16px; }
  #taxiOnChat { right: 16px; bottom: calc(194px + env(safe-area-inset-bottom, 0px)); max-height: calc(100dvh - 220px - env(safe-area-inset-bottom, 0px)); }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .reserva { padding-inline: 20px; }
  .btn-reservar { width: 100%; white-space: normal; line-height: 1.5; }
  .senior-h2, .pet h2, .tours h2, .empresas h2, .reserva-header h2 { overflow-wrap: anywhere; }
}
@media (max-height: 500px) and (orientation: landscape) {
  .hero, body.has-promo-banner .hero, .hero.is-logo-moment, body.has-promo-banner .hero.is-logo-moment { height: auto; min-height: 0; padding-block: 120px 32px; }
  .nav-mobile { gap: 8px; }
  #taxiOnChat { bottom: 16px; max-height: calc(100dvh - 32px); z-index: 350; }
}
@media (max-height: 600px) {
  #taxiOnChat.open { top: 12px; bottom: 12px; height: calc(100dvh - 24px); max-height: calc(100dvh - 24px); z-index: 350; }
}
