/* Les Baroudeurs du Web — feuille de style (charte v2 « crêtes-signal »)
   Marine #0E1726 · Marine 2 #152238 · Marine 3 #1E2D46 · Ligne #2E4060
   Vert signal #2DB877 · Vert encre #187048 · Crème #F5EFE3 / #FBF8F1 · Sable #D6CEC0 · Ardoise #AFBCCF · Pierre #4A5363
   Titres : Archivo ExtraBold · Texte : Public Sans
   Règle : le Vert signal n'est jamais du texte sur fond clair (2,2:1) ; sur clair on prend le Vert encre. */
@font-face{font-family:"Archivo";src:url("../assets/fonts/Archivo.woff2") format("woff2");font-weight:500 800;font-display:swap}
@font-face{font-family:"Shrikhand";src:url("../assets/fonts/Shrikhand.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../assets/fonts/PublicSans.woff2") format("woff2");font-weight:100 900;font-display:swap}

:root{
  --marine:#0E1726; --marine-2:#152238; --marine-3:#1E2D46; --ligne:#2E4060;
  --signal:#2DB877; --signal-hi:#5BD69A; --encre:#187048;
  --creme:#F5EFE3; --creme-2:#FBF8F1; --sable:#D6CEC0; --sable-l:#E9E2D3;
  --ardoise:#AFBCCF; --pierre:#4A5363;
  --line:#D6CEC0; --line-d:#2E4060;
  --f-head:"Archivo","Arial Black",system-ui,sans-serif;
  --f-body:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --r:14px; --r-lg:22px;
  --gut:clamp(18px,4vw,40px);
  --sec:clamp(56px,8vw,112px);
  --maxw:1180px;
  --ridge:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 48' preserveAspectRatio='none'%3E%3Cpath d='M0 48V30L70 10L130 26L210 2L290 32L360 14L440 36L520 8L590 28L660 16L740 38L810 6L880 26L950 12L1030 34L1100 10L1160 24L1200 30V48Z' fill='%230E1726'/%3E%3C/svg%3E");
  --ridge-m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 48' preserveAspectRatio='none'%3E%3Cpath d='M0 48V30L70 10L130 26L210 2L290 32L360 14L440 36L520 8L590 28L660 16L740 38L810 6L880 26L950 12L1030 34L1100 10L1160 24L1200 30V48Z' fill='%23000'/%3E%3C/svg%3E");
  --rh:clamp(26px,4vw,48px);
  --cur:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 1.5v12.2l3.2-3 2.4 4.6 2.2-1.1-2.3-4.4h4.4z' fill='%23000' stroke='%23000' stroke-width='1' stroke-linejoin='round'/%3E%3C/svg%3E");
  --peak:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 12l6-7 6 7' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--creme);color:var(--marine);font:400 1.125rem/1.62 var(--f-body);overflow-x:hidden;text-rendering:optimizeLegibility}
#contenu{flex:1 0 auto;display:flex;flex-direction:column}
/* Pages courtes (404/500) : le pagehead marine remplit jusqu’au pied de page */
#contenu>.pagehead:only-child{flex:1}
img,svg{display:block;max-width:100%}
a{color:inherit;text-underline-offset:.2em}
h1,h2,h3{font-family:var(--f-head);font-weight:800;line-height:1.08;letter-spacing:-.015em;margin:0;text-wrap:balance}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--marine);outline-offset:3px;border-radius:4px;box-shadow:0 0 0 6px rgba(45,184,119,.6)}
.sec--marine-2 :focus-visible,.sec--marine :focus-visible,.sec--marine-3 :focus-visible,.topbar :focus-visible,.pagehead :focus-visible,.hero :focus-visible,.footer :focus-visible,.legalhead :focus-visible,.ticker :focus-visible{outline-color:var(--creme)}
.card :focus-visible,.sec--dark .card :focus-visible{outline-color:var(--marine)}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sprite-defs{position:absolute;width:0;height:0;overflow:hidden}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--signal);color:var(--marine);font-weight:800;padding:12px 18px;border-radius:10px;text-decoration:none}
.skip:focus{top:12px}
.wrap{width:100%;max-width:calc(var(--maxw) + 2*var(--gut));margin-inline:auto;padding-inline:var(--gut)}
.center{text-align:center}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:.7em 1.4em;border-radius:999px;border:2px solid transparent;font:800 1rem/1.2 var(--f-body);text-decoration:none;cursor:pointer;transition:transform .15s,background .15s,color .15s,border-color .15s;text-align:center}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--lg{min-height:56px;padding:.8em 1.7em;font-size:1.0625rem}
.btn--sm{min-height:44px;padding:.5em 1.1em;font-size:.9375rem}
.btn--block{width:100%}
.btn--primary{background:var(--marine);color:var(--creme)}
.btn--primary:hover{background:var(--marine-3)}
.btn--signal{background:var(--signal);color:var(--marine)}
.btn--signal:hover{background:var(--signal-hi)}
.btn--ghost{border-color:currentColor;color:inherit;background:transparent}
.btn--ghost:hover{background:rgba(245,239,227,.12)}
.card .btn--ghost:hover{background:rgba(14,23,38,.07)}
.btn--line{border-color:var(--line-d);color:var(--creme);background:transparent}
.btn--line:hover{border-color:var(--creme);background:rgba(245,239,227,.1)}
.ico{width:1.2em;height:1.2em;flex:none}

/* ---------- En-tête ---------- */
.topbar{position:sticky;top:0;z-index:50;background:var(--marine);color:var(--creme);border-bottom:1px solid var(--line-d)}
.topbar__in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px}
.brand{display:block;flex:none;line-height:0}
.brand img{height:52px;width:auto}
.burger{display:none;width:48px;height:48px;border:2px solid var(--creme);border-radius:12px;background:transparent;cursor:pointer;color:var(--creme);position:relative}
.burger__bars,.burger__bars::before,.burger__bars::after{position:absolute;left:50%;width:22px;height:3px;border-radius:2px;background:currentColor;transform:translateX(-50%);transition:transform .2s,opacity .2s}
.burger__bars{top:50%;margin-top:-1.5px}
.burger__bars::before,.burger__bars::after{content:"";left:50%;top:-7px}
.burger__bars::after{top:7px}
.burger[aria-expanded=true] .burger__bars{background:transparent}
.burger[aria-expanded=true] .burger__bars::before{transform:translateX(-50%) translateY(7px) rotate(45deg)}
.burger[aria-expanded=true] .burger__bars::after{transform:translateX(-50%) translateY(-7px) rotate(-45deg)}
.topnav{display:flex;align-items:center;gap:clamp(14px,2vw,28px)}
.topnav ul{display:flex;gap:clamp(12px,1.8vw,24px)}
.topnav li a{display:inline-block;padding:10px 2px;font-weight:700;font-size:.9375rem;text-decoration:none;border-bottom:3px solid transparent}
.topnav li a:hover{border-bottom-color:var(--signal)}
.topnav li a[aria-current=page]{border-bottom-color:var(--signal)}
@media (max-width:1279px){
  .burger{display:block}
  .topnav{position:absolute;left:0;right:0;top:100%;background:var(--marine-2);border-bottom:1px solid var(--line-d);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--gut) 22px;display:none;box-shadow:0 18px 30px rgba(14,23,38,.2)}
  .topnav.is-open{display:flex}
  .topnav ul{flex-direction:column;gap:0}
  .topnav li a{display:block;padding:15px 2px;font-size:1.125rem;border-bottom:1px solid var(--line-d)}
  .topnav li a[aria-current=page]{border-bottom-color:var(--signal);color:var(--signal-hi)}
  .topnav__cta{margin-top:16px}
}
@media (max-width:420px){.brand img{height:44px}}

