/*
 * Navette Aéroport Bordeaux — couche visuelle V2
 * Présentation uniquement : aucune logique métier, aucun identifiant JS/API modifié.
 */

:root {
  --v2-bg: #050b14;
  --v2-bg-soft: #0a1322;
  --v2-panel: rgba(10, 19, 34, 0.88);
  --v2-panel-strong: #0b1525;
  --v2-line: rgba(148, 163, 184, 0.18);
  --v2-text: #f8fafc;
  --v2-muted: #aab7ca;
  --v2-green: #31d07f;
  --v2-green-dark: #15945a;
  --v2-gold: #f3c45d;
  --v2-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
}

html { scroll-padding-top: 92px; }

body {
  min-height: 100vh;
  color: var(--v2-text);
  background:
    radial-gradient(circle at 14% -6%, rgba(49, 208, 127, 0.10), transparent 29rem),
    radial-gradient(circle at 86% 8%, rgba(59, 130, 246, 0.09), transparent 26rem),
    linear-gradient(180deg, #07101d 0%, var(--v2-bg) 44%, #03070d 100%);
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  opacity: .26;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 46px 46px;
  mask-image: linear-gradient(to bottom, #000, transparent 70%);
}

.container { max-width: 1180px; padding-inline: 22px; }

/* Bandeau de réassurance : volontairement calme, non anxiogène. */
.ticker {
  position: relative;
  top: auto;
  background: linear-gradient(90deg, #0d6b43, #15945a 50%, #0d6b43);
  border-bottom: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 7px 22px rgba(0,0,0,.20);
}
.ticker__inner { padding: 7px 18px; animation-duration: 28s; }
.ticker__inner span { color: #effff6; font-size: 13px; font-weight: 700; letter-spacing: .015em; }

/* Navigation plus sobre et rassurante. */
.nab-header {
  background: rgba(5, 11, 20, .87) !important;
  border-bottom: 1px solid rgba(148,163,184,.16) !important;
  box-shadow: 0 12px 36px rgba(0,0,0,.22);
  backdrop-filter: blur(18px) saturate(125%);
}
.nab-header-inner { max-width: 1180px !important; min-height: 68px; }
.nab-nav-links a { color: #d9e3f1 !important; opacity: .9 !important; letter-spacing: .08em !important; }
.nab-nav-links a::after { background: var(--v2-green) !important; }
.nab-nav-cta {
  background: linear-gradient(135deg, #53e99b, #24bd72) !important;
  color: #03140c !important;
  letter-spacing: .08em !important;
  box-shadow: 0 11px 28px rgba(36,189,114,.22) !important;
  border: 1px solid rgba(255,255,255,.20) !important;
}
.nab-nav-tarifs {
  color: #ffe8a5 !important;
  background: rgba(243,196,93,.075) !important;
  border-color: rgba(243,196,93,.34) !important;
  box-shadow: none !important;
  letter-spacing: .08em !important;
}
.nav-client-link {
  border-color: rgba(148,163,184,.28) !important;
  background: rgba(15,23,42,.58) !important;
  box-shadow: none !important;
  letter-spacing: .08em !important;
}

/* Hero */
.header-main {
  position: relative;
  text-align: center;
  padding-top: 54px;
  padding-bottom: 26px;
}
.header-main::before {
  content: "Chauffeur privé • Bordeaux & Gironde";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 15px;
  padding: 7px 12px;
  border: 1px solid rgba(49,208,127,.28);
  border-radius: 999px;
  color: #baf5d4;
  background: rgba(49,208,127,.07);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.site-title {
  display: flex;
  justify-content: center;
  gap: .25em;
  flex-wrap: wrap;
  font-size: clamp(34px, 5vw, 62px) !important;
  line-height: 1.02;
  letter-spacing: -.045em !important;
  font-weight: 850;
  text-wrap: balance;
  text-shadow: 0 16px 42px rgba(0,0,0,.36);
}
.title-word--blue { color: #79a7ff !important; }
.title-word--white { color: #fff !important; }
.title-word--red { color: #ff8e8e !important; }
.subtitle {
  margin: 14px auto 0 !important;
  max-width: 720px;
  color: #cce9da !important;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.55;
  font-weight: 550;
}
.homepage-lang-switcher { justify-content: center; margin-top: 17px; gap: 9px; }
.homepage-lang-switcher button {
  padding: 5px !important;
  border: 1px solid rgba(148,163,184,.20) !important;
  border-radius: 9px !important;
  background: rgba(15,23,42,.52) !important;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.homepage-lang-switcher button:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.38) !important; }
.homepage-lang-switcher .flag-icon { width: 24px; height: 18px; border-radius: 3px; }

.hero-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 22px;
  flex-wrap: wrap;
}
.hero-primary,
.hero-secondary {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  border-radius: 12px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 800;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.hero-primary {
  color: #052013;
  background: linear-gradient(135deg, #5bedaa, #27c878);
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 16px 38px rgba(39,200,120,.21);
}
.hero-secondary {
  color: #eaf0f8;
  background: rgba(15,23,42,.56);
  border: 1px solid rgba(148,163,184,.23);
}
.hero-primary:hover,.hero-secondary:hover { transform: translateY(-2px); }

.trust-strip {
  max-width: 850px;
  margin: 24px auto 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}
.trust-item {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 11px 13px;
  border: 1px solid rgba(148,163,184,.16);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(15,23,42,.62), rgba(8,15,27,.72));
  color: #dce7f5;
  font-size: 13px;
  line-height: 1.35;
  box-shadow: 0 12px 34px rgba(0,0,0,.16);
}
.trust-icon {
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #bff6d7;
  background: rgba(49,208,127,.11);
  border: 1px solid rgba(49,208,127,.28);
  font-weight: 900;
}

/* Cartes principales */
.card {
  background: linear-gradient(180deg, rgba(12,22,38,.94), rgba(7,14,25,.96));
  border: 1px solid rgba(148,163,184,.14);
  border-radius: 22px;
  box-shadow: var(--v2-shadow);
  margin-bottom: 24px;
}
.card h2 { color: #f8fafc; letter-spacing: -.015em; }
.small-muted { color: var(--v2-muted); line-height: 1.55; }

.flipboard-card { padding: 20px 22px !important; }
.flipboard-title { font-size: 12px !important; color: #b9c6d9 !important; letter-spacing: .16em !important; }
.flipboard {
  border: 1px solid rgba(243,196,93,.27) !important;
  background: linear-gradient(180deg, #07101c, #040911) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025), 0 14px 34px rgba(0,0,0,.28) !important;
}
.flipboard-cell { background: #09111e !important; color: #eef3f9 !important; }
.flipboard-row--header .flipboard-cell { color: #91a1b6 !important; }

.info-card {
  display: grid;
  grid-template-columns: minmax(190px,.7fr) 1.8fr;
  gap: 20px 34px;
  align-items: start;
}
.info-card h2 { font-size: 22px; }
.info-card ol { margin: 0; padding-left: 22px; }
.info-card li { padding-left: 4px; margin-bottom: 8px; color: #d3deeb; }
.info-card .small-muted { grid-column: 2; margin: -10px 0 0; }

/* Zones */
.zones-cards { margin-top: 2px; }
.zones-cards > h2 { font-size: clamp(22px,3vw,30px); margin-bottom: 18px; text-wrap: balance; }
.zone-search-card {
  border-radius: 18px !important;
  border: 1px solid rgba(49,208,127,.16) !important;
  background: rgba(11,21,37,.72) !important;
  box-shadow: none !important;
}
.zone-search-card input { background: #08111e !important; }
.zone-search-card button { border-radius: 11px !important; }
.zone-card { border-color: rgba(148,163,184,.14) !important; box-shadow: 0 14px 36px rgba(0,0,0,.18); }

/* Formulaire : traité comme le produit principal de la page. */
.form-wrap {
  position: relative;
  max-width: 980px !important;
  margin: 34px auto 28px;
  padding: clamp(22px,4vw,38px) !important;
  border: 1px solid rgba(49,208,127,.26) !important;
  background:
    radial-gradient(circle at 92% 0%, rgba(49,208,127,.09), transparent 25rem),
    linear-gradient(180deg, rgba(12,24,41,.98), rgba(7,14,25,.99)) !important;
  box-shadow: 0 30px 90px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.015) !important;
  overflow: hidden;
}
.form-wrap::before {
  content: "Réservation sécurisée";
  display: inline-flex;
  margin-bottom: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  color: #baf5d4;
  background: rgba(49,208,127,.085);
  border: 1px solid rgba(49,208,127,.22);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.form-wrap h2 { font-size: clamp(25px,3vw,34px) !important; margin-bottom: 22px !important; }
#bookingForm {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 16px 18px !important;
}
#bookingForm > input[type="hidden"] { display:none; }
#bookingForm label { gap: 7px; color: #dce5f1; font-weight: 650; }
#bookingForm label span { line-height: 1.35; }
#bookingForm input,
#bookingForm select,
#bookingForm textarea {
  min-height: 49px;
  padding: 12px 13px;
  background: rgba(5,12,22,.92);
  color: #f8fafc;
  border: 1px solid rgba(118,148,171,.40);
  border-radius: 12px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.02);
}
#bookingForm input:hover,
#bookingForm select:hover,
#bookingForm textarea:hover { border-color: rgba(49,208,127,.48); }
#bookingForm input:focus,
#bookingForm select:focus,
#bookingForm textarea:focus {
  transform: none;
  border-color: var(--v2-green);
  box-shadow: 0 0 0 3px rgba(49,208,127,.11);
}
#bookingForm label:has(#pickup_address),
#bookingForm label:has(#dropoff_address),
#bookingForm label:has(#note),
#bookingForm .fare-block,
#bookingForm .policy,
#bookingForm .actions,
#bookingForm .payment-reassurance { grid-column: 1 / -1; }
#bookingForm textarea { min-height: 82px; }
.fare-block {
  margin-top: 5px;
  padding: 17px;
  border-radius: 15px;
  border: 1px solid rgba(243,196,93,.20);
  background: rgba(243,196,93,.055);
}
.fare-block > span { color: #c8d3e1; font-weight: 700; }
.fare {
  border: 0 !important;
  background: transparent !important;
  padding: 2px 0 0 !important;
  font-size: 22px;
  font-weight: 850 !important;
  color: #ffe6a0;
}
.policy {
  flex-direction: row !important;
  align-items: flex-start !important;
  padding: 14px 15px;
  border-radius: 13px;
  background: rgba(15,23,42,.50);
  border: 1px solid rgba(148,163,184,.13);
  color: #cbd6e4 !important;
  font-weight: 500 !important;
}
.policy input { min-height: auto !important; width: 18px; height: 18px; padding:0 !important; flex: 0 0 auto; accent-color: var(--v2-green); }
.actions { margin-top: 4px !important; }
#payBtn {
  width: min(100%, 460px);
  min-height: 54px;
  border-radius: 13px !important;
  background: linear-gradient(135deg, #54eca6, #25c576) !important;
  color: #041b10 !important;
  font-size: 16px !important;
  font-weight: 850 !important;
  box-shadow: 0 17px 38px rgba(37,197,118,.24) !important;
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
#payBtn:hover { transform: translateY(-2px) !important; box-shadow: 0 20px 42px rgba(37,197,118,.30) !important; }
.payment-reassurance {
  margin: -4px auto 0;
  color: #9fb0c3;
  font-size: 12px;
  text-align: center;
  line-height: 1.5;
}
.payment-reassurance strong { color: #dce8f5; }

.conditions-card { max-width: 980px !important; margin-inline: auto; }
.conditions-card ul { color: #aebccd !important; line-height: 1.55; }

.footer {
  max-width: 1180px;
  margin-top: 18px;
  padding-top: 26px;
  border-top: 1px solid rgba(148,163,184,.11);
}
.footer a { color: #c9d5e4; }
.footer a:hover { color: #fff; }

@media (max-width: 900px) {
  .nab-header-inner { min-height: 58px; }
  .nab-nav { background: rgba(3,8,15,.99) !important; }
  .nab-nav-links { width:100%; }
  .nab-nav-links a { font-size: .94rem !important; }
  .nab-nav-cta-group { width:100%; }
  .nab-nav-cta,.nab-nav-tarifs,.nav-client-link { width:100%; min-height:46px; }

  .header-main { padding-top: 34px; }
  .trust-strip { grid-template-columns: 1fr; max-width: 520px; }
  .trust-item { justify-content:flex-start; }
  .info-card { grid-template-columns: 1fr; }
  .info-card .small-muted { grid-column: 1; margin-top: 0; }
  #bookingForm { grid-template-columns: 1fr; }
  #bookingForm label:has(#pickup_address),
  #bookingForm label:has(#dropoff_address),
  #bookingForm label:has(#note),
  #bookingForm .fare-block,
  #bookingForm .policy,
  #bookingForm .actions,
  #bookingForm .payment-reassurance { grid-column: 1; }
}

@media (max-width: 600px) {
  .container { padding-inline: 13px; }
  .ticker__inner { animation-duration: 33s; }
  .ticker__inner span { font-size: 12px; }
  .header-main::before { font-size: 10px; letter-spacing: .06em; }
  .site-title { font-size: clamp(32px, 11vw, 45px) !important; gap: .12em; }
  .subtitle { font-size: 15px; }
  .hero-actions { display:grid; grid-template-columns:1fr; width:100%; }
  .hero-primary,.hero-secondary { width:100%; }
  .card { border-radius: 18px; }
  .flipboard-card { padding: 15px 13px !important; }
  .flipboard { padding: 8px !important; }
  .flipboard-cell { font-size: 11px !important; padding: 6px !important; }
  .form-wrap { padding: 20px 15px !important; margin-top: 26px; }
  #bookingForm { gap: 14px !important; }
  #bookingForm input,#bookingForm select,#bookingForm textarea { font-size:16px; }
  #payBtn { width:100%; }
}

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


/* V2.1 — affinage desktop d'après contrôle visuel staging */
@media (min-width: 901px) {
  /* Utiliser davantage la largeur disponible sans toucher à la logique. */
  .container { max-width: 1260px !important; }
  .nab-header-inner { max-width: 1260px !important; }

  /* La zone tarifs n'est plus composée de 6 colonnes trop étroites. */
  .zones-cards-inner {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
    align-items: stretch;
  }

  .zones-cards-inner .zone-card {
    min-width: 0 !important;
    min-height: 245px !important;
    padding: 18px 19px !important;
  }

  .zones-cards-inner .zone-card h3 {
    font-size: 17px !important;
    line-height: 1.28;
    margin-bottom: 12px !important;
  }

  .zones-cards-inner .zone-card p {
    font-size: 13.5px !important;
    line-height: 1.58 !important;
  }

  .zones-cards-inner .zone-card .price {
    font-size: 22px !important;
    margin-top: 16px !important;
  }

  /* Arcachon / Biscarrosse : deux vraies cartes équilibrées. */
  .zone-extra-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin-top: 16px !important;
  }

  .zone-extra-row .zone-card {
    min-height: 230px !important;
    padding: 20px !important;
  }

  .zone-extra-row .zone-card h3 {
    font-size: 18px !important;
    margin-bottom: 20px !important;
  }

  .zone-extra-row select {
    min-height: 48px;
    font-size: 15px;
    color-scheme: dark;
  }

  /* Formulaire un peu plus large, plus confortable sur grand écran. */
  .form-wrap,
  .conditions-card {
    max-width: 1080px !important;
  }

  .form-wrap {
    padding-inline: 42px !important;
  }

  #bookingForm {
    gap: 18px 20px !important;
  }

  #bookingForm label > span {
    font-size: 14px;
  }

  #bookingForm input,
  #bookingForm select,
  #bookingForm textarea {
    font-size: 15px;
  }

  /* Bloc "Comment ça marche ?" plus lisible sans augmenter sa hauteur. */
  .info-card {
    grid-template-columns: 230px 1fr !important;
    padding: 24px 26px !important;
  }

  .info-card ol {
    columns: 2;
    column-gap: 34px;
  }

  .info-card li {
    break-inside: avoid;
    margin-bottom: 10px !important;
  }
}

/* Lisibilité générale des zones */
.zone-card {
  isolation: isolate;
}
.zone-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,.02), transparent 34%, rgba(0,0,0,.05));
  z-index: -1;
}
.zone-card h3 { color: #f8fafc !important; }
.zone-card p { color: #b8c4d3 !important; }
.zone-card .price { color: #ffffff !important; }

/* Le menu déroulant natif reste piloté par le navigateur, mais son champ fermé est cohérent. */
.z7-select-label select,
.z8-select-label select,
#bookingForm select {
  color-scheme: dark;
}

/* Footer plus lisible, sans changer son contenu. */
.footer {
  font-size: 13px !important;
  line-height: 1.65 !important;
  color: #aebccd !important;
}


/* V2.2 — finition visuelle formulaire / calendrier staging */

/* Le grand bloc Tarifs mérite une vraie marge intérieure : le titre ne colle plus au bord. */
.zones-cards {
  padding: clamp(20px, 2.4vw, 30px) !important;
  border: 1px solid rgba(148,163,184,.14) !important;
  background:
    radial-gradient(circle at 88% 0%, rgba(59,130,246,.055), transparent 24rem),
    linear-gradient(180deg, rgba(9,18,31,.82), rgba(5,11,20,.72)) !important;
  box-shadow: 0 22px 62px rgba(0,0,0,.24) !important;
}
.zones-cards > h2 {
  margin-bottom: 20px !important;
}

/* Le calendrier devient une étape claire à part entière.
   Cela évite une grande zone vide à gauche quand le calendrier est haut. */
#bookingForm label:has(#datetime) {
  grid-column: 1 / -1 !important;
  max-width: 520px;
}
#nabAvailWrap {
  grid-column: 1 / -1 !important;
  width: 100%;
  margin: -2px 0 8px !important;
  padding: 16px !important;
  border-color: rgba(148,163,184,.20) !important;
  background: rgba(5,12,22,.46) !important;
}
#nabAvailTop {
  gap: 10px !important;
}
#nabAvailInfo {
  flex: 1 1 340px;
}
#nabAvailSelected {
  padding-top: 4px;
  font-weight: 650;
}

/* Confirmation téléphone : elle reste lisible sans donner l'impression d'un champ perdu. */
#bookingForm label:has(#customer_phone_confirm) {
  grid-column: 1 / -1 !important;
  max-width: calc(50% - 10px);
}

/* Message de blocage sous le bouton, jamais à côté. */
#bookingForm .actions {
  flex-direction: column !important;
  align-items: center !important;
  gap: 8px !important;
}
#nabPayLockMsg {
  width: 100%;
  max-width: 560px;
  margin: 0 auto !important;
  text-align: center;
  font-size: 12.5px !important;
  line-height: 1.45 !important;
}
#payBtn:disabled {
  opacity: .72 !important;
  filter: saturate(.72);
}

/* Les informations légales importantes doivent rester lisibles. */
.policy {
  font-size: 12.5px !important;
  line-height: 1.5 !important;
}
.payment-reassurance {
  font-size: 12.5px !important;
  color: #afbdcd !important;
  margin-top: 0 !important;
}

@media (max-width: 900px) {
  #bookingForm label:has(#datetime),
  #bookingForm label:has(#customer_phone_confirm),
  #nabAvailWrap {
    grid-column: 1 !important;
    max-width: none !important;
  }

  .zones-cards {
    padding: 18px 14px !important;
  }
}


/* V2.3 — calendrier, conditions et footer premium */

/* Calendrier : structure claire en deux lignes au lieu d'une barre tassée. */
#nabAvailWrap {
  border-radius: 16px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}
#nabAvailTop {
  display: grid !important;
  grid-template-columns: auto minmax(180px, 1fr) auto auto;
  grid-template-areas:
    "prev title next jump"
    "info info info info";
  align-items: center !important;
  gap: 10px 12px !important;
}
#nabAvailPrev { grid-area: prev; }
#nabAvailTitle {
  grid-area: title;
  min-width: 0;
  font-size: 15px;
  font-weight: 800 !important;
}
#nabAvailNext { grid-area: next; }
#nabAvailJump {
  grid-area: jump;
  min-width: 145px;
}
#nabAvailInfo {
  grid-area: info;
  margin-top: 2px !important;
  padding-top: 10px;
  border-top: 1px solid rgba(148,163,184,.13);
  line-height: 1.48 !important;
}
#nabAvailInfoLine1 {
  display: inline-block;
  margin-bottom: 3px;
  font-weight: 750;
}
#nabAvailInfoLine2 {
  color: #bcc8d6;
}
#nabAvailSelected {
  margin-top: 12px !important;
  padding: 10px 12px 0 !important;
  border-top: 1px solid rgba(148,163,184,.12);
}
#nabAvailHint {
  color: #9fb0c3;
}
#nabAvailTop .btn,
#nabAvailJump {
  min-height: 40px;
  border-radius: 10px !important;
}

