/* CG Depan : maquette multi-pages, direction B "Nuit turquoise". Tokens = futur theme.json.
   Clair et sombre testes (axe + contrastes AAA). Animations : amelioration progressive, coupees en mouvement reduit. */
@font-face{font-family:"Plus Jakarta Sans";src:url(fonts/plus-jakarta-sans-latin-wght-normal.woff2) format("woff2");font-weight:200 800;font-display:swap}
:root{
  color-scheme:dark light;
  --brand:#30a398; --accent:#f6bb06; --accent-ink:#1a1a1a; --navy:#284e73;
  --bg:#0c1a28; --bg-2:#112638; --bg-3:#183550;
  --fg:#eaf3f8; --muted:#b4c6d6; --link:#6fd3c8; --rule:rgba(234,243,248,.22);
  --field:#8aa3b8; --focus-in:#ffffff; --focus-out:#0c1a28; --panel-ink:#0c1a28; --panel:#52c6bb;
  --glow:rgba(48,163,152,.38); --grid:rgba(234,243,248,.06); --spot:rgba(111,211,200,.16);
  --font:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --step--1:clamp(.94rem,.92rem + .1vw,1rem);
  --step-0:clamp(1.125rem,1.09rem + .15vw,1.25rem);
  --step-1:clamp(1.3rem,1.2rem + .5vw,1.6rem);
  --step-2:clamp(1.6rem,1.4rem + 1vw,2.2rem);
  --step-3:clamp(2rem,1.5rem + 2.4vw,3.2rem);
  --step-4:clamp(2.4rem,1.4rem + 4.4vw,5.4rem);
  --space-s:clamp(.75rem,.7rem + .3vw,1rem);
  --space-m:clamp(1.25rem,1.1rem + .8vw,2rem);
  --space-l:clamp(2.5rem,2rem + 2.5vw,4.5rem);
  --space-xl:clamp(3.5rem,2.5rem + 4vw,7rem);
  --wrap:min(75rem,100% - 2*clamp(1rem,4vw,2rem));
  --radius:20px; --tap:2.75rem;
  --hdr-h:calc(5.25rem + 1px); --bar-h:0rem;
  --fold:calc(100svh - var(--hdr-h) - var(--bar-h));
}
/* theme : automatique (systeme) ou choisi par le visiteur (data-theme, memorise) */
:root[data-theme=dark]{color-scheme:dark}
:root[data-theme=light]{color-scheme:light;
  --bg:#f6fafb; --bg-2:#ffffff; --bg-3:#e6eef3;
  --fg:#12293d; --muted:#364a5c; --link:#0b5568; --rule:rgba(18,41,61,.28);
  --field:#5b7287; --focus-in:#ffffff; --focus-out:#12293d; --panel-ink:#0c1a28; --panel:#52c6bb;
  --glow:rgba(48,163,152,.16); --grid:rgba(18,41,61,.07); --spot:rgba(11,85,104,.10);
}
@media (prefers-color-scheme:light){:root:not([data-theme=dark]){
  --bg:#f6fafb; --bg-2:#ffffff; --bg-3:#e6eef3;
  --fg:#12293d; --muted:#364a5c; --link:#0b5568; --rule:rgba(18,41,61,.28);
  --field:#5b7287; --focus-in:#ffffff; --focus-out:#12293d; --panel-ink:#0c1a28; --panel:#52c6bb;
  --glow:rgba(48,163,152,.16); --grid:rgba(18,41,61,.07); --spot:rgba(11,85,104,.10);
}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:6rem;scroll-padding-bottom:6rem}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}@view-transition{navigation:auto}}
body{margin:0;font-family:var(--font);font-size:var(--step-0);line-height:1.65;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl{margin:0}
h1,h2,h3,h4{line-height:1.12;letter-spacing:-.02em;text-wrap:balance;font-weight:800;overflow-wrap:anywhere;hyphens:auto}
p,li{text-wrap:pretty;max-width:46ch}
img,svg{display:block;max-width:100%}
a{color:var(--link);text-underline-offset:.2em;text-decoration-thickness:.08em}
@media (hover:hover){a:hover{text-decoration-thickness:.16em}}
.wrap{width:var(--wrap);margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
:focus{outline:none}
:focus-visible{outline:3px solid var(--focus-in);outline-offset:2px;box-shadow:0 0 0 6px var(--focus-out);border-radius:6px}
.skip-links{position:absolute;top:0;left:0;z-index:100}
.skip-links a{position:absolute;left:-9999px;top:.5rem;background:var(--accent);color:var(--accent-ink);padding:.9rem 1.2rem;border-radius:10px;font-weight:800;text-decoration:none;white-space:nowrap}
.skip-links a:focus{left:.5rem}
.ico{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ico-fill{fill:currentColor;stroke:none}
.tbc{display:block;width:fit-content;max-width:100%;margin:.6rem 0 0;border:1.5px dashed var(--accent);color:var(--fg);background:transparent;font-size:.9rem;line-height:1.4;font-weight:600;padding:.25rem .65rem;border-radius:8px}
.tbc::before{content:"À confirmer \00b7 ";font-weight:800;color:var(--accent)}

/* boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:var(--tap);padding:.7rem 1.4rem;border-radius:999px;font:inherit;font-weight:800;text-decoration:none;border:2px solid transparent;cursor:pointer;line-height:1.2}
.btn-lg{min-height:3.5rem;padding-inline:1.8rem}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
@media (hover:hover){.btn-primary:hover{background:#ffcb2e}}
.btn-primary .ico{transition:translate .2s}
@media (hover:hover){.btn-primary:hover .ico{translate:.25rem 0}}
.btn-ghost{border-color:currentColor;color:var(--fg);background:transparent}
@media (hover:hover){.btn-ghost:hover{background:color-mix(in oklab,var(--fg) 12%,transparent)}}
.btn-dark{background:var(--panel-ink);color:#fff}
@media (prefers-reduced-motion:no-preference){.btn{transition:background-color .2s,transform .2s}@media (hover:hover){.btn:hover{transform:translateY(-2px)}}}

/* en-tete */
.hdr{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:1px solid var(--rule)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--hdr-h)}
.logo{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--fg);font-weight:800;line-height:1.15;min-height:var(--tap)}
.logo-svg{height:3.5rem;width:2.9rem;fill:currentColor}
.logo small{display:block;font-weight:600;color:var(--muted);font-size:.875rem}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.25rem;align-items:center;flex-wrap:wrap}
.nav li{max-width:none}
.nav a{position:relative;display:inline-flex;align-items:center;min-height:var(--tap);padding:.5rem 1.05rem;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:700;letter-spacing:.005em}
.nav a:not(.btn)::after{content:"";position:absolute;left:1.05rem;right:1.05rem;bottom:.3rem;height:2px;border-radius:2px;background:var(--link);transform:scaleX(0);transform-origin:center;pointer-events:none}
.nav a[aria-current]:not(.btn){color:var(--fg)}@media (hover:hover){.nav a:not(.btn):hover{color:var(--fg)}}
.nav a[aria-current=true]:not(.btn)::after{transform:scaleX(.3)}@media (hover:hover){.nav a:not(.btn):hover::after{transform:scaleX(.3)}}
.nav a[aria-current=page]:not(.btn)::after{transform:scaleX(1);box-shadow:0 0 .75rem var(--glow)}
.nav a.btn{margin-left:.75rem;color:var(--accent-ink);background:var(--accent);padding-inline:1.4rem}
@media (hover:hover){.nav a.btn:hover{background:#ffcb2e}}
.nav a.btn[aria-current]{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent)}
@media (prefers-reduced-motion:no-preference){.nav a{transition:color .2s}.nav a:not(.btn)::after{transition:transform .35s cubic-bezier(.2,.8,.2,1)}}
@media (forced-colors:active){.nav a:not(.btn)::after{background:Highlight;forced-color-adjust:none}.nav a[aria-current]{text-decoration:underline}}
.theme-btn,.menu-btn{min-height:var(--tap);min-width:var(--tap);align-items:center;justify-content:center;gap:.5rem;border:2px solid currentColor;border-radius:999px;background:transparent;color:var(--fg);font:inherit;font-weight:800;cursor:pointer}
.theme-btn{display:none;padding:.5rem;order:5;margin-left:.25rem}
.js .theme-btn{display:inline-flex}
@media (hover:hover){.theme-btn:hover{background:var(--bg-3)}}
.theme-btn .ico{width:1.4rem;height:1.4rem}
.theme-btn .i-sun{display:none}
:root[data-theme=dark] .theme-btn .i-sun{display:block}
:root[data-theme=dark] .theme-btn .i-moon{display:none}
.nav{margin-left:auto}
.menu-btn{display:none;min-height:var(--tap);min-width:var(--tap);align-items:center;gap:.5rem;padding:.5rem 1rem;border:2px solid currentColor;border-radius:999px;background:transparent;color:var(--fg);font:inherit;font-weight:800;cursor:pointer}
@media (max-width:860px){
  .js .menu-btn{display:inline-flex}
  .theme-btn{order:0;margin-left:auto}
  .nav{margin-left:0}
  .js .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--rule);padding:var(--space-s) clamp(1rem,4vw,2rem) var(--space-m)}
  .js .nav[data-open]{display:block}
  .nav ul{flex-direction:column;align-items:stretch;gap:.25rem}
  .nav a{width:100%;border-radius:12px;padding-left:1.35rem}
  .nav a:not(.btn)::after{left:.4rem;right:auto;top:.7rem;bottom:.7rem;width:3px;height:auto;transform:scaleY(0)}
  .nav a[aria-current=true]:not(.btn)::after{transform:scaleY(.35)}@media (hover:hover){.nav a:not(.btn):hover::after{transform:scaleY(.35)}}
  .nav a[aria-current=page]:not(.btn)::after{transform:scaleY(1)}
  .nav a[aria-current=page]:not(.btn){background:var(--bg-3)}
  .nav a.btn{margin:.5rem 0 0;justify-content:center}
  .hdr .wrap{flex-wrap:wrap}
  html:not(.js) .nav{width:100%}
}
.crumbs{padding-top:var(--space-s);padding-bottom:var(--space-s);font-size:var(--step--1)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem .5rem}
.crumbs li{display:flex;gap:.5rem;align-items:center;max-width:none}
.crumbs li:not(:last-child)::after{content:"/";color:var(--muted)}
.crumbs a{display:inline-flex;align-items:center;min-height:var(--tap)}

