/* ===== PALETTE : toutes les couleurs du site sont ici (aucune couleur en dur ailleurs). Bordeaux + blanc, touches de crème (validée 13/11/2026). ===== */
:root{
  --primaire:#8A1A2E; --primaire-2:#651322; --creme:#F7EFE5;
  --accent:#8A1A2E; --accent-fonce:#651322; --accent-clair:#8A1A2E; --accent-pale:#F8ECEE; --accent-pale-2:#EDE6E1; --accent-bord:#EDE6E1; --accent-texte:#8A1A2E; --sur-accent:#FFFFFF;
  --fond:#FDFBF8; --carte:#FFFFFF; --texte:#651322; --doux:#6B5B5E; --trait:#EDE6E1; --err:#B3261E; --ok:#8A1A2E; --blanc:#FFFFFF; --noir:#000000;
  --legal-texte:#651322;
  --panneau-1:#7E1A2C; --panneau-2:#6C1626; --panneau-3:#52101E; --panneau-sur:#F7EFE5; --panneau-txt:#F7EFE5; --panneau-note:#EDE6E1;
  --rgb-primaire:138,26,46; --rgb-accent:138,26,46; --rgb-fond:253,251,248; --rgb-noir:0,0,0;
  --r:12px; --r-btn:10px; --r-champ:10px; --r-quiz:16px; --r-panneau:14px; --r-pastille:10px;
  --ease:cubic-bezier(.2,.8,.2,1);
}
[hidden]{display:none!important}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:400 1rem/1.5 "Plus Jakarta Sans",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(--accent-texte)}
.top{position:sticky;top:0;z-index:20;background:rgba(var(--rgb-fond),.82);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border-bottom:1px solid rgba(var(--rgb-primaire),.08)}
.top-in{max-width:560px;margin:0 auto;padding:10px 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(--primaire);font-weight:700;letter-spacing:-.02em;font-size:1rem}

.top small{color:var(--doux);font-size:.78rem;text-align:right;line-height:1.25}
main{max-width:600px;margin:0 auto;padding:0 12px 40px}
.quiz{background:var(--carte);border-radius:var(--r-quiz);box-shadow:0 1px 2px rgba(var(--rgb-primaire),.06),0 12px 40px rgba(var(--rgb-primaire),.10);padding:18px 14px 22px;margin-top:16px;min-height:340px}
.prog{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.bar{flex:1;height:8px;background:var(--accent-pale-2);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent-clair),var(--accent));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(--primaire)}
.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:var(--carte);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:var(--accent-pale)}
.card.sel{border-color:var(--primaire);background:var(--accent-pale);box-shadow:0 0 0 3px rgba(var(--rgb-primaire),.18)}
.card.gris{color:var(--doux);font-weight:500}
@media (hover:hover){.card:hover{border-color:var(--accent)}}
.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:var(--r-champ);background:var(--carte);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(--primaire);box-shadow:0 0 0 4px rgba(var(--rgb-primaire),.14)}
.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(--accent);color:var(--sur-accent);font-family:inherit;font-weight:700;font-size:1.05rem;padding:17px 20px;border-radius:var(--r-btn);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(--accent-fonce)}
.btn[disabled]{opacity:.55;cursor:default}
.btn.accent{background:var(--accent);color:var(--sur-accent)}
.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(--primaire)}
.otp{letter-spacing:.5em;text-align:center;font-size:1.6rem!important;font-weight:700!important}
.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(--primaire);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:var(--carte);border-radius:var(--r);box-shadow:0 10px 40px rgba(var(--rgb-noir),.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(--primaire);border-radius:var(--r-btn);padding:12px;font-family:inherit;font-weight:700;font-size:.95rem;cursor:pointer;background:var(--carte);color:var(--primaire)}
.bandeau button.p{background:var(--accent);border-color:var(--accent);color:var(--sur-accent)}
.legal{max-width:720px;margin:0 auto;padding:28px 20px 60px}
.legal h1{font-size:1.9rem;letter-spacing:-.02em;color:var(--primaire);margin-bottom:6px}
.legal h2{font-size:1.15rem;margin:26px 0 6px;color:var(--primaire)}
.legal p,.legal li{color:var(--legal-texte)}
@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}

.retrait{margin:8px 0 0;font-size:.8rem;line-height:1.45;color:var(--doux)}
.rea .mention{margin:6px 0 0;font-size:.8rem;line-height:1.5;color:var(--doux)}

.quiz .rea{margin-top:16px;display:flex;justify-content:center;gap:18px;flex-wrap:wrap}
.quiz .rea span{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--doux)}
.quiz .rea svg{color:var(--primaire);flex:none}
.mention-bas{margin:0 0 10px}
.mention-bas .mention{margin:0}