/* Conditions : plus faciles à lire, mais toujours secondaires. */
.conditions-card {
  padding: 24px 26px !important;
}
.conditions-card h2 {
  font-size: 19px !important;
  margin-bottom: 12px !important;
}
.conditions-card ul {
  font-size: 13.5px !important;
  line-height: 1.58 !important;
}
.conditions-card li {
  margin-bottom: 6px !important;
}

/* Footer : vraie fin de page structurée, sans toucher au contenu. */
.footer {
  max-width: 1080px !important;
  margin: 34px auto 0 !important;
  padding: 28px 26px 34px !important;
  border-top: 1px solid rgba(148,163,184,.14) !important;
  color: #aebccd !important;
}
.footer-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  padding: 20px 0 22px;
  border-bottom: 1px solid rgba(148,163,184,.10);
}
.footer-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.footer-col a {
  display: inline-flex;
  width: fit-content;
  padding: 2px 0;
  color: #cbd6e4 !important;
  text-decoration: none;
  transition: color .18s ease, transform .18s ease;
}
.footer-col a:hover {
  color: #fff !important;
  transform: translateX(2px);
}
.footer-bottom {
  padding-top: 20px;
  text-align: center;
}
.footer-line {
  display: inline-block;
  margin: 0 8px 5px;
  color: #9fb0c3;
}
.footer-brand {
  margin: 10px 0 0;
  color: #eef5fb;
  font-weight: 800;
  letter-spacing: .015em;
}

/* Largeurs intermédiaires : éviter des cartes trop serrées. */
@media (min-width: 901px) and (max-width: 1120px) {
  .zones-cards-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Mobile et tablette : calendrier empilé et footer mono-colonne. */
@media (max-width: 900px) {
  #nabAvailTop {
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "title title"
      "prev next"
      "jump jump"
      "info info" !important;
  }
  #nabAvailPrev,
  #nabAvailNext,
  #nabAvailJump {
    width: 100%;
  }
  #nabAvailTitle {
    text-align: left;
  }
  .footer-columns {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .footer {
    padding-inline: 16px !important;
  }
}


/* V3.0 — direction artistique luxe/premium fidèle à la maquette choisie */

/* ===== Base générale ===== */
:root{
  --lux-bg:#040b13;
  --lux-panel:#07111c;
  --lux-panel-2:#0a1522;
  --lux-gold:#efc15d;
  --lux-gold-2:#ffd986;
  --lux-green:#2fd08a;
  --lux-line:rgba(255,255,255,.11);
  --lux-text:#f5f1e9;
  --lux-muted:#aeb7c3;
}
body{
  background:
    radial-gradient(circle at 85% 0%, rgba(229,171,73,.06), transparent 30rem),
    linear-gradient(180deg,#06101a 0%,#03080e 55%,#02060a 100%) !important;
}
.ticker{display:none!important}

/* ===== Navigation comme la maquette ===== */
.nab-header{
  position:sticky;
  top:0;
  background:rgba(4,11,19,.92)!important;
  border-bottom:1px solid rgba(232,190,96,.16)!important;
  box-shadow:0 10px 34px rgba(0,0,0,.24)!important;
  backdrop-filter:blur(16px) saturate(120%);
}
.nab-header-inner{
  max-width:1360px!important;
  min-height:72px!important;
  padding:10px 24px!important;
}
.nab-logo{
  display:inline-flex!important;
  align-items:center;
  gap:11px;
  min-width:225px;
}
.luxury-logo-mark{
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--lux-gold);
  font-size:29px;
  transform:rotate(-12deg);
  text-shadow:0 0 18px rgba(239,193,93,.28);
}
.luxury-logo-copy{
  display:flex;
  flex-direction:column;
  line-height:1.02;
}
.luxury-logo-copy strong{
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:18px;
  font-weight:700;
  letter-spacing:.01em;
}
.luxury-logo-copy small{
  margin-top:5px;
  color:var(--lux-gold);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.34em;
  font-weight:800;
}
.nab-nav{gap:22px!important}
.nab-nav-links{gap:24px!important}
.nab-nav-links a{
  color:#d7dce3!important;
  font-size:12px!important;
  letter-spacing:0!important;
  text-transform:none!important;
  font-weight:550!important;
}
.nab-nav-links a::after{background:var(--lux-gold)!important}
.nab-nav-tarifs{
  color:#f5df9e!important;
  border-color:rgba(239,193,93,.46)!important;
  background:rgba(239,193,93,.07)!important;
  box-shadow:none!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
.nab-nav-cta{
  background:linear-gradient(180deg,#f8d67f,#e9b94d)!important;
  color:#171009!important;
  border-color:rgba(255,255,255,.22)!important;
  box-shadow:0 11px 28px rgba(220,166,63,.18)!important;
  text-transform:none!important;
  letter-spacing:0!important;
  font-weight:800!important;
}
.nav-client-link{
  color:#e8edf4!important;
  border-color:rgba(255,255,255,.2)!important;
  background:rgba(12,21,33,.76)!important;
  text-transform:none!important;
  letter-spacing:0!important;
}

/* ===== Hero premium photographique ===== */
.header-main{
  position:relative;
  max-width:none!important;
  min-height:535px;
  margin:0!important;
  padding:
    54px
    max(28px,calc((100vw - 1320px)/2))
    118px!important;
  text-align:left!important;
  overflow:hidden;
  background:
    linear-gradient(90deg,
      rgba(3,9,15,.98) 0%,
      rgba(3,9,15,.94) 31%,
      rgba(3,9,15,.70) 49%,
      rgba(3,9,15,.22) 72%,
      rgba(3,9,15,.04) 100%),
    linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.24)),
    url("assets/hero-vignes-avion-desktop.avif") center right/cover no-repeat;
  border-bottom:1px solid rgba(239,193,93,.14);
}
.header-main::before{display:none!important}
.header-main::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:150px;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(2,7,12,.92));
}
.hero-copy{
  position:relative;
  z-index:2;
  width:min(580px,48vw);
}
.hero-eyebrow{
  margin:0 0 14px;
  color:#eacb85;
  font-size:12px;
  font-weight:800;
  letter-spacing:.20em;
  text-transform:uppercase;
}
.hero-eyebrow span{margin:0 7px;color:#b98a38}
.site-title{
  justify-content:flex-start!important;
  display:block!important;
  margin:0!important;
  max-width:620px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(46px,5vw,76px)!important;
  line-height:.94!important;
  letter-spacing:-.035em!important;
  font-weight:650!important;
  text-shadow:0 15px 40px rgba(0,0,0,.48)!important;
}
.site-title .title-word{
  display:inline;
  margin-right:.12em;
}
.site-title .title-word--blue,
.site-title .title-word--white{color:#fff!important}
.site-title .title-word--red{
  display:block;
  margin-top:4px;
  color:var(--lux-gold-2)!important;
}
.hero-promise{
  margin:17px 0 0;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(24px,2.4vw,34px);
  line-height:1.15;
  font-weight:650;
}
.hero-lead{
  max-width:560px;
  margin:13px 0 0;
  color:#d1d7df;
  font-size:15px;
  line-height:1.65;
}
.homepage-lang-switcher{
  justify-content:flex-start!important;
  margin:17px 0 0!important;
}
.homepage-lang-switcher button{
  background:rgba(4,11,19,.72)!important;
  border:1px solid rgba(239,193,93,.22)!important;
}
.hero-actions{
  justify-content:flex-start!important;
  margin-top:22px!important;
}
.hero-primary,
.hero-secondary{
  min-height:48px!important;
  padding:0 22px!important;
  border-radius:999px!important;
  font-size:14px!important;
  font-weight:800!important;
}
.hero-primary{
  background:linear-gradient(180deg,#f8d67f,#e8b548)!important;
  color:#171009!important;
  box-shadow:0 15px 36px rgba(229,178,73,.22)!important;
}
.hero-secondary{
  color:#fff!important;
  background:rgba(3,9,15,.58)!important;
  border:1px solid rgba(239,193,93,.48)!important;
}
.trust-strip{
  position:absolute;
  z-index:3;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  width:min(1320px,calc(100% - 48px));
  max-width:none!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:0!important;
  margin:0!important;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(3,10,16,.80);
  box-shadow:0 20px 45px rgba(0,0,0,.28);
  backdrop-filter:blur(14px);
}
.trust-item{
  min-height:66px!important;
  border:0!important;
  border-right:1px solid rgba(255,255,255,.10)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  justify-content:flex-start!important;
  padding:12px 20px!important;
  color:#f0f3f7!important;
  font-size:13px!important;
}
.trust-item:last-child{border-right:0!important}
.trust-icon{
  color:var(--lux-gold-2)!important;
  border-color:rgba(239,193,93,.50)!important;
  background:rgba(239,193,93,.08)!important;
}

/* ===== Supprimer visuellement les anciens blocs non présents sur la maquette ===== */
.flipboard-card,
.info-card{
  display:none!important;
}

/* ===== Layout principal : tarifs à gauche, réservation à droite ===== */
main.container{
  max-width:1360px!important;
  margin:0 auto!important;
  padding:20px 24px 0!important;
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(390px,.92fr);
  gap:18px;
  align-items:start;
}
#zones{
  grid-column:1;
  grid-row:1;
  margin:0!important;
}
#reservation{
  grid-column:2;
  grid-row:1;
  margin:0!important;
  max-width:none!important;
}
.conditions-card{
  grid-column:1 / -1;
  max-width:none!important;
}
.footer{
  max-width:1360px!important;
}

/* ===== Bloc tarifs fidèle à la maquette ===== */
.zones-cards{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px!important;
  padding:20px!important;
  background:linear-gradient(180deg,rgba(5,14,23,.96),rgba(3,10,17,.98))!important;
  border:1px solid rgba(255,255,255,.11)!important;
  border-radius:18px!important;
  box-shadow:0 22px 58px rgba(0,0,0,.28)!important;
}
.zones-cards > h2,
.zone-search-card,
.bottom-note,
.zones-tabs-mobile{
  grid-column:1 / -1;
}
.zones-cards > h2{
  margin:0 0 2px!important;
  padding-left:28px;
  position:relative;
  color:#f8f1df!important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:28px!important;
  font-weight:650;
}
.zones-cards > h2::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:18px;
  height:2px;
  transform:translateY(-50%);
  background:var(--lux-gold);
}
.zone-search-card{
  margin:0 0 6px!important;
  padding:12px 14px!important;
  background:rgba(9,18,29,.76)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:14px!important;
}
.zone-search-card h3{font-size:14px!important}
.zone-search-help,.zone-search-result{font-size:12px!important}
.zones-cards-inner,
.zone-extra-row{
  display:contents!important;
}
.zone-card{
  min-width:0!important;
  min-height:168px!important;
  padding:14px!important;
  border:1px solid rgba(255,255,255,.14)!important;
  border-left-width:1px!important;
  border-radius:12px!important;
  overflow:hidden!important;
  background-size:cover!important;
  background-position:center!important;
  box-shadow:inset 0 -60px 70px rgba(0,0,0,.52),0 10px 24px rgba(0,0,0,.20)!important;
}
.zone-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,rgba(2,8,14,.06) 0%,rgba(2,8,14,.18) 34%,rgba(2,8,14,.82) 100%);
}
.zone-card::after{display:none!important}
.zone-card.z1,
.zone-card.z2{
  background-image:
    linear-gradient(180deg,rgba(4,9,15,.18),rgba(4,9,15,.76)),
    url("https://images.unsplash.com/photo-1729831607236-f4187bf35632?auto=format&fit=crop&w=700&q=78")!important;
}
.zone-card.z3,
.zone-card.z4{
  background-image:
    linear-gradient(180deg,rgba(4,9,15,.18),rgba(4,9,15,.78)),
    url("https://images.unsplash.com/photo-1594290162480-ee7b8b3ad3ad?auto=format&fit=crop&w=700&q=78")!important;
}
.zone-card.z5,
.zone-card.z6{
  background-image:
    linear-gradient(180deg,rgba(4,9,15,.18),rgba(4,9,15,.80)),
    url("https://images.unsplash.com/photo-1506377247377-2a5b3b417ebb?auto=format&fit=crop&w=700&q=78")!important;
}
.zone-card.z7,
.zone-card.z8{
  background-image:
    linear-gradient(180deg,rgba(4,9,15,.18),rgba(4,9,15,.80)),
    url("https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=700&q=78")!important;
}
.zone-card h3{
  color:#fff!important;
  font-size:15px!important;
  line-height:1.25!important;
  text-shadow:0 2px 8px rgba(0,0,0,.65);
}
.zone-card p{
  margin-top:auto!important;
  color:#d9e0e8!important;
  font-size:10.5px!important;
  line-height:1.35!important;
  max-height:42px;
  overflow:hidden;
  text-shadow:0 1px 5px rgba(0,0,0,.72);
}
.zone-card .price{
  color:#fff!important;
  font-size:22px!important;
  margin-top:8px!important;
  text-shadow:0 2px 7px rgba(0,0,0,.7);
}
.zone-extra-row .zone-card{min-height:168px!important}
.zone-extra-row select{
  min-height:38px!important;
  padding:8px 10px!important;
  background:rgba(2,8,14,.82)!important;
  border:1px solid rgba(239,193,93,.46)!important;
}
.z7-note,.z8-note{display:none!important}
.bottom-note{
  margin:4px 0 0!important;
  padding-top:8px;
  border-top:1px solid rgba(255,255,255,.08);
  color:#8996a4!important;
  font-size:10px!important;
}

/* ===== Formulaire façon panneau premium ===== */
.form-wrap{
  padding:22px!important;
  border-radius:18px!important;
  border:1px solid rgba(239,193,93,.22)!important;
  background:
    radial-gradient(circle at 90% 0%,rgba(239,193,93,.08),transparent 20rem),
    linear-gradient(180deg,#08131f,#050d16)!important;
  box-shadow:0 24px 65px rgba(0,0,0,.34)!important;
}
.form-wrap::before{
  color:#a7e9ca!important;
  background:rgba(47,208,138,.08)!important;
  border-color:rgba(47,208,138,.26)!important;
}
.form-wrap h2{
  margin:0 0 4px!important;
  font-family:Georgia,"Times New Roman",serif;
  color:#fff!important;
  font-size:31px!important;
  font-weight:650!important;
}
.form-wrap h2::after{
  content:"Réservez votre trajet en quelques clics";
  display:block;
  margin-top:6px;
  color:#b4beca;
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:13px;
  line-height:1.4;
  font-weight:450;
}
#bookingForm{
  margin-top:18px;
  gap:11px 12px!important;
}
#bookingForm label{
  color:#eef1f5!important;
  font-size:11px!important;
  font-weight:700!important;
}
#bookingForm input,
#bookingForm select,
#bookingForm textarea{
  min-height:40px!important;
  padding:9px 11px!important;
  border-radius:8px!important;
  background:#030b13!important;
  border-color:rgba(255,255,255,.16)!important;
  font-size:12px!important;
}
#bookingForm textarea{min-height:58px!important}
#bookingForm input:focus,
#bookingForm select:focus,
#bookingForm textarea:focus{
  border-color:rgba(239,193,93,.72)!important;
  box-shadow:0 0 0 3px rgba(239,193,93,.08)!important;
}
.fare-block{
  padding:12px!important;
  border-radius:10px!important;
  background:rgba(239,193,93,.055)!important;
  border-color:rgba(239,193,93,.18)!important;
}
.fare{color:var(--lux-gold-2)!important;font-size:18px!important}
.policy{
  padding:10px 11px!important;
  border-radius:9px!important;
  font-size:10px!important;
}
#payBtn{
  width:100%!important;
  min-height:46px!important;
  border-radius:9px!important;
  background:linear-gradient(180deg,#f9d77f,#e8b54b)!important;
  color:#171009!important;
  font-size:14px!important;
  box-shadow:0 14px 30px rgba(227,173,67,.20)!important;
}
.payment-reassurance{
  color:#96a3b2!important;
  font-size:10px!important;
}

/* Calendrier : plus compact dans la colonne de réservation */
#nabAvailWrap{
  padding:11px!important;
  border-radius:10px!important;
}
#nabAvailTop{
  grid-template-columns:auto minmax(120px,1fr) auto auto!important;
  gap:7px!important;
}
#nabAvailTop .btn,#nabAvailJump{min-height:34px!important;font-size:10px!important}
#nabAvailInfo{font-size:10px!important}
#nabAvailSelected,#nabAvailHint{font-size:10px!important}
#nabAvailScroll{max-height:260px!important}

/* Conditions plus discrètes, comme bas de maquette */
.conditions-card{
  margin-top:2px!important;
  padding:18px 20px!important;
  background:rgba(7,16,27,.80)!important;
  border-radius:14px!important;
}
.conditions-card h2{font-size:16px!important}
.conditions-card ul{font-size:11px!important;color:#aab5c2!important}

/* ===== Responsive ===== */
@media (max-width:1180px){
  main.container{
    grid-template-columns:1fr!important;
  }
  #zones,#reservation,.conditions-card{
    grid-column:1!important;
    grid-row:auto!important;
  }
  .zones-cards{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  .form-wrap{max-width:920px!important;margin-inline:auto!important}
}
@media (max-width:900px){
  .nab-logo{min-width:0}
  .luxury-logo-copy strong{font-size:16px}
  .luxury-logo-copy small{font-size:9px}
  .header-main{
    min-height:610px;
    padding:38px 18px 145px!important;
    background:
      linear-gradient(180deg,rgba(3,9,15,.76) 0%,rgba(3,9,15,.92) 58%,rgba(3,9,15,.99) 100%),
      url("https://images.unsplash.com/photo-1729831607236-f4187bf35632?auto=format&fit=crop&w=1200&q=82") center/cover no-repeat;
  }
  .hero-copy{width:100%;max-width:620px}
  .site-title{font-size:clamp(44px,12vw,68px)!important}
  .trust-strip{
    width:calc(100% - 28px);
    grid-template-columns:repeat(2,1fr)!important;
    bottom:16px;
  }
  .trust-item{
    min-height:58px!important;
    padding:10px 12px!important;
    font-size:11px!important;
  }
  .zones-cards{
    display:block!important;
    padding:17px 14px!important;
  }
  .zones-cards-inner,
  .zone-extra-row{
    display:none!important;
  }
  .zones-tabs-mobile{display:block!important}
  .zones-cards > h2{
    padding-left:24px;
    font-size:24px!important;
  }
  #nabAvailTop{
    grid-template-columns:1fr 1fr!important;
  }
}
@media (max-width:600px){
  .header-main{min-height:650px}
  .hero-eyebrow{font-size:10px;letter-spacing:.14em}
  .hero-promise{font-size:24px}
  .hero-lead{font-size:13px}
  .homepage-lang-switcher{gap:6px}
  .trust-strip{grid-template-columns:1fr 1fr!important}
  .trust-item:nth-child(2){border-right:0!important}
  .trust-item:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.10)!important}
  main.container{padding-inline:12px!important}
}