/* ---------- Kicker / eyebrow ---------- */
.kicker{display:flex;flex-wrap:wrap;align-items:center;gap:.55em;margin:0 0 22px;font-weight:800;font-size:.875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--creme)}
h1.kicker{font-family:inherit;font-weight:inherit;font-size:inherit;line-height:inherit;letter-spacing:inherit;text-transform:inherit;text-wrap:unset;margin:0 0 22px;color:inherit}
.kicker__dot{width:10px;height:10px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 4px rgba(45,184,119,.3)}
.kicker__sep{opacity:.5}
.eyebrow{display:flex;align-items:center;gap:.6em;margin:0 0 14px;font-weight:800;font-size:.875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--marine)}
.eyebrow::before{content:"";width:16px;height:16px;flex:none;background:var(--encre);-webkit-mask:var(--cur) center/contain no-repeat;mask:var(--cur) center/contain no-repeat}
.eyebrow--sun{color:var(--creme)}
.sec--marine .eyebrow::before,.sec--marine-2 .eyebrow::before,.pros .eyebrow::before,.legalhead .eyebrow::before{background:var(--signal)}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--marine) url("../assets/crete-sombre.svg") center/cover;color:var(--creme);padding-block:clamp(40px,6vw,88px) clamp(72px,10vw,150px);z-index:0}
.hero__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(24px,5vw,72px);align-items:center}
.hero__title{font-family:var(--f-head);font-weight:800;font-size:clamp(2.5rem,5.1vw,4.5rem);line-height:.98;letter-spacing:-.025em;color:var(--creme);margin:0 0 26px}
.hero__l{display:block}
.hero__title em,.footer__slogan em{font-style:normal;color:var(--signal)}
.h2 em{font-style:normal;color:var(--encre)}
.sec--dark .h2 em,.sec--marine .h2 em,.sec--marine-2 .h2 em,.sec--marine-3 .h2 em{color:var(--signal)}
.hero__you{font-style:italic;font-weight:inherit;color:inherit;font-family:inherit}
.hero__lead{font-size:clamp(1.0625rem,1.5vw,1.25rem);max-width:34em;color:var(--ardoise)}
.hero__lead strong{color:var(--creme)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:14px;margin:30px 0 22px}
.hero__call{font-size:1rem;margin-bottom:22px}
.hero__tags{display:flex;flex-wrap:wrap;gap:10px}
.hero__tags li{padding:6px 14px;border:2px dashed var(--line-d);border-radius:999px;font-weight:700;font-size:.9375rem}
.hero__stage{position:relative}
.hero__mascots{width:100%;height:auto;max-width:640px;margin-inline:auto}
.scene{width:100%;height:auto;border-radius:var(--r-lg);background:linear-gradient(#0E1726,#1E2D46 70%,#2E4060);border:2px dashed var(--line-d);padding:0;overflow:hidden}
.scene__van{animation:bob 3.2s ease-in-out infinite}
.scene__dash{animation:road 1.6s linear infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes road{to{stroke-dashoffset:-48}}
.caption{font-size:.9375rem;margin:10px 0 0;color:var(--pierre)}
.caption--dark{color:var(--ardoise)}
@media (min-width:1024px){
  .hero__l{white-space:nowrap}
  .hero__title{font-size:clamp(3.75rem,4.6vw,4.5rem)} /* ≥ 60 px desktop, tient « on vous accompagne, » */
}
@media (max-width:900px){
  .hero__grid{grid-template-columns:1fr}
  .hero__stage{order:-1;max-width:560px}
  .hero__ctas .btn{flex:1 1 220px}
  /* Crête (.hero+.sec::after) qui remonte dans le hero : laisser la place au contenu */
  .hero{padding-bottom:calc(clamp(88px,14vw,150px) + clamp(40px,6.5vw,92px))}
}

/* ---------- Ticker ---------- */
.ticker{background:var(--marine);color:var(--creme);border-bottom:1px solid var(--line-d)}
.ticker__in{display:flex;align-items:center;gap:12px 22px;padding-block:14px;flex-wrap:wrap}
.ticker__lab{font-weight:800;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;padding:5px 12px;border:2px dashed var(--line-d);border-radius:999px}
.ticker__list{display:flex;flex-wrap:wrap;gap:6px 0;margin:0;font-weight:600;font-size:1rem}
.ticker__list span{display:inline-flex;align-items:center}
.ticker__list span+span::before{content:"";width:12px;height:12px;margin:0 14px;background:var(--signal);-webkit-mask:var(--cur) center/contain no-repeat;mask:var(--cur) center/contain no-repeat}

/* ---------- Sections ---------- */
.sec{padding-block:var(--sec);position:relative}
.sec--creme{background:var(--creme);color:var(--marine)}
.sec--sable{background:var(--sable-l);color:var(--marine)}
.sec--marine-2{background:var(--marine-2);color:var(--creme)}
.sec--marine{background:var(--marine);color:var(--creme)}
.sec--topo{background-image:url("../assets/crete-clair.svg");background-size:cover;background-position:center}
.sec__head{max-width:46rem;margin-bottom:clamp(30px,4vw,52px)}
.h2{font-size:clamp(2rem,4.6vw,3.5rem)}
.h2--sm{font-size:clamp(1.7rem,3.4vw,2.5rem);margin-bottom:14px}
.h3{font-size:clamp(1.3rem,2.2vw,1.65rem)}
.lead,.lead-ink{font-size:clamp(1.0625rem,1.5vw,1.2rem);margin:18px 0 0;max-width:40em}
.lead{color:var(--ardoise)}
.lead-ink{color:var(--marine)}
.sec--marine-2 .lead,.sec--marine .lead{color:var(--ardoise)}

/* ---------- Services ---------- */
.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px}
@media (min-width:960px){.services{grid-template-columns:repeat(6,1fr)}.svc:nth-child(-n+3){grid-column:span 2}.svc:nth-child(n+4){grid-column:span 3}}
.svc{position:relative;background:var(--creme-2);border:2px dashed var(--line);border-radius:var(--r-lg);padding:26px 24px 28px;transition:transform .2s,border-color .2s}
.svc:hover{transform:translateY(-4px);border-color:var(--marine)}
.svc__no{position:absolute;top:18px;right:20px;font:800 .8125rem var(--f-head);letter-spacing:.1em;color:var(--pierre)}
.svc__ico,.pros__ico{width:56px;height:56px;fill:none;stroke:var(--marine);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;margin-bottom:18px;background:var(--creme);border-radius:50%;padding:11px;box-shadow:inset 0 0 0 2px var(--marine),5px 5px 0 var(--signal)}
.svc h3{font-size:1.35rem;margin-bottom:8px}
.svc p{margin:0;font-size:1.0625rem}
.pros{margin-top:clamp(36px,5vw,64px);background:var(--marine-2);color:var(--creme);border-radius:var(--r-lg);padding:clamp(24px,4vw,48px);display:grid;grid-template-columns:1fr 1.2fr;gap:28px 48px;align-items:center;position:relative;overflow:hidden}
.pros::before{content:"";position:absolute;inset:0;background:url("../assets/crete-sombre.svg") center/cover;opacity:.8;pointer-events:none}
.pros>*{position:relative}
.pros__head p{margin:10px 0 0;color:var(--ardoise)}
.pros__list{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
.pros__list li{display:flex;align-items:center;gap:14px;font-weight:700;line-height:1.25}
.pros__ico{width:52px;height:52px;margin:0;flex:none;stroke:var(--creme);background:var(--marine-3);box-shadow:inset 0 0 0 2px var(--creme)}
.pros .btn{justify-self:start;grid-column:1/-1}
@media (max-width:860px){.pros{grid-template-columns:1fr}}
@media (max-width:480px){.pros__list{grid-template-columns:1fr}}

/* ---------- Tournée ---------- */
.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center;margin-bottom:clamp(30px,4vw,52px)}
.split .sec__head{margin:0}
.split__fig{margin:0}
@media (max-width:900px){.split{grid-template-columns:1fr}.split__fig{max-width:560px}}
.tour{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.1fr);gap:clamp(24px,4vw,56px);align-items:start}
.tour__map{margin:0;position:sticky;top:96px}
.stoplist{display:grid;gap:10px;counter-reset:s}
.stop-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:12px 16px 12px 12px;background:rgba(245,239,227,.05);border:1px solid var(--line-d);border-radius:var(--r);transition:background .2s,border-color .2s}
.stop-row.is-active{background:rgba(245,239,227,.12);border-color:var(--ardoise)}
.stop-row.is-next{border-color:var(--signal);box-shadow:0 0 0 1px var(--signal)}
.stop-row.is-done{opacity:.62}
.stamp{width:56px;height:56px;border-radius:50%;border:3px dashed var(--creme);background:var(--marine-3);color:var(--creme);display:grid;place-items:center;cursor:pointer;padding:0;font:800 1.25rem var(--f-head);transition:transform .2s,background .2s,color .2s}
.stamp:hover{transform:rotate(-8deg) scale(1.06)}
.is-active .stamp{background:var(--signal);color:var(--marine);border-color:var(--creme)}
.stop-row__name{font-size:1.2rem;margin:0 0 2px}
.stop-next,.stop-done{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:999px;font:700 .72rem/1.4 var(--f-body);vertical-align:middle;letter-spacing:.02em;text-transform:uppercase}
.stop-next{background:var(--signal);color:var(--marine)}
.stop-done{background:var(--ardoise);color:var(--marine)}
.stop-row__meta{margin:0;display:flex;flex-wrap:wrap;gap:2px 16px;font-size:.9375rem;color:var(--ardoise)}
.stopcard{margin-top:16px;min-height:0}
.stopcard:not(:empty){padding:20px 22px;background:var(--creme);color:var(--marine);border-radius:var(--r);border:3px solid var(--signal)}
.stopcard h3{font-size:1.4rem;margin-bottom:6px}
.stopcard p{margin:0 0 12px;font-size:1.0625rem}
.stopcard .btn{margin-top:4px}
.zone{margin-top:22px;padding:22px 24px;border:2px dashed var(--line-d);border-radius:var(--r)}
.zone__h{font-size:1.3rem;margin-bottom:8px}
.zone p{color:var(--ardoise)}
.mapbox{background:var(--marine);border-radius:var(--r-lg);border:2px dashed var(--line-d);padding:6px;overflow:hidden}
.map{width:100%;height:auto;aspect-ratio:1/1;display:block}
.map text{font-family:var(--f-body)}
.map .stop{cursor:pointer}
.map .stop:focus-visible{outline:none}
.map .stop:focus-visible circle.halo{stroke:var(--creme);stroke-width:3}
.map__route{stroke-dasharray:16 14}
.map__route--run{animation:mapdash 1.8s linear infinite}
@keyframes mapdash{to{stroke-dashoffset:-30}}
@media (prefers-reduced-motion:reduce){.map__route--run{animation:none}}
@media (max-width:980px){.tour{grid-template-columns:1fr}.tour__map{position:static;order:-1}}
@media (max-width:520px){.stop-row{grid-template-columns:auto 1fr;gap:10px 14px}.stop-row .btn{grid-column:1/-1;width:100%}}