/* hero (composant page-hero) : decor CSS, texte sur fond uni */
.page-hero{position:relative;isolation:isolate;overflow-x:clip;padding-block:var(--space-s) var(--space-m)}
.page-hero::before{content:"";position:absolute;z-index:-1;inset:-25% -12% auto auto;width:min(62rem,95vw);aspect-ratio:1;background:radial-gradient(closest-side,var(--glow),transparent 72%);pointer-events:none}
.page-hero::after{content:"";position:absolute;z-index:-1;inset:0;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:4rem 4rem;-webkit-mask-image:radial-gradient(60% 75% at 72% 25%,#000,transparent);mask-image:radial-gradient(60% 75% at 72% 25%,#000,transparent);pointer-events:none}
.kicker{font-weight:800;font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--link);display:flex;align-items:center;gap:.7rem;margin-bottom:var(--space-s)}
.kicker::before{content:"";width:2rem;height:3px;background:var(--brand);flex:none}
.page-hero h1{font-size:var(--step-3);max-width:20ch}
.page-hero h1 span{color:var(--link)}
.lead{font-size:var(--step-1);color:var(--muted);max-width:42ch;margin-top:var(--space-m);line-height:1.5}
.cta-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:var(--space-m)}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:var(--space-l);align-items:center}
.meta{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:var(--space-s);color:var(--muted);font-size:var(--step--1)}
.meta span{display:inline-flex;align-items:center;gap:.5rem}
.page-hero.is-home{padding-block:clamp(1rem,3.5svh,2.75rem) clamp(1rem,3svh,2rem)}
.is-home h1{font-size:clamp(2.1rem,min(1rem + 3.9vw,7.4svh),4.6rem);max-width:none;letter-spacing:-.04em;line-height:1.02}
.is-home .lead{margin-top:clamp(.75rem,2svh,1.5rem);font-size:clamp(1.05rem,.95rem + .5vw,1.4rem)}
.is-home .cta-row{margin-top:clamp(.75rem,2.4svh,1.75rem)}
.page-hero.is-full{display:flex;flex-direction:column;min-height:calc(100vh - var(--hdr-h) - var(--bar-h));min-height:var(--fold);padding-block:0 var(--space-s)}
.page-hero.is-full>.hero-body{margin-block:auto;padding-block:var(--space-m)}
.scroll-cue{display:inline-flex;align-items:center;gap:.6rem;min-height:var(--tap);font-weight:800;color:var(--fg);text-decoration:none;margin-bottom:var(--space-s)}
.scroll-cue .ico{transform:rotate(90deg);border:2px solid currentColor;border-radius:50%;padding:.35rem;width:2.25rem;height:2.25rem;box-sizing:border-box}
@media (hover:hover){.scroll-cue:hover span{text-decoration:underline}}

/* decor "visuel a venir" : composition CSS (le futur visuel prendra cette place) */
.stage{position:relative;margin:0;aspect-ratio:var(--ar,4/3);border-radius:calc(var(--radius)*1.4);overflow:hidden;border:1px solid var(--rule);display:grid;place-items:center;background:radial-gradient(120% 90% at 15% 0%,rgba(48,163,152,.6),transparent 62%),radial-gradient(90% 90% at 100% 100%,rgba(40,78,115,.95),transparent 62%),#12293d}
.stage::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(234,243,248,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(234,243,248,.07) 1px,transparent 1px);background-size:2.2rem 2.2rem;-webkit-mask-image:radial-gradient(70% 70% at 50% 50%,#000,transparent);mask-image:radial-gradient(70% 70% at 50% 50%,#000,transparent)}
.stage-ico{position:relative;display:grid;place-items:center;width:min(9rem,36%);aspect-ratio:1;border-radius:30%;background:rgba(234,243,248,.1);border:1px solid rgba(234,243,248,.28);color:#eaf3f8;box-shadow:0 1.5rem 4rem -1rem rgba(0,0,0,.55)}
.stage-ico .ico{width:46%;height:46%;stroke-width:1.5}
.stage figcaption{position:absolute;left:.75rem;bottom:.75rem;right:.75rem;background:#0c1a28;color:#eaf3f8;font-size:.8rem;line-height:1.35;padding:.35rem .7rem;border-radius:12px}
.hero-grid .stage{aspect-ratio:auto;width:100%;max-width:30rem;justify-self:end;height:min(30rem,calc(var(--fold) - 9rem))}

/* bandeau de preuves */
.proof{padding-block:var(--space-s) var(--space-m)}
.proof-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:var(--space-s)}
.proof-item{max-width:none;display:flex;align-items:center;gap:1rem;padding:var(--space-s) var(--space-m);background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius)}
.proof-ico{flex:none;width:3.25rem;height:3.25rem;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--panel-ink)}
.proof-ico .ico{width:1.5rem;height:1.5rem}
.proof-logo{flex:none;display:grid;place-items:center;width:4.75rem;height:3.5rem;padding:.25rem;border-radius:12px;background:#fff}
.proof-logo img{width:100%;height:100%;object-fit:contain}
.proof-item div{display:grid;gap:.1rem}
.proof-item strong{font-size:var(--step-1);line-height:1.2;letter-spacing:-.01em}
.proof-item span:not(.proof-ico):not(.proof-logo){color:var(--muted);font-size:var(--step--1)}

/* sections */
section{padding-block:var(--space-l)}
.sec-head{display:grid;gap:.5rem;margin-bottom:var(--space-m);max-width:60ch}
.sec-head .kicker{margin:0}
.sec-head h2{font-size:var(--step-3);max-width:20ch}
.sec-lead{color:var(--muted);font-size:var(--step-0)}

/* cartes "spot" : halo qui suit le pointeur (JS, decoratif) */
.spot{position:relative;overflow:hidden}
.spot::before{content:"";position:absolute;inset:0;background:radial-gradient(16rem circle at var(--mx,50%) var(--my,0%),var(--spot),transparent 65%);opacity:0;transition:opacity .3s;pointer-events:none}
@media (hover:hover){.spot:hover::before{opacity:1}}
.spot>*{position:relative}

/* bento services */
.bento{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(14rem,auto);gap:var(--space-s)}
.bento-card{max-width:none;display:flex;flex-direction:column;gap:.75rem;padding:var(--space-m);background:linear-gradient(160deg,var(--bg-2),var(--bg));border:1px solid var(--rule);border-radius:calc(var(--radius)*1.2);transition:border-color .25s,transform .25s}
@media (hover:hover){.bento-card:hover{border-color:var(--brand)}}
.bento-card.is-lg{grid-column:1/3;grid-row:1/3;background:radial-gradient(120% 80% at 0% 0%,rgba(48,163,152,.28),transparent 60%),linear-gradient(160deg,var(--bg-3),var(--bg-2))}
.bento-card.is-wide{grid-column:1/4}
.bento-num{position:absolute;right:var(--space-m);top:var(--space-s);font-size:var(--step-3);font-weight:800;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px var(--field);line-height:1}
.bento-ico{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:16px;background:var(--brand);color:var(--panel-ink)}
.bento-ico .ico{width:1.75rem;height:1.75rem}
.is-lg .bento-ico{width:4.5rem;height:4.5rem;border-radius:20px}
.is-lg .bento-ico .ico{width:2.25rem;height:2.25rem}
.bento-card h3{font-size:var(--step-2)}
.is-lg h3{font-size:var(--step-3)}
.bento-card h3 a{color:var(--fg);text-decoration:none}
.bento-card h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.bento-card p{color:var(--muted);max-width:44ch}
.bento-card:has(:focus-visible){outline:3px solid var(--focus-in);box-shadow:0 0 0 6px var(--focus-out)}
.bento-card a:focus-visible{outline:none;box-shadow:none}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto}
.chips li{max-width:none;font-size:var(--step--1);font-weight:700;padding:.25rem .8rem;border:1px solid var(--field);border-radius:999px;color:var(--fg)}
.bento-go{position:absolute!important;right:var(--space-m);bottom:var(--space-m);width:var(--tap);height:var(--tap);border-radius:50%;border:2px solid var(--fg);display:grid;place-items:center;transition:background-color .2s,color .2s,border-color .2s}
@media (hover:hover){.bento-card:hover .bento-go{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}}
.is-lg .bento-card .chips,.bento-card.is-lg .chips{margin-top:1rem}

/* onglets (modes d'intervention) : sans JS, les deux panneaux restent visibles */
.tablist{display:none;gap:.5rem;margin-bottom:var(--space-m)}
.js .tablist{display:flex;flex-wrap:wrap}
.tablist [role=tab]{display:inline-flex;align-items:center;gap:.6rem;min-height:3.25rem;padding:.6rem 1.4rem;border-radius:999px;border:2px solid var(--field);background:transparent;color:var(--fg);font:inherit;font-weight:800;cursor:pointer}
.tablist [role=tab][aria-selected=true]{background:var(--panel);border-color:var(--panel);color:var(--panel-ink)}
@media (hover:hover){.tablist [role=tab]:hover:not([aria-selected=true]){background:var(--bg-3)}}
.tabpanel{padding-block:var(--space-s)}
.js .tabpanel[hidden]{display:none}
.tab-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-l);align-items:center}
.tab-text{display:grid;gap:var(--space-s);align-content:center}
.tab-text h3{font-size:var(--step-2)}
.tab-text p{color:var(--muted)}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.ticks li{display:flex;gap:.75rem;align-items:flex-start;max-width:none}
.ticks .ico{color:var(--link);margin-top:.3rem}