/* V3.1 — correction mobile après contrôle réel Samsung */

@media (max-width: 900px) {
  html, body {
    max-width: 100%;
    overflow-x: hidden !important;
  }

  * {
    min-width: 0;
  }

  .nab-header-inner {
    width: 100%;
    padding: 14px 18px !important;
    gap: 12px !important;
  }

  .nab-logo {
    max-width: calc(100% - 72px);
    gap: 10px !important;
  }

  .luxury-logo-mark {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    font-size: 26px;
  }

  .luxury-logo-copy strong {
    font-size: clamp(17px, 5.7vw, 24px) !important;
    white-space: nowrap;
  }

  .luxury-logo-copy small {
    font-size: 10px !important;
    letter-spacing: .28em !important;
  }

  .nab-nav-toggle {
    flex: 0 0 48px;
    width: 48px !important;
    height: 48px !important;
  }

  .header-main {
    min-height: auto !important;
    padding: 44px 22px 28px !important;
  }

  .hero-copy {
    width: 100% !important;
    max-width: none !important;
  }

  .hero-eyebrow {
    margin-bottom: 16px !important;
    font-size: 11px !important;
    line-height: 1.45;
    text-align: center;
  }

  .site-title {
    max-width: 100% !important;
    font-size: clamp(46px, 13.2vw, 68px) !important;
    line-height: .96 !important;
    text-align: left;
  }

  .site-title .title-word {
    display: block !important;
    margin: 0 !important;
  }

  .hero-promise {
    margin-top: 22px !important;
    font-size: clamp(30px, 8.2vw, 40px) !important;
    line-height: 1.08 !important;
  }

  .hero-lead {
    margin-top: 20px !important;
    font-size: 16px !important;
    line-height: 1.62 !important;
    color: #d4d9df !important;
  }

  .homepage-lang-switcher {
    margin-top: 20px !important;
  }

  .homepage-lang-switcher .flag-icon {
    width: 30px !important;
    height: 22px !important;
  }

  .hero-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    margin-top: 24px !important;
  }

  .hero-primary,
  .hero-secondary {
    width: 100%;
    min-height: 54px !important;
    justify-content: center;
    font-size: 16px !important;
  }

  .trust-strip {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    margin: 18px 0 0 !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }

  .trust-item {
    min-height: 88px !important;
    padding: 14px 12px !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  main.container {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 18px 14px 0 !important;
  }

  main.container > * {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  #zones,
  #reservation,
  .conditions-card {
    grid-column: auto !important;
    grid-row: auto !important;
  }

  .zones-cards {
    width: 100% !important;
    padding: 20px 16px !important;
    border-radius: 20px !important;
  }

  .zones-cards > h2 {
    font-size: clamp(30px, 8vw, 42px) !important;
    line-height: 1.04 !important;
    padding-left: 30px !important;
    margin-bottom: 20px !important;
    overflow-wrap: anywhere;
  }

  .zone-search-card {
    width: 100% !important;
    padding: 16px !important;
    overflow: hidden;
  }

  .zone-search-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .zone-search-row input,
  .zone-search-row button {
    width: 100% !important;
    max-width: 100% !important;
  }

  .zones-tabs-strip {
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px !important;
    overflow: visible !important;
  }

  .zone-tab {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px;
    padding: 7px 4px !important;
    font-size: 16px !important;
  }

  .zones-tabs-panel {
    width: 100% !important;
    overflow: hidden;
    padding: 16px !important;
  }

  .zones-tabs-panel-header {
    align-items: center !important;
  }

  .zones-tabs-title {
    font-size: 16px !important;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }

  .zones-tabs-price {
    flex: 0 0 auto;
    font-size: 15px !important;
  }

  .bottom-note {
    font-size: 12px !important;
    line-height: 1.55 !important;
  }

  .form-wrap {
    width: 100% !important;
    max-width: 100% !important;
    margin: 22px 0 0 !important;
    padding: 22px 16px !important;
    overflow: hidden !important;
  }

  .form-wrap h2 {
    font-size: clamp(36px, 9.5vw, 50px) !important;
    line-height: 1.02 !important;
    overflow-wrap: anywhere;
  }

  .form-wrap h2::after {
    font-size: 15px !important;
    line-height: 1.45 !important;
  }

  #bookingForm {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 16px !important;
  }

  #bookingForm > *,
  #bookingForm label,
  #bookingForm input,
  #bookingForm select,
  #bookingForm textarea,
  #bookingForm .fare-block,
  #bookingForm .policy,
  #bookingForm .actions,
  #bookingForm .payment-reassurance {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  #bookingForm label {
    gap: 8px !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
  }

  #bookingForm input,
  #bookingForm select,
  #bookingForm textarea {
    min-height: 50px !important;
    font-size: 16px !important;
    padding: 12px 14px !important;
  }

  #bookingForm textarea {
    min-height: 90px !important;
  }

  #bookingForm .small-muted,
  #bookingForm p,
  .payment-reassurance,
  #nabAvailInfoLine2,
  #nabAvailHint,
  #nabPayLockMsg {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  #nabAvailWrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    padding: 14px !important;
  }

  #nabAvailTop {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  #nabAvailPrev,
  #nabAvailNext,
  #nabAvailJump,
  #nabAvailTitle,
  #nabAvailInfo {
    width: 100% !important;
    max-width: 100% !important;
  }

  #nabAvailTitle {
    order: 1;
    font-size: 18px !important;
  }

  #nabAvailPrev {
    order: 2;
  }

  #nabAvailNext {
    order: 3;
  }

  #nabAvailJump {
    order: 4;
    min-width: 0 !important;
    font-size: 16px !important;
  }

  #nabAvailInfo {
    order: 5;
    font-size: 13px !important;
  }

  #nabAvailSelected,
  #nabAvailHint {
    font-size: 13px !important;
    line-height: 1.5 !important;
  }

  .policy {
    display: grid !important;
    grid-template-columns: 24px minmax(0,1fr) !important;
    gap: 12px !important;
    align-items: start !important;
    padding: 14px !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  .policy input {
    width: 22px !important;
    height: 22px !important;
    margin: 2px 0 0 !important;
  }

  .actions {
    width: 100% !important;
  }

  #payBtn {
    width: 100% !important;
    min-height: 54px !important;
    font-size: 16px !important;
    color: #171009 !important;
    opacity: 1 !important;
  }

  #payBtn:disabled {
    color: #171009 !important;
    opacity: .72 !important;
  }

  .payment-reassurance {
    text-align: center !important;
    font-size: 11px !important;
    line-height: 1.5 !important;
  }

  .conditions-card {
    margin-top: 22px !important;
    padding: 22px 18px !important;
    overflow: hidden;
  }

  .conditions-card h2 {
    font-size: 20px !important;
    line-height: 1.2 !important;
  }

  .conditions-card ul {
    font-size: 13px !important;
    line-height: 1.55 !important;
    padding-left: 20px !important;
  }

  .footer {
    width: 100% !important;
    max-width: 100% !important;
    padding: 28px 18px 36px !important;
  }

  .footer-columns {
    grid-template-columns: 1fr 1fr !important;
    gap: 20px 14px !important;
  }

  .footer-col {
    gap: 9px !important;
  }

  .footer-col a {
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  .footer-bottom {
    font-size: 12px !important;
    line-height: 1.5 !important;
  }
}

@media (max-width: 520px) {
  .nab-header-inner {
    min-height: 82px !important;
  }

  .luxury-logo-copy strong {
    font-size: 18px !important;
  }

  .header-main {
    padding-inline: 18px !important;
  }

  .site-title {
    font-size: clamp(44px, 12.4vw, 58px) !important;
  }

  .hero-promise {
    font-size: 30px !important;
  }

  .trust-strip {
    grid-template-columns: 1fr 1fr !important;
  }

  .zones-cards > h2 {
    font-size: 34px !important;
  }

  .form-wrap {
    padding-inline: 14px !important;
  }

  .footer-columns {
    grid-template-columns: 1fr 1fr !important;
  }
}


/* V3.2 — finition mobile compacte et calendrier sans vide */

@media (max-width: 600px) {
  /* Typographie premium mais moins envahissante */
  .zones-cards > h2 {
    font-size: 29px !important;
    line-height: 1.08 !important;
    padding-left: 26px !important;
    margin-bottom: 16px !important;
  }

  .zone-search-card {
    padding: 14px !important;
  }

  .zone-search-card h3 {
    font-size: 15px !important;
    line-height: 1.25 !important;
  }

  .zone-search-card p,
  .zone-search-help,
  .zone-search-result {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  .zone-search-row input,
  .zone-search-row button {
    min-height: 44px !important;
    font-size: 14px !important;
  }

  .zone-tab {
    min-height: 38px !important;
    font-size: 14px !important;
  }

  .zones-tabs-panel {
    padding: 14px !important;
  }

  .zones-tabs-title {
    font-size: 15px !important;
  }

  .zones-tabs-price {
    font-size: 14px !important;
  }

  .bottom-note {
    font-size: 11.5px !important;
    line-height: 1.5 !important;
    margin-top: 18px !important;
  }

  /* Formulaire : plus compact, plus proche de la maquette desktop */
  .form-wrap {
    margin-top: 18px !important;
    padding: 20px 14px !important;
  }

  .form-wrap h2 {
    font-size: 34px !important;
    line-height: 1.02 !important;
    margin-bottom: 2px !important;
  }

  .form-wrap h2::after {
    font-size: 13px !important;
    margin-top: 6px !important;
  }

  #bookingForm {
    gap: 12px !important;
    margin-top: 16px !important;
  }

  #bookingForm label {
    gap: 6px !important;
    font-size: 13px !important;
  }

  #bookingForm input,
  #bookingForm select,
  #bookingForm textarea {
    min-height: 46px !important;
    padding: 10px 12px !important;
    font-size: 15px !important;
    border-radius: 10px !important;
  }

  #bookingForm textarea {
    min-height: 76px !important;
  }

  #bookingForm .small-muted {
    font-size: 11px !important;
    line-height: 1.45 !important;
    margin-top: 2px !important;
  }

  .fare-block {
    padding: 13px !important;
  }

  .fare {
    font-size: 18px !important;
  }

  .policy {
    grid-template-columns: 22px minmax(0,1fr) !important;
    padding: 12px !important;
    gap: 10px !important;
    font-size: 11.5px !important;
  }

  .policy input {
    width: 20px !important;
    height: 20px !important;
  }

  #payBtn {
    min-height: 48px !important;
    font-size: 15px !important;
  }

  /* Calendrier : ne jamais réserver une grande zone vide si le backend staging est indisponible */
  #nabAvailWrap {
    padding: 12px !important;
    margin: 0 0 6px !important;
  }

  #nabAvailTop {
    gap: 8px !important;
  }

  #nabAvailTitle {
    font-size: 17px !important;
    line-height: 1.25 !important;
  }

  #nabAvailPrev,
  #nabAvailNext,
  #nabAvailJump {
    min-height: 42px !important;
    font-size: 14px !important;
  }

  #nabAvailInfo {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  #nabAvailSelected,
  #nabAvailHint {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  #nabAvailScroll:has(#nabAvailGrid:empty) {
    display: none !important;
  }

  #nabAvailScroll {
    max-height: 300px !important;
    margin-top: 8px !important;
  }

  /* Conditions plus discrètes */
  .conditions-card {
    margin-top: 18px !important;
    padding: 18px 16px !important;
  }

  .conditions-card h2 {
    font-size: 18px !important;
    line-height: 1.18 !important;
  }

  .conditions-card ul {
    font-size: 12px !important;
    line-height: 1.5 !important;
    padding-left: 18px !important;
  }

  /* Footer : une colonne sur petit écran pour éviter tout débordement horizontal */
  .footer {
    margin-top: 24px !important;
    padding: 22px 18px 30px !important;
    overflow: hidden !important;
  }

  .footer-columns {
    grid-template-columns: 1fr !important;
    gap: 6px !important;
    padding: 14px 0 18px !important;
  }

  .footer-col {
    gap: 8px !important;
  }

  .footer-col a {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  .footer-bottom {
    padding-top: 16px !important;
    font-size: 11.5px !important;
  }
}


/* V3.3 — polish mobile zones Z7/Z8 + footer robuste */

@media (max-width: 900px) {
  /* Z7 / Z8 : le tarif dynamique est déjà affiché dans l'en-tête du panneau.
     On masque le doublon visuel sous le sélecteur sans toucher au JS. */
  #z7PriceDisplayMobile,
  #z8PriceDisplayMobile {
    display: none !important;
  }

  #zone7Mobile,
  #zone8Mobile {
    margin-top: 8px !important;
  }

  #zone7Mobile .z7-note,
  #zone8Mobile .z8-note {
    margin: 8px 0 0 !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
    color: #9aa7b7 !important;
  }

  #zone7Mobile select,
  #zone8Mobile select {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 46px !important;
    padding: 10px 12px !important;
    font-size: 15px !important;
    box-sizing: border-box !important;
  }

  /* Note tarifs plus légère */
  .bottom-note {
    margin: 14px 0 0 !important;
    font-size: 11px !important;
    line-height: 1.5 !important;
  }

  /* Footer fiable sur tous les mobiles/tablettes étroits */
  footer.container.footer,
  .footer {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .footer-columns {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .footer-col {
    width: 100% !important;
    max-width: 100% !important;
    align-items: flex-start !important;
  }

  .footer-col a {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 4px 0 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    text-align: left !important;
  }

  .footer-bottom {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    text-align: center !important;
  }

  .footer-line {
    display: block !important;
    margin: 0 0 6px !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  .footer-brand {
    margin-top: 14px !important;
    font-size: 15px !important;
  }
}


/* V4.0 — parcours adresse compact + modal tarif */

/* La page tarifs devient compacte par défaut. */
#zones:not(.show-zone-details) .zones-cards-inner,
#zones:not(.show-zone-details) .zone-extra-row,
#zones:not(.show-zone-details) .zones-tabs-mobile,
#zones:not(.show-zone-details) .bottom-note {
  display: none !important;
}

#zones {
  display: block !important;
  padding: 24px !important;
}

#zones > h2 {
  margin: 0 0 16px !important;
  padding-left: 26px !important;
  font-size: 30px !important;
  line-height: 1.05 !important;
}

.quick-fare-card {
  margin: 0 !important;
  padding: 18px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(239,193,93,.08), transparent 22rem),
    rgba(6,15,25,.92) !important;
}

.quick-fare-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 4px;
}

.quick-fare-heading h3 {
  margin: 0 !important;
  color: #fff !important;
  font-size: 18px !important;
}

.quick-fare-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(239,193,93,.34);
  background: rgba(239,193,93,.07);
  color: #f3cd78;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  white-space: nowrap;
}

.quick-direction-label {
  display: grid;
  grid-template-columns: auto minmax(180px, 240px);
  align-items: center;
  gap: 12px;
  margin: 14px 0 12px;
  color: #cfd8e3;
  font-size: 12px;
  font-weight: 700;
}

.quick-direction-label select {
  width: 100%;
  min-height: 42px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 10px;
  background: #030b13;
  color: #fff;
  padding: 9px 12px;
}

.quick-fare-card .zone-search-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 10px !important;
  margin: 0 !important;
}

.quick-fare-card #zoneSearchInput {
  min-height: 48px;
  border-radius: 12px !important;
  padding: 11px 14px !important;
  font-size: 15px;
}

.quick-fare-card #zoneSearchBtn {
  min-height: 48px;
  border-radius: 12px !important;
  padding: 0 18px !important;
  background: linear-gradient(180deg,#f8d67f,#e8b54b) !important;
  color: #171009 !important;
  box-shadow: 0 12px 28px rgba(229,178,73,.18) !important;
}

.quick-fare-card .zone-search-result {
  margin-top: 10px;
  min-height: 20px;
  font-size: 12px !important;
  line-height: 1.45;
}

.zones-details-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 12px;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid rgba(239,193,93,.30);
  border-radius: 999px;
  background: rgba(239,193,93,.04);
  color: #e8c36e;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.zones-details-toggle:hover {
  background: rgba(239,193,93,.08);
}

#zones.show-zone-details .zones-cards-inner,
#zones.show-zone-details .zone-extra-row {
  display: contents !important;
}

#zones.show-zone-details .bottom-note {
  display: block !important;
}

/* Modal / bottom sheet */
html.fare-modal-open,
body.fare-modal-open {
  overflow: hidden !important;
}

.fare-modal[hidden] {
  display: none !important;
}

.fare-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}

.fare-modal.is-open {
  opacity: 1;
  pointer-events: auto;
}

.fare-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,5,10,.76);
  backdrop-filter: blur(10px);
}

.fare-modal__panel {
  position: relative;
  z-index: 1;
  width: min(560px, 100%);
  max-height: min(760px, calc(100vh - 48px));
  overflow: auto;
  padding: 28px;
  border: 1px solid rgba(239,193,93,.26);
  border-radius: 24px;
  background:
    radial-gradient(circle at 90% 0%, rgba(239,193,93,.12), transparent 20rem),
    linear-gradient(180deg,#091522,#050c14);
  color: #fff;
  box-shadow: 0 30px 90px rgba(0,0,0,.55);
  transform: translateY(10px) scale(.985);
  transition: transform .18s ease;
}

.fare-modal.is-open .fare-modal__panel {
  transform: translateY(0) scale(1);
}

.fare-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 50%;
  background: rgba(255,255,255,.04);
  color: #dce3eb;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.fare-modal__kicker {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  margin-bottom: 12px;
  border: 1px solid rgba(47,208,138,.30);
  border-radius: 999px;
  background: rgba(47,208,138,.08);
  color: #9ce7c4;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .12em;
}

.fare-modal__panel h2 {
  margin: 0;
  padding-right: 46px;
  font-family: Georgia,"Times New Roman",serif;
  font-size: 38px;
  line-height: 1;
  color: #fff;
}

.fare-modal__route {
  margin-top: 22px;
  padding: 16px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 16px;
  background: rgba(2,9,15,.58);
}

.fare-modal__route-point {
  display: grid;
  grid-template-columns: 26px minmax(0,1fr);
  gap: 10px;
  align-items: start;
}

.fare-modal__route-point small,
.fare-modal__summary small {
  display: block;
  margin-bottom: 4px;
  color: #8f9cab;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.fare-modal__route-point strong {
  display: block;
  color: #f4f7fa;
  font-size: 14px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.fare-modal__route-icon {
  color: #40d394;
  font-size: 14px;
  line-height: 1.4;
}

.fare-modal__route-icon--gold {
  color: #efc15d;
}

.fare-modal__route-line {
  width: 1px;
  height: 18px;
  margin: 3px 0 3px 7px;
  background: linear-gradient(#40d394,#efc15d);
  opacity: .55;
}

.fare-modal__summary {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 14px;
  align-items: end;
  margin-top: 14px;
  padding: 16px;
  border: 1px solid rgba(239,193,93,.20);
  border-radius: 16px;
  background: rgba(239,193,93,.055);
}

.fare-modal__summary strong {
  display: block;
  color: #fff;
  font-size: 16px;
  line-height: 1.3;
}

.fare-modal__price-wrap {
  text-align: right;
}

#fareModalPrice {
  color: #ffd679;
  font-family: Georgia,"Times New Roman",serif;
  font-size: 34px;
  white-space: nowrap;
}

.fare-modal__trust {
  display: grid;
  gap: 7px;
  margin: 16px 2px;
  color: #b9c5d1;
  font-size: 12px;
}

.fare-modal__continue,
.fare-modal__edit {
  width: 100%;
  min-height: 50px;
  border-radius: 12px;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.fare-modal__continue {
  border: 0;
  background: linear-gradient(180deg,#f8d67f,#e8b54b);
  color: #171009;
  box-shadow: 0 14px 32px rgba(229,178,73,.20);
}

.fare-modal__edit {
  margin-top: 9px;
  border: 1px solid rgba(255,255,255,.14);
  background: transparent;
  color: #d8e0e9;
}

@media (min-width: 901px) {
  #zones.show-zone-details {
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 10px !important;
  }

  #zones.show-zone-details > h2,
  #zones.show-zone-details .quick-fare-card,
  #zones.show-zone-details .bottom-note {
    grid-column: 1 / -1;
  }

  #zones.show-zone-details .zones-tabs-mobile {
    display: none !important;
  }
}

