/*
Theme Name: ADK Taxis
Theme URI: https://adktaxis.com
Author: ATF Web
Description: Thème WordPress sur-mesure ADK Taxis — direction automobile haut de gamme : scène sombre, véhicule mis en valeur, fiche technique. Architecture multi-pages optimisée pour le référencement local.
Version: 3.0
Requires at least: 6.0
Text Domain: adk-taxis
*/

:root{
  --ink:#0b0d10;
  --ink-2:#39414a;
  --muted:#66707c;
  --line:#e4e7eb;
  --line-d:rgba(255,255,255,.13);
  --paper:#ffffff;
  --paper-2:#f5f7f9;
  --dark:#0b0d10;
  --dark-2:#141920;
  --on-dark:#e8ecf0;
  --on-dark-2:#9aa5b1;
  /* Vert du lumineux TAXI du véhicule : la signature du site */
  --vert:#2fbf6a;
  --vert-l:#7ef2a8;
  --vert-d:#12703f;
  --gold:#2fbf6a;
  --wrap:1220px;
  --marge:max(26px, calc((100vw - 1220px) / 2 + 26px));
  --f:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--f);background:var(--paper);color:var(--ink-2);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{color:var(--ink);font-weight:650;line-height:1.08;letter-spacing:-.03em}
h1{font-size:clamp(2.2rem,4.6vw,3.6rem)}
h2{font-size:clamp(1.7rem,3.1vw,2.5rem)}
h3{font-size:1.22rem}
p{margin-bottom:1.05em}
a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
/* height:auto est indispensable : sans lui, l'attribut height="" du HTML
   l'emporte sur aspect-ratio et les photos s'affichent en pleine hauteur. */