/* etapes horizontales (accueil) */
.steps-h{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-s);counter-reset:s;position:relative}
.steps-h li{counter-increment:s;max-width:none;position:relative;padding:var(--space-m) var(--space-s) 0;display:grid;gap:.5rem;align-content:start}
.steps-h li::before{content:"";position:absolute;top:calc(var(--space-m) + 1.75rem);left:calc(var(--space-s) + 3.5rem + .5rem);right:calc(-1 * var(--space-s) + .5rem);height:2px;background:linear-gradient(90deg,var(--brand),var(--rule))}
.steps-h li:last-child::before{display:none}
.step-dot{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:50%;background:var(--bg-2);border:2px solid var(--brand);color:var(--link)}
.steps-h h3{font-size:var(--step-1);margin-top:.5rem}
.steps-h p{color:var(--muted);font-size:var(--step--1)}

/* avis : carte de synthese + carrousel */
.reviews-wrap{display:grid;grid-template-columns:18rem minmax(0,1fr);gap:var(--space-m);align-items:stretch}
.rating-card{display:grid;align-content:center;gap:.5rem;padding:var(--space-m);border-radius:calc(var(--radius)*1.2);background:radial-gradient(120% 100% at 0% 0%,rgba(48,163,152,.4),transparent 60%),var(--bg-3);border:1px solid var(--rule)}
.rating-big{font-size:var(--step-2);font-weight:800;letter-spacing:-.03em;line-height:1;overflow-wrap:normal;hyphens:none}
.rating-stars{color:var(--accent)}
.rating-stars .stars{display:inline-flex;gap:3px}
.rating-stars .ico{width:1.6rem;height:1.6rem}
.rating-text{color:var(--muted)}
.rating-text strong{color:var(--fg)}
.stars{display:flex;gap:2px;color:var(--accent)}
.carousel{display:grid;gap:var(--space-s);min-width:0}
.carousel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.carousel-count{color:var(--muted);font-weight:700}
.carousel-ctrl{display:none;gap:.5rem}
.js .carousel-ctrl{display:flex}
.car-btn{width:var(--tap);height:var(--tap);border-radius:50%;border:2px solid var(--fg);background:transparent;color:var(--fg);display:grid;place-items:center;cursor:pointer}
@media (hover:hover){.car-btn:hover{background:var(--bg-3)}}
.car-prev .ico{transform:scaleX(-1)}
.car-btn[aria-disabled="true"]{opacity:.45;cursor:default}
@media (hover:hover){.car-btn[aria-disabled="true"]:hover{background:transparent}}
.track{--gap:var(--space-s);position:relative;list-style:none;margin:0 -8px;padding:8px;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2 * var(--gap)) / 3);gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:8px;overscroll-behavior-x:contain;scrollbar-width:thin;border-radius:var(--radius)}
.track>li{scroll-snap-align:start;max-width:none;min-width:0}
.track.reviews{grid-auto-columns:calc((100% - var(--gap)) / 2)}
@media (prefers-reduced-motion:no-preference){.track{scroll-behavior:smooth}}
.reviews figure{margin:0;height:100%;background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--space-s) var(--space-m);display:flex;flex-direction:column;gap:.75rem;justify-content:space-between}
.reviews blockquote{margin:0;flex:1}
.reviews blockquote p{font-size:var(--step-0);line-height:1.5}
.reviews figcaption{color:var(--muted);font-size:var(--step--1);font-weight:600}
.js .reviews blockquote p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}
.js .reviews figure.is-open blockquote p{display:block;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible}
.rev-more{position:relative;align-self:start;min-height:var(--tap);padding:0;border:0;background:none;font:inherit;font-weight:800;color:var(--link);text-decoration:underline;text-underline-offset:.2em;cursor:pointer}

/* cartes d'articles */
.post{position:relative;display:grid;grid-template-rows:auto 1fr;height:100%;background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;transition:border-color .25s}
.post img{width:100%;height:auto;aspect-ratio:2/1;object-fit:contain;background:#fff}
.post .t{padding:var(--space-s) var(--space-m) var(--space-m);display:grid;gap:.5rem;align-content:start}
.post time{color:var(--muted);font-size:var(--step--1);font-weight:700}
.post h3{font-size:var(--step-1);line-height:1.25}
.post h3 a{color:var(--fg);text-decoration:none}
.post h3 a::after{content:"";position:absolute;inset:0;z-index:1}
@media (hover:hover){.post:hover{border-color:var(--brand)}}
.post:has(:focus-visible){outline:3px solid var(--focus-in);box-shadow:0 0 0 6px var(--focus-out)}
.post a:focus-visible{outline:none;box-shadow:none}
.news-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-s)}
.news-grid.is-3{grid-template-columns:repeat(3,1fr)}
.news-grid li{max-width:none}
.news-grid li:first-child .post.is-big{grid-template-rows:auto 1fr}
.news-grid:not(.is-3) li:first-child{grid-column:1/-1}
.post-cta{background:radial-gradient(120% 100% at 0% 0%,rgba(48,163,152,.35),transparent 60%),var(--bg-3)}
.post-cta .t{align-content:center;height:100%;padding:var(--space-m)}
.post-cta h3{font-size:var(--step-2)}
.post-cta p{color:var(--muted)}
.post-cta .btn{width:fit-content;margin-top:.5rem}
.news-grid:not(.is-3) li:first-child .post{grid-template-columns:1.2fr 1fr;grid-template-rows:auto}
.news-grid:not(.is-3) li:first-child .post img{height:auto;aspect-ratio:2/1;object-fit:contain;align-self:center}
.news-grid:not(.is-3) li:first-child .post h3{font-size:var(--step-2)}
.news-grid:not(.is-3) li:first-child .post .t{align-content:center;padding:var(--space-m)}

/* composants de pages internes */
.split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-l);align-items:start}
.split-side{position:sticky;top:7rem;display:grid;gap:.5rem}
.split-side h2{font-size:var(--step-3);max-width:14ch}
.split-side .kicker{margin:0}
.prose{display:grid;gap:var(--space-s);max-width:70ch}
.prose h2{font-size:var(--step-2);margin-top:var(--space-m)}
.prose h3{font-size:var(--step-1);margin-top:var(--space-s)}
.prose ul{padding-left:1.25rem;display:grid;gap:.5rem}
.split-main.prose{font-size:var(--step-1);line-height:1.55;gap:var(--space-m)}
.fgrid{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-s)}
.fcard{max-width:none;display:grid;gap:.9rem;align-content:start;padding:var(--space-m);background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);transition:border-color .25s}
.fgrid>.fcard{flex:0 1 calc((100% - (var(--n,4) - 1) * var(--space-s)) / var(--n,4));min-width:13rem}
.fstack>.fcard{flex:none}
@media (hover:hover){.fcard:hover{border-color:var(--brand)}}
.fcard p{font-weight:700;line-height:1.35;max-width:none}
.fcard-ico{display:grid;place-items:center;width:3rem;height:3rem;border-radius:14px;background:var(--bg-3);color:var(--link);flex:none}
.fcard-ico .ico{width:1.5rem;height:1.5rem}
.fcard-row{grid-template-columns:auto 1fr;align-items:start}
.fcard-row h3{font-size:var(--step-1);margin-bottom:.25rem}
.fcard-row p{font-weight:500;color:var(--muted)}
.fstack{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-s)}
.fstack li{max-width:none}
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-m);position:relative}
.timeline::before{content:"";position:absolute;left:1.5rem;top:1rem;bottom:1rem;width:2px;background:linear-gradient(var(--brand),var(--rule))}
.tl-item{max-width:none;display:grid;grid-template-columns:3rem 1fr;gap:var(--space-s);align-items:start;position:relative}
.tl-num{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--bg);border:2px solid var(--brand);color:var(--link);font-weight:800;position:relative;z-index:1}
.tl-item h3{font-size:var(--step-1);margin-bottom:.3rem}
.tl-item p{color:var(--muted)}
.duo{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-s)}
.pill{width:fit-content;font-size:var(--step--1);font-weight:800;padding:.2rem .8rem;border-radius:999px;background:var(--bg-3);border:1px solid var(--field)}
.duo-card{max-width:none;display:grid;gap:.75rem;align-content:start;padding:var(--space-m);background:linear-gradient(160deg,var(--bg-2),var(--bg));border:1px solid var(--rule);border-radius:calc(var(--radius)*1.2)}
.duo-card h3{font-size:var(--step-2)}
.duo-card p{color:var(--muted)}
.callout{display:flex;gap:var(--space-s);align-items:flex-start;padding:var(--space-m);border:1px solid var(--rule);border-left:6px solid var(--brand);border-radius:var(--radius);background:var(--bg-2)}
.callout-ico{flex:none;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--bg-3);color:var(--link)}
.callout-title{font-size:var(--step-1);font-weight:800;line-height:1.2;margin-bottom:.3rem}
.callout p{color:var(--muted);max-width:46ch}
.faq-list{max-width:52rem}
.faq details{border-bottom:1px solid var(--rule);max-width:none}
.faq summary{cursor:pointer;min-height:var(--tap);padding:1.1rem 0;font-weight:800;font-size:var(--step-1);display:flex;justify-content:space-between;gap:1rem;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.6em;line-height:1;flex:none;transition:rotate .2s}
.faq details[open] summary::after{content:"\2212"}
.faq details p{padding-bottom:1.1rem;color:var(--muted)}
.related{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-s)}
.rel-card{max-width:none;display:flex;align-items:center;gap:1rem;padding:var(--space-s) var(--space-m);background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);transition:border-color .25s}
@media (hover:hover){.rel-card:hover{border-color:var(--brand)}}
.rel-card h3{font-size:var(--step-1);flex:1}
.rel-card h3 a{color:var(--fg);text-decoration:none}
.rel-card h3 a::after{content:"";position:absolute;inset:0}
.rel-card:has(:focus-visible){outline:3px solid var(--focus-in);box-shadow:0 0 0 6px var(--focus-out)}
.rel-card a:focus-visible{outline:none;box-shadow:none}
.rel-go{display:grid;place-items:center;width:var(--tap);height:var(--tap);border-radius:50%;border:2px solid var(--fg);flex:none}
.chip-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.chip-row li{max-width:none}
.chip-row a,.chip-row.is-static li{display:inline-flex;align-items:center;min-height:var(--tap);padding:.4rem 1.1rem;border:2px solid var(--field);border-radius:999px;color:var(--fg);text-decoration:none;font-weight:700}
@media (hover:hover){.chip-row a:hover{background:var(--bg-3)}}
.note{margin-top:var(--space-s);color:var(--muted)}
.pullquote{display:grid;gap:var(--space-s);padding:var(--space-l);border-radius:calc(var(--radius)*1.4);background:radial-gradient(100% 120% at 100% 0%,rgba(48,163,152,.32),transparent 60%),var(--bg-3);border:1px solid var(--rule)}
.pullquote>.ico{width:3rem;height:3rem;color:var(--accent)}
.pullquote blockquote{margin:0}
.pullquote blockquote p{font-size:var(--step-3);line-height:1.15;font-weight:800;letter-spacing:-.03em;max-width:22ch}
.pullquote figcaption{color:var(--muted);font-size:var(--step-1);max-width:46ch}
.aside-card{background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--space-m)}
.aside-card h2{font-size:var(--step-1);margin-bottom:var(--space-s)}

