:root{--bg:#eef2f7;--ink:#14213d;--muted:#52607a;--blue:#2f5bff;--amber:#ffb020;--line:#d3dbe8;--card:#fff;--r:14px}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font:17px/1.65 Figtree,system-ui,sans-serif;background:var(--bg);color:var(--ink)}
h1,h2,h3{font-family:"Bricolage Grotesque",Figtree,sans-serif;line-height:1.1;letter-spacing:-.02em}
h1{font-size:clamp(2.3rem,6vw,4rem);font-weight:800}
h2{font-size:clamp(1.6rem,3.5vw,2.3rem);font-weight:700;margin-bottom:.6em}
h3{font-size:1.1rem;font-weight:700}
a{color:inherit}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.wrap{width:min(1080px,92%);margin:auto}
header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{font:800 1.35rem "Bricolage Grotesque",sans-serif;text-decoration:none}
.logo b{color:var(--blue)}
nav{display:flex;gap:.3rem;align-items:center}
nav a{text-decoration:none;padding:.45rem .9rem;border-radius:99px;font-weight:600;font-size:.95rem}
nav a:hover,nav a[aria-current]{background:var(--card)}
nav a.cta{background:var(--ink);color:var(--bg)}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:10px;padding:.4rem .7rem;font:inherit;color:inherit}
.btn{display:inline-block;background:var(--blue);color:#fff;padding:.85rem 1.5rem;border-radius:99px;font-weight:700;text-decoration:none;border:0;font-size:1rem;cursor:pointer}
.btn:hover{filter:brightness(1.1)}
.btn.alt{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.hero{padding:clamp(3rem,8vw,6rem) 0}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center}
.hero p.lead{font-size:1.2rem;color:var(--muted);margin:1.2rem 0 1.8rem;max-width:34em}
.actions{display:flex;gap:.8rem;flex-wrap:wrap}
.ticket{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;position:relative;box-shadow:0 20px 40px -24px rgba(20,33,61,.4)}
.ticket::before,.ticket::after{content:"";position:absolute;top:4.3rem;width:22px;height:22px;border-radius:50%;background:var(--bg);border:1px solid var(--line)}
.ticket::before{left:-12px}.ticket::after{right:-12px}
.ticket small{color:var(--muted);display:block}
.ticket h3{margin:.2rem 0 2rem}
.steps{list-style:none;padding:0;border-top:2px dashed var(--line);padding-top:1.2rem}
.steps li{display:flex;gap:.8rem;align-items:center;padding:.5rem 0;color:var(--muted);transition:color .4s}
.steps li::before{content:"";width:14px;height:14px;border-radius:50%;border:2px solid var(--line);flex:none;transition:.4s}
.steps li.done{color:var(--ink)}
.steps li.done::before{background:var(--blue);border-color:var(--blue)}
.steps li.now{color:var(--ink);font-weight:700}
.steps li.now::before{background:var(--amber);border-color:var(--amber)}
section{padding:clamp(2.5rem,6vw,4.5rem) 0}
.page-head{padding:clamp(2.5rem,6vw,4rem) 0 1rem}
.page-head p{color:var(--muted);max-width:36em;margin-top:1rem}
.list{display:grid;grid-template-columns:1fr 1fr;gap:0 3rem}
.list>div{padding:1.3rem 0;border-top:1px solid var(--line)}
.list p{color:var(--muted);margin-top:.3rem}
.price{display:inline-block;margin-top:.6rem;font-weight:700;color:var(--blue)}
.band{background:var(--ink);color:var(--bg)}
.band .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.band p{opacity:.8;margin-top:.4rem}
.cta-box{text-align:center}
.cta-box p{color:var(--muted);margin:0 auto 1.5rem;max-width:32em}
form{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;display:grid;gap:1rem;max-width:560px}
label{font-weight:600;font-size:.95rem;display:grid;gap:.35rem}
input,select,textarea{font:inherit;padding:.75rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);width:100%}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.msg{font-weight:600;color:var(--blue);min-height:1.5em}
.split{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.info p{margin:.2rem 0 1.4rem;color:var(--muted)}
.info b{display:block;color:var(--ink)}
footer{border-top:1px solid var(--line);padding:2rem 0;color:var(--muted);font-size:.9rem}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}
footer a{margin-left:1rem}
.legal{max-width:44em}.legal h2{font-size:1.3rem;margin:1.6em 0 .4em}
@media(max-width:820px){
.hero .wrap,.split,.band .wrap,.list,.two{grid-template-columns:1fr}
.burger{display:block}
nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--bg);flex-direction:column;align-items:stretch;padding:1rem 4%;border-bottom:1px solid var(--line)}
nav.open{display:flex}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}

/* Présentation stable et finitions communes. */
body{min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
.skip-link{position:fixed;top:8px;left:8px;z-index:20;background:var(--ink);color:white;padding:.6rem 1rem;transform:translateY(-160%);border-radius:8px}
.skip-link:focus{transform:translateY(0)}
.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:1.2rem}
.form-note{font-size:.9rem;color:var(--muted)}
.notice{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;margin:2rem 0}
.notice h2{margin:0 0 .6rem}
.hero{background:radial-gradient(ellipse at 95% 15%,#dce5ff 0,transparent 60%)}
.cta-box{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:clamp(1.5rem,5vw,3rem)}
input,select,textarea,.split>*{min-width:0}
textarea{resize:vertical}
.info a{overflow-wrap:anywhere}
@media(max-width:820px){.hero .wrap{gap:2rem}.actions .btn{text-align:center}}
