/* DOSOBE v6 — « Trame d'État ». Système semi-institutionnel : grille modulaire visible, trame en losanges, relief de données. */
@font-face{font-family:'Reckless Neue';src:local('Reckless Neue'),local('RecklessNeue-Regular');font-display:swap}
@font-face{font-family:Forum;src:url(../fonts/Forum-400-latin.woff2) format('woff2');font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}
@font-face{font-family:Forum;src:url(../fonts/Forum-400-latin-ext.woff2) format('woff2');font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Schibsted;src:url(../fonts/SchibstedGrotesk-var-latin.woff2) format('woff2');font-weight:400 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}
@font-face{font-family:Schibsted;src:url(../fonts/SchibstedGrotesk-var-latin-ext.woff2) format('woff2');font-weight:400 900;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Exo 2';src:url(../fonts/exo-2-latin-200-normal.woff2) format('woff2');font-weight:200;font-display:swap}
@font-face{font-family:'Exo 2';src:url(../fonts/exo-2-latin-300-normal.woff2) format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'Exo 2';src:url(../fonts/Exo2-400-latin.woff2) format('woff2');font-weight:400 500;font-display:swap}
@font-face{font-family:'Exo 2';src:url(../fonts/Exo2-600-latin.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Mondwest;src:local('PP Mondwest'),local('PPMondwest-Regular'),url(../fonts/pixelify-sans-latin-400-normal.woff2) format('woff2');font-display:swap}

:root{
  /* neutres chauds (papier d'archive) */
  --white:#FBFAF7; --paper:#F2EFE9; --paper-2:#E8E2D9; --sand:#D3CABD; --taupe:#ADA394; --stone:#5F594F;
  /* encre de nuit (institution) */
  --ink:#010E0E; --ink-2:#062322; --ink-3:#0D3835; --ink-soft:rgba(1,14,14,.66); --ink-faint:rgba(1,14,14,.12);
  /* signal DOSOBE — rare */
  --signal:#00C7AC; --signal-ink:#00695C;
  /* pigments (sombre / vif / pâle) */
  --dsb-d:#010E0E; --dsb:#0B3D38; --dsb-p:#CDEFE8;
  --roi-d:#12124A; --roi:#3B3BFF; --roi-p:#CDCFFF;
  --ciel-d:#0B2A3A; --ciel:#8FD6FF; --ciel-p:#DDF2FF;
  --olive-d:#22361F; --olive:#95B82C; --olive-p:#DDE7B6;
  --soleil-d:#3D2C05; --soleil:#F2BE1F; --soleil-p:#F8EAB5;
  --bordeaux-d:#4F0E1F; --bordeaux:#E5484D; --bordeaux-p:#F6D4D2;
  --magenta-d:#5C1245; --magenta:#D9449A; --magenta-p:#F2D3E5;

  --f-display:'Reckless Neue',Forum,'Times New Roman',serif;
  --f-text:Schibsted,system-ui,sans-serif;
  --f-num:'Exo 2',system-ui,sans-serif;
  --f-tag:Mondwest,'Exo 2',monospace;

  --gut:clamp(16px,2.4vw,32px);
  --frame:clamp(10px,1.4vw,20px);
  --line:1px solid var(--ink-faint);
  --r:2px;
  --ease:cubic-bezier(.2,.7,.1,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--f-text);font-feature-settings:'ss01';-webkit-font-smoothing:antialiased}
img,canvas,svg{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
::selection{background:var(--signal);color:var(--white)}
:focus-visible{outline:2px solid var(--signal-ink);outline-offset:3px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--ink);color:var(--white);padding:10px 14px;text-decoration:none}
.skip:focus{top:12px}

/* ——— types ——— */
.tag{font:400 13px/1 var(--f-tag);letter-spacing:.02em;text-transform:lowercase;display:inline-flex;gap:.35em;align-items:center}
.tag b{font-weight:400;color:var(--stone)}
.lab{font:500 11px/1.2 var(--f-num);letter-spacing:.14em;text-transform:uppercase}
.num{font:200 1em/0.9 var(--f-num);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
h1,h2,h3{font-family:var(--f-display);font-weight:400;margin:0;letter-spacing:-.012em}
.d1,.d2,.d3{font-family:var(--f-display);font-weight:400}
.d1{font-size:clamp(46px,8.4vw,136px);line-height:.94}
.d2{font-size:clamp(38px,5.6vw,88px);line-height:.98}
.d3{font-size:clamp(28px,3.2vw,46px);line-height:1.04}
.lead{font-size:clamp(18px,1.45vw,21px);line-height:1.5;color:var(--ink-soft);max-width:36em}
p{margin:0}

/* ——— cadre global : la page est posée dans une grille ——— */
.page{position:relative}
.rules{position:fixed;inset:0;pointer-events:none;z-index:1;display:grid;grid-template-columns:repeat(12,1fr);padding:0 var(--frame);mix-blend-mode:multiply}
.rules i{border-left:1px solid rgba(1,14,14,.045)}
.rules i:last-child{border-right:1px solid rgba(1,14,14,.045)}
.wrap{position:relative;z-index:2;margin:0 var(--frame)}

/* ——— boutons ——— */
.btn{--bg:var(--ink);--fg:var(--white);position:relative;display:inline-flex;align-items:center;gap:14px;height:52px;padding:0 8px 0 22px;background:var(--bg);color:var(--fg);text-decoration:none;font:500 15px/1 var(--f-text);border-radius:var(--r);overflow:hidden;isolation:isolate;transition:color .35s var(--ease)}
.btn .ar{display:grid;place-items:center;width:36px;height:36px;background:var(--signal);color:var(--ink);border-radius:var(--r);transition:transform .45s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:var(--dsb);transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn:hover .ar{transform:rotate(-45deg)}
.btn.ghost{--bg:transparent;--fg:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn.ghost .ar{background:transparent;box-shadow:inset 0 0 0 1px currentColor;color:inherit}
.btn.ghost::before{background:var(--ink)}
.btn.ghost:hover{color:var(--white)}
.on-dark .btn.ghost{--fg:var(--white);box-shadow:inset 0 0 0 1px rgba(251,250,247,.5)}
.on-dark .btn.ghost::before{background:var(--white)}
.on-dark .btn.ghost:hover{color:var(--ink)}
.lnk{display:inline-flex;gap:10px;align-items:center;font:500 15px/1 var(--f-text);text-decoration:none;padding:6px 0;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease)}
.lnk:hover{background-size:100% 1px}

/* ——— en-tête : barre institutionnelle en cellules ——— */
.hdr{position:fixed;left:var(--frame);right:var(--frame);top:var(--frame);z-index:50;display:grid;grid-template-columns:auto 1fr auto;align-items:stretch;height:58px;background:rgba(251,250,247,.86);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 0 0 1px var(--ink-faint);transition:transform .6s var(--ease),background .4s}
.hdr.hide{transform:translateY(calc(-100% - var(--frame) - 4px))}
.hdr .logo{display:flex;align-items:center;padding:0 22px;border-right:var(--line)}
.hdr .logo img{height:22px;width:auto}
.hdr nav{display:flex;align-items:stretch}
.hdr nav a{display:flex;align-items:center;gap:8px;padding:0 18px;text-decoration:none;font:500 14px/1 var(--f-text);border-right:var(--line);position:relative;transition:background .3s}
.hdr nav a .tag{font-size:11px;color:var(--stone)}
.hdr nav a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--signal);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.hdr nav a:hover{background:var(--paper)}
.hdr nav a:hover::after,.hdr nav a[aria-current]::after{transform:none}
.hdr .end{display:flex;align-items:stretch}
.hdr .coord{display:flex;align-items:center;padding:0 18px;border-left:var(--line);font:400 12px/1 var(--f-tag);color:var(--stone);min-width:150px}
.hdr .cta{display:flex;align-items:center;gap:12px;padding:0 10px 0 20px;background:var(--ink);color:var(--white);text-decoration:none;font:500 14px/1 var(--f-text)}
.hdr .cta .ar{width:30px;height:30px;display:grid;place-items:center;background:var(--signal);color:var(--ink);transition:transform .45s var(--ease)}
.hdr .cta:hover .ar{transform:rotate(-45deg)}
.burger{display:none}
@media (max-width:1080px){.hdr nav,.hdr .coord{display:none}.burger{display:flex;align-items:center;gap:10px;padding:0 18px;border-left:var(--line);font:500 14px/1 var(--f-text)}
  .burger i{display:grid;gap:5px}.burger i::before,.burger i::after{content:"";width:18px;height:1.5px;background:currentColor;display:block}}
@media (max-width:560px){.hdr .cta span{display:none}.hdr .cta{padding:0 12px}}
.drawer{position:fixed;inset:0;z-index:49;background:var(--ink);color:var(--white);padding:calc(58px + var(--frame)*2 + 24px) var(--gut) var(--gut);display:grid;align-content:space-between;clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease);visibility:hidden}
.menu-open .drawer{clip-path:inset(0);visibility:visible}
.drawer a{display:flex;align-items:baseline;gap:16px;font:400 clamp(34px,9vw,56px)/1.15 var(--f-display);text-decoration:none;border-bottom:1px solid rgba(251,250,247,.12);padding:10px 0}
.drawer a .tag{font-size:13px;color:var(--ciel)}

/* ——— HÉRO ——— */
.hero{position:relative;padding-top:calc(58px + var(--frame)*2)}
.hero .row-h{display:grid;grid-template-columns:repeat(12,1fr);border-top:var(--line);border-bottom:var(--line);background:var(--paper-2)}
.hero .row-h span{padding:10px 12px;border-right:var(--line);font:400 11px/1 var(--f-tag);color:var(--stone);white-space:nowrap;overflow:hidden}
.hero .stage{position:relative;display:grid;grid-template-columns:repeat(12,1fr);min-height:0}
.hero .copy{grid-column:1/8;align-self:center;padding:clamp(28px,5vw,72px) var(--gut) clamp(28px,4vw,56px);position:relative;z-index:3}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.04em}
.hero h1 .ln>span{display:inline-block}
.hero h1 em{font-style:normal;color:var(--signal-ink)}
.hero .lead{margin-top:28px}
.hero .ctas{margin-top:36px;display:flex;flex-wrap:wrap;gap:12px}
.hero .field{grid-column:8/13;grid-row:1;position:relative;border-left:var(--line);background:var(--dsb-d);overflow:hidden}
.hero .field canvas{position:absolute;inset:0;width:100%;height:100%}
.hero .field .cap{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;padding:12px 14px;font:400 11px/1 var(--f-tag);color:rgba(251,250,247,.72);z-index:2;pointer-events:none}
.hero .steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:var(--line);background:var(--white)}
.hero .steps div{padding:18px var(--gut) 22px;border-right:var(--line);display:grid;gap:10px;grid-template-columns:auto 1fr;align-items:end}
.hero .steps .num{font-size:52px}
.hero .steps p{font-size:14px;line-height:1.4;color:var(--ink-soft)}
.hero .steps b{display:block;font:500 15px/1.2 var(--f-text);color:var(--ink);margin-bottom:4px}
@media (max-width:900px){
  .hero .stage{grid-template-columns:1fr;grid-template-rows:auto 46vh}
  .hero .copy{grid-column:1}
  .hero .field{grid-column:1;grid-row:2;border-left:0;border-top:var(--line)}
  .hero .steps{grid-template-columns:1fr 1fr}
  .hero .steps div{grid-template-columns:1fr;gap:6px;padding:14px 16px}
  .hero .steps .num{font-size:36px}
  .hero .steps div:nth-child(2){border-right:0}
  .hero .steps div:nth-child(-n+2){border-bottom:var(--line)}
  .hero .row-h{grid-template-columns:repeat(4,1fr)}.hero .row-h span:nth-child(n+5){display:none}
}