/* article et pages documentaires */
.article-grid{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:var(--space-l);align-items:start}
.toc{position:sticky;top:7rem;border-left:2px solid var(--rule);padding-left:var(--space-s)}
.toc-title{font-weight:800;margin-bottom:.5rem;font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.toc ol{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}
.toc a{display:flex;align-items:center;min-height:var(--tap);color:var(--fg);text-decoration:none;font-size:var(--step--1);font-weight:600;line-height:1.3;padding-block:.25rem}
.toc a.is-active{color:var(--link);text-decoration:underline}@media (hover:hover){.toc a:hover{color:var(--link);text-decoration:underline}}
.article .cover{border-radius:var(--radius);background:#fff;width:100%;height:auto}
.article>p:first-of-type{font-size:var(--step-1);color:var(--fg);line-height:1.5}
.article h2{margin-top:var(--space-l);padding-top:var(--space-m);border-top:1px solid var(--rule);max-width:28ch}
.article h3{color:var(--link);margin-top:var(--space-m)}
.is-article h1{max-width:26ch}
.article p,.article li{max-width:46ch}
.article p,.article li{line-height:1.75}
.doc-sec{display:grid;gap:var(--space-s);padding-block:var(--space-s)}
.doc h2{font-size:var(--step-1);margin-top:0}
.stub{padding:var(--space-s);border:1.5px dashed var(--field);border-radius:var(--radius);color:var(--muted)}
.doc-sec+.doc-sec{border-top:1px solid var(--rule)}
.read-progress{position:fixed;top:0;left:0;right:0;height:4px;background:var(--accent);transform-origin:0 50%;scale:0 1;z-index:60;display:none}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:var(--space-l);align-items:start}
.form-card{background:var(--bg-2);border:1px solid var(--rule);border-radius:calc(var(--radius)*1.3);padding:var(--space-m)}
.form{display:grid;gap:var(--space-m)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-m)}
.field{display:grid;gap:.4rem;min-width:0}
.field label,.field legend,.choice-cards legend{font-weight:800}
.hint{color:var(--muted);font-size:var(--step--1)}
.req{font-weight:600;color:var(--muted);font-size:var(--step--1)}
input[type=text],input[type=email],input[type=tel],textarea,select{width:100%;min-height:3.25rem;padding:.7rem 1rem;font:inherit;color:var(--fg);background:var(--bg);border:2px solid var(--field);border-radius:12px}
textarea{min-height:9rem;resize:vertical}
@supports (field-sizing:content){textarea{field-sizing:content;min-height:9rem;max-height:22rem}}
input:user-invalid,textarea:user-invalid{border-color:var(--accent)}
.field[data-invalid] input,.field[data-invalid] textarea{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.err{color:var(--fg);background:color-mix(in oklab,var(--accent) 22%,transparent);border-left:6px solid var(--accent);padding:.5rem .8rem;border-radius:6px;font-weight:700}
fieldset{border:0;margin:0;padding:0;display:grid;gap:0;min-inline-size:0}
.choice{display:flex;align-items:flex-start;gap:.8rem;min-height:var(--tap);padding-block:.4rem;cursor:pointer}
.choice input{width:1.5rem;height:1.5rem;accent-color:var(--brand);flex:none}
.choice span{font-weight:500;font-size:var(--step--1)}
.err-summary{border:3px solid var(--accent);border-radius:var(--radius);padding:var(--space-m);background:var(--bg-2)}
.err-summary h2{font-size:var(--step-1);margin-bottom:.6rem}
.err-summary ul{padding-left:1.2rem;display:grid;gap:.3rem}
.ok-msg{border:3px solid var(--brand);border-radius:var(--radius);padding:var(--space-m);background:var(--bg);font-weight:700}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.choice-cards legend{margin-bottom:.6rem}
.cc-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-s)}
.card-choice{position:relative;display:block;cursor:pointer}
.card-choice input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.cc-body{display:flex;align-items:center;gap:1rem;min-height:5rem;padding:1rem 1.1rem;border:2px solid var(--field);border-radius:var(--radius);background:var(--bg);color:var(--fg);transition:border-color .2s,background-color .2s}
.cc-ico{width:2.75rem;height:2.75rem;padding:.6rem;border-radius:14px;background:var(--bg-3);color:var(--link);box-sizing:border-box}
.cc-text{display:grid;gap:.1rem;flex:1;min-width:0}
.cc-title{font-weight:800;font-size:var(--step-0)}
.cc-sub{color:var(--muted);font-size:var(--step--1)}
.cc-check{width:1.9rem;height:1.9rem;padding:.35rem;border-radius:50%;box-sizing:border-box;border:2px solid var(--field);color:transparent;flex:none}
@media (hover:hover){.card-choice:hover .cc-body{border-color:var(--link)}}
.card-choice input:checked + .cc-body{border-color:var(--brand);border-width:3px;padding:calc(1rem - 1px) calc(1.1rem - 1px);background:var(--bg-3)}
.card-choice input:checked + .cc-body .cc-ico{background:var(--brand);color:var(--panel-ink)}
.card-choice input:checked + .cc-body .cc-check{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.card-choice input:focus-visible + .cc-body{outline:3px solid var(--focus-in);outline-offset:2px;box-shadow:0 0 0 6px var(--focus-out)}
.contact-side{display:grid;gap:var(--space-s)}
.contact-ways{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.contact-ways a,.cw-row{display:flex;align-items:center;gap:.8rem;min-height:var(--tap);font-weight:800;color:var(--fg);text-decoration:none}
@media (hover:hover){.contact-ways a:hover span{text-decoration:underline}}
.contact-ways .ico{color:var(--link)}

/* bandeau final */
.finale{position:relative;overflow:hidden;border-radius:32px;background:var(--panel);color:var(--panel-ink);padding:var(--space-l);display:grid;grid-template-columns:1.4fr auto;gap:var(--space-m);align-items:center}
.finale::before,.finale::after{content:"";position:absolute;border-radius:50%;border:2px solid rgba(12,26,40,.18);pointer-events:none}
.finale::before{width:26rem;aspect-ratio:1;right:-8rem;top:-10rem}
.finale::after{width:16rem;aspect-ratio:1;right:6rem;bottom:-9rem}
.finale>*{position:relative}
.finale h2{font-size:var(--step-3);letter-spacing:-.035em;line-height:1.05;max-width:16ch}
.finale p{margin-top:1rem;font-weight:500;max-width:46ch}
.finale .btn{white-space:nowrap}
.finale :focus-visible{outline-color:#fff;box-shadow:0 0 0 6px #0c1a28}

/* pied de page */
.ftr{border-top:1px solid var(--rule);padding-top:var(--space-l);margin-top:var(--space-l);background:var(--bg)}
.ftr-main{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:var(--space-l);align-items:start}
.ftr-brand{display:grid;gap:var(--space-s);justify-items:start}
.ftr-brand p{color:var(--muted);max-width:34ch}
.ftr-contact{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}
.ftr-contact a{display:inline-flex;align-items:center;min-height:var(--tap);color:var(--fg);font-weight:700}
.ftr h2{font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.6rem}
.ftr nav ul{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}
.ftr nav a{display:inline-flex;align-items:center;min-height:var(--tap);color:var(--fg);text-decoration:none}
@media (hover:hover){.ftr nav a:hover{text-decoration:underline}}
.ftr-zones{margin-top:var(--space-m);padding-top:var(--space-s);border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;align-items:center;gap:0 .25rem;color:var(--muted);font-size:var(--step--1)}
.ftr-zones span{margin-right:.5rem}
.ftr-zones a{display:inline-flex;align-items:center;min-height:var(--tap);padding-inline:.6rem;color:var(--muted);text-decoration:underline}
@media (hover:hover){.ftr-zones a:hover{color:var(--fg)}}
.ftr-bottom{margin-top:var(--space-m);padding-block:var(--space-s) calc(var(--space-m) + 1rem);border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:.25rem 2rem;align-items:center;justify-content:space-between;color:var(--muted);font-size:var(--step--1)}
.ftr-bottom p{max-width:none}
.ftr-bottom nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:row;flex-wrap:wrap;gap:0 1.25rem}
.ftr-bottom li{max-width:none}
.ftr-brand p{text-wrap:pretty}
.ftr-bottom a{display:inline-flex;align-items:center;min-height:var(--tap);color:var(--muted);text-decoration:underline}
@media (hover:hover){.ftr-bottom a:hover{color:var(--fg)}}
.actionbar{display:none}

/* responsive */
@media (max-width:1100px){.hero-grid{grid-template-columns:1fr}.hero-grid>.aside-card{display:none}.page-hero:not(.is-home) .hero-grid .stage{display:none}.page-hero.is-full .hero-grid .stage{height:clamp(6.5rem,14svh,14rem)}.fgrid{grid-template-columns:repeat(2,1fr)}.related{grid-template-columns:1fr}}
@media (max-width:980px){
  .bento{grid-template-columns:1fr 1fr}.bento-card.is-lg{grid-column:1/3;grid-row:auto}.bento-card.is-wide{grid-column:1/3}
  .tab-grid,.split,.contact-grid,.finale,.duo,.reviews-wrap{grid-template-columns:1fr}
  .split-side{position:static}
  .steps-h{grid-template-columns:1fr 1fr}.steps-h li::before{display:none}
  .article-grid{grid-template-columns:1fr}.toc{position:static}
  .news-grid.is-3{grid-template-columns:1fr}
  .track{grid-auto-columns:calc((100% - var(--gap)) / 2.15)}.track.reviews{grid-auto-columns:calc((100% - var(--gap)) / 1.15)}
  .ftr-main{grid-template-columns:1fr 1fr}.ftr-brand{grid-column:1/-1}
  .field-row{grid-template-columns:1fr}
  .news-grid:not(.is-3) li:first-child .post{grid-template-columns:1fr}
}
@media (max-width:760px){
  /* contact : bouton rond flottant en bas à droite (icône ; le nom accessible reste « Nous contacter ») */
  .actionbar{display:block;position:fixed;inset:auto calc(1rem + env(safe-area-inset-right)) calc(1rem + env(safe-area-inset-bottom)) auto;z-index:50;padding:0;background:none;border:0}
  .actionbar .btn{width:3.75rem;height:3.75rem;min-height:0;padding:0;border-radius:50%;box-shadow:0 0 0 3px var(--bg),0 .6rem 1.6rem rgba(0,0,0,.45)}
  .actionbar .ab-ico{display:grid;place-items:center}
  .actionbar .ab-ico .ico{width:1.7rem;height:1.7rem}
  .actionbar .ab-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .ftr-bottom{padding-bottom:4.5rem}
  :root{--bar-h:0rem}
  .cta-row .btn{flex:1 1 13rem}
  .hero-grid{grid-template-columns:1fr;gap:var(--space-s)}
  .is-home h1{font-size:clamp(2rem,min(9.4vw,6.4svh),3.2rem)}
  .page-hero.is-full .hero-grid .stage{height:clamp(6.5rem,14svh,14rem)}
  .hero-grid .stage img{object-position:50% 30%}
  .news-grid{grid-template-columns:1fr}.news-grid:not(.is-3) li:first-child{grid-column:auto}
  .form-card{padding:var(--space-m)}
}
@media (max-width:560px){.bento{grid-template-columns:1fr}.bento-card.is-lg,.bento-card.is-wide{grid-column:auto}.fgrid,.steps-h,.cc-grid,.ftr-main{grid-template-columns:1fr}.track,.track.reviews{grid-auto-columns:86%}}
@media (max-height:760px){
  :root{--hdr-h:calc(4rem + 1px)}
  .logo-svg{height:2.8rem;width:2.3rem}
  .hdr .wrap{padding-block:.25rem}
  .hero-grid .stage{display:none}
  .page-hero{padding-block:.5rem 1rem}
  .page-hero.is-full{padding-block:0 .25rem}.page-hero.is-full>.hero-body{padding-block:.5rem}
  .page-hero .lead{margin-top:.75rem}.page-hero .cta-row{margin-top:.75rem}
  .crumbs{padding-top:0;padding-bottom:0}
}
@media (max-height:700px){
  .hero-pills{display:none}
  .page-hero h1{font-size:clamp(1.7rem,7.2vw,2.2rem)}.is-home h1{font-size:clamp(1.8rem,7.6vw,2.4rem)}
  .page-hero .lead,.is-home .lead{font-size:1rem;line-height:1.45}
  .kicker{margin-bottom:.4rem}.page-hero .btn{padding-block:.55rem}
}

/* animations : amelioration progressive. Contenu visible par defaut ; jamais sur le hero (LCP). */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .reveal{animation:rv linear both;animation-timeline:view();animation-range:entry calc(0% + var(--i,0) * 5%) entry calc(38% + var(--i,0) * 5%)}
    @keyframes rv{from{opacity:0;translate:0 1.75rem}to{opacity:1;translate:0 0}}
    .timeline::before{transform-origin:top;animation:draw linear both;animation-timeline:view();animation-range:entry 10% cover 55%}
    @keyframes draw{from{scale:1 0}to{scale:1 1}}
    .read-progress{display:block;animation:grow linear both;animation-timeline:scroll(root)}
    @keyframes grow{to{scale:1 1}}
  }
  @media (hover:hover){.bento-card:hover,.fcard:hover,.rel-card:hover,.post:hover{transform:translateY(-3px)}}
  .bento-card,.fcard,.rel-card,.post{transition:border-color .25s,transform .25s}
}
@media (prefers-contrast:more){:root{--rule:currentColor}.fcard,.reviews figure,.bento-card,.duo-card{border-width:2px}}
@media (forced-colors:active){
  .btn,.menu-btn,.theme-btn,.car-btn,.chip-row a,.rel-go,.bento-go{border:2px solid ButtonText}
  .stage,.bento-card,.post,.reviews figure,.aside-card,.fcard,.duo-card,.rel-card,.proof-item,.rating-card,.callout,.pullquote,.form-card{border:1px solid CanvasText}
  :focus-visible{outline:3px solid Highlight;box-shadow:none}
  .cc-body{border:2px solid ButtonText}.card-choice input:checked + .cc-body{border:4px solid Highlight}.card-choice input:focus-visible + .cc-body{outline:3px solid Highlight;box-shadow:none}
  .cc-check{forced-color-adjust:none;color:CanvasText}.card-choice input:checked + .cc-body .cc-check{color:Highlight}
  .proof-ico,.bento-ico,.step-dot,.tl-num{border:2px solid CanvasText}
}
@media print{.hdr,.actionbar,.skip-links,.menu-btn,.theme-btn,.read-progress{display:none}body{background:#fff;color:#000}}

/* carte principale du bento : contenu + grand picto decoratif en filigrane */
.bento-ticks{margin-top:.5rem;max-width:34rem}
.bento-art{position:absolute!important;right:-1.5rem;bottom:-2rem;width:clamp(9rem,22vw,17rem);aspect-ratio:1;color:var(--brand);opacity:.16;pointer-events:none}
.bento-art .ico{width:100%;height:100%;stroke-width:.8}
.is-lg .bento-go{z-index:2}
.faq-list{max-width:none}

.statement{font-size:var(--step-2);line-height:1.2;font-weight:800;letter-spacing:-.025em;max-width:30ch}
.pullquote .kicker{margin:0}

@media (max-width:1100px){.fgrid>.fcard{flex-basis:calc((100% - var(--space-s)) / 2)}}
@media (max-width:980px){.news-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.fgrid>.fcard{flex-basis:100%}.btn-lg{width:100%}.finale .btn{width:100%}.bento-card{padding:var(--space-s) var(--space-m)}.bento{grid-auto-rows:auto}.news-grid{grid-template-columns:1fr}}
.bento-num{opacity:.7}

.page-hero.is-full .crumbs{padding-bottom:0}
.page-hero.is-full>.hero-body{padding-block:var(--space-s)}

/* ===== photos : emplacements integres dans les composants ===== */
.stage figcaption b{font-weight:800}
.bento-card{padding:0;gap:0}
.bento-media{display:block}
.bento-media .stage,.step-media .stage,.duo-media .stage{border-radius:0;border:0;border-bottom:1px solid var(--rule);width:100%}
.bento-body{position:relative;display:flex;flex-direction:column;gap:.75rem;padding:var(--space-m);flex:1}
.bento-card.is-wide{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.bento-card.is-wide .bento-media{order:2}
.bento-card.is-wide .bento-media .stage{height:100%;min-height:12rem;aspect-ratio:auto;border-bottom:0;border-left:1px solid var(--rule)}
.bento-art{display:none}
.bento-go{z-index:2}
.bento-card.is-lg .bento-media .stage{aspect-ratio:16/8}
/* etapes en cartes avec photo */
.steps-h li::before{display:none}
.steps-h{gap:var(--space-s)}
.steps-h li.step-card{padding:0;display:grid;grid-template-rows:auto 1fr;background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;gap:0;align-content:stretch}
.step-body{position:relative;display:grid;gap:.5rem;align-content:start;padding:0 var(--space-s) var(--space-m)}
.step-body .step-dot{margin-top:-1.75rem;position:relative;z-index:1;background:var(--bg)}
.step-body h3{margin-top:.25rem}
/* photo dans la colonne gauche d'une section scindee */
.side-media{margin-top:var(--space-s)}
.side-media .stage{border-radius:var(--radius)}
.split-side{align-content:start}
/* duo avec photos */
.duo-card{padding:0;gap:0}
.duo-body{display:grid;gap:.75rem;align-content:start;padding:var(--space-m)}
/* citation / declaration avec photo */
.pullquote{grid-template-columns:1.2fr .8fr;align-items:center;gap:var(--space-m)}
.pq-media .stage{border-radius:var(--radius)}
/* bandeau final avec photo */
.finale{grid-template-columns:1.1fr .9fr;padding:var(--space-m) var(--space-m) var(--space-m) var(--space-l)}
.finale-media .stage{border-radius:calc(var(--radius)*1.2);border-color:rgba(12,26,40,.25)}
.finale h2{font-size:var(--step-3)}
/* pastilles de hero */
.hero-pills{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:var(--space-m) 0 0;padding:0}
.hero-pills li{max-width:none;padding:.3rem .9rem;border:1px solid var(--field);border-radius:999px;font-weight:700;font-size:var(--step--1)}
/* tarifs */
.price-grid{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-s)}
.price-grid.is-3{grid-template-columns:repeat(3,1fr)}
.price-grid.is-2{grid-template-columns:repeat(2,1fr)}
.price-card{max-width:none;display:grid;gap:.6rem;align-content:start;padding:var(--space-m);background:linear-gradient(160deg,var(--bg-2),var(--bg));border:1px solid var(--rule);border-radius:calc(var(--radius)*1.2);transition:border-color .25s}
@media (hover:hover){.price-card:hover{border-color:var(--brand)}}
.price-name{font-weight:800;font-size:var(--step-1);line-height:1.2}
.price{display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem .7rem}
.price-num{font-size:var(--step-4);font-weight:800;letter-spacing:-.04em;line-height:1;white-space:nowrap}
.price-unit{color:var(--muted);font-weight:700}
.price-desc{color:var(--muted)}
.info-card h3{font-size:var(--step-1)}
.info-card p{font-weight:500;color:var(--muted)}
/* legendes compactes dans les petites vignettes */
.step-media .cap-text,.duo-media .cap-text,.bento-card:not(.is-lg) .cap-text,.side-media .cap-text,.pq-media .cap-text,.finale-media .cap-text{display:none}
@media (max-width:980px){
  .bento-card.is-wide{grid-template-columns:1fr}.bento-card.is-wide .bento-media{order:0}.bento-card.is-wide .bento-media .stage{aspect-ratio:16/7;min-height:0;height:auto;border-left:0;border-bottom:1px solid var(--rule)}
  .pullquote,.finale{grid-template-columns:1fr}
  .finale{padding:var(--space-m)}
  .price-grid.is-3,.price-grid.is-2{grid-template-columns:1fr}
}
@media (max-width:560px){.steps-h li.step-card .step-media .stage{aspect-ratio:16/8}}

/* avis aux visiteurs (contact) */
.notice{display:flex;gap:var(--space-s);align-items:flex-start;padding:var(--space-s) var(--space-m);margin-bottom:var(--space-m);border:1px solid var(--rule);border-left:6px solid var(--brand);border-radius:var(--radius);background:var(--bg)}
.notice .callout-ico{flex:none;display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--bg-3);color:var(--link)}
.notice p{color:var(--muted);max-width:60ch}
.notice .callout-title{color:var(--fg);font-weight:800;margin-bottom:.2rem}

/* correctifs : vignettes photo (legende hors du picto), pastilles, avis, etapes */
.stage{container-type:size;grid-template-rows:minmax(0,1fr) auto;place-items:center;padding:.6rem}
.stage-art{display:grid;place-items:center;min-height:0;width:100%;height:100%}
.stage-ico{width:auto;height:min(9rem,46cqh);aspect-ratio:1;border-radius:30%}
.stage figcaption{position:static;align-self:end;justify-self:stretch;width:100%}
.stage::before{z-index:0}.stage-art{position:relative;z-index:1}
.step-body .step-dot{margin-top:0}
.reviews figure{justify-content:flex-start;gap:.75rem}
.reviews blockquote{flex:0 1 auto}
.reviews figcaption{margin-top:auto}
.tbc::before{content:"À confirmer \00b7 "}

.price{display:grid;gap:.15rem}
.price-unit{font-size:var(--step-0)}
.bento-card.is-lg .chips{margin-top:auto;padding-top:1rem}

/* ===== lot 3 : corrections des relectures + effets ===== */
/* legende des emplacements : pastille "Photo a venir" */
.stage figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .5rem;width:auto;max-width:100%;justify-self:start;padding:.3rem .8rem;border-radius:999px}
.cap-tag{color:#6fd3c8;font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}
.stage figcaption b::before{content:"\00b7";margin-right:.5rem;color:#9fb3c4}
.cap-text{flex-basis:100%;opacity:.9}
.step-media .cap-text,.duo-media .cap-text,.bento-card:not(.is-lg) .cap-text,.side-media .cap-text,.pq-media .cap-text,.finale-media .cap-text{display:none}
/* bento : pied avec puces + fleche, grande carte qui remplit sa hauteur */
.bento-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:.5rem}
.bento-foot .chips{margin-top:0}
.bento-go{position:static!important;flex:none}
.bento-card.is-lg{display:flex;flex-direction:column}
.bento-card.is-lg .bento-media{flex:1 1 11rem;display:flex}
.bento-card.is-lg .bento-media .stage{height:100%;aspect-ratio:auto;min-height:11rem}
.bento-card.is-lg .bento-body{flex:0 0 auto}
@media (hover:hover){.bento-card:hover .bento-num{-webkit-text-stroke-color:var(--link)}}
/* intro de service : image sous le texte */
.split-main .side-media{margin-top:var(--space-m)}
.split-main .side-media .stage{border-radius:var(--radius)}
/* carte-lien (zones) */
.fcard-link p a{color:var(--fg);text-decoration:none}
.fcard-link p a::after{content:"";position:absolute;inset:0}
.fcard-link:has(:focus-visible){outline:3px solid var(--focus-in);box-shadow:0 0 0 6px var(--focus-out)}
.fcard-link a:focus-visible{outline:none;box-shadow:none}
.fcard-link{background:linear-gradient(160deg,var(--bg-3),var(--bg-2))}
/* zones satellites : pastilles discretes */
.chip-row a,.chip-row.is-static li{font-size:var(--step--1);padding:.35rem .9rem;border-width:1px}
/* titres : pas de cesure automatique */
h1,h2,h3,h4{hyphens:manual;overflow-wrap:break-word}
@media (max-width:380px){h1,h2,h3,h4{overflow-wrap:anywhere}}
/* tarifs : prix alignes entre cartes (subgrid) */
@supports (grid-template-rows:subgrid){
  .price-grid.is-3,.price-grid.is-2{grid-template-rows:auto}
  .price-card{grid-row:span 3;grid-template-rows:subgrid;gap:.4rem}
}
/* article */
.article-grid.no-toc,.article-grid:not(:has(.toc)){grid-template-columns:minmax(0,1fr)}
.article-grid.no-toc .article,.article-grid:not(:has(.toc)) .article{margin-inline:auto}
.article .callout{margin-block:var(--space-s)}
.back-top{margin-top:var(--space-l)}
.article p{margin-bottom:.35rem}
/* contact : boutons rapides, avis, mobile */
.page-hero .cta-row .btn .ico{margin-right:.1rem}
@media (max-width:640px){
  .notice,.callout{flex-direction:column;align-items:flex-start;gap:.5rem}
  .notice .callout-ico,.callout-ico{width:2.25rem;height:2.25rem}
  .pullquote{padding:var(--space-m)}
  .pq-media{display:none}
  .step-media .stage,.finale-media .stage,.duo-media .stage{aspect-ratio:2/1}
  .track{align-items:start}
  .reviews figure{height:auto}
  .ftr-zones{display:grid;grid-template-columns:1fr 1fr;gap:0 .5rem}
  .ftr-zones span{grid-column:1/-1}
  .ftr-bottom nav ul{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
}
/* selecteur de situation (accueil) */
.picker{display:grid;gap:var(--space-s)}
.pick-opts{display:none;grid-template-columns:repeat(3,1fr);gap:.6rem;border:0;margin:0;padding:0}
.js .pick-opts,.picker:not(.is-nojs) .pick-opts{display:grid}
.pick{position:relative;display:block;cursor:pointer}
.pick input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.pick-box{display:flex;align-items:center;gap:.85rem;min-height:4rem;padding:.7rem 1.1rem;border:2px solid var(--field);border-radius:var(--radius);background:var(--bg-2);font-weight:700;line-height:1.3;transition:border-color .2s,background-color .2s}
@media (hover:hover){.pick:hover .pick-box{border-color:var(--link)}}
.pick-box .ico{width:1.6rem;height:1.6rem;color:var(--link)}
.pick-text{flex:1}
.pick input:checked + .pick-box{border-color:var(--brand);background:var(--bg-3);box-shadow:inset 0 0 0 1px var(--brand)}
.pick input:focus-visible + .pick-box{outline:3px solid var(--focus-in);outline-offset:2px;box-shadow:0 0 0 6px var(--focus-out)}
.pick-result{min-height:7.5rem;display:grid;align-items:center}
.pick-hint{color:var(--muted)}
.pick-panel{display:none;gap:var(--space-s);align-items:flex-start;padding:var(--space-m);background:linear-gradient(160deg,var(--bg-3),var(--bg-2));border:1px solid var(--brand);border-radius:calc(var(--radius)*1.2)}
.pick-title{font-size:var(--step-2);font-weight:800;letter-spacing:-.02em;line-height:1.1;margin-bottom:.3rem}
.pick-panel p{color:var(--muted)}
.pick-panel .pick-title{color:var(--fg)}
.pick-panel .cta-row{margin-top:var(--space-s)}
.picker:has(input[value="panne"]:checked) .pick-panel[data-for="panne"],
.picker:has(input[value="nouvel"]:checked) .pick-panel[data-for="nouvel"],
.picker:has(input[value="reseau"]:checked) .pick-panel[data-for="reseau"],
.picker:has(input[value="mail"]:checked) .pick-panel[data-for="mail"],
.picker:has(input[value="virus"]:checked) .pick-panel[data-for="virus"],
.picker:has(input[value="fichiers"]:checked) .pick-panel[data-for="fichiers"],
.picker:has(input[value="site"]:checked) .pick-panel[data-for="site"],
.picker:has(input[value="apprendre"]:checked) .pick-panel[data-for="apprendre"],
.picker:has(input[value="urgence"]:checked) .pick-panel[data-for="urgence"],
.picker:has(input[value="materiel"]:checked) .pick-panel[data-for="materiel"]{display:flex}
.picker:has(input:checked) .pick-hint{display:none}
.pick-fallback{display:none;list-style:none;margin:0;padding:0}
.picker.is-nojs .pick-fallback{display:grid;gap:.5rem}
.picker.is-nojs .pick-opts,.picker.is-nojs .pick-result{display:none}
.pick-fallback a{display:flex;align-items:center;min-height:var(--tap)}
@media (max-width:980px){.pick-opts{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.pick-opts{grid-template-columns:1fr}.pick-panel{flex-direction:column}}
/* effets (amelioration progressive, jamais en mouvement reduit) */
@media (prefers-reduced-motion:no-preference){
  /* ombre d'en-tete quand on defile */
  @supports (animation-timeline:scroll()){
    .hdr{animation:hdrshadow linear both;animation-timeline:scroll(root);animation-range:0 140px}
    @keyframes hdrshadow{from{box-shadow:none}to{box-shadow:0 14px 34px -22px rgba(0,0,0,.65)}}
    .stage-ico::after{content:"";position:absolute;inset:-6px;border-radius:inherit;border:2px solid rgba(111,211,200,.7);opacity:0;animation:ring linear both;animation-timeline:view();animation-range:entry 15% entry 85%}
    @keyframes ring{0%{opacity:.9;scale:1}100%{opacity:0;scale:1.7}}
  }
  /* reflet sur les boutons principaux */
  .btn-primary{position:relative;overflow:hidden}
  .btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);translate:-120% 0;transition:translate .7s}
  @media (hover:hover){.btn-primary:hover::after{translate:120% 0}}
  /* inclinaison douce des visuels du hero (souris uniquement, pilotee par le JS) */
  .tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out;will-change:transform}
  .stage.spot::before{opacity:.0}
  @media (hover:hover){.stage.spot:hover::before{opacity:1}}
  @media (hover:hover){.bento-card:hover .bento-ico,.fcard:hover .fcard-ico,.rel-card:hover .fcard-ico{transform:translateY(-3px) rotate(-4deg)}}
  .bento-ico,.fcard-ico{transition:transform .3s}
}
@media (forced-colors:active){.pick span{border:2px solid ButtonText}.pick input:checked + .pick-box{border:4px solid Highlight}.pick-panel{border:2px solid CanvasText}}