@media (max-width: 900px) {
  #zones {
    padding: 18px 14px !important;
  }

  #zones > h2 {
    padding-left: 24px !important;
    font-size: 28px !important;
    margin-bottom: 14px !important;
  }

  .quick-fare-card {
    padding: 14px !important;
  }

  .quick-fare-heading {
    display: block;
  }

  .quick-fare-heading h3 {
    margin-top: 8px !important;
    font-size: 17px !important;
  }

  .quick-direction-label {
    grid-template-columns: 1fr !important;
    gap: 7px !important;
  }

  .quick-fare-card .zone-search-row {
    grid-template-columns: 1fr !important;
  }

  .quick-fare-card #zoneSearchBtn {
    width: 100% !important;
  }

  #zones.show-zone-details .zones-tabs-mobile {
    display: block !important;
    margin-top: 16px;
  }

  #zones.show-zone-details .zones-cards-inner,
  #zones.show-zone-details .zone-extra-row {
    display: none !important;
  }

  .fare-modal {
    place-items: end center;
    padding: 0;
  }

  .fare-modal__panel {
    width: 100%;
    max-height: 88vh;
    padding: 22px 18px calc(22px + env(safe-area-inset-bottom));
    border-radius: 24px 24px 0 0;
    transform: translateY(28px);
  }

  .fare-modal.is-open .fare-modal__panel {
    transform: translateY(0);
  }

  .fare-modal__panel h2 {
    font-size: 34px;
  }

  #fareModalPrice {
    font-size: 32px;
  }
}

@media (max-width: 520px) {
  #zones > h2 {
    font-size: 26px !important;
  }

  .fare-modal__summary {
    grid-template-columns: 1fr auto;
    gap: 10px;
  }

  .fare-modal__summary strong {
    font-size: 14px;
  }

  #fareModalPrice {
    font-size: 30px;
  }
}


/* Google Places suggestions above all site layers */
.pac-container {
  z-index: 100000 !important;
  border-radius: 12px;
  overflow: hidden;
}


/* V4.2 — modal compacte + formulaire sans doublons + calendrier mobile corrigé */

/* Résumé compact affiché uniquement après qu'une adresse a été reconnue. */
.booking-quote-summary {
  display: none;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 13px 14px;
  border: 1px solid rgba(239,193,93,.24);
  border-radius: 14px;
  background:
    radial-gradient(circle at 100% 0%, rgba(239,193,93,.08), transparent 18rem),
    rgba(6,15,24,.72);
}

#bookingForm.booking-quote-active .booking-quote-summary {
  display: grid;
}

#bookingForm.booking-quote-active .booking-auto-field {
  display: none !important;
}

.booking-quote-summary__copy {
  min-width: 0;
}

.booking-quote-summary__eyebrow {
  display: block;
  margin-bottom: 3px;
  color: #8fe0bb;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .12em;
}

.booking-quote-summary__copy strong {
  display: block;
  color: #f6f8fb;
  font-size: 14px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.booking-quote-summary__copy small {
  display: block;
  margin-top: 3px;
  color: #f2cb71;
  font-size: 12px;
  font-weight: 750;
}

.booking-quote-summary__edit {
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 10px;
  background: rgba(255,255,255,.035);
  color: #d9e1ea;
  font: inherit;
  font-size: 11px;
  font-weight: 750;
  cursor: pointer;
}

/* La modale mobile doit tenir dans un écran, pas devenir une seconde page. */
@media (max-width: 900px) {
  .fare-modal__panel {
    width: calc(100% - 18px) !important;
    max-height: calc(100dvh - 26px) !important;
    margin: 0 auto 8px !important;
    padding: 15px 14px calc(15px + env(safe-area-inset-bottom)) !important;
    border-radius: 20px !important;
  }

  .fare-modal__close {
    top: 12px !important;
    right: 12px !important;
    width: 36px !important;
    height: 36px !important;
    font-size: 23px !important;
  }

  .fare-modal__kicker {
    min-height: 24px !important;
    margin-bottom: 7px !important;
    padding-inline: 9px !important;
    font-size: 9px !important;
  }

  .fare-modal__panel h2 {
    margin: 0 !important;
    padding-right: 44px !important;
    font-size: clamp(29px, 8vw, 36px) !important;
    line-height: 1 !important;
  }

  .fare-modal__route {
    margin-top: 12px !important;
    padding: 11px 12px !important;
    border-radius: 14px !important;
  }

  .fare-modal__route-point {
    grid-template-columns: 20px minmax(0,1fr) !important;
    gap: 7px !important;
  }

  .fare-modal__route-point small,
  .fare-modal__summary small {
    margin-bottom: 2px !important;
    font-size: 9px !important;
  }

  .fare-modal__route-point strong {
    font-size: 12.5px !important;
    line-height: 1.32 !important;
  }

  .fare-modal__route-line {
    height: 10px !important;
    margin: 2px 0 2px 6px !important;
  }

  .fare-modal__summary {
    gap: 10px !important;
    margin-top: 10px !important;
    padding: 11px 12px !important;
    border-radius: 14px !important;
  }

  .fare-modal__summary strong {
    font-size: 13px !important;
    line-height: 1.25 !important;
  }

  #fareModalPrice {
    font-size: 29px !important;
    line-height: 1 !important;
  }

  .fare-modal__trust {
    gap: 3px !important;
    margin: 10px 2px !important;
    font-size: 10.5px !important;
    line-height: 1.35 !important;
  }

  .fare-modal__continue,
  .fare-modal__edit {
    min-height: 44px !important;
    border-radius: 11px !important;
    font-size: 14px !important;
  }

  .fare-modal__edit {
    margin-top: 7px !important;
  }

  /* IMPORTANT : l'ancien flex-basis 340px devenait une hauteur de 340px
     lorsque #nabAvailTop passe en colonne sur mobile. C'était la grande zone vide. */
  #nabAvailInfo {
    flex: 0 0 auto !important;
    min-height: 0 !important;
    height: auto !important;
  }

  #nabAvailTop {
    min-height: 0 !important;
    height: auto !important;
  }

  #nabAvailWrap {
    min-height: 0 !important;
    height: auto !important;
  }

  #nabAvailScroll {
    min-height: 0 !important;
  }

  .booking-quote-summary {
    grid-template-columns: minmax(0,1fr) auto;
    gap: 10px;
    padding: 12px;
  }

  .booking-quote-summary__copy strong {
    font-size: 13px;
  }

  .booking-quote-summary__edit {
    min-height: 36px;
    padding-inline: 10px;
    font-size: 10px;
  }
}

@media (max-width: 520px) {
  .fare-modal__panel {
    width: calc(100% - 12px) !important;
    max-height: calc(100dvh - 18px) !important;
    padding: 13px 12px calc(13px + env(safe-area-inset-bottom)) !important;
  }

  .fare-modal__panel h2 {
    font-size: 28px !important;
  }

  .fare-modal__route-point strong {
    font-size: 12px !important;
  }

  .fare-modal__summary {
    grid-template-columns: minmax(0,1fr) auto !important;
  }

  #fareModalPrice {
    font-size: 27px !important;
  }

  .fare-modal__trust {
    font-size: 10px !important;
  }
}


/* V4.3 — recentrage vertical modal mobile */
@media (max-width: 900px) {
  .fare-modal {
    place-items: center !important;
    padding: 12px 0 !important;
  }

  .fare-modal__panel {
    margin: 0 auto !important;
  }

  .fare-modal.is-open .fare-modal__panel {
    transform: translateY(-2vh) scale(1) !important;
  }
}

@media (max-width: 520px) {
  .fare-modal {
    padding: 8px 0 !important;
  }

  .fare-modal.is-open .fare-modal__panel {
    transform: translateY(-1.5vh) scale(1) !important;
  }
}


/* V4.4 — message calendrier premium */
.nab-calendar-notice[hidden] {
  display: none !important;
}

.nab-calendar-notice {
  margin: 10px 0 12px;
  padding: 11px 13px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.nab-calendar-notice.is-error {
  border: 1px solid rgba(255,111,111,.30);
  background: rgba(128,24,24,.18);
  color: #ffb3b3;
}

.nab-calendar-notice.is-info {
  border: 1px solid rgba(239,193,93,.28);
  background: rgba(239,193,93,.08);
  color: #f2cb71;
}

@media (max-width: 520px) {
  .nab-calendar-notice {
    margin: 10px 0;
    padding: 12px 13px;
    font-size: 13px;
  }
}


/* V5 — calendrier premium jours + créneaux */
.nab-native-datetime-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

#nabAvailWrap.nab-booking-calendar {
  margin: 18px 0 22px;
  padding: 20px;
  border: 1px solid rgba(237,193,93,.22);
  border-radius: 22px;
  background:
    radial-gradient(circle at top right, rgba(237,193,93,.07), transparent 34%),
    linear-gradient(145deg, rgba(11,24,36,.96), rgba(6,17,27,.98));
  box-shadow: 0 18px 46px rgba(0,0,0,.22);
}

.nab-calendar-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}

.nab-calendar-kicker {
  display: inline-block;
  margin-bottom: 8px;
  color: #82e0b6;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
}

#nabCalendarHeading {
  margin: 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 27px;
  line-height: 1.05;
}

#nabAvailHint {
  margin: 8px 0 0;
  color: rgba(226,232,240,.72);
  font-size: 12px;
  line-height: 1.5;
}

.nab-calendar-nav {
  display: flex;
  gap: 7px;
}

.nab-calendar-nav .btn {
  width: 38px;
  height: 38px;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.13) !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.04) !important;
  color: #f1cb72 !important;
  font-size: 24px;
  line-height: 1;
}

.nab-calendar-nav .btn:disabled {
  opacity: .25;
}

.nab-calendar-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
}

#nabAvailTitle {
  color: #e9c668 !important;
  font-size: 13px;
  font-weight: 800;
}

#nabAvailJump {
  max-width: 145px;
  min-height: 36px;
  padding: 7px 9px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 10px;
  background: #07121e;
  color: #e8edf5;
}

.nab-quick-slot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding: 12px 14px;
  border: 1px solid rgba(237,193,93,.28);
  border-radius: 14px;
  background: rgba(237,193,93,.07);
}

.nab-quick-slot[hidden] {
  display: none !important;
}

.nab-quick-slot > div {
  min-width: 0;
}

.nab-quick-slot__eyebrow {
  margin-right: 7px;
  color: #efc35d;
}

#nabAvailQuickLabel {
  color: #f5f1e8;
  font-size: 12px;
  line-height: 1.35;
}

#nabAvailQuickBtn {
  flex: 0 0 auto;
  padding: 9px 12px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(180deg,#f7d579,#e9b83f);
  color: #17130a;
  font-size: 11px;
  font-weight: 800;
}

.nab-day-strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(102px, 1fr);
  gap: 9px;
  margin-top: 16px;
  padding-bottom: 4px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
}

.nab-day-strip::-webkit-scrollbar {
  display: none;
}

.nab-day-card {
  min-height: 88px;
  padding: 12px 10px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 14px;
  background: rgba(3,10,18,.55);
  color: #e9edf3;
  text-align: left;
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.nab-day-card__weekday,
.nab-day-card__date,
.nab-day-card__status {
  display: block;
}

.nab-day-card__weekday {
  color: #9da8b9;
  font-size: 10px;
  font-weight: 700;
  text-transform: capitalize;
}

.nab-day-card__date {
  margin-top: 3px;
  color: #fff;
  font-size: 14px;
}

.nab-day-card__status {
  margin-top: 8px;
  color: #65dca4;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.nab-day-card.is-active {
  border-color: rgba(239,195,93,.78);
  background: linear-gradient(180deg,rgba(239,195,93,.13),rgba(239,195,93,.04));
  box-shadow: 0 0 0 2px rgba(239,195,93,.08) inset;
}

.nab-day-card.is-full {
  opacity: .44;
}

.nab-day-card.is-full .nab-day-card__status {
  color: #aab2be;
}

.nab-slot-section {
  margin-top: 18px;
}

.nab-slot-title {
  margin-bottom: 10px;
  color: #f5f1e8;
  font-size: 13px;
  font-weight: 800;
}

.nab-time-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 9px;
}

.nab-time-pill {
  min-height: 42px;
  border: 1px solid rgba(82,218,153,.36);
  border-radius: 12px;
  background: rgba(26,111,75,.14);
  color: #e9fff6;
  font-size: 13px;
  font-weight: 800;
}

.nab-time-pill:hover,
.nab-time-pill:focus-visible {
  border-color: rgba(82,218,153,.72);
  background: rgba(26,111,75,.24);
}

.nab-time-pill.is-selected {
  border-color: #efc35d;
  background: linear-gradient(180deg,#f3ce70,#dfaa35);
  color: #17130a;
  box-shadow: 0 8px 22px rgba(223,170,53,.18);
}

.nab-slot-empty {
  grid-column: 1 / -1;
  padding: 16px;
  border: 1px dashed rgba(255,255,255,.12);
  border-radius: 12px;
  color: #aab4c4;
  font-size: 12px;
  text-align: center;
}

.nab-calendar-selection {
  margin-top: 16px;
  padding: 12px 14px;
  border-top: 1px solid rgba(255,255,255,.09);
}

#nabAvailSelected {
  margin: 0 !important;
  color: #efc35d !important;
  font-size: 13px !important;
  font-weight: 800;
}

@media (max-width: 520px) {
  #nabAvailWrap.nab-booking-calendar {
    margin: 14px 0 18px;
    padding: 16px 13px;
    border-radius: 18px;
  }

  #nabCalendarHeading {
    font-size: 25px;
  }

  .nab-calendar-meta {
    align-items: stretch;
    flex-direction: column;
  }

  #nabAvailJump {
    max-width: none;
    width: 100%;
  }

  .nab-quick-slot {
    align-items: stretch;
    flex-direction: column;
  }

  #nabAvailQuickBtn {
    width: 100%;
    min-height: 42px;
  }

  .nab-day-strip {
    grid-auto-columns: 106px;
  }

  .nab-time-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 10px;
  }

  .nab-time-pill {
    min-height: 48px;
    font-size: 15px;
  }
}


/* V5.1 — finitions mobile calendrier premium */
.nab-day-card:disabled {
  cursor: default;
}

.nab-day-card.is-full {
  opacity: .30;
  filter: saturate(.55);
}

@media (max-width: 520px) {
  .nab-calendar-head {
    display: block;
  }

  .nab-calendar-nav {
    position: absolute;
    top: 14px;
    right: 13px;
    gap: 8px;
  }

  #nabAvailWrap.nab-booking-calendar {
    position: relative;
    overflow: hidden;
  }

  .nab-calendar-head > div:first-child {
    padding-right: 92px;
  }

  .nab-calendar-nav .btn {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    font-size: 27px !important;
    line-height: 38px !important;
  }

  #nabAvailJump {
    display: none !important;
  }

  .nab-calendar-meta {
    margin-top: 16px;
  }

  #nabAvailTitle {
    padding-right: 2px;
    font-size: 15px !important;
    line-height: 1.35;
  }

  .nab-day-strip {
    margin-right: -13px;
    padding-right: 13px;
    scroll-padding-left: 0;
  }

  .nab-day-card {
    min-height: 94px;
  }

  .nab-day-card.is-active {
    opacity: 1;
  }

  .nab-time-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

/* ===== ZONES PC : 8 IMAGES UNIQUES 2026-09-21 ===== */
@media (min-width: 901px) {
  .zone-card{
    background-size:cover!important;
    background-repeat:no-repeat!important;
  }

  .zone-card.z1{
    background-image:
      linear-gradient(180deg,rgba(4,9,15,.10) 0%,rgba(4,9,15,.22) 38%,rgba(4,9,15,.82) 100%),
      url("assets/zones/zone-1.avif")!important;
    background-position:center center!important;
  }

  .zone-card.z2{
    background-image:
      linear-gradient(180deg,rgba(4,9,15,.10) 0%,rgba(4,9,15,.22) 38%,rgba(4,9,15,.82) 100%),
      url("assets/zones/zone-2.avif")!important;
    background-position:62% center!important;
  }

  .zone-card.z3{
    background-image:
      linear-gradient(180deg,rgba(4,9,15,.10) 0%,rgba(4,9,15,.22) 38%,rgba(4,9,15,.84) 100%),
      url("assets/zones/zone-3.avif")!important;
    background-position:center 48%!important;
  }

  .zone-card.z4{
    background-image:
      linear-gradient(180deg,rgba(4,9,15,.10) 0%,rgba(4,9,15,.22) 38%,rgba(4,9,15,.84) 100%),
      url("assets/zones/zone-4.avif")!important;
    background-position:72% center!important;
  }

  .zone-card.z5{
    background-image:
      linear-gradient(180deg,rgba(4,9,15,.08) 0%,rgba(4,9,15,.20) 36%,rgba(4,9,15,.84) 100%),
      url("assets/zones/zone-5.avif")!important;
    background-position:center center!important;
  }

  .zone-card.z6{
    background-image:
      linear-gradient(180deg,rgba(4,9,15,.08) 0%,rgba(4,9,15,.20) 36%,rgba(4,9,15,.84) 100%),
      url("assets/zones/zone-6.avif")!important;
    background-position:38% center!important;
  }

  .zone-card.z7{
    background-image:
      linear-gradient(180deg,rgba(4,9,15,.08) 0%,rgba(4,9,15,.18) 36%,rgba(4,9,15,.84) 100%),
      url("assets/zones/zone-7.avif")!important;
    background-position:42% center!important;
  }

  .zone-card.z8{
    background-image:
      linear-gradient(180deg,rgba(4,9,15,.08) 0%,rgba(4,9,15,.18) 36%,rgba(4,9,15,.84) 100%),
      url("assets/zones/zone-8.avif")!important;
    background-position:68% center!important;
  }
}
/* ===== FIN ZONES PC : 8 IMAGES UNIQUES ===== */