/* ---------- Méthode ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;position:relative;counter-reset:st}
.steps::before{content:"";position:absolute;left:8%;right:8%;top:35px;border-top:4px dashed var(--encre)}
.step{position:relative;text-align:center;padding:0 6px}
.step__n{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 18px;border-radius:50%;background:var(--marine);color:var(--creme);font:800 1.8rem var(--f-head);box-shadow:0 0 0 6px var(--sable-l),0 0 0 9px var(--marine);position:relative}
.step h3{font-size:1.3rem;margin-bottom:8px}
.step p{margin:0;font-size:1.0625rem}
@media (max-width:860px){.steps{grid-template-columns:1fr;gap:26px}.steps::before{left:35px;right:auto;top:30px;bottom:30px;border-top:0;border-left:4px dashed var(--encre)}.step{display:grid;grid-template-columns:72px 1fr;gap:4px 20px;text-align:left;align-items:start}.step__n{grid-row:1/3;margin:0}.step h3{align-self:end}}

/* ---------- Tarifs ---------- */
.tarifs{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,5vw,72px);align-items:start}
.tarifs__head{margin-bottom:0}
.ticks{display:grid;gap:12px;margin-top:24px}
.ticks li{position:relative;padding-left:32px}
.ticks li::before{content:"";position:absolute;left:0;top:.28em;width:20px;height:20px;background:var(--encre);-webkit-mask:var(--peak) center/contain no-repeat;mask:var(--peak) center/contain no-repeat}
.sec--marine .ticks li::before,.sec--marine-2 .ticks li::before{background:var(--signal)}
table.grid{width:100%;border-collapse:separate;border-spacing:0;background:var(--creme-2);border:2px solid var(--marine);border-radius:var(--r-lg);overflow:hidden}
.grid th,.grid td{padding:16px 20px;text-align:left;border-bottom:1px dashed var(--line);vertical-align:top}
.grid thead th{background:var(--marine);color:var(--creme);font:800 .8125rem var(--f-body);letter-spacing:.12em;text-transform:uppercase;border:0}
.grid tbody tr:last-child>*{border-bottom:0}
.grid tbody th{font-weight:700}
.grid small{display:block;font-weight:400;font-size:.9375rem;color:var(--pierre);margin-top:2px}
.grid .num{text-align:right;white-space:nowrap;font-weight:700}
@media (max-width:900px){.tarifs{grid-template-columns:1fr}}
@media (max-width:520px){.grid th,.grid td{padding:13px 12px}.grid .num{white-space:normal}}

