/* ====== Identité NUIT : site public ======
   Chargée EN DERNIER (après style.css, reservation.css, fx.css, luxe.css, jour.css et nuit-jetons.css) : elle surcharge l'existant.
   Règles : couleurs par jetons uniquement ; un seul or (fond du bouton principal, filet actif, grands chiffres) ; Cormorant Garamond pour
   les titres éditoriaux (24 px et plus), Plus Jakarta Sans pour toute donnée ; profondeur par filets, pas d'ombre ni de verre dépoli ;
   aucun effet lumineux, aucune animation sans fin. Suffit seule à habiller une page qui ne charge que style.css (mentions, page 404). */

/* ---------- 0. Anciens noms de variables ramenés aux jetons (style.css, luxe.css, jour.css) ---------- */
:root,:root[data-theme]{
  color-scheme:dark!important;   /* theme.js écrit le schéma en style : la nuit est la seule identité */
  --nuit2:var(--nuit-2); --or2:var(--or-clair); --texte:var(--creme); --gris:var(--texte-2); --bord:var(--trait); --vert:var(--ok);
  --bg:var(--fond); --bg2:var(--nuit); --ivoire:var(--creme); --mute:var(--texte-2); --verre:var(--nuit); --ligne:var(--trait); --glow:transparent;
  --r:var(--r-4); --ombre:none;
}

/* ---------- 1. Base et typographie ---------- */
body,:root[data-theme] body{background:var(--fond);color:var(--creme);font-family:var(--f-ui);font-size:16px;line-height:1.6;font-variant-numeric:lining-nums}
h1,h2,.final h2{font-family:var(--f-titre);font-weight:600;letter-spacing:-.005em;color:var(--creme);text-wrap:balance;font-variant-numeric:lining-nums}
h1[style],h2[style]{color:var(--creme)!important}                      /* page 404 : titre en style */
h1{font-size:var(--t-titre);line-height:1.05}
h2{font-size:var(--t-section);line-height:1.08;margin-bottom:12px}
h1 em,h2 em{font-style:italic;font-weight:500;color:var(--or-clair)}   /* un mot d'accent, pas plus */
h3{font-family:var(--f-ui);font-weight:700;font-size:var(--t-ui-l);line-height:1.25;letter-spacing:-.005em;color:var(--creme)}
:root[data-theme] h3{color:var(--creme)}
b,strong{font-weight:700}
button,input,select,textarea{font-family:inherit}   /* plus aucun bouton en police du système */
a{text-underline-offset:3px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-1)}
[tabindex="-1"]:focus-visible,.rz-t:focus-visible{outline:none}   /* titre d'étape ciblé par le script : pas de cadre */
.skip{background:var(--creme);color:var(--fond);border-radius:var(--r-2)}.skip:focus{outline:3px solid var(--focus)}
.tablewrap:focus-visible{outline:2px solid var(--focus)}
.kicker{font:700 12px/1.3 var(--f-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--texte-2);margin-bottom:10px}
.sub{color:var(--texte-2);font-size:var(--t-corps-l);line-height:1.55;margin-bottom:28px}
.muted{color:var(--texte-2);font-size:14px}
.sd{color:var(--texte-2)}
section{padding:88px 0;background:transparent}
.creme,:root[data-theme] .creme{background:var(--nuit);border-block:var(--ep) solid var(--trait)}
[data-prix],.hud b,.route .from b,.car .p b,table.tarifs td b,.rz-prix b,.rz-bar-p b,dd.rz-rec-p,.dock .go .p{font-family:var(--f-ui);font-variant-numeric:tabular-nums lining-nums}

/* ---------- 2. Mouvement : apparition courte, une seule fois ; plus aucun effet lumineux ---------- */
#progress,.cursorglow,.ticker,.stepline,.dot:after,.dock .go:before,.map .pulse,#car>circle:first-child,#trajets:before,#tarifs:before,#faq:before{display:none!important}
[data-r],[data-r="l"],[data-r="r"],[data-r="z"]{transform:translateY(10px);transition:opacity var(--t-long) var(--courbe),transform var(--t-long) var(--courbe)}
[data-r].in{transform:none}
.hero h1 .w{opacity:1;transform:none;transition:none;animation:none}
.hero .bg,.hero .bg img,.hero .wrap{animation:none!important}
.btn{will-change:auto}

/* ---------- 3. Composants ---------- */
/* 3.1 Bouton : une seule action or par écran */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--e-2);min-height:var(--cible-action);padding:12px 20px;border:var(--ep) solid var(--or);border-radius:var(--r-3);
  background:var(--or);color:var(--sur-or);font:700 15px/1.2 var(--f-ui);text-align:center;text-decoration:none;cursor:pointer;box-shadow:none;transform:none!important;transition:background var(--t-court),border-color var(--t-court)}
.btn:hover{background:var(--or-clair);border-color:var(--or-clair)}
.btn:active{transform:translateY(1px)!important}
.btn.small{min-height:var(--cible);padding:8px 16px;font-size:14px}
.btn.ghost,.btn.wa,a.btn.ghost[style]{background:transparent;color:var(--creme)!important;border-color:var(--trait-fort)!important;font-weight:600;box-shadow:none}
.btn.ghost:hover,.btn.wa:hover,a.btn.ghost[style]:hover{background:transparent;border-color:var(--or)!important}

/* 3.2 Carte : surface pleine, filet, un seul niveau */
.route,:root[data-theme] .route,.step,:root[data-theme] .step,.car,.eng,details,.driver,.review{background:var(--nuit);border:var(--ep) solid var(--trait);border-radius:var(--r-4);box-shadow:none;color:var(--creme)}
.creme .step,.creme .eng{background:var(--nuit-2)!important}
.route,.car{transition:border-color var(--t-moyen)}
.route:hover,.car:hover{transform:none;border-color:var(--or);box-shadow:none}
.route:hover .ph img,.car:hover .cph img{transform:none}

