:root{
  --paper:#F5FAFE;
  --paper-2:#E3F0FA;
  --paper-3:#CFE4F5;
  --ink:#1B2E42;
  --ink-2:#4A6076;
  --moss:#2A7FC4;
  --moss-2:#1F66A0;
  --amber:#F0A63A;
  --line:#BFD8EC;
  --max:1080px;
  --measure:64ch;
}
*{box-sizing:border-box}
html{font-size:17px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Manrope",system-ui,sans-serif;line-height:1.55}
a{color:var(--moss)}
a:focus-visible,button:focus-visible{outline:3px solid var(--amber);outline-offset:3px}
h1,h2,h3{font-weight:800;letter-spacing:-.015em;line-height:1.12;margin:0 0 .5em}
h1{font-size:clamp(2rem,4.6vw,3.4rem)}
h2{font-size:clamp(1.5rem,2.6vw,2rem);margin-top:0}
h3{font-size:1.15rem;margin-bottom:.3em}
p,li{max-width:var(--measure)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.25rem}

/* Header */
header{border-bottom:1px solid var(--line);background:#fff}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;padding-bottom:1rem;flex-wrap:wrap}
.brand{font-weight:800;font-size:1.25rem;color:var(--ink);text-decoration:none}
.brand small{display:block;font-weight:500;font-size:.8rem;color:var(--ink-2)}
nav a{color:var(--ink);text-decoration:none;font-weight:600;margin-left:1.25rem;padding:.35rem 0;border-bottom:2px solid transparent}
nav a[aria-current]{border-color:var(--moss);color:var(--moss)}

/* Parcours : la pièce maîtresse, reprise sur chaque page */
.parcours{margin:2.5rem 0 0;padding:0;list-style:none;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:0;border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden}
.parcours li{padding:1.1rem 1.25rem;position:relative}
.parcours li+li{border-left:1px solid var(--line)}
.parcours li a{color:inherit;text-decoration:none;display:block}
.parcours .step,.parcours .name{display:block}
.parcours .step{font-size:.8rem;color:var(--ink-2);font-weight:600;margin-bottom:.15rem}
.parcours .name{font-weight:800;font-size:1.05rem}
.parcours .desc{font-size:.9rem;color:var(--ink-2);margin-top:.25rem}
.parcours li.is-current{background:var(--moss);color:#fff}
.parcours li.is-current .step,.parcours li.is-current .desc{color:#DCE9E3}
.parcours li.is-main{border-bottom:4px solid var(--amber)}
.parcours li.is-current.is-main{border-bottom-color:var(--amber)}
.parcours li.is-later{opacity:.85}
@media (max-width:700px){.parcours{grid-template-columns:1fr}.parcours li+li{border-left:0;border-top:1px solid var(--line)}}

/* Hero */
.hero-band{background:linear-gradient(180deg,var(--paper-2) 0%,var(--paper) 100%)}
.hero{padding-top:3.5rem;padding-bottom:2.5rem}
.hero .lead{font-size:1.25rem;color:var(--ink-2);max-width:56ch}
.hero .kicker{font-weight:600;color:var(--moss);margin:0 0 .6rem}

/* Sections */
section{padding:2.75rem 0;border-top:1px solid var(--line)}
section.plain{border-top:0;padding-top:1rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
@media (max-width:820px){.grid-2,.grid-3{grid-template-columns:1fr}}
ul.check{padding-left:0;list-style:none}
ul.check li{padding-left:1.6rem;position:relative;margin:.45rem 0}
ul.check li::before{content:"";position:absolute;left:0;top:.5em;width:.8rem;height:.8rem;background:var(--moss);border-radius:50%}
ul.minus li::before{background:var(--paper-3)}
ol.steps{counter-reset:s;padding-left:0;list-style:none}
ol.steps li{counter-increment:s;padding-left:2.6rem;position:relative;margin:.75rem 0}
ol.steps li::before{content:counter(s);position:absolute;left:0;top:.05em;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--ink);color:#fff;font-weight:800;font-size:.9rem;display:grid;place-items:center}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;border:1px solid var(--line);padding:1.25rem;background:#fff;border-radius:10px}
.facts div span{display:block;font-size:.8rem;color:var(--ink-2);font-weight:600}
.facts div strong{font-weight:800}
@media (max-width:820px){.facts{grid-template-columns:1fr 1fr}}
.quote{font-size:1.35rem;font-weight:700;line-height:1.3;max-width:34ch;background:var(--paper-2);border-left:5px solid var(--amber);padding:1.25rem 1.5rem;border-radius:0 12px 12px 0;margin:0;color:var(--ink)}
.faq dt{font-weight:700;margin-top:1.1rem}
.faq dd{margin:.25rem 0 0;color:var(--ink-2)}
.note{background:var(--paper-2);border-left:4px solid var(--amber);padding:1rem 1.25rem;border-radius:0 8px 8px 0;max-width:var(--measure)}

/* CTA */
.btn{display:inline-block;background:var(--moss);color:#fff;text-decoration:none;font-weight:700;padding:.85rem 1.35rem;border-radius:999px}
.btn:hover{background:var(--moss-2)}
.btn.ghost{background:transparent;color:var(--moss);border:2px solid var(--moss);padding:.75rem 1.25rem}
.cta{background:var(--moss-2);color:#fff;padding:3rem 0}
.cta h2{color:#fff}
.cta p{color:#D6E7F5}
.cta .btn{background:var(--amber);color:var(--ink)}
.cta .btn:hover{background:#D19B35}
.cta a:not(.btn){color:#fff}

footer{padding:2rem 0;font-size:.9rem;color:var(--ink-2)}
footer a{color:var(--ink-2)}
footer .cols{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
@media (prefers-reduced-motion:no-preference){.btn{transition:background .15s}}

/* CGV */
.legal p,.legal h2{max-width:72ch}
.legal h2{font-size:1.2rem;margin-top:2rem;color:var(--moss-2)}
.legal em{color:var(--ink-2)}

/* Formulaire de contact */
.contact label{display:block;font-weight:600;margin:.9rem 0 0;font-size:.95rem}
.contact input:not([type=checkbox]),.contact select,.contact textarea{display:block;width:100%;margin-top:.3rem;padding:.65rem .8rem;font:inherit;font-weight:500;border:1.5px solid var(--line);border-radius:8px;background:#fff}
.contact input:focus,.contact select:focus,.contact textarea:focus{outline:0;border-color:var(--moss);box-shadow:0 0 0 3px rgba(42,127,196,.2)}
.contact .consent{font-weight:500;font-size:.85rem;color:var(--ink-2);display:grid;grid-template-columns:auto 1fr;gap:.5rem;align-items:start}
.contact .consent input{margin-top:.25rem}
.contact .hp{position:absolute;left:-9999px}
.contact button{border:0;cursor:pointer;font:inherit;font-weight:700}
.contact button:disabled{opacity:.6;cursor:wait}
#contact-status{font-weight:600;color:var(--moss-2);min-height:1.5em}