/* ——— bande défilante ——— */
.band{border-top:var(--line);border-bottom:var(--line);background:var(--ink);color:var(--white);overflow:hidden;position:relative;z-index:2}
.band .track{display:flex;width:max-content;will-change:transform}
.band .it{display:flex;align-items:center;gap:18px;padding:18px 34px;border-right:1px solid rgba(251,250,247,.1);font:400 26px/1 var(--f-display);white-space:nowrap}
.band .it .dia{width:10px;height:10px;transform:rotate(45deg)}

/* ——— sections génériques ——— */
.sec{position:relative;padding:clamp(80px,11vw,168px) 0}
.sec-head{display:grid;grid-template-columns:repeat(12,1fr);gap:0 var(--gut);padding:0 var(--gut);margin-bottom:clamp(40px,6vw,88px);align-items:end}
.sec-head .k{grid-column:1/4;display:flex;gap:14px;align-items:baseline}
.sec-head h2{grid-column:4/11}
.sec-head .aside{grid-column:4/10;margin-top:24px}
@media (max-width:900px){.sec-head .k,.sec-head h2,.sec-head .aside{grid-column:1/-1}.sec-head .k{margin-bottom:22px}}

/* ——— manifeste ——— */
.manif{display:grid;grid-template-columns:repeat(12,1fr);gap:0 var(--gut);padding:0 var(--gut)}
.manif .big{grid-column:1/4;position:relative}
.manif .big .num{font-size:clamp(120px,17vw,260px);color:var(--sand);position:sticky;top:120px}
.manif .txt{grid-column:4/12}
.scrub{font:400 clamp(28px,3.4vw,52px)/1.12 var(--f-display);letter-spacing:-.01em}
.scrub em{font-style:normal;color:var(--signal-ink)}
.js:not(.reduce) .scrub .wd{opacity:.14}
.manif .sub{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut);margin-top:56px;padding-top:24px;border-top:var(--line)}
@media (max-width:900px){.manif .big{display:none}.manif .txt{grid-column:1/-1}.manif .sub{grid-template-columns:1fr}}