/* ===== ZONES PC : CARTES PREMIUM + EFFETS 2026-09-21 ===== */
@media (min-width: 901px) {
  .zones-cards{
    position:relative!important;
    isolation:isolate;
  }

  .zone-card{
    position:relative!important;
    isolation:isolate;
    min-height:168px!important;
    border:1px solid rgba(239,193,93,.30)!important;
    border-radius:16px!important;
    background-clip:padding-box!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.08),
      inset 0 -78px 92px rgba(0,0,0,.48),
      0 10px 24px rgba(0,0,0,.26),
      0 0 0 1px rgba(255,255,255,.02)!important;
    transform:translateZ(0);
    transition:
      transform .28s cubic-bezier(.2,.75,.25,1),
      border-color .28s ease,
      box-shadow .28s ease,
      filter .28s ease!important;
  }

  .zone-card::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    pointer-events:none!important;
    border-radius:inherit!important;
    background:
      linear-gradient(180deg,rgba(255,255,255,.07) 0%,rgba(255,255,255,0) 22%),
      linear-gradient(180deg,rgba(2,8,14,.03) 0%,rgba(2,8,14,.16) 36%,rgba(2,8,14,.86) 100%)!important;
    opacity:1!important;
  }

  .zone-card::after{
    display:block!important;
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    pointer-events:none!important;
    border-radius:inherit!important;
    padding:1px!important;
    background:
      linear-gradient(
        120deg,
        rgba(255,255,255,.18) 0%,
        rgba(239,193,93,.72) 18%,
        rgba(239,193,93,.12) 42%,
        rgba(255,255,255,.06) 64%,
        rgba(239,193,93,.48) 100%
      )!important;
    -webkit-mask:
      linear-gradient(#fff 0 0) content-box,
      linear-gradient(#fff 0 0)!important;
    -webkit-mask-composite:xor!important;
    mask-composite:exclude!important;
    opacity:.70!important;
    transition:opacity .28s ease!important;
  }

  .zone-card > *{
    position:relative!important;
    z-index:2!important;
  }

  .zone-card h3{
    letter-spacing:.01em!important;
    text-shadow:
      0 2px 10px rgba(0,0,0,.82),
      0 0 18px rgba(0,0,0,.36)!important;
  }

  .zone-card p{
    color:#edf2f7!important;
    text-shadow:0 2px 9px rgba(0,0,0,.90)!important;
  }

  .zone-card .price{
    color:#fff8e8!important;
    text-shadow:
      0 2px 10px rgba(0,0,0,.88),
      0 0 18px rgba(239,193,93,.20)!important;
  }

  .zone-extra-row select{
    border:1px solid rgba(239,193,93,.48)!important;
    background:
      linear-gradient(180deg,rgba(4,12,20,.88),rgba(2,8,14,.94))!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.05),
      0 4px 14px rgba(0,0,0,.22)!important;
    transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease!important;
  }

  .zone-card:hover{
    transform:translateY(-7px) scale(1.018)!important;
    border-color:rgba(247,207,116,.80)!important;
    filter:saturate(1.06) contrast(1.02)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.12),
      inset 0 -82px 96px rgba(0,0,0,.46),
      0 18px 38px rgba(0,0,0,.42),
      0 0 0 1px rgba(239,193,93,.18),
      0 0 28px rgba(239,193,93,.12)!important;
    z-index:6!important;
  }

  .zone-card:hover::after{
    opacity:1!important;
  }

  .zone-card:hover select{
    border-color:rgba(247,207,116,.82)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.07),
      0 0 0 3px rgba(239,193,93,.08),
      0 8px 18px rgba(0,0,0,.28)!important;
  }

  .zone-card:focus-within{
    transform:translateY(-4px)!important;
    border-color:rgba(247,207,116,.88)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.12),
      0 15px 34px rgba(0,0,0,.38),
      0 0 0 3px rgba(239,193,93,.10)!important;
    z-index:6!important;
  }

  @media (prefers-reduced-motion: reduce) {
    .zone-card,
    .zone-extra-row select{
      transition:none!important;
    }
    .zone-card:hover,
    .zone-card:focus-within{
      transform:none!important;
    }
  }
}
/* ===== FIN ZONES PC : CARTES PREMIUM + EFFETS ===== */

/* ===== TRUST STRIP PC PREMIUM 2026-09-21 ===== */
@media (min-width: 901px) {
  .trust-strip{
    padding:8px!important;
    gap:8px!important;
    overflow:visible!important;
    border:1px solid rgba(239,193,93,.22)!important;
    border-radius:20px!important;
    background:
      linear-gradient(180deg,rgba(8,16,24,.76),rgba(2,8,14,.88))!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.06),
      0 18px 44px rgba(0,0,0,.34),
      0 0 0 1px rgba(255,255,255,.015)!important;
    backdrop-filter:blur(18px)!important;
  }

  .trust-item{
    position:relative!important;
    overflow:hidden!important;
    min-height:58px!important;
    padding:10px 16px!important;
    gap:12px!important;
    border:1px solid rgba(255,255,255,.075)!important;
    border-right:1px solid rgba(255,255,255,.075)!important;
    border-radius:14px!important;
    background:
      radial-gradient(circle at 12% 10%,rgba(239,193,93,.10),transparent 34%),
      linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012))!important;
    color:#f4f6f8!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.05),
      0 7px 18px rgba(0,0,0,.16)!important;
    transition:
      transform .24s cubic-bezier(.2,.7,.2,1),
      border-color .24s ease,
      box-shadow .24s ease,
      background .24s ease!important;
  }

  .trust-item:last-child{
    border-right:1px solid rgba(255,255,255,.075)!important;
  }

  .trust-item::before{
    content:""!important;
    position:absolute!important;
    top:0!important;
    left:-45%!important;
    width:34%!important;
    height:100%!important;
    pointer-events:none!important;
    transform:skewX(-20deg)!important;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.10),transparent)!important;
    opacity:0!important;
    transition:left .48s ease,opacity .18s ease!important;
  }

  .trust-item::after{
    content:""!important;
    position:absolute!important;
    left:14px!important;
    right:14px!important;
    bottom:0!important;
    height:1px!important;
    pointer-events:none!important;
    background:linear-gradient(90deg,transparent,rgba(239,193,93,.52),transparent)!important;
    opacity:.42!important;
  }

  .trust-item > span:last-child{
    position:relative!important;
    z-index:2!important;
    font-weight:650!important;
    letter-spacing:.005em!important;
    text-shadow:0 1px 8px rgba(0,0,0,.42)!important;
  }

  .trust-icon{
    position:relative!important;
    z-index:2!important;
    width:31px!important;
    height:31px!important;
    flex:0 0 31px!important;
    color:#f6cf73!important;
    background:
      radial-gradient(circle at 35% 28%,rgba(255,255,255,.10),transparent 38%),
      linear-gradient(180deg,rgba(239,193,93,.16),rgba(239,193,93,.055))!important;
    border:1px solid rgba(239,193,93,.62)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.08),
      0 0 0 3px rgba(239,193,93,.035),
      0 6px 16px rgba(0,0,0,.22)!important;
    font-size:16px!important;
    text-shadow:0 0 12px rgba(239,193,93,.34)!important;
    transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease!important;
  }

  .trust-item:hover{
    transform:translateY(-3px)!important;
    border-color:rgba(239,193,93,.36)!important;
    background:
      radial-gradient(circle at 12% 10%,rgba(239,193,93,.16),transparent 36%),
      linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.018))!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.08),
      0 12px 24px rgba(0,0,0,.26),
      0 0 22px rgba(239,193,93,.055)!important;
  }

  .trust-item:hover::before{
    left:115%!important;
    opacity:1!important;
  }

  .trust-item:hover .trust-icon{
    transform:scale(1.07)!important;
    border-color:rgba(247,211,126,.86)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.10),
      0 0 0 4px rgba(239,193,93,.055),
      0 0 18px rgba(239,193,93,.16),
      0 7px 17px rgba(0,0,0,.25)!important;
  }

  .trust-item:nth-child(2) .trust-icon,
  .trust-item:nth-child(3) .trust-icon{
    color:#c8f6df!important;
    border-color:rgba(78,211,151,.48)!important;
    background:
      radial-gradient(circle at 35% 28%,rgba(255,255,255,.09),transparent 38%),
      linear-gradient(180deg,rgba(45,191,128,.13),rgba(45,191,128,.045))!important;
    text-shadow:0 0 12px rgba(45,191,128,.28)!important;
  }

  @media (prefers-reduced-motion: reduce) {
    .trust-item,
    .trust-icon,
    .trust-item::before{
      transition:none!important;
    }
    .trust-item:hover,
    .trust-item:hover .trust-icon{
      transform:none!important;
    }
  }
}
/* ===== FIN TRUST STRIP PC PREMIUM ===== */

/* ===== ZONE COMMUNES INFO MODAL 2026-09-21 ===== */
@media (min-width: 901px) {
  .zone-card{
    overflow:visible!important;
  }

  .zone-info-button{
    position:absolute!important;
    top:12px!important;
    right:12px!important;
    z-index:12!important;
    width:30px!important;
    height:30px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    border-radius:999px!important;
    border:1px solid rgba(246,207,116,.62)!important;
    background:
      radial-gradient(circle at 35% 28%,rgba(255,255,255,.13),transparent 38%),
      rgba(3,11,18,.76)!important;
    color:#f6cf73!important;
    font-family:Georgia,"Times New Roman",serif!important;
    font-size:17px!important;
    font-weight:800!important;
    line-height:1!important;
    cursor:pointer!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.08),
      0 7px 18px rgba(0,0,0,.30),
      0 0 0 3px rgba(239,193,93,.035)!important;
    backdrop-filter:blur(10px)!important;
    transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease!important;
  }

  .zone-info-button:hover,
  .zone-info-button:focus-visible{
    transform:translateY(-2px) scale(1.07)!important;
    border-color:rgba(255,221,142,.96)!important;
    background:rgba(16,24,30,.94)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.12),
      0 9px 20px rgba(0,0,0,.34),
      0 0 20px rgba(239,193,93,.18)!important;
    outline:none!important;
  }
}

.zone-communes-modal[hidden]{
  display:none!important;
}

.zone-communes-modal{
  position:fixed!important;
  inset:0!important;
  z-index:10050!important;
  display:grid!important;
  place-items:center!important;
  padding:24px!important;
  opacity:0;
  visibility:hidden;
  transition:opacity .18s ease,visibility .18s ease!important;
}

.zone-communes-modal.is-open{
  opacity:1;
  visibility:visible;
}

.zone-communes-modal__backdrop{
  position:absolute!important;
  inset:0!important;
  background:rgba(0,5,10,.78)!important;
  backdrop-filter:blur(9px)!important;
}

.zone-communes-modal__dialog{
  position:relative!important;
  z-index:1!important;
  width:min(560px,calc(100vw - 32px))!important;
  max-height:min(78vh,720px)!important;
  overflow:auto!important;
  padding:30px 32px 26px!important;
  border-radius:24px!important;
  border:1px solid rgba(239,193,93,.42)!important;
  background:
    radial-gradient(circle at 90% 0%,rgba(239,193,93,.09),transparent 34%),
    linear-gradient(180deg,#0b1720 0%,#061019 100%)!important;
  color:#f7f8fa!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 28px 80px rgba(0,0,0,.58),
    0 0 0 1px rgba(255,255,255,.02)!important;
  transform:translateY(10px) scale(.985);
  transition:transform .2s cubic-bezier(.2,.75,.25,1)!important;
  scrollbar-width:thin;
  scrollbar-color:rgba(239,193,93,.45) rgba(255,255,255,.04);
}

.zone-communes-modal.is-open .zone-communes-modal__dialog{
  transform:translateY(0) scale(1);
}

.zone-communes-modal__close{
  position:absolute!important;
  top:16px!important;
  right:16px!important;
  width:42px!important;
  height:42px!important;
  border-radius:50%!important;
  border:1px solid rgba(255,255,255,.13)!important;
  background:rgba(255,255,255,.045)!important;
  color:#f5f7fa!important;
  font-size:27px!important;
  line-height:1!important;
  cursor:pointer!important;
  transition:transform .2s ease,border-color .2s ease,background .2s ease!important;
}

.zone-communes-modal__close:hover{
  transform:rotate(5deg) scale(1.05)!important;
  border-color:rgba(239,193,93,.55)!important;
  background:rgba(239,193,93,.08)!important;
}

.zone-communes-modal__kicker{
  display:inline-flex!important;
  align-items:center!important;
  min-height:30px!important;
  margin:0 56px 12px 0!important;
  padding:6px 12px!important;
  border-radius:999px!important;
  border:1px solid rgba(66,211,151,.32)!important;
  background:rgba(42,178,127,.08)!important;
  color:#9ceac8!important;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.14em!important;
}

.zone-communes-modal__title{
  margin:0!important;
  color:#fff!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:clamp(32px,4vw,46px)!important;
  line-height:1.02!important;
  letter-spacing:-.02em!important;
}

.zone-communes-modal__subtitle{
  margin:10px 0 22px!important;
  color:#aeb9c4!important;
  font-size:15px!important;
  line-height:1.5!important;
}

.zone-communes-modal__list{
  display:grid!important;
  gap:8px!important;
}

.zone-communes-modal__item{
  display:grid!important;
  grid-template-columns:10px 1fr!important;
  align-items:center!important;
  gap:12px!important;
  min-height:44px!important;
  padding:10px 14px!important;
  border:1px solid rgba(255,255,255,.07)!important;
  border-radius:12px!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.014))!important;
  color:#f1f4f7!important;
  font-size:15px!important;
  font-weight:650!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important;
}

.zone-communes-modal__dot{
  width:6px!important;
  height:6px!important;
  border-radius:50%!important;
  background:#efc15d!important;
  box-shadow:0 0 12px rgba(239,193,93,.34)!important;
}

.zone-communes-modal__footer{
  margin:20px 0 0!important;
  padding-top:16px!important;
  border-top:1px solid rgba(239,193,93,.16)!important;
  color:#8794a0!important;
  font-size:12px!important;
  line-height:1.5!important;
}

html.zone-communes-modal-open,
body.zone-communes-modal-open{
  overflow:hidden!important;
}

@media (max-width: 900px) {
  .zone-info-button{
    display:none!important;
  }
}

@media (max-width: 620px) {
  .zone-communes-modal{
    padding:14px!important;
  }
  .zone-communes-modal__dialog{
    width:100%!important;
    max-height:84vh!important;
    padding:24px 20px 22px!important;
    border-radius:20px!important;
  }
  .zone-communes-modal__title{
    font-size:34px!important;
  }
}
/* ===== FIN ZONE COMMUNES INFO MODAL ===== */

/* ===== PREMIUM DESKTOP Z7 Z8 SELECTORS 2026-09-21 ===== */
@media (min-width: 901px) {
  #z7CitySelect.nab-premium-select__native,
  #z8CitySelect.nab-premium-select__native{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  .z7-select-label,
  .z8-select-label{
    position:relative!important;
    z-index:18!important;
  }

  .nab-premium-select{
    position:relative!important;
    z-index:30!important;
    width:100%!important;
    margin-top:7px!important;
  }

  .nab-premium-select__trigger{
    position:relative!important;
    width:100%!important;
    min-height:43px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:9px 13px!important;
    border:1px solid rgba(239,193,93,.55)!important;
    border-radius:12px!important;
    background:
      radial-gradient(circle at 12% 0%,rgba(239,193,93,.09),transparent 35%),
      linear-gradient(180deg,rgba(7,17,26,.96),rgba(2,9,15,.98))!important;
    color:#f8fafc!important;
    font:inherit!important;
    font-size:15px!important;
    font-weight:650!important;
    text-align:left!important;
    cursor:pointer!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.055),
      0 6px 17px rgba(0,0,0,.25)!important;
    transition:
      border-color .2s ease,
      box-shadow .2s ease,
      transform .2s ease,
      background .2s ease!important;
  }

  .nab-premium-select__trigger:hover,
  .nab-premium-select__trigger:focus-visible,
  .nab-premium-select.is-open .nab-premium-select__trigger{
    border-color:rgba(251,217,137,.92)!important;
    background:
      radial-gradient(circle at 12% 0%,rgba(239,193,93,.14),transparent 38%),
      linear-gradient(180deg,rgba(10,21,31,.99),rgba(3,11,18,.99))!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.08),
      0 0 0 3px rgba(239,193,93,.08),
      0 8px 20px rgba(0,0,0,.32)!important;
    outline:none!important;
  }

  .nab-premium-select__value{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .nab-premium-select__chevron{
    width:19px!important;
    height:19px!important;
    flex:0 0 19px!important;
    display:grid!important;
    place-items:center!important;
    color:#f6cf73!important;
    transition:transform .2s ease!important;
  }

  .nab-premium-select__chevron svg{
    width:17px!important;
    height:17px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }

  .nab-premium-select.is-open .nab-premium-select__chevron{
    transform:rotate(180deg)!important;
  }

  .nab-premium-select__menu{
    position:absolute!important;
    left:0!important;
    right:0!important;
    top:calc(100% + 7px)!important;
    z-index:80!important;
    max-height:238px!important;
    overflow:auto!important;
    padding:7px!important;
    border:1px solid rgba(239,193,93,.48)!important;
    border-radius:14px!important;
    background:
      radial-gradient(circle at 90% 0%,rgba(239,193,93,.08),transparent 32%),
      linear-gradient(180deg,rgba(8,18,27,.995),rgba(3,10,17,.995))!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.06),
      0 18px 38px rgba(0,0,0,.48),
      0 0 0 1px rgba(255,255,255,.018)!important;
    backdrop-filter:blur(16px)!important;
    opacity:0!important;
    visibility:hidden!important;
    transform:translateY(-5px) scale(.985)!important;
    transform-origin:top center!important;
    transition:opacity .16s ease,visibility .16s ease,transform .18s ease!important;
    scrollbar-width:thin!important;
    scrollbar-color:rgba(239,193,93,.42) rgba(255,255,255,.035)!important;
  }

  .nab-premium-select.is-open .nab-premium-select__menu{
    opacity:1!important;
    visibility:visible!important;
    transform:translateY(0) scale(1)!important;
  }

  .nab-premium-select__option{
    width:100%!important;
    min-height:39px!important;
    display:grid!important;
    grid-template-columns:8px minmax(0,1fr) 18px!important;
    align-items:center!important;
    gap:10px!important;
    padding:8px 10px!important;
    margin:0!important;
    border:1px solid transparent!important;
    border-radius:9px!important;
    background:transparent!important;
    color:#dfe5eb!important;
    font:inherit!important;
    font-size:14px!important;
    font-weight:600!important;
    text-align:left!important;
    cursor:pointer!important;
    transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease!important;
  }

  .nab-premium-select__option:hover,
  .nab-premium-select__option:focus-visible{
    background:rgba(239,193,93,.085)!important;
    border-color:rgba(239,193,93,.18)!important;
    color:#fff!important;
    outline:none!important;
    transform:translateX(2px)!important;
  }

  .nab-premium-select__option.is-selected{
    background:
      linear-gradient(90deg,rgba(239,193,93,.13),rgba(239,193,93,.035))!important;
    border-color:rgba(239,193,93,.34)!important;
    color:#fff8e8!important;
  }

  .nab-premium-select__option-dot{
    width:6px!important;
    height:6px!important;
    border-radius:50%!important;
    background:rgba(255,255,255,.18)!important;
    transition:background .15s ease,box-shadow .15s ease!important;
  }

  .nab-premium-select__option.is-selected .nab-premium-select__option-dot{
    background:#efc15d!important;
    box-shadow:0 0 10px rgba(239,193,93,.42)!important;
  }

  .nab-premium-select__option-text{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .nab-premium-select__option-check{
    color:#efc15d!important;
    opacity:0!important;
    transform:scale(.75)!important;
    transition:opacity .15s ease,transform .15s ease!important;
    text-align:center!important;
  }

  .nab-premium-select__option.is-selected .nab-premium-select__option-check{
    opacity:1!important;
    transform:scale(1)!important;
  }

  .zone-card.z7,
  .zone-card.z8{
    overflow:visible!important;
  }

  .zone-card.z7:has(.nab-premium-select.is-open),
  .zone-card.z8:has(.nab-premium-select.is-open){
    z-index:60!important;
  }

  @media (prefers-reduced-motion: reduce) {
    .nab-premium-select__trigger,
    .nab-premium-select__chevron,
    .nab-premium-select__menu,
    .nab-premium-select__option{
      transition:none!important;
    }
  }
}
/* ===== FIN PREMIUM DESKTOP Z7 Z8 SELECTORS ===== */

