/* Artificial4Impact — feuille de style unique (V4, site hybride)
   · Accueil : page de la V2.3 (schéma isométrique en quatre plans) ; ses règles sont portées par « .home main » (body.home).
   · Pages intérieures : pages de la V3 ; leurs règles sont portées par « .sub main » (body.sub).
   · Commun à toutes les pages (sans portée) : polices, couleurs, en-tête, menu mobile, pied de page, lien d'évitement, mouvement réduit.
   Les deux identités partagent la palette (papier ivoire, encre, rouille) et les polices (Instrument Serif, DM Sans, mono).
   Fusion des deux feuilles d'origine : tools/css_scope.py (voir RAPPORT.md). */

/* polices sous-ensemblées au français, avec l'espace fine insécable (tools/fonts_nnbsp.py), toutes préchargées */
@font-face{font-family:'Instrument Serif';src:url('../fonts/instrument-serif-400-v4.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('../fonts/instrument-serif-400-italic-v4.woff2') format('woff2');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-400-v4.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-500-v4.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-600-v4.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}

:root{
  --paper:#f5f2e9;--paper-2:#faf8f2;--ink:#292b25;--text:#3b3e35;--muted:#5d6254;
  --rust:#aa482f;--rust-deep:#903b27;--rust-soft:#e8a78f;--warm:#eae5da;--line:#cecec0;--line-2:#b6b9aa;--green-ink:#56614a;--cream-ink:#fff9ed;
  --on-ink:#cfd2c6;
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;--sans:'DM Sans',Arial,Helvetica,sans-serif;--mono:'Courier New',Courier,monospace;
  --ease-out:cubic-bezier(.23,1,.32,1);--ease-in:cubic-bezier(.7,0,.84,0);--ease-in-out:cubic-bezier(.77,0,.175,1);--ease-calm:cubic-bezier(.65,0,.35,1);--ease-settle:cubic-bezier(.2,1.08,.3,1);
  --t1:140ms;--t2:220ms;--t3:300ms;--t4:720ms;--t5:1150ms;
  --header-h:72px;--gutter:clamp(20px,4.2vw,56px);
  --h2:clamp(36px,4.4vw,64px);
  color-scheme:light;
}
/* accueil : valeurs d'origine de la V2.3 pour les deux teintes qui différaient légèrement */
body.home{--paper-2:#f8f5ed;--line-2:#babdae}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px);-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:rgba(170,72,47,.12)}
html:has(body.home){scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:clip}
main{outline:none}
.sub main{flex:1 0 auto}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;padding:0;touch-action:manipulation}
a,label,input{touch-action:manipulation}
:focus-visible{outline:2px solid var(--rust);outline-offset:3px}
::selection{background:#e6bdac;color:var(--ink)}
h1,h2,h3,p,ul,ol,dl,dd,figure,fieldset{margin:0}
ul,ol{padding:0}
[hidden]{display:none!important}
.nw{white-space:nowrap}
.sr-only,.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wrap{width:100%;max-width:1408px;margin-inline:auto;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}
.skip{position:fixed;top:-100px;left:16px;z-index:200;background:var(--ink);color:var(--paper);padding:12px 16px;border-radius:2px;font-size:15px}
.skip:focus{top:calc(10px + env(safe-area-inset-top,0px))}
/* sans JavaScript : ce qui ne fonctionne qu'avec un script disparaît, et inversement */
.no-js [data-js-only]{display:none!important}
.js .nojs-only{display:none!important}

/* ---------------------------------------------------------------- en-tête (V3 : menu mobile inert, en-tête à 390 px) */
html.menu-open{overflow:hidden;padding-right:var(--scrollbar-w,0px)}   /* largeur de la barre de défilement disparue (mesurée par site.js) : pas de saut */
html.menu-open body{overscroll-behavior:none}
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);padding-top:env(safe-area-inset-top,0px);transition:box-shadow var(--t3) var(--ease-out)}
.site-header.scrolled{box-shadow:0 12px 28px -26px rgba(41,43,37,.55)}
.site-header .bar{position:relative;height:var(--header-h);display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;white-space:nowrap;font-size:20px;font-weight:600;letter-spacing:-.8px;color:var(--ink);flex:none}
.brand-mark{width:28px;height:30px;fill:none;stroke:var(--rust);stroke-width:2.2;stroke-linejoin:miter;flex:none}
.brand-four,.brand-dot{color:var(--rust)}
.main-nav{margin-left:auto}
.main-nav ul{list-style:none;display:flex;gap:clamp(18px,2.1vw,34px)}
.main-nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;font-size:14.5px;color:var(--ink);transition:color var(--t2) var(--ease-out)}
.main-nav a::after{content:'';position:absolute;left:0;right:0;bottom:8px;height:1px;background:var(--rust);transform:scaleX(0);transform-origin:left;transition:transform var(--t3) var(--ease-out)}
/* page courante (aria-current="page") ; sur l'accueil, section en cours de lecture (aria-current="true", posé par home.js) */
.main-nav a[aria-current=page],.main-nav a[aria-current=true]{color:var(--rust-deep)}
.main-nav a[aria-current=page]::after,.main-nav a[aria-current=true]::after{transform:scaleX(1)}
@media(hover:hover) and (pointer:fine){.main-nav a:hover{color:var(--rust-deep)}.main-nav a:hover::after{transform:scaleX(1)}}
.header-cta{display:inline-flex;align-items:center;gap:18px;min-height:44px;padding:10px 16px;background:var(--ink);color:var(--paper);border-radius:2px;font-size:14px;font-weight:500;white-space:nowrap;position:relative;overflow:hidden;isolation:isolate;flex:none;transition:transform var(--t1) var(--ease-out)}
.header-cta::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--rust);transform:translateY(101%);transition:transform var(--t3) var(--ease-out)}
.header-cta .arr{font-size:16px;line-height:1}
.header-cta .short{display:none}
.header-cta:active{transform:scale(.97)}
@media(hover:hover) and (pointer:fine){.header-cta:hover::before{transform:translateY(0)}}
.menu-toggle{display:none;flex:none;width:44px;height:44px;margin-right:-10px;position:relative}
.menu-toggle i{position:absolute;left:11px;right:11px;height:1.5px;background:var(--ink);transition:transform var(--t2) var(--ease-out)}
.menu-toggle i:first-child{top:18px}.menu-toggle i:last-child{top:25px}
.menu-toggle[aria-expanded=true] i:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-toggle[aria-expanded=true] i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
body.home{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
.home main img{max-width:100%;height:auto;display:block}
.home main button,.home main input{font:inherit}
.home main button{color:inherit;cursor:pointer;border:0;background:none;padding:0}
.home main a{color:inherit;text-decoration:none}
.home main :focus-visible{outline:2px solid var(--rust);outline-offset:4px}
.home main ::selection{background:#d7a38f;color:#292b25}
.home main h1,.home main h2,.home main h3,.home main p{margin:0}
.home main h1,.home main h2{font-family:var(--serif);font-weight:400;line-height:1.02;letter-spacing:-.035em;text-wrap:balance}
.home main h1 em,.home main h2 em,.home main h3 em{font-style:italic;font-weight:400;color:var(--rust)}
.home main h2{font-size:clamp(40px,5.1vw,73px)}
/* partie italique toujours sur sa propre ligne (évite un « et » ou un « un » isolé en fin de ligne) */
.home main h2.em-block em{display:block}
.home main h3{font-weight:500}
.home main .wrap{width:100%;max-width:1408px;margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
@media(min-width:900px){.home main .wrap{padding-left:max(56px,env(safe-area-inset-left,0px));padding-right:max(56px,env(safe-area-inset-right,0px))}}
.home main .section{padding-block:104px}
@media(max-width:700px){.home main .section{padding-block:68px}}
.home main .eyebrow{font:11px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.1em}
.home main .kicker{margin-bottom:22px}
.home main .micro{font-size:12px;line-height:1.6;color:var(--muted)}
/* groupe de mots à ne pas couper en fin de ligne (titres composés, « e-mails ») */
.home main .nw{white-space:nowrap}
.home main .visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.home main .status-dot{display:inline-block;width:6px;height:6px;background:var(--rust);border-radius:50%;margin-right:8px;vertical-align:middle;animation:breathe 4s var(--ease-calm) 3}
@keyframes breathe{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.7}}
.home main .section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:42px;flex-wrap:wrap}
.home main .aside-label{font-size:12px;line-height:1.6;color:var(--muted);max-width:260px}
.home main .lead-text{font-size:14px;line-height:1.8;color:var(--muted);max-width:400px}
/* liens et boutons */
.home main .text-link{display:inline-flex;gap:18px;align-items:center;position:relative;padding:0 0 5px;font-size:12px;font-weight:500}
.home main .text-link::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:left;transition:transform var(--t3) var(--ease-out)}
.home main .text-link span{font-size:18px;line-height:1;transition:transform var(--t2) var(--ease-out)}
.home main .button{display:inline-flex;justify-content:space-between;align-items:center;gap:40px;padding:16px 24px;min-height:54px;font-size:13px;font-weight:500;border-radius:2px;position:relative;overflow:hidden;isolation:isolate;transition:transform var(--t1) var(--ease-out),color var(--t2) var(--ease-out)}
.home main .button::before{content:'';position:absolute;inset:0;z-index:-1;transform:translateX(-101%);transition:transform var(--t3) var(--ease-out)}
.home main .button-rust{background:var(--rust);color:var(--cream-ink)}
.home main .button-rust::before{background:var(--rust-deep)}
.home main .button span{font-size:22px;line-height:1;transition:transform var(--t2) var(--ease-out)}
.home main .button:active{transform:scale(.97)}
@media(hover:hover) and (pointer:fine){.home main .text-link:hover{color:var(--rust)}
.home main .text-link:hover::after{transform:scaleX(.55)}
.home main .text-link:hover span{transform:translate(3px,-3px)}
.home main .text-link.down:hover span{transform:translateY(3px)}
.home main .button:hover::before{transform:translateX(0)}
.home main .button:hover span{transform:translate(2px,-2px)}}
/* barre de lecture */
.home main .progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--rust);transform-origin:left;transform:scaleX(0);z-index:120;pointer-events:none}
/* ---------- 1. accroche ---------- */
.home main .hero{padding-top:clamp(48px,8vh,96px);padding-bottom:0}
.home main .hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:end}
.home main .hero .eyebrow{margin-bottom:26px}
.home main h1{font-size:clamp(52px,9.4vw,148px);line-height:.95;letter-spacing:-.045em}
/* acquis V3 (audit I6) : le masque déborde de 0,12 em à gauche et à droite, le pied du « s » italique n'est plus rogné */
.home main h1 .line{display:block;overflow:hidden;padding:0 .12em .06em;margin:0 -.12em -.06em}
.home main h1 .line>*{display:inline-block}
/* accroche V2.2 (titre plus long) : trois lignes composées — « L'intelligence artificielle / utile aux PME commence / sur le terrain. » ;
   la taille suit la largeur de la colonne pour que la ligne la plus longue (≈ 7,5 em) tienne sans coupure.
   Coupures permises uniquement entre groupes .nw : sous 560 px, « commence » passe seul à la ligne (quatre lignes). */