/* ——— solutions : planches modulaires ——— */
.sols{position:relative}
.sols .switch{display:inline-flex;box-shadow:inset 0 0 0 1px var(--ink-faint);background:var(--white);padding:4px;gap:0;position:relative}
.sols .switch button{position:relative;z-index:1;padding:10px 16px;font:500 13px/1 var(--f-text);transition:color .3s}
.sols .switch button[aria-pressed="true"]{color:var(--white)}
.sols .switch .pill{position:absolute;top:4px;bottom:4px;left:4px;background:var(--ink);transition:transform .5s var(--ease),width .5s var(--ease)}
.rail{display:flex;gap:0;padding:0 var(--gut);will-change:transform}
.card{--d:var(--roi-d);--v:var(--roi);--p:var(--roi-p);flex:0 0 clamp(300px,31vw,480px);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto 1fr;border:var(--line);margin-right:-1px;background:var(--white);text-decoration:none;color:var(--ink);position:relative;min-height:clamp(480px,62vh,640px)}
.card .c-name{grid-column:1;padding:20px;border-right:var(--line);border-bottom:var(--line);display:grid;align-content:space-between;gap:28px;min-height:190px}
.card .c-name h3{font-size:clamp(26px,2.2vw,34px);line-height:1.02}
.card .c-num{grid-column:2;background:var(--p);border-bottom:var(--line);display:grid;place-items:end start;padding:16px 20px;position:relative;overflow:hidden}
.card .c-num .num{font-size:clamp(84px,8vw,128px);color:var(--d)}
.card .c-txt{grid-column:1/-1;padding:18px 20px 20px;border-bottom:var(--line);font-size:15px;line-height:1.5;color:var(--ink-soft);display:grid;gap:14px}
.card .c-txt .st{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.card .c-txt .st span{white-space:nowrap;font:500 11px/1 var(--f-num);letter-spacing:.12em;text-transform:uppercase;color:var(--d);padding:6px 8px;box-shadow:inset 0 0 0 1px currentColor}
.card .c-plate{grid-column:1/-1;position:relative;background:var(--d);overflow:hidden;min-height:180px}
.card .c-plate canvas{position:absolute;inset:0;width:100%;height:100%}
.card .go{position:absolute;right:14px;bottom:14px;z-index:2;width:44px;height:44px;display:grid;place-items:center;background:var(--white);color:var(--ink);transition:transform .5s var(--ease),background .3s}
.card:hover .go,.card:focus-visible .go{transform:rotate(-45deg);background:var(--signal)}
.card .what{transition:opacity .25s,transform .25s}
.card.swap .what{opacity:0;transform:translateY(6px)}
.card.roi{--d:var(--roi-d);--v:var(--roi);--p:var(--roi-p)}
.card.soleil{--d:var(--soleil-d);--v:var(--soleil);--p:var(--soleil-p)}
.card.bordeaux{--d:var(--bordeaux-d);--v:var(--bordeaux);--p:var(--bordeaux-p)}
.card.magenta{--d:var(--magenta-d);--v:var(--magenta);--p:var(--magenta-p)}
.card.ciel{--d:var(--ciel-d);--v:var(--ciel);--p:var(--ciel-p)}
.card.olive{--d:var(--olive-d);--v:var(--olive);--p:var(--olive-p)}
.sols .bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px var(--gut) 0;flex-wrap:wrap}
.sols .prog{flex:1;max-width:420px;height:1px;background:var(--ink-faint);position:relative}
.sols .prog i{position:absolute;inset:0;background:var(--ink);transform-origin:left;transform:scaleX(0)}
@media (max-width:900px){.rail{flex-direction:column;gap:var(--gut)}.card{flex:auto;margin-right:0;min-height:0}.card .c-plate{min-height:200px}.sols .prog{display:none}}