/* ===== PREMIUM SELECT MENU WIDTH FIX 2026-09-21 ===== */
@media (min-width: 901px) {
  .zone-card.z7 .nab-premium-select__menu,
  .zone-card.z8 .nab-premium-select__menu{
    width:max-content!important;
    min-width:245px!important;
    max-width:300px!important;
    left:0!important;
    right:auto!important;
    padding:8px!important;
  }

  .zone-card.z8 .nab-premium-select__menu{
    left:auto!important;
    right:0!important;
  }

  .nab-premium-select__option{
    grid-template-columns:8px minmax(0,1fr) 18px!important;
    min-height:40px!important;
    padding:9px 11px!important;
  }

  .nab-premium-select__option-text{
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
  }

  .nab-premium-select__menu::-webkit-scrollbar{
    width:7px!important;
  }

  .nab-premium-select__menu::-webkit-scrollbar-track{
    background:rgba(255,255,255,.035)!important;
    border-radius:999px!important;
  }

  .nab-premium-select__menu::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,rgba(239,193,93,.62),rgba(239,193,93,.28))!important;
    border-radius:999px!important;
    border:1px solid rgba(3,10,17,.8)!important;
  }
}
/* ===== FIN PREMIUM SELECT MENU WIDTH FIX ===== */

/* ===== ZONE CARD PREMIUM TITLES 2026-09-21 ===== */
@media (min-width: 901px) {
  .zone-card .zone-card-heading{
    position:relative!important;
    z-index:3!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:8px!important;
    margin:0 0 18px!important;
    padding:0 42px 0 0!important;
    line-height:1!important;
  }

  .zone-card .zone-card-kicker{
    display:inline-flex!important;
    align-items:center!important;
    min-height:27px!important;
    padding:5px 10px 4px!important;
    border:1px solid rgba(239,193,93,.48)!important;
    border-radius:999px!important;
    background:
      linear-gradient(180deg,rgba(239,193,93,.13),rgba(239,193,93,.055))!important;
    color:#f5cf78!important;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:11px!important;
    font-weight:850!important;
    line-height:1!important;
    letter-spacing:.13em!important;
    text-transform:uppercase!important;
    text-shadow:0 1px 8px rgba(0,0,0,.58)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.07),
      0 5px 14px rgba(0,0,0,.20)!important;
    backdrop-filter:blur(9px)!important;
  }

  .zone-card .zone-card-kicker::before{
    content:""!important;
    width:5px!important;
    height:5px!important;
    margin-right:7px!important;
    border-radius:50%!important;
    background:#74e6b1!important;
    box-shadow:0 0 10px rgba(73,215,155,.65)!important;
  }

  .zone-card .zone-card-name{
    display:block!important;
    max-width:100%!important;
    color:#fff!important;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:18px!important;
    font-weight:800!important;
    line-height:1.16!important;
    letter-spacing:-.018em!important;
    text-wrap:balance!important;
    text-shadow:
      0 2px 9px rgba(0,0,0,.94),
      0 0 18px rgba(0,0,0,.38)!important;
  }

  .zone-card.z5 .zone-card-name,
  .zone-card.z6 .zone-card-name{
    font-size:19px!important;
  }

  .zone-card.z7 .zone-card-name,
  .zone-card.z8 .zone-card-name{
    font-size:18px!important;
    max-width:92%!important;
  }

  .zone-card:hover .zone-card-kicker{
    border-color:rgba(250,216,135,.78)!important;
    background:
      linear-gradient(180deg,rgba(239,193,93,.18),rgba(239,193,93,.075))!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.10),
      0 6px 16px rgba(0,0,0,.24),
      0 0 18px rgba(239,193,93,.08)!important;
  }
}
/* ===== FIN ZONE CARD PREMIUM TITLES ===== */

/* ===== PAGE BACKGROUND CREME 2026-09-21 ===== */
:root{
  --page-cream:#f4efe5;
  --page-cream-2:#fbf8f1;
  --page-cream-3:#eee5d5;
  --page-ink:#201d18;
  --page-muted:#6f685e;
  --page-gold:#b88a37;
}

html{
  background:var(--page-cream)!important;
}

body{
  color:var(--page-ink);
  background:
    radial-gradient(circle at 14% 8%,rgba(201,157,72,.11),transparent 28rem),
    radial-gradient(circle at 88% 22%,rgba(111,146,122,.075),transparent 31rem),
    linear-gradient(180deg,var(--page-cream-2) 0%,var(--page-cream) 46%,#f1eadf 100%)!important;
}

body::before{
  opacity:.38!important;
  background-image:
    linear-gradient(rgba(123,101,67,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(123,101,67,.035) 1px,transparent 1px)!important;
  background-size:52px 52px!important;
  mask-image:linear-gradient(to bottom,#000,transparent 78%)!important;
}

/* Le hero et la navigation restent volontairement sombres : ils sont des éléments,
   tandis que le canevas général de la page devient crème. */
main.container{
  position:relative;
  background:transparent!important;
}

/* Grand fond de la zone tarifs : crème au lieu du panneau noir. */
#zones.zones-cards{
  background:
    radial-gradient(circle at 96% 0%,rgba(184,138,55,.095),transparent 26rem),
    linear-gradient(180deg,rgba(255,253,248,.97),rgba(245,239,228,.98))!important;
  border:1px solid rgba(117,93,56,.20)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.88),
    0 20px 52px rgba(78,61,36,.12)!important;
}

/* Titre du bloc tarifs lisible sur le nouveau fond clair. */
#zones.zones-cards > h2{
  color:#272219!important;
  text-shadow:none!important;
}

#zones.zones-cards > h2::before{
  background:linear-gradient(90deg,#d8b467,#a9792f)!important;
}

/* Les cartes tarifs et le calculateur conservent leur univers sombre premium. */
#zones .quick-fare-card,
#zones .zone-card{
  color:#f7f7f7!important;
}

/* Note sous les cartes : texte sombre sur crème. */
#zones .bottom-note{
  color:#777066!important;
  border-top-color:rgba(112,88,52,.16)!important;
  text-shadow:none!important;
}

/* Conditions : carte claire afin de prolonger le fond crème de la page. */
.conditions-card{
  background:
    radial-gradient(circle at 100% 0%,rgba(184,138,55,.08),transparent 22rem),
    linear-gradient(180deg,rgba(255,253,248,.94),rgba(244,237,225,.96))!important;
  border:1px solid rgba(117,93,56,.18)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 16px 38px rgba(78,61,36,.09)!important;
}

.conditions-card h2{
  color:#29231b!important;
  text-shadow:none!important;
}

.conditions-card ul,
.conditions-card li{
  color:#696157!important;
}

/* Footer intégré au nouveau canevas clair. */
footer.container.footer,
.footer{
  color:#6d655b!important;
  border-top-color:rgba(117,93,56,.18)!important;
}

.footer-columns{
  border-bottom-color:rgba(117,93,56,.14)!important;
}

.footer-col a,
.footer a{
  color:#514a41!important;
}

.footer-col a:hover,
.footer a:hover{
  color:#a2752d!important;
}

.footer-line{
  color:#756d63!important;
}

.footer-brand{
  color:#28231c!important;
}

/* Séparation visuelle douce juste sous le hero. */
.header-main{
  box-shadow:0 14px 34px rgba(59,45,27,.14)!important;
}

/* Sur petit écran, le même fond crème est conservé autour des panneaux. */
@media (max-width:900px){
  main.container{
    background:transparent!important;
  }

  #zones.zones-cards{
    background:
      radial-gradient(circle at 94% 0%,rgba(184,138,55,.085),transparent 20rem),
      linear-gradient(180deg,#fbf8f1,#f3ecdf)!important;
  }
}
/* ===== FIN PAGE BACKGROUND CREME ===== */

/* ===== CHAMPS SOMBRES BORDURES SOBRES 2026-09-21 ===== */
/* Même langage visuel que la capture : fond bleu-noir, bordure gris-bleu fine,
   aucun contour vert autour des champs. */
#zoneSearchInput,
#quickDirection,
#bookingForm input:not([type="hidden"]):not([type="checkbox"]),
#bookingForm select,
#bookingForm textarea,
#z7CitySelectMobile,
#z8CitySelectMobile,
.nab-premium-select__trigger{
  background:
    linear-gradient(180deg,rgba(5,13,21,.98),rgba(2,9,15,.99))!important;
  color:#f3f6fa!important;
  border:1px solid rgba(111,130,148,.32)!important;
  border-radius:11px!important;
  outline:none!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 5px 14px rgba(0,0,0,.14)!important;
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    background .18s ease!important;
}

#zoneSearchInput:hover,
#quickDirection:hover,
#bookingForm input:not([type="hidden"]):not([type="checkbox"]):hover,
#bookingForm select:hover,
#bookingForm textarea:hover,
#z7CitySelectMobile:hover,
#z8CitySelectMobile:hover,
.nab-premium-select__trigger:hover{
  border-color:rgba(139,157,174,.46)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 6px 16px rgba(0,0,0,.17)!important;
}

#zoneSearchInput:focus,
#zoneSearchInput:focus-visible,
#quickDirection:focus,
#quickDirection:focus-visible,
#bookingForm input:not([type="hidden"]):not([type="checkbox"]):focus,
#bookingForm input:not([type="hidden"]):not([type="checkbox"]):focus-visible,
#bookingForm select:focus,
#bookingForm select:focus-visible,
#bookingForm textarea:focus,
#bookingForm textarea:focus-visible,
#z7CitySelectMobile:focus,
#z8CitySelectMobile:focus,
.nab-premium-select__trigger:focus,
.nab-premium-select__trigger:focus-visible,
.nab-premium-select.is-open .nab-premium-select__trigger{
  border-color:rgba(163,180,196,.50)!important;
  outline:none!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    0 0 0 2px rgba(153,169,184,.055),
    0 7px 18px rgba(0,0,0,.20)!important;
}

#zoneSearchInput::placeholder,
#bookingForm input::placeholder,
#bookingForm textarea::placeholder{
  color:#77869a!important;
  opacity:1!important;
}

/* Neutralise les états "valides" qui pourraient réinjecter un contour vert. */
#zoneSearchInput:valid,
#bookingForm input:valid,
#bookingForm select:valid,
#bookingForm textarea:valid{
  border-color:rgba(111,130,148,.32)!important;
}

#zoneSearchInput:valid:focus,
#bookingForm input:valid:focus,
#bookingForm select:valid:focus,
#bookingForm textarea:valid:focus{
  border-color:rgba(163,180,196,.50)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    0 0 0 2px rgba(153,169,184,.055),
    0 7px 18px rgba(0,0,0,.20)!important;
}

/* Les listes Z7/Z8 restent premium, mais leur déclencheur n'a plus de bord doré/vert. */
.nab-premium-select__chevron{
  color:#c9d2dc!important;
}

.nab-premium-select__menu{
  border-color:rgba(111,130,148,.34)!important;
}

@media (max-width:900px){
  #zoneSearchInput,
  #quickDirection,
  #bookingForm input:not([type="hidden"]):not([type="checkbox"]),
  #bookingForm select,
  #bookingForm textarea,
  #z7CitySelectMobile,
  #z8CitySelectMobile{
    border-color:rgba(111,130,148,.32)!important;
  }
}
/* ===== FIN CHAMPS SOMBRES BORDURES SOBRES ===== */

/* ===== ZONE CARDS ALWAYS VISIBLE DESKTOP 2026-09-21 ===== */
@media (min-width: 901px) {
  /* Les 8 cartes restent toujours affichées, même sans classe show-zone-details. */
  #zones .zones-cards-inner,
  #zones .zone-extra-row,
  #zones:not(.show-zone-details) .zones-cards-inner,
  #zones:not(.show-zone-details) .zone-extra-row,
  #zones.show-zone-details .zones-cards-inner,
  #zones.show-zone-details .zone-extra-row{
    display:contents!important;
    visibility:visible!important;
    opacity:1!important;
  }

  /* La note sous les tarifs reste également visible avec les cartes. */
  #zones .bottom-note,
  #zones:not(.show-zone-details) .bottom-note,
  #zones.show-zone-details .bottom-note{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
  }

  /* Le bouton n'a plus d'utilité puisque les cartes sont permanentes. */
  #zonesDetailsToggle{
    display:none!important;
  }
}
/* ===== FIN ZONE CARDS ALWAYS VISIBLE DESKTOP ===== */

/* ===== ZONE CARDS DESKTOP 4X2 FIX 2026-09-21 ===== */
@media (min-width: 901px) {
  /* Le bloc tarifs redevient une vraie grille 4 colonnes :
     8 cartes toujours visibles = 4 cartes x 2 lignes. */
  #zones.zones-cards{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:10px!important;
    align-items:stretch!important;
  }

  #zones.zones-cards > h2,
  #zones.zones-cards > .quick-fare-card,
  #zones.zones-cards > .bottom-note{
    grid-column:1 / -1!important;
  }

  #zones .zones-cards-inner,
  #zones .zone-extra-row,
  #zones:not(.show-zone-details) .zones-cards-inner,
  #zones:not(.show-zone-details) .zone-extra-row,
  #zones.show-zone-details .zones-cards-inner,
  #zones.show-zone-details .zone-extra-row{
    display:contents!important;
  }

  #zones .zone-card{
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    min-height:168px!important;
    height:auto!important;
    margin:0!important;
  }

  /* Les deux rangées restent parfaitement alignées malgré les sélecteurs Z7/Z8. */
  #zones .zone-card.z7,
  #zones .zone-card.z8{
    min-height:168px!important;
  }

  #zones .bottom-note{
    margin-top:4px!important;
  }
}
/* ===== FIN ZONE CARDS DESKTOP 4X2 FIX ===== */

/* ===== PREMIUM FIXED FARES TITLE 2026-09-21 ===== */
.zones-fixed-title{
  grid-column:1 / -1!important;
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:18px!important;
  width:min(720px,100%)!important;
  margin:4px auto 8px!important;
  padding:13px 20px!important;
  border:1px solid rgba(167,126,53,.30)!important;
  border-radius:18px!important;
  background:
    radial-gradient(circle at 50% 0%,rgba(239,193,93,.13),transparent 62%),
    linear-gradient(180deg,rgba(255,253,248,.94),rgba(244,237,225,.98))!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 12px 28px rgba(77,58,31,.10),
    0 0 0 1px rgba(255,255,255,.40)!important;
  overflow:hidden!important;
}

.zones-fixed-title::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;
  background:
    linear-gradient(110deg,transparent 0%,rgba(255,255,255,.40) 36%,transparent 58%)!important;
  transform:translateX(-75%)!important;
  opacity:.45!important;
  transition:transform .7s ease!important;
}

.zones-fixed-title:hover::before{
  transform:translateX(75%)!important;
}

.zones-fixed-title__ornament{
  flex:1 1 90px!important;
  height:1px!important;
  max-width:120px!important;
  background:linear-gradient(90deg,transparent,rgba(169,126,51,.62),transparent)!important;
}

.zones-fixed-title__copy{
  position:relative!important;
  z-index:1!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  text-align:center!important;
  min-width:230px!important;
}

.zones-fixed-title__eyebrow{
  display:block!important;
  margin-bottom:3px!important;
  color:#8a6a34!important;
  font-size:9px!important;
  font-weight:850!important;
  letter-spacing:.20em!important;
  text-transform:uppercase!important;
}

.zones-fixed-title strong{
  display:block!important;
  color:#221d16!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:28px!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:-.02em!important;
}

.zones-fixed-title small{
  display:block!important;
  margin-top:5px!important;
  color:#756b5d!important;
  font-size:11px!important;
  line-height:1.3!important;
  font-weight:650!important;
}

@media (max-width:900px){
  .zones-fixed-title{
    width:100%!important;
    margin:8px auto 12px!important;
    padding:12px 14px!important;
    border-radius:15px!important;
  }

  .zones-fixed-title__ornament{
    max-width:56px!important;
  }

  .zones-fixed-title strong{
    font-size:24px!important;
  }

  .zones-fixed-title small{
    font-size:10px!important;
  }
}
/* ===== FIN PREMIUM FIXED FARES TITLE ===== */

/* ===== QUICK DIRECTION LEFT + READABLE OPTIONS 2026-09-21 ===== */
@media (min-width: 901px) {
  .quick-direction-label{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:12px!important;
    width:max-content!important;
    max-width:100%!important;
    margin:14px 0 12px!important;
  }

  .quick-direction-label > span{
    flex:0 0 auto!important;
    white-space:nowrap!important;
  }

  .quick-direction-label select,
  #quickDirection{
    flex:0 0 220px!important;
    width:220px!important;
    min-width:220px!important;
    max-width:220px!important;
    min-height:42px!important;
    padding:9px 36px 9px 12px!important;
    background:
      linear-gradient(180deg,rgba(5,13,21,.99),rgba(2,9,15,.99))!important;
    color:#f5f7fa!important;
    border:1px solid rgba(111,130,148,.34)!important;
    border-radius:10px!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.025),
      0 5px 14px rgba(0,0,0,.14)!important;
  }

  #quickDirection:hover,
  #quickDirection:focus,
  #quickDirection:focus-visible{
    border-color:rgba(157,174,190,.48)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.035),
      0 0 0 2px rgba(148,163,184,.05),
      0 6px 16px rgba(0,0,0,.17)!important;
    outline:none!important;
  }

  #quickDirection option{
    background:#07111c!important;
    color:#f5f7fa!important;
  }

  #quickDirection option:checked{
    background:#1f6fd0!important;
    color:#fff!important;
  }
}

@media (max-width: 900px) {
  .quick-direction-label{
    width:100%!important;
  }

  #quickDirection option{
    background:#07111c!important;
    color:#f5f7fa!important;
  }
}
/* ===== FIN QUICK DIRECTION LEFT + READABLE OPTIONS ===== */

/* ===== QUICK DIRECTION PREMIUM COMPACT 2026-09-21 ===== */
/* Bloc direction compact et à gauche. Aucun grand champ vertical. */
.quick-direction-label{
  position:relative!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  justify-items:start!important;
  align-items:start!important;
  align-self:start!important;
  gap:6px!important;
  width:220px!important;
  max-width:100%!important;
  min-height:0!important;
  height:auto!important;
  margin:14px 0 14px!important;
  color:#cfd8e3!important;
  font-size:12px!important;
  font-weight:750!important;
}

.quick-direction-label > span{
  display:block!important;
  width:auto!important;
  margin:0!important;
  padding:0 2px!important;
  text-align:left!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}