/* 3.3 Pastille et étiquette */
.route .tag,.car .badge{background:var(--fond);border:var(--ep) solid var(--or);color:var(--creme);font:700 12.5px/1.3 var(--f-ui);padding:4px 10px;border-radius:var(--r-rond)}
.chips span{background:var(--voile);border:var(--ep) solid var(--trait-fort);color:var(--creme);padding:6px 12px;border-radius:var(--r-rond);font-size:var(--t-petit);font-weight:500}
.chips span b{font-weight:700}
.dot{background:var(--ok);box-shadow:0 0 0 2px var(--nuit)}

/* 3.4 Champ (formulaires hors tunnel) */
.field{color:var(--texte-2);font:600 12.5px/1.3 var(--f-ui)}
.field input,.field select,.field textarea{background:var(--fond);color:var(--creme);border:var(--ep) solid var(--trait-fort);border-radius:var(--r-2)}
:root[data-theme] input,:root[data-theme] select,:root[data-theme] textarea{background:var(--fond);color:var(--creme)}   /* neutralise l'ancien thème jour */
.field input:focus,.field select:focus{border-color:var(--or)}

/* 3.5 En-tête : barre pleine, sans verre dépoli ; menu du téléphone complet sur TOUTES les pages (les pages de contenu ne chargent pas reservation.css) */
header.top{background:linear-gradient(180deg,var(--voile),rgba(5,10,20,0));transition:background var(--t-moyen)}
header.top.scrolled,header.top.solid,:root[data-theme] header.top.solid,:root[data-theme] header.top.scrolled{background:var(--fond);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;border-bottom:var(--ep) solid var(--trait);color:var(--creme)}
header.top .wrap{height:68px;gap:16px}
:root[data-theme] header.top a.logo{color:var(--creme)}
.logo{min-height:var(--cible);color:var(--creme);font:700 16px/1.2 var(--f-ui);letter-spacing:.01em;gap:10px}
.logo .mono{width:36px;height:36px;border-radius:var(--r-2);background:var(--nuit);border:var(--ep) solid var(--or);color:var(--creme);font:600 22px/1 var(--f-titre);box-shadow:none;flex:none}
.logo small{font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--texte-2);margin-top:2px}
nav.menu{gap:20px;color:var(--creme);font-size:14.5px;font-weight:600}
nav.menu a,:root[data-theme] header.top nav.menu a.lien{opacity:1;color:var(--creme)}
nav.menu a.lien{padding:12px 0}
nav.menu a.lien:hover{color:var(--or-clair)}
nav.menu .btn,:root[data-theme] header.top nav.menu .btn{background:transparent;color:var(--creme);border-color:var(--or)}   /* l'action or de l'écran est celle du formulaire */
nav.menu .btn:hover,:root[data-theme] header.top nav.menu .btn:hover{background:var(--or);color:var(--sur-or)}
.langs{gap:4px}
.langs a,:root[data-theme] header.top .langs a{display:grid;place-items:center;min-width:36px;min-height:36px;padding:0 8px;font-size:12.5px;font-weight:600;border:var(--ep) solid var(--trait-fort);border-radius:var(--r-2);color:var(--creme);text-decoration:none}
.langs a:hover{border-color:var(--or)}
.langs a[aria-current],:root[data-theme] header.top .langs a[aria-current]{background:var(--creme);border-color:var(--creme);color:var(--fond)}
.theme-btn{display:none!important}   /* identité nuit unique : plus de bascule jour / nuit */
.m-act{display:none;align-items:center;gap:8px}
.m-act details,.rz details{background:none;border:0;box-shadow:none;margin:0;padding:0;border-radius:0;opacity:1;transform:none}
.m-act details{position:relative}
.m-act summary,.rz summary{font-weight:inherit;padding:0;min-height:0}
.m-act summary:after,.rz summary:after{content:none!important;display:none!important}
.m-act summary{list-style:none;cursor:pointer;color:var(--creme);display:grid;grid-auto-flow:column;place-items:center;gap:6px;min-width:var(--cible);min-height:var(--cible);border:var(--ep) solid var(--trait-fort);border-radius:var(--r-rond);font:600 13px/1 var(--f-ui)}
.m-act summary::-webkit-details-marker{display:none}
.m-act .m-l summary{padding:0 12px;display:grid}
.m-act .m-m summary{width:var(--cible);height:var(--cible);padding:0}
.m-l svg{width:16px;height:16px}.m-m svg{width:22px;height:22px}
.m-p{position:absolute;right:0;top:calc(100% + 8px);min-width:210px;max-width:calc(100vw - 32px);padding:6px;background:var(--nuit);border:var(--ep) solid var(--trait-fort);border-radius:var(--r-3);box-shadow:var(--ombre-flottant);z-index:60}
.m-l .m-p{min-width:104px}
.m-p a{display:flex;align-items:center;min-height:var(--cible);padding:8px 12px;border-radius:var(--r-2);color:var(--creme);text-decoration:none;font:600 15px/1.3 var(--f-ui)}
.m-p a:hover{background:var(--nuit-2)}
.m-p a[aria-current]{background:var(--creme);color:var(--fond)}
@media (max-width:980px){
  nav.menu{display:none}.m-act{display:flex;flex:none}
  header.top .wrap{height:60px;gap:10px}
  header.top .logo{min-width:0;white-space:nowrap;font-size:15px}
  .logo .mono{width:32px;height:32px;font-size:20px}
  .logo small{display:none}
}
@media (max-width:359px){header.top .logo{font-size:13.5px}.m-act .m-l summary{padding:0 9px}}