img,svg{max-width:100%;height:auto;display:block}
ul,ol{margin:0 0 1.15em 1.15em}li{margin-bottom:.4em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 26px}
.lbl{font-size:.71rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--muted)}
/* sur fond clair l'or vif tombe à 2,4 de contraste : version foncée pour le texte */
.lbl-g{color:#87621a}
.s-d .lbl-g,.stage .lbl-g,.cta .lbl-g{color:var(--gold)}

/* ---------- boutons ---------- */
.b{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:600;font-size:1rem;
   padding:16px 28px;border:1.5px solid transparent;text-decoration:none!important;transition:.2s;cursor:pointer}
.b svg{width:18px;height:18px;flex:none}
.b-d{background:var(--ink);color:#fff}
.b-d:hover{background:#22282f}
.b-o{border-color:var(--line);color:var(--ink);background:#fff}
.b-o:hover{border-color:var(--ink)}
.b-g{background:var(--gold);color:#141920}
.b-g:hover{background:#d3ac60}
.b-l{border-color:rgba(255,255,255,.32);color:#fff}
.b-l:hover{background:rgba(255,255,255,.1)}

/* ---------- en-tête ---------- */
.bar{background:var(--dark);color:var(--on-dark-2);font-size:.82rem}
.bar .wrap{display:flex;justify-content:space-between;gap:14px;padding:9px 26px;flex-wrap:wrap}
.bar a{color:#fff;text-decoration:none}
.hd{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hd-in{display:flex;align-items:center;justify-content:space-between;gap:22px;height:74px}
.lg{display:flex;flex-direction:column;line-height:1.05;text-decoration:none!important}
.lg b{font-size:1.3rem;font-weight:750;color:var(--ink);letter-spacing:-.04em}
.lg small{font-size:.6rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.nav ul{display:flex;gap:28px;list-style:none;margin:0;align-items:center}
.nav li{margin:0;position:relative}
.nav a{color:var(--ink-2);font-size:.94rem;font-weight:500;text-decoration:none!important;padding:26px 0;display:block}
.nav a:hover,.nav .current-menu-item>a{color:var(--ink)}
.nav .sub-menu{display:none;position:absolute;top:100%;left:-16px;background:#fff;border:1px solid var(--line);padding:8px;min-width:250px;box-shadow:0 22px 44px -20px rgba(11,13,16,.3);flex-direction:column;z-index:70}
.nav li:hover>.sub-menu{display:flex}
.nav .sub-menu a{padding:10px 14px;font-size:.91rem}
.nav .sub-menu a:hover{background:var(--paper-2)}
.hd-r{display:flex;align-items:center;gap:16px}
.hd-tel{font-weight:700;color:var(--ink);font-size:1rem;text-decoration:none!important;display:flex;align-items:center;gap:8px;white-space:nowrap}
.hd-tel svg{width:16px;height:16px;color:var(--gold)}
.hd-r .b{padding:11px 20px;font-size:.91rem}
.bg{display:none;background:none;border:1px solid var(--line);padding:10px 13px;cursor:pointer;font-weight:600;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}

/* ---------- hero : photo qui déborde jusqu'au bord de l'écran ---------- */
.stage{background:var(--dark);color:var(--on-dark);position:relative}
.stage-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.86fr);align-items:stretch;min-height:min(76vh,700px)}
.stage-txt{padding:76px var(--marge) 76px var(--marge);padding-right:clamp(34px,4vw,64px);
  display:flex;flex-direction:column;justify-content:center}
.stage h1{color:#fff;max-width:15ch;margin-bottom:20px;font-size:clamp(2.3rem,4.4vw,3.7rem)}
.stage h1 em{font-style:normal;color:var(--vert-l)}
.stage .lead{color:var(--on-dark-2);font-size:1.13rem;max-width:46ch;margin-bottom:30px}
.acts{display:flex;gap:12px;flex-wrap:wrap}
/* signature : le lumineux vert du taxi */
.sig{display:inline-flex;align-items:center;gap:11px;font-size:.75rem;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--vert-l);margin-bottom:26px}
.sig i{width:9px;height:9px;border-radius:2px;background:var(--vert-l);font-style:normal;
  box-shadow:0 0 10px 2px rgba(126,242,168,.65)}
.stage-photo{margin:0;position:relative;overflow:hidden;min-height:420px}
/* absolue : sinon la photo (portrait) impose sa hauteur au hero */
.stage-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%}
.stage-photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,var(--dark) 0%,rgba(11,13,16,.35) 22%,transparent 55%)}
/* carte téléphone qui chevauche la photo */
.tel-card{position:absolute;left:0;bottom:44px;z-index:3;background:var(--dark);color:#fff;
  border-left:3px solid var(--vert);padding:20px 30px 20px 26px;text-decoration:none!important;
  box-shadow:0 24px 50px -20px rgba(0,0,0,.7);transition:.25s}
.tel-card:hover{padding-left:34px}
.tel-card span{display:block;font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--vert-l);margin-bottom:7px}
.tel-card b{display:block;font-size:clamp(1.5rem,2.6vw,2.05rem);color:#fff;font-weight:700;letter-spacing:-.04em;line-height:1}
.tel-card em{display:block;font-style:normal;font-size:.82rem;color:var(--on-dark-2);margin-top:7px}
.veh svg{width:100%;height:auto}
/* bandeau de faits, plein écran */
.strip{list-style:none;display:flex;flex-wrap:wrap;margin:0;padding:0 var(--marge);gap:0;
  border-top:1px solid var(--line-d);background:#0e1217}
.strip li{margin:0;font-size:.85rem;color:var(--on-dark-2);padding:20px 30px;border-right:1px solid var(--line-d);line-height:1.5;flex:1 1 auto}
.strip li:first-child{padding-left:0}
.strip li:last-child{border-right:0}
.strip b{display:block;color:#fff;font-weight:700;letter-spacing:-.02em;font-size:1.05rem;margin-bottom:2px}

/* ---------- sections ---------- */
.s{padding:88px 0}
.s-2{background:var(--paper-2)}
.s-d{background:var(--dark);color:var(--on-dark)}
.s-d h2,.s-d h3{color:#fff}
.hd2{max-width:640px;margin-bottom:46px}
.hd2 .lbl{display:block;margin-bottom:13px}
.hd2 h2{margin-bottom:13px}
.hd2 p{color:var(--muted);font-size:1.05rem;margin:0}
.s-d .hd2 p{color:var(--on-dark-2)}

/* galerie : bord à bord, sans marge ni cadre */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0 0 0;width:100vw;
  margin-left:calc(50% - 50vw);background:var(--dark)}
.gal figure{margin:0;position:relative;overflow:hidden}
.gal img{width:100%;aspect-ratio:4/2.9;object-fit:cover;object-position:center 60%;transition:transform .6s ease}
.gal figure:hover img{transform:scale(1.04)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:38px 22px 16px;font-size:.83rem;
  color:#fff;font-weight:600;letter-spacing:.02em;
  background:linear-gradient(transparent,rgba(11,13,16,.9))}
.gal figcaption::before{content:"";display:inline-block;width:14px;height:2px;background:var(--vert);
  vertical-align:middle;margin-right:9px}

/* fiche véhicule */
.fiche{display:grid;grid-template-columns:1.08fr .92fr;gap:44px;align-items:center}
.fiche-diag{background:var(--dark);padding:14px 10px}
.fiche-diag svg{width:100%;height:auto}
.fiche-diag .veh-lab{fill:#aab4bf}
.tbl{width:100%;border-collapse:collapse;margin-top:8px}
.tbl th,.tbl td{text-align:left;padding:14px 0;border-bottom:1px solid var(--line);font-size:.97rem}
.tbl th{color:var(--muted);font-weight:500;width:44%}
.tbl td{color:var(--ink);font-weight:600}

/* liste prestations — numéros suspendus dans la marge */
.li{border-top:1px solid var(--line)}
.li .it{display:grid;grid-template-columns:82px 1fr 1.35fr auto;gap:30px;align-items:baseline;
  padding:30px 0;border-bottom:1px solid var(--line);transition:.22s}
.li .it:hover{background:#fff;padding-left:12px}
.li .n{font-family:var(--f);font-size:2rem;font-weight:700;color:var(--line);letter-spacing:-.05em;line-height:1;transition:color .22s}
.li .it:hover .n{color:var(--vert-d)}
.li h3{margin:0}
.li p{margin:0;font-size:.96rem}
.li .go{white-space:nowrap;font-size:.89rem;font-weight:650;color:var(--ink);text-decoration:none!important;border-bottom:1.5px solid var(--gold);padding-bottom:2px}

/* zones */
.zg{display:grid;grid-template-columns:1.3fr 1fr;gap:46px}
.villes{display:flex;flex-wrap:wrap;gap:9px}
.villes a,.villes span{border:1px solid var(--line-d);padding:9px 15px;font-size:.9rem;color:var(--on-dark);text-decoration:none!important;transition:.2s}
.villes a:hover{border-color:var(--gold);color:var(--gold)}
.zl h3{font-size:1rem;margin-bottom:12px}
.zl ul{list-style:none;margin:0 0 26px}
.zl li{font-size:.93rem;padding:7px 0;border-bottom:1px solid var(--line-d);color:var(--on-dark-2);margin:0}
.zl li:last-child{border-bottom:0}
.znote{margin-top:34px;padding-top:24px;border-top:1px solid var(--line-d);color:var(--on-dark-2);font-size:.95rem}
.znote a{color:var(--gold)}

/* chauffeur */
.drv{display:grid;grid-template-columns:.82fr 1.18fr;gap:52px;align-items:center}
.drv-img{border:1px solid var(--line);background:var(--paper-2);margin:0}
.drv-img img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 58%}
.drv-cap{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:12px 14px;border-top:1px solid var(--line)}
.q{font-size:1.34rem;color:var(--ink);font-weight:550;line-height:1.34;letter-spacing:-.02em;margin-bottom:20px;padding-left:20px;border-left:3px solid var(--gold)}
.pts{list-style:none;margin:24px 0 0;border-top:1px solid var(--line)}
.pts li{display:grid;grid-template-columns:minmax(150px,200px) 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);margin:0}
.pts b{color:var(--ink);font-weight:650}
.pts span{color:var(--muted);font-size:.94rem}

/* FAQ */
.faq{max-width:860px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{padding:20px 0;font-weight:600;color:var(--ink);cursor:pointer;list-style:none;display:flex;gap:16px;align-items:baseline;font-size:1.03rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";margin-left:auto;color:var(--gold);font-size:1.4rem;line-height:1;font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq .a{padding-bottom:22px;color:var(--ink-2);max-width:70ch}
.faq .a p{margin:0}

/* CTA */
.cta{background:var(--dark);color:var(--on-dark);padding:76px 0;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;right:-10%;top:-40%;width:640px;height:640px;
  background:radial-gradient(circle,rgba(195,154,77,.15),transparent 62%)}
.cta .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center}
.cta h2{color:#fff;max-width:16ch;margin-bottom:10px}
.cta p{color:var(--on-dark-2);max-width:44ch;margin:0}
.cta .r{display:flex;flex-direction:column;gap:12px;align-items:flex-end}
.cta .tel{font-size:clamp(1.6rem,3.4vw,2.5rem);font-weight:700;color:#fff;letter-spacing:-.04em;text-decoration:none!important;line-height:1}
.cta .tel:hover{color:var(--gold)}

/* pages internes */
.ph{background:var(--paper-2);border-bottom:1px solid var(--line);padding:44px 0 46px}
.ph-img .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:46px;align-items:center}
.ph-photo{margin:0;overflow:hidden}
.ph-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 60%}
.ph-act{margin-top:24px}
/* maillage interne : pages liées */
.liees{margin-top:44px;padding-top:24px;border-top:1px solid var(--line)}
.liees .lbl{display:block;margin-bottom:14px}
.liees div{display:flex;flex-wrap:wrap;gap:9px}
.liees a{border:1px solid var(--line);padding:10px 16px;font-size:.91rem;font-weight:600;color:var(--ink);
  text-decoration:none!important;transition:.2s;background:#fff}
.liees a:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.cr{font-size:.83rem;color:var(--muted);margin-bottom:18px}
.cr a{color:var(--muted)}
.cr span{margin:0 8px;opacity:.6}
.ph h1{max-width:20ch}
.ph .in{margin-top:16px;font-size:1.1rem;color:var(--ink-2);max-width:58ch}
.pb{padding:58px 0 84px}
.pc{display:grid;grid-template-columns:1fr 310px;gap:52px;align-items:start}
.ct{max-width:68ch}
.ct h2{margin:2em 0 .6em}
.ct h2:first-child{margin-top:0}
.ct h3{margin:1.7em 0 .4em}
.ct li::marker{color:var(--gold)}
.ct blockquote{border-left:3px solid var(--gold);padding-left:20px;margin:1.6em 0}
.ct blockquote p{font-size:1.25rem;color:var(--ink);font-weight:550;line-height:1.35}
.ct .box{background:var(--paper-2);border-left:3px solid var(--gold);padding:22px 24px;margin:1.8em 0}
.ct .box p:last-child{margin-bottom:0}
.ct table{width:100%;border-collapse:collapse;margin:1.5em 0}
.ct th,.ct td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line)}
.sd{position:sticky;top:96px;border:1px solid var(--line);padding:26px}
.sd .lbl{display:block;margin-bottom:9px}
.sd .tel{display:block;font-size:1.85rem;font-weight:700;color:var(--ink);letter-spacing:-.04em;text-decoration:none!important;margin-bottom:14px;line-height:1}
.sd p{font-size:.93rem;color:var(--muted)}
.sd .b{width:100%;margin-bottom:9px;padding:13px 16px;font-size:.93rem}
.sd ul{list-style:none;margin:20px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.sd li{font-size:.89rem;padding-left:20px;position:relative;color:var(--ink-2)}
.sd li::before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:700}
.kids{display:grid;gap:0;margin:1.6em 0;border-top:1px solid var(--line)}
.kids a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line);
  font-weight:650;color:var(--ink);text-decoration:none!important;transition:.2s}
.kids a::after{content:"→";color:var(--gold)}
.kids a:hover{padding-left:10px}

/* pied */
.ft{background:var(--dark);color:var(--on-dark-2);padding:60px 0 28px;font-size:.93rem}
.ft-g{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:38px}
.ft h4{color:#fff;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:15px;font-weight:700}
.ft ul{list-style:none;margin:0}
.ft li{margin-bottom:9px}
.ft a{color:var(--on-dark-2);text-decoration:none!important}
.ft a:hover{color:#fff}
.ft-b b{color:#fff;font-size:1.24rem;font-weight:750;letter-spacing:-.04em;display:block;margin-bottom:11px}
.ft-b p{max-width:32ch;font-size:.92rem}
.ft-bot{margin-top:44px;padding-top:22px;border-top:1px solid var(--line-d);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.84rem}

/* barre mobile */
.mb{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;background:#fff;border-top:1px solid var(--line);padding:10px 14px;gap:10px}
.mb .b{flex:1;padding:15px 8px}

/* responsive */
@media(max-width:1000px){
  .stage-top,.fiche,.zg,.drv,.pc,.cta .wrap,.ph-img .wrap{grid-template-columns:1fr;gap:26px}
  .stage-top{gap:0;min-height:0}
  .stage-txt{padding:52px var(--marge) 44px}
  .stage-photo{min-height:0;aspect-ratio:16/10}
  .stage-photo::after{background:linear-gradient(180deg,rgba(11,13,16,.5),transparent 40%)}
  .tel-card{position:static;box-shadow:none;padding:20px var(--marge);border-left:0;border-top:3px solid var(--vert);display:block}
  .strip li{flex:1 1 100%;padding:14px 0;border-right:0;border-bottom:1px solid var(--line-d)}
  .strip li:last-child{border-bottom:0}
  .gal{grid-template-columns:1fr 1fr}
  .gal img{aspect-ratio:4/3.2}
  .li .it{grid-template-columns:60px 1fr}
  .li .n{font-size:1.5rem}
  .ph-photo img{aspect-ratio:16/9}
  .stage-top{align-items:start}
  .strip li{padding:4px 18px;font-size:.83rem}
  .li .it{grid-template-columns:44px 1fr;gap:14px;padding:24px 0}
  .li p,.li .go{grid-column:2}
  .cta .r{align-items:flex-start}
  .sd{position:static}
  .drv-img{max-width:320px}
  .ft-g{grid-template-columns:1fr 1fr}
  .nav,.hd-tel{display:none}
  .bg{display:block}
  .nav.open{display:block;position:absolute;top:74px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:14px 26px 20px;box-shadow:0 22px 34px -22px rgba(11,13,16,.35)}
  .nav.open ul{flex-direction:column;gap:0;align-items:stretch}
  .nav.open li{border-bottom:1px solid var(--line)}
  .nav.open a{padding:13px 0}
  .nav.open .sub-menu{display:flex;position:static;border:0;box-shadow:none;padding:0 0 8px 14px;min-width:0}
  /* les légendes techniques deviennent illisibles sous 900 px */
  .veh-notes,.veh-lab{display:none}
  .veh,.fiche-diag{overflow:hidden}
  .veh-svg{margin:-13% 0 -12%}
  /* cibles tactiles confortables (44 px) — clientèle souvent âgée */
  .bar a,.li .go,.znote a,.ft li a,.ft-bot a,.cr a{display:inline-block;padding:11px 0}
  .ft li{margin-bottom:0}
}
@media(max-width:820px){
  .gal{grid-template-columns:1fr 1fr}
  .gal figure:last-child{display:none}
}
@media(max-width:620px){
  body{font-size:16px;padding-bottom:72px}
  .s{padding:58px 0}
  .gal{grid-template-columns:1fr;gap:22px}
  .gal figure:last-child{display:block}
  .gal img{aspect-ratio:4/3}
  .stage-photo img{aspect-ratio:4/3.6}
  .strip{display:grid;grid-template-columns:1fr}
  .strip li{border-right:0;border-bottom:1px solid var(--line-d);padding:9px 0}
  .strip li:last-child{border-bottom:0}
  .pts li{grid-template-columns:1fr;gap:2px}
  .ft-g{grid-template-columns:1fr}
  .mb{display:flex}
  .hd-r .b{display:none}
  .bar .wrap{justify-content:center;text-align:center}
}

/* ================================================================
   RAFFINEMENTS — mouvement, micro-interactions, accessibilité
   Tout est désactivé si l'utilisateur a demandé moins d'animations.
   ================================================================ */

/* --- apparition au défilement, en cascade --- */
.rv{opacity:0;transform:translateY(20px);
    transition:opacity .8s cubic-bezier(.16,.84,.3,1),transform .8s cubic-bezier(.16,.84,.3,1);
    transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}

/* --- en-tête qui se condense au défilement --- */
.hd{transition:box-shadow .3s ease,background .3s ease}
.hd-in{transition:height .3s cubic-bezier(.16,.84,.3,1)}
.hd.scrolled{box-shadow:0 10px 30px -18px rgba(11,13,16,.35)}
.hd.scrolled .hd-in{height:62px}
.hd.scrolled .lg small{opacity:0;transform:translateY(-4px)}
.lg small{transition:opacity .3s ease,transform .3s ease}

/* --- le lumineux vert respire, comme sur le toit du taxi --- */
@keyframes pulse-taxi{
  0%,100%{box-shadow:0 0 10px 2px rgba(126,242,168,.55)}
  50%{box-shadow:0 0 18px 5px rgba(126,242,168,.9)}
}
.sig i{animation:pulse-taxi 3.4s ease-in-out infinite}

/* --- parallaxe douce sur la photo du hero --- */
.stage-photo img{will-change:transform;transform:scale(1.07)}

/* --- boutons : la flèche glisse --- */
.b{position:relative;overflow:hidden}
.b-g::after,.b-d::after{content:"";margin-left:0;width:0;overflow:hidden;transition:width .25s ease,margin-left .25s ease}
.b-g:hover::after,.b-d:hover::after{content:"→";width:1em;margin-left:4px}
.b-g,.b-d{transition:transform .22s cubic-bezier(.16,.84,.3,1),background .22s ease}
.b-g:hover,.b-d:hover{transform:translateY(-2px)}

/* --- liens de prestation : le trait se déroule --- */
.li .go{position:relative;border-bottom:0;padding-bottom:3px}
.li .go::after{content:"";position:absolute;left:0;bottom:0;height:1.5px;width:100%;
  background:var(--vert);transform:scaleX(.35);transform-origin:left;transition:transform .3s ease}
.li .it:hover .go::after{transform:scaleX(1)}

/* --- villes : soulignement animé --- */
.villes a{position:relative;overflow:hidden}
.villes a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--vert);
  transform:translateY(2px);opacity:0;transition:.25s}
.villes a:hover::after{transform:none;opacity:1}

/* --- FAQ : ouverture plus douce --- */
.faq details summary{transition:color .2s ease,padding-left .25s ease}
.faq details[open] summary{color:var(--vert-d)}
.faq summary:hover{padding-left:6px}
.faq details[open] .a{animation:faq-in .35s ease both}
@keyframes faq-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* --- galerie : la légende monte au survol --- */
.gal figcaption{transform:translateY(6px);opacity:.92;transition:transform .35s ease,opacity .35s ease}
.gal figure:hover figcaption{transform:none;opacity:1}

/* --- étapes du trajet --- */
.etapes{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.etapes .et{padding:34px 34px 34px 0;border-right:1px solid var(--line);position:relative}
.etapes .et:last-child{border-right:0}
.etapes .num{font-size:.72rem;font-weight:700;letter-spacing:.2em;color:var(--vert-d);margin-bottom:18px;display:flex;align-items:center;gap:10px}
.etapes .num::before{content:"";width:26px;height:2px;background:var(--vert)}
.etapes h3{font-size:1.24rem;margin-bottom:10px}
.etapes p{color:var(--muted);font-size:.97rem;margin:0}
.s-d .etapes{border-top-color:var(--line-d)}
.s-d .etapes .et{border-right-color:var(--line-d)}
.s-d .etapes .num{color:var(--vert-l)}
.s-d .etapes p{color:var(--on-dark-2)}

/* --- accessibilité : contour de focus visible --- */
a:focus-visible,button:focus-visible,summary:focus-visible{
  outline:3px solid var(--vert);outline-offset:3px;border-radius:2px}

/* --- menu mobile plein écran --- */
@media(max-width:1000px){
  .nav.open{position:fixed;inset:0;top:0;background:var(--dark);padding:88px var(--marge) 40px;
    overflow-y:auto;z-index:100;border:0;box-shadow:none;animation:menu-in .3s ease both}
  @keyframes menu-in{from{opacity:0}to{opacity:1}}
  .nav.open ul{gap:0}
  .nav.open li{border-bottom:1px solid var(--line-d)}
  .nav.open a{padding:17px 0;color:#fff;font-size:1.1rem;font-weight:600}
  .nav.open .sub-menu a{font-size:.97rem;font-weight:500;color:var(--on-dark-2);padding:12px 0}
  .nav.open .sub-menu{background:transparent;padding-left:16px}
  .bg{position:relative;z-index:101}
  body.menu-ouvert{overflow:hidden}
  body.menu-ouvert .bg{color:#fff;border-color:rgba(255,255,255,.4)}
  .etapes{grid-template-columns:1fr}
  .etapes .et{border-right:0;border-bottom:1px solid var(--line);padding:26px 0}
  .etapes .et:last-child{border-bottom:0}
  .s-d .etapes .et{border-bottom-color:var(--line-d)}
}

/* --- respect des préférences d'animation --- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important}
  .rv{opacity:1;transform:none}
  .stage-photo img{transform:none}
}

/* --- reprise des derniers restes de l'accent doré --- */
.lbl-g{color:var(--vert-d)}
.b-g:hover{background:#3ad47a}
.b-g{color:#062313}

/* --- SÉCURITÉ : les animations d'apparition ne s'appliquent QUE si le
   JavaScript a pu poser la classe .anim sur <body>. Sans JS, ou si
   l'observateur échoue, le contenu reste visible. --- */
.rv{opacity:1;transform:none}
body.anim .rv{opacity:0;transform:translateY(20px)}
body.anim .rv.in{opacity:1;transform:none}
.fiche-diag{color:#fff}

/* --- Règle finale : l'apparition l'emporte toujours.
   Sans ce !important, la règle body.anim .rv la neutralisait. --- */
.rv.in{opacity:1!important;transform:none!important}

/* --- Neutralisation définitive du système d'apparition (retiré) :
   plus aucune règle ne peut masquer du contenu. --- */
.rv,.rv.in,body.anim .rv,body.anim .rv.in{opacity:1!important;transform:none!important}

@media(max-width:1000px){
  .nav.open{height:100vh;height:100dvh}
}

/* ================================================================
   HERO — reprise
   Analyse de la photo : le véhicule occupe 52 % à 88 % de la hauteur.
   Le cadrage précédent (58 %) coupait le bas de la voiture.
   ================================================================ */
.stage{border-top:2px solid var(--vert)}          /* rappel du lumineux */
.stage-top{grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);min-height:min(82vh,760px)}
.stage-txt{padding-top:64px;padding-bottom:64px}

/* cadrage : la voiture entière, avec un peu de ciel au-dessus */
.stage-photo img{object-position:50% 74%}
.stage-photo::after{background:
  linear-gradient(96deg,var(--dark) 0%,rgba(11,13,16,.55) 16%,rgba(11,13,16,.06) 46%,transparent 62%),
  linear-gradient(0deg,rgba(11,13,16,.55) 0%,transparent 34%)}

/* typographie : plus de présence, plus d'air */
.stage h1{font-size:clamp(2.4rem,4.7vw,4rem);line-height:1.02;letter-spacing:-.038em;
  max-width:14ch;margin-bottom:22px}
.stage .lead{font-size:1.16rem;line-height:1.62;max-width:44ch;margin-bottom:34px;color:#b3bcc6}
.sig{margin-bottom:30px;padding-left:16px;position:relative}
.sig::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:2px;height:24px;background:var(--vert)}
.acts{gap:14px}
.stage .b{padding:17px 30px}

/* carte téléphone : ancrée sur la jointure des deux colonnes */
.tel-card{bottom:0;padding:24px 34px 24px 28px;border-left-width:4px;
  box-shadow:0 30px 60px -22px rgba(0,0,0,.85)}
.tel-card b{font-size:clamp(1.6rem,2.5vw,2.15rem)}
.tel-card::after{content:"→";position:absolute;right:16px;top:50%;transform:translateY(-50%);
  color:var(--vert);opacity:0;transition:.25s}
.tel-card:hover::after{opacity:1;right:12px}
.tel-card:hover{padding-right:44px}

/* bandeau de faits : plus lisible */
.strip li{padding:22px 32px}
.strip b{font-size:1.1rem}

@media(max-width:1000px){
  .stage-top{min-height:0}
  .stage-txt{padding-top:46px;padding-bottom:38px}
  .stage-photo{aspect-ratio:5/4}
  .stage-photo img{object-position:50% 72%}
  .stage-photo::after{background:linear-gradient(0deg,rgba(11,13,16,.6) 0%,transparent 42%)}
  .tel-card{padding:22px var(--marge)}
  .tel-card::after{display:none}
  .tel-card:hover{padding-right:var(--marge)}
}

/* la carte téléphone chevauche la jointure texte / photo */
.stage-top{position:relative}
.tel-card{left:calc(49% - 62px);bottom:-26px;z-index:5}
@media(max-width:1000px){
  .tel-card{position:static;left:auto;bottom:auto;margin:0}
}

/* ================================================================
   RESPONSIVE FINAL — placé en dernier pour l'emporter sur les règles
   de bureau ajoutées plus haut (l'ordre du fichier fait loi).
   ================================================================ */
@media(max-width:1000px){
  .stage-top{grid-template-columns:1fr!important;min-height:0!important}
  .stage-txt{padding:48px var(--marge) 36px!important}
  .stage-photo{aspect-ratio:16/11;min-height:0}
  .stage-photo img{object-position:50% 78%}
  .tel-card{position:static!important;left:auto!important;bottom:auto!important;
    width:100%;padding:22px var(--marge)!important;border-left:0;border-top:4px solid var(--vert)}
  .strip{padding:0 var(--marge)}
  .strip li{padding:15px 0!important}
}

/* calcul du cadrage mobile : à 83 %, la voiture (52-88 % de la photo)
   tient entièrement dans la zone visible */
@media(max-width:1000px){ .stage-photo img{object-position:50% 83%} }

/* ================================================================
   HARMONISATION — corrections d'après le rendu réel
   ================================================================ */

/* --- en-tête : le menu tenait sur deux lignes, en escalier --- */
.hd-in{height:78px;gap:26px}
.nav ul{gap:24px}
.nav > div > ul > li > a,.nav ul li a{white-space:nowrap;font-size:.9rem}
.nav .sub-menu a{white-space:normal}
.lg b{font-size:1.22rem}
.lg small{white-space:nowrap;font-size:.56rem;letter-spacing:.15em}
.hd-tel{font-size:.95rem}
.hd-r{gap:14px}
.hd-r .b{padding:11px 19px}
@media(max-width:1320px){
  .hd-tel{display:none}          /* le numéro reste dans le hero et le pied */
  .nav ul{gap:19px}
  .nav ul li a{font-size:.86rem}
}

/* --- titre : blanc, sans le vert acide sur la moitié du texte --- */
.stage h1{color:#fff;font-weight:600;letter-spacing:-.032em}
.stage h1 em{color:#fff}
.stage .lead{color:#a9b3bd;font-size:1.1rem}

/* --- le vert reste un accent, pas une couleur de texte --- */
.sig{color:#cfd8e0;letter-spacing:.16em;font-size:.72rem}
.sig i{background:var(--vert)}
.sig::before{background:var(--vert)}

/* --- boutons du hero : plus sobres --- */
.stage .b-g{background:#fff;color:var(--ink);border-color:#fff}
.stage .b-g:hover{background:var(--vert-l);border-color:var(--vert-l);color:#062313}

/* --- carte téléphone : remontée pour ne plus masquer le bandeau --- */
.tel-card{bottom:46px;padding:22px 30px 22px 26px}
.tel-card span{color:var(--vert-l);font-size:.66rem;letter-spacing:.18em}
.tel-card b{font-size:1.9rem}

/* --- bandeau : alignement régulier --- */
.strip li{flex:1 1 0;padding:22px 26px}
.strip li:first-child{padding-left:0}

@media(max-width:1000px){
  .tel-card{bottom:auto}
}

/* ================================================================
   IDENTITÉ FORTE — typographie automobile, panneau défilant,
   numéros en filigrane. (Placé en fin de fichier : il l'emporte.)
   ================================================================ */

/* --- Archivo élargi : la voix des titres, façon monogramme auto --- */
:root{--disp:"Archivo",Inter,system-ui,sans-serif}
h1,h2,h3{font-family:var(--disp);font-stretch:115%;font-weight:700;letter-spacing:-.02em}
.stage h1{font-stretch:118%;font-weight:750;font-size:clamp(2.5rem,4.8vw,4.1rem);line-height:1.0}
.lg b,.ft-b b{font-family:var(--disp);font-stretch:120%;font-weight:800}
.tel-card b,.strip b,.sd .tel,.cta .tel{font-family:var(--disp);font-stretch:110%}
.gal figcaption,.etapes .num{font-family:var(--disp);font-stretch:112%}
::selection{background:var(--vert);color:#062313}

/* --- boutons : caps courtes, angles francs, voix signalétique --- */
.b{border-radius:0;text-transform:uppercase;font-size:.88rem;font-weight:700;letter-spacing:.07em;font-family:var(--disp);font-stretch:108%}

/* --- kickers : petit trait vert devant, comme un repère de quai --- */
.hd2 .lbl{display:inline-flex;align-items:center;gap:12px}
.hd2 .lbl::before{content:"";width:34px;height:2px;background:var(--vert)}

/* --- numéros de section géants, en filigrane --- */
body{counter-reset:sec}
.s .hd2{position:relative;counter-increment:sec}
.s .hd2 h2{position:relative;z-index:1}
.s .hd2::before{content:counter(sec,decimal-leading-zero);
  position:absolute;right:0;top:-38px;z-index:0;pointer-events:none;
  font-family:var(--disp);font-stretch:125%;font-weight:800;line-height:1;
  font-size:clamp(4.6rem,11vw,8.5rem);color:transparent;
  -webkit-text-stroke:1px var(--line)}
.s-d .hd2::before{-webkit-text-stroke:1px rgba(255,255,255,.13)}
@media(max-width:1000px){.s .hd2::before{font-size:4rem;top:-20px}}

/* --- panneau de destinations défilant (façon affichage d'aéroport) --- */
.board{overflow:hidden;background:#0e1217;border-bottom:1px solid var(--line-d);padding:15px 0;position:relative}
.board::before,.board::after{content:"";position:absolute;top:0;bottom:0;width:90px;z-index:2;pointer-events:none}
.board::before{left:0;background:linear-gradient(90deg,#0e1217,transparent)}
.board::after{right:0;background:linear-gradient(-90deg,#0e1217,transparent)}
.board-track{display:flex;width:max-content;animation:defile 46s linear infinite}
.board-track span{font-family:var(--disp);font-stretch:115%;font-weight:600;font-size:.92rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--vert-l);white-space:nowrap;padding:0 20px;
  display:inline-flex;align-items:center;gap:40px}
.board-track span::after{content:"";width:7px;height:7px;border-radius:2px;background:rgba(126,242,168,.45)}
@keyframes defile{to{transform:translateX(-50%)}}
.board:hover .board-track{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.board-track{animation:none}}
@media(max-width:640px){.board-track span{font-size:.8rem;letter-spacing:.16em}}

/* --- bande avis Google --- */
.avis{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:56px 0}
.avis-band{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center}
.avis .g{width:40px;height:40px;margin-bottom:16px}
.avis h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin-bottom:10px;max-width:24ch}
.avis p{color:var(--muted);max-width:52ch;margin:0}
.avis-act{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:1000px){.avis-band{grid-template-columns:1fr}}

/* ================================================================
   FICHE VÉHICULE — le schéma dessiné est remplacé par une vraie
   photo (le dessin dévalorisait la section face aux photos réelles).
   ================================================================ */
.fiche{grid-template-columns:.92fr 1.08fr;align-items:center;gap:56px}
.fiche-photo{margin:0;overflow:hidden}
.fiche-photo img{width:100%;aspect-ratio:4/4.4;object-fit:cover;object-position:50% 68%}

/* galerie : cadrage recentré sur le véhicule (fini le zoom pare-chocs) */
.gal img{aspect-ratio:4/3.1;object-position:50% 72%}
@media(max-width:1000px){
  .fiche-photo img{aspect-ratio:16/10;object-position:50% 74%}
}

/* ================================================================
   ÉLÉGANCE — titre apaisé, boutons alignés, routes animées
   ================================================================ */

/* titre : plus compact, lignes équilibrées (fini le mot par ligne) */
.stage h1{font-size:clamp(2.1rem,3.6vw,3.3rem);line-height:1.05;max-width:none;text-wrap:balance;margin-bottom:18px}
.stage .lead{font-size:1.05rem;max-width:46ch}

/* boutons côte à côte, plus fins */
.stage .acts{flex-wrap:nowrap}
.stage .b{padding:14px 22px;font-size:.8rem;white-space:nowrap}
@media(max-width:1180px){.stage .acts{flex-wrap:wrap}}

/* ---------- la route : un trait fin, une voiture au trait qui roule ---------- */
.route{position:relative;width:100vw;margin-left:calc(50% - 50vw);height:40px;overflow:hidden}
.route::before{content:"";position:absolute;left:0;right:0;bottom:7px;height:1px;background:var(--line)}
.route .car{position:absolute;bottom:8px;left:-110px;width:92px;color:#9aa5b1;
  animation:roule 30s linear infinite}
.route .car .feu{fill:var(--vert)}
@keyframes roule{to{transform:translateX(calc(100vw + 220px))}}
.route.retour .car{animation-direction:reverse}
.route.retour .car svg{transform:scaleX(-1)}
@media(prefers-reduced-motion:reduce){.route .car{animation:none;left:12%}}

/* lien d'évitement clavier (accessibilité) */
.skip{position:absolute;left:-9999px}
.skip:focus{position:fixed;top:12px;left:12px;z-index:300;background:var(--vert);color:#062313;
  padding:13px 20px;font-weight:700;text-decoration:none}

/* ================================================================
   AVIS DÉFILANTS · FORMULAIRE · ACCENTS VOITURE
   ================================================================ */

/* note Google */
.note-g{font-family:var(--disp);font-stretch:112%;font-weight:800;color:var(--ink);font-size:1.15em}

/* témoignages : défilement lent, pause au survol */
.temoins{overflow:hidden;margin-top:44px;position:relative}
.temoins::before,.temoins::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}
.temoins::before{left:0;background:linear-gradient(90deg,var(--paper),transparent)}
.temoins::after{right:0;background:linear-gradient(-90deg,var(--paper),transparent)}
.temoins-track{display:flex;gap:16px;width:max-content;animation:defile 48s linear infinite;padding:4px 0}
.temoins:hover .temoins-track{animation-play-state:paused}
.temoin{width:380px;max-width:82vw;border:1px solid var(--line);padding:26px 28px;background:#fff;flex:none}
.temoin .etoiles{display:flex;gap:3px;color:#e7a917;margin-bottom:14px}
.temoin .etoiles svg{width:16px;height:16px}
.temoin p{font-size:.98rem;color:var(--ink-2);margin:0 0 16px;line-height:1.6}
.temoin footer{font-family:var(--disp);font-stretch:110%;font-weight:700;font-size:.9rem;color:var(--ink)}
.temoin footer span{font-family:var(--f);font-weight:500;color:var(--muted);font-size:.82rem}
@media(prefers-reduced-motion:reduce){
  .temoins{overflow-x:auto}
  .temoins-track{animation:none}
  .temoins::before,.temoins::after{display:none}
}

/* formulaire */
.form{max-width:none}
.form .hp{position:absolute;left:-9999px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin-bottom:16px}
.form label{display:block;font-size:.85rem;font-weight:600;color:var(--ink);letter-spacing:.02em}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:7px;padding:13px 14px;
  border:1px solid var(--line);background:#fff;font:inherit;font-size:.98rem;color:var(--ink);border-radius:0}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--vert);
  box-shadow:0 0 0 3px rgba(47,191,106,.18)}
.form textarea{resize:vertical}
.form>label{margin-bottom:18px}
.form .b{margin-top:4px}
.form-rgpd{font-size:.82rem;color:var(--muted);margin-top:14px}
.form-note{padding:15px 18px;margin-bottom:20px;font-weight:600;border-left:3px solid}
.form-note.ok{background:#eefaf2;border-color:var(--vert);color:#0c5231}
.form-note.ko{background:#fdf0ee;border-color:#c0392b;color:#7c2418}
@media(max-width:700px){.form-grid{grid-template-columns:1fr}}

/* accents voiture : pied de page et encadré latéral */
.ft-car{width:74px;color:#4a545f;margin-bottom:14px}
.ft-car .feu{fill:var(--vert)}
.sd-car{width:64px;color:#aeb7c0;margin-bottom:12px}
.sd-car .feu{fill:var(--vert)}

/* ================================================================
   CORRECTIFS MOBILE (en fin de fichier : ils l'emportent)
   ================================================================ */
@media(max-width:1000px){
  /* la fiche véhicule : le tableau écrasait la photo à 2 px de large */
  .fiche{grid-template-columns:1fr;gap:28px;align-items:start}
  .fiche-photo img{aspect-ratio:16/10;object-position:50% 74%}
  .tbl{width:100%}
  .tbl th{width:42%}
}
@media(max-width:620px){
  /* bandeau du haut : une seule ligne au lieu d'un pavé de 97 px */
  .bar span:last-child{display:none}
  .bar .wrap{justify-content:center;padding-top:8px;padding-bottom:8px}
  .bar span{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  /* témoignages : léger retrait au bord */
  .temoins-track{padding-left:16px}
}

/* ================================================================
   ROUTE À DOUBLE SENS · MENU MOBILE REFAIT · PHOTOS ALIGNÉES
   (fin de fichier : ces règles l'emportent)
   ================================================================ */

/* --- route : deux voies, trois voitures --- */
.route{height:64px;overflow:hidden}
.route::before{bottom:15px}
.route .car{bottom:16px;width:88px;animation:roule 32s linear infinite;animation-delay:-5s}
.route .car-b{width:62px;color:#b3bcc4;animation-duration:44s;animation-delay:-27s}
.route .car2{position:absolute;top:4px;right:-120px;left:auto;width:70px;color:#a7b1ba;
  animation:roule2 38s linear infinite;animation-delay:-13s}
.route .car2 svg{transform:scaleX(-1)}
.route .car2 .feu,.route .car-b .feu{fill:var(--vert)}
@keyframes roule2{to{transform:translateX(calc(-100vw - 240px))}}
.route.retour .car{animation-direction:normal}
.route.retour .car svg{transform:none}
@media(prefers-reduced-motion:reduce){
  .route .car,.route .car2{animation:none}
  .route .car{left:14%}.route .car-b{left:52%}.route .car2{right:30%}
}

/* --- photos : pleine largeur et centrées sur mobile --- */
@media(max-width:1000px){
  .fiche-photo,.fiche-photo img{width:100%}
  .drv-img{max-width:100%;margin:0}
  .drv-img img{aspect-ratio:4/3;object-position:50% 62%}
}

/* --- menu hamburger : refonte complète --- */
@media(max-width:1000px){
  .nav.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;width:100%;
    height:100vh;height:100dvh;background:var(--dark);z-index:120;
    padding:110px var(--marge) 60px;overflow-y:auto;border:0;box-shadow:none;animation:none}
  .nav.open ul{display:block;margin:0}
  .nav.open li{list-style:none;margin:0;border-bottom:1px solid var(--line-d)}
  .nav.open > div > ul > li > a,.nav.open ul li a{color:#fff;padding:16px 0;margin:0;
    font-size:1.06rem;font-weight:600;display:block}
  .nav.open .sub-menu{display:block;position:static;background:none;border:0;box-shadow:none;
    padding:0 0 10px 16px;min-width:0}
  .nav.open .sub-menu li{border-bottom:0}
  .nav.open .sub-menu a{color:var(--on-dark-2);font-size:.95rem;font-weight:500;padding:11px 0}
  /* l'en-tête reste visible AU-DESSUS du voile, en sombre */
  body.menu-ouvert .hd{z-index:130;background:var(--dark);border-color:var(--line-d)}
  body.menu-ouvert .lg b{color:#fff}
  body.menu-ouvert .lg small{color:var(--on-dark-2)}
  body.menu-ouvert .bg{color:#fff;border-color:rgba(255,255,255,.4)}
  /* rien d'autre ne dépasse du voile */
  body.menu-ouvert .mb{display:none}
  body.menu-ouvert .bar{visibility:hidden}
  body.menu-ouvert{overflow:hidden}
}

/* ================================================================
   MOBILE : galerie en carrousel à glisser, fiche allégée
   ================================================================ */
@media(max-width:820px){
  /* le mur de photos empilées devient un carrousel */
  .gal{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;width:100vw;margin-left:calc(50% - 50vw);
    padding:0 7vw;scrollbar-width:none;background:transparent}
  .gal::-webkit-scrollbar{display:none}
  .gal figure{flex:0 0 88%;scroll-snap-align:center;display:block!important}
  .gal img{aspect-ratio:4/3;width:100%}
  /* la photo de la fiche fait doublon avec le carrousel juste au-dessus */
  .fiche-photo{display:none}
  .fiche{grid-template-columns:1fr;gap:0;margin-top:34px}
}

/* ================================================================
   MENU MOBILE — version signature
   ================================================================ */
.menu-extra{display:none}
@media(max-width:1000px){
  .nav.open{display:flex;flex-direction:column;
    padding:100px var(--marge) 34px;
    /* halo vert en haut à droite : le lumineux du taxi, la nuit */
    background:radial-gradient(560px 300px at 88% -60px, rgba(47,191,106,.22), transparent 62%), var(--dark)}
  .nav.open > ul{flex:1;counter-reset:m;margin:0}

  /* liens numérotés, entrée en cascade */
  .nav.open > ul > li{counter-increment:m;border-bottom:1px solid var(--line-d);
    animation:menu-item .5s cubic-bezier(.2,.7,.2,1) backwards}
  .nav.open > ul > li:nth-child(1){animation-delay:.05s}
  .nav.open > ul > li:nth-child(2){animation-delay:.1s}
  .nav.open > ul > li:nth-child(3){animation-delay:.15s}
  .nav.open > ul > li:nth-child(4){animation-delay:.2s}
  .nav.open > ul > li:nth-child(5){animation-delay:.25s}
  .nav.open > ul > li:nth-child(6){animation-delay:.3s}
  @keyframes menu-item{from{opacity:0;transform:translateX(-22px)}}
  .nav.open > ul > li > a{display:flex;align-items:baseline;gap:15px;
    font-family:var(--disp);font-stretch:112%;font-size:1.32rem;font-weight:700;
    color:#fff;padding:15px 0;margin:0}
  .nav.open > ul > li > a::before{content:"0" counter(m);font-family:var(--f);
    font-size:.7rem;font-weight:700;letter-spacing:.15em;color:var(--vert-l);min-width:24px}

  /* les communes en pastilles, pas en liste */
  .nav.open .sub-menu{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 18px 39px;
    position:static;background:none;border:0;box-shadow:none;min-width:0}
  .nav.open .sub-menu li{border:1px solid var(--line-d);margin:0;list-style:none;animation:none}
  .nav.open .sub-menu a{display:block;padding:9px 13px;font-size:.83rem;font-weight:600;
    color:var(--on-dark-2);font-family:var(--f)}
  .nav.open .sub-menu a:active{color:#fff;background:rgba(255,255,255,.06)}

  /* en bas : la route, la voiture, et le numéro en évidence */
  .nav.open .menu-extra{display:block;margin-top:22px;animation:menu-item .5s .35s cubic-bezier(.2,.7,.2,1) backwards}
  .menu-route{position:relative;height:44px;overflow:hidden;margin-bottom:14px}
  .menu-route::before{content:"";position:absolute;left:0;right:0;bottom:9px;height:1px;background:var(--line-d)}
  .menu-route .car{position:absolute;bottom:10px;left:-96px;width:76px;color:#8f99a3;
    animation:roule 13s linear infinite}
  .menu-route .feu{fill:var(--vert)}
  .menu-tel{display:block;border-left:3px solid var(--vert);background:rgba(255,255,255,.05);
    padding:15px 18px;text-decoration:none!important}
  .menu-tel span{display:block;font-size:.66rem;font-weight:700;letter-spacing:.18em;
    text-transform:uppercase;color:var(--vert-l);margin-bottom:6px}
  .menu-tel b{font-family:var(--disp);font-stretch:112%;font-size:1.72rem;color:#fff;
    letter-spacing:-.03em;line-height:1}
}
@media(prefers-reduced-motion:reduce){
  .nav.open > ul > li,.nav.open .menu-extra{animation:none}
  .menu-route .car{animation:none;left:38%}
}

/* --- croix de fermeture, dans le voile lui-même --- */
.nav-fermer{display:none}
@media(max-width:1000px){
  .nav.open .nav-fermer{display:grid;place-items:center;position:fixed;top:16px;right:var(--marge);
    z-index:140;width:54px;height:54px;background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.25);color:#fff;cursor:pointer;
    animation:menu-item .4s .05s cubic-bezier(.2,.7,.2,1) backwards}
  .nav-fermer svg{width:22px;height:22px}
  .nav-fermer:active{background:var(--vert);border-color:var(--vert);color:#062313}
  /* plus de doublon : le bouton de l'en-tête s'efface, la croix prend le relais */
  body.menu-ouvert .bg{visibility:hidden}
}
@media(prefers-reduced-motion:reduce){.nav.open .nav-fermer{animation:none}}

/* ================================================================
   MENU MOBILE : tout tient à l'écran, sans défilement
   ================================================================ */
@media(max-width:1000px){
  .nav.open{padding:82px var(--marge) 16px;overflow-y:auto}
  .nav.open > ul{flex:1;display:flex;flex-direction:column;justify-content:center}
  .nav.open > ul > li > a{font-size:1.12rem;padding:11px 0;gap:12px}
  .nav.open > ul > li > a::before{min-width:20px}
  .nav.open .sub-menu{gap:7px;padding:0 0 12px 32px}
  .nav.open .sub-menu a{padding:7px 11px;font-size:.78rem}
  .nav.open .menu-extra{margin-top:14px}
  .menu-route{height:34px;margin-bottom:10px}
  .menu-route::before{bottom:7px}
  .menu-route .car{bottom:8px;width:62px}
  .menu-tel{padding:12px 16px}
  .menu-tel b{font-size:1.42rem}
  .menu-tel span{margin-bottom:4px}
}
/* petits téléphones : on serre encore, la route s'efface */
@media(max-width:1000px) and (max-height:700px){
  .nav.open{padding-top:74px}
  .nav.open > ul > li > a{font-size:1.02rem;padding:8px 0}
  .nav.open .sub-menu{padding-bottom:9px}
  .nav.open .sub-menu a{padding:6px 10px;font-size:.74rem}
  .menu-route{display:none}
  .menu-tel b{font-size:1.25rem}
}

/* --- communes du menu : une seule ligne, à glisser latéralement --- */
@media(max-width:1000px){
  .nav.open .sub-menu{display:flex!important;flex-wrap:nowrap;overflow-x:auto;
    gap:8px;padding:2px 0 14px 32px;margin:0;scrollbar-width:none;
    -webkit-overflow-scrolling:touch}
  .nav.open .sub-menu::-webkit-scrollbar{display:none}
  .nav.open .sub-menu li{flex:0 0 auto;display:block}
  .nav.open .sub-menu a{white-space:nowrap;display:block}
}
@media(max-width:1000px){
  /* le menu déroulant d'ordinateur imposait sa colonne : on repasse en ligne */
  .nav.open .sub-menu{flex-direction:row}
}

/* ================================================================
   GRANDS ÉCRANS (plein écran ordinateur) — rééquilibrage
   ================================================================ */
@media(min-width:1401px){
  /* le texte respirait dans 494 px pendant que la photo prenait 971 px */
  .stage-top{grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr)}
  .stage h1{font-size:3.5rem;max-width:16ch}
  .stage .lead{font-size:1.2rem;max-width:52ch}
  /* la carte téléphone suit la nouvelle jointure texte/photo */
  .tel-card{left:calc(59% - 62px)}
}
@media(min-width:1201px){
  /* légendes lisibles sur les grandes photos */
  .gal figcaption{font-size:.95rem;padding:52px 26px 18px}
  /* fiche équilibrée : photo à hauteur du tableau */
  .fiche{align-items:center}
  .fiche-photo img{aspect-ratio:4/3.5}
  /* le panneau défilant s'assume un peu plus */
  .board-track span{font-size:1rem}
  .board{padding:17px 0}
}
@media(min-width:1401px){
  /* la limite en caractères bridait le titre plus que la colonne */
  .stage h1{max-width:none;font-size:3.4rem}
}

/* ================================================================
   HERO CENTRÉ — le texte s'aligne au centre de sa colonne
   ================================================================ */
.stage-txt{align-items:center;text-align:center}
.stage h1{margin-left:auto;margin-right:auto}
.stage .lead{margin-left:auto;margin-right:auto}
.stage .acts{justify-content:center}
/* le repère vert passe au-dessus du libellé, centré */
.sig{padding-left:0;flex-direction:column;gap:12px}
.sig::before{position:static;transform:none;width:34px;height:2px}
.sig i{display:none}
/* colonne du hero : rembourrage symétrique, le centre est le vrai centre */
.stage-txt{padding-left:clamp(34px,5vw,80px);padding-right:clamp(34px,5vw,80px)}
@media(max-width:1000px){.stage-txt{padding-left:var(--marge);padding-right:var(--marge)}}

/* ================================================================
   LOGO OFFICIEL — en-tête, menu, pied de page
   ================================================================ */
.lg{flex-direction:row;align-items:center}
.lg-img{height:56px;width:auto;transition:height .3s ease}
.hd.scrolled .lg-img{height:44px}
.lg-img-blanc{display:none}
/* menu mobile ouvert : l'en-tête passe en sombre → variante blanche */
body.menu-ouvert .lg-img{display:none}
body.menu-ouvert .lg-img-blanc{display:block}
.ft-logo{height:92px;width:auto;margin-bottom:16px}
.ft-car{display:none}
@media(max-width:620px){
  .lg-img{height:46px}
  .hd.scrolled .lg-img{height:40px}
  .ft-logo{height:78px}
}
/* flexbox comprimait le logo à 0 px de large */
.lg{flex:0 0 auto}
.lg-img{max-width:none;width:auto}

/* ================================================================
   ZONES : distinguer villes cliquables / simples mentions
   ================================================================ */
.zone-hint{color:var(--vert-l);font-weight:600}
.villes-lbl{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--on-dark-2);margin:0 0 12px}
.villes-lbl-2{margin-top:26px}
/* villes cliquables : aspect bouton, flèche, survol vert */
.villes a{display:inline-flex;align-items:center;gap:8px;background:rgba(47,191,106,.08);
  border-color:rgba(47,191,106,.35)}
.villes a .fl{color:var(--vert-l);font-weight:700;transition:transform .2s}
.villes a:hover{background:var(--vert);border-color:var(--vert);color:#062313}
.villes a:hover .fl{color:#062313;transform:translateX(3px)}
/* simples mentions : neutres, sans bordure verte, non cliquables visuellement */
.villes-plus span{background:transparent;border-color:var(--line-d);color:var(--on-dark-2);cursor:default}
/* villes cliquables : texte lisible sur le fond vert translucide */
.villes a{color:#fff}
.villes a .fl{color:var(--vert-l)}
.villes a:hover,.villes a:hover .fl{color:#062313}
/* fond opaque sur les villes cliquables → contraste net du texte blanc */
.villes a{background:#14361f;border-color:rgba(47,191,106,.55)}
.villes a:hover{background:var(--vert);border-color:var(--vert)}

/* ================================================================
   BANDEAU COOKIES (RGPD / CNIL) — charte sombre/vert
   ================================================================ */
.ck{position:fixed;left:16px;right:16px;bottom:16px;z-index:9999;
  animation:ck-monte .35s ease both}
@keyframes ck-monte{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ck-in{max-width:1080px;margin:0 auto;background:var(--dark-2);color:var(--on-dark);
  border:1px solid var(--line-d);border-top:3px solid var(--vert);
  border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.5);
  padding:20px 24px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.ck-txt{flex:1 1 380px;min-width:260px}
.ck-txt b{display:block;font-family:'Archivo',system-ui,sans-serif;font-weight:800;
  font-size:1.02rem;font-stretch:112%;margin-bottom:5px}
.ck-txt p{margin:0;font-size:.9rem;line-height:1.5;color:var(--on-dark-2)}
.ck-txt a{color:var(--vert-l);text-decoration:underline}
.ck-btn{display:flex;gap:12px;flex:0 0 auto}
.ck-b{cursor:pointer;font:inherit;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  font-size:.8rem;padding:12px 22px;border-radius:8px;border:1px solid var(--line-d);transition:.18s}
.ck-refus{background:transparent;color:var(--on-dark)}
.ck-refus:hover{border-color:var(--on-dark);background:rgba(255,255,255,.04)}
.ck-ok{background:var(--vert);color:#062313;border-color:var(--vert)}
.ck-ok:hover{background:var(--vert-l);border-color:var(--vert-l)}
@media(max-width:640px){
  .ck{left:10px;right:10px;bottom:10px}
  .ck-in{padding:16px 16px;gap:14px}
  .ck-btn{width:100%}
  .ck-b{flex:1 1 0}
}
