/* ==========================================================
   CAVALLIN TRANSPORTS — design system v2
   Nuit / Craie / Bleu Cavallin / Vert Cavallin
   ========================================================== */
:root{
  --nuit:#0F1E2E;
  --nuit-2:#152A3F;
  --ardoise:#1F2A36;
  --gris:#5F6B78;
  --gris-clair:#9AA7B4;
  --craie:#F3F6F8;
  --ligne:#E3E9EE;
  --papier:#FFFFFF;
  --bleu:#14ABE0;
  --bleu-fonce:#0A6E9A;
  --bleu-pale:#E4F5FC;
  --vert:#2E9E44;
  --vert-fonce:#1F6E30;
  --vert-pale:#E6F4E9;
  --radius:16px;
  --shadow:0 12px 32px -12px rgba(15,30,46,.18);
  --wrap:1180px;

  /* compat aliases used by older markup */
  --asphalte:var(--nuit);
  --asphalte-2:var(--nuit-2);
  --bleu-dark:var(--bleu-fonce);
  --vert-clair:var(--vert-pale);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Manrope',system-ui,sans-serif;
  color:var(--ardoise);background:var(--papier);
  line-height:1.65;font-size:17px;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Sora',system-ui,sans-serif;
  font-weight:700;letter-spacing:-0.02em;line-height:1.08;color:var(--nuit);
}
h2{font-size:clamp(1.9rem,3.2vw,2.7rem)}
h3{font-size:1.25rem;font-weight:600;letter-spacing:-0.01em}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
p{max-width:66ch}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--bleu);outline-offset:3px;border-radius:6px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 28px;border-radius:999px;font-weight:700;font-size:.98rem;
  font-family:'Sora',sans-serif;letter-spacing:-0.01em;
  transition:transform .18s ease,background .2s ease,box-shadow .2s ease;
}
.btn-primary{background:var(--bleu);color:var(--nuit);box-shadow:0 10px 24px -10px rgba(20,171,224,.7)}
.btn-primary:hover{background:#39BCE8;transform:translateY(-2px)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.35);color:#fff}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.btn-dark{background:var(--nuit);color:#fff}
.btn-dark:hover{background:var(--nuit-2);transform:translateY(-2px)}
.btn-outline{border:1.5px solid var(--ligne);color:var(--nuit)}
.btn-outline:hover{border-color:var(--nuit)}
.btn-client{
  background:var(--bleu);color:var(--nuit)!important;padding:10px 18px;
  border-radius:999px;font-weight:700;font-size:.88rem!important;font-family:'Sora',sans-serif;
}
.btn-client::after{display:none}
.btn-client:hover{background:#39BCE8}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:60;
  background:rgba(15,30,46,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.07);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:84px;gap:20px}
.brand{display:flex;align-items:center;flex-shrink:0}
.brand img{height:52px;width:auto}
nav.links{display:flex;align-items:center;gap:26px}
nav.links a{color:rgba(255,255,255,.82);font-size:.95rem;font-weight:600;position:relative;padding:8px 0;transition:color .2s;white-space:nowrap}
nav.links a:hover{color:#fff}
nav.links a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;border-radius:2px;background:var(--bleu);transform:scaleX(0);transform-origin:left;transition:transform .25s}
nav.links a:hover::after,nav.links a.active::after{transform:scaleX(1)}
nav.links a.active{color:#fff}
.menu-btn{display:none;background:none;border:0;color:#fff;cursor:pointer;width:44px;height:44px;border-radius:12px}
.menu-btn:hover{background:rgba(255,255,255,.08)}
.menu-btn svg{width:26px;height:26px;margin:0 auto}
.lang-switch{display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;color:var(--gris-clair)}
.lang-switch a,.lang-switch span{padding:3px 4px;border-radius:6px}
.lang-switch a:hover{color:#fff}
.lang-switch .current{color:var(--nuit);background:var(--bleu)}
.lang-switch .sep{color:rgba(255,255,255,.15);font-weight:400}

/* ---------- Hero (accueil) ---------- */
.hero{
  position:relative;overflow:hidden;color:#fff;
  background:radial-gradient(1200px 600px at 80% -10%,rgba(20,171,224,.28),transparent 60%),
             radial-gradient(900px 500px at -10% 110%,rgba(46,158,68,.22),transparent 60%),
             var(--nuit);
  padding:96px 0 0;
}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center;padding-bottom:64px;position:relative;z-index:1}
.hero h1{font-size:clamp(2.3rem,4.1vw,3.5rem);color:#fff;margin-bottom:22px;max-width:16ch}
.hero .lead{font-size:1.15rem;color:rgba(255,255,255,.78);max-width:52ch;margin-bottom:34px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}
.trust{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:40px;padding-top:26px;border-top:1px solid rgba(255,255,255,.12)}
.trust span{font-size:.9rem;color:rgba(255,255,255,.72);display:flex;align-items:center;gap:8px}
.trust span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--bleu)}
.trust span.green::before{background:var(--vert)}
.tag-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.tag{display:inline-block;font-size:.85rem;font-weight:700;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:7px 14px}

/* map */
.map-card{position:relative}
.map-card svg{width:100%;height:auto;filter:drop-shadow(0 30px 40px rgba(0,0,0,.35))}
.map-land{fill:#1B3550;stroke:rgba(255,255,255,.14);stroke-width:1.2;stroke-linejoin:round}
.dept{fill:rgba(46,158,68,.38);stroke:#5FD07A;stroke-width:1.4;stroke-dasharray:5 4}
.dept-label{font-family:'Sora',sans-serif;font-weight:700;font-size:13px;fill:#fff}
.route{fill:none;stroke:var(--bleu);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1200;stroke-dashoffset:1200;animation:draw 2.6s .3s ease-out forwards}
.route-secondary{fill:none;stroke:rgba(255,255,255,.28);stroke-width:1.5;stroke-dasharray:4 6}
@keyframes draw{to{stroke-dashoffset:0}}
.truck{fill:#fff;offset-path:path('M 150 140 L 250 345 L 372 365 L 566 470');offset-rotate:0deg;
  animation:ride 7s 2.9s linear infinite}
@keyframes ride{from{offset-distance:0%}to{offset-distance:100%}}
.city{fill:#fff}
.city.hub{fill:var(--bleu)}
.city-label{font-family:'Manrope',sans-serif;font-size:12.5px;font-weight:600;fill:rgba(255,255,255,.85)}
.dept-code{font-family:'Manrope',sans-serif;font-size:10.5px;font-weight:600;fill:rgba(255,255,255,.5)}
.map-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;font-size:.85rem;color:rgba(255,255,255,.7)}
.map-legend span{display:flex;align-items:center;gap:8px}
.map-legend i{width:14px;height:4px;border-radius:2px;background:var(--bleu);display:inline-block}
.map-legend i.g{background:#5FD07A;height:12px;width:12px;border-radius:3px}

/* ---------- Marquee ---------- */
.marquee{background:var(--nuit-2);color:rgba(255,255,255,.75);overflow:hidden;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}
.marquee-track{display:flex;gap:56px;padding:16px 0;white-space:nowrap;width:max-content;animation:scroll 48s linear infinite;font-family:'Sora',sans-serif;font-weight:600;font-size:.95rem}
.marquee-track span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--bleu);margin-right:14px;vertical-align:middle}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- Page hero (sous-pages) ---------- */
.page-hero{
  position:relative;color:#fff;padding:80px 0 72px;overflow:hidden;
  background:radial-gradient(900px 400px at 90% 0%,rgba(20,171,224,.25),transparent 60%),var(--nuit);
}
.page-hero .wrap{position:relative;z-index:1}
.page-hero .eyebrow{display:inline-block;color:var(--bleu);font-weight:700;font-size:.9rem;margin-bottom:14px}
.page-hero h1{font-size:clamp(2.2rem,4.4vw,3.4rem);color:#fff;max-width:18ch}
.page-hero p{color:rgba(255,255,255,.75);max-width:60ch;margin-top:18px;font-size:1.08rem}

/* ---------- Stats ---------- */
.stats{background:var(--papier);position:relative;z-index:2}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;transform:translateY(-36px)}
.stat{background:#fff;border:1px solid var(--ligne);border-radius:var(--radius);padding:26px 26px 22px;box-shadow:var(--shadow)}
.stat .num{font-family:'Sora',sans-serif;font-weight:800;font-size:2.2rem;color:var(--nuit);letter-spacing:-0.03em;line-height:1}
.stat .num small{font-size:1rem;color:var(--bleu-fonce);margin-left:6px;font-weight:700}
.stat .lbl{font-size:.92rem;color:var(--gris);margin-top:8px}
.stat.green .num{color:var(--vert-fonce)}

/* ---------- Sections ---------- */
section{padding:96px 0}
section.tight{padding:72px 0}
.section-head{max-width:64ch;margin-bottom:48px}
.section-head h2{margin-bottom:14px}
.section-head p{color:var(--gris);font-size:1.08rem}
.section-title{margin-bottom:16px}
.section-intro{color:var(--gris);font-size:1.06rem;margin-bottom:40px;max-width:66ch}
.craie{background:var(--craie)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.prose p{color:var(--gris);margin-bottom:18px;font-size:1.03rem}
.prose p:last-child{margin-bottom:0}
.prose h3{margin:34px 0 10px;color:var(--nuit)}
.prose h3:first-child{margin-top:0}
.prose ul{color:var(--gris);padding-left:20px;margin-bottom:18px}
.prose li{margin-bottom:6px}
.prose strong{color:var(--ardoise)}

/* ---------- Feature cards (pourquoi) ---------- */
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.feature{background:#fff;border:1px solid var(--ligne);border-radius:var(--radius);padding:30px 28px;transition:transform .2s,box-shadow .2s,border-color .2s}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#CFE9F5}
.feature h3{margin:18px 0 8px}
.feature p{color:var(--gris);font-size:.98rem;margin:0}
.icon-badge{width:56px;height:56px;border-radius:14px;background:var(--bleu-pale);display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.icon-badge svg{width:28px;height:28px;color:var(--bleu-fonce);stroke-width:1.8}
.icon-badge.green{background:var(--vert-pale)}
.icon-badge.green svg{color:var(--vert-fonce)}

/* ---------- Services ---------- */
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.service{background:#fff;border:1px solid var(--ligne);border-radius:var(--radius);padding:28px 26px;transition:transform .2s,box-shadow .2s}
.service:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.service h3{margin:14px 0 8px;font-size:1.15rem}
.service p{color:var(--gris);font-size:.95rem;margin:0}
.service .icon{width:28px;height:28px}
.service .icon-badge{margin-bottom:8px}

/* ---------- FLO block ---------- */
.flo{background:var(--nuit);color:#fff;position:relative;overflow:hidden}
.flo::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 400px at 100% 100%,rgba(46,158,68,.28),transparent 60%)}
.flo .wrap{position:relative;z-index:1}
.flo h2{color:#fff}
.flo .prose p{color:rgba(255,255,255,.78)}
.flo .prose strong{color:#fff}
.flo-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center}
.dept-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.dept-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:26px 24px}
.dept-card .code{font-family:'Sora',sans-serif;font-weight:800;font-size:3.2rem;color:#5FD07A;letter-spacing:-0.04em;line-height:1}
.dept-card .name{font-weight:700;color:#fff;margin-top:8px;font-size:1.05rem}
.dept-card .towns{color:rgba(255,255,255,.65);font-size:.9rem;margin-top:8px;line-height:1.5}
.flo-steps{margin-top:36px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.flo-step{border-top:2px solid rgba(255,255,255,.18);padding-top:16px}
.flo-step b{display:block;color:#fff;font-family:'Sora',sans-serif;font-weight:600;margin-bottom:6px}
.flo-step span{color:rgba(255,255,255,.68);font-size:.93rem}
.badge-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.badge{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:12px 20px;font-weight:700;color:#fff;transition:background .2s}
.badge:hover{background:rgba(255,255,255,.08)}
.badge .dot-sq{width:8px;height:8px;border-radius:50%;background:#5FD07A}
.reseau .badge{color:var(--nuit);border-color:var(--ligne)}
.reseau .badge:hover{background:var(--craie)}
.reseau .badge .dot-sq{background:var(--bleu)}

/* ---------- Zone ---------- */
.zone{background:var(--craie)}
.zone-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.dept-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px;list-style:none;margin-top:8px}
.dept-list li{display:flex;align-items:center;gap:10px;font-size:.95rem;color:var(--ardoise);padding:10px 0;border-bottom:1px solid var(--ligne);white-space:nowrap}
.dept-list b{font-family:'Sora',sans-serif;color:var(--bleu-fonce);min-width:32px}
.dept-list li.ref b{color:var(--vert-fonce)}
.dept-list li.ref::after{content:"référent FLO";margin-left:auto;font-size:.68rem;font-weight:700;color:var(--vert-fonce);background:var(--vert-pale);padding:3px 8px;border-radius:999px;white-space:nowrap}
.city-list{list-style:none}
.city-list li{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--ligne);font-size:1.05rem}
.city-list li:first-child,.city-list li:last-child{color:var(--bleu-fonce);font-weight:700}
.dot{width:8px;height:8px;border-radius:50%;background:var(--gris-clair)}
.city-list li:first-child .dot,.city-list li:last-child .dot{background:var(--bleu)}
.axis-note{margin-top:20px;font-size:.92rem;color:var(--gris)}
.specs{list-style:none;display:flex;flex-direction:column;gap:12px}
.specs li{padding-left:22px;position:relative;color:var(--gris)}
.specs li::before{content:"";position:absolute;left:0;top:11px;width:10px;height:2px;background:var(--bleu)}
.specs strong{color:var(--ardoise)}

/* ---------- Décarbonation ---------- */
.engagement{background:linear-gradient(180deg,var(--vert-pale),#fff);position:relative}
.engagement h2{color:var(--vert-fonce)}
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:8px;position:relative}
.tl-step{background:#fff;border:1px solid #D4EAD9;border-radius:var(--radius);padding:26px 24px;position:relative}
.tl-step .mark{width:34px;height:34px;border-radius:50%;background:var(--vert);color:#fff;font-family:'Sora',sans-serif;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:.9rem;margin-bottom:16px}
.tl-step.future .mark{background:#fff;border:2px solid var(--vert);color:var(--vert-fonce)}
.tl-step h3{font-size:1.1rem;margin-bottom:8px}
.tl-step p{color:var(--gris);font-size:.95rem;margin:0}

/* ---------- Clients ---------- */
.clients-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.client-tag{border:1px solid var(--ligne);border-radius:999px;padding:10px 18px;font-size:.92rem;font-weight:600;color:var(--ardoise);background:#fff}

/* ---------- SEO prose blocks ---------- */
.seo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px}
.seo-card{border-left:3px solid var(--bleu);padding-left:20px}
.seo-card h3{font-size:1.08rem;margin-bottom:8px}
.seo-card p{color:var(--gris);font-size:.95rem;margin:0}

/* ---------- FAQ ---------- */
.faq-list{max-width:860px}
.faq-item{border:1px solid var(--ligne);border-radius:14px;margin-bottom:12px;background:#fff;transition:border-color .2s}
.faq-item[open]{border-color:#CFE9F5;box-shadow:var(--shadow)}
.faq-item summary{list-style:none;cursor:pointer;padding:20px 22px;font-weight:700;font-family:'Sora',sans-serif;font-size:1.02rem;display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--nuit)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .plus{width:30px;height:30px;border-radius:50%;background:var(--bleu-pale);color:var(--bleu-fonce);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.3rem;transition:transform .2s}
.faq-item[open] summary .plus{transform:rotate(45deg)}
.faq-item p{color:var(--gris);padding:0 22px 22px;font-size:.98rem;max-width:75ch}

/* ---------- Quick links (accueil) ---------- */
.quicklinks{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.qlink{background:#fff;border:1px solid var(--ligne);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;gap:8px;transition:transform .2s,box-shadow .2s}
.qlink:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.qlink h3{font-size:1.2rem}
.qlink p{color:var(--gris);font-size:.95rem;margin:0}
.qlink .go{color:var(--bleu-fonce);font-weight:700;font-size:.9rem;margin-top:8px}

/* ---------- CTA band ---------- */
.cta-band{background:var(--nuit);color:#fff;border-radius:24px;padding:56px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;
  background-image:radial-gradient(600px 300px at 90% 50%,rgba(20,171,224,.3),transparent 60%)}
.cta-band h2{color:#fff;margin-bottom:8px;font-size:2rem}
.cta-band p{color:rgba(255,255,255,.75);margin:0}

/* ---------- Groupe ---------- */
.groupe{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}
.groupe .txt{max-width:60ch}
.groupe .txt p{color:var(--gris);margin-bottom:14px}
.groupe .mark-big{font-family:'Sora',sans-serif;font-weight:800;font-size:2.6rem;color:var(--nuit);border:2px solid var(--nuit);border-radius:18px;padding:18px 32px;letter-spacing:-0.03em}

/* ---------- About / facts ---------- */
.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start}
.about-grid p{color:var(--gris);margin-bottom:18px;font-size:1.03rem}
.fact-list{list-style:none;background:var(--craie);border-radius:var(--radius);padding:8px 26px}
.fact-list li{display:flex;gap:16px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--ligne)}
.fact-list li:last-child{border-bottom:none}
.fact-list .fk{font-family:'Sora',sans-serif;font-weight:700;color:var(--bleu-fonce);min-width:96px;font-size:.95rem}
.fact-list .fv{color:var(--ardoise);font-size:.96rem}

/* ---------- Contact ---------- */
.contact{background:var(--nuit);color:#fff}
.contact h2{color:#fff}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.info-list{list-style:none;display:flex;flex-direction:column;gap:20px}
.info-list li{font-size:1.02rem;color:rgba(255,255,255,.88)}
.info-list a{color:var(--bleu);font-weight:700}
.info-list a:hover{text-decoration:underline}
.info-list span.label{display:block;font-size:.8rem;color:rgba(255,255,255,.5);margin-bottom:4px;font-weight:600}
form{display:flex;flex-direction:column;gap:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:28px}
form input,form textarea{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#fff;padding:14px 16px;font-family:inherit;font-size:.98rem;border-radius:12px;width:100%}
form input:focus,form textarea:focus{outline:none;border-color:var(--bleu)}
form label{font-size:.85rem;color:rgba(255,255,255,.65);margin-bottom:6px;display:block;font-weight:600}
form textarea{resize:vertical;min-height:120px}
form button{align-self:flex-start;border:none;cursor:pointer;margin-top:6px}

/* ---------- Footer ---------- */
footer{background:#0B1622;color:var(--gris-clair);padding:56px 0 36px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;font-size:.92rem}
.foot-grid h4{color:#fff;font-size:.95rem;margin-bottom:14px}
.foot-grid ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.foot-grid a:hover{color:#fff}
.foot-brand img{height:30px;width:auto;margin-bottom:16px;opacity:.95}
.foot-brand p{font-size:.9rem;max-width:36ch;line-height:1.6}
.foot-social{display:inline-flex;align-items:center;gap:8px;margin-top:16px;color:var(--gris-clair)}
.foot-social:hover{color:#fff}
.foot-bottom{margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.08);font-size:.82rem;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
/* legacy footer compat */
.foot-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:20px;font-size:.85rem}
.foot-row .foot-brand{display:flex;align-items:center;gap:14px}
.foot-row .foot-brand img{margin:0;height:26px}
.foot-links{display:flex;gap:16px;flex-wrap:wrap}
.foot-legal{max-width:44ch;line-height:1.6}
.foot-legal strong{color:#fff}
.social{color:var(--gris-clair)}.social:hover{color:#fff}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .hero h1{max-width:100%}
  .features,.seo-grid,.quicklinks{grid-template-columns:1fr 1fr}
  .services{grid-template-columns:1fr 1fr}
  .timeline{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .flo-grid,.two-col,.zone-grid,.about-grid,.contact-grid{grid-template-columns:1fr;gap:40px}
  .stats .wrap{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  nav.links{
    position:fixed;top:84px;left:0;right:0;background:var(--nuit);
    flex-direction:column;align-items:stretch;padding:14px 24px 26px;gap:2px;
    transform:translateY(-130%);transition:transform .28s ease;
    border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 30px 40px rgba(0,0,0,.35);
  }
  nav.links.open{transform:translateY(0)}
  nav.links a{padding:14px 0;font-size:1.05rem;border-bottom:1px solid rgba(255,255,255,.06)}
  nav.links a::after{display:none}
  .btn-client{margin-top:14px;text-align:center;justify-content:center;display:flex;border-bottom:none!important}
  .lang-switch{margin-top:16px;justify-content:flex-start}
  .menu-btn{display:block}
  .hero{padding-top:56px}
  section{padding:72px 0}
  .stats .wrap{transform:translateY(-24px)}
  .cta-band{padding:36px 28px}
  .flo-steps{grid-template-columns:1fr}
}
@media (max-width:600px){
  .features,.seo-grid,.quicklinks,.services,.timeline,.dept-cards,.foot-grid,.dept-list{grid-template-columns:1fr}
  .stats .wrap{grid-template-columns:1fr 1fr;gap:12px}
  .stat{padding:18px}
  .stat .num{font-size:1.7rem}
  .hero h1{font-size:2.3rem}
  .cta-row .btn{width:100%;justify-content:center}
}

/* ---------- DTS logo / form extras ---------- */
.dts-logo{display:inline-block;background:#fff;border:1px solid var(--ligne);border-radius:var(--radius);padding:22px 30px;box-shadow:var(--shadow)}
.dts-logo img{height:120px;width:auto}
.foot-dts img{height:44px;width:auto;margin-top:10px;opacity:.9}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.merci-box{max-width:640px;margin:0 auto;text-align:center;padding:40px 0}
.merci-box .icon-badge{margin:0 auto 22px;width:72px;height:72px;border-radius:50%}
.merci-box .icon-badge svg{width:34px;height:34px}
.merci-box p{margin:14px auto 28px;color:var(--gris)}

/* ==========================================================
   Thème clair — version lumineuse
   ========================================================== */
header{background:rgba(255,255,255,.92);border-bottom:1px solid var(--ligne)}
nav.links a{color:var(--ardoise)}
nav.links a:hover,nav.links a.active{color:var(--nuit)}
.menu-btn{color:var(--nuit)}
.menu-btn:hover{background:rgba(15,30,46,.06)}
.lang-switch{color:var(--gris)}
.lang-switch a:hover{color:var(--nuit)}
.lang-switch .sep{color:var(--ligne)}

.hero{
  color:var(--ardoise);
  background:radial-gradient(1100px 560px at 85% -10%,rgba(20,171,224,.18),transparent 60%),
             radial-gradient(900px 500px at -5% 105%,rgba(46,158,68,.14),transparent 60%),
             linear-gradient(180deg,#FFFFFF,var(--craie));
}
.hero h1{color:var(--nuit)}
.hero .lead{color:var(--gris)}
.btn-ghost{border-color:rgba(15,30,46,.25);color:var(--nuit)}
.btn-ghost:hover{border-color:var(--nuit);background:rgba(15,30,46,.04)}
.trust{border-top-color:var(--ligne)}
.trust span{color:var(--gris)}
.tag{color:var(--nuit);background:#fff;border-color:var(--ligne)}

.map-card svg{filter:drop-shadow(0 24px 34px rgba(15,30,46,.16))}
.map-land{fill:#DCEBF5;stroke:rgba(15,30,46,.18)}
.dept{fill:rgba(46,158,68,.28);stroke:var(--vert)}
.dept-label{fill:var(--vert-fonce)}
.route-secondary{stroke:rgba(15,30,46,.3)}
.truck{fill:var(--nuit)}
.city{fill:var(--nuit)}
.city.hub{fill:var(--bleu)}
.city-label{fill:var(--ardoise)}
.map-legend{color:var(--gris)}
.map-legend i.g{background:var(--vert)}

.marquee{background:var(--bleu-pale);color:var(--bleu-fonce);border-color:#CFE9F5}

.page-hero{
  color:var(--ardoise);
  background:radial-gradient(900px 400px at 90% 0%,rgba(20,171,224,.18),transparent 60%),linear-gradient(180deg,#FFFFFF,var(--craie));
}
.page-hero .eyebrow{color:var(--bleu-fonce)}
.page-hero h1{color:var(--nuit)}
.page-hero p{color:var(--gris)}

.flo{background:linear-gradient(180deg,var(--bleu-pale),#F6FBFD);color:var(--ardoise)}
.flo::before{background:radial-gradient(700px 400px at 100% 100%,rgba(46,158,68,.14),transparent 60%)}
.flo h2{color:var(--nuit)}
.flo .prose p{color:var(--gris)}
.flo .prose strong{color:var(--nuit)}
.dept-card{background:#fff;border-color:var(--ligne);box-shadow:var(--shadow)}
.dept-card .code{color:var(--vert)}
.dept-card .name{color:var(--nuit)}
.dept-card .towns{color:var(--gris)}
.flo-step{border-top-color:rgba(15,30,46,.15)}
.flo-step b{color:var(--nuit)}
.flo-step span{color:var(--gris)}
.badge{border-color:var(--ligne);color:var(--nuit);background:#fff}
.badge:hover{background:var(--craie)}
.badge .dot-sq{background:var(--vert)}

.cta-band{background:linear-gradient(135deg,var(--bleu),#63CDF0);color:var(--nuit)}
.cta-band h2{color:var(--nuit)}
.cta-band p{color:rgba(15,30,46,.75)}
.cta-band .btn-primary{background:var(--nuit);color:#fff;box-shadow:none}
.cta-band .btn-primary:hover{background:var(--nuit-2)}
.cta-band .btn-ghost{border-color:rgba(15,30,46,.35);color:var(--nuit)}

.contact{background:var(--craie);color:var(--ardoise)}
.contact h2{color:var(--nuit)}
.info-list li{color:var(--ardoise)}
.info-list a{color:var(--bleu-fonce)}
.info-list span.label{color:var(--gris)}
form{background:#fff;border-color:var(--ligne);box-shadow:var(--shadow)}
form input,form textarea{background:#fff;border-color:var(--ligne);color:var(--ardoise)}
form label{color:var(--gris)}
#erreur{color:#B3261E!important}

footer{background:#EEF3F6;color:var(--gris)}
.foot-grid h4{color:var(--nuit)}
.foot-grid a:hover{color:var(--nuit)}
.foot-social:hover{color:var(--nuit)}
.foot-bottom{border-top-color:var(--ligne)}
.foot-legal strong{color:var(--nuit)}

@media (max-width:900px){
  nav.links{background:#fff;border-bottom:1px solid var(--ligne);box-shadow:0 30px 40px rgba(15,30,46,.12)}
  nav.links a{border-bottom:1px solid var(--ligne)}
}

/* ---------- Flotte ---------- */
.fleet{background:#fff}
.fleet-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.veh-card{background:#fff;border:1px solid var(--ligne);border-radius:var(--radius);padding:28px}
.fleet{background:var(--craie)}
.veh-card .veh{width:100%;height:auto;margin-bottom:18px}
.veh-card h3{margin-bottom:8px}
.veh-card p{color:var(--gris);font-size:.95rem;margin:0}
@media (max-width:760px){.fleet-grid{grid-template-columns:1fr}}

.veh-card h3{font-size:1.3rem;margin-bottom:16px;padding-bottom:14px;border-bottom:2px solid var(--bleu)}
.spec-table{display:flex;flex-direction:column}
.spec-row{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:11px 0;border-bottom:1px solid var(--ligne);font-size:.95rem}
.spec-row:last-child{border-bottom:none}
.spec-row span{color:var(--gris)}
.spec-row strong{color:var(--nuit);font-weight:600}
@media (max-width:480px){.spec-row{grid-template-columns:1fr;gap:2px}}

.fact-list li{align-items:flex-start;gap:18px}
.fact-list .fk{flex:0 0 132px;min-width:132px;padding-top:2px}
@media (max-width:520px){.fact-list li{flex-direction:column;gap:4px}.fact-list .fk{flex:none;min-width:0}}