/* ---- refonte haut de page (structure carte unique) ---- */
.panneau{position:relative;overflow:hidden;border-radius:var(--r-panneau);padding:20px 18px 18px;margin:0 0 20px;color:var(--blanc);background:radial-gradient(120% 90% at 100% 0%,rgba(var(--rgb-fond),.06) 0%,rgba(var(--rgb-fond),0) 55%),linear-gradient(160deg,var(--panneau-1) 0%,var(--panneau-2) 60%,var(--panneau-3) 100%)}
.panneau[hidden]{display:none}
.panneau>:not(.filigrane){position:relative}
.p-sur{margin:0 70px 8px 0;font-size:.82rem;font-weight:600;line-height:1.35;color:var(--panneau-sur)}
.p-titre{margin:0 0 14px;font-size:clamp(1.2rem,5.5vw,1.75rem);line-height:1.18;font-weight:800;letter-spacing:-.025em;color:var(--blanc)}
.p-titre mark{color:var(--panneau-txt);background:none;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.p-pts{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:10px}
.p-pts li{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;line-height:1.4;color:var(--panneau-txt)}
.p-pts li b{color:var(--blanc);font-weight:700}
.p-pts i{flex:none;width:22px;height:22px;border-radius:50%;background:var(--panneau-txt);color:var(--primaire);display:grid;place-items:center;margin-top:-1px}
.p-note{margin:0;font-size:.74rem;line-height:1.5;color:var(--panneau-note)}
.step:not([data-hors]) .emo-t{display:none}
.step[data-step="statut"] h2,.step[data-step="statut"] .aide{text-align:center}
.step[data-step="statut"] h2{font-size:1.45rem}
.card{border-width:1.5px;padding:12px 14px 12px 12px;gap:14px;border-radius:var(--r);font-weight:700;color:var(--texte)}
.card .emo{width:46px;height:46px;border-radius:var(--r-pastille);background:var(--accent-pale);display:grid;place-items:center;font-size:1.45rem;flex:none}
.card .lib{flex:1}
.card .chev{flex:none;font-style:normal;font-size:1.7rem;line-height:1;color:var(--accent);font-weight:500;margin-right:2px}
.cards.duo .chev{display:none}
.card .coche{flex:none;width:24px;height:24px;border-radius:7px;border:2px solid var(--trait);background:var(--carte);display:grid;place-items:center}
.card.sel .coche{background:var(--primaire);border-color:var(--primaire)}
.card.sel .coche::after{content:"";width:6px;height:11px;border:solid var(--sur-accent);border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px)}
@media (min-width:520px){main{padding:0 20px 40px}.quiz{padding:24px 24px 28px}.panneau{padding:24px 24px 20px}.p-titre{font-size:1.8rem}}

/* écran merci v2 (2026-11-11) */
.merci{text-align:center;padding:10px 2px 4px}
.merci h2{font-size:1.45rem;line-height:1.2;letter-spacing:-.02em;color:var(--primaire)}
.m-ok{width:76px;height:76px;margin:0 auto 16px;border-radius:50%;background:var(--creme);display:grid;place-items:center;animation:pop .5s var(--ease) both}
.m-ok svg{width:46px;height:46px}
.m-ok circle{stroke:var(--accent);stroke-width:3;stroke-dasharray:151;stroke-dashoffset:151;animation:trace .6s .1s var(--ease) forwards}
.m-ok path{stroke:var(--primaire);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:trace .4s .55s var(--ease) forwards}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
@keyframes trace{to{stroke-dashoffset:0}}
.m-txt{color:var(--doux);margin:6px 0 18px}
.m-bloc{text-align:left;background:var(--creme);border:1px solid var(--trait);border-radius:var(--r);padding:16px 16px 6px}
.m-sur{margin:0 0 12px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--doux)}
.m-etapes{list-style:none;margin:0;padding:0}
.m-etapes li{position:relative;display:flex;gap:12px;padding-bottom:14px;opacity:0;animation:monte .45s var(--ease) forwards}
.m-etapes li:not(:last-child)::before{content:"";position:absolute;left:14px;top:30px;bottom:2px;width:2px;background:var(--trait)}
.m-etapes b{flex:none;width:30px;height:30px;border-radius:50%;background:var(--primaire);color:var(--blanc);display:grid;place-items:center;font-size:.9rem}
.m-etapes strong{display:block;color:var(--primaire);line-height:1.3;padding-top:4px}
.m-etapes span{display:block;color:var(--doux);font-size:.92rem;line-height:1.4}
@keyframes monte{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.m-alerte{display:flex;gap:12px;align-items:flex-start;text-align:left;margin-top:12px;background:var(--creme);border:1px solid var(--accent-bord);border-radius:var(--r);padding:14px 16px}
.m-alerte i{flex:none;width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--sur-accent);display:grid;place-items:center;animation:sonne 1.4s 1.2s ease-in-out 2}
.m-alerte strong{display:block;color:var(--primaire);line-height:1.3}
.m-alerte span{display:block;color:var(--doux);font-size:.92rem;line-height:1.4;margin-top:2px}
@keyframes sonne{0%,100%{transform:none}10%,30%,50%{transform:rotate(-12deg)}20%,40%{transform:rotate(12deg)}60%{transform:none}}
.m-contact{margin:16px 0 0;font-size:.85rem;color:var(--doux)}
@media (prefers-reduced-motion:reduce){.m-ok,.m-etapes li,.m-alerte i{animation:none;opacity:1}.m-ok circle,.m-ok path{animation:none;stroke-dashoffset:0}}

/* marque (texte seul en attendant le logo) */
.marque{font-weight:700;letter-spacing:-.02em;color:var(--primaire)}
.marque b{font-weight:700;color:var(--primaire)}
.aide-champ{margin:6px 0 0;font-size:.82rem;color:var(--doux)}
.logo .sym{width:26px;height:26px;flex:none}
.sym .b{fill:var(--primaire)}
.sym .m{fill:var(--primaire)}
