:root{
  --primary:#4438CA;--primary-press:#372DA6;--tint:#EDEBFB;--ink2:#1C1B3A;
  --accent:#17B6AE;--accent-fill:#0E8F89;--bg:#F6F6FB;--bg2:#EDEDF5;--card:#fff;
  --text:#1A1930;--muted:#6B6B80;--line:#E1E1EC;--ok:#178048;--err:#C73A3A;
  --r-md:12px;--r-lg:16px;--r-xl:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{position:relative;overflow-x:hidden;margin:0;background:var(--bg);color:var(--text);font:400 16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
img{max-width:100%;height:auto;display:block}
a{color:var(--primary)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 12px;border-radius:8px;z-index:50}
.skip:focus{left:8px}

/* En-tête */
.top{display:flex;align-items:center;justify-content:space-between;padding:16px 0}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;color:var(--ink2);text-decoration:none;letter-spacing:-.01em}
.logo svg{width:32px;height:32px}
.logo img{display:block;height:36px;width:auto;max-width:100%}
.top a.cta-s{font-weight:600;text-decoration:none;font-size:15px}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 24px;border:0;border-radius:var(--r-md);font:600 16px/1 inherit;font-family:inherit;color:#fff;background:var(--primary);text-decoration:none;cursor:pointer;transition:background .15s}
.btn:hover{background:var(--primary-press)}
.btn[disabled]{opacity:.6;cursor:progress}
.btn.full{width:100%}
.btn.ghost{background:transparent;color:var(--primary);border:2px solid var(--primary)}
.btn.ghost:hover{background:var(--tint)}

/* Hero */
.hero{display:grid;grid-template-columns:1.1fr .9fr;grid-template-areas:"text card" "pic pic";gap:40px;align-items:start;padding:24px 0 48px}
.hero-text{grid-area:text}
.hero>.card{grid-area:card}
.hv{grid-area:pic;margin:0}
.hv img{width:100%;height:auto;border-radius:var(--r-xl);box-shadow:0 18px 44px #1c1b3a30}
.subhead{font-size:19px;line-height:1.4;color:#3d3d55;margin:0 0 22px;max-width:30em}
.about-lead{max-width:720px;margin:34px auto 0;padding:0 4px;text-align:center;color:#3d3d55;font-size:16px}
.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}
.cta-row .btn{flex:1 1 auto;min-width:200px}
img.story{width:100%;height:auto;border-radius:var(--r-xl);box-shadow:0 14px 36px #1c1b3a26;margin:0 0 22px}
img.vis{width:min(460px,100%);height:auto;border-radius:var(--r-xl);box-shadow:0 14px 36px #1c1b3a26}
.by{display:flex;align-items:center;gap:12px;margin:0 0 18px}
.av{flex:none;width:52px;height:52px;border-radius:50%;background:var(--tint);color:var(--primary);display:grid;place-items:center;font-weight:800;font-size:20px;overflow:hidden;border:3px solid #fff;box-shadow:0 2px 8px #1c1b3a22}
.av img{width:100%;height:100%;object-fit:cover}
.by b{display:block;line-height:1.3}
.by span{font-size:14px;color:var(--muted)}
.disclosure{font-size:13px;color:var(--muted);margin:0 0 18px;padding:8px 12px;border-radius:10px;background:#fff;border:1px solid var(--line)}
.quote{margin:0 0 18px;padding:12px 16px;background:#fff;border-left:4px solid var(--primary);border-radius:0 var(--r-md) var(--r-md) 0}
.quote p{margin:0}
.quote footer{font-size:13px;color:var(--muted);margin-top:4px}
.eyebrow{display:inline-block;margin:0 0 14px;padding:6px 12px;border-radius:999px;background:var(--tint);color:var(--primary);font-size:13px;font-weight:700;letter-spacing:.02em}
.hero-shot{margin-top:30px}
.hero-shot .phone{position:relative;width:300px;height:400px;border-bottom:0;border-radius:34px 34px 0 0;box-shadow:0 -6px 40px #1c1b3a22}
.hero-shot .phone:after{content:"";position:absolute;left:0;right:0;bottom:0;height:110px;background:linear-gradient(rgba(246,246,251,0),var(--bg))}
h1{font-size:clamp(30px,6vw,46px);line-height:1.1;letter-spacing:-.02em;margin:0 0 16px;color:var(--ink2);font-weight:800}
h1 em{font-style:normal;color:var(--primary)}
.lead{font-size:18px;color:#3d3d55;margin:0 0 20px}
.perks{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;color:var(--muted)}
.perks li:before{content:"✓";color:var(--ok);font-weight:800;margin-right:6px}
.stores{margin-top:8px;grid-column:2}
.stores p{margin:0 0 8px;font-size:14px;color:var(--muted)}
.store-row{display:flex;flex-wrap:wrap;gap:10px}
.store{display:inline-flex;flex-direction:column;justify-content:center;min-width:150px;min-height:52px;padding:6px 16px;border-radius:var(--r-md);background:var(--ink2);color:#fff;text-decoration:none;line-height:1.2}
.store small{font-size:11px;opacity:.85}
.store b{font-size:16px}
.store:hover{background:#000}

/* Carte d'inscription */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);padding:24px;box-shadow:0 12px 32px #1c1b3a14}
.card h2{margin:0 0 4px;font-size:22px;line-height:1.25;color:var(--ink2)}
.card .sub{margin:0 0 12px;color:var(--muted);font-size:14px}
label{display:block;font-size:14px;font-weight:600;margin:14px 0 6px}
input[type=email],input[type=password],input[type=text]{width:100%;min-height:52px;padding:0 14px;border:1.5px solid var(--line);border-radius:var(--r-md);font:inherit;background:#fff;color:var(--text)}
input:focus{outline:3px solid var(--accent);outline-offset:1px;border-color:var(--primary)}
input.code{font-size:26px;letter-spacing:.35em;text-align:center}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);margin-top:14px}
.consent input{margin-top:3px;width:18px;height:18px;flex:none}
.msg{min-height:22px;margin:12px 0 0;font-size:14px}
.msg.err{color:var(--err)}
.msg.ok{color:var(--ok)}
.linkbtn{background:none;border:0;padding:6px 0;font:inherit;font-size:14px;color:var(--primary);text-decoration:underline;cursor:pointer}
.done{text-align:center}
.done .tick{width:56px;height:56px;border-radius:50%;background:#E7F7ED;color:var(--ok);display:grid;place-items:center;font-size:28px;margin:0 auto 10px}
.done .store-row{justify-content:center;margin-top:14px}
.choices{display:grid;gap:10px;margin-top:14px}
.choice{display:flex;align-items:center;gap:14px;min-height:68px;padding:12px 16px;background:#fff;border:2px solid var(--line);border-radius:var(--r-md);text-decoration:none;color:var(--ink2)}
.choice .ico{flex:none;width:44px;height:44px;border-radius:12px;background:var(--tint);color:var(--primary);display:grid;place-items:center}
.choice .txt{flex:1;display:flex;flex-direction:column;line-height:1.25}
.choice b{font-size:17px}
.choice small{color:var(--muted);font-size:13px}
.choice .go{font-size:26px;color:var(--muted);line-height:1}
.choice:hover{border-color:var(--primary);background:var(--tint)}
.done-block .store-row{justify-content:center;margin-top:14px}
.hidden{display:none!important}

/* Sections */
section.blk{padding:44px 0}
.blk h2.t{font-size:clamp(24px,4.5vw,32px);line-height:1.2;letter-spacing:-.01em;text-align:center;margin:0 0 10px;color:var(--ink2)}
.blk p.t-sub{text-align:center;color:var(--muted);margin:0 auto 30px;max-width:620px}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tile{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px}
.tile .n{width:34px;height:34px;border-radius:50%;background:var(--tint);color:var(--primary);display:grid;place-items:center;font-weight:800;margin-bottom:10px}
.tile h3{margin:0 0 6px;font-size:18px;color:var(--ink2)}
.tile p{margin:0;color:var(--muted);font-size:15px}

.feat{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:28px 0}
.feat.rev .shot{order:2}
.feat h3{font-size:clamp(22px,4vw,28px);line-height:1.2;margin:0 0 10px;color:var(--ink2)}
.feat p{margin:0 0 10px;color:#3d3d55}
.feat ul{margin:0;padding-left:20px;color:#3d3d55}
.tagline{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-fill);margin-bottom:8px}
.shot{display:flex;justify-content:center}
.phone{width:min(300px,100%);border-radius:34px;border:8px solid var(--ink2);background:var(--bg);overflow:hidden;box-shadow:0 18px 40px #1c1b3a2b}
.phone img{width:100%}
.mini{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}

details{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:2px 18px;margin:10px 0}
summary{cursor:pointer;font-weight:600;padding:14px 0;list-style-position:outside;color:var(--ink2)}
details p{margin:0 0 14px;color:#3d3d55}
.faq{max-width:720px;margin:0 auto}

.cta2{background:var(--ink2);color:#fff;border-radius:var(--r-xl);padding:40px 24px;text-align:center}
.cta2 h2{margin:0 0 8px;font-size:clamp(24px,4.5vw,32px);line-height:1.2}
.cta2 p{margin:0 0 20px;opacity:.85}
.cta2 .btn{background:#fff;color:var(--primary)}

footer.site{margin-top:48px;padding:28px 0 96px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);text-align:center}
footer.site nav{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;margin-bottom:10px}
footer.site a{color:var(--muted)}
footer.site p{margin:4px 0}

/* Barre CTA mobile */
.stick{position:fixed;left:0;right:0;bottom:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#ffffffee;backdrop-filter:blur(8px);border-top:1px solid var(--line);z-index:20;transform:translateY(110%);transition:transform .2s;display:none}
.stick.on{transform:none}

/* Pages secondaires */
.doc{max-width:720px;margin:0 auto;padding:24px 20px 80px}
.doc h1{font-size:30px}
.doc h2{font-size:19px;margin-top:32px;color:var(--ink2)}
.doc h3{font-size:16px;margin-top:22px;color:var(--ink2)}
.guides-list{list-style:none;margin:24px 0;padding:0;display:grid;gap:14px}
.guides-list li{border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px}
.guides-list li a{font-weight:600;color:var(--ink2);text-decoration:none}
.guides-list li a:hover{text-decoration:underline}
.guides-list li p{margin:6px 0 0;color:var(--muted);font-size:14px}
.preview-banner{background:#FDF3E3;color:#8A5A16;text-align:center;padding:8px 12px;font-size:14px;font-weight:600}

@media (max-width:820px){
  .hero,.feat{grid-template-columns:1fr;gap:26px}
  .hero{grid-template-areas:"text" "pic" "card"}
  img.story{display:none}
  .subhead{font-size:17px;margin-bottom:18px}
  .cta-row .btn{width:100%;flex-basis:100%}
  .stores{grid-column:auto}
  .feat.rev .shot{order:0}
  .trio,.mini{grid-template-columns:1fr}
  .stick{display:block}
}

/* Décor de l'en-tête (illustration) et bande de panneaux */
.hero-scene{position:absolute;left:0;right:0;top:0;height:620px;z-index:-1;overflow:hidden;pointer-events:none}
.hero-scene svg{width:100%;height:100%;display:block}
.hero-scene:after{content:"";position:absolute;left:0;right:0;bottom:0;height:160px;background:linear-gradient(rgba(246,246,251,0),var(--bg))}
.signs{max-width:760px;margin:0 auto;padding:12px 0 0;text-align:center}
.signs-row{display:flex;justify-content:center;align-items:flex-end;gap:clamp(14px,4vw,40px);padding:0 12px}
.sg{display:flex;flex-direction:column;align-items:center}
.sg svg{width:56px;height:56px;filter:drop-shadow(0 3px 4px #1c1b3a22)}
.sg i{display:block;width:5px;height:38px;background:#9A9AB0;border-radius:2px}
.ground{height:12px;background:#C9E9E6;border-radius:6px 6px 0 0}
.road{height:34px;background:#6C67B5;border-radius:0 0 12px 12px;position:relative}
.road:after{content:"";position:absolute;left:0;right:0;top:15px;height:4px;background:repeating-linear-gradient(90deg,#F6F6FB 0 34px,transparent 34px 68px)}
.signs p{margin:16px auto 0;max-width:520px;color:var(--muted);font-size:15px}

/* Formulaire « Me prévenir » (pages bientot-ios / bientot-android) */
.wl{max-width:460px;margin-top:20px}
.wl .btn{margin-top:14px}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.wl-done{max-width:460px;margin-top:20px;padding:22px;border-radius:var(--r-lg);background:#E7F7ED;border:1px solid #bfe6cd}
.wl-done h2{margin:0 0 6px;color:var(--ok)}
.wl-done p{margin:0;color:#134d2e}
.doc .fine{font-size:13px;color:var(--muted);margin-top:22px;max-width:520px}

/* Test gratuit sans inscription (/test-code-de-la-route-gratuit) */
.qz{margin:24px 0}
.qz-list{list-style:none;margin:0;padding:0}
.qz-q{margin:0 0 14px}
.qz-q fieldset{border:0;margin:0;padding:0;min-width:0}
.qz-q legend{padding:0;margin:0 0 12px;font-size:19px;font-weight:700;line-height:1.35;color:var(--ink2)}
.qz-num{display:block;margin-bottom:6px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-fill)}
.qz-img{margin:0 0 14px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:#fff}
.qz-img img{width:100%;height:auto}
.qz-ans{display:grid;gap:10px}
label.qz-a{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0;padding:14px 16px;min-height:56px;background:#fff;border:2px solid var(--line);border-radius:var(--r-md);font-size:16px;font-weight:500;color:var(--text);cursor:pointer}
label.qz-a input{width:20px;height:20px;flex:none;accent-color:var(--primary);margin:0}
label.qz-a .qz-txt{flex:1;min-width:0}
label.qz-a:hover{border-color:var(--primary)}
label.qz-a:has(input:checked){border-color:var(--primary);background:var(--tint)}
label.qz-a.is-correct{border-color:var(--ok);background:#E7F7ED}
label.qz-a.is-wrong{border-color:var(--err);background:#FBEAEA}
.qz-tag{flex-basis:100%;padding-left:32px;font-size:14px;font-weight:700}
.qz-tag:empty{display:none}
label.qz-a.is-correct .qz-tag{color:var(--ok)}
label.qz-a.is-wrong .qz-tag{color:var(--err)}
.qz-fb{margin-top:14px;padding:16px;border-radius:var(--r-md);background:#fff;border:1px solid var(--line)}
.qz-fb p{margin:0 0 8px}
.qz-fb p:last-child{margin:0}
.qz-kt{font-weight:600;color:var(--ink2)}
.qz-sol{margin-top:12px}
.qz-msg{min-height:24px;margin:12px 0 0;font-weight:600}
.qz-controls{display:flex;gap:10px;margin-top:6px}
.qz-controls .btn{min-width:200px}
.qz-result{margin:24px 0;padding:28px 22px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:0 12px 32px #1c1b3a14}
.qz-result h2{margin:0 0 6px;font-size:20px;color:var(--ink2)}
.qz-score{margin:0;font-size:48px;line-height:1.1;font-weight:800;color:var(--primary)}
.qz-result p.txt{margin:10px auto 18px;max-width:520px;color:#3d3d55}
.qz-result .qz-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.qz-form:not(.qz-js) .qz-controls,.qz-form:not(.qz-js) .qz-msg{display:none}
.qz-form.qz-js .qz-sol{display:none}
.qz-hint{font-size:14px;color:var(--muted);margin:0 0 6px}
.qz-src{font-size:13px;color:var(--muted)}
.doc .card{margin:28px 0}
.cta-test{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:34px 24px;text-align:center;box-shadow:0 12px 32px #1c1b3a14}
.cta-test h2{margin:0 0 8px;font-size:clamp(22px,4.5vw,28px);line-height:1.2;color:var(--ink2)}
.cta-test p{margin:0 0 18px;color:#3d3d55}
@media (max-width:520px){.qz-controls .btn{width:100%}}
[hidden]{display:none!important}

/* Bandeau de consentement aux traceurs publicitaires (src/consent.js) : discret, deux boutons de même poids */
.cc-consent{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;max-width:760px;margin:0 auto;display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 8px 30px rgba(26,25,48,.18)}
.cc-consent-text{margin:0;flex:1 1 320px;font-size:14px;line-height:1.45;color:var(--text)}
.cc-consent-actions{display:flex;gap:10px;flex:0 0 auto}
.cc-btn{min-height:44px;padding:0 20px;border:2px solid var(--primary);border-radius:var(--r-md);background:#fff;color:var(--primary);font:600 15px/1 inherit;font-family:inherit;cursor:pointer}
.cc-btn:hover{background:var(--tint)}
@media (max-width:520px){.cc-consent-actions{width:100%}.cc-btn{flex:1}}