/* ——— cartographie 3D ——— */
.carto{background:var(--white);border-top:var(--line);border-bottom:var(--line);position:relative}
.carto .sec-head{padding-top:0}
.atlas{position:relative;height:min(86vh,860px);margin:0 var(--gut);border:var(--line);background:linear-gradient(#EEF1F2,#F7F7F5);overflow:hidden}
.atlas canvas{position:absolute;inset:0;width:100%;height:100%}
.atlas .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.atlas .ui-top{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;padding:12px 14px;font:400 11px/1 var(--f-tag);color:var(--stone);z-index:3;pointer-events:none;border-bottom:1px solid rgba(1,14,14,.06);background:rgba(251,250,247,.5);backdrop-filter:blur(6px)}
.pin{position:absolute;left:0;top:0;z-index:4;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:0;will-change:transform}
.pin button{width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--white);display:grid;place-items:center;font:500 11px/1 var(--f-num);box-shadow:0 0 0 4px rgba(251,250,247,.65);transition:transform .35s var(--ease),background .3s}
.pin button:hover,.pin.on button{background:var(--signal-ink);transform:scale(1.12)}
.pin::after{content:"";width:1px;height:46px;background:var(--ink)}
.pin .lbl{position:absolute;bottom:calc(100% + 8px);white-space:nowrap;font:400 11px/1 var(--f-tag);background:var(--white);padding:5px 7px;box-shadow:0 0 0 1px var(--ink-faint);opacity:0;transform:translateY(4px);transition:.3s var(--ease);pointer-events:none}
.pin:hover .lbl,.pin.on .lbl{opacity:1;transform:none}
.panel{position:absolute;right:14px;top:52px;bottom:14px;width:min(340px,calc(100% - 28px));z-index:5;background:var(--ink-2);color:var(--white);display:grid;grid-template-rows:auto auto 1fr auto;transform:translateX(calc(100% + 20px));transition:transform .7s var(--ease)}
.panel.on{transform:none}
.panel .p-h{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(251,250,247,.1);font:400 11px/1 var(--f-tag);color:var(--ciel)}
.panel .p-h button{width:28px;height:28px;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(251,250,247,.25)}
.panel .p-b{padding:18px 14px;border-bottom:1px solid rgba(251,250,247,.1)}
.panel .p-b h3{font-size:30px;line-height:1.05;margin-bottom:12px}
.panel .p-b p{font-size:14px;line-height:1.5;color:rgba(251,250,247,.74)}
.panel .p-m{display:grid;grid-template-columns:1fr 1fr;align-content:start}
.panel .p-m div{padding:14px;border-bottom:1px solid rgba(251,250,247,.1);border-right:1px solid rgba(251,250,247,.1)}
.panel .p-m div:nth-child(2n){border-right:0}
.panel .p-m .lab{color:rgba(251,250,247,.55);display:block;margin-bottom:8px}
.panel .p-m strong{font:300 26px/1 var(--f-num)}
.panel .p-m .dots{display:flex;gap:4px;margin-top:4px}
.panel .p-m .dots i{width:9px;height:9px;transform:rotate(45deg);background:rgba(251,250,247,.18)}
.panel .p-m .dots i.on{background:var(--ciel)}
.panel .p-f{padding:14px}
.panel .p-f .btn{width:100%;justify-content:space-between}
.atlas .legend{position:absolute;left:14px;bottom:14px;z-index:3;display:flex;gap:0;background:rgba(251,250,247,.82);backdrop-filter:blur(6px);box-shadow:0 0 0 1px var(--ink-faint)}
.atlas .legend button{padding:10px 12px;font:400 11px/1 var(--f-tag);border-right:var(--line)}
.atlas .legend button:last-child{border-right:0}
.atlas .legend button[aria-pressed="true"]{background:var(--ink);color:var(--white)}
.atlas .hint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:3;font:400 11px/1 var(--f-tag);color:var(--stone);pointer-events:none}
@media (max-width:900px){.atlas{height:76vh}.atlas .legend{display:none}.panel{top:auto;height:auto;max-height:62%;left:14px;right:14px;width:auto;transform:translateY(calc(100% + 20px))}.panel.on{transform:none}.atlas .hint{bottom:auto;top:44px}}