.prose.doc,.prose.doc *{overflow-wrap:anywhere}
.prose.doc a{overflow-wrap:anywhere}

/* lot 4 : relectures ronde 3 */
.card-choice input:checked + .cc-body .cc-check{background:var(--panel);border-color:var(--panel);color:var(--panel-ink)}
.pick-result{min-height:0}
.bento-card.is-picked{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand),0 24px 60px -30px rgba(48,163,152,.7)}

.scroll-cue-wrap{display:flex;justify-content:center}
.page-hero.is-full>.wrap:last-child{display:flex;justify-content:center}
.notice{border-width:0 0 0 4px;border-radius:12px;background:transparent;padding-inline:var(--space-s)}
.article h2{max-width:none}
.price-desc{border-top:1px solid var(--rule);padding-top:.6rem}
.cap-text{opacity:1}
@media (prefers-reduced-motion:no-preference){
  .page-hero::before{translate:calc(var(--hx,0) * 22px) calc(var(--hy,0) * 22px);transition:translate .4s ease-out}
}

/* lot 5 : relectures mobile ronde 3 */
.tbc::before{background:var(--accent);color:var(--accent-ink);padding:.05rem .45rem;border-radius:6px;margin-right:.45rem}
.is-home h1{letter-spacing:-.03em}
h3{letter-spacing:-.01em}
.form-title{font-size:var(--step-2);margin-bottom:var(--space-s)}
.step-body{padding-top:1rem}
.car-pause .ico{width:1.4rem;height:1.4rem}
@media (max-width:640px){
  /* fil d'Ariane compact : seul le parent direct, en lien de retour */
  .crumbs li{display:none}
  .crumbs li:nth-last-child(2){display:flex}
  .crumbs li:nth-last-child(2)::after{content:none}
  .crumbs li:nth-last-child(2) a::before{content:"\2039";margin-right:.4rem;font-size:1.4em;line-height:1}
  .ftr-zones a{padding-inline:0}
  .tablist{display:grid;grid-template-columns:1fr 1fr}
  .tablist [role=tab]{justify-content:center}
}
@media (prefers-reduced-motion:no-preference){
  .hdr{view-transition-name:site-header}
  .btn:active,.bento-card:active,.pick:active span,.car-btn:active{transform:scale(.97)}
}