/* ---------- Placeholders ---------- */
.ph{display:inline-block;padding:0 .4em;border:1.5px dashed currentColor;border-radius:6px;background:rgba(45,184,119,.2);font-weight:700;font-size:.92em;line-height:1.4;color:inherit}
.ph--dark{background:rgba(45,184,119,.22)}

/* ---------- Équipe ---------- */
.team{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(24px,5vw,72px);align-items:center}
.team__cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.person{background:var(--creme-2);border:2px solid var(--marine);border-radius:var(--r-lg);padding:14px 14px 22px;box-shadow:6px 6px 0 var(--marine)}
.person__ph{aspect-ratio:4/3;border-radius:12px;background:repeating-linear-gradient(135deg,var(--sable-l) 0 14px,var(--sable) 14px 28px);display:grid;place-items:center;font-weight:800;color:var(--marine);margin-bottom:16px;border:2px dashed var(--marine)}
.person h3{font-size:1.4rem;margin-bottom:2px}
.person__role{font-weight:800;font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
.person p:last-child{margin:0;font-size:1.0625rem}
@media (max-width:900px){.team{grid-template-columns:1fr}}
@media (max-width:520px){.team__cards{grid-template-columns:1fr}}

/* ---------- Formulaires ---------- */
.forms{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.card{background:var(--creme);color:var(--marine);border-radius:var(--r-lg);padding:clamp(22px,3vw,34px)}
.form .h3{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.stepnum{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--signal);color:var(--marine);font:800 1.1rem var(--f-head);flex:none}
.form__hint{margin:0 0 20px;font-size:1.0625rem}
.field{margin:0 0 16px;border:0;padding:0;min-width:0}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field label,.field legend{display:block;font-weight:700;font-size:1.0625rem;margin-bottom:6px;padding:0}
.opt{font-weight:400;color:var(--pierre)}
input[type=text],select,textarea{width:100%;min-height:50px;padding:12px 14px;border:2px solid var(--marine);border-radius:12px;background:#FFFFFF;color:var(--marine);font:400 1rem var(--f-body)}
textarea{resize:vertical;min-height:96px}
input::placeholder,textarea::placeholder{color:var(--pierre)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--marine);outline-offset:2px}
.field__help{margin:6px 0 0;font-size:.9375rem;color:var(--pierre)}
/* Éditeur riche public : une seule zone (saisie = rendu), anti-XSS côté serveur */
.form .rich{display:grid;gap:0;border:2px solid var(--marine);border-radius:12px;background:#fff;overflow:visible}
.form .rich__bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px;background:var(--creme-2);border:0;border-bottom:1px solid var(--line);border-radius:10px 10px 0 0}
.form .rich__btn{min-height:36px;padding:6px 12px;border:2px solid transparent;border-radius:8px;background:#fff;color:var(--marine);font:800 .88rem var(--f-body);cursor:pointer}
.form .rich__btn:hover{border-color:var(--marine);background:var(--sable-l)}
.form .rich__btn.is-on,.form .rich__btn[aria-pressed=true]{background:var(--signal);color:var(--marine);border-color:var(--signal)}
.form .rich__btn[aria-expanded=true]{border-color:var(--marine);background:var(--sable-l)}
.form .rich__drop{position:relative}
.form .rich__emoji{position:absolute;z-index:30;top:calc(100% + 6px);right:0;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;width:min(264px,78vw);padding:10px;background:#fff;border:2px solid var(--marine);border-radius:12px;box-shadow:0 12px 28px rgba(14,23,38,.18);max-height:220px;overflow:auto}
.form .rich__emoji[hidden]{display:none!important}
.form .rich__emoji-btn{width:36px;height:36px;border:0;border-radius:8px;background:transparent;cursor:pointer;font-size:1.25rem;line-height:1}
.form .rich__emoji-btn:hover{background:var(--sable-l)}
.form .rich__surface{min-height:140px;padding:12px 14px;font:400 1rem/1.55 var(--f-body);color:var(--marine);outline:none;word-break:break-word;border-radius:0 0 10px 10px}
.form .rich__surface:focus-visible{box-shadow:inset 0 0 0 3px rgba(45,184,119,.35)}
.form .rich__surface.is-empty::before{content:attr(data-placeholder);color:var(--pierre);pointer-events:none}
.form .rich__surface a{color:var(--encre);font-weight:700}
.form .field:has([aria-invalid=true]) .rich,.form .rich:has([aria-invalid=true]){border-color:#A32A1B}
.check{display:flex;gap:12px;align-items:flex-start;margin:6px 0 20px;font-size:1rem;cursor:pointer;min-height:44px}
.check input{width:24px;height:24px;flex:none;margin:2px 0 0;accent-color:var(--marine)}
.field__err{display:block;min-height:1.25em;margin:.35em 0 0;font-size:.875rem;font-weight:700;line-height:1.35;color:#A32A1B}
.field__err:empty{display:none}
.check+.field__err{margin:-12px 0 16px 36px}
.seg{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.seg label{margin:0;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:flex;align-items:center;justify-content:center;min-height:46px;border:2px solid var(--marine);border-radius:12px;font-weight:700;font-size:.9375rem;transition:background .15s,color .15s}
.seg input:checked+span{background:var(--marine);color:var(--creme)}
.seg input:focus-visible+span{outline:3px solid var(--marine);outline-offset:3px;box-shadow:0 0 0 6px rgba(45,184,119,.6)}
.form__status{margin:14px 0 0;font-weight:600;font-size:1.0625rem;min-height:0}
.form__status:not(:empty){padding:12px 14px;border-radius:10px;background:var(--sable-l);border-left:5px solid var(--encre)}
.form__status.is-error{border-left-color:#A32A1B;background:#F7DDD6;color:#5C1409}
.form [aria-invalid=true]{border-color:#A32A1B;background:#FFF1EE}
.callbox{margin-top:22px;padding:16px 18px;border:2px dashed var(--marine);border-radius:12px;text-align:center}
.callbox p{margin:0;font-size:1rem}
.callbox__num{font:800 1.35rem var(--f-head)!important;margin-top:4px!important}
.passage{margin-top:clamp(40px,5vw,72px);display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(24px,4vw,56px);align-items:start;padding-top:clamp(36px,5vw,56px);border-top:2px dashed var(--line-d)}
.passage .ticks li::before{content:"";position:absolute;left:0;top:.28em;width:20px;height:20px;background:var(--encre);-webkit-mask:var(--peak) center/contain no-repeat;mask:var(--peak) center/contain no-repeat}
.sec--marine .ticks li::before,.sec--marine-2 .ticks li::before{background:var(--signal)}
.passage .lead{margin-top:0}
@media (max-width:980px){.forms,.passage{grid-template-columns:1fr}}
@media (max-width:480px){.field-row{grid-template-columns:1fr}}

/* ---------- FAQ ---------- */
.faq-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,5vw,72px);align-items:start}
.faq-wrap .sec__head{margin:0}
.faq{display:grid;gap:12px}
.faq details{background:var(--creme-2);border:2px solid var(--marine);border-radius:var(--r);overflow:hidden}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;min-height:56px;font:800 1.0625rem/1.3 var(--f-head)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:28px;height:28px;border-radius:50%;background:var(--signal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%230E1726' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(180deg)}
.faq details p{margin:0;padding:0 20px 20px;max-width:46em}
@media (max-width:900px){.faq-wrap{grid-template-columns:1fr}}

/* ---------- Pied de page ---------- */
.footer{position:relative;background:var(--marine);color:var(--creme);padding-top:clamp(44px,6vw,80px);}
.footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px}
.footer .brand img{height:60px}
.footer__slogan{font:800 1.35rem/1.15 var(--f-head);margin:20px 0 10px}
.footer__slogan .hero__you{font-style:italic}
.footer__small{font-size:.9375rem;color:var(--ardoise);max-width:26em}
.chip{display:inline-block;margin:6px 0 0;padding:5px 14px;border:2px dashed var(--line-d);border-radius:999px;font-weight:700;font-size:.8125rem}
.footer__h,.footer__title{font:800 .8125rem var(--f-body);letter-spacing:.14em;text-transform:uppercase;margin:0 0 14px;color:var(--ardoise)}
.footer__list{display:grid;gap:8px;font-size:1.0625rem}
.footer__list a{text-decoration:none;display:inline-block;padding:10px 0;margin:-7px 0}
.footer__list a:hover{text-decoration:underline;text-decoration-color:var(--signal);text-decoration-thickness:3px}
.footer__web{font-weight:800}
.footer__legal{margin-top:44px;padding-block:20px 26px;border-top:1px solid var(--line-d);font-size:.9375rem;color:var(--ardoise)}
.footer__legal p{margin:0}
@media (max-width:900px){
  .footer__grid{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;text-align:center}
  .footer__small{max-width:32em}
}
@media (max-width:480px){
  .footer__grid{grid-template-columns:1fr;text-align:center;justify-items:center;gap:28px}
  .footer__brand{display:flex;flex-direction:column;align-items:center}
  .footer__small{max-width:28em}
  .footer__list{justify-items:center}
  .footer__legal{text-align:center;padding-bottom:calc(26px + 72px)}
}

/* ---------- Barre mobile ---------- */
.mobilebar{display:none}
@media (max-width:760px){
  .mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));background:var(--marine);border-top:2px dashed var(--line-d);transform:translateY(110%);transition:transform .25s}
  .mobilebar.is-on{transform:none}
  .mobilebar .btn{min-height:48px;padding-inline:.6em}
  .mobilebar .btn--ghost{color:var(--creme)}
  body{padding-bottom:70px}
}

/* ---------- Mentions légales ---------- */
.legalhead{background:var(--marine) url("../assets/crete-sombre.svg") center/cover;color:var(--creme);padding-block:clamp(44px,7vw,88px)}
.h1-legal{font-size:clamp(2.4rem,6vw,4.4rem)}
.prose{max-width:50rem}
.prose h2{font-size:clamp(1.5rem,3vw,2rem);margin:2.2em 0 .6em}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{max-width:46em}
.prose a{font-weight:700}
.dl{display:grid;grid-template-columns:minmax(150px,.4fr) 1fr;gap:0;margin:0 0 1.4em;border:2px solid var(--marine);border-radius:var(--r);overflow:hidden;background:var(--creme-2)}
.dl dt,.dl dd{margin:0;padding:12px 16px;border-bottom:1px dashed var(--line)}
.dl dt{font-weight:800;background:var(--sable-l)}
.dl dt:last-of-type,.dl dd:last-of-type{border-bottom:0}
@media (max-width:560px){.dl{grid-template-columns:1fr}.dl dt{border-bottom:0;padding-bottom:2px}.dl dd{padding-top:2px}}


/* ---------- Association : nouvelles sections ---------- */
.field-stack{display:block}
.pros__ticks{margin:0;grid-template-columns:1fr 1fr;gap:12px 28px}
.pros .ticks li::before{background:var(--signal)}
@media (max-width:700px){.pros__ticks{grid-template-columns:1fr}}
.pros__head .btn{margin-top:20px}
.pros{grid-template-columns:1fr 1.3fr}
@media (max-width:860px){.pros{grid-template-columns:1fr}}

.pcs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.pcard{display:flex;flex-direction:column;background:var(--creme-2);border:2px solid var(--marine);border-radius:var(--r-lg);padding:26px 24px 28px;box-shadow:6px 6px 0 var(--marine)}
.pcard--hl{background:var(--marine);color:var(--creme);box-shadow:6px 6px 0 var(--signal);border-color:var(--marine)}
.pcard__ico{width:60px;height:60px;fill:none;stroke:var(--marine);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;margin-bottom:16px;background:var(--sable-l);border-radius:16px;padding:10px;box-sizing:border-box}
.pcard--hl .pcard__ico{stroke:var(--creme);background:var(--marine-3)}
.pcard h2{font-size:1.5rem;margin-bottom:10px}
.pcard p{margin:0 0 14px;font-size:1.0625rem}
.pcard__price{font-weight:700;padding:12px 14px;border:2px dashed var(--line);border-radius:12px;background:rgba(255,255,255,.5)}
.pcard--hl .pcard__price{border-color:var(--line-d);background:var(--marine-2)}
.pcard .btn{margin-top:auto;align-self:flex-start}
.pcard__price+.btn{margin-top:auto}
.pcard__note{margin:14px 0 0!important;font-size:1rem!important}
.pcard--hl a:not(.btn){color:var(--signal-hi);font-weight:700}
.pcard--hl .btn--primary{background:var(--signal);color:var(--marine);border-color:var(--signal)}
.pcard--hl .ph{color:var(--creme)}
@media (max-width:1000px){.pcs{grid-template-columns:1fr;max-width:640px;margin-inline:auto}}

.phases{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:clamp(28px,4vw,48px) 0 clamp(28px,4vw,44px)}
.phase{position:relative;border:2px dashed var(--line-d);border-radius:var(--r-lg);padding:20px 22px 22px;background:var(--marine)}
.phase h3{font-size:1.3rem;margin:10px 0 6px}
.phase p{margin:0;color:var(--ardoise);font-size:1.0625rem}
.phase__chip{display:inline-block;padding:4px 12px;border-radius:999px;font-weight:800;font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;border:2px solid var(--line-d);color:var(--creme)}
.phase--now{border:2px solid var(--signal)}
.phase--now .phase__chip{background:var(--signal);border-color:var(--signal);color:var(--marine)}
.phase--next .phase__chip{border-style:dashed;border-color:var(--signal-hi);color:var(--signal-hi)}
.phase .ph{color:var(--creme)}
@media (max-width:860px){.phases{grid-template-columns:1fr}}

.partners{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.partners li{background:var(--creme-2);border:2px dashed var(--line);border-radius:var(--r-lg);padding:22px 20px 24px}
.partners__ico{width:52px;height:52px;fill:none;stroke:var(--marine);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;margin-bottom:12px;background:var(--sable-l);border-radius:14px;padding:9px;box-sizing:border-box}
.partners h3{font-size:1.2rem;margin-bottom:6px}
.partners p{margin:0;font-size:1.0625rem}
.partners .partners__cta{background:var(--marine);color:var(--creme);border:2px solid var(--marine);display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.partners__cta p{color:var(--ardoise)}
.partners__cta .btn{margin-top:auto}
@media (max-width:1100px){.partners{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.partners{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.partners{grid-template-columns:1fr}}

.joincards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.jcard{display:flex;flex-direction:column;background:var(--creme-2);border:2px solid var(--marine);border-radius:var(--r-lg);padding:24px 22px 26px;box-shadow:5px 5px 0 var(--marine)}
.jcard__ico{width:56px;height:56px;fill:none;stroke:var(--marine);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;margin-bottom:14px;background:var(--sable-l);border-radius:16px;padding:10px;box-sizing:border-box}
.jcard h3{font-size:1.35rem;margin-bottom:8px}
.jcard p{margin:0 0 12px;font-size:1.0625rem}
.jcard__price{font-weight:700}
.jcard__note{font-size:1rem!important;color:var(--pierre)}
.jcard .btn{margin-top:auto;align-self:flex-start}
@media (max-width:1100px){.joincards{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.joincards{grid-template-columns:1fr}}
.supporters{margin-top:clamp(36px,5vw,60px);padding-top:28px;border-top:2px dashed var(--line)}
.supporters__list{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0 0}
.supporters__list li{min-height:88px;display:grid;place-items:center;border:2px dashed var(--line);border-radius:var(--r);background:var(--creme-2);text-align:center;padding:8px}
@media (max-width:700px){.supporters__list{grid-template-columns:1fr 1fr}}

/* Appel à partenariat (accueil / association) quand aucun logo publié */
.partner-cta{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.7fr);gap:clamp(22px,3vw,36px);align-items:center;background:var(--creme-2);border:1px solid var(--sable);border-radius:var(--r-lg);padding:clamp(24px,3.5vw,40px);color:var(--marine)}
.partner-cta__title{margin:0 0 12px;font:800 clamp(1.25rem,2.2vw,1.55rem)/1.25 var(--f-head);color:var(--marine)}
.partner-cta__text{margin:0 0 18px;font:500 1.0625rem/1.55 var(--f-body);color:var(--marine);max-width:42rem}
.partner-cta__pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.partner-cta__pills li{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 14px 8px 8px;background:#fff;border:1px solid var(--sable);border-radius:999px;font:700 .9375rem/1.2 var(--f-body);color:var(--marine)}
.partner-cta__ico{width:36px;height:36px;flex:none;fill:none;stroke:var(--encre);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;background:var(--sable-l);border-radius:50%;padding:7px;box-sizing:border-box}
.partner-cta__side{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.partner-cta__btn{width:100%;max-width:280px;min-height:48px;border-color:var(--signal)}
.partner-cta__fig{display:block;width:120px;height:auto;pointer-events:none}
@media (max-width:860px){
  .partner-cta{grid-template-columns:1fr;padding:clamp(22px,5vw,28px)}
  .partner-cta__side,.partner-cta__btn{width:100%;max-width:none}
  .partner-cta__fig{display:none}
}

.dl--sm{margin-top:24px;max-width:34rem}
.person--join{grid-column:1/-1;background:var(--marine);color:var(--creme);box-shadow:6px 6px 0 var(--signal);padding:22px 24px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.person--join p{color:var(--ardoise)}
.person--join p:last-child{font-size:1.0625rem}
.person--join .btn{margin-top:8px;background:var(--signal);border-color:var(--signal);color:var(--marine)}
.passage + .passage{margin-top:clamp(32px,4vw,48px)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
.topnav li a,.topnav .btn{white-space:nowrap}

/* =====================================================================
   V3 — thème nuit dominant, crêtes en bord de section, pages multiples
   ===================================================================== */
.sec--creme{--bg:var(--creme)}
.sec--sable{--bg:var(--sable-l)}
.sec--marine{--bg:var(--marine);--card:var(--marine-3)}
.sec--marine-2{--bg:var(--marine-2);--card:var(--marine-3)}
.sec--marine-3{--bg:var(--marine-3);--card:var(--marine-2);background:var(--marine-3);color:var(--creme)}
.sec--dark{color:var(--creme)}

/* Crête : le haut de chaque section « monte » dans la précédente, comme le pied de page */
.hero+.sec::after,.pagehead+.sec::after,.footer::before{content:"";position:absolute;left:0;right:0;top:calc(-1 * var(--rh));height:calc(var(--rh) + 2px);pointer-events:none;z-index:0;-webkit-mask:var(--ridge-m) center bottom/1200px 100% repeat-x;mask:var(--ridge-m) center bottom/1200px 100% repeat-x}
/* une seule couche : la crête a exactement la couleur de la section à laquelle elle appartient (2 px de recouvrement, pas de couture) */
.hero+.sec::after,.pagehead+.sec::after{background:var(--bg)}
.footer::before{background:var(--marine)}
.hero+.sec,.pagehead+.sec,.footer{--rh:clamp(28px,4.5vw,64px)}
.hero+.sec{--rh:clamp(40px,6.5vw,92px)}
.hero .wrap{position:relative;z-index:1}

/* Thème nuit : composants */
.sec--dark .eyebrow{color:var(--creme)}
.sec--dark .eyebrow::before{background:var(--signal)}
.sec--dark .lead-ink,.sec--dark .lead{color:var(--ardoise)}
.sec--dark .caption{color:var(--ardoise)}
.sec--dark .ticks li::before{background:var(--signal)}
.sec--dark .ph{background:rgba(45,184,119,.22)}
.sec--dark .svc,.sec--dark .pcard,.sec--dark .partners li,.sec--dark .jcard,.sec--dark .supporters__list li{background:var(--card);border:2px solid var(--ligne);color:var(--creme);box-shadow:none}
.sec--dark .svc:hover{border-color:var(--signal)}
.sec--dark .svc__no{color:var(--ardoise)}
.sec--dark .svc__ico,.sec--dark .pros__ico{stroke:var(--creme);background:var(--marine);box-shadow:inset 0 0 0 2px var(--ligne),5px 5px 0 var(--signal)}
.sec--dark .pcard__ico,.sec--dark .partners__ico,.sec--dark .jcard__ico{stroke:var(--creme);background:var(--marine)}
.sec--dark .pcard__price{border-color:var(--ligne);background:rgba(14,23,38,.5)}
.sec--dark .pcard--hl{background:var(--marine);border-color:var(--signal);box-shadow:6px 6px 0 var(--signal)}
.sec--dark .pcard--hl .pcard__ico{background:var(--marine-3)}
.sec--dark .pcard a:not(.btn){color:var(--signal-hi);font-weight:700}
.sec--dark .jcard__note{color:var(--ardoise)}
.sec--dark .partners .partners__cta{background:var(--marine);border-color:var(--signal)}
.sec--dark .supporters{border-top-color:var(--line-d)}
.sec--dark .btn--primary{background:var(--signal);color:var(--marine);border-color:var(--signal)}
.sec--dark .btn--primary:hover{background:var(--signal-hi)}
.sec--dark .card .btn--primary{background:var(--marine);color:var(--creme);border-color:var(--marine)}
.sec--dark .card .btn--primary:hover{background:var(--marine-3)}
.sec--dark .step__n{background:var(--signal);color:var(--marine);box-shadow:0 0 0 6px var(--bg),0 0 0 9px var(--signal)}
.sec--dark .steps::before{border-top-color:var(--ligne)}
@media (max-width:860px){.sec--dark .steps::before{border-top:0;border-left:4px dashed var(--ligne)}}
.sec--dark table.grid{background:var(--card);border-color:var(--ligne)}
.sec--dark .grid thead th{background:var(--marine)}
.sec--dark .grid th,.sec--dark .grid td{border-bottom-color:var(--ligne)}
.sec--dark .grid small{color:var(--ardoise)}
.sec--dark .faq details{background:var(--card);border-color:var(--ligne)}
.sec--dark .faq details[open]{border-color:var(--signal)}
.sec--dark .dl{background:var(--card);border-color:var(--ligne)}
.sec--dark .dl dt{background:var(--marine)}
.sec--dark .dl dt,.sec--dark .dl dd{border-bottom-color:var(--ligne)}
.sec--dark .phase{background:var(--card)}
.sec--dark .zone{border-color:var(--ligne)}
.sec--dark .stop-row{background:rgba(14,23,38,.35)}
.sec--dark .mapbox{background:var(--marine)}
.sec--dark .callbox{border-color:var(--ligne)}
.sec--dark .prose a{color:var(--signal-hi)}
/* formulaires : carte crème sur fond nuit */
.card{box-shadow:0 0 0 3px var(--signal)}
.sec--creme .card,.sec--sable .card{box-shadow:none;border:2px solid var(--marine);background:var(--creme-2)}

/* En-tête de page (version allégée du hero) */
.pagehead{position:relative;background:var(--marine) url("../assets/crete-sombre.svg") center/cover;color:var(--creme);padding-block:clamp(30px,4.5vw,64px) clamp(56px,8vw,112px)}
.crumbs{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:.9375rem;color:var(--ardoise);margin:0 0 18px}
.crumbs a{color:var(--ardoise);text-underline-offset:.2em}
.crumbs a:hover{color:var(--creme)}
.crumbs li+li::before{content:"›";margin-right:10px;opacity:.7}
.crumbs [aria-current]{color:var(--creme);font-weight:700}
.crumbs{list-style:none;padding:0}
.crumbs li{display:inline-flex}
.pagehead__in{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(20px,4vw,56px);align-items:center}
.pagehead__title{font-size:clamp(2.2rem,5.4vw,4rem);line-height:1;letter-spacing:-.025em;margin:0 0 18px;color:var(--creme)}
.pagehead__title em{font-style:normal;color:var(--signal)}
.pagehead .lead{margin-top:0;color:var(--ardoise)}
.pagehead__ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.pagehead__fig{display:grid;place-items:center}
.pagehead__fig svg{width:min(260px,70%);height:auto;fill:none;stroke:var(--creme);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.9;background:var(--marine-2);border-radius:50%;padding:12%;box-shadow:inset 0 0 0 2px var(--ligne),10px 10px 0 var(--signal)}
@media (max-width:860px){.pagehead__in{grid-template-columns:1fr}.pagehead__fig{display:none}}

/* Accueil : trois piliers */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pillar{display:flex;flex-direction:column;background:var(--card);border:2px solid var(--ligne);border-radius:var(--r-lg);padding:28px 26px 30px;transition:transform .2s,border-color .2s}
.pillar:hover{transform:translateY(-4px);border-color:var(--signal)}
.pillar__ico{width:64px;height:64px;fill:none;stroke:var(--creme);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;margin-bottom:18px;background:var(--marine);border-radius:50%;padding:12px;box-shadow:inset 0 0 0 2px var(--ligne),5px 5px 0 var(--signal)}
.pillar h3{font-size:1.5rem;margin-bottom:10px}
.pillar p{margin:0 0 20px;color:var(--ardoise);font-size:1.0625rem}
.pillar .btn{margin-top:auto;align-self:flex-start}
@media (max-width:1000px){.pillars{grid-template-columns:1fr;max-width:640px;margin-inline:auto}}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.chips li{padding:6px 14px;border:2px dashed var(--line-d);border-radius:999px;font-weight:700;font-size:.9375rem}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}
.band{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(20px,4vw,56px);align-items:center}
.band h2{margin-bottom:12px}
.band__links{display:grid;gap:12px;justify-items:start}
.band__links .btn{min-width:min(100%,280px)}
.band__q{margin:6px 0 0;font-size:1.0625rem}
@media (max-width:860px){
  .band{grid-template-columns:1fr;text-align:center;justify-items:center}
  .band .eyebrow{justify-content:center}
  .band__links{justify-items:center;width:100%}
  .band__links .btn{width:min(100%,320px)}
}
.sec--creme .btn--primary:hover{background:var(--marine-3)}
.btn--ghost-ink{border-color:var(--marine);color:var(--marine);background:transparent}
.btn--ghost-ink:hover{background:rgba(14,23,38,.08)}

/* Cartes d'équipe (personnages) */
.tcards{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.tcard{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(14px,2vw,24px);align-items:center;background:var(--marine-3);border:1px solid var(--ligne);border-radius:22px;padding:clamp(14px,1.8vw,20px);box-shadow:0 18px 34px rgba(0,0,0,.28)}
.sec--marine-2 .tcard,.sec--marine-3 .tcard{background:var(--marine-3)}
.sec--marine-3 .tcard{background:var(--marine-2)}
.tcard__art{position:relative;aspect-ratio:420/600;border-radius:16px;overflow:hidden;box-shadow:inset 0 0 0 2px rgba(245,239,227,.12);background:var(--marine) repeating-radial-gradient(circle at 50% 56%,rgba(58,98,184,.5) 0 12px,rgba(14,23,38,0) 12px 30px)}
.tcard--b .tcard__art{background:var(--marine) repeating-radial-gradient(circle at 50% 56%,rgba(45,184,119,.34) 0 12px,rgba(14,23,38,0) 12px 30px)}
.tcard__art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.tcard__name{font:400 clamp(1.5rem,2.6vw,2rem)/1.05 "Shrikhand","Archivo",serif;font-style:italic;color:var(--creme);text-shadow:3px 3px 0 #3A62B8;margin:0 0 8px;letter-spacing:.01em}
.tcard--b .tcard__name{text-shadow:3px 3px 0 #1F8A57}
.tcard__role{margin:0 0 10px;font:800 .8125rem/1.3 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--signal)}
.tcard__bio{margin:0 0 14px;font-size:1.0625rem;color:var(--creme);opacity:.95}
.tcard__tags{display:flex;flex-wrap:wrap;gap:8px}
.tcard__tags li{padding:4px 12px;border:1px solid var(--ligne);border-radius:999px;font-weight:700;font-size:.8125rem;color:var(--ardoise);background:rgba(14,23,38,.4)}
@media (max-width:1000px){.tcards{grid-template-columns:1fr;max-width:640px;margin-inline:auto}}
@media (max-width:420px){.tcard{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:12px}.tcard__bio{font-size:1rem}.tcard__name{font-size:1.35rem}}
.team{align-items:start}
.person--join{box-shadow:none}

/* Pages : bloc d'info + formulaire court */
.formsec{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,5vw,72px);align-items:start}
.formsec__intro .h2{margin-bottom:14px}
.formsec__intro .ticks{margin-top:22px}
.formsec .card{max-width:640px;width:100%}
@media (max-width:900px){.formsec{grid-template-columns:1fr}}
.form .h3{margin-bottom:6px}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);align-items:start}
@media (max-width:900px){.twocol{grid-template-columns:1fr}}
.infocards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.infocard{background:var(--card);border:2px solid var(--ligne);border-radius:var(--r-lg);padding:22px 22px 24px}
.infocard h3{font-size:1.25rem;margin-bottom:6px}
.infocard p{margin:0;font-size:1.0625rem}
.infocard .ph{display:inline-block}
@media (max-width:900px){.infocards{grid-template-columns:1fr}}
.faq--one{max-width:56rem}
.nextlinks{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:clamp(28px,4vw,44px)}
.nextlinks a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;border:2px solid var(--ligne);border-radius:var(--r);text-decoration:none;font:800 1.125rem var(--f-head);background:var(--card)}
.nextlinks a:hover{border-color:var(--signal)}
@media (max-width:640px){.nextlinks{grid-template-columns:1fr}}
.footer__list a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--signal);text-decoration-thickness:3px}
/* v3 — compléments de pages */
.steps--3{grid-template-columns:repeat(3,1fr)}
.steps--3::before{left:12%;right:12%}
@media (max-width:860px){.steps--3{grid-template-columns:1fr}}
.twocol--top{margin-bottom:clamp(28px,4vw,48px)}
.team__h{margin:0 0 18px}
.split--tight{margin-bottom:0}
.sec--creme .infocard{background:var(--creme-2);border-color:var(--sable)}
.sec--creme .infocard h3{color:var(--marine)}
.sec--dark .tarifs{color:var(--creme)}
.tarifs{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,5vw,64px);align-items:start}
@media (max-width:900px){.tarifs{grid-template-columns:1fr}}
.partners__cta .btn--primary{background:var(--signal);color:var(--marine);border-color:var(--signal)}

/* v4 — équilibre nuit / crème : composants en version claire */
.sec--creme{--card:var(--creme-2)}
.sec--creme .pillar{background:var(--creme-2);border-color:var(--marine)}
.sec--creme .pillar:hover{border-color:var(--encre)}
.sec--creme .pillar p{color:var(--marine);opacity:.88}
.sec--creme .pillar__ico{stroke:var(--creme);background:var(--marine);box-shadow:5px 5px 0 var(--signal)}
.sec--creme .nextlinks a{border-color:var(--marine)}
.sec--creme .chips li{border-color:var(--marine)}
.footer{border-top:0}
.sec--creme .lead,.sec--creme .lead-ink,.sec--creme .caption--dark{color:var(--marine)}
.sec--creme .caption--dark{opacity:.85}
.sec--creme .phase{background:var(--creme-2);border-color:var(--marine);border-style:solid}
.sec--creme .phase--now{border-color:var(--encre);box-shadow:5px 5px 0 var(--signal)}
.sec--creme .phase p,.sec--creme .zone p,.sec--creme .stop-row__meta{color:var(--marine);opacity:.88}
.sec--creme .phase__chip{color:var(--marine);border-color:var(--marine)}
.sec--creme .phase--now .phase__chip{background:var(--signal);border-color:var(--signal);color:var(--marine)}
.sec--creme .phase--next .phase__chip{color:var(--encre);border-color:var(--encre)}
.sec--creme .phase .ph{color:var(--marine)}
.sec--creme .stop-row{background:var(--creme-2);border:2px solid var(--marine)}
.sec--creme .stop-row.is-active{background:#fff;border-color:var(--encre)}
.sec--creme .stop-row.is-next{border-color:var(--encre);box-shadow:4px 4px 0 var(--signal)}
.sec--creme .stop-next{background:var(--signal);color:var(--marine)}
.sec--creme .stop-done{background:var(--line);color:var(--marine)}
.sec--creme .stop-row .btn--line,.sec--creme .zone .btn--line{border-color:var(--marine);color:var(--marine)}
.sec--creme .btn--line:hover{background:rgba(14,23,38,.08);border-color:var(--marine)}
.sec--creme .zone{border:2px dashed var(--marine)}
.sec--creme .zone__h{color:var(--marine)}
.sec--creme .mapbox{background:var(--marine);border-style:solid;border-color:var(--marine)}
.sec--creme .mapbox{color:var(--creme)}