/* ——— méthode : chapitres empilés ——— */
.method{display:grid;grid-template-columns:repeat(12,1fr);gap:0 var(--gut);padding:0 var(--gut)}
.method .side{grid-column:1/5}
.method .side .sticky{position:sticky;top:110px;display:grid;gap:24px}
.method .side .gauge{display:grid;grid-template-columns:repeat(4,1fr);border:var(--line)}
.method .side .gauge span{height:56px;border-right:var(--line);position:relative;overflow:hidden}
.method .side .gauge span:last-child{border-right:0}
.method .side .gauge span i{position:absolute;inset:0;background:var(--signal);transform:scaleY(0);transform-origin:bottom}
.method .steps{grid-column:6/13;display:grid;gap:0}
.mstep{display:grid;grid-template-columns:120px 1fr;gap:var(--gut);padding:clamp(28px,4vw,48px) 0;border-top:var(--line)}
.mstep:last-child{border-bottom:var(--line)}
.mstep .num{font-size:clamp(64px,6vw,96px);color:var(--sand);transition:color .6s}
.mstep.on .num{color:var(--signal-ink)}
.mstep h3{font-size:clamp(28px,2.6vw,40px);margin-bottom:14px}
.mstep p{color:var(--ink-soft);max-width:34em}
.mstep ul{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.mstep li{font:400 12px/1 var(--f-tag);padding:7px 9px;box-shadow:inset 0 0 0 1px var(--ink-faint);background:var(--white)}
@media (max-width:900px){.method .side{grid-column:1/-1;margin-bottom:28px}.method .side .sticky{position:static}.method .steps{grid-column:1/-1}.mstep{grid-template-columns:72px 1fr}}

/* ——— secteurs : diptyque public / privé ——— */
.dip{display:grid;grid-template-columns:1fr 1fr;border-top:var(--line);border-bottom:var(--line)}
.dip .side{position:relative;padding:clamp(28px,4vw,56px) var(--gut);min-height:88vh;display:grid;grid-template-rows:auto 1fr auto;gap:28px;overflow:hidden}
.dip .side + .side{border-left:var(--line)}
.dip .pub{background:var(--ink);color:var(--white)}
.dip .priv{background:var(--paper-2)}
.dip .plate{position:relative;margin:0 calc(var(--gut)*-1);overflow:hidden}
.dip .plate canvas{position:absolute;inset:-12% 0;width:100%;height:124%}
.dip ul{list-style:none;margin:0;padding:0;display:grid}
.dip li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid currentColor;border-color:rgba(127,127,127,.25);font-size:15px}
.dip li .tag{opacity:.7}
@media (max-width:900px){.dip{grid-template-columns:1fr}.dip .side{min-height:auto}.dip .side + .side{border-left:0;border-top:var(--line)}.dip .plate{height:220px}}