@media (max-width:760px){
  .hero-grid .stage .cap-text{display:none}
  .hero-grid .stage figcaption{padding:.25rem .7rem}
}
@media (max-width:640px){.js .tablist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tablist [role=tab]{min-width:0;padding-inline:.6rem;gap:.4rem;font-size:var(--step--1);white-space:normal;text-align:center}}
.price-name{overflow-wrap:anywhere}
.price-card{min-width:0}

/* photos livrees : l'image remplit le cadre, sans legende ni quadrillage */
.stage.has-photo{background:#12293d}
.stage.has-photo::before{display:none}
.stage.has-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* petits ecrans : logo, bascule de theme et menu tiennent sur une seule ligne */
@media (max-width:420px){
  .js .hdr .wrap{flex-wrap:nowrap;gap:.4rem}
  .logo{min-width:0;gap:.5rem;font-size:.95rem}
  .logo-svg{height:3rem;width:2.5rem}
  .menu-btn{padding-inline:.8rem}
  .theme-btn{margin-left:auto}
}

.sec-lead+.chip-row,.sec-lead+.ticks{margin-top:var(--space-s)}
.chip-row+.note{margin-top:var(--space-s)}

/* bouton d'action en haut à droite d'un bloc */
.sec-head.has-action{max-width:none;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-s) var(--space-m)}
.sec-head-text{display:grid;gap:.5rem;max-width:60ch}
.sec-action{flex:none}
.sec-action .ico{transition:translate .2s}
@media (hover:hover){.sec-action:hover .ico{translate:.25rem 0}}
@media (max-width:560px){.sec-head.has-action{align-items:stretch}.sec-action{width:100%}}

