/* Déneige Go : feuille de style commune (tokens du design system) */
:root{
  --surface:#f5f8fa; --surface-raised:#ffffff; --surface-sunken:#e9eff4;
  --ink:#14202b; --ink-muted:#4c5d6b;
  --border:#d3dde6; --border-strong:#a7b7c5;
  --primary:#12507f; --primary-hover:#0e3f65; --primary-subtle:#e3f0f9; --primary-on:#ffffff;
  --accent:#e8641c; --accent-hover:#c64e12; --accent-on:#17110a;
  --focus:#1e7bc0;
  --success:#1e7a40; --success-subtle:#e1f2e7; --success-on:#ffffff;
  --warning:#9a5b00; --warning-subtle:#fbefd6;
  --shadow-sm:0 1px 2px rgba(15,42,68,.10); --shadow-md:0 4px 12px rgba(15,42,68,.14); --shadow-lg:0 12px 32px rgba(15,42,68,.20);
  --font-display:"Barlow Condensed","Arial Narrow",sans-serif;
  --font-sans:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r-sm:4px; --r-md:8px; --r-lg:14px;
  --gutter:72px;
  /* Bandes Nuit : toujours foncées */
  --n-surface:#0c1826; --n-raised:#15263a; --n-sunken:#0a1420; --n-border:#2a3f54; --n-border-strong:#5a7690;
  --n-ink:#edf3f8; --n-muted:#a7bbcc; --n-primary:#4fa3dd; --n-accent:#ff7a3d; --n-accent-hover:#ff9260;
}
@media (prefers-color-scheme:dark){
  :root{
    --surface:#0c1826; --surface-raised:#15263a; --surface-sunken:#0a1420;
    --ink:#edf3f8; --ink-muted:#a7bbcc;
    --border:#2a3f54; --border-strong:#5a7690;
    --primary:#4fa3dd; --primary-hover:#6fb6e4; --primary-subtle:#10314a; --primary-on:#06202f;
    --accent:#ff7a3d; --accent-hover:#ff9260; --accent-on:#1a0f06;
    --focus:#6fb6e4;
    --success:#54c07c; --success-subtle:#123024; --success-on:#06210f;
    --warning:#f5b23d; --warning-subtle:#3a2c10;
    --n-surface:#070f19; --n-raised:#12223a;
  }
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--font-sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto}
a{color:var(--primary);text-underline-offset:3px}
a:hover{color:var(--primary-hover)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:var(--r-sm)}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;margin:0;line-height:1.02;text-wrap:balance}
h2{font-size:clamp(38px,5.4vw,64px);letter-spacing:-.6px}
h3{font-size:26px;font-weight:600;line-height:1.12}
p{margin:0}
p + p{margin-top:16px}
.lead{font-size:19px;line-height:30px;color:var(--ink-muted);max-width:56ch}
.muted{color:var(--ink-muted)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Boutons */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-sans);font-weight:700;font-size:17px;text-decoration:none;padding:14px 22px;border-radius:var(--r-md);border:2px solid transparent;cursor:pointer;line-height:1.2;transition:background .15s,transform .15s}
.btn:active{transform:translateY(1px)}
.btn svg{width:18px;height:18px;flex:none}
.btn-accent{background:var(--accent);color:var(--accent-on)}
.btn-accent:hover{background:var(--accent-hover);color:var(--accent-on)}
.btn-line{background:transparent;color:inherit;border-color:currentColor}
.btn-line:hover{color:inherit;background:rgba(127,160,190,.12)}