.home main .hero h1{font-size:clamp(40px,calc((100vw - 160px) * .625 / 7.75),100px)}
@media(max-width:899px){.home main .hero h1{font-size:min(100px,calc((100vw - 40px) / 7.75))}}
@media(max-width:559px){.home main .hero h1{font-size:max(36px,calc((100vw - 40px) / 7.05))}
.home main .hero h1 .line{text-wrap:balance}}
.home main .hero .eyebrow-cantons{display:inline-block}
@media(max-width:380px){.home main .hero .eyebrow{font-size:10px;letter-spacing:.04em}}
.home main .hero-aside{display:grid;gap:18px;padding-bottom:14px;max-width:390px}
.home main .hero-aside p{font-size:15px;line-height:1.8;color:var(--muted)}
.home main .hero-aside .hero-role{color:var(--ink);border-left:2px solid var(--rust);padding-left:16px;line-height:1.7}
.home main .hero-cta{display:flex;margin-top:6px}
.home main .hero-aside .micro{font-size:12px;line-height:1.6;margin-top:-6px}
.home main .hero-baseline{display:flex;align-items:center;justify-content:flex-start;font-size:11px;border-top:1px solid var(--line);margin-top:clamp(40px,7vh,80px);padding:22px 0 24px;color:var(--muted);gap:16px}
.home main .scroll-cue{display:inline-flex;gap:12px;align-items:center;color:var(--ink);font-size:12px;font-weight:500}
.home main .scroll-cue svg{width:26px;height:26px;overflow:visible}
.home main .scroll-cue .s{fill:var(--paper);stroke:var(--ink);stroke-width:1}
.home main .scroll-cue .s.r{fill:var(--rust);stroke:var(--rust)}
.home main .scroll-cue>span{font-size:16px;line-height:1;transition:transform var(--t2) var(--ease-out)}
@media(hover:hover) and (pointer:fine){.home main .scroll-cue:hover{color:var(--rust)}
.home main .scroll-cue:hover>span{transform:translateY(3px)}}
@media(max-width:900px){.home main .hero-grid{grid-template-columns:1fr;gap:28px}
.home main .hero-aside{padding-bottom:0}}
/* 900–1180 px : la colonne de gauche serait trop étroite pour le titre ; titre sur toute la largeur, texte d'appui en deux colonnes dessous */
@media(min-width:900px) and (max-width:1180px){.home main .hero-grid{grid-template-columns:minmax(0,1fr);gap:34px}
.home main .hero h1{font-size:min(100px,calc((100vw - 112px) / 7.75))}
.home main .hero-aside{max-width:none;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:48px;align-items:start;padding-bottom:0}
.home main .hero-aside>p:first-child{grid-row:1/span 3}
.home main .hero-aside>p:not(:first-child){grid-column:2}}
/* ---------- 2. notre approche : le schéma animé ---------- */
/* V4 (brief, 2.C) : piste de défilement raccourcie, 6 × 50svh au lieu de 6 × 78svh (bureau) */
.home main .scrolly{position:relative;height:calc(100vh + 6 * 50vh);height:calc(100svh + 6 * 50svh);border-top:1px solid var(--line)}
.home main .scrolly .sticky{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));height:calc(100svh - var(--header-h));display:flex;align-items:center;overflow:hidden}
.home main .scrolly-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.25fr);column-gap:40px;align-items:center;width:100%}
.home main .scrolly-copy{display:grid;position:relative;z-index:1;min-width:0}
.home main .step{min-width:0}
.js .home main .step{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity 140ms var(--ease-out),transform 140ms var(--ease-out),visibility 0s linear 140ms}
.js .home main .step.is-on{opacity:1;visibility:visible;transform:none;transition:opacity 360ms var(--ease-out) 80ms,transform 460ms var(--ease-out) 80ms,visibility 0s}
/* V4 : le titre H2 de la section (étape 0) reste dans l'arbre d'accessibilité quand une autre étape est affichée (ordre des titres H1 → H2 → H3 ;
   il reste invisible : son étape est à opacité nulle) */