@media (min-width: 701px){
  #quickDirection.quick-direction-native{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    min-width:1px!important;
    min-height:1px!important;
    max-width:1px!important;
    max-height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    clip-path:inset(50%)!important;
    white-space:nowrap!important;
    border:0!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  .quick-direction-custom{
    position:relative!important;
    z-index:35!important;
    width:220px!important;
    height:auto!important;
  }

  .quick-direction-custom__trigger{
    width:220px!important;
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:0 13px!important;
    border:1px solid rgba(111,130,148,.34)!important;
    border-radius:10px!important;
    background:
      linear-gradient(180deg,rgba(6,15,24,.99),rgba(2,9,15,.99))!important;
    color:#f5f7fa!important;
    font:inherit!important;
    font-size:14px!important;
    font-weight:650!important;
    text-align:left!important;
    cursor:pointer!important;
    outline:none!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.035),
      0 6px 16px rgba(0,0,0,.17)!important;
    transition:border-color .18s ease,box-shadow .18s ease,background .18s ease!important;
  }

  .quick-direction-custom__trigger:hover,
  .quick-direction-custom__trigger:focus-visible,
  .quick-direction-custom.is-open .quick-direction-custom__trigger{
    border-color:rgba(158,175,191,.50)!important;
    background:
      linear-gradient(180deg,rgba(8,18,28,.99),rgba(3,11,18,.99))!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.045),
      0 0 0 2px rgba(148,163,184,.055),
      0 8px 20px rgba(0,0,0,.22)!important;
  }

  .quick-direction-custom__value{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .quick-direction-custom__arrow{
    width:18px!important;
    height:18px!important;
    flex:0 0 18px!important;
    display:grid!important;
    place-items:center!important;
    color:#cbd5df!important;
    transition:transform .18s ease!important;
  }

  .quick-direction-custom__arrow svg{
    width:16px!important;
    height:16px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }

  .quick-direction-custom.is-open .quick-direction-custom__arrow{
    transform:rotate(180deg)!important;
  }

  .quick-direction-custom__menu{
    position:absolute!important;
    top:calc(100% + 7px)!important;
    left:0!important;
    z-index:100!important;
    width:220px!important;
    padding:6px!important;
    border:1px solid rgba(111,130,148,.36)!important;
    border-radius:12px!important;
    background:
      radial-gradient(circle at 90% 0%,rgba(239,193,93,.06),transparent 45%),
      linear-gradient(180deg,#08131d,#040c14)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.05),
      0 18px 38px rgba(0,0,0,.42)!important;
    opacity:0!important;
    visibility:hidden!important;
    transform:translateY(-4px) scale(.985)!important;
    transform-origin:top left!important;
    transition:opacity .15s ease,visibility .15s ease,transform .15s ease!important;
  }

  .quick-direction-custom.is-open .quick-direction-custom__menu{
    opacity:1!important;
    visibility:visible!important;
    transform:translateY(0) scale(1)!important;
  }

  .quick-direction-custom__option{
    width:100%!important;
    min-height:40px!important;
    display:grid!important;
    grid-template-columns:7px minmax(0,1fr) 18px!important;
    align-items:center!important;
    gap:9px!important;
    padding:8px 10px!important;
    border:1px solid transparent!important;
    border-radius:8px!important;
    background:transparent!important;
    color:#e5ebf0!important;
    font:inherit!important;
    font-size:14px!important;
    font-weight:600!important;
    text-align:left!important;
    cursor:pointer!important;
  }

  .quick-direction-custom__option:hover,
  .quick-direction-custom__option:focus-visible{
    background:rgba(255,255,255,.045)!important;
    border-color:rgba(148,163,184,.14)!important;
    color:#fff!important;
    outline:none!important;
  }

  .quick-direction-custom__option.is-selected{
    background:linear-gradient(90deg,rgba(239,193,93,.12),rgba(239,193,93,.025))!important;
    border-color:rgba(239,193,93,.22)!important;
    color:#fff8e8!important;
  }

  .quick-direction-custom__dot{
    width:5px!important;
    height:5px!important;
    border-radius:50%!important;
    background:rgba(255,255,255,.18)!important;
  }

  .quick-direction-custom__option.is-selected .quick-direction-custom__dot{
    background:#efc15d!important;
    box-shadow:0 0 9px rgba(239,193,93,.38)!important;
  }

  .quick-direction-custom__check{
    color:#efc15d!important;
    opacity:0!important;
    text-align:center!important;
  }

  .quick-direction-custom__option.is-selected .quick-direction-custom__check{
    opacity:1!important;
  }
}

@media (max-width:700px){
  .quick-direction-label{
    width:100%!important;
  }

  #quickDirection{
    position:static!important;
    width:100%!important;
    height:46px!important;
    min-height:46px!important;
    max-height:46px!important;
    padding:0 12px!important;
  }

  .quick-direction-custom{
    display:none!important;
  }
}
/* ===== FIN QUICK DIRECTION PREMIUM COMPACT ===== */

/* ===== UX RESERVATION FLUIDE + HORAIRES RAIL 2026-09-22 ===== */
/* --- Colonne de réservation : aucun doublon, une étape à la fois --- */
.booking-prequote{
  display:none;
  grid-column:1 / -1;
  padding:20px 18px;
  border:1px solid rgba(239,193,93,.22);
  border-radius:16px;
  background:
    radial-gradient(circle at 96% 0%,rgba(239,193,93,.09),transparent 18rem),
    rgba(5,14,23,.62);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

#bookingForm:not(.booking-quote-active) > *:not(#lang):not(.booking-prequote){
  display:none!important;
}

#bookingForm:not(.booking-quote-active) .booking-prequote{
  display:block!important;
}

.booking-prequote__kicker{
  display:block;
  margin-bottom:6px;
  color:#83dfb6;
  font-size:10px;
  font-weight:850;
  letter-spacing:.15em;
}

.booking-prequote strong{
  display:block;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:24px;
  line-height:1.08;
}

.booking-prequote p{
  margin:8px 0 0;
  color:#aeb9c5;
  font-size:12px;
  line-height:1.55;
}

/* Les champs déterminés par le calculateur restent présents dans le DOM
   pour la logique/paiement, mais ne sont plus redemandés au client. */
#bookingForm label:has(#zone),
#bookingForm label:has(#direction),
#bookingForm label:has(#pickup_address),
#bookingForm label:has(#dropoff_address){
  display:none!important;
}

.booking-quote-summary{
  grid-column:1 / -1!important;
  padding:16px 17px!important;
  border-color:rgba(239,193,93,.30)!important;
  background:
    radial-gradient(circle at 96% 0%,rgba(239,193,93,.10),transparent 20rem),
    linear-gradient(180deg,rgba(11,25,36,.94),rgba(6,16,25,.97))!important;
}

.booking-quote-summary__eyebrow{
  color:#82e0b6!important;
}

.booking-quote-summary__copy strong{
  font-size:16px!important;
}

.booking-quote-summary__address{
  display:block;
  margin-top:4px;
  color:#aeb9c5;
  font-size:11px;
  line-height:1.4;
  overflow-wrap:anywhere;
}

.booking-quote-summary__copy small{
  margin-top:6px!important;
  color:#efc35d!important;
  font-size:13px!important;
}

.booking-quote-summary__edit{
  border-color:rgba(148,163,184,.22)!important;
  background:rgba(255,255,255,.025)!important;
}

/* Résultat du calculateur : tarif + action immédiate vers le créneau. */
.quick-fare-card .zone-search-result--found{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  min-height:48px!important;
  margin-top:12px!important;
  padding:10px 12px!important;
  border:1px solid rgba(239,193,93,.24)!important;
  border-radius:12px!important;
  background:rgba(239,193,93,.055)!important;
  color:#f4d27f!important;
}

.zone-search-result__text{
  min-width:0;
  line-height:1.4;
}

.zone-search-result__cta{
  flex:0 0 auto;
  min-height:36px;
  padding:0 13px;
  border:0;
  border-radius:9px;
  background:linear-gradient(180deg,#f8d77d,#e7b445);
  color:#171109;
  font:inherit;
  font-size:11px;
  font-weight:850;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(229,178,73,.16);
}

/* --- Sélecteur d'horaires : rail horizontal, plus de grille verte --- */
.nab-slot-section{
  position:relative;
  margin-top:18px!important;
}

.nab-slot-title{
  margin-bottom:9px!important;
  color:#f5f1e8!important;
}

.nab-time-grid{
  display:flex!important;
  grid-template-columns:none!important;
  gap:8px!important;
  width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  padding:2px 2px 8px!important;
  scroll-snap-type:x proximity!important;
  overscroll-behavior-inline:contain!important;
  scrollbar-width:thin!important;
  scrollbar-color:rgba(239,193,93,.38) rgba(255,255,255,.025)!important;
}

.nab-time-grid::-webkit-scrollbar{
  height:6px;
}

.nab-time-grid::-webkit-scrollbar-track{
  background:rgba(255,255,255,.025);
  border-radius:999px;
}

.nab-time-grid::-webkit-scrollbar-thumb{
  background:linear-gradient(90deg,rgba(239,193,93,.28),rgba(239,193,93,.58));
  border-radius:999px;
}

.nab-time-pill{
  position:relative!important;
  flex:0 0 84px!important;
  min-width:84px!important;
  min-height:45px!important;
  padding:0 10px!important;
  border:1px solid rgba(132,151,170,.24)!important;
  border-radius:12px!important;
  background:
    linear-gradient(180deg,rgba(9,21,31,.96),rgba(4,13,21,.98))!important;
  color:#f1f4f7!important;
  font-size:13px!important;
  font-weight:800!important;
  scroll-snap-align:start!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.03),
    0 6px 14px rgba(0,0,0,.14)!important;
  transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease!important;
}

.nab-time-pill:hover,
.nab-time-pill:focus-visible{
  transform:translateY(-2px)!important;
  border-color:rgba(205,216,226,.42)!important;
  background:
    linear-gradient(180deg,rgba(13,28,40,.99),rgba(6,17,27,.99))!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 8px 18px rgba(0,0,0,.20)!important;
  outline:none!important;
}

.nab-time-pill.is-selected{
  border-color:#efc35d!important;
  background:linear-gradient(180deg,#f5d372,#dfaa35)!important;
  color:#17130a!important;
  box-shadow:
    0 9px 22px rgba(223,170,53,.20),
    inset 0 1px 0 rgba(255,255,255,.28)!important;
}

/* Le prochain créneau devient la vraie recommandation principale. */
.nab-quick-slot{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:14px!important;
  margin-top:16px!important;
  padding:15px 16px!important;
  border:1px solid rgba(239,193,93,.34)!important;
  border-radius:16px!important;
  background:
    radial-gradient(circle at 100% 0%,rgba(239,193,93,.12),transparent 17rem),
    linear-gradient(180deg,rgba(16,27,34,.96),rgba(8,18,27,.98))!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.045),
    0 10px 24px rgba(0,0,0,.18)!important;
}

.nab-quick-slot__eyebrow{
  color:#efc35d!important;
  text-shadow:0 0 12px rgba(239,193,93,.22);
}

#nabAvailQuickLabel{
  color:#f7f4ed!important;
  font-size:13px!important;
  line-height:1.45!important;
}

#nabAvailQuickBtn{
  min-height:40px!important;
  padding:0 14px!important;
  border-radius:10px!important;
  background:linear-gradient(180deg,#f8d77d,#e7b445)!important;
  color:#171109!important;
  box-shadow:0 8px 18px rgba(229,178,73,.16)!important;
}

/* Après choix, tout se replie en un récapitulatif compact. */
#nabAvailWrap.has-slot-selection{
  padding:14px!important;
}

#nabAvailWrap.has-slot-selection .nab-calendar-selection{
  margin:0!important;
  padding:14px 15px!important;
  border:1px solid rgba(239,193,93,.30)!important;
  border-radius:14px!important;
  background:
    linear-gradient(180deg,rgba(239,193,93,.075),rgba(239,193,93,.025))!important;
}

#nabAvailWrap.has-slot-selection #nabAvailSelected{
  color:#efc35d!important;
  font-size:14px!important;
}

/* Mobile : rail tactile, 3 créneaux environ visibles à la fois. */
@media (max-width:900px){
  .quick-fare-card .zone-search-result--found{
    align-items:stretch!important;
    flex-direction:column!important;
  }

  .zone-search-result__cta{
    width:100%!important;
    min-height:42px!important;
  }

  .nab-time-grid{
    margin-right:-4px!important;
    padding-right:12px!important;
  }

  .nab-time-pill{
    flex-basis:92px!important;
    min-width:92px!important;
    min-height:48px!important;
    font-size:14px!important;
  }

  .nab-quick-slot{
    grid-template-columns:1fr!important;
  }

  #nabAvailQuickBtn{
    width:100%!important;
  }

  .booking-prequote strong{
    font-size:22px;
  }
}
/* ===== FIN UX RESERVATION FLUIDE + HORAIRES RAIL ===== */


/* ===== FIX SELECT PASSAGERS — LISIBILITÉ MENU NATIF WINDOWS 2026-09-22 ===== */
/* Le champ fermé reste sombre, mais la liste native Windows/Chrome est claire :
   on force donc les options en texte foncé sur fond clair pour éviter le blanc sur blanc. */
#bookingForm #passengers{
  color:#f8fafc!important;
}

#bookingForm #passengers option{
  color:#111827!important;
  background:#ffffff!important;
}

#bookingForm #passengers option:checked{
  color:#111827!important;
}
/* ===== FIN FIX SELECT PASSAGERS ===== */


/* ===== PREMIUM CONDITIONS + FOOTER 2026-09-22 ===== */

/* ---------- Conditions : grand bloc premium ---------- */
.premium-conditions.conditions-card{
  position:relative!important;
  grid-column:1 / -1!important;
  max-width:none!important;
  margin:18px 0 0!important;
  padding:clamp(24px,2.4vw,34px)!important;
  overflow:hidden!important;
  border:1px solid rgba(224,177,77,.30)!important;
  border-radius:24px!important;
  background:
    radial-gradient(circle at 92% -10%,rgba(239,193,93,.17),transparent 27rem),
    radial-gradient(circle at 4% 105%,rgba(42,104,91,.15),transparent 24rem),
    linear-gradient(145deg,rgba(8,18,28,.985),rgba(4,11,18,.99))!important;
  box-shadow:
    0 26px 70px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.055)!important;
  color:#eef3f8!important;
  isolation:isolate;
}

.premium-conditions.conditions-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(115deg,rgba(255,255,255,.035),transparent 24%,transparent 75%,rgba(239,193,93,.025));
}

.premium-conditions__glow{
  position:absolute;
  width:300px;
  height:300px;
  right:-110px;
  top:-170px;
  border-radius:50%;
  background:rgba(239,193,93,.12);
  filter:blur(28px);
  pointer-events:none;
}

.premium-conditions__header{
  position:relative;
  max-width:830px;
  margin:0 0 24px;
  padding:0 0 22px;
  border-bottom:1px solid rgba(255,255,255,.085);
}

.premium-conditions__kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-bottom:10px;
  color:#efc35d!important;
  font-size:10px!important;
  line-height:1.2!important;
  font-weight:900!important;
  letter-spacing:.17em!important;
  text-transform:uppercase;
}

.premium-conditions__kicker::before{
  content:"";
  width:28px;
  height:1px;
  background:linear-gradient(90deg,#efc35d,rgba(239,195,93,.15));
}

.premium-conditions.conditions-card .premium-conditions__header h2{
  margin:0 0 9px!important;
  color:#fff8e9!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:clamp(27px,2.5vw,38px)!important;
  line-height:1.08!important;
  font-weight:650!important;
  letter-spacing:-.025em!important;
}

.premium-conditions__header p{
  margin:0!important;
  color:#aebdcb!important;
  font-size:13.5px!important;
  line-height:1.65!important;
  max-width:720px;
}

.premium-conditions__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.premium-condition{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:14px;
  min-width:0;
  padding:18px!important;
  border:1px solid rgba(255,255,255,.09);
  border-radius:16px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012)),
    rgba(7,17,27,.72);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 12px 30px rgba(0,0,0,.12);
}

.premium-condition::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(239,193,93,.24),transparent);
  opacity:.58;
}

.premium-condition--zones{
  grid-column:1 / -1;
  display:block;
  padding:20px!important;
  border-color:rgba(239,193,93,.18);
  background:
    radial-gradient(circle at 100% 0%,rgba(239,193,93,.075),transparent 18rem),
    linear-gradient(180deg,rgba(15,27,38,.88),rgba(7,16,25,.88));
}

.premium-condition--acceptance{
  grid-column:1 / -1;
  border-color:rgba(94,203,151,.19);
  background:
    linear-gradient(90deg,rgba(47,139,98,.085),rgba(255,255,255,.018)),
    rgba(7,17,27,.78);
}

.premium-condition__heading{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:16px;
}

.premium-condition__icon{
  width:43px;
  height:43px;
  flex:0 0 43px;
  display:grid;
  place-items:center;
  border:1px solid rgba(239,193,93,.45);
  border-radius:13px;
  background:
    linear-gradient(145deg,rgba(239,193,93,.18),rgba(239,193,93,.055));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 9px 22px rgba(0,0,0,.16);
}

.premium-condition__icon svg{
  width:21px;
  height:21px;
  fill:#efc35d;
}

.premium-condition--acceptance .premium-condition__icon{
  border-color:rgba(91,212,155,.35);
  background:rgba(65,181,129,.09);
}

.premium-condition--acceptance .premium-condition__icon svg{
  fill:#83dfb6;
}

.premium-condition__eyebrow{
  display:block;
  margin:0 0 3px;
  color:#708092;
  font-size:9px;
  line-height:1;
  font-weight:900;
  letter-spacing:.15em;
}

.premium-condition h3{
  margin:0 0 7px!important;
  color:#f6f8fb!important;
  font-size:14px!important;
  line-height:1.25!important;
  font-weight:800!important;
  letter-spacing:-.01em!important;
}

.premium-condition p{
  margin:0!important;
  color:#afbcc9!important;
  font-size:12px!important;
  line-height:1.62!important;
}

.premium-zone-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
}

.premium-zone-item{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  min-width:0;
  padding:11px 12px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:12px;
  background:rgba(2,10,17,.57);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}

.premium-zone-item strong{
  display:grid;
  place-items:center;
  width:31px;
  height:26px;
  border-radius:8px;
  background:rgba(239,193,93,.10);
  border:1px solid rgba(239,193,93,.24);
  color:#efc35d!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.05em;
}

.premium-zone-item span{
  min-width:0;
  color:#d3dce5!important;
  font-size:10.5px!important;
  line-height:1.35!important;
}

.premium-zone-item b{
  color:#fff5d7!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:850!important;
  white-space:nowrap;
}

.premium-condition__note{
  margin:12px 2px 0!important;
  padding-top:11px;
  border-top:1px solid rgba(255,255,255,.07);
  color:#8494a4!important;
  font-size:10.5px!important;
  line-height:1.5!important;
}

/* ---------- Footer : finition premium ---------- */
.footer.premium-footer{
  max-width:1360px!important;
  margin:26px auto 30px!important;
  padding:0 24px!important;
  border:0!important;
  color:#b8c4d1!important;
}

.premium-footer__shell{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(224,177,77,.26);
  border-radius:23px;
  background:
    radial-gradient(circle at 90% -10%,rgba(239,193,93,.13),transparent 25rem),
    radial-gradient(circle at -5% 115%,rgba(42,104,91,.15),transparent 25rem),
    linear-gradient(150deg,#07131e,#030a11 72%);
  box-shadow:
    0 25px 68px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.045);
}

.premium-footer__shell::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(120deg,rgba(255,255,255,.025),transparent 28%),
    linear-gradient(180deg,transparent 68%,rgba(0,0,0,.14));
}

.premium-footer__top{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(190px,.65fr) minmax(220px,.8fr);
  gap:clamp(26px,4vw,58px);
  padding:clamp(28px,3vw,40px);
}

.premium-footer__brandline{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:15px;
}

.premium-footer__mark{
  display:grid;
  place-items:center;
  width:37px;
  height:37px;
  flex:0 0 37px;
  color:#efc35d;
  font-size:24px;
  line-height:1;
  text-shadow:0 0 16px rgba(239,193,93,.24);
}

.premium-footer__brandline strong{
  display:block;
  margin:0 0 3px;
  color:#fff9ec;
  font-family:Georgia,"Times New Roman",serif;
  font-size:20px;
  line-height:1.05;
  font-weight:700;
}

.premium-footer__brandline small{
  display:block;
  color:#efc35d;
  font-size:8px;
  font-weight:900;
  letter-spacing:.34em;
}

.premium-footer__brandtext{
  max-width:560px;
  margin:0 0 18px!important;
  color:#9eacba!important;
  font-size:12.5px!important;
  line-height:1.7!important;
}

.premium-footer__trust{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.premium-footer__trust > span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:999px;
  background:rgba(255,255,255,.027);
  color:#cbd5df;
  font-size:9.5px;
  line-height:1.25;
  font-weight:650;
}

.premium-footer__trust i{
  display:grid;
  place-items:center;
  width:17px;
  height:17px;
  flex:0 0 17px;
  border-radius:50%;
  background:rgba(96,210,158,.10);
  color:#83dfb6;
  font-style:normal;
  font-size:10px;
  font-weight:900;
}

.premium-footer__col{
  display:flex!important;
  flex-direction:column!important;
  gap:9px!important;
  min-width:0;
}

.premium-footer__col h3{
  margin:0 0 7px!important;
  padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,.075);
  color:#efc35d!important;
  font-size:9.5px!important;
  line-height:1.2!important;
  font-weight:900!important;
  letter-spacing:.16em!important;
  text-transform:uppercase;
}

