:root{--encre:#16222b;--gris:#56616b;--filet:#b4bfca;--bleu:#1e3a5f;--nuit:#14263f;--or:#d9a441;--orf:#b07a1c;--voile:#f4f7fb;--pale:#e7edf5;--blanc:#fff;--rouge:#a23b2a;
--sans:"Avenir Next","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif;--serif:"Charter","Iowan Old Style","Georgia",serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--voile);color:var(--encre);font-family:var(--serif);font-size:17px;line-height:1.45;min-height:100vh}
button,input,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}

.haut{position:sticky;top:0;z-index:5;background:var(--nuit);color:#fff}
.haut-in{max-width:680px;margin:0 auto;padding:11px 18px 9px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-family:var(--sans)}
.marque{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.etape{font-size:13px;color:#c9d4e2;white-space:nowrap}
.jauge{height:4px;background:rgba(255,255,255,.14)}
.jauge-in{height:4px;width:0;background:var(--or);border-radius:0 3px 3px 0;transition:width .35s ease}

.ecran{max-width:680px;margin:0 auto;padding:22px 18px 132px;outline:none}
.entre{animation:entre .28s ease both}
@keyframes entre{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.entre{animation:none}.jauge-in{transition:none}html{scroll-behavior:auto}}

h1,h2,h3,.sans{font-family:var(--sans)}
h1{font-size:29px;line-height:1.14;letter-spacing:-.4px;color:var(--nuit);margin:18px 0 0;font-weight:700;text-wrap:balance}
h2{font-size:24px;line-height:1.18;letter-spacing:-.3px;color:var(--nuit);margin:0;font-weight:700;text-wrap:balance}
.trait{width:54px;height:4px;background:var(--or);border-radius:3px;margin:12px 0 14px}
.sous{color:var(--gris);margin:0 0 6px}
p{margin:0 0 12px}

.image{display:block;width:100%;height:auto;border-radius:16px}
.pastilles{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 18px;padding:0;list-style:none}
.pastilles li{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--nuit);background:var(--blanc);border:1px solid var(--pale);border-radius:999px;padding:7px 13px}
.pastilles li::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--or);margin-right:8px;vertical-align:1px}
.reprise{background:var(--blanc);border:1px solid var(--pale);border-left:4px solid var(--or);border-radius:10px;padding:12px 14px;margin:0 0 16px;font-size:15.5px}
.reprise button{background:none;border:0;padding:0;color:var(--bleu);text-decoration:underline;cursor:pointer}
.grand{display:block;width:100%;margin-top:6px}
.note{font-size:14px;color:var(--gris);margin-top:14px}

.bloc{background:var(--blanc);border:1px solid var(--pale);border-radius:16px;padding:18px 16px 16px;margin:14px 0 0;box-shadow:0 1px 2px rgba(20,38,63,.04)}
.question{font-family:var(--sans);font-weight:600;font-size:17px;line-height:1.3;color:var(--nuit);margin:0 0 4px;display:flex;gap:10px;align-items:flex-start}
.num{flex:none;min-width:27px;height:27px;border-radius:50%;background:var(--nuit);color:#fff;font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;margin-top:-1px}
.aide{font-size:14.5px;color:var(--gris);margin:2px 0 0}
.suite-q{font-family:var(--sans);font-weight:600;font-size:15.5px;color:var(--bleu);margin:16px 0 0}
.choix{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
.puce{font-family:var(--sans);font-size:15.5px;line-height:1.25;text-align:left;background:var(--voile);border:1.5px solid var(--filet);border-radius:12px;padding:11px 14px;min-height:46px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;-webkit-tap-highlight-color:transparent}
.puce:hover{border-color:var(--bleu)}
.puce[aria-pressed="true"]{background:var(--nuit);border-color:var(--nuit);color:#fff}
.puce[aria-pressed="true"]::before{content:"✓";color:var(--or);font-weight:700;margin-right:8px}
.puce:focus-visible,.btn:focus-visible,.outil:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--or);outline-offset:2px}
.colonne .puce{flex:1 1 100%}

.champ{display:block;margin-top:11px}
.champ input,.champ textarea{width:100%;background:var(--voile);border:1.5px solid var(--filet);border-radius:12px;padding:12px 13px;font-family:var(--sans);font-size:16px;line-height:1.35}
.champ textarea{min-height:92px;resize:vertical}
.champ input:focus,.champ textarea:focus{border-color:var(--bleu);background:#fff}
.court{display:flex;align-items:center;gap:10px;margin-top:11px;font-family:var(--sans);font-size:15.5px;flex-wrap:wrap}
.court input{width:118px;background:var(--voile);border:1.5px solid var(--filet);border-radius:12px;padding:11px 12px;font-size:16px}
.court label{color:var(--encre)}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:430px){.duo{grid-template-columns:1fr}}
.etiq{display:block;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--bleu);margin-bottom:5px}