/* échelle typographique sur grands écrans : le corps grandit avec la fenêtre (tout est en rem) */
@media (min-width:1900px){html{font-size:112.5%}}
@media (min-width:2500px){html{font-size:125%}}
/* sections : un titre de section n'est jamais plus grand que le titre de la page */
@media (max-width:560px){.sec-head h2,.split-side h2,.finale h2{font-size:clamp(1.6rem,6.4vw,2rem)}}
@media (max-height:500px){.sec-head h2,.split-side h2,.finale h2{font-size:1.5rem}}
/* en-tête collant : libère la fenêtre sur les écrans bas (paysage, zoom 400 %), sinon il masquerait le contenu */
@media (max-height:500px){.hdr{position:static}html{scroll-padding-top:1rem}}

/* en-tête collant : dans WordPress le gabarit l'enveloppe, c'est l'enveloppe qui doit coller */
.wp-site-blocks>.wp-block-template-part:first-child{position:sticky;top:0;z-index:40}
@media (max-height:500px){.wp-site-blocks>.wp-block-template-part:first-child{position:static}}
@media (max-width:860px){.pullquote,.finale{grid-template-columns:minmax(0,1fr)}}
.finale .btn{white-space:normal;text-align:center}

/* bouton qui a l'aspect d'un lien (pied de page : Gérer les cookies) */
.link-btn{display:inline-flex;align-items:center;min-height:var(--tap);padding:0;border:0;background:none;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
@media (hover:hover){.link-btn:hover{text-decoration-thickness:.16em}}
/* bande de preuves : quatre cases de même taille ; le badge Cybermalveillance, entier, occupe la sienne bord à bord */
.proof-grid{align-items:stretch;grid-auto-rows:1fr}
@media (min-width:1000px){.proof-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:560px){.proof-item:not(.is-badge){flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:.9rem;padding:var(--space-m)}}
.proof-item.is-badge{padding:0;overflow:hidden;border:0;background:#000091;justify-content:center}
.is-badge .proof-logo{width:100%;height:100%;aspect-ratio:auto;border-radius:0;background:none;padding:0}
.is-badge .proof-logo img{width:100%;height:100%;object-fit:contain}
@media (max-width:559px){.proof-grid{grid-auto-rows:auto}.proof-item.is-badge{min-height:9rem}}

/* sélecteur de situation : panneau de résultat */
.pick-body{display:grid;gap:.5rem;min-width:0}
.pick-kicker{font-size:var(--step--1);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--link)!important}
.pick-tip{display:flex;gap:.7rem;align-items:flex-start;padding:.8rem 1rem;border-radius:14px;background:color-mix(in oklab,var(--bg) 55%,transparent);border:1px solid var(--rule);color:var(--fg)!important;max-width:60ch}
.pick-tip strong{color:var(--fg)}
.pick-tip-ico{flex:none;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--bg-3);color:var(--link)}
.pick-tip.is-alert{border-color:var(--accent)}
.pick-tip.is-alert .pick-tip-ico{background:var(--accent);color:var(--accent-ink)}
.pick-panel p{max-width:60ch}
.pick-tip-ico .ico{width:1.1rem;height:1.1rem}
@media (forced-colors:active){.pick-tip{border:1px solid CanvasText}}