.premium-footer__col a{
  position:relative;
  display:inline-flex!important;
  align-items:center;
  width:fit-content!important;
  max-width:100%;
  padding:2px 0 2px 13px!important;
  color:#c4cfda!important;
  text-decoration:none!important;
  font-size:11.5px!important;
  line-height:1.45!important;
  transition:color .18s ease,transform .18s ease!important;
}

.premium-footer__col a::before{
  content:"";
  position:absolute;
  left:0;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#9a7a37;
  box-shadow:0 0 0 3px rgba(239,193,93,.035);
}

.premium-footer__col a:hover,
.premium-footer__col a:focus-visible{
  color:#fff7e7!important;
  transform:translateX(2px);
}

.premium-footer__bottom{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:16px clamp(28px,3vw,40px) 19px;
  border-top:1px solid rgba(255,255,255,.075);
  background:rgba(0,0,0,.10);
  color:#7f8f9f;
  font-size:9.5px;
  line-height:1.5;
}

.premium-footer__bottom a{
  color:#aab7c4!important;
  text-decoration:none;
  border-bottom:1px solid rgba(239,193,93,.20);
}

.premium-footer__bottom a:hover,
.premium-footer__bottom a:focus-visible{
  color:#f2cc71!important;
  border-bottom-color:rgba(239,193,93,.55);
}

@media (max-width:1180px){
  .premium-zone-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .premium-footer__top{
    grid-template-columns:minmax(0,1.35fr) minmax(180px,.65fr) minmax(205px,.75fr);
    gap:28px;
  }
}

@media (max-width:900px){
  .premium-conditions.conditions-card{
    margin-top:16px!important;
    padding:22px 18px!important;
    border-radius:20px!important;
  }

  .premium-conditions__header{
    margin-bottom:18px;
    padding-bottom:18px;
  }

  .premium-conditions.conditions-card .premium-conditions__header h2{
    font-size:clamp(25px,7.5vw,34px)!important;
  }

  .premium-conditions__grid{
    grid-template-columns:1fr;
  }

  .premium-condition--zones,
  .premium-condition--acceptance{
    grid-column:auto;
  }

  .premium-zone-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .footer.premium-footer{
    padding:0 14px!important;
    margin-top:22px!important;
  }

  .premium-footer__top{
    grid-template-columns:1fr 1fr;
    gap:26px 20px;
    padding:26px 22px;
  }

  .premium-footer__brand{
    grid-column:1 / -1;
  }

  .premium-footer__brandtext{
    max-width:680px;
  }
}

@media (max-width:600px){
  .premium-conditions.conditions-card{
    padding:20px 14px!important;
    border-radius:18px!important;
  }

  .premium-conditions__header p{
    font-size:12.5px!important;
  }

  .premium-condition{
    grid-template-columns:auto minmax(0,1fr);
    padding:15px!important;
    border-radius:14px;
  }

  .premium-condition--zones{
    display:block;
  }

  .premium-condition__heading{
    align-items:flex-start;
    margin-bottom:13px;
  }

  .premium-zone-grid{
    grid-template-columns:1fr;
    gap:7px;
  }

  .premium-zone-item{
    grid-template-columns:auto minmax(0,1fr) auto;
    padding:10px;
  }

  .premium-zone-item span{
    font-size:10.5px!important;
  }

  .premium-condition__icon{
    width:39px;
    height:39px;
    flex-basis:39px;
  }

  .premium-condition__icon svg{
    width:19px;
    height:19px;
  }

  .premium-footer__shell{
    border-radius:19px;
  }

  .premium-footer__top{
    grid-template-columns:1fr;
    gap:24px;
    padding:24px 18px 20px;
  }

  .premium-footer__brand{
    grid-column:auto;
  }

  .premium-footer__brandline strong{
    font-size:18px;
  }

  .premium-footer__trust{
    display:grid;
    grid-template-columns:1fr;
  }

  .premium-footer__trust > span{
    width:100%;
    border-radius:11px;
  }

  .premium-footer__bottom{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    padding:15px 18px 18px;
  }
}

/* ===== FIN PREMIUM CONDITIONS + FOOTER ===== */


/* Footer après retrait du bloc Conditions de la page d'accueil */
.premium-footer__bottom--single{
  justify-content:center!important;
  text-align:center;
}


/* ===== FOOTER COMPACT AFTER REASSURANCE REMOVAL 2026-09-22 ===== */
.premium-footer__brand{
  display:flex;
  align-items:flex-start;
}

.premium-footer__brandline{
  margin-bottom:0!important;
}

.premium-footer__top{
  grid-template-columns:minmax(260px,1.05fr) minmax(190px,.7fr) minmax(220px,.85fr)!important;
}

@media (max-width:900px){
  .premium-footer__brand{
    display:block;
  }
}
/* ===== FIN FOOTER COMPACT ===== */


/* ===== PREMIUM BRAND LOGO HEADER + FOOTER 2026-09-22 ===== */

/* Header : le nouveau logo remplace entièrement l'ancienne marque texte. */
.nab-header .nab-logo.nab-logo--image{
  display:flex!important;
  align-items:center!important;
  flex:0 0 auto;
  width:min(320px,28vw);
  min-width:210px;
  height:58px;
  overflow:hidden;
  border-radius:10px;
  text-decoration:none!important;
}

.nab-logo__image{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:left center;
  border:0;
  filter:drop-shadow(0 5px 14px rgba(0,0,0,.24));
}

.luxury-logo-mark,
.luxury-logo-copy{
  display:none!important;
}

/* Le header garde une hauteur élégante malgré le logo horizontal. */
.nab-header-inner{
  min-height:72px;
}

/* Footer : logo plus ample, mais sans écraser les colonnes de navigation. */
.premium-footer__brand--logo{
  display:flex!important;
  align-items:flex-start!important;
  min-width:0;
}

.premium-footer__logo-link{
  display:block;
  width:min(390px,100%);
  text-decoration:none!important;
  border:0!important;
}

.premium-footer__logo-image{
  display:block;
  width:100%;
  height:auto;
  max-height:132px;
  object-fit:contain;
  object-position:left center;
  border-radius:14px;
  filter:drop-shadow(0 10px 24px rgba(0,0,0,.24));
}

.premium-footer__brandline,
.premium-footer__mark{
  display:none!important;
}

@media (max-width:1180px){
  .nab-header .nab-logo.nab-logo--image{
    width:min(280px,31vw);
    min-width:190px;
    height:54px;
  }
}

@media (max-width:900px){
  .nab-header .nab-logo.nab-logo--image{
    width:220px;
    min-width:0;
    height:48px;
  }

  .nab-header-inner{
    min-height:64px;
  }

  .premium-footer__logo-link{
    width:min(360px,100%);
  }
}

@media (max-width:600px){
  .nab-header .nab-logo.nab-logo--image{
    width:184px;
    height:42px;
  }

  .nab-header-inner{
    min-height:58px;
    padding-top:.55rem!important;
    padding-bottom:.55rem!important;
  }

  .premium-footer__logo-link{
    width:min(315px,100%);
  }

  .premium-footer__logo-image{
    max-height:112px;
  }
}

/* ===== FIN PREMIUM BRAND LOGO ===== */


/* ===== FINAL EXACT LOGO INTEGRATION 2026-09-22 ===== */
/* Logo exact choisi par Ryad : affichage direct sur les fonds sombres,
   sans carte, sans fond ajouté et sans déformation. */

.nab-header .nab-logo.nab-logo--image{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex:0 0 auto!important;
  width:clamp(235px,23vw,335px)!important;
  min-width:0!important;
  height:auto!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-decoration:none!important;
}

.nab-header .nab-logo__image{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:left center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  image-rendering:auto!important;
  filter:drop-shadow(0 6px 15px rgba(0,0,0,.28))!important;
}

.nab-header-inner{
  min-height:78px!important;
}

/* Footer : logo plus généreux afin qu'il joue le rôle de signature de marque. */
.premium-footer__brand.premium-footer__brand--logo{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  min-width:0!important;
  align-self:center!important;
}

.premium-footer__logo-link{
  display:block!important;
  width:clamp(320px,31vw,455px)!important;
  max-width:100%!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-decoration:none!important;
}

.premium-footer__logo-image{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:left center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  image-rendering:auto!important;
  filter:drop-shadow(0 8px 20px rgba(0,0,0,.27))!important;
}

@media (max-width:1180px){
  .nab-header .nab-logo.nab-logo--image{
    width:clamp(220px,27vw,290px)!important;
  }

  .premium-footer__logo-link{
    width:min(390px,100%)!important;
  }
}

@media (max-width:900px){
  .nab-header .nab-logo.nab-logo--image{
    width:225px!important;
  }

  .nab-header-inner{
    min-height:68px!important;
  }

  .premium-footer__brand.premium-footer__brand--logo{
    justify-content:flex-start!important;
  }

  .premium-footer__logo-link{
    width:min(370px,100%)!important;
  }
}

@media (max-width:600px){
  .nab-header .nab-logo.nab-logo--image{
    width:188px!important;
  }

  .nab-header-inner{
    min-height:60px!important;
  }

  .premium-footer__logo-link{
    width:min(315px,100%)!important;
  }
}
/* ===== FIN FINAL EXACT LOGO INTEGRATION ===== */


/* ===== WEEK NAV UX 2026-09-22 ===== */
/* Les flèches encadrent désormais directement la semaine affichée :
   l'action devient immédiatement compréhensible. */

.nab-calendar-head{
  display:block!important;
}

.nab-calendar-meta{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:12px!important;
  margin-top:18px!important;
}

.nab-week-nav{
  display:grid!important;
  grid-template-columns:48px minmax(0,1fr) 48px!important;
  align-items:center!important;
  gap:10px!important;
  min-width:0!important;
  padding:10px 12px!important;
  border:1px solid rgba(237,193,93,.20)!important;
  border-radius:16px!important;
  background:
    linear-gradient(180deg,rgba(237,193,93,.055),rgba(255,255,255,.018)),
    rgba(3,12,20,.48)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 8px 22px rgba(0,0,0,.12)!important;
}

.nab-week-nav__center{
  min-width:0!important;
  text-align:center!important;
}

.nab-week-nav__hint{
  display:block!important;
  margin:0 0 3px!important;
  color:#8392a3!important;
  font-size:9px!important;
  line-height:1.15!important;
  font-weight:800!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
}

#nabAvailTitle{
  margin:0!important;
  padding:0!important;
  color:#efc35d!important;
  font-size:15px!important;
  line-height:1.28!important;
  font-weight:850!important;
  text-align:center!important;
  white-space:normal!important;
}

#nabAvailPrev,
#nabAvailNext{
  position:static!important;
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(237,193,93,.24)!important;
  border-radius:13px!important;
  background:rgba(255,255,255,.035)!important;
  color:#efc35d!important;
  font-size:28px!important;
  line-height:1!important;
  font-weight:500!important;
  cursor:pointer!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
  transition:
    transform .15s ease,
    border-color .15s ease,
    background .15s ease,
    box-shadow .15s ease!important;
}

#nabAvailPrev:hover:not(:disabled),
#nabAvailNext:hover:not(:disabled),
#nabAvailPrev:focus-visible:not(:disabled),
#nabAvailNext:focus-visible:not(:disabled){
  transform:translateY(-1px)!important;
  border-color:rgba(237,193,93,.62)!important;
  background:rgba(237,193,93,.10)!important;
  box-shadow:
    0 0 0 3px rgba(237,193,93,.07),
    inset 0 1px 0 rgba(255,255,255,.05)!important;
  outline:none!important;
}

#nabAvailPrev:active:not(:disabled),
#nabAvailNext:active:not(:disabled){
  transform:translateY(0) scale(.97)!important;
}

#nabAvailPrev:disabled,
#nabAvailNext:disabled{
  opacity:.28!important;
  cursor:not-allowed!important;
  filter:saturate(.4)!important;
}

#nabAvailJump{
  min-width:145px!important;
  max-width:160px!important;
  min-height:48px!important;
  padding:8px 11px!important;
  border-radius:13px!important;
}

/* L'ancien positionnement des flèches dans le coin n'a plus lieu d'être. */
.nab-calendar-nav{
  display:none!important;
}

@media (max-width:700px){
  .nab-calendar-meta{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }

  #nabAvailJump{
    justify-self:stretch!important;
    width:100%!important;
    max-width:none!important;
  }
}

@media (max-width:520px){
  .nab-calendar-head > div:first-child{
    padding-right:0!important;
  }

  .nab-week-nav{
    grid-template-columns:44px minmax(0,1fr) 44px!important;
    gap:8px!important;
    padding:9px 10px!important;
    border-radius:14px!important;
  }

  #nabAvailPrev,
  #nabAvailNext{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    font-size:27px!important;
    line-height:1!important;
  }

  #nabAvailTitle{
    font-size:14px!important;
    line-height:1.3!important;
  }

  .nab-week-nav__hint{
    font-size:8px!important;
    letter-spacing:.11em!important;
  }

  #nabAvailJump{
    display:none!important;
  }
}
/* ===== FIN WEEK NAV UX ===== */








/* ===== DESKTOP PREMIUM WEEK SWITCHER 2026-09-22 ===== */
/* Activé uniquement par la classe PC posée par script-v2.js.
   Le mobile/tactile conserve ses règles actuelles. */

#nabAvailWrap.nab-calendar-desktop .nab-calendar-meta{
  display:grid!important;
  grid-template-columns:1fr!important;
  width:100%!important;
  max-width:none!important;
  gap:12px!important;
  align-items:stretch!important;
  justify-items:stretch!important;
  margin-top:18px!important;
  box-sizing:border-box!important;
}

#nabAvailWrap.nab-calendar-desktop .nab-week-nav{
  display:grid!important;
  grid-template-columns:52px minmax(0,1fr) 52px!important;
  align-items:center!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  min-height:76px!important;
  gap:12px!important;
  padding:11px 12px!important;
  margin:0!important;
  box-sizing:border-box!important;
  border:1px solid rgba(239,195,93,.30)!important;
  border-radius:18px!important;
  background:
    radial-gradient(circle at 50% -65%,rgba(239,195,93,.11),transparent 70%),
    linear-gradient(180deg,rgba(255,255,255,.036),rgba(255,255,255,.012)),
    rgba(5,15,24,.90)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 10px 26px rgba(0,0,0,.15)!important;
}

#nabAvailWrap.nab-calendar-desktop .nab-week-nav__center{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:0!important;
  width:100%!important;
  padding:0 8px!important;
  text-align:center!important;
}

#nabAvailWrap.nab-calendar-desktop .nab-week-nav__hint{
  display:block!important;
  margin:0 0 5px!important;
  color:#8796a7!important;
  font-size:8.5px!important;
  line-height:1!important;
  font-weight:850!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}

#nabAvailWrap.nab-calendar-desktop #nabAvailTitle{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  color:#efc35d!important;
  font-size:16px!important;
  line-height:1.15!important;
  font-weight:850!important;
  letter-spacing:-.01em!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

#nabAvailWrap.nab-calendar-desktop #nabAvailPrev,
#nabAvailWrap.nab-calendar-desktop #nabAvailNext{
  position:static!important;
  display:grid!important;
  place-items:center!important;
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  min-height:52px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(239,195,93,.34)!important;
  border-radius:14px!important;
  background:
    linear-gradient(180deg,rgba(239,195,93,.075),rgba(255,255,255,.018))!important;
  color:#efc35d!important;
  font-size:30px!important;
  line-height:1!important;
  font-weight:500!important;
  cursor:pointer!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    0 6px 14px rgba(0,0,0,.10)!important;
  transition:
    transform .15s ease,
    border-color .15s ease,
    background .15s ease,
    box-shadow .15s ease!important;
}

#nabAvailWrap.nab-calendar-desktop #nabAvailPrev{
  justify-self:start!important;
}

#nabAvailWrap.nab-calendar-desktop #nabAvailNext{
  justify-self:end!important;
}

#nabAvailWrap.nab-calendar-desktop #nabAvailPrev:hover:not(:disabled),
#nabAvailWrap.nab-calendar-desktop #nabAvailNext:hover:not(:disabled),
#nabAvailWrap.nab-calendar-desktop #nabAvailPrev:focus-visible:not(:disabled),
#nabAvailWrap.nab-calendar-desktop #nabAvailNext:focus-visible:not(:disabled){
  transform:translateY(-1px)!important;
  border-color:rgba(239,195,93,.72)!important;
  background:rgba(239,195,93,.12)!important;
  box-shadow:
    0 0 0 3px rgba(239,195,93,.07),
    0 8px 18px rgba(0,0,0,.14)!important;
  outline:none!important;
}

#nabAvailWrap.nab-calendar-desktop #nabAvailPrev:active:not(:disabled),
#nabAvailWrap.nab-calendar-desktop #nabAvailNext:active:not(:disabled){
  transform:translateY(0) scale(.97)!important;
}

#nabAvailWrap.nab-calendar-desktop #nabAvailPrev:disabled,
#nabAvailWrap.nab-calendar-desktop #nabAvailNext:disabled{
  opacity:.48!important;
  color:rgba(239,195,93,.62)!important;
  border-color:rgba(239,195,93,.16)!important;
  background:rgba(255,255,255,.018)!important;
  cursor:not-allowed!important;
  filter:none!important;
}

#nabAvailWrap.nab-calendar-desktop #nabAvailJump{
  display:none!important;
}

/* ===== FIN DESKTOP PREMIUM WEEK SWITCHER ===== */


/* ===== RESET LEGACY WEEK GRID AREAS 2026-09-22 ===== */
/* Anciennes règles V2.3 : #nabAvailPrev{grid-area:prev}, etc.
   Elles perturbaient le nouveau switcher desktop. */
#nabAvailWrap.nab-calendar-desktop #nabAvailPrev{
  grid-area:auto!important;
  grid-column:1!important;
  grid-row:1!important;
  visibility:visible!important;
}

#nabAvailWrap.nab-calendar-desktop .nab-week-nav__center{
  grid-column:2!important;
  grid-row:1!important;
}

#nabAvailWrap.nab-calendar-desktop #nabAvailNext{
  grid-area:auto!important;
  grid-column:3!important;
  grid-row:1!important;
  visibility:visible!important;
}

#nabAvailWrap.nab-calendar-desktop #nabAvailTitle{
  grid-area:auto!important;
}
/* ===== FIN RESET LEGACY WEEK GRID AREAS ===== */


/* ===== I18N — textes générés par CSS (FR / EN / ES / DE / NL) ===== */
html[lang="fr"] .header-main::before{content:"Chauffeur privé • Bordeaux & Gironde";}
html[lang="en"] .header-main::before{content:"Private chauffeur • Bordeaux & Gironde";}
html[lang="es"] .header-main::before{content:"Conductor privado • Burdeos y Gironda";}
html[lang="de"] .header-main::before{content:"Privatchauffeur • Bordeaux & Gironde";}
html[lang="nl"] .header-main::before{content:"Privéchauffeur • Bordeaux & Gironde";}

html[lang="fr"] .form-wrap::before{content:"Réservation sécurisée";}
html[lang="en"] .form-wrap::before{content:"Secure booking";}
html[lang="es"] .form-wrap::before{content:"Reserva segura";}
html[lang="de"] .form-wrap::before{content:"Sichere Buchung";}
html[lang="nl"] .form-wrap::before{content:"Veilige reservering";}

html[lang="fr"] .form-wrap h2::after{content:"Réservez votre trajet en quelques clics";}
html[lang="en"] .form-wrap h2::after{content:"Book your journey in just a few clicks";}
html[lang="es"] .form-wrap h2::after{content:"Reserve su trayecto en unos pocos clics";}
html[lang="de"] .form-wrap h2::after{content:"Buchen Sie Ihre Fahrt mit wenigen Klicks";}
html[lang="nl"] .form-wrap h2::after{content:"Reserveer uw rit in slechts enkele klikken";}
/* ===== FIN I18N TEXTES CSS ===== */
