:root{
  --vert:#0F3D36; --vert2:#175248; --accent:#F2A541; --accent-fonce:#C97F14;
  --fond:#F6F4EE; --carte:#FFFFFF; --texte:#14231F; --doux:#5B6B66; --trait:#E1DDD2; --ok:#1E7F5C; --err:#B3261E;
  --r:18px; --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:400 1rem/1.5 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--texte);background:var(--fond);font-optical-sizing:auto;-webkit-font-smoothing:antialiased}
h1,h2{font-weight:700;margin:0}
a{color:var(--vert2)}
.top{position:sticky;top:0;z-index:20;background:rgba(246,244,238,.78);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border-bottom:1px solid rgba(20,35,31,.06)}
.top-in{max-width:620px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--vert);font-weight:700;letter-spacing:-.02em;font-size:1.05rem}
.logo svg{width:30px;height:30px;flex:none}
.top small{color:var(--doux);font-size:.78rem;text-align:right;line-height:1.25}
main{max-width:620px;margin:0 auto;padding:0 20px 40px}
.hero{padding:28px 0 18px}
.hero h1{font-size:clamp(1.65rem,6.6vw,2.2rem);line-height:1.12;letter-spacing:-.025em;color:var(--vert)}
.hero p{margin:12px 0 0;font-size:1.06rem;color:var(--doux)}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none}
.badges li{font-size:.85rem;font-weight:600;color:var(--vert);background:#E8EFEA;border-radius:99px;padding:6px 12px}
.quiz{background:var(--carte);border-radius:24px;box-shadow:0 1px 2px rgba(15,61,54,.06),0 12px 40px rgba(15,61,54,.09);padding:22px 20px 24px;margin-top:10px;min-height:340px}
.prog{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.bar{flex:1;height:8px;background:#ECE8DD;border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-fonce));border-radius:99px;transition:width .45s var(--ease)}
.prog span{font-size:.8rem;color:var(--doux);font-weight:600;white-space:nowrap}
.step{display:none}
.step.on{display:block;animation:entree .38s var(--ease)}
@keyframes entree{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.step.retour.on{animation-name:entreeR}
@keyframes entreeR{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}
.emo-t{font-size:2rem;line-height:1;margin-bottom:8px}
.step h2{font-size:1.4rem;line-height:1.2;letter-spacing:-.02em;color:var(--vert)}
.step .aide{margin:6px 0 0;color:var(--doux);font-size:.95rem}
.cards{display:grid;gap:10px;margin-top:18px}
.cards.duo{grid-template-columns:1fr 1fr}
.card{appearance:none;border:2px solid var(--trait);background:#fff;border-radius:var(--r);padding:16px 16px;min-height:60px;font-family:inherit;font-weight:600;font-size:1.02rem;line-height:1.25;color:var(--texte);text-align:left;display:flex;align-items:center;gap:14px;cursor:pointer;transition:transform .12s var(--ease),border-color .15s,background .15s,box-shadow .15s;touch-action:manipulation}
.card .emo{font-size:1.55rem;line-height:1;flex:none;width:34px;text-align:center}
.card:active{transform:scale(.975);border-color:var(--accent);background:#FFF8EC}
.card.sel{border-color:var(--vert);background:#EEF4F0;box-shadow:0 0 0 3px rgba(15,61,54,.12)}
.card.gris{color:var(--doux);font-weight:500}
@media (hover:hover){.card:hover{border-color:var(--vert2)}}
.champ{display:block;margin-top:16px}
.champ>span{display:block;font-size:.88rem;font-weight:600;margin-bottom:6px;color:var(--texte)}
.champ input,.champ select{width:100%;font-family:inherit;font-weight:500;font-size:1.05rem;padding:15px 14px;border:2px solid var(--trait);border-radius:14px;background:#fff;color:var(--texte);min-height:54px;appearance:none;-webkit-appearance:none;outline:none;transition:border-color .15s,box-shadow .15s}
.champ input:focus,.champ select:focus{border-color:var(--vert);box-shadow:0 0 0 4px rgba(15,61,54,.12)}
.champ input.bad{border-color:var(--err)}
.lignes{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lbl{display:block;margin-top:20px;font-size:.88rem;font-weight:600}
.btn{appearance:none;border:0;width:100%;margin-top:22px;background:var(--vert);color:#fff;font-family:inherit;font-weight:700;font-size:1.05rem;padding:17px 20px;border-radius:16px;min-height:56px;cursor:pointer;transition:transform .12s var(--ease),background .15s,opacity .15s;touch-action:manipulation;letter-spacing:-.01em}
.btn:active{transform:scale(.975);background:var(--vert2)}
.btn[disabled]{opacity:.55;cursor:default}
.btn.accent{background:var(--accent);color:#2A1B00}
.btn.accent:active{background:var(--accent-fonce)}
.lien{appearance:none;background:none;border:0;color:var(--doux);font-family:inherit;font-weight:600;font-size:.92rem;padding:14px 4px 0;cursor:pointer;display:inline-block}
.lien[disabled]{opacity:.5;cursor:default}
.retour-btn{margin-top:14px}
.err{color:var(--err);font-size:.9rem;font-weight:600;margin:12px 0 0;min-height:1.2em}
.dep{margin:6px 0 0;font-size:.85rem;color:var(--ok);font-weight:600;min-height:1.2em}
.consent{display:flex;gap:12px;align-items:flex-start;margin-top:20px;font-size:.88rem;line-height:1.45;color:var(--texte);cursor:pointer}
.consent input{width:24px;height:24px;flex:none;margin:2px 0 0;accent-color:var(--vert)}
.otp{letter-spacing:.5em;text-align:center;font-size:1.6rem!important;font-weight:700!important}
.merci{text-align:center;padding:14px 0}
.merci .ok{width:68px;height:68px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;font-size:2rem;margin:0 auto 16px}
.merci p{color:var(--doux)}
.rea{margin-top:22px;display:grid;gap:12px}
.rea div{display:flex;gap:12px;align-items:flex-start;font-size:.92rem;color:var(--texte)}
.rea b{color:var(--accent-fonce);font-size:1.1rem;line-height:1.3}
.pied{max-width:620px;margin:0 auto;padding:6px 20px 44px;color:var(--doux);font-size:.8rem;line-height:1.55}
.pied a{color:var(--doux)}
.bandeau{position:fixed;left:12px;right:12px;bottom:12px;z-index:50;background:#fff;border-radius:18px;box-shadow:0 10px 40px rgba(0,0,0,.2);padding:16px;max-width:560px;margin:0 auto;font-size:.88rem}
.bandeau p{margin:0 0 12px}
.bandeau div{display:flex;gap:10px}
.bandeau button{flex:1;appearance:none;border:2px solid var(--vert);border-radius:12px;padding:12px;font-family:inherit;font-weight:700;font-size:.95rem;cursor:pointer;background:#fff;color:var(--vert)}
.bandeau button.p{background:var(--vert);color:#fff}
.legal{max-width:720px;margin:0 auto;padding:28px 20px 60px}
.legal h1{font-size:1.9rem;letter-spacing:-.02em;color:var(--vert);margin-bottom:6px}
.legal h2{font-size:1.15rem;margin:26px 0 6px;color:var(--vert)}
.legal p,.legal li{color:#2b3a36}
@media (min-width:520px){.quiz{padding:30px 30px 32px}.step h2{font-size:1.55rem}}
@media (prefers-reduced-motion:reduce){.step.on,.step.retour.on{animation:none}.bar i,.card,.btn{transition:none}}
@media (prefers-reduced-transparency:reduce){.top{background:var(--fond);backdrop-filter:none;-webkit-backdrop-filter:none}}

.mention{margin:14px 0 0;font-size:.78rem;line-height:1.5;color:var(--doux)}
.mention a{color:var(--doux)}

.pied .avert{margin-top:14px;font-size:.72rem;line-height:1.5;text-align:center;opacity:.85}
.pied .avert p{margin:0 0 6px}
