
.buy{max-width:1100px;margin:0 auto;padding:40px 22px 80px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.9fr);gap:40px;align-items:start}
.buy h1{margin-top:6px}
.steps{display:flex;gap:8px;font-size:12.5px;color:var(--grey);margin-top:10px;flex-wrap:wrap}
.steps span{padding:4px 11px;border-radius:980px;border:1px solid var(--line)}
.steps span.on{border-color:var(--ink);color:var(--ink);font-weight:600}
.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:24px 26px}
.sum{position:sticky;top:84px}
.sum .price{font-family:var(--display);font-size:44px;font-weight:700;letter-spacing:-.04em;line-height:1;margin-top:10px}
.sum .price small{font-size:17px;font-weight:500;color:var(--grey);letter-spacing:0}
.sum .ht{font-size:13.5px;color:var(--grey);margin-top:6px}
.sum ul{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:8px;font-size:14.5px}
.sum li{display:flex;gap:9px}
.sum li:before{content:"✓";color:var(--gold-ink);font-weight:700}
.sum .rows{margin-top:18px;border-top:1px solid var(--line);padding-top:14px;font-size:14px;display:grid;gap:7px}
.sum .rows div{display:flex;justify-content:space-between;gap:12px}
.sum .rows span{color:var(--grey)}
.sum .rows .tot{font-weight:700;font-size:15.5px;padding-top:8px;border-top:1px solid var(--line-soft);margin-top:4px}
.fld label{display:block;font-size:14px;font-weight:600;margin:0 0 6px}
.fld input[type=email]{width:100%;font:inherit;padding:13px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink)}
.fld input:focus{outline:2px solid var(--gold);outline-offset:1px}
.fld small{display:block;color:var(--grey);font-size:13px;margin-top:6px}
.chk{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;margin-top:16px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--card);cursor:pointer}
.chk input{width:20px;height:20px;margin:2px 0 0;accent-color:#16150F}
.chk b{display:block;font-size:15px}
.chk span{font-size:14px;color:var(--grey);line-height:1.5}
.chk.req b:after{content:" (obligatoire)";font-weight:500;color:var(--grey);font-size:12.5px}
.chk.err{border-color:var(--bear)}
.info{margin-top:22px}
.info details{border-top:1px solid var(--line);padding:12px 0}
.info details:last-child{border-bottom:1px solid var(--line)}
.info summary{cursor:pointer;font-weight:600;font-size:15px;list-style:none;display:flex;justify-content:space-between;gap:10px}
.info summary:after{content:"+";color:var(--gold-ink);font-weight:700}
.info details[open] summary:after{content:"–"}
.info details p,.info details ul{font-size:14.5px;color:var(--ink);margin:10px 0 0}
.pay{width:100%;margin-top:22px;background:var(--gold);color:#17150F;border:0;border-radius:980px;padding:15px 22px;font:inherit;font-size:17px;font-weight:700;cursor:pointer}
.pay:hover{background:var(--gold-hover);color:#fff}
.pay[disabled]{opacity:.6;cursor:wait}
.secure{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:10px;font-size:12.5px;color:var(--grey)}
.alert{border-radius:14px;padding:12px 16px;margin-top:18px;font-size:14.5px}
.alert.warn{background:var(--gold-wash);border:1px solid var(--gold)}
.alert.bad{background:color-mix(in srgb,var(--bear) 10%,transparent);border:1px solid var(--bear)}
.errmsg{color:var(--bear);font-size:13.5px;margin-top:6px;display:none}
.errmsg.on{display:block}
.done{max-width:720px;margin:0 auto;padding:56px 22px 90px;text-align:center}
.done .ic{width:64px;height:64px;border-radius:50%;background:var(--gold-wash);border:2px solid var(--gold);display:grid;place-items:center;margin:0 auto;font-size:28px;color:var(--gold-ink)}
.done h1{margin-top:18px}
.done .lead{font-family:var(--display);font-size:19px;color:var(--grey);margin-top:14px}
.done .card{text-align:left;margin-top:28px}
.done ol{padding-left:20px}
.done ol li{margin:8px 0}
.variant{display:none}.variant.on{display:block}
.switch{margin-top:26px;font-size:12.5px;color:var(--grey)}
.switch button{font:inherit;font-size:12.5px;background:none;border:1px solid var(--line);border-radius:980px;padding:4px 10px;margin:0 3px;cursor:pointer;color:var(--grey)}
@media (max-width:900px){.buy{grid-template-columns:1fr}.sum{position:static;order:-1}}