/* 3.6 Barre d'action basse (téléphone) et bouton d'aide (ordinateur) : pleins, sans reflet ni lueur */
.fab{height:var(--cible-action);padding:0 18px 0 14px;border-radius:var(--r-rond);border:var(--ep) solid var(--trait-fort);background:var(--nuit);-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--creme);font:600 14.5px/1 var(--f-ui);box-shadow:var(--ombre-flottant);transition:border-color var(--t-court)}
.fab:hover{transform:none;border-color:var(--or)}.fab svg{color:var(--or-clair)}
@media (max-width:640px){
  .dock{left:0;right:0;bottom:0;grid-template-columns:var(--cible-action) 1fr var(--cible-action);gap:var(--e-2);padding:8px var(--gouttiere) calc(8px + env(safe-area-inset-bottom,0px));border-radius:0;
    background:var(--nuit);-webkit-backdrop-filter:none;backdrop-filter:none;border:0;border-top:var(--ep) solid var(--trait);box-shadow:none;transition:transform var(--t-long) var(--courbe),opacity var(--t-moyen)}
  .dock .ic{height:var(--cible-action);border-radius:var(--r-3);background:transparent;border:var(--ep) solid var(--trait-fort);color:var(--creme)}
  .dock .ic:active{transform:none;background:var(--nuit-2)}
  .dock .go{height:var(--cible-action);padding:0 10px 0 16px;border-radius:var(--r-3);background:var(--or);color:var(--sur-or);box-shadow:none}
  .dock .go:active{transform:translateY(1px)}
  .dock .go .t{font:700 16px/1 var(--f-ui);letter-spacing:0}
  .dock .go .p{font:700 14.5px/1 var(--f-ui);background:var(--sur-or);color:var(--creme);padding:7px 10px;border-radius:var(--r-2)}
  body:has(.rz:not([data-e="1"])) .dock{transform:translateY(130%);opacity:0;pointer-events:none}   /* étapes 2 à 4 : la barre ne recouvre plus le récapitulatif ni les conditions */
  footer{padding-bottom:86px}
  /* la place de la barre est réservée sous TOUT le contenu (et pas seulement dans le pied) : rien ne passe dessous */
  @supports selector(:has(a)){body:has(.dock){padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))}body:has(.dock) footer{padding-bottom:24px}}
}