/* ——— partenaires ——— */
.part{display:grid;grid-template-columns:repeat(12,1fr);gap:0 var(--gut);padding:0 var(--gut)}
.part .cols{grid-column:4/13;display:grid;grid-template-columns:repeat(3,1fr);border:var(--line);background:var(--white)}
.part .cols div{padding:24px;border-right:var(--line);display:grid;gap:44px;align-content:space-between;min-height:280px;transition:background .4s}
.part .cols div:last-child{border-right:0}
.part .cols div:hover{background:var(--paper)}
.part .cols h3{font-size:28px;line-height:1.05}
.part .cols p{font-size:15px;color:var(--ink-soft)}
.part .note{grid-column:4/13;margin-top:20px;font-size:14px;color:var(--stone)}
@media (max-width:900px){.part .cols,.part .note{grid-column:1/-1}.part .cols{grid-template-columns:1fr}.part .cols div{border-right:0;border-bottom:var(--line);min-height:0}}

/* ——— final ——— */
.final{position:relative;background:var(--ink);color:var(--white);overflow:hidden}
.final .field{position:relative;height:min(92vh,880px)}
.final canvas{position:absolute;inset:0;width:100%;height:100%}
.final .over{position:absolute;inset:0;display:grid;align-content:center;padding:0 var(--gut);z-index:2;pointer-events:none}
.final .over > *{pointer-events:auto}
.final h2{max-width:9.5em}
.final .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}
.foot{background:var(--ink);color:rgba(251,250,247,.72);border-top:1px solid rgba(251,250,247,.1);display:grid;grid-template-columns:repeat(4,1fr);font-size:14px}
.foot > div{padding:24px var(--gut);border-right:1px solid rgba(251,250,247,.1);display:grid;gap:10px;align-content:start}
.foot > div:last-child{border-right:0}
.foot a{text-decoration:none;color:var(--white)}
.foot a:hover{text-decoration:underline}
.foot .lab{color:rgba(251,250,247,.62)}
.foot img{height:22px;width:auto}
@media (max-width:900px){.foot{grid-template-columns:1fr 1fr}.foot>div:nth-child(2){border-right:0}}

/* ——— curseur de coordonnées (additif) ——— */
.coordtip{position:fixed;left:0;top:0;z-index:60;pointer-events:none;font:400 11px/1 var(--f-tag);background:var(--ink);color:var(--white);padding:5px 7px;opacity:0;transition:opacity .2s;white-space:nowrap}
.coordtip.on{opacity:1}

/* ——— états d'apparition ——— */
.js:not(.reduce) [data-rv]{opacity:0;transform:translateY(28px)}
.js:not(.reduce) .hero h1 .ln>span{transform:translateY(105%)}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