/* bouton menu mobile : icône burger qui devient une croix, avec le libellé « Menu » / « Fermer » */
.menu-btn{gap:.65rem}
.menu-ico{position:relative;display:block;flex:none;width:1.3rem;height:1rem}
.menu-ico i{position:absolute;left:0;right:0;height:2px;border-radius:2px;background:currentColor}
.menu-ico i:nth-child(1){top:0}
.menu-ico i:nth-child(2){top:calc(50% - 1px)}
.menu-ico i:nth-child(3){top:calc(100% - 2px)}
.menu-btn[aria-expanded=true] .menu-ico i:nth-child(1){top:calc(50% - 1px);transform:rotate(45deg)}
.menu-btn[aria-expanded=true] .menu-ico i:nth-child(2){opacity:0}
.menu-btn[aria-expanded=true] .menu-ico i:nth-child(3){top:calc(50% - 1px);transform:rotate(-45deg)}
@media (prefers-reduced-motion:no-preference){.menu-ico i{transition:transform .25s,top .25s,opacity .2s}}
@media (forced-colors:active){.menu-ico i{background:ButtonText;forced-color-adjust:none}}
@media (max-width:359px){.menu-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.menu-btn{padding-inline:.7rem}}


.pick-verdict{display:flex;align-items:center;gap:.6rem;color:var(--fg)!important;font-size:var(--step-0)}
.pick-v-ico{flex:none;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--brand);color:var(--panel-ink)}
.pick-panel.is-distance .pick-v-ico{background:var(--accent);color:var(--accent-ink)}
.pick-panel.is-non .pick-v-ico{background:transparent;border:2px solid currentColor;color:var(--fg)}
.pick-panel.is-non{border-color:var(--field)}
.pick-v-ico .ico{width:1.1rem;height:1.1rem}
.pick-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.5rem;margin-top:var(--space-s);padding:var(--space-s) var(--space-m);border:1px dashed var(--field);border-radius:var(--radius)}
.pick-foot p{margin:0;color:var(--muted);max-width:48ch}
.pick-foot p:first-child{flex-basis:100%;max-width:none}
.pick-foot .btn{margin-left:auto}
@media (max-width:560px){.pick-foot .btn{margin-left:0;width:100%}}

.pick-panel.is-non>.fcard-ico,.pick-panel.is-distance>.fcard-ico{display:none}

/* parcours guidé : une question à la fois (avec JavaScript) ; sans JavaScript, la liste complète reste affichée */
.picker.is-wiz .pick-opts{display:none}
.wiz{display:none;max-width:52rem;padding:var(--space-m);border:1px solid var(--rule);border-radius:calc(var(--radius)*1.4);background:linear-gradient(160deg,var(--bg-2),var(--bg))}
.picker.is-wiz .wiz{display:block}
.picker.is-wiz.is-result .wiz{display:none}
.wiz-head{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.5rem 1rem;margin-bottom:var(--space-s)}
.wiz-back{display:inline-flex;align-items:center;gap:.4rem;min-height:var(--tap);padding:.25rem .9rem .25rem .6rem;border:2px solid var(--field);border-radius:999px;background:transparent;color:var(--fg);font:inherit;font-weight:700;cursor:pointer}
@media (hover:hover){.wiz-back:hover{border-color:var(--link)}}
.ico-back{transform:rotate(180deg)}
.wiz-count{grid-column:1/-1;margin:0;font-size:var(--step--1);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--link)}
.wiz-back:not([hidden])~.wiz-count{grid-column:2;grid-row:1;justify-self:end}
.wiz-bar{grid-column:1/-1;height:6px;border-radius:6px;background:var(--bg-3);overflow:hidden}
.wiz-bar span{display:block;height:100%;width:50%;border-radius:6px;background:var(--brand)}
.wiz-q{font-size:var(--step-2);line-height:1.15;margin-bottom:var(--space-s);max-width:30ch}
.wiz-q:focus{outline:none}
.wiz-list{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}
.wiz-list li{max-width:none}
.wiz-opt{display:flex;align-items:center;gap:1rem;width:100%;min-height:4.25rem;padding:.9rem 1.2rem;border:2px solid var(--field);border-radius:var(--radius);background:var(--bg-2);color:var(--fg);font:inherit;font-weight:700;line-height:1.3;text-align:left;cursor:pointer}
.wiz-opt .ico{width:1.6rem;height:1.6rem;color:var(--link)}
.wiz-label{flex:1}
.wiz-go{flex:none;display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:50%;border:2px solid var(--field)}
.wiz-go .ico{width:1.1rem;height:1.1rem;color:var(--fg)}
@media (hover:hover){.wiz-opt:hover{border-color:var(--brand);background:var(--bg-3)}}
@media (hover:hover){.wiz-opt:hover .wiz-go{background:var(--accent);border-color:var(--accent)}}
@media (hover:hover){.wiz-opt:hover .wiz-go .ico{color:var(--accent-ink)}}
.wiz-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:var(--space-s)}
.wiz-actions[hidden],.wiz [hidden]{display:none!important}
@media (prefers-reduced-motion:no-preference){
  .wiz-step:not([hidden]){animation:wiz-in .35s cubic-bezier(.2,.8,.2,1) both}
  .picker.is-result .pick-panel{animation:wiz-in .4s cubic-bezier(.2,.8,.2,1) both}
  .wiz-bar span{transition:width .4s cubic-bezier(.2,.8,.2,1)}
  @keyframes wiz-in{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
}
@media (forced-colors:active){.wiz,.wiz-opt,.wiz-back,.wiz-go{border:2px solid ButtonText}.wiz-bar span{background:Highlight}}
@media (max-width:560px){.wiz{padding:var(--space-s)}.wiz-opt{padding:.75rem .9rem;gap:.75rem}.wiz-go{display:none}}

/* image d'accueil : à côté du texte sur grand écran ; sur mobile et tablette, en bandeau pleine largeur sous le hero (jamais écrasée dans le hero) */
.hero-band{display:none}
@media (max-width:1100px){
  .page-hero.is-home .hero-grid .stage{display:none}
  .hero-band{display:block;margin-bottom:var(--space-s)}
  .hero-band .stage{aspect-ratio:16/10;max-height:24rem;width:100%;height:auto}
  .hero-band .stage img{width:100%;height:100%;object-fit:cover;object-position:50% 32%}
}
/* bouton de contact flottant : ne couvre pas le repère du hero, absent de la page Contact, anneau de focus à deux tons conservé */
@media (max-width:760px){
  .page-hero.is-full .wrap>.scroll-cue{margin-right:4.75rem}
  body:has(#form-contact) .actionbar{display:none}
  .actionbar .btn:focus-visible{box-shadow:0 0 0 3px var(--bg),0 0 0 6px var(--focus-out),0 .6rem 1.6rem rgba(0,0,0,.45)}
}

/* toucher et clic : pas de halo gris, pas de texte sélectionné sur les commandes (le texte courant reste sélectionnable) */
html{-webkit-tap-highlight-color:transparent}
a,button,summary,label,[role=tab],.btn,.pick,.wiz-opt,.car-btn{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button,.btn,.menu-btn,.theme-btn,.car-btn,.wiz-opt,.pick-box,[role=tab],summary,.bento-card,.post,.rel-card,.fcard-link,.chip-row a,.nav a,.scroll-cue{-webkit-user-select:none;user-select:none}

/* carte des arrondissements (SVG en ligne, aucune ressource externe) */
.carte-row{display:grid;gap:var(--space-m);align-items:center;grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.carte-row{grid-template-columns:minmax(0,34rem) minmax(0,1fr)}}
.carte{margin:0;display:grid;gap:var(--space-s)}
.carte svg{width:100%;height:auto;display:block;overflow:visible}
.carte path{stroke:var(--bg);stroke-width:3;stroke-linejoin:round}
.carte .on path{fill:var(--panel)}
.carte .off path{fill:var(--bg-3)}
.carte text{font:800 46px var(--font);pointer-events:none}
.carte .on text{fill:var(--panel-ink)}
.carte .off text{fill:var(--muted)}
.carte .cur path{stroke:var(--fg);stroke-width:9;paint-order:stroke}
.carte figcaption{color:var(--muted);font-size:var(--step--1)}
@media (forced-colors:active){.carte path{stroke:CanvasText}.carte .on path{fill:Highlight}.carte .on text{fill:HighlightText}.carte .off path{fill:Canvas}.carte .off text{fill:CanvasText}}