/* ---------- 4. Haut de page ---------- */
.hero{color:var(--creme)}
.hero:after{background:linear-gradient(180deg,rgba(5,10,20,.9) 0%,rgba(5,10,20,.66) 44%,rgba(5,10,20,.34) 76%,var(--fond) 100%),linear-gradient(90deg,rgba(5,10,20,.66) 0%,rgba(5,10,20,.2) 58%,rgba(5,10,20,0) 100%)}
.hero h1,:root[data-theme] .hero h1{color:var(--creme)}
.hero h1{font-size:var(--t-titre);line-height:1.05;margin:6px 0 14px}
.hero .lead{color:var(--creme);font-size:18px;line-height:1.5}
.hero .kicker{color:var(--creme)}
.hero-ic li{color:var(--creme);font-size:12.5px}
.hero-ic svg{color:var(--or-clair)}
.fil{font-size:13px;color:var(--texte-2)}.fil a{color:var(--creme)}
/* pages de contenu : haut de page compact, prix visibles dès le premier écran (les styles en ligne imposaient 60 à 70 % de la hauteur d'écran) */
.hero[style]{min-height:0!important;padding:132px 0 64px}
.hero[style] p[style]{margin-top:20px!important;display:flex;flex-wrap:wrap;gap:10px}
/* accueil : titre d'affiche */
.hero:has(#reserver) h1{font-size:clamp(38px,5.2vw,68px);line-height:1.02}
@media (max-width:980px){
  .hero:after{background:linear-gradient(180deg,rgba(5,10,20,.9),rgba(5,10,20,.8) 60%,var(--fond) 100%)}
  .hero[style]{padding:92px 0 24px}
  .hero[style]+section{padding-top:28px}
  .hero:has(#reserver){background:var(--fond);padding-bottom:20px}
  .hero:has(#reserver) .bg{height:152px}
  .hero:has(#reserver) .bg:after{background:linear-gradient(180deg,rgba(5,10,20,.6) 0%,rgba(5,10,20,0) 36%,var(--fond) 100%)}
  .hero:has(#reserver) .wrap{margin-top:-30px}
  .hero .lead{font-size:16px;margin-bottom:12px}
  .hero h1{margin-bottom:10px}
  .hero-ic{margin-bottom:14px;gap:6px}
  .hero-ic svg{width:24px;height:24px;margin-bottom:4px}
  .hero-ic li{font-size:12px}
}
@media (max-width:640px){
  .hero:not(:has(#reserver)) .chips{display:flex;gap:8px;margin-top:16px}   /* les prix restent visibles en haut des pages trajet */
  .hero[style] .btn{flex:1 1 100%}
  .hero[style] .btn.ghost,.hero[style] .btn.wa{flex:1 1 40%;min-height:var(--cible)}
}

/* ---------- 5. Sections de l'accueil ---------- */
.trust,:root[data-theme] .trust{background:var(--nuit)}
.trust{border-block:var(--ep) solid var(--trait);padding:22px 0;color:var(--creme)}
.trust div{color:var(--texte-2);font-size:13.5px;line-height:1.35}
.trust b{color:var(--creme);font-size:14.5px;font-weight:700}
.trust svg{color:var(--or-clair);width:28px;height:28px}

/* carte « trajet vivant » : trait or, plus de lueur ni de flou */
.mapx,.reveal{background:var(--fond)}
.mapx{height:240vh}
.mapx .stick{background:var(--fond)}
.mapx .side{color:var(--creme);background:linear-gradient(90deg,var(--fond) 72%,rgba(5,10,20,0))}
.mapx .side h2{color:var(--creme)}
.mapx .tabs button{min-height:var(--cible);padding:8px 14px;font:600 14px/1.2 var(--f-ui);color:var(--creme);background:transparent;border:var(--ep) solid var(--trait-fort);border-radius:var(--r-rond);transition:border-color var(--t-court)}
.mapx .tabs button.on{background:var(--creme);color:var(--fond);border-color:var(--creme);box-shadow:none}
.hud div{background:var(--nuit);border:var(--ep) solid var(--trait);border-radius:var(--r-3);-webkit-backdrop-filter:none;backdrop-filter:none}
.hud small{color:var(--texte-3);font-size:12px;font-weight:700;letter-spacing:.1em}
.hud b{color:var(--creme);font-weight:700;letter-spacing:-.02em}
.hud b i{color:var(--texte-3)}
.hud .price b{font-family:var(--f-ui);color:var(--or-clair)}
.mapx .legend{color:var(--texte-3);font-size:12.5px}
.mapx .steps2 li{color:var(--texte-3)}
.mapx .steps2 li:before{border-color:var(--trait-fort)}
.mapx .steps2 li.on{color:var(--creme)}.mapx .steps2 li.on:before{background:var(--or);border-color:var(--or);box-shadow:none}
.map .roads{stroke:var(--trait)}.map .rivers{stroke:var(--nuit-3)}
.map .route{filter:none;stroke:var(--or);stroke-width:6;opacity:.3}
.map .route2{stroke:var(--or-clair);opacity:1}
.map .city circle{fill:var(--nuit);stroke:var(--trait-fort)}
.map .city.on circle{fill:var(--or);stroke:var(--creme);filter:none}
.map .city text{fill:var(--texte-2);stroke:var(--fond)}
.map .city.on text{fill:var(--creme)}
.map .mon circle{fill:var(--texte-3)}.map .mon text{fill:var(--texte-3);stroke:var(--fond)}
.map .endlbl{fill:var(--or-clair);stroke:var(--fond)}
.map #car{filter:none}

/* trajets : prix en grand chiffre, tracé or sans halo */
.route,:root[data-theme] .route{border-radius:var(--r-4)}
.route:before{height:104px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 120' fill='none'%3E%3Cpath d='M20 92C90 92 100 30 190 38S300 100 380 28' stroke='%23D9A441' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='20' cy='92' r='5' fill='%23F4EFE5'/%3E%3Ccircle cx='380' cy='28' r='6' fill='%23F2C76E'/%3E%3C/svg%3E") right 18px center/58% no-repeat}   /* tracé à droite : l'étiquette reste lisible à gauche */
.route .tag{top:16px;left:16px}
.route .in{padding:4px 24px 24px}
.route h3{font-size:var(--t-ui-l);color:var(--creme)}
.route .meta,.route .from{color:var(--texte-2);font-size:14px}
:root[data-theme] .route .from b{color:var(--or-clair)}
.route .from b{display:block;margin-top:4px;font-size:var(--t-chiffre-l);font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--or-clair)}

/* étapes */
.step{padding:24px}
.step:before{width:40px;height:40px;margin-bottom:12px;background:transparent;border:var(--ep) solid var(--trait-fort);color:var(--creme);font:700 16px/1 var(--f-ui)}
.step h3{font-size:19px;color:var(--creme);margin-bottom:4px}
.step p{color:var(--texte-2)}

/* véhicules */
.car{border-radius:var(--r-4);color:var(--texte-2)}
.car.top{border-color:var(--or);box-shadow:none}
.car .cph{background:var(--fond)}
.car .cph img{transition:none}
.car h3{font-size:19px;color:var(--creme)}
.car .muted,.car ul,.car .p{color:var(--texte-2)}
.car li{border-top:var(--ep) solid var(--trait)}
.car li svg{width:18px;height:18px;flex:none;margin-top:.2em;color:inherit}   /* pictogrammes au trait (passagers, bagages) */
.car .p b{font-size:var(--t-chiffre-s);font-weight:700;letter-spacing:-.02em;color:var(--or-clair);white-space:nowrap}

/* « révélation » du véhicule : une image posée, sa légende et ses trois repères ; plus de défilement captif */
.reveal{height:auto;padding:0 0 72px}
.reveal .stick{position:relative;top:auto;height:auto;overflow:visible;place-items:stretch;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:1180px;margin:0 auto;padding:0 22px}
.reveal .frame{position:relative;inset:auto;grid-column:1/-1;grid-row:1;aspect-ratio:21/9;clip-path:none!important;border-radius:var(--r-5);overflow:hidden;border:var(--ep) solid var(--trait);transition:none}
.reveal .frame img{transform:none!important}
.reveal .frame:after{background:linear-gradient(180deg,rgba(5,10,20,.1) 40%,rgba(5,10,20,.86) 100%)}
.reveal .cap{grid-column:1/-1;grid-row:1;align-self:end;justify-self:start;text-align:left;padding:0 28px 26px;opacity:1!important;color:var(--creme)}
.reveal .cap .kicker{color:var(--creme)}
.reveal .cap h2{color:var(--creme);font-size:var(--t-section);text-shadow:none;margin:0}
.reveal .spec{position:static!important;opacity:1!important;transform:none!important;max-width:none;background:var(--nuit);-webkit-backdrop-filter:none;backdrop-filter:none;border:var(--ep) solid var(--trait);border-radius:var(--r-3);color:var(--texte-2);font-size:14px;padding:14px 16px;transition:none}
.reveal .spec b{color:var(--creme);font-size:16px;font-weight:700;margin-bottom:2px}

/* image et liste d'arguments */
.split .ph{border:var(--ep) solid var(--trait);box-shadow:none;border-radius:var(--r-4)}
.checks li{color:var(--creme)}
.checks li:before{background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F2C76E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.500'/%3E%3C/svg%3E") center/14px no-repeat;border:var(--ep) solid var(--or)}

/* tableau des tarifs */
.tablewrap{border:var(--ep) solid var(--trait);box-shadow:none;border-radius:var(--r-4);background:var(--nuit)}
table.tarifs{background:transparent}
table.tarifs th,table.tarifs td{border-bottom:var(--ep) solid var(--trait);color:var(--creme)}
table.tarifs tbody tr:last-child td{border-bottom:0}
table.tarifs th{background:var(--nuit-2);color:var(--creme);font-size:13.5px}
table.tarifs th small{color:var(--texte-2);font-size:12.5px}
table.tarifs td b{font-size:17px;font-weight:700;color:var(--creme)}
table.tarifs td b[data-prix]{font-size:var(--t-chiffre-s);letter-spacing:-.02em;color:var(--or-clair);white-space:nowrap}
table.tarifs tr:hover td{background:var(--nuit-2)}

/* engagements */
.eng{border-color:var(--trait)!important;color:var(--texte-2)!important;border-radius:var(--r-4);padding:20px 20px 20px 22px}
.eng:before{width:2px;background:var(--or)}
.eng b{font:700 17px/1.3 var(--f-ui);color:var(--creme)!important;margin-bottom:4px}
.eng span{color:var(--texte-2)!important;font-size:14.5px}

/* questions fréquentes : toute la ligne est une cible */
details{padding:0;margin-bottom:10px;border-radius:var(--r-3)}
details summary{align-items:center;min-height:56px;padding:14px 18px;color:var(--creme);font-weight:600;font-size:15.5px;line-height:1.35}
details summary:after{color:var(--texte-2);font-weight:400}
details p{margin:0;padding:0 18px 16px;color:var(--texte-2)}

/* appel final et pied de page */
.final{background:var(--nuit);border-top:var(--ep) solid var(--trait);padding:88px 0;color:var(--creme)}
.final:after{display:none}
.final h2{font-size:var(--t-titre);color:var(--creme)}
.final p{color:var(--texte-2)}
footer,:root[data-theme] footer{background:var(--fond);border-top:var(--ep) solid var(--trait);color:var(--texte-2)}
footer h3{font:700 12px/1.3 var(--f-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--texte-2);margin-bottom:8px}
footer a{color:var(--creme);padding:12px 0;line-height:1.4}
footer a:hover{color:var(--or-clair)}
footer .logo{padding:0;margin-bottom:6px}
.legal{border-top:var(--ep) solid var(--trait);color:var(--texte-3);font-size:12.5px}
.placeholder{background:transparent;border:var(--ep) solid var(--attention);color:var(--creme)}

/* ---------- 6. Pages de contenu (trajets, tarifs, pages locales, mentions, CGV) ---------- */
.article{max-width:74ch}
.wrap.split>.article{max-width:none}
.article h1{font-size:clamp(30px,3.6vw,44px);margin:56px 0 14px;padding-top:8px}
.article h1:first-child{margin-top:0}
.article h2{font-size:clamp(26px,2.6vw,32px);margin:36px 0 10px;color:var(--creme)}
.article h3{font-size:18px;margin:26px 0 6px}
.article h4{font:700 15.5px/1.35 var(--f-ui);color:var(--creme);margin:20px 0 4px}
.article p,.article li{font-size:var(--t-corps-l);line-height:1.65;color:var(--texte-2)}
.article b,.article strong{color:var(--creme)}
.article li{margin:4px 0}
.article a{color:var(--creme);text-decoration:underline;text-decoration-color:var(--or);text-decoration-thickness:1.5px}
.article a:hover{color:var(--or-clair)}
.article a.btn{text-decoration:none}
.article .checks li{color:var(--creme)}
.article table{border:var(--ep) solid var(--trait);border-radius:var(--r-3);background:var(--nuit)}
.article table th,.article table td{border-bottom:var(--ep) solid var(--trait);color:var(--creme)}
.article table th{font-size:12.5px;letter-spacing:.06em;color:var(--texte-2);background:var(--nuit-2)}
.article code{font-size:.92em;color:var(--creme)}
.sommaire{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px;padding:0;list-style:none}
.sommaire a{display:inline-flex;align-items:center;min-height:var(--cible);padding:6px 14px;border:var(--ep) solid var(--trait-fort);border-radius:var(--r-rond);color:var(--creme);font:600 14px/1.2 var(--f-ui);text-decoration:none}
.sommaire a:hover{border-color:var(--or);color:var(--creme)}
@media (max-width:640px){.article p,.article li{font-size:16px}.article h1{margin-top:44px}}

/* ---------- 7. Tunnel de réservation : entièrement nuit, un seul or ---------- */
.rz,.rz:not([data-e="1"]){--ch:var(--or);--ch2:var(--or-clair);--cr:var(--fond);background:var(--nuit);color:var(--creme);border:var(--ep) solid var(--trait);border-radius:var(--r-5);box-shadow:none}
@media (min-width:981px){.rz,.rz:not([data-e="1"]){border-color:var(--trait-fort);box-shadow:var(--ombre-flottant)}}
.rz-et li{color:var(--texte-3);font-size:12px}
.rz-et li i{background:var(--nuit);border-color:var(--trait-fort);color:var(--texte-2)}
.rz-et li:not(:last-child):after{background:var(--trait)}
.rz-et li.on{color:var(--creme)}.rz-et li.on i{background:var(--or);border-color:var(--or);color:var(--sur-or)}
.rz-et li.fait{color:var(--texte-2)}.rz-et li.fait i{background:var(--nuit-3);border-color:var(--trait-fort);color:var(--creme)}
.rz-et li.fait:after{background:var(--trait-fort)}
.rz-tg{background:var(--fond);border:var(--ep) solid var(--trait)}
.rz-tg span{color:var(--texte-2);padding:10px 8px}
.rz-tg input:checked+span{background:var(--creme);color:var(--fond)}
.rz-tg input:focus-visible+span{outline:2px solid var(--focus)}
.rz-c,.rz .rz-voy{background:var(--fond);border:var(--ep) solid var(--trait-fort);border-radius:var(--r-2)}
.rz-c:focus-within{border-color:var(--or);box-shadow:none;outline:2px solid var(--focus);outline-offset:1px}
.rz-c>svg,.rz-voy summary>svg:first-child{color:var(--or-clair)}
.rz-c .l{color:var(--texte-2);font-size:12.5px}
.rz-c input{color:var(--creme);font-family:var(--f-ui)}
.rz-c input::placeholder{color:var(--texte-3);opacity:1}
.rz-c input[aria-invalid=true]{color:var(--alerte)}
.rz-c:has(input[aria-invalid=true]){border-color:var(--alerte)}
.rz-swap{width:var(--cible);height:var(--cible);border:var(--ep) solid var(--trait-fort);background:var(--nuit);color:var(--creme);box-shadow:none}
.rz-adr .rz-c{padding-right:62px}
.rz-rac{gap:0 16px;margin:-6px 2px 4px}
.rz-rac button{min-height:var(--cible);padding:10px 2px;font-size:var(--t-petit);color:var(--texte-2);text-decoration-color:var(--trait-fort)}
.rz-rac button:hover{color:var(--creme)}
.rz-voy summary .ch{color:var(--texte-2)}
.rz-voy-t,.rz-sp>span,.rz-stp output{color:var(--creme)}
.rz-sp{border-top:var(--ep) solid var(--trait)}
.rz-stp button{width:var(--cible);height:var(--cible);border:var(--ep) solid var(--trait-fort);background:transparent;color:var(--creme)}
.rz-btn{min-height:54px;border:var(--ep) solid var(--or);border-radius:var(--r-3);background:var(--or);color:var(--sur-or);font:700 16px/1.2 var(--f-ui);box-shadow:none;transition:background var(--t-court),border-color var(--t-court)}
.rz-btn:hover{filter:none;background:var(--or-clair);border-color:var(--or-clair)}
.rz-btn2,.rz-suivi-box .rz-ghost,.rz-btn.rz-ghost{background:transparent;color:var(--creme);border-color:var(--trait-fort);box-shadow:none;font-weight:600}
.rz-btn2:hover,.rz-btn.rz-ghost:hover{background:transparent;border-color:var(--or)}
.rz button:focus-visible,.rz summary:focus-visible{outline:2px solid var(--focus)}
.rz-lien,.rz-rap .rz-lien,.rz-ret-l{color:var(--creme);min-height:var(--cible)}
.rz-err{color:var(--alerte)}
.rz-ok{background:transparent;border:var(--ep) solid var(--ok);border-radius:var(--r-3);color:var(--creme)}
.rz-note,.rz:not([data-e="1"]) .rz-note,.rz-carte .rz-note{color:var(--texte-3)}
.rz-ferme,.rz-pause{background:transparent;border:var(--ep) solid var(--attention);border-radius:var(--r-3);color:var(--creme);font-weight:600}
.rz-t{font:600 28px/1.1 var(--f-titre);color:var(--creme)}
.rz-rap-t p{color:var(--texte-2)}
.rz-info{color:var(--texte-3)}
.rz-car{grid-template-columns:96px minmax(0,1fr) auto;background:var(--nuit-2);color:var(--creme);border:var(--ep) solid var(--trait);border-radius:var(--r-3);padding:10px 12px 10px 10px}
.rz-car:hover{border-color:var(--trait-fort)}
.rz-car.on{background:var(--nuit-2);border-color:var(--or);outline:1px solid var(--or)}
.rz-car.on:after{top:6px;left:6px;right:auto;background:var(--or);color:var(--sur-or)}
.rz-car img{height:66px;border-radius:var(--r-1);background:var(--fond)}
.rz-cap{color:var(--texte-2)}
.rz-prix b{font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--or-clair)}
.rz-prix small{font-size:12px;color:var(--texte-2)}
.rz-devis{color:var(--creme)}
.rz-bar{background:var(--nuit-2);border:var(--ep) solid var(--trait-fort);border-radius:var(--r-4);box-shadow:var(--ombre-feuille)}
.rz-bar-t b{color:var(--creme)}.rz-bar-t p{color:var(--texte-2)}
.rz-bar-p b{font-size:30px;font-weight:800;letter-spacing:-.03em;color:var(--or-clair)}
.rz-bar-p b.rz-bar-d{font-size:16px;font-weight:700;letter-spacing:0;color:var(--creme)}
.rz-bar-p small{font-size:12px;color:var(--texte-2)}
.rz-carte{background:var(--nuit-2);color:var(--creme);border:var(--ep) solid var(--trait);border-radius:var(--r-4)}
.rz-f>span{color:var(--texte-2);font-size:12.5px}
.rz-f input,.rz select,.rz textarea{background:var(--fond);color:var(--creme);border:var(--ep) solid var(--trait-fort);border-radius:var(--r-2);font-family:var(--f-ui)}
.rz-f input::placeholder,.rz textarea::placeholder{color:var(--texte-3);opacity:1}
.rz-f input:focus,.rz select:focus,.rz textarea:focus{border-color:var(--or);box-shadow:none;outline:2px solid var(--focus);outline-offset:1px}
.rz-f input[aria-invalid=true]{border-color:var(--alerte)}
.rz-rec dt{color:var(--texte-2)}.rz-rec dd{color:var(--creme)}
.rz-rec .rz-rec-p{border-top:var(--ep) solid var(--trait)}
dd.rz-rec-p{font-size:28px;font-weight:800;letter-spacing:-.03em;color:var(--or-clair)}
.rz-det summary{color:var(--creme);min-height:var(--cible);display:flex;align-items:center}
.rz-cgvbloc{background:var(--fond);border:var(--ep) solid var(--trait);border-radius:var(--r-3);color:var(--creme)}
.rz-cgv-ess{background:var(--nuit);border-radius:var(--r-2);color:var(--creme)}
.rz-cgv-ess h3,.rz-cgv-texte h3{font:700 15px/1.3 var(--f-ui);color:var(--creme)}
.rz-cgv-titre{color:var(--texte-2);font-size:12.5px}
.rz-cgv-texte{background:var(--fond);border:var(--ep) solid var(--trait);border-radius:var(--r-2);color:var(--texte-2);font-size:12.5px}
.rz-cgv-texte h4{color:var(--creme);font-size:12.5px}
.rz-cgv-version{color:var(--texte-3);font-size:12px}
.rz input[type=checkbox],.rz input[type=radio]{accent-color:var(--or)}
.rz-cgv input[type=checkbox],.rz label input[type=checkbox]{width:24px;height:24px;flex:none}   /* 24 px : cible tactile (WCAG 2.5.8), consentement aux CGV */
.rz-stp button{font-family:var(--f-ui)}
.rz-suivi{background:var(--voile);-webkit-backdrop-filter:none;backdrop-filter:none}
.rz-suivi-box{background:var(--nuit);color:var(--creme);border:var(--ep) solid var(--trait-fort);border-radius:var(--r-5);box-shadow:var(--ombre-flottant)}
.rz-suivi-box h3{font:600 var(--t-carte)/1.1 var(--f-titre);color:var(--creme)}
.rz-suivi-sub,.rz-suivi-plus{color:var(--texte-2)}
.rz-suivi-pts li::before{color:var(--ok)}
.rz-reprise{background:var(--nuit-2);border:var(--ep) solid var(--trait-fort);border-radius:var(--r-3)}
.rz-reprise button{border:var(--ep) solid var(--trait-fort);border-radius:var(--r-2);color:var(--creme)}
.rz-reprise .rz-reprise-oui{background:var(--or);color:var(--sur-or);border-color:var(--or)}
/* suggestions d'adresse et assistant : leurs styles sont injectés par script après cette feuille, d'où le préfixe « body » */
body .adr ul{background:var(--nuit-2);border:var(--ep) solid var(--trait-fort);border-radius:var(--r-2);box-shadow:var(--ombre-flottant)}
body .adr li{min-height:var(--cible);color:var(--creme);border-radius:var(--r-1)}
body .adr li:hover,body .adr li.on{background:var(--nuit-3)}
body .adr li small{color:var(--texte-2)}
body .adr input.ok{background:none}
body .vchat{background:var(--fond);color:var(--creme);border:var(--ep) solid var(--trait-fort);border-radius:var(--r-5);box-shadow:var(--ombre-flottant);font-family:var(--f-ui)}
body .vchat header{background:var(--nuit);border-bottom:var(--ep) solid var(--trait);color:var(--creme)}
body .vchat header small{color:var(--texte-2)}
body .vchat header button{min-width:var(--cible);min-height:var(--cible);color:var(--creme)}
body .vchat .msgs,body .vchat .chips{background:var(--fond)}
body .vchat .bot{background:var(--nuit-2);border-color:var(--trait);color:var(--creme)}
body .vchat .me{background:var(--nuit-3);color:var(--creme)}
body .vchat .m a{color:var(--creme);text-decoration:underline;text-decoration-color:var(--or)}
body .vchat .chips button{min-height:36px;padding:6px 12px;border:var(--ep) solid var(--trait-fort);border-radius:var(--r-rond);background:transparent;color:var(--creme);font-size:12.5px;font-weight:600}
body .vchat .chips button.agent{background:var(--creme);border-color:var(--creme);color:var(--fond)}
body .vchat form{background:var(--nuit);border-top:var(--ep) solid var(--trait)}
body .vchat input,body .vchat textarea,body .vchat .ag-form textarea{background:var(--fond);color:var(--creme);border:var(--ep) solid var(--trait-fort);border-radius:var(--r-2);font-size:16px}
body .vchat input::placeholder,body .vchat textarea::placeholder{color:var(--texte-3);opacity:1}
body .vchat form button{min-height:var(--cible);border-radius:var(--r-2);background:var(--or);color:var(--sur-or);font-weight:700}
body .vchat .act a{min-height:36px;display:inline-flex;align-items:center;background:var(--or);color:var(--sur-or);text-decoration:none;border:var(--ep) solid var(--or)}
body .vchat .act a.wa{background:transparent;border-color:var(--trait-fort);color:var(--creme)}
body .vchat .bot.ag{background:var(--nuit-2);border-color:var(--or)}
body .vchat .bot.ag small,body .vchat .ag-mk{color:var(--texte-2);font-size:12px}
body .vchat .ag-err{color:var(--alerte);font-size:12.5px}
body .vchat .ag-btn{min-height:var(--cible);background:var(--creme);color:var(--fond);border-radius:var(--r-2)}
body .vchat input[type=checkbox]{accent-color:var(--or)}
body .vbulle{background:var(--nuit-2);color:var(--creme);border:var(--ep) solid var(--trait-fort);box-shadow:var(--ombre-flottant);font-family:var(--f-ui)}
body .vbulle b{color:var(--creme)}body .vbulle .x{color:var(--texte-2)}
@media (max-width:640px){
  body .vchat{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  body .vbulle{bottom:calc(80px + env(safe-area-inset-bottom,0px))}
}

/* ---------- 8. Téléphone : la même page, deux fois plus courte (aucun contenu retiré, présentation compactée) ---------- */
@media (max-width:980px){
  section{padding:40px 0}
  .final{padding:44px 0}
  /* la carte n'impose plus trois écrans de défilement : elle se lit d'un regard, tracé complet, onglets pour changer de trajet */
  .mapx{height:auto;padding:40px 0 0}
  .mapx .stick{position:relative;top:auto;height:auto;display:block;overflow:visible}
  .mapx .side{position:relative;padding:0 22px;background:none}
  .mapx .side h2{font-size:var(--t-section)}
  .mapx .tabs{margin:12px 0}
  .hud{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .hud div{padding:10px 12px}
  .hud b{font-size:22px}
  .hud .price{display:block}
  .mapx{overflow:hidden}
  .mapx svg.map{position:relative;left:0;top:auto;bottom:auto;width:100%;height:auto;aspect-ratio:79/95;margin:4px 0 -27%}   /* le bas de la carte (sans trajet) est rogné */
  .map .route,.map .route2{stroke-dasharray:none!important;stroke-dashoffset:0!important}
  .map #car{display:none}
  .map .endlbl{opacity:1!important}
  .map .endlbl.dep{text-anchor:start}   /* « Départ » n'est plus coupé au bord gauche */
  /* véhicule : image, légende, repères empilés */
  .reveal{padding:0 0 40px}
  .reveal .stick{grid-template-columns:1fr;gap:6px}
  .reveal .frame{aspect-ratio:16/9}
  .reveal .cap{padding:0 16px 14px}
  .reveal .cap h2{font-size:26px}
  .reveal .spec{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:baseline;padding:8px 14px;font-size:13.5px}
  .reveal .spec b{font-size:15px;margin:0}
}
@media (max-width:640px){
  .wrap{padding:0 20px}
  .sub{font-size:15.5px;line-height:1.5;margin-bottom:16px}
  h2{margin-bottom:10px}
  .trust{padding:14px 0}
  .trust .wrap{grid-template-columns:1fr 1fr;gap:14px 12px}
  .trust div{gap:10px;font-size:12.5px;align-items:flex-start}
  .trust b{font-size:13.5px}
  .trust svg{width:22px;height:22px;margin-top:1px}
  /* trajets : une ligne par trajet, le prix à droite */
  .routes{gap:10px}
  .route:before{display:none}
  .route{flex-direction:column}
  .route .tag{position:static;align-self:flex-start;margin:12px 0 -8px 16px;padding:2px 9px;font-size:12px}
  .route .in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;width:100%;padding:14px 16px}
  .route h3{font-size:17px;grid-column:1}
  .route .meta{grid-column:1;margin:0;font-size:13.5px}
  .route .from{grid-column:2;grid-row:1/span 2;text-align:right;font-size:12.5px}
  .route .from b{font-size:32px;margin-top:0}
  /* étapes : numéro à gauche */
  .steps{gap:0;border:var(--ep) solid var(--trait);border-radius:var(--r-4);overflow:hidden}
  .step{display:grid;grid-template-columns:36px minmax(0,1fr);gap:2px 12px;padding:14px 16px;border:0;border-top:var(--ep) solid var(--trait);border-radius:0}
  .step:first-of-type{border-top:0}
  .step:before{grid-row:1/span 2;width:36px;height:36px;margin:0;font-size:15px}
  .step h3{font-size:17px;margin:0;align-self:center}
  .step p{grid-column:2;margin:0;font-size:14px}
  /* véhicules : photo à gauche, informations à droite */
  .cars{gap:8px}
  .car{display:grid;grid-template-columns:118px minmax(0,1fr);align-content:center;padding:0}
  .car .cph{grid-column:1;grid-row:1/span 6;aspect-ratio:auto;height:100%;min-height:116px}
  .car h3,.car .muted,.car ul,.car .p{grid-column:2;padding:0 14px}
  .car h3{font-size:17px;margin-top:12px}
  .car .muted{font-size:13px;margin:0}
  .car ul{margin-top:6px;font-size:13px}
  .car li{padding:5px 0 0}
  .car .p{margin-top:4px;padding-bottom:12px;font-size:12.5px}
  .car .badge{top:8px;left:8px;font-size:11.5px;padding:2px 8px}
  .split{gap:20px}
  .split .ph img{aspect-ratio:16/9}
  .checks{margin:10px 0 18px}
  .checks li{padding:5px 0 5px 34px;font-size:15px}
  .checks li:before{top:5px}
  .final .cta{margin-top:16px}
  /* tableau : il tient dans l'écran, sans défilement latéral */
  table.tarifs{min-width:0}
  table.tarifs th,table.tarifs td{padding:12px 8px}
  table.tarifs th:first-child,table.tarifs td:first-child{padding-left:14px}
  table.tarifs th{font-size:12.5px}
  table.tarifs th small{font-size:12px}
  table.tarifs td b{font-size:14px}
  table.tarifs td b[data-prix]{font-size:17px}
  /* engagements : une seule carte, des filets entre les lignes (jamais de carte dans une carte) */
  .engs{gap:0;border:var(--ep) solid var(--trait);border-radius:var(--r-4);overflow:hidden}
  .eng{border:0!important;border-top:var(--ep) solid var(--trait)!important;border-radius:0;padding:12px 16px 12px 20px}
  .eng:first-child{border-top:0!important}
  .eng b{font-size:15.5px;margin-bottom:2px}
  .eng span{font-size:14px;line-height:1.45;display:block}
  details{margin-bottom:6px}
  details summary{min-height:52px;padding:12px 16px;font-size:15px}
  details p{padding:0 16px 14px;font-size:14.5px}
  footer{padding-top:32px}
  footer p{margin:6px 0 0}
  .legal{margin-top:16px;padding-top:14px}
  footer .cols{gap:18px 16px}
  footer .cols>div:last-child{grid-column:1/-1;column-count:2;column-gap:16px}
  footer .cols>div:last-child h3{column-span:all}
  footer .cols>div:last-child a{break-inside:avoid}
}