.js .home main .step[data-step="0"]:not(.is-on) .step-title{visibility:visible;pointer-events:none;user-select:none}
.home main .step .eyebrow{color:var(--rust)}
.home main .step-title{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.6vw,52px);line-height:1.04;letter-spacing:-.03em;margin:16px 0 18px;text-wrap:balance}
.home main .step p.lead{font-size:14.5px;line-height:1.8;max-width:420px;color:var(--muted)}
.home main .step .calc-link{margin-top:20px}
.home main .step-index{display:flex;gap:6px;margin-top:28px}
.home main .step-index i{display:block;width:22px;height:2px;background:var(--line);transition:background var(--t2) var(--ease-out)}
.home main .step-index i.on{background:var(--rust)}
/* « Passer le schéma » : toujours dans l'ordre de tabulation après les boutons, visible au focus */
.home main .skip-figure{position:absolute;right:0;top:100%;margin-top:6px;font-size:12px;font-weight:500;padding:6px 10px;background:var(--paper);border:1px solid var(--rust);color:var(--rust-deep);border-radius:2px;opacity:0;pointer-events:none;z-index:3}
.home main .skip-figure:focus{opacity:1;pointer-events:auto}
/* légende de la figure : « un flux » → « toute l'entreprise », en HTML, taille fixe */
.home main .figure-caption{position:absolute;left:9%;bottom:3%;margin:0;display:grid;grid-template-columns:auto 1fr;align-items:end;column-gap:9px;font:11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--rust-deep);pointer-events:none}
.home main .figure-caption i{grid-area:1/1;width:15px;height:15px;border-left:1px solid var(--rust);border-bottom:1px solid var(--rust)}
.home main .figure-caption span{grid-area:1/2;padding-bottom:1px}
.home main .figure{min-width:0;position:relative}
.home main .figure-heading{display:flex;justify-content:space-between;align-items:center;font:10px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:0 5px 6px;margin-top:28px}
.home main .figure-heading .motion-toggle{margin-left:auto;margin-right:18px}
.home main .motion-toggle{display:inline-flex;gap:8px;align-items:center;font:10px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 0;min-height:28px}
.home main .motion-toggle i{display:inline-block;width:8px;height:9px;border-left:2px solid currentColor;border-right:2px solid currentColor}
.home main .motion-toggle[aria-pressed=true] i{border:0;width:0;height:0;border-left:8px solid currentColor;border-top:5px solid transparent;border-bottom:5px solid transparent}
@media(hover:hover) and (pointer:fine){.home main .motion-toggle:hover{color:var(--rust)}}
.home main .system-art{position:relative;isolation:isolate}
.home main .system-art::before{content:'';position:absolute;inset:4% 0 2%;background-image:radial-gradient(rgba(102,105,71,.2) .65px,transparent .65px);background-size:13px 13px;-webkit-mask-image:radial-gradient(ellipse,#000 30%,transparent 72%);mask-image:radial-gradient(ellipse,#000 30%,transparent 72%);z-index:-1}
.home main .art-breathe{width:100%;-webkit-mask-image:linear-gradient(transparent,#000 13%,#000 90%,transparent);mask-image:linear-gradient(transparent,#000 13%,#000 90%,transparent)}
/* will-change seulement pendant que l'ambiance tourne (section à l'écran, pas en pause) */
.js .home main .scrolly:not(.paused):not(.user-paused):not(.is-reduced) .art-breathe{will-change:transform}
.home main .system-art svg{display:block;width:100%;height:auto;max-height:calc(100svh - var(--header-h) - 104px);overflow:visible;margin-inline:auto}
.home main .figure-controls{display:flex;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid var(--line)}
.home main .layer-choice{font-size:11px;padding:8px 2px;min-height:34px;position:relative;white-space:nowrap;color:var(--muted);transition:color var(--t2) var(--ease-out)}
.home main .layer-choice::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--rust);transform:scaleX(0);transform-origin:left;transition:transform var(--t3) var(--ease-out)}
.home main .layer-choice.active{color:var(--rust)}
.home main .layer-choice.active::after{transform:scaleX(1)}
@media(hover:hover) and (pointer:fine){.home main .layer-choice:hover{color:var(--ink)}}
/* le dessin */
.home main #system-diagram text{font-kerning:normal}
/* tailles en px RENDUS : divisées par --r (échelle écran × caméra de l'étape), posée par scene-motion.js */
.home main #system-diagram{--r:1}
.home main #system-diagram .t-zone{font:500 calc(9px / var(--r)) var(--mono);letter-spacing:.16em;fill:#4f5446}
.home main #system-diagram .t-micro{font:calc(10px / var(--r)) var(--mono);letter-spacing:.04em}
.home main #system-diagram .t-strong{font-weight:700}
.home main #system-diagram .t-rust{fill:var(--rust-deep)}
.home main #system-diagram .t-ink{fill:#4f5446}
.home main #system-diagram .t-tag{font:500 calc(10.5px / var(--r)) var(--sans);letter-spacing:.01em}
.home main #system-diagram .t-lbl{font:calc(9.6px / var(--r)) var(--mono);letter-spacing:.06em;fill:var(--rust-deep)}
.home main #system-diagram .t-sub{font:calc(9.5px / var(--r)) var(--sans);fill:var(--muted)}
.home main #system-diagram .t-halo{paint-order:stroke;stroke:var(--paper);stroke-width:3.2px;stroke-linejoin:round}
.home main #system-diagram .dim{transform-box:view-box}
/* ambiance : respiration très légère de la figure, pausable.
   Portée par un conteneur HTML : une animation CSS sur des groupes SVG casse, dans Chromium,
   les pointillés des fils à plomb. */
.home main .art-breathe{animation:lift 7s var(--ease-calm) infinite}
@keyframes lift{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.5px)}}
.home main #system-diagram .flow4-run{stroke-dasharray:3 9;animation:run 2.4s linear infinite}
@keyframes run{to{stroke-dashoffset:-24}}
.home main .scrolly.paused .art-breathe,.home main .scrolly.user-paused .art-breathe,.home main .scrolly.paused #system-diagram *,.home main .scrolly.user-paused #system-diagram *{animation-play-state:paused!important}
/* V4 (audit I5) : piste mobile et tablette réduite dans la même proportion que le bureau (78 → 50, soit 85 → 55) */
@media(max-width:899px){.home main .scrolly{height:calc(100vh + 6 * 55vh);height:calc(100svh + 6 * 55svh)}
.home main .scrolly .sticky{align-items:flex-start}
.home main .scrolly-grid{grid-template-columns:minmax(0,1fr);row-gap:10px;align-content:start;padding-top:6px}
.home main .figure{order:-1}
.home main .figure-heading{display:none}
.home main .system-art svg{max-height:min(48svh,460px)}
.home main .figure-controls{overflow-x:auto;justify-content:flex-start;gap:18px;scrollbar-width:none;padding:6px 4px 6px}
.home main .figure-controls .layer-choice{outline-offset:-3px;flex:none;padding-inline:6px}
.home main .figure-controls.more-right{-webkit-mask-image:linear-gradient(90deg,#000 80%,transparent);mask-image:linear-gradient(90deg,#000 80%,transparent)}
.home main .figure-controls.more-left{-webkit-mask-image:linear-gradient(90deg,transparent,#000 20%);mask-image:linear-gradient(90deg,transparent,#000 20%)}
.home main .figure-controls.more-left.more-right{-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.home main .figure-controls::-webkit-scrollbar{display:none}
.home main .figure-caption{font-size:10px;left:6%;bottom:2%}
.home main .scrolly-copy{align-content:start}
.home main .step-title{font-size:clamp(25px,6.9vw,36px);margin:7px 0 9px}
.home main .step p.lead{font-size:13.5px;line-height:1.62}
.home main .step .eyebrow{font-size:10.5px}
.home main .step .calc-link{margin-top:12px}
.home main .step-index{margin-top:12px}
.home main #system-diagram .t-zone{letter-spacing:.03em}
.home main .art-breathe{-webkit-mask-image:linear-gradient(transparent,#000 11%,#000 92%,transparent);mask-image:linear-gradient(transparent,#000 11%,#000 92%,transparent)}
.home main #system-diagram .t-base{letter-spacing:0}
.home main #system-diagram .layer-labels,.home main #system-diagram .lbl-minor,.home main #system-diagram .stlabel-minor{display:none}}
.home main #system-diagram.compact .layer-labels,.home main #system-diagram.compact .lbl-minor,.home main #system-diagram.compact .stlabel-minor{display:none}
@media(max-width:899px) and (max-height:760px){.home main .system-art svg{max-height:40svh}
.home main .step p.lead{font-size:13px;line-height:1.55}}
/* écran très bas (téléphone en paysage, fenêtre basse) : pas d'épinglage, les six étapes à la suite,
   figure collante à côté du texte ; scene-motion.js passe alors en lecture « à la suite » (comme le mouvement réduit) */
@media(max-height:560px){.home main .scrolly{height:auto}
.home main .scrolly .sticky{position:static;height:auto;overflow:visible;display:block;padding-block:28px}
.home main .scrolly-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:28px;align-items:start;padding-top:0}
.home main .figure{order:0;position:sticky;top:calc(var(--header-h) + 8px);align-self:start}
.home main .figure-heading{display:none}
.home main .system-art svg{max-height:calc(100svh - var(--header-h) - 64px)}
.home main .figure-controls{overflow-x:auto;justify-content:flex-start;gap:14px;scrollbar-width:none;padding:2px 4px}
.home main .figure-controls .layer-choice{flex:none;padding-inline:6px;min-height:30px}
.js .home main .step{grid-area:auto;opacity:1;visibility:visible;transform:none;min-height:calc(100svh - var(--header-h) - 24px);display:flex;flex-direction:column;justify-content:center;position:relative;padding-left:18px}
.js .home main .step::before{content:'';position:absolute;left:0;top:50%;height:min(60%,200px);transform:translateY(-50%);width:2px;background:var(--line)}
.js .home main .step.is-on::before{background:var(--rust)}
.home main .step-title{font-size:clamp(24px,3.2vw,36px);margin:8px 0 10px}
.home main .step p.lead{font-size:13.5px;line-height:1.6}
.home main .step-index{display:none}
/* pas d'ambiance ici (le bouton pause est masqué avec l'en-tête de la figure) */
.home main .art-breathe,.home main #system-diagram .flow4-run{animation:none}}
/* sans JavaScript : onglets et curseurs inactifs masqués (le premier secteur et le résultat par défaut restent lisibles) */
.no-js .home main .calc-intro .field{display:none}
/* sans JavaScript : pas de dessin, les six étapes se lisent à la suite */
.no-js .home main .scrolly{height:auto}
.no-js .home main .scrolly .sticky{position:static;height:auto;padding-block:72px;display:block}
.no-js .home main .scrolly-grid{grid-template-columns:minmax(0,1fr)}
.no-js .home main .scrolly-copy{gap:44px;max-width:640px}
.no-js .home main .figure,.no-js .home main .step-index{display:none}
/* ---------- 3. 01 le point de départ ---------- */
.home main .context-intro{display:grid;grid-template-columns:1.1fr 1fr;align-items:end;gap:8%;margin-bottom:48px}
.home main .context-intro>p{max-width:440px;font-size:15px;line-height:1.85;padding-bottom:3px;color:var(--muted)}
.home main .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.home main .stat{padding:30px 34px 26px 0;min-width:0;display:grid;grid-template-rows:auto auto auto 1fr auto;align-content:start}
.home main .stat+.stat{border-left:1px solid var(--line);padding-left:34px}
.home main .stat-number{font-family:var(--serif);font-size:clamp(64px,7vw,100px);line-height:1;letter-spacing:-.06em;margin-bottom:22px;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:0}
.home main .stat-number>span:last-child{font-size:.42em;letter-spacing:-.03em}
.home main .viz{margin-bottom:24px;min-height:84px}
.home main .viz-units{display:grid;grid-template-rows:repeat(5,auto);grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;max-width:300px}
.home main .viz-units i{display:block;aspect-ratio:1;border-radius:50%;border:1px solid var(--line-2);background:transparent;transition:background var(--t2) var(--ease-out),border-color var(--t2) var(--ease-out),transform var(--t3) var(--ease-settle)}
.home main .viz-units i.on{background:var(--rust);border-color:var(--rust)}
.home main .viz-bars{display:grid;gap:9px;max-width:300px;padding-top:6px}
.home main .viz-bars .row{display:grid;grid-template-columns:1fr;gap:4px}
.home main .viz-bars .lbl{display:flex;justify-content:space-between;font:10px var(--mono);color:var(--muted);letter-spacing:.02em}
.home main .viz-bars .track{position:relative;height:10px}
.home main .viz-bars .base,.home main .viz-bars .gain{position:absolute;top:0;bottom:0;left:0;transform-origin:left}
.home main .viz-bars .base{width:calc(100% / 120 * 100);background:var(--line-2)}
.home main .viz-bars .gain{width:calc(100% / 120 * 115);background:var(--rust)}
.home main .viz-bars .gain::after{content:'';position:absolute;left:calc(100% / 115 * 100);top:-3px;bottom:-3px;width:1px;background:var(--ink)}
.home main .stat h3{font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.15;letter-spacing:-.015em;margin-bottom:12px;max-width:310px;text-wrap:balance}
.home main .stat p.body{font-size:12.5px;line-height:1.75;color:var(--muted);max-width:330px}
.home main .stat .micro{margin-top:18px;font-size:12px}
.home main .sources{border-top:1px solid var(--line);padding-top:17px}
.home main .sources summary{display:flex;justify-content:space-between;align-items:center;gap:24px;cursor:pointer;list-style:none;font-size:12.5px;color:var(--muted)}
.home main .sources summary::-webkit-details-marker{display:none}
.home main .sources summary b{font-weight:500;color:var(--ink);font-size:12px;display:inline-flex;gap:14px;align-items:center;white-space:nowrap}
.home main .sources summary b i{font-style:normal;color:var(--rust);font-size:18px;transition:transform var(--t3) var(--ease-out);display:inline-block}
.home main .sources[open] summary b i{transform:rotate(45deg)}
.home main .sources-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding:22px 0 6px}
.home main .sources-body strong{font-weight:500;color:var(--ink)}
.home main .sources-body p{font-size:12.5px;line-height:1.7;color:var(--muted);margin:0 0 8px}
.home main .sources-body a{font-size:12.5px;color:var(--rust);border-bottom:1px solid currentColor}
@media(max-width:900px){.home main .context-intro{grid-template-columns:1fr;gap:18px}
.home main .stats{grid-template-columns:1fr}
.home main .stat+.stat{border-left:0;border-top:1px solid var(--line);padding-left:0}
.home main .sources-body{grid-template-columns:1fr}
.home main .sources summary{align-items:flex-start}}
/* ---------- 4. sur votre terrain ---------- */
/* ---------- 5. 02 notre accompagnement ---------- */
.home main .two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:8%}
.home main .method-intro>div{position:sticky;top:calc(var(--header-h) + 48px)}
.home main .method-intro h2{margin-bottom:28px}
.home main .method-intro .lead-text{max-width:440px}
.home main .method-intro .lead-text+.lead-text{margin-top:14px}
.home main .method-steps{position:relative;padding-left:34px}
.home main .m-list{list-style:none;margin:0;padding:0}
.home main .method-line{position:absolute;left:8px;top:0;bottom:0;width:1px;background:var(--line)}
.home main .method-line i{position:absolute;inset:0;background:var(--rust);transform-origin:top;transform:scaleY(0)}
.home main .m-step{position:relative;padding:24px 0 30px;border-top:1px solid var(--line);transition:opacity var(--t3) var(--ease-out)}
.home main .m-step h3{transition:color var(--t3) var(--ease-out)}
.js .home main .m-step:not(.lit) h3{color:var(--muted)}
.home main .m-step::before{content:'';position:absolute;left:-30px;top:32px;width:9px;height:9px;border-radius:50%;background:var(--paper);border:1px solid var(--rust);transition:background var(--t2) var(--ease-out),transform var(--t3) var(--ease-settle)}
.home main .m-step.lit::before{background:var(--rust);transform:scale(1.25)}
.home main .m-step .num{font:10.5px var(--mono);color:var(--rust);letter-spacing:.1em}
.home main .m-step h3{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1;letter-spacing:-.02em;margin:6px 0 14px;text-wrap:balance}
.home main .m-step p{font-size:13.5px;line-height:1.8;color:var(--muted);max-width:520px}
.home main .m-step p+p{margin-top:10px}
@media(max-width:900px){.home main .two-col{grid-template-columns:1fr;gap:40px}
.home main .method-intro>div{position:static}
.home main .m-step h3{font-size:26px}}
/* ---------- 6. 03 vos interlocuteurs ---------- */
.home main .founders{background:var(--warm)}
.home main .founders-top{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:8%;align-items:end;margin-bottom:48px}
.home main .founders-top h2{font-size:clamp(38px,4.4vw,64px)}
.home main .founders-intro{display:grid;gap:14px;padding-bottom:6px}
.home main .founders-intro .lead-text{max-width:460px}
.home main .founder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.home main .founder{background:var(--paper);border:1px solid var(--line-2);border-radius:3px;padding:30px;display:grid;grid-template-rows:auto 1fr;gap:22px;transition:transform var(--t3) var(--ease-out),box-shadow var(--t3) var(--ease-out);min-width:0}
.home main .founder .head{display:grid;grid-template-columns:176px minmax(0,1fr);gap:40px;align-items:end;padding-bottom:22px}
.home main .portrait{position:relative;width:176px}
.home main .portrait .photo{position:relative;overflow:hidden;border-radius:2px;aspect-ratio:1;background:#d9d4c6}
.home main .portrait .photo img{width:100%;height:100%;object-fit:cover;transition:transform var(--t3) var(--ease-out)}
.home main .portrait .mark{position:absolute;right:-44px;bottom:-34px;width:118px;height:auto;filter:drop-shadow(0 6px 10px rgba(41,43,37,.18));transition:transform var(--t3) var(--ease-settle);transform-origin:50% 80%}
.home main .founder .who{min-width:0;padding-bottom:4px;display:grid;gap:10px}
.home main .founder h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.6vw,36px);letter-spacing:-.02em;line-height:1.05}
.home main .founder .role{font-size:13px;font-weight:600;line-height:1.5;color:var(--ink);max-width:340px}
.home main .founder .bio{display:grid;gap:10px;align-content:start}
.home main .founder .bio p{font-size:13px;line-height:1.8;color:var(--muted)}
@media(hover:hover) and (pointer:fine){.home main .founder:hover{transform:translateY(-3px);box-shadow:0 18px 40px -28px rgba(41,43,37,.35)}
.home main .founder:hover .mark{transform:rotate(-4deg) translateY(-2px)}
.home main .founder:hover .photo img{transform:scale(1.03)}}
@media(max-width:1100px){.home main .founder .head{grid-template-columns:1fr;gap:34px}}
@media(max-width:900px){.home main .founders-top{grid-template-columns:1fr;gap:22px}
.home main .founder-grid{grid-template-columns:1fr}
.home main .founder{padding:22px}}
@media(max-width:700px){.home main .portrait{width:150px}
.home main .portrait .mark{width:104px;right:-40px;bottom:-30px}}
/* ---------- 7. 04 calculateur d'impact ---------- */
.home main .calc-intro h2{margin-bottom:26px}
.home main .calc-intro .lead-text{max-width:440px}
.home main .calc-intro .lead-text+.lead-text{margin:12px 0 0}
.home main .calc-intro .lead-text:last-of-type{margin-bottom:32px}
.home main .field{margin-bottom:22px}
.home main .field label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:10px;gap:12px}
.home main .field output{font:12px var(--mono);color:var(--rust);font-variant-numeric:tabular-nums;white-space:nowrap}
.home main input[type=range]{width:100%;min-height:24px;accent-color:var(--rust);cursor:pointer}
.home main .calc-result{background:var(--warm);border:1px solid var(--line-2);border-radius:3px;padding:30px;align-self:start;position:sticky;top:calc(var(--header-h) + 48px)}
.home main .calc-result .eyebrow{color:var(--muted)}
.home main .big-number{font-family:var(--serif);font-size:clamp(70px,8vw,110px);letter-spacing:-.06em;line-height:1;margin:18px 0 20px;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:8px;color:var(--green-ink)}
.home main .big-number small{font-size:.3em;letter-spacing:-.02em}
.home main .calc-value{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid var(--line-2);padding-top:14px;font-size:12px;color:var(--muted)}
.home main .calc-value b{font-weight:500;font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.home main .calc-note{font:12px/1.7 var(--mono);color:var(--muted);margin-top:18px;border-top:1px solid var(--line-2);padding-top:14px}
.home main .calc-caveat{font-size:12.5px;line-height:1.7;color:var(--muted);margin-top:14px}
.home main .calc-link{margin-top:18px}
@media(max-width:900px){.home main .calc-result{position:static}}
/* ---------- 8. questions fréquentes (FAQ) ---------- */
.home main .faq-item{border-top:1px solid var(--line)}
.home main .faq-h{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit}
.home main .faq-item:last-child{border-bottom:1px solid var(--line)}
.home main .faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;text-align:left;padding:20px 0;font-size:16px;font-weight:500}
.home main .faq-q>span{text-wrap:pretty}
.home main .faq-q i{font-style:normal;font-size:22px;color:var(--rust);line-height:1;transition:transform var(--t3) var(--ease-out);display:inline-block;flex:none}
.home main .faq-q[aria-expanded=true] i{transform:rotate(45deg)}
.home main .faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--t3) var(--ease-out)}
.home main .faq-a>div{overflow:hidden;visibility:hidden;transition:visibility 0s linear var(--t3)}
.home main .faq-item.open .faq-a>div{visibility:visible;transition-delay:0s}
.no-js .home main .faq-a>div{visibility:visible}
.home main .faq-a p{font-size:13.5px;line-height:1.8;color:var(--muted);padding-bottom:22px;max-width:580px;opacity:0;transform:translateY(-4px);transition:opacity var(--t3) var(--ease-out),transform var(--t3) var(--ease-out)}
.home main .faq-item.open .faq-a{grid-template-rows:1fr}
.home main .faq-item.open .faq-a p{opacity:1;transform:none}
.no-js .home main .faq-a{grid-template-rows:1fr}
.no-js .home main .faq-a p{opacity:1;transform:none}
/* ---------- 9. contact ---------- */
.home main .cta{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.home main .cta .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:40px;position:relative}
.home main .cta .eyebrow{color:#bfc3b6}
.home main .cta h2{margin:22px 0 22px;max-width:900px}
.home main .cta h2 em{color:var(--rust-soft)}
.home main .cta p{color:#c9ccc0;font-size:14.5px;line-height:1.8;max-width:540px}
.home main .cta-actions{display:grid;gap:14px;justify-items:start}
.home main .cta-mail{font-size:12px;color:#c9ccc0}
.home main .cta-mail a{color:var(--paper);border-bottom:1px solid rgba(245,242,233,.4)}
.home main .cta :focus-visible{outline-color:var(--rust-soft)}
.home main .cta-grid{position:absolute;inset:0;background-image:radial-gradient(rgba(245,242,233,.09) .7px,transparent .7px);background-size:14px 14px;-webkit-mask-image:radial-gradient(ellipse at 80% 50%,#000 20%,transparent 70%);mask-image:radial-gradient(ellipse at 80% 50%,#000 20%,transparent 70%)}
@media(max-width:900px){.home main .cta .wrap{grid-template-columns:1fr;align-items:start}}
/* ---------- mouvement réduit : états finaux, sans déplacement ---------- */
@media(prefers-reduced-motion:reduce){.home main .method-line i{transform:none}
/* schéma : pas d'épinglage, tout le texte à 100 %, l'étape lue est marquée par une barre rouille */
.home main .scrolly{height:auto}
.home main .scrolly .sticky{position:static;height:auto;overflow:visible;display:block;padding-block:48px}
.home main .scrolly-grid{align-items:start}
.js .home main .step{grid-area:auto;opacity:1;visibility:visible;transform:none;min-height:62vh;display:flex;flex-direction:column;justify-content:center;position:relative;padding-left:18px}
.js .home main .step::before{content:'';position:absolute;left:0;top:50%;height:min(60%,220px);transform:translateY(-50%);width:2px;background:var(--line)}
.js .home main .step.is-on::before{background:var(--rust)}
.home main .step-index{display:none}
.home main .figure{position:sticky;top:calc(var(--header-h) + 12px);align-self:start}
.home main .motion-toggle{display:none}
.home main .art-breathe{will-change:auto}}
@media(prefers-reduced-motion:reduce) and (max-width:899px){.home main .figure{top:var(--header-h);background:var(--paper);z-index:2;padding-bottom:6px;border-bottom:1px solid var(--line)}
.js .home main .step{min-height:56vh;justify-content:flex-start;padding-top:24px}
.js .home main .step::before{top:24px;transform:none;height:calc(100% - 48px)}}

/* ---------------------------------------------------------------- accueil : ajouts V4 (brief, section 2) */
/* B. micro-texte de l'accroche avec le lien vers le questionnaire */
.home main .hero-aside .micro-link{white-space:nowrap;color:var(--ink);font-weight:500;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:4px;transition:color var(--t2) var(--ease-out),text-decoration-color var(--t2) var(--ease-out)}
@media(hover:hover) and (pointer:fine){.home main .hero-aside .micro-link:hover{color:var(--rust-deep);text-decoration-color:currentColor}}
/* C, E, F. liens côte à côte (étape 5 du schéma, méthode, interlocuteurs) */
.home main .step-links,.home main .intro-links{display:flex;flex-wrap:wrap;gap:12px 30px}
.home main .intro-links{margin-top:22px}
.home main .step-links .text-link,.home main .intro-links .text-link{gap:12px}
@media(hover:hover) and (pointer:fine){.home main .step-links .text-link:hover span,.home main .intro-links .text-link:hover span,.home main .sources-more .text-link:hover span,.home main .cta-second:hover span{transform:translateX(3px)}}
/* D. tiroir des sources : renvoi vers la page Sources */
.home main .sources-more{grid-column:1/-1;margin:0;padding-top:4px}
.home main .sources-body .sources-more a{border-bottom:0;color:var(--ink);font-size:12px}
@media(hover:hover) and (pointer:fine){.home main .sources-body .sources-more a:hover{color:var(--rust)}}
/* G. section Contact : bouton et lien secondaire */
.home main .cta-actions{gap:18px}
.home main .cta .cta-second{color:var(--paper);gap:12px}
.home main .cta .book-note{font-size:12.5px;line-height:1.6;color:#c9ccc0;max-width:40ch}
.home main .cta-mail{font-size:12px;color:#c9ccc0}
@media(max-width:899.98px){.home main .cta-actions .button{width:100%}}
body.sub{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);font:400 16px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
@media(min-width:960px){body.sub{font-size:17px}}
.sub main h1,.sub main h2,.sub main h3,.sub main p,.sub main ul,.sub main ol,.sub main dl,.sub main dd,.sub main figure,.sub main fieldset{margin:0}
.sub main ul,.sub main ol{padding:0}
.sub main h1,.sub main h2{font-family:var(--serif);font-weight:400;letter-spacing:-.03em;text-wrap:balance}
.sub main h3{font-weight:500;text-wrap:balance}
.sub main h1 em,.sub main h2 em{font-style:italic;color:var(--rust)}
.sub main p,.sub main li,.sub main dd{text-wrap:pretty}
.sub main strong{font-weight:600}
.sub main sup{font-size:.7em;line-height:0}
.sub main .section{padding-block:clamp(72px,10vw,140px)}
.sub main .eyebrow{font:12px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.1em}
.sub main .micro{font-size:14px;line-height:1.55;color:var(--muted)}
/* sans JavaScript : ce qui ne fonctionne qu'avec un script disparaît, et inversement */
.no-js .sub main [data-js-only]{display:none!important}
.js .sub main .nojs-only{display:none!important}
/* ---------------------------------------------------------------- liens et boutons */
.sub main .text-link{display:inline-flex;align-items:center;min-height:44px;font-weight:500;color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px;text-decoration-color:var(--line-2);transition:color var(--t2) var(--ease-out),text-decoration-color var(--t2) var(--ease-out)}
@media(hover:hover) and (pointer:fine){.sub main .text-link:hover{color:var(--rust-deep);text-decoration-color:currentColor}}
.sub main .button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:56px;padding:15px 22px;font-size:15px;font-weight:500;line-height:1.3;text-align:left;border:1px solid transparent;border-radius:2px;position:relative;overflow:hidden;isolation:isolate;transition:transform var(--t1) var(--ease-out),color var(--t2) var(--ease-out),border-color var(--t2) var(--ease-out)}
.sub main .button::before{content:'';position:absolute;inset:0;z-index:-1;transform:translateX(-101%);transition:transform var(--t3) var(--ease-out)}
.sub main .button .arr{font-size:19px;line-height:1;transition:transform var(--t2) var(--ease-out)}
.sub main .button .arr--back{order:-1}
.sub main .button:has(.arr--back){justify-content:flex-start;gap:16px}
.sub main .button:active{transform:scale(.98)}
.sub main .button--rust{background:var(--rust);color:var(--cream-ink)}
.sub main .button--rust::before{background:var(--rust-deep)}
.sub main .button--ink{background:var(--ink);color:var(--paper)}
.sub main .button--ink::before{background:var(--rust-deep)}
.sub main .button--line{border-color:var(--ink);color:var(--ink)}
.sub main .button--line::before{background:var(--ink)}
.sub main .button--paper{background:var(--paper);color:var(--ink)}
.sub main .button--paper::before{background:var(--warm)}
.sub main .button[aria-disabled=true]{cursor:not-allowed;background:var(--line);color:var(--ink)}
.sub main .button[aria-disabled=true]::before{display:none}
@media(hover:hover) and (pointer:fine){.sub main .button:hover::before{transform:translateX(0)}
.sub main .button:hover .arr{transform:translateX(3px)}
.sub main .button:hover .arr--back{transform:translateX(-3px)}
.sub main .button--line:hover{color:var(--paper)}
.sub main a[target=_blank].button:hover .arr{transform:translate(2px,-2px)}}
.sub main .actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 30px}
.sub main .book-note{font-size:14px;line-height:1.55;color:var(--muted);max-width:44ch;margin-top:14px}
/* flèche décorative dans un lien texte (V4 : « Pré-évaluer mon besoin en 4 questions → ») */
.sub main .text-link:has(.arr-inline){display:inline-block;min-height:0;padding-block:11px}   /* soulignement continu sous la flèche ; cible ≥ 44 px */
.sub main .text-link .arr-inline{color:var(--rust)}
/* lignes de liens vers les autres pages */
.sub main .routes{list-style:none;border-top:1px solid var(--ink)}
.sub main .routes a{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:68px;padding:16px 0;border-bottom:1px solid var(--line-2);font:400 clamp(22px,2.1vw,29px)/1.15 var(--serif);letter-spacing:-.015em;transition:color var(--t2) var(--ease-out)}
.sub main .routes .arr{font:400 20px/1 var(--sans);color:var(--rust);flex:none;transition:transform var(--t2) var(--ease-out)}
@media(hover:hover) and (pointer:fine){.sub main .routes a:hover{color:var(--rust-deep)}
.sub main .routes a:hover .arr{transform:translateX(5px)}}
.sub main .routes--compact a{min-height:60px;font-size:clamp(20px,1.7vw,24px)}
/* 6. deux fondateurs */
.sub main .portrait{position:relative;min-width:0}
.sub main .portrait__photo{position:relative}
.sub main .portrait picture{display:block;aspect-ratio:1;overflow:hidden;border-radius:2px;background:#d9d4c6}
.sub main .portrait picture img{width:100%;height:100%;object-fit:cover}
.sub main .portrait .mark{position:absolute;right:-6%;bottom:-11%;width:40%;max-width:118px;height:auto;filter:drop-shadow(0 6px 10px rgba(41,43,37,.18))}
.sub main .portrait figcaption{margin-top:30px;font-size:15px;font-weight:500}
/* ================================================================ PAGES INTÉRIEURES */
.sub main .page-head{padding-block:clamp(20px,3vw,36px) clamp(40px,5vw,72px)}
.sub main .page-head+.profile{border-top:1px solid var(--line)}
.sub main .crumbs{margin-bottom:clamp(28px,6vw,76px)}
.sub main .crumbs ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;font:12px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.sub main .crumbs li+li::before{content:'/';margin:0 10px;color:var(--line-2)}
.sub main .crumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:5px}
@media(hover:hover) and (pointer:fine){.sub main .crumbs a:hover{color:var(--rust-deep);text-decoration-color:currentColor}}
.sub main .page-head h1{font-size:clamp(44px,6.7vw,106px);line-height:.98;letter-spacing:-.04em;max-width:17ch}
.sub main .page-head__body{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:28px clamp(32px,7vw,112px);margin-top:clamp(36px,5vw,72px);align-items:start}
.sub main .page-head__body--single{grid-template-columns:minmax(0,1fr)}
.sub main .chapo{font-size:clamp(19px,1.55vw,23px);line-height:1.5;color:var(--ink);max-width:40ch}
.sub main .page-head__body--single .chapo{max-width:52ch}
.sub main .page-head__more>p{color:var(--muted);max-width:46ch}
.sub main .page-head__more>p+p{margin-top:16px}
.sub main .page-head__more .actions{margin-top:30px}
.sub main .page-head__strong{color:var(--ink)!important}
.sub main .page-head__strong strong{font-weight:600}
.sub main .updated{font:12px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:22px}
.sub main .page-head--legal h1{max-width:20ch}
@media(max-width:899.98px){.sub main .page-head__body{grid-template-columns:minmax(0,1fr)}}
/* colonne de lecture + sommaire collant */
.sub main .chapters-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:clamp(32px,5vw,80px);padding-block:clamp(56px,8vw,112px) clamp(72px,9vw,128px)}
.sub main .chapters{min-width:0;max-width:780px}
.sub main .toc{position:sticky;top:calc(var(--header-h) + 36px);align-self:start;max-height:calc(100vh - var(--header-h) - 72px);overflow-y:auto;scrollbar-width:thin}
.sub main .toc ol{list-style:none;border-left:1px solid var(--line)}
.sub main .toc a{display:grid;grid-template-columns:30px minmax(0,1fr);gap:4px;align-items:baseline;padding:9px 0 9px 16px;margin-left:-1px;border-left:2px solid transparent;font-size:14px;line-height:1.38;color:var(--muted);transition:color var(--t2) var(--ease-out),border-color var(--t2) var(--ease-out)}
.sub main .toc ol:not(:has(.toc__n)) a{grid-template-columns:minmax(0,1fr)}
.sub main .toc__n{font:12px/1 var(--mono);color:var(--rust-deep)}
.sub main .toc a[aria-current=true]{color:var(--ink);border-left-color:var(--rust)}
@media(hover:hover) and (pointer:fine){.sub main .toc a:hover{color:var(--ink)}}
/* le premier filet de section suffit à séparer l'en-tête du corps */
.sub main .page-head+.chapters-layout{padding-top:clamp(16px,3vw,40px)}
@media(max-width:1023.98px){.sub main .chapters-layout{grid-template-columns:minmax(0,1fr)}
.sub main .toc{display:none}
.sub main .chapters{max-width:720px}}
@media(max-height:620px){.sub main .toc{position:static;max-height:none}}
.sub main .chapter{padding-top:26px;border-top:1px solid var(--line);margin-bottom:clamp(56px,7vw,100px)}
.sub main .chapter h2{font-size:clamp(31px,3.3vw,46px);line-height:1.06;letter-spacing:-.025em;max-width:22ch;margin-bottom:24px}
.sub main .chapter__num{display:block;font:13px/1 var(--mono);letter-spacing:.08em;color:var(--rust-deep);margin-bottom:18px}
.sub main .chapter h3{font-size:18px;font-weight:600;margin:32px 0 10px}
.sub main .chapter p,.sub main .chapter li{color:var(--text);max-width:66ch}
.sub main .chapter p+p{margin-top:16px}
.sub main .list{list-style:none;border-top:1px solid var(--line)}
.sub main .list li{position:relative;padding:15px 0 15px 38px;border-bottom:1px solid var(--line)}
.sub main .list li::before{content:'';position:absolute;left:0;top:calc(15px + .78em);width:20px;height:2px;background:var(--rust)}
/* FAQ en blocs ouverts : 2 ou 3 réponses courtes, lisibles d'un coup d'œil, identiques au JSON-LD FAQPage */
.sub main .chapter--faq h2{margin-bottom:32px}
.sub main .faq{border-top:1px solid var(--ink)}
.sub main .faq__item{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:12px 40px;padding:26px 0 28px;border-bottom:1px solid var(--line)}
.sub main .chapter .faq__item h3{font:400 clamp(22px,1.9vw,26px)/1.2 var(--serif);letter-spacing:-.01em;margin:0}
@media(max-width:719.98px){.sub main .faq__item{grid-template-columns:minmax(0,1fr)}}
/* avertissement (usages illustratifs) : visuellement distinct du texte courant */
.sub main .note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;max-width:66ch;margin:-20px 0 clamp(56px,7vw,100px);padding:20px 24px;background:var(--warm);border-left:3px solid var(--muted);border-radius:0 3px 3px 0}
.sub main .note::before{content:'i' / '';display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--muted);border-radius:50%;font:italic 400 19px/1 var(--serif);color:var(--muted)}
.sub main .note p{font-size:16px;line-height:1.55;color:var(--text);font-style:italic}
/* fin de page : liens croisés + bouton final */
.sub main .page-end{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px 56px;align-items:end}
.sub main .page-end__cta{max-width:400px}
.sub main .page-end__cta .button{white-space:nowrap}
@media(max-width:479.98px){.sub main .page-end__cta .button{white-space:normal;width:100%}}
@media(max-width:719.98px){.sub main .page-end{grid-template-columns:minmax(0,1fr)}}
/* ---------------------------------------------------------------- le cabinet */
.sub main .page-head .page-head__more .page-head__strong{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-size:18px;line-height:1.5}
.sub main .profile{padding-block:clamp(56px,8vw,120px);border-bottom:1px solid var(--line)}
.sub main .profile__grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:44px clamp(40px,7vw,120px);align-items:start}
.sub main .portrait--lg{position:sticky;top:calc(var(--header-h) + 36px);max-width:380px;padding-bottom:28px}
.sub main .portrait--lg .mark{right:-9%;bottom:-8%}
@media(max-width:359.98px){.sub main .portrait .mark,.sub main .portrait--lg .mark{right:-2%}}
.sub main .profile h2{font-size:clamp(38px,4.6vw,66px);line-height:1;letter-spacing:-.035em}
.sub main .profile__role{margin:18px 0 32px;font-size:17px;line-height:1.5;max-width:46ch}
.sub main .profile__bio{display:grid;gap:16px}
.sub main .profile__bio p{color:var(--text);max-width:64ch}
.sub main .brings{margin-top:36px;max-width:62ch;padding:6px 0 6px 24px;border-left:2px solid var(--rust);color:var(--ink);font-size:17px;line-height:1.6}
.sub main .brings__label{display:block;font:12px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--rust-deep);margin-bottom:8px}
.sub main .regard{background:var(--warm)}
.sub main .regard__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px clamp(40px,7vw,120px);align-items:start}
.sub main .regard h2{font-size:var(--h2);line-height:1.02;max-width:14ch}
.sub main .regard__text p{color:var(--text);max-width:52ch}
.sub main .regard__text p+p{margin-top:16px}
.sub main .regard__text .actions{margin-top:36px}
@media(max-width:899.98px){.sub main .profile__grid,.sub main .regard__grid{grid-template-columns:minmax(0,1fr)}
.sub main .portrait--lg{position:relative;top:auto;max-width:300px}}
/* ---------------------------------------------------------------- contact et questionnaire */
.sub main .page-head--contact{border-bottom:0;padding-bottom:clamp(40px,6vw,72px)}
.sub main .rdv__mail{margin-top:18px}
.sub main .quiz-section{padding-block:0 clamp(72px,10vw,140px)}
.sub main .quiz{position:relative;max-width:1000px;background:var(--warm);border-radius:4px;padding:clamp(24px,4.4vw,64px)}
.sub main .quiz__intro h2{font-size:clamp(31px,3.4vw,48px);line-height:1.04;letter-spacing:-.025em;max-width:20ch}
.sub main .quiz__intro p{color:var(--text);max-width:56ch;margin-top:18px}
.sub main .quiz__nojs{color:var(--ink);font-weight:500;max-width:56ch;margin-top:40px}
.js .sub main .quiz:not([data-state=intro]) .quiz__intro p{display:none}
.js .sub main .quiz:not([data-state=intro]) .quiz__intro h2{font-size:clamp(22px,2vw,28px)}
.sub main .quiz__progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:32px}
.sub main .quiz__progress i{display:block;height:3px;background:var(--line-2);transform-origin:left;transition:background-color var(--t3) var(--ease-out)}
.sub main .quiz__progress i.done{background:var(--rust)}
.sub main .quiz[data-state=intro] .quiz__progress{display:none}
.sub main .quiz__steps{margin-top:36px}
.js .sub main .quiz[data-state=intro] .quiz__steps,.js .sub main .quiz[data-state=recap] .quiz__steps{display:none}
.sub main .quiz__step{border:0;padding:0;min-width:0}
.sub main .quiz__step:focus{outline:none}
.sub main .quiz__step:focus-visible legend{outline:2px solid var(--rust);outline-offset:6px}
.sub main .quiz__step legend{display:block;width:100%;padding:0;margin-bottom:24px}
.sub main .quiz__count{display:block;font:400 12px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--rust-deep);margin-bottom:12px}
.sub main .quiz__question{display:block;font:600 clamp(23px,2.3vw,32px)/1.2 var(--sans);letter-spacing:-.02em;max-width:28ch;text-wrap:balance}
.sub main .quiz__hint{font-size:15px;color:var(--muted);margin:-10px 0 18px}
.sub main .opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sub main .opt{display:flex;align-items:center;gap:16px;min-height:60px;padding:14px 18px;background:var(--paper);border:1px solid var(--line-2);border-radius:3px;cursor:pointer;font-size:16px;line-height:1.35;transition:border-color var(--t2) var(--ease-out),background-color var(--t2) var(--ease-out)}
.sub main .opt input{appearance:none;-webkit-appearance:none;flex:none;display:grid;place-content:center;width:22px;height:22px;margin:0;border:1.5px solid var(--muted);border-radius:50%;background:var(--paper-2);cursor:pointer;transition:border-color var(--t2) var(--ease-out)}
.sub main .opt input::before{content:'';width:10px;height:10px;border-radius:50%;background:var(--rust);transform:scale(0);transition:transform 160ms var(--ease-out)}
.sub main .opt input[type=checkbox]{border-radius:3px}
.sub main .opt input[type=checkbox]::before{width:13px;height:13px;border-radius:0;clip-path:polygon(14% 44%,0 62%,42% 100%,100% 18%,84% 2%,40% 66%)}
.sub main .opt input:checked{border-color:var(--rust)}
.sub main .opt input:checked::before{transform:scale(1)}
.sub main .opt input:focus-visible{outline:none}
.sub main .opt:has(input:checked){border-color:var(--rust);background:#fbf4ec}
.sub main .opt:has(input:focus-visible){outline:2px solid var(--rust);outline-offset:2px}
@media(hover:hover) and (pointer:fine){.sub main .opt:hover{border-color:var(--ink)}}
@media(forced-colors:active){.sub main .opt input{appearance:auto;-webkit-appearance:auto}
.sub main .opt input::before{display:none}}
.sub main .quiz__error{margin-top:16px;font-size:15px;font-weight:500;color:var(--rust-deep)}
.sub main .quiz__bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 28px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line-2)}
.sub main .quiz__nav{display:flex;flex-wrap:wrap;gap:12px}
.sub main .quiz[data-state=recap] .quiz__bar{display:none}
.sub main .quiz__recap{margin-top:36px}
.sub main .quiz__recap h2{font-size:clamp(31px,3.4vw,48px);line-height:1.04;letter-spacing:-.025em;max-width:20ch}
.sub main .quiz__recap h2:focus{outline:none}
.sub main .quiz__recap h2:focus-visible{outline:2px solid var(--rust);outline-offset:6px}
.sub main .quiz__recap>p{color:var(--text);max-width:58ch;margin-top:18px}
.sub main .recap{margin:30px 0 8px;border-top:1px solid var(--ink)}
.sub main .recap div{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:6px 32px;padding:18px 0;border-bottom:1px solid var(--line-2)}
.sub main .recap dt{font:12px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding-top:5px}
.sub main .recap dd{font:400 clamp(21px,1.9vw,25px)/1.3 var(--serif);letter-spacing:-.01em}
.sub main .quiz__recap .actions{margin-top:30px}
.sub main .quiz__recap button.text-link{text-align:left}
.sub main .quiz__notice{display:flex;gap:12px;align-items:flex-start;max-width:1000px;margin-top:20px;font-size:14.5px;line-height:1.55;color:var(--muted)}
.sub main .quiz__notice svg{flex:none;width:20px;height:20px;margin-top:1px;fill:none;stroke:var(--muted);stroke-width:1.4}
/* sans JavaScript : les quatre questions en liste lisible, sans champs ni boutons */
.no-js .sub main .quiz__step+.quiz__step{margin-top:48px}
.no-js .sub main .quiz__step legend{margin-bottom:14px}
.no-js .sub main .quiz__question{font-size:clamp(21px,2vw,27px)}
.no-js .sub main .opts{grid-template-columns:minmax(0,1fr);gap:0}
.no-js .sub main .opt{min-height:0;padding:5px 0 5px 30px;background:none;border:0;cursor:default;position:relative;color:var(--text)}
.no-js .sub main .opt::before{content:'';position:absolute;left:0;top:calc(50% - 1px);width:16px;height:2px;background:var(--rust)}
.no-js .sub main .opt input{display:none}
@media(max-width:719.98px){.sub main .opts{grid-template-columns:minmax(0,1fr)}
.sub main .recap div{grid-template-columns:minmax(0,1fr)}
.sub main .quiz__bar{flex-direction:column;align-items:stretch}
.sub main .quiz__nav .button{flex:1 1 auto;gap:14px;padding-inline:18px}
.sub main .quiz__skip{align-self:flex-start}}
/* ---------------------------------------------------------------- sources */
.sub main .source h2{display:flex;gap:.4em;align-items:baseline}
.sub main .source__num{font-style:italic;color:var(--rust)}
.sub main .source__link{margin-top:14px}
.sub main .source__link a{color:var(--ink);font-weight:500;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:5px;overflow-wrap:anywhere}
.sub main .source__link .arr{margin-left:6px;color:var(--rust);text-decoration:none;display:inline-block}
@media(hover:hover) and (pointer:fine){.sub main .source__link a:hover{color:var(--rust-deep);text-decoration-color:currentColor}}
/* ---------------------------------------------------------------- pages légales */
.sub main .legal .chapter{margin-bottom:clamp(44px,5vw,72px)}
.sub main .legal .chapter h2{font-size:clamp(28px,2.8vw,38px)}
.sub main .legal ul{list-style:none;margin:14px 0 16px;border-top:1px solid var(--line)}
.sub main .legal li{position:relative;padding:11px 0 11px 30px;border-bottom:1px solid var(--line)}
.sub main .legal li::before{content:'';position:absolute;left:0;top:calc(11px + .78em);width:14px;height:2px;background:var(--rust)}
.sub main .legal p.org{margin-top:26px;color:var(--ink)}
.sub main .legal a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--rust);text-underline-offset:4px;overflow-wrap:anywhere}
@media(hover:hover) and (pointer:fine){.sub main .legal a:hover{color:var(--rust-deep)}}
.sub main .legal mark{background:#f2dcc4;color:var(--ink);padding:1px 5px;border-radius:2px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
/* ---------------------------------------------------------------- 404 */
.sub main .notfound{padding-block:clamp(56px,10vw,128px)}
.sub main .notfound .eyebrow{color:var(--rust-deep);margin-bottom:22px}
.sub main .notfound h1{font-size:clamp(52px,9vw,132px);line-height:.95;letter-spacing:-.045em;max-width:12ch}
.sub main .notfound__text{color:var(--muted);font-size:18px;max-width:44ch;margin:28px 0 44px}
.sub main .notfound .routes{max-width:620px}
/* bouton de l'en-tête : version courte « Réserver » quand la barre manque de place (menu complet + libellé long) */
@media(max-width:1119.98px){.header-cta .long{display:none}.header-cta .short{display:inline}}
@media(max-width:1079.98px){
  :root{--header-h:64px}
  .site-header .bar{gap:12px}
  .site-header .brand{font-size:18px}
  .header-cta{margin-left:auto;padding:10px 14px;gap:12px;font-size:13.5px}
  .js .menu-toggle{display:block}
  /* avec JavaScript : le menu devient un panneau sous la barre */
  .js .main-nav{position:absolute;left:calc(-1 * var(--gutter));right:calc(-1 * var(--gutter));top:100%;margin:0;padding:6px var(--gutter) 22px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 28px 40px -34px rgba(41,43,37,.5);max-height:calc(100vh - var(--header-h) - env(safe-area-inset-top,0px));max-height:calc(100dvh - var(--header-h) - env(safe-area-inset-top,0px));overflow-y:auto;overscroll-behavior:contain;visibility:hidden;opacity:0;transform:translateY(-6px);transition:opacity var(--t2) var(--ease-out),transform var(--t2) var(--ease-out),visibility 0s linear var(--t2)}
  .js .main-nav.is-open{visibility:visible;opacity:1;transform:none;transition:opacity var(--t2) var(--ease-out),transform var(--t2) var(--ease-out),visibility 0s}
  .js .main-nav ul{display:grid;gap:0}
  .js .main-nav a{display:flex;min-height:56px;font:400 28px/1.1 var(--serif);letter-spacing:-.02em;border-bottom:1px solid var(--line)}
  .js .main-nav a::after{display:none}
  /* sans JavaScript : le menu reste visible, en seconde ligne, défilable */
  .no-js .site-header{position:static}
  .no-js .site-header .bar{flex-wrap:wrap;height:auto;padding-block:10px 0;row-gap:0}
  .no-js .main-nav{order:3;flex-basis:100%;margin:0}
  .no-js .main-nav ul{flex-wrap:wrap;gap:0 22px}
  .no-js .main-nav a{white-space:nowrap}
}
@media(max-width:420px){
  .site-header .bar{gap:8px}
  /* espacement du texte élargi (WCAG 1.4.12) ou police plus large : la marque peut passer sur deux lignes (« Artificial / 4Impact. ») ;
     le bouton du menu reste toujours dans l'écran */
  .site-header .brand{font-size:15.5px;gap:7px;letter-spacing:-.55px;flex:0 1 auto;white-space:normal;line-height:1.1}
  .header-cta{flex:0 1 auto;min-width:min-content;white-space:normal;line-height:1.15}   /* overflow:hidden annulerait le minimum automatique */
  .site-header .brand-mark{width:22px;height:24px}
  .header-cta{padding:9px 11px;font-size:12.5px}
  .header-cta .arr{display:none}
}
@media(max-width:374px){.site-header .brand-mark{display:none}}

/* ---------------------------------------------------------------- pied de page (structure de la V2.3, sur toutes les pages) */
.site-footer{border-top:1px solid var(--line);padding-block:52px calc(40px + env(safe-area-inset-bottom,0px))}
.home .site-footer{border-top-color:transparent}   /* l'accueil se termine par la section Contact sur fond encre */
.site-footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px;align-items:start;font-size:12px;line-height:1.6;color:var(--muted)}
.site-footer .brand{font-size:17px;min-height:0}
.site-footer .tag{font-family:var(--serif);font-size:21px;color:var(--ink);letter-spacing:-.02em;margin-top:12px;line-height:1.2}
.site-footer .col{display:grid;gap:2px;justify-items:start;align-content:start}
.site-footer .col>span{padding-block:4px}
.site-footer .col a{display:inline-flex;align-items:center;min-height:27px;padding-block:4px;border-bottom:1px solid transparent;transition:border-color var(--t2) var(--ease-out),color var(--t2) var(--ease-out)}
.site-footer .col a[aria-current=page]{color:var(--rust-deep);border-color:currentColor}
.site-footer .col .brand{min-height:44px;padding-block:0;border:0}
@media(hover:hover) and (pointer:fine){.site-footer .col a:not(.brand):hover{color:var(--rust-deep);border-color:currentColor}}
@media(max-width:900px){.site-footer .wrap{grid-template-columns:1fr;gap:22px}.site-footer .col a:not(.brand){min-height:44px;padding-block:0}}

/* ---------------------------------------------------------------- mouvement réduit : états finaux, sans déplacement */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:1ms!important;transition-delay:0s!important}
}
@media print{
  .site-header,.site-footer,.toc,.quiz-section,.skip,.progress{display:none}
  body{background:#fff}
}