.carte{border:1.5px solid var(--pale);border-radius:16px;overflow:hidden;margin-top:14px;background:var(--blanc)}
.carte-haut{background:var(--nuit);color:#fff;padding:13px 16px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-family:var(--sans)}
.carte-nom{font-size:19px;font-weight:700}
.carte-prix{font-size:19px;font-weight:700;color:var(--or);white-space:nowrap}
.carte-prix small{font-size:12px;font-weight:500;color:#c9d4e2}
.carte-pour{font-style:italic;color:var(--bleu);padding:11px 16px 0}
.carte-avant{font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--orf);padding:6px 16px 0}
.carte-bas{padding:8px 10px 10px}
.outil{display:flex;gap:11px;align-items:flex-start;width:100%;text-align:left;background:none;border:0;border-radius:10px;padding:10px 8px;font-family:var(--sans);font-size:15.5px;line-height:1.3;cursor:pointer;-webkit-tap-highlight-color:transparent}
.outil:hover{background:var(--voile)}
.case{flex:none;width:23px;height:23px;border:1.8px solid var(--filet);border-radius:7px;background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--nuit);margin-top:-1px}
.outil[aria-pressed="true"] .case{background:var(--or);border-color:var(--orf)}
.outil[aria-pressed="true"] .case::before{content:"✓"}
.outil[aria-pressed="true"]{color:var(--nuit);font-weight:600}
.compte{font-family:var(--sans);font-size:14.5px;color:var(--gris);margin-top:12px}

.bas{position:fixed;left:0;right:0;bottom:0;z-index:6;background:rgba(244,247,251,.96);border-top:1px solid var(--pale);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding-bottom:env(safe-area-inset-bottom)}
.bas-in{max-width:680px;margin:0 auto;padding:11px 18px;display:flex;gap:10px}
.btn{font-family:var(--sans);font-weight:700;font-size:16.5px;border-radius:13px;padding:14px 20px;min-height:52px;cursor:pointer;border:1.5px solid transparent;-webkit-tap-highlight-color:transparent}
.plein{background:var(--nuit);color:#fff;flex:1;box-shadow:0 2px 0 var(--or)}
.plein:hover{background:var(--bleu)}
.plein[disabled]{opacity:.6;cursor:progress}
.discret{background:transparent;border-color:var(--filet);color:var(--nuit)}
.erreur{background:#fbeeea;border:1px solid #e3b9ae;color:var(--rouge);border-radius:12px;padding:12px 14px;margin-top:14px;font-family:var(--sans);font-size:15px}
.piege{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

.merci{text-align:center;padding-top:26px}
.merci .rond{width:84px;height:84px;border-radius:50%;background:var(--nuit);color:var(--or);font-size:42px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-family:var(--sans)}
.merci .trait{margin-left:auto;margin-right:auto}
.partage{background:var(--blanc);border:1px solid var(--pale);border-radius:16px;padding:18px 16px;margin-top:22px;text-align:left}
.lien{font-family:var(--sans);font-weight:700;color:var(--nuit);word-break:break-all}
.sans-js{max-width:680px;margin:30px auto;padding:0 18px;font-family:var(--sans)}
.pied{font-family:var(--sans);font-size:13px;color:var(--gris);margin-top:26px;line-height:1.5}
@media (min-width:720px){body{font-size:18px}h1{font-size:36px}h2{font-size:28px}.ecran{padding-top:34px}.bloc{padding:22px 22px 20px}}