/* Bande Nuit */
.nuit{background:var(--n-surface);color:var(--n-ink)}
.nuit .lead,.nuit .muted{color:var(--n-muted)}
.nuit a:not(.btn){color:var(--n-ink)}
.nuit .btn-accent{background:var(--n-accent);color:#1a0f06}
.nuit .btn-accent:hover{background:var(--n-accent-hover)}

/* En-tête */
.site-head{position:sticky;top:0;z-index:20;background:var(--n-surface);border-bottom:1px solid var(--n-border)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:70px}
.site-head .logo img{height:34px;width:auto;display:block}
.site-head nav{display:flex;align-items:center;gap:28px}
.site-head nav a:not(.btn){text-decoration:none;font-weight:600;font-size:15px;color:var(--n-muted)}
.site-head nav a:not(.btn):hover{color:var(--n-ink)}
.site-head .btn{padding:9px 16px;font-size:15px;border-color:var(--n-primary);color:var(--n-ink)}

/* Surtitre = panneau d'arrêt de la run */
.arret{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;padding:5px 12px 5px 10px;border-radius:999px;background:var(--surface-sunken);color:var(--ink-muted);border:1px solid var(--border);margin-bottom:20px;transition:background .3s,color .3s,border-color .3s}
.arret i{width:8px;height:8px;border-radius:50%;background:var(--border-strong);transition:background .3s}
.arret .etat{display:none}
.arret.fait{background:var(--success-subtle);color:var(--ink);border-color:transparent}
.arret.fait i{background:var(--success)}
.arret.fait .etat{display:inline}
.arret.fait .etat::before{content:"· "}
.nuit .arret{background:var(--n-raised);border-color:var(--n-border);color:var(--n-muted)}

/* Parcours : la route qui se trace au scroll */
.parcours{position:relative}
.parcours > section > .wrap{padding-left:calc(24px + var(--gutter))}
.run{position:absolute;top:0;left:max(8px,calc((100% - 1180px) / 2 + 12px));width:var(--gutter);height:100%;pointer-events:none;z-index:2}
.run svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#run-todo{stroke:var(--border-strong);stroke-width:3;stroke-dasharray:2 9;stroke-linecap:round;fill:none}
#run-done{stroke:var(--success);stroke-width:5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.run .stop{fill:var(--surface);stroke:var(--border-strong);stroke-width:3;transition:fill .3s,stroke .3s}
.run .stop.fait{fill:var(--success);stroke:var(--success)}
#run-truck rect{fill:var(--accent)}
#run-truck .halo{fill:var(--accent);opacity:.25;animation:halo 1.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes halo{50%{transform:scale(1.35);opacity:.1}}

/* Sections */
section{padding:104px 0}
.band{background:var(--surface-raised);border-block:1px solid var(--border)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split.top{align-items:start}
.prose{max-width:62ch}
.prose h3{margin:32px 0 10px}
.prose h2 + .lead,.prose h2 + p{margin-top:18px}
.prose ul{padding-left:20px;margin:16px 0 0}
.prose li + li{margin-top:8px}
.photo{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);background:var(--n-raised)}
.photo img{display:block;width:100%}
.legende{margin-top:10px;font-size:13px;color:var(--ink-muted)}

/* Bande de signalisation (chevrons qui défilent) */
.signal{background:var(--accent);color:var(--accent-on);overflow:hidden;border-block:3px solid var(--ink)}
.signal .rail{display:flex;width:max-content;animation:defile 28s linear infinite}
.signal span{display:inline-flex;align-items:center;gap:18px;padding:14px 18px;font-family:var(--font-display);font-weight:700;font-size:26px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.signal svg{width:34px;height:20px}
@keyframes defile{to{transform:translateX(-50%)}}

/* Apparition au scroll */
.monte{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.monte.vu{opacity:1;transform:none}

/* Pied de page */
footer{background:var(--n-surface);color:var(--n-muted);border-top:1px solid var(--n-border);padding:56px 0 32px;font-size:15px}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
footer img{height:30px;width:auto;display:block;margin-bottom:16px}
footer h4{font-size:18px;color:var(--n-ink);margin-bottom:12px}
footer ul{list-style:none;padding:0;margin:0}
footer li + li{margin-top:6px}
footer a{color:var(--n-ink);text-decoration:none}
footer a:hover{text-decoration:underline}
footer .bas{margin-top:40px;padding-top:20px;border-top:1px solid var(--n-border);font-size:13px}

@media (max-width:960px){
  :root{--gutter:34px}
  .split{grid-template-columns:1fr;gap:40px}
  footer .cols{grid-template-columns:1fr}
  section{padding:72px 0}
  .parcours > section > .wrap{padding-left:calc(16px + var(--gutter))}
  .run{left:4px}
}
@media (max-width:520px){ .site-head .logo img{height:28px} .site-head .btn{padding:8px 12px;font-size:14px} }
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .signal .rail{animation:none}
  .monte{opacity:1;transform:none;transition:none}
}

/* ================= Accueil et sections partagées ================= */
  /* ---------- Hero ---------- */
  .hero{position:relative;padding:72px 0 96px;overflow:hidden}
  .hero::before{content:"";position:absolute;inset:0;background:
      linear-gradient(90deg,var(--n-surface) 30%,rgba(12,24,38,.55) 75%,rgba(12,24,38,.35)),
      url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%27480%27%20height%3D%27480%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%231c3552%27%20stroke-linecap%3D%27square%27%3E%3Cpath%20d%3D%27M0%2070H480%27%20stroke-width%3D%2712%27/%3E%3Cpath%20d%3D%27M0%20250H480%27%20stroke-width%3D%277%27/%3E%3Cpath%20d%3D%27M0%20395H480%27%20stroke-width%3D%2716%27/%3E%3Cpath%20d%3D%27M110%200V480%27%20stroke-width%3D%279%27/%3E%3Cpath%20d%3D%27M290%200V480%27%20stroke-width%3D%2714%27/%3E%3Cpath%20d%3D%27M430%200V480%27%20stroke-width%3D%276%27/%3E%3Cpath%20d%3D%27M290%20250L480%20120%27%20stroke-width%3D%276%27/%3E%3C/g%3E%3Cg%20fill%3D%27%23172b44%27%3E%3Crect%20x%3D%27130%27%20y%3D%2790%27%20width%3D%27140%27%20height%3D%27140%27%20rx%3D%276%27/%3E%3Crect%20x%3D%27310%27%20y%3D%27270%27%20width%3D%27100%27%20height%3D%27105%27%20rx%3D%276%27/%3E%3Crect%20x%3D%2710%27%20y%3D%27270%27%20width%3D%2780%27%20height%3D%27105%27%20rx%3D%276%27/%3E%3C/g%3E%3C/svg%3E");background-size:auto,480px 480px;animation:rues 90s linear infinite}
  @keyframes rues{to{background-position:0 0,-480px 480px}}
  .hero .wrap{position:relative;display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center}
  .hero h1{font-size:clamp(52px,8.4vw,104px);line-height:.94;letter-spacing:-1px;max-width:11ch}
  .hero h1 .kicker{display:block;font-family:var(--font-sans);font-size:13px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--n-primary);margin-bottom:18px;line-height:1.4}
  .hero h1 em{font-style:normal;color:var(--n-primary)}
  .hero .lead{margin-top:24px;font-size:20px;line-height:31px}
  .hero .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
  .hero .preuves{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:28px;padding:0;list-style:none;font-size:15px;color:var(--n-muted)}
  .hero .preuves li{display:flex;align-items:center;gap:8px}
  .hero .preuves li::before{content:"";width:12px;height:7px;border-left:2.5px solid #54c07c;border-bottom:2.5px solid #54c07c;transform:rotate(-45deg) translateY(-2px)}

  .phone{justify-self:center;width:min(300px,100%);background:#060d16;border-radius:40px;padding:11px;box-shadow:0 40px 80px rgba(0,0,0,.6);border:1px solid var(--n-border);transform:rotate(2deg)}
  .screen{position:relative;border-radius:30px;overflow:hidden;aspect-ratio:9/17;background:#e6ecf1}
  .screen svg{display:block;width:100%;height:100%}
  .notif{position:absolute;left:10px;right:10px;top:12px;background:#fff;color:#14202b;border-radius:12px;padding:10px 12px;font-size:13.5px;line-height:1.35;box-shadow:0 6px 18px rgba(15,42,68,.25);display:grid;grid-template-columns:28px 1fr;gap:10px}
  .notif img{width:28px;height:28px;border-radius:7px}
  .notif b{display:block;font-size:14px}
  .notif span{color:#12507f;font-weight:600}
  .pill{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-weight:700;font-size:15px;padding:8px 16px;border-radius:999px;background:#fbefd6;color:#17110a;box-shadow:0 4px 12px rgba(15,42,68,.2)}
  .pill i{width:9px;height:9px;border-radius:50%;background:#9a5b00}
  .pill.done{background:#e1f2e7}.pill.done i{background:#1e7a40}

  /* ---------- Appels ---------- */
  .appels blockquote{margin:0;font-family:var(--font-display);font-weight:700;font-size:clamp(34px,4.4vw,56px);line-height:1.02;letter-spacing:-.4px}
  .appels blockquote span{display:block;color:var(--border-strong)}
  .appels blockquote span:nth-child(1){color:var(--ink)}
  .appels blockquote span:nth-child(2){color:var(--ink-muted)}
  .chiffre{display:flex;align-items:baseline;gap:14px;margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}
  .chiffre b{font-family:var(--font-display);font-size:64px;line-height:1;color:var(--primary)}

  /* ---------- Étapes ---------- */
  .etapes ol{list-style:none;margin:56px 0 0;padding:0;counter-reset:e}
  .etapes li{counter-increment:e;display:grid;grid-template-columns:120px 1fr 1fr;gap:32px;padding:32px 0;border-top:1px solid var(--border);align-items:start}
  .etapes li:last-child{border-bottom:1px solid var(--border)}
  .etapes li::before{content:"0" counter(e);font-family:var(--font-display);font-weight:700;font-size:72px;line-height:.85;color:var(--primary)}
  .etapes li h3{font-size:32px}
  .etapes li p{color:var(--ink-muted)}

  /* ---------- Alerte 10 min ---------- */
  .calcul{margin-top:32px;background:var(--n-surface);color:var(--n-ink);border-radius:var(--r-lg);padding:32px;font-family:var(--font-display);display:flex;flex-wrap:wrap;gap:16px 22px;align-items:center}
  .calcul div{font-size:18px;font-weight:600;color:var(--n-muted);white-space:nowrap}
  .calcul b{display:block;font-size:48px;line-height:1;color:var(--n-ink)}
  .calcul .op{font-size:40px;color:var(--n-primary)}
  .calcul .res b{color:#f5b23d}

  /* ---------- Captures ---------- */
  .capture-tel{max-width:330px;margin:0 auto;border-radius:36px;padding:10px;background:#060d16;box-shadow:var(--shadow-lg)}
  .capture-tel img{border-radius:28px;display:block}

  /* ---------- Pour qui ---------- */
  .qui{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:48px;border-top:3px solid var(--ink)}
  .qui > div{padding:28px 32px 28px 0;border-bottom:1px solid var(--border)}
  .qui > div:nth-child(odd){border-right:1px solid var(--border)}
  .qui > div:nth-child(even){padding-left:32px}
  .qui h3{margin-bottom:8px}
  .qui p{color:var(--ink-muted)}

  /* ---------- Estrie ---------- */
  .villes{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;padding:0;list-style:none}
  .villes li{padding:6px 14px;border-radius:999px;border:1px solid var(--n-border);font-weight:600;font-size:15px;color:var(--n-ink)}

  /* ---------- Prix ---------- */
  .tarifs{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px}
  .tarif{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow-sm)}
  .tarif.vedette{border:2px solid var(--primary)}
  .montant{font-family:var(--font-display);font-weight:700;font-size:72px;line-height:1;margin:14px 0 4px}
  .montant small{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--ink-muted);margin-left:6px}
  .tarif ul{list-style:none;padding:0;margin:20px 0 0}
  .tarif li{padding:9px 0 9px 28px;border-top:1px solid var(--border);position:relative}
  .tarif li::before{content:"";position:absolute;left:3px;top:16px;width:11px;height:6px;border-left:2.5px solid var(--success);border-bottom:2.5px solid var(--success);transform:rotate(-45deg)}
  .prix-bas{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:32px}

  /* ---------- FAQ ---------- */
  .faq details{border-bottom:1px solid var(--border);max-width:820px}
  .faq details:first-of-type{margin-top:40px;border-top:3px solid var(--ink)}
  .faq summary{cursor:pointer;list-style:none;padding:22px 48px 22px 0;font-family:var(--font-display);font-weight:600;font-size:24px;position:relative}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{content:"";position:absolute;right:10px;top:50%;width:12px;height:12px;border-right:3px solid var(--primary);border-bottom:3px solid var(--primary);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
  .faq details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
  .faq details p{padding:0 0 22px;color:var(--ink-muted);max-width:66ch}

  /* ---------- Démo ---------- */
  .demo form{background:var(--n-raised);border:1px solid var(--n-border);border-radius:var(--r-lg);padding:28px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .demo label{display:block;font-size:13px;font-weight:600;letter-spacing:.3px;margin-bottom:6px}
  .demo input,.demo select,.demo textarea{width:100%;font:inherit;font-size:16px;color:var(--n-ink);background:var(--n-sunken);border:1px solid var(--n-border-strong);border-radius:var(--r-sm);padding:12px}
  .demo textarea{min-height:96px;resize:vertical}
  .demo .full{grid-column:1/-1}
  .demo .hp{position:absolute;left:-9999px}
  .demo .btn{width:100%;justify-content:center}
  .demo .small{font-size:14px;color:var(--n-muted)}
  .merci{display:none;grid-column:1/-1;background:#123024;border:1px solid #54c07c;border-radius:var(--r-md);padding:14px 16px;font-weight:600}
  .merci.on{display:block}
  .demo .liste{list-style:none;padding:0;margin:28px 0 0}
  .demo .liste li{padding:12px 0 12px 30px;border-top:1px solid var(--n-border);position:relative;color:var(--n-muted)}
  .demo .liste li b{color:var(--n-ink)}
  .demo .liste li::before{content:"";position:absolute;left:2px;top:20px;width:9px;height:9px;border-top:3px solid var(--n-primary);border-right:3px solid var(--n-primary);transform:rotate(45deg)}

  @media (max-width:960px){
    .hero .wrap{grid-template-columns:1fr}
    .hero::before{background:linear-gradient(180deg,rgba(12,24,38,.7),var(--n-surface) 75%),url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%27480%27%20height%3D%27480%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%231c3552%27%20stroke-linecap%3D%27square%27%3E%3Cpath%20d%3D%27M0%2070H480%27%20stroke-width%3D%2712%27/%3E%3Cpath%20d%3D%27M0%20250H480%27%20stroke-width%3D%277%27/%3E%3Cpath%20d%3D%27M0%20395H480%27%20stroke-width%3D%2716%27/%3E%3Cpath%20d%3D%27M110%200V480%27%20stroke-width%3D%279%27/%3E%3Cpath%20d%3D%27M290%200V480%27%20stroke-width%3D%2714%27/%3E%3Cpath%20d%3D%27M430%200V480%27%20stroke-width%3D%276%27/%3E%3Cpath%20d%3D%27M290%20250L480%20120%27%20stroke-width%3D%276%27/%3E%3C/g%3E%3Cg%20fill%3D%27%23172b44%27%3E%3Crect%20x%3D%27130%27%20y%3D%2790%27%20width%3D%27140%27%20height%3D%27140%27%20rx%3D%276%27/%3E%3Crect%20x%3D%27310%27%20y%3D%27270%27%20width%3D%27100%27%20height%3D%27105%27%20rx%3D%276%27/%3E%3Crect%20x%3D%2710%27%20y%3D%27270%27%20width%3D%2780%27%20height%3D%27105%27%20rx%3D%276%27/%3E%3C/g%3E%3C/svg%3E");background-size:auto,480px 480px}
    .phone{transform:none}
    .etapes li{grid-template-columns:1fr;gap:10px}
    .etapes li::before{font-size:56px}
    .qui,.tarifs{grid-template-columns:1fr}
    .qui > div,.qui > div:nth-child(even){padding:24px 0;border-right:0}
  }
  @media (max-width:520px){ .demo form{grid-template-columns:1fr} }

/* Hero des pages intérieures */
.page-hero{padding:80px 0 72px;border-bottom:1px solid var(--n-border)}
.page-hero h1{font-size:clamp(46px,7vw,84px);line-height:.96;letter-spacing:-.8px;max-width:16ch}
.page-hero .kicker{display:block;font-family:var(--font-sans);font-size:13px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--n-primary);margin-bottom:18px}
.page-hero .lead{margin-top:22px}
.fil{font-size:14px;color:var(--n-muted);margin-bottom:28px}
.fil a{color:var(--n-muted)}
.chantier{padding:96px 0}
.site-head nav a[aria-current="page"]{color:var(--n-ink);text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:3px;text-decoration-color:var(--n-primary)}

/* ================= Fonctionnalités ================= */
.sommaire{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px;padding:0;list-style:none}
.sommaire a{display:inline-block;padding:7px 14px;border-radius:999px;border:1px solid var(--n-border);color:var(--n-ink);text-decoration:none;font-weight:600;font-size:15px}
.sommaire a:hover{border-color:var(--n-primary)}

/* Onglets des trois écrans */
.onglets{display:flex;gap:6px;margin-top:40px;padding:6px;background:var(--surface-sunken);border-radius:var(--r-md);width:max-content;max-width:100%;overflow-x:auto}
.onglets button{font:inherit;font-weight:700;font-size:16px;border:0;background:transparent;color:var(--ink-muted);padding:10px 18px;border-radius:6px;cursor:pointer;white-space:nowrap}
.onglets button[aria-selected="true"]{background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow-sm)}
.panneau{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;margin-top:40px}
.panneau[hidden]{display:none}
.panneau.entre{animation:entre .45s ease}
@keyframes entre{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.panneau h3{font-size:34px;margin-bottom:14px}
.panneau ul:not(.eb-liste){padding:0;list-style:none;margin:20px 0 0}
.panneau ul:not(.eb-liste) li{padding:10px 0 10px 28px;border-top:1px solid var(--border);position:relative}
.panneau ul:not(.eb-liste) li::before{content:"";position:absolute;left:3px;top:18px;width:11px;height:6px;border-left:2.5px solid var(--success);border-bottom:2.5px solid var(--success);transform:rotate(-45deg)}

/* Pastilles de statut (couleur + mot) */
.statut{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap;background:var(--surface-sunken);color:var(--ink-muted)}
.statut i{width:7px;height:7px;border-radius:50%;background:var(--border-strong)}
.statut.s-fait{background:var(--success-subtle);color:var(--ink)}.statut.s-fait i{background:var(--success)}
.statut.s-cours{background:var(--warning-subtle);color:var(--ink)}.statut.s-cours i{background:var(--warning)}
.statut.s-live{background:var(--primary-subtle);color:var(--ink)}.statut.s-live i{background:var(--primary);animation:pouls 1.4s ease-in-out infinite}
@keyframes pouls{50%{transform:scale(1.6);opacity:.5}}

/* Maquette : écran d'ordinateur */
.ecran-bureau{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden;font-size:14px;line-height:1.4}
.eb-barre{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--surface-sunken);border-bottom:1px solid var(--border);font-size:12px;color:var(--ink-muted)}
.eb-barre span{width:10px;height:10px;border-radius:50%;background:var(--border-strong)}
.eb-barre em{font-style:normal;margin-left:10px;background:var(--surface-raised);padding:3px 10px;border-radius:999px}
.eb-corps{padding:18px}
.eb-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.eb-tete b{display:block;font-family:var(--font-display);font-size:22px}
.eb-tete small{color:var(--ink-muted)}
.eb-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.eb-kpi div{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px}
.eb-kpi small{display:block;color:var(--ink-muted);font-size:12px}
.eb-kpi b{font-family:var(--font-display);font-size:34px;line-height:1.05}
.eb-kpi b span{font-size:20px;color:var(--ink-muted)}
.eb-deux{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.eb-carte{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);background:#e6ecf1}
.eb-carte svg{display:block;width:100%;height:100%}
.eb-liste{list-style:none;margin:0;padding:0}
.eb-liste li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border)}
.eb-liste li:first-child{padding-top:0}
.eb-liste small{display:block;color:var(--ink-muted);font-size:12px}

/* Maquette : téléphone */
.tel{width:min(290px,100%);margin:0 auto;background:#060d16;border-radius:38px;padding:10px;box-shadow:var(--shadow-lg)}
.tel-ecran{position:relative;border-radius:29px;overflow:hidden;aspect-ratio:9/17;background:var(--surface);display:flex;flex-direction:column}
.tel-ecran > svg{display:block;width:100%;height:100%}
.tel-app{padding:18px 16px;display:flex;flex-direction:column;gap:12px;height:100%;font-size:14px}
.tel-app .marque{display:flex;align-items:center;gap:8px;font-weight:700}
.tel-app .marque img{width:24px;height:24px;border-radius:6px}
.tel-carte{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:14px}
.tel-carte small{display:block;color:var(--ink-muted);font-size:12px}
.tel-etat{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:26px;font-weight:700;line-height:1.1}
.tel-etat i{width:14px;height:14px;border-radius:50%;background:var(--success);box-shadow:0 0 0 5px var(--success-subtle);animation:pouls 1.4s ease-in-out infinite}
.tel-ligne{display:flex;justify-content:space-between;padding:7px 0;border-top:1px solid var(--border)}
.tel-ligne b{font-weight:700}
.tel-app .bouton{margin-top:auto;text-align:center;font-weight:700;padding:14px;border-radius:var(--r-md);border:2px solid var(--danger,#c42e2e);color:var(--ink)}
.tel-app .note{font-size:12px;color:var(--ink-muted);text-align:center}

/* Maquette : réglages */
.collant{position:sticky;top:110px}
@media (max-width:960px){.collant{position:static}}
.reglages{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:8px 20px}
.reglages div{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}
.reglages div:last-child{border-bottom:0}
.reglages span{font-weight:600}
.reglages small{display:block;font-weight:400;color:var(--ink-muted);font-size:13px}
.reglages b{font-family:var(--font-display);font-size:24px;background:var(--surface-sunken);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:2px 12px;white-space:nowrap}

/* Maquette : tableau de preuve de passage */
.preuve-tab{overflow-x:auto;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md)}
.preuve-tab .pt-tete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border)}
.preuve-tab .pt-tete b{font-family:var(--font-display);font-size:22px}
.preuve-tab .pt-tete span{display:inline-block;margin-left:6px;font-size:13px;font-weight:700;padding:6px 12px;border-radius:var(--r-md);border:1px solid var(--border-strong)}
.preuve-tab table{width:100%;border-collapse:collapse;font-size:15px;min-width:560px}
.preuve-tab th{text-align:left;font-size:12px;letter-spacing:.8px;text-transform:uppercase;color:var(--ink-muted);padding:10px 18px;background:var(--surface-sunken)}
.preuve-tab td{padding:12px 18px;border-top:1px solid var(--border)}
.preuve-tab td:first-child{font-variant-numeric:tabular-nums;font-weight:600}

/* Grille des fonctions */
.fonctions{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:48px;border-top:3px solid var(--ink)}
.fonctions > div{padding:24px 24px 24px 0;border-bottom:1px solid var(--border)}
.fonctions > div:not(:nth-child(3n+1)){padding-left:24px;border-left:1px solid var(--border)}
.fonctions h3{font-size:22px;margin-bottom:6px}
.fonctions p{color:var(--ink-muted);font-size:16px}

/* Pas besoin / pas encore */
.deux-col{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}
.bloc{border-radius:var(--r-lg);padding:28px;border:1px solid var(--border);background:var(--surface-raised)}
.bloc h3{margin-bottom:12px}
.bloc ul{margin:0;padding-left:20px}
.bloc li + li{margin-top:8px}

@media (max-width:960px){
  .panneau,.deux-col{grid-template-columns:1fr;gap:32px}
  .fonctions{grid-template-columns:1fr}
  .fonctions > div,.fonctions > div:not(:nth-child(3n+1)){padding:20px 0;border-left:0}
  .eb-deux{grid-template-columns:1fr}
  .eb-carte{aspect-ratio:16/9}
}
@media (max-width:520px){ .eb-kpi b{font-size:26px} }
@media (prefers-reduced-motion:reduce){ .panneau.entre{animation:none} .statut.s-live i,.tel-etat i{animation:none} }

/* ================= Menu mobile ================= */
.menu-btn{display:none;align-items:center;gap:10px;font:inherit;font-weight:700;font-size:15px;color:var(--n-ink);background:transparent;border:1px solid var(--n-border-strong);border-radius:var(--r-md);padding:8px 14px;cursor:pointer}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:16px;height:2px;background:currentColor;position:relative;transition:transform .2s}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0}
.menu-btn span::before{top:-5px}.menu-btn span::after{top:5px}
.menu-btn[aria-expanded="true"] span{background:transparent}
.menu-btn[aria-expanded="true"] span::before{transform:translateY(5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span::after{transform:translateY(-5px) rotate(-45deg)}
@media (max-width:1100px){
  .menu-btn{display:inline-flex}
  .site-head nav{position:absolute;top:70px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;background:var(--n-surface);border-bottom:1px solid var(--n-border);padding:8px 24px 24px;box-shadow:0 20px 40px rgba(0,0,0,.4)}
  .site-head nav.ouvert{display:flex}
  .site-head nav a:not(.btn){display:block !important;padding:14px 0;border-bottom:1px solid var(--n-border);font-size:18px;color:var(--n-ink)}
  .site-head nav .btn{margin-top:16px;justify-content:center;padding:13px}
}

/* ================= Intérieur de page ================= */
.intro-page{max-width:760px}
.lien-suite{display:inline-flex;align-items:center;gap:8px;margin-top:24px;font-weight:700;text-decoration:none}
.lien-suite::after{content:"";width:8px;height:8px;border-top:2.5px solid currentColor;border-right:2.5px solid currentColor;transform:rotate(45deg)}
.lien-suite:hover{text-decoration:underline}

/* Profils (pour qui) */
.profil{display:grid;grid-template-columns:320px 1fr;gap:48px;padding:48px 0;border-top:1px solid var(--border)}
.profil:first-of-type{border-top:3px solid var(--ink);margin-top:48px}
.profil .etiquette{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:1px;text-transform:uppercase;color:var(--primary)}
.profil h3{font-size:36px;margin-top:8px}
.profil .prose h4{font-size:20px;margin:22px 0 6px}
.pas-pour{background:var(--warning-subtle);border-radius:var(--r-lg);padding:28px 32px;margin-top:40px}
.pas-pour h3{margin-bottom:10px}

/* Estrie : MRC */
.mrc{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:48px;border-top:3px solid var(--n-ink)}
.mrc > div{padding:22px 24px 22px 0;border-bottom:1px solid var(--n-border)}
.mrc > div:nth-child(even){padding-left:24px;border-left:1px solid var(--n-border)}
.mrc h3{font-size:24px;color:var(--n-ink)}
.mrc p{color:var(--n-muted);margin-top:4px}
.hiver{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.hiver > div{border-left:4px solid var(--primary);padding:4px 0 4px 20px}
.hiver b{display:block;font-family:var(--font-display);font-size:26px;line-height:1.1;margin-bottom:8px}
.hiver p{color:var(--ink-muted)}

/* Prix : calculateur */
.calc{background:var(--n-surface);color:var(--n-ink);border-radius:var(--r-lg);padding:32px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-top:40px}
.calc label{display:flex;justify-content:space-between;font-weight:600;margin-bottom:8px}
.calc label output{font-family:var(--font-display);font-size:26px;color:var(--n-ink)}
.calc input[type=range]{width:100%;accent-color:var(--n-primary);height:28px}
.calc .champ + .champ{margin-top:24px}
.calc .resultat{border-left:1px solid var(--n-border);padding-left:40px}
.calc .resultat small{display:block;color:var(--n-muted);font-size:15px}
.calc .grand{font-family:var(--font-display);font-weight:700;font-size:clamp(56px,7vw,88px);line-height:1;color:#54c07c;margin:8px 0}
.calc .ligne{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--n-border);color:var(--n-muted)}
.calc .ligne b{color:var(--n-ink)}
.compare{width:100%;border-collapse:collapse;margin-top:40px;font-size:16px}
.compare th,.compare td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--border);vertical-align:top}
.compare thead th{font-family:var(--font-display);font-size:20px;border-bottom:3px solid var(--ink)}
.compare td:first-child{font-weight:600}
.table-defile{overflow-x:auto}

/* FAQ par catégories */
.faq-cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px;padding:0;list-style:none}
.faq-cats a{display:inline-block;padding:7px 14px;border-radius:999px;border:1px solid var(--n-border);color:var(--n-ink);text-decoration:none;font-weight:600;font-size:15px}
.faq-bloc{margin-top:64px}
.faq-bloc:first-child{margin-top:0}
.faq-bloc h2{font-size:clamp(30px,4vw,44px)}

/* Blogue */
.articles{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.art-carte{display:flex;flex-direction:column;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-lg);padding:28px;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s,border-color .2s}
.art-carte:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--primary);color:var(--ink)}
.art-carte .meta{font-size:13px;color:var(--ink-muted);font-weight:600}
.art-carte h2{font-size:28px;margin:12px 0}
.art-carte p{color:var(--ink-muted);font-size:16px}
.art-carte .lire{margin-top:auto;padding-top:20px;font-weight:700;color:var(--primary)}
.article{max-width:720px}
.article .meta-art{font-size:15px;color:var(--n-muted);margin-top:18px}
.corps-art{font-size:18px;line-height:1.75}
.corps-art h2{font-size:clamp(30px,3.6vw,40px);margin:56px 0 16px}
.corps-art h3{font-size:24px;margin:32px 0 10px}
.corps-art p + p{margin-top:18px}
.corps-art ul,.corps-art ol{margin:18px 0;padding-left:24px}
.corps-art li + li{margin-top:10px}
.corps-art blockquote{margin:32px 0;padding:4px 0 4px 20px;border-left:5px solid var(--primary);font-family:var(--font-display);font-size:26px;line-height:1.25;font-weight:600}
.encadre{background:var(--primary-subtle);border-radius:var(--r-lg);padding:24px 28px;margin:36px 0}
.encadre h3{margin:0 0 8px}
.cocher{list-style:none;padding-left:0 !important}
.cocher li{position:relative;padding-left:34px}
.cocher li::before{content:"";position:absolute;left:0;top:4px;width:20px;height:20px;border:2px solid var(--border-strong);border-radius:4px;background:var(--surface-raised)}
.autres{margin-top:72px;padding-top:32px;border-top:3px solid var(--ink)}

/* Confidentialité */
.legal{max-width:760px;font-size:17px}
.legal h2{font-size:30px;margin:48px 0 12px}
.legal ul{padding-left:22px}
.legal li + li{margin-top:6px}
.a-completer{background:var(--warning-subtle);border:1px dashed var(--warning);padding:1px 6px;border-radius:4px;font-weight:600}

@media (max-width:960px){
  .profil{grid-template-columns:1fr;gap:16px}
  .mrc,.hiver,.articles,.calc{grid-template-columns:1fr}
  .mrc > div,.mrc > div:nth-child(even){padding:18px 0;border-left:0}
  .calc .resultat{border-left:0;padding-left:0;border-top:1px solid var(--n-border);padding-top:28px}
}
.tarif{min-width:0}.tarif li{overflow-wrap:anywhere}.calc > div{min-width:0}

/* ================= En bref (réponse directe, pour Google et les IA) ================= */
.en-bref-section{padding:48px 0 0}
.en-bref{max-width:860px;border-left:5px solid var(--primary);background:var(--surface-raised);border-radius:0 var(--r-lg) var(--r-lg) 0;padding:22px 28px;box-shadow:var(--shadow-sm)}
.en-bref .etiquette{display:block;font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--primary);margin-bottom:6px}
.en-bref p{font-size:18px;line-height:1.6}
.parcours > .en-bref-section > .wrap{padding-left:calc(24px + var(--gutter))}
@media (max-width:960px){ .parcours > .en-bref-section > .wrap{padding-left:calc(16px + var(--gutter))} }

/* Pastille d'arrêt : crochet vert quand le camion l'a dépassée */
.arret.fait i{width:11px;height:6px;border-radius:0;background:none;border-left:2.5px solid var(--success);border-bottom:2.5px solid var(--success);transform:rotate(-45deg) translate(1px,-1px)}

/* Le nom Déneige Go : jamais coupé, « Go » comme le logo sur fond foncé */
.dg{white-space:nowrap}
.nuit .dg .go,footer .dg .go,.calc .dg .go{color:var(--n-accent)}
.prose .villes{padding-left:0}.prose .villes li{margin-top:0}

.merci.oups{background:#3a2c10;border-color:#f5b23d}
@media (max-width:520px){.reglages div{flex-wrap:wrap}.reglages b{white-space:normal;font-size:20px}}

/* ================= Illustrations animées ================= */
.phone.droit{transform:none}
.suivi-barre{position:absolute;left:0;right:0;top:0;background:#fff;color:#14202b;padding:12px 14px;font-size:13px;display:flex;align-items:center;gap:8px;box-shadow:0 2px 8px rgba(15,42,68,.15)}
.suivi-barre img{width:22px;height:22px;border-radius:6px}
.suivi-barre b{font-size:14px}
.suivi-carte{position:absolute;left:10px;right:10px;bottom:12px;background:#fff;color:#14202b;border-radius:14px;padding:12px 14px;box-shadow:0 6px 18px rgba(15,42,68,.25);font-size:13px}
.suivi-carte .gros{font-family:var(--font-display);font-weight:700;font-size:28px;line-height:1.05}
.suivi-carte .pill{position:static;transform:none;margin-top:8px;box-shadow:none}

/* Rapport qui s'inscrit ligne par ligne */
.rapport-anim tbody tr{opacity:0;transform:translateY(8px)}
.vu .rapport-anim tbody tr{animation:ligne .5s ease forwards}
.vu .rapport-anim tbody tr:nth-child(2){animation-delay:.6s}
.vu .rapport-anim tbody tr:nth-child(3){animation-delay:1.2s}
.vu .rapport-anim tbody tr:nth-child(4){animation-delay:1.8s}
.vu .rapport-anim tbody tr:nth-child(5){animation-delay:2.4s}
@keyframes ligne{to{opacity:1;transform:none}}
.rapport-anim td .statut{font-size:11px}

/* Cabine du camion, la nuit */
.cabine{position:relative;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);
  background:linear-gradient(180deg,#0a1626 0%,#10253d 55%,#1a2f48 100%)}
.cabine .route{position:absolute;left:-15%;right:-15%;bottom:28%;height:40%;clip-path:polygon(47% 0,53% 0,100% 100%,0 100%);
  background:linear-gradient(90deg,#dfe8f0 0 3%,#1f3248 6% 94%,#dfe8f0 97%),linear-gradient(#1b2d42,#2c435c);background-blend-mode:multiply}
.cabine .route::after{content:"";position:absolute;inset:0;clip-path:polygon(49.7% 0,50.3% 0,51.6% 100%,48.4% 100%);
  background:repeating-linear-gradient(180deg,transparent 0 22px,rgba(242,165,26,.9) 22px 42px);background-size:100% 64px;animation:ligneRoute .55s linear infinite}
@keyframes ligneRoute{from{background-position:0 0}to{background-position:0 64px}}
.cabine .phares{position:absolute;left:50%;bottom:30%;width:120%;height:50%;transform:translateX(-50%);
  background:radial-gradient(ellipse at 50% 100%,rgba(255,240,200,.25),transparent 60%)}
.cabine .flocon{position:absolute;top:-10px;width:5px;height:5px;border-radius:50%;background:#fff;opacity:.8;animation:tombe linear infinite}
@keyframes tombe{to{transform:translate(var(--dx,-30px),620px)}}
.cabine .gyro{position:absolute;inset:0;background:radial-gradient(circle at 50% -10%,rgba(255,122,61,.35),transparent 45%);animation:gyro 1.2s ease-in-out infinite}
@keyframes gyro{50%{opacity:.15}}
.cabine .tableau{position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(180deg,#0b1522,#060d16);border-top-left-radius:50% 22%;border-top-right-radius:50% 22%}
.cabine .support{position:absolute;left:50%;bottom:7%;transform:translateX(-50%);width:46%;max-width:210px;background:#060d16;border-radius:18px;padding:6px;box-shadow:0 10px 30px rgba(0,0,0,.6);border:1px solid #2a3f54}
.cabine .mini{background:#f5f8fa;color:#14202b;border-radius:13px;padding:10px;font-size:11px}
.cabine .mini .marque{display:flex;align-items:center;gap:6px;font-weight:700;font-size:11px}
.cabine .mini .marque img{width:16px;height:16px;border-radius:4px}
.cabine .mini .etat{display:flex;align-items:center;gap:6px;font-family:var(--font-display);font-weight:700;font-size:18px;margin:6px 0}
.cabine .mini .etat i{width:9px;height:9px;border-radius:50%;background:#1e7a40;box-shadow:0 0 0 4px #e1f2e7;animation:pouls 1.4s ease-in-out infinite}
.cabine .mini .l{display:flex;justify-content:space-between;border-top:1px solid #d3dde6;padding:4px 0}
.cabine .mini .bouton{margin-top:6px;text-align:center;font-weight:700;border:2px solid #c42e2e;border-radius:8px;padding:5px}
@media (prefers-reduced-motion:reduce){
  .hero::before,.cabine .route::after,.cabine .flocon,.cabine .gyro,#run-truck .halo{animation:none}
  .rapport-anim tbody tr{opacity:1;transform:none}
}
.split > *{min-width:0}
/* Footer : survol des liens en orange Déneige Go */
footer a:hover,
footer a:focus-visible {
  color: #e8641c !important;
}