/* Vitrine : scène, héros, acteurs, mouvement, état, modèle. */
/* ---------- Toile : derrière tout ---------- */
#scene{display:none;position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.scene-on #scene{display:block}
.scene-hover,.scene-hover body{cursor:pointer}
.scroll-beam{position:fixed;left:0;top:0;bottom:0;width:2px;z-index:40;background:rgba(95,227,255,.08);pointer-events:none}
.scroll-beam i{display:block;height:100%;background:linear-gradient(180deg,var(--cyan-2),var(--cyan));transform:scaleY(0);transform-origin:top;box-shadow:0 0 12px var(--cyan)}

/* ---------- Héros ---------- */
.hero{position:relative}
.hero-stage{position:relative;padding-block:30px 40px;text-align:center}
.scene-still{display:block;width:min(1180px,100%);margin:18px auto 0}
.scene-still img{display:block;width:100%;height:auto;max-height:62svh;object-fit:cover;object-position:center 60%;border-radius:18px;-webkit-mask-image:radial-gradient(82% 88% at 50% 50%,#000 72%,transparent);mask-image:radial-gradient(82% 88% at 50% 50%,#000 72%,transparent)}
.hero-copy{position:relative;z-index:3}
.hero-mark{margin:14px 0 8px;font:700 clamp(36px,5.2vw,76px)/1 var(--f-wide);letter-spacing:.02em}
.hero-mark span{display:block}
.h-silver{background:linear-gradient(180deg,#fff 0%,#e9f3f8 42%,#8ea2b2 58%,#f4fafe 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 28px rgba(95,227,255,.28))}
.hero-mark .h-cyan{font-size:.34em;font-weight:500;letter-spacing:.42em;margin:.38em -.42em 0 0;color:var(--cyan);text-shadow:0 0 24px rgba(95,227,255,.75)}
.hero h1{font:600 clamp(26px,4vw,48px)/1.14 var(--f-display);max-width:24em;margin-inline:auto;text-shadow:0 1px 3px #000,0 2px 18px #000,0 0 34px #03060a}
.hero-foot{position:relative;z-index:3;margin-top:22px}
.hero-foot .cta{justify-content:center;margin-top:12px}
.hero-note{margin-top:12px;color:var(--muted);font-size:15px;text-shadow:0 2px 14px #000;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;justify-content:center}
.hero-note .status-pill{padding:5px 11px;font-size:12.5px}
.hero-note a{display:inline-block;padding:8px 0}
.chapter-rail{display:none}
.chapters{display:grid;gap:14px;padding:0 var(--gut) 40px;max-width:calc(var(--wrap));margin:0 auto;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.chapter{background:linear-gradient(155deg,rgba(14,32,47,.92),rgba(5,12,20,.95));border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.4vw,28px);box-shadow:0 24px 70px rgba(0,0,0,.55)}
.chapter h2{font:700 clamp(25px,3.1vw,42px)/1.08 var(--f-display);margin:8px 0}
.chapter h2 em{font-style:normal;background:var(--title);-webkit-background-clip:text;background-clip:text;color:transparent}
.chapter p:last-child{color:var(--muted);font-size:clamp(15.5px,1.2vw,17.5px)}
/* Version animée : le héros devient une scène épinglée */
.scene-on .scene-still{display:none}
.scene-on .hero{height:640vh}
.scene-on .hero-stage{position:sticky;top:0;height:100svh;margin-top:-65px;padding:0;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}
.scene-on .hero-copy{padding-top:clamp(74px,9.8vh,96px)}
.scene-on .hero-stage::after{content:"";position:absolute;left:0;right:0;bottom:0;height:24vh;background:linear-gradient(180deg,rgba(3,6,10,0),rgba(3,6,10,.82) 62%,rgba(3,6,10,.94));pointer-events:none;z-index:2}
.scene-on .hero-foot{margin-block:0;padding-bottom:clamp(14px,3vh,34px)}
.scene-on .hero-mark{margin-top:0;font-size:clamp(30px,min(3.3vw,5.8vh),54px)}
.scene-on .hero h1{font-size:clamp(20px,min(2.2vw,3.9vh),35px);margin-top:6px;max-width:none}
@media(max-width:820px){.scene-on .hero h1{max-width:20em}}
.scene-on .chapters{position:fixed;inset:0;z-index:2;display:block;padding:0;max-width:none;margin:0;pointer-events:none}
.scene-on .chapter{position:absolute;opacity:0;width:min(480px,calc(100% - 2 * var(--gut)));pointer-events:none;transition:none;backdrop-filter:blur(3px);background:linear-gradient(155deg,rgba(14,32,47,.78),rgba(5,12,20,.82))}
.scene-on .chapter.left{left:max(var(--gut),4vw);top:50%;margin-top:-130px}
.scene-on .chapter.right{right:max(var(--gut),4vw);top:50%;margin-top:-130px}
.scene-on .chapter.bottom{left:50%;margin-left:calc(min(780px,100% - 2 * var(--gut)) / -2);bottom:clamp(16px,4vh,44px);width:min(780px,calc(100% - 2 * var(--gut)));padding-block:clamp(14px,1.8vw,22px);text-align:center}
.scene-on .chapter-rail{display:flex;flex-direction:column;gap:12px;position:absolute;right:16px;top:50%;transform:translateY(-50%);z-index:3}
.chapter-rail i{width:7px;height:8px;clip-path:var(--hex);background:rgba(160,210,235,.35);transition:background .3s,transform .3s}
.chapter-rail i.on{background:var(--cyan);transform:scale(1.5)}
.rise{animation:rise 1s var(--ease) both}
.d1{--i:1;animation-delay:.08s}.d2{--i:2;animation-delay:.16s}.d3{--i:3;animation-delay:.24s}
@keyframes rise{from{opacity:.45;transform:translateY(22px)}to{opacity:1;transform:none}}
@media(max-width:820px){
  .scene-on .chapter.left,.scene-on .chapter.right,.scene-on .chapter.bottom{left:50%;right:auto;top:auto;bottom:clamp(14px,4vh,40px);margin:0 0 0 calc(min(480px,100% - 2 * var(--gut)) / -2);width:min(480px,calc(100% - 2 * var(--gut)));text-align:left}
  .chapter h2{font-size:clamp(23px,6.4vw,32px)}
  .scene-on .chapter-rail{display:none}
  .cta .btn{flex:1 1 100%}
  .scene-on .hero{height:560vh}
}

/* ---------- Acteurs ---------- */
.actors{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;align-items:start}
.actor-tabs{display:flex;flex-direction:column;gap:6px;position:sticky;top:90px}
.actor-tab{text-align:left;background:rgba(7,16,26,.75);border:1px solid var(--line-soft);border-radius:12px;padding:13px 16px;cursor:pointer;color:var(--muted);transition:all .25s var(--ease);min-height:50px;font-size:16px}
.actor-tab:hover{border-color:var(--line);color:var(--text);transform:translateX(3px)}
.actor-tab[aria-selected="true"]{background:linear-gradient(90deg,rgba(95,227,255,.2),rgba(7,16,26,.75));border-color:var(--cyan);color:var(--text);font-weight:600;box-shadow:0 0 26px rgba(20,184,216,.2)}
.actor-panel{padding:clamp(20px,3vw,36px);display:grid;gap:16px}
.actor-panel:focus-visible{outline-offset:-3px}
.actor-panel.enter>*{animation:stageIn .55s var(--ease) both}
.actor-panel h3{font:700 clamp(25px,3vw,40px)/1.08 var(--f-display)}
.pitch{color:var(--muted);font-size:clamp(16.5px,1.3vw,18.5px)}
.gains{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 22px}
.gains li{position:relative;padding:9px 0 9px 20px;border-top:1px solid var(--line-soft);line-height:1.4;font-size:15.5px}
.gains li::before{content:"";position:absolute;left:0;top:15px;width:9px;height:10px;clip-path:var(--hex);background:var(--cyan)}
.gains b{font-weight:600}
.gains span{color:var(--muted)}
.target-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.target{border:1px dashed var(--line);border-radius:12px;padding:12px 14px;background:rgba(95,227,255,.04);transition:all .25s}
.target:hover{border-color:var(--cyan);background:rgba(95,227,255,.1)}
.target b{display:block;font:700 17px/1.2 var(--f-display)}
.target small{color:var(--dim);font-size:13.5px}
.see-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.see{border-radius:10px;padding:10px 14px;border:1px solid var(--line-soft);font-size:15px;line-height:1.45}
.see b{display:block;margin-bottom:2px}
.see span{color:var(--muted)}
.see.yes{border-left:3px solid var(--ok)}
.see.no{border-left:3px solid var(--crit)}
@media(max-width:860px){.actors{grid-template-columns:1fr}.actor-tabs{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.gains,.see-grid{grid-template-columns:1fr}}

/* ---------- Mouvement ---------- */
.vote-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:stretch}
.deadline{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;font-size:16.5px;margin:12px 0}
.deadline b{color:var(--cyan-hi)}
.rules{margin-top:8px}
.rules li{padding:8px 0 8px 18px;position:relative;font-size:15.5px;line-height:1.45;border-top:1px solid var(--line-soft);color:var(--muted)}
.rules li:first-child{border-top:0}
.rules li::before{content:"";position:absolute;left:0;top:15px;width:8px;height:9px;clip-path:var(--hex);background:var(--cyan)}
.wall{margin-top:26px}
.wall-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-top:10px}
.wall-card{border:1px solid var(--line-soft);border-radius:12px;padding:12px 14px;background:rgba(7,16,26,.75)}
.wall-card b{display:block}
.wall-card small{color:var(--dim);font-size:14px}
.wall-empty{grid-column:1/-1;color:var(--muted);border:1px dashed var(--line);border-radius:12px;padding:20px;text-align:center;background:rgba(7,16,26,.6)}
@media(max-width:860px){.vote-grid{grid-template-columns:1fr}}

/* ---------- État ---------- */
.status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.status-col{padding:24px;display:flex;flex-direction:column;gap:12px}
.status-col .tag{align-self:flex-start}
.status-col h3{font:700 23px/1.18 var(--f-display)}
.status-col p{color:var(--muted);font-size:15.5px;line-height:1.5}
.status-col li{padding:7px 0 7px 18px;position:relative;font-size:15.5px;line-height:1.4;border-top:1px solid var(--line-soft)}
.status-col li::before{content:"";position:absolute;left:0;top:14px;width:8px;height:9px;clip-path:var(--hex);background:var(--dot,var(--cyan))}
.status-col.now{--dot:var(--ok);border-top:2px solid var(--ok)}.status-col.lab{--dot:var(--info);border-top:2px solid var(--info)}.status-col.vis{--dot:var(--cyan);border-top:2px solid var(--cyan)}
.status-col .btn{margin-top:auto;align-self:flex-start}
.note{font-size:15px!important;color:var(--text)!important;border-left:2px solid var(--cyan-2);padding-left:10px}
.readiness-box{margin-top:16px;padding:clamp(18px,2.4vw,26px)}
.ready-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 22px;margin-top:10px}
.ready-list li{position:relative;padding:6px 0 6px 18px;color:var(--muted);font-size:15.5px}
.ready-list li::before{content:"";position:absolute;left:0;top:13px;width:8px;height:9px;clip-path:var(--hex);background:var(--warn)}
@media(max-width:940px){.status-grid{grid-template-columns:1fr}}

/* ---------- Modèle ---------- */
.model-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px}
.model-card{padding:20px}
.model-card h3{font:700 21px/1.2 var(--f-display);margin-bottom:6px}
.model-card p:last-child{color:var(--muted);font-size:15.5px;line-height:1.45}
.sub-head{font:700 clamp(23px,2.8vw,34px)/1.15 var(--f-display);margin:clamp(30px,4vw,48px) 0 12px}

/* ---------- Ajustements d'écran de la scène ---------- */
@media(max-width:560px){
  .scene-on .hero-foot .cta{flex-wrap:nowrap;gap:8px;margin-top:0}
  .scene-on .hero-foot .cta .btn{flex:1 1 0;min-height:46px;padding:8px 10px;font-size:14px}
  .scene-on .hero-note{margin-top:8px;font-size:13.5px;gap:0 8px}
  .scene-on .hero-note a{padding:10px 0}
}
/* Sans scène : le titre d'abord, l'illustration ensuite */
.hero-stage{display:flex;flex-direction:column}
.hero-copy{order:1}
.hero-foot{order:2}
.hero-stage>.scene-still{order:3}

/* ---------- Séquence du héros ---------- */
.hero-mark.sheen .h-silver{animation:sheen 1.3s var(--ease)}
@keyframes sheen{0%{filter:brightness(1)}40%{filter:brightness(1.55) drop-shadow(0 0 20px rgba(95,227,255,.75))}100%{filter:brightness(1)}}
.hero-controls{display:none}
.scene-on .hero-controls:not([hidden]){display:flex;gap:8px;position:absolute;right:clamp(12px,3vw,40px);bottom:clamp(14px,3vh,34px);z-index:5}
.hero-controls .btn{background:rgba(5,14,22,.78);gap:8px}
.threat-note{display:none}
.scene-on .threat-note:not([hidden]){display:block;position:absolute;left:clamp(12px,3vw,40px);top:clamp(76px,11vh,104px);z-index:5;max-width:min(270px,calc(100% - 24px));margin:0;padding:10px 14px;border-radius:10px;border:1px solid var(--line);border-left:3px solid var(--menace);background:rgba(5,12,20,.9);font-size:14.5px;line-height:1.35;color:var(--text);animation:stageIn .45s var(--ease)}
.threat-note b{display:block;color:#ffc2bd;font:600 12.5px/1.4 var(--f-wide);letter-spacing:.12em;text-transform:uppercase}
.scene-tip{position:fixed;left:0;top:0;z-index:6;pointer-events:none;padding:7px 11px;border-radius:9px;background:rgba(5,12,20,.94);border:1px solid var(--line);font-size:14px;line-height:1.3;color:var(--text);white-space:nowrap}
.scene-tip b{display:block;font-family:var(--f-display)}
.scene-tip small{color:var(--muted);font-size:13px}
.actor-dialog{width:min(620px,calc(100% - 32px));max-height:min(84vh,720px);overflow:auto;padding:clamp(20px,3vw,32px);color:var(--text);border:1px solid var(--line)}
.actor-dialog::backdrop{background:rgba(1,4,8,.72);backdrop-filter:blur(3px)}
.actor-dialog h2{font:700 clamp(24px,3vw,34px)/1.1 var(--f-display);margin-right:42px}
.actor-dialog .pitch{margin-top:10px}
.actor-dialog .gains{grid-template-columns:1fr;margin-top:12px}
.actor-dialog .cta{margin-top:14px}
.dialog-close{position:absolute;right:12px;top:12px;width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,.3);border:1px solid var(--line);color:var(--text);font-size:24px;line-height:1;cursor:pointer}
.dialog-close:hover{border-color:var(--cyan)}
@media(max-width:560px){
  .scene-on .hero-controls:not([hidden]){right:8px;left:8px;justify-content:space-between;bottom:8px;pointer-events:none}
  .hero-controls .btn{pointer-events:auto;padding:0;width:44px;min-height:44px}
  .hero-controls .lbl{display:none}
}

/* ---------- L'urgence : des chiffres géants, leur source juste dessous ---------- */
.urgence-titre{font-size:clamp(36px,6.2vw,88px);max-width:14em}
.stat cite{display:block;font-style:normal;font-size:13.5px;line-height:1.35;margin-top:8px}
.stat cite a{color:var(--dim);display:inline-flex;align-items:center;min-height:40px;padding:6px 0}
.stat cite a:hover{color:var(--cyan-hi)}
.stat-n{display:block;font:700 clamp(30px,3.4vw,50px)/1.05 var(--f-display);font-variant-numeric:tabular-nums;background:var(--title);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat p{margin-top:8px;color:var(--muted);font-size:15.5px;line-height:1.45}
.stats-geants{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 clamp(16px,2.5vw,36px);border-block:1px solid var(--line);padding-block:clamp(18px,2.6vw,32px)}
.stats-geants .stat-n{font-size:clamp(30px,4.2vw,64px);white-space:nowrap}
.stats-menace{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.6vw,36px) clamp(18px,2.6vw,40px)}
.stats-menace .stat{border-top:1px solid var(--line-soft);padding-top:14px;position:relative}
.stats-menace .stat::before{content:"";position:absolute;left:0;top:-5px;width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan);animation:pulseNode 2.8s ease-in-out infinite}
.stats-menace .stat:nth-child(3n+2)::before{animation-delay:.9s}
.stats-menace .stat:nth-child(3n)::before{animation-delay:1.8s}
@keyframes pulseNode{0%,100%{transform:scale(.8);opacity:.55}50%{transform:scale(1.25);opacity:1}}
.stat-note{margin-top:16px;color:var(--muted);max-width:52em}
.stat-note b{color:var(--text)}
.stat-note cite{display:block;font-style:normal;font-size:13.5px}
.stat-note cite a{color:var(--dim);display:inline-flex;align-items:center;min-height:40px;padding:6px 0}
.urgence-fin{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:clamp(26px,3.6vw,48px)}
.urgence-fin p{font:600 clamp(21px,2.4vw,32px)/1.2 var(--f-display)}
/* ---------- Les piliers : une chaîne, pas des cartes ---------- */
.piliers{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;position:relative}
.piliers::before{content:"";position:absolute;left:0;right:0;top:9px;height:2px;background:linear-gradient(90deg,var(--cyan-2),var(--cyan));box-shadow:0 0 12px var(--cyan)}
.piliers li{position:relative;padding:38px clamp(10px,1.4vw,20px) 0 0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.piliers li::before{content:"";position:absolute;left:0;top:0;width:18px;height:21px;clip-path:var(--hex);background:var(--prime);filter:drop-shadow(0 0 10px var(--cyan))}
.pilier-verbe{font:600 13px/1.3 var(--f-wide);letter-spacing:.2em;text-transform:uppercase;color:var(--cyan)}
.piliers h3{font:700 clamp(19px,1.8vw,25px)/1.12 var(--f-display)}
.piliers p{color:var(--muted);font-size:15px;line-height:1.45}
.pilier-phrase{margin-top:clamp(20px,3vw,40px);font:600 clamp(24px,3vw,40px)/1.15 var(--f-display)}
.pilier-phrase em{font-style:normal;background:var(--title);-webkit-background-clip:text;background-clip:text;color:transparent}
/* ---------- Les fonctions ---------- */
.fonctions-filtre{margin:0 0 14px}
.fonctions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(20px,3vw,44px)}
.fonction{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;border-top:1px solid var(--line-soft);padding:13px 0}
.fonction h3{font:600 17.5px/1.25 var(--f-display)}
.fonction p{color:var(--muted);font-size:15px;line-height:1.4;margin-top:3px}
.fonction .tag{flex:none;white-space:nowrap}
/* ---------- Sécurité ---------- */
.materiaux{margin-top:clamp(30px,4vw,48px)}
.materiaux .sub-head{margin-top:0}
.mat-demo{margin-top:18px}
.mat-ecrans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.mat-ecran{padding:14px 16px 16px;min-width:0}
.mat-tete{display:flex;flex-direction:column;padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--line-soft)}
.mat-tete b{font:600 16px/1.3 var(--f-display)}
.mat-tete small{color:var(--dim);font-size:13.5px}
.mat-corps{display:flex;flex-direction:column;gap:10px}
.mat-liste{display:grid;gap:2px}
.mat-article{display:flex;align-items:center;gap:10px;min-height:44px;color:var(--text);font-size:15px;line-height:1.3;cursor:pointer}
.mat-article input{width:24px;height:24px;flex:none;accent-color:var(--cyan)}
.mat-article span{flex:1 1 auto;min-width:0}
.mat-article small{color:var(--muted);font:500 14px/1.2 var(--f-data);white-space:nowrap}
.mat-recue{list-style:none;padding:0;margin:0}
.mat-recue li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--line-soft);font-size:15px;color:var(--muted)}
.mat-recue b{color:var(--text);font-weight:600;white-space:nowrap}
.mat-fin{margin-top:12px}
@media(max-width:900px){.mat-ecrans{grid-template-columns:1fr}}
#partenaires,#calculateur,#materiaux,#pourquoi,#services-security{scroll-margin-top:84px}
.pourquoi{margin-top:clamp(30px,4vw,48px)}
.pourquoi .sub-head{margin-top:0}
#actor-panel .side-title{margin-top:16px}
.avantages .gains{margin-bottom:6px}
.calculateur{margin-top:clamp(30px,4vw,48px)}
.calculateur .sub-head{margin-top:0}
.calc-boite{padding:clamp(16px,2.4vw,28px);margin-top:18px}
.calc-accroche{font:600 clamp(18px,2vw,23px)/1.3 var(--f-display);color:var(--text);margin:16px 0 18px}
.calc-grille{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(18px,3vw,36px)}
.calc-champs fieldset{border:0;padding:0;margin:0 0 18px;display:grid;gap:12px}
.calc-champs legend{padding:0}
.calc-champ{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,190px);gap:6px 14px;align-items:center;color:var(--muted);font-size:15.5px;line-height:1.35}
.calc-saisie{display:flex;align-items:center;gap:8px}
.calc-saisie input{width:96px;min-height:44px;flex:none;padding:8px 10px;color:var(--text);background:rgba(0,0,0,.38);border:1px solid var(--contour);border-radius:10px;font:500 16px/1.2 var(--f-data)}
.calc-saisie input:focus-visible{border-color:var(--cyan);outline:2px solid var(--cyan);outline-offset:2px;box-shadow:0 0 0 3px rgba(95,227,255,.22)}
.calc-saisie small{color:var(--dim);font-size:13.5px;line-height:1.25}
.calc-resultat{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(14px,2vw,22px);border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.28);align-self:start}
.calc-annee{font:600 clamp(32px,4.4vw,54px)/1.08 var(--f-data);color:var(--cyan);text-shadow:0 0 24px rgba(95,227,255,.45);overflow-wrap:anywhere}
.calc-mois{font-size:17px;color:var(--text);margin-top:8px}
.calc-temps{font-size:15.5px;color:var(--muted);margin-top:2px}
.calc-details{list-style:none;padding:0;margin:14px 0;width:100%}
.calc-details li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line-soft);font-size:15px;color:var(--muted)}
.calc-details b{color:var(--text);font-weight:600;white-space:nowrap}
@media(max-width:900px){.calc-grille{grid-template-columns:1fr}.calc-resultat{order:-1}}
@media(max-width:560px){.calc-champ{grid-template-columns:1fr}}
.partenaires{margin-top:clamp(30px,4vw,48px)}
.partenaires .sub-head{margin-top:clamp(22px,3vw,34px)}
.part-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
.part-secteur{padding:16px}
.part-secteur h4{font:600 17px/1.3 var(--f-display);margin-bottom:12px}
.part-cases{display:grid;grid-template-columns:3fr 2fr;gap:8px}
.part-case{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-decoration:none;transition:border-color .2s,box-shadow .2s}
.part-case:hover{border-color:var(--cyan);box-shadow:0 0 18px rgba(95,227,255,.22)}
.part-case b{color:var(--text);font:600 15px/1.25 var(--f-display)}
.part-case span{color:var(--cyan);font:500 14px/1.3 var(--f-data)}
.part-case small{font-size:13px;line-height:1.3}
.part-grande{grid-column:1/-1;min-height:112px}
.part-grande b{font-size:18px}
.part-grande span{font-size:16px}
.part-moyenne{min-height:92px}
.part-petite{min-height:92px}
.part-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:clamp(16px,2.4vw,26px)}
.part-champ{display:grid;gap:5px;color:var(--muted);font-size:15px}
.part-champ input,.part-champ select,.part-champ textarea{width:100%;min-height:46px;padding:10px 12px;color:var(--text);background:rgba(0,0,0,.38);border:1px solid var(--contour);border-radius:10px;font:400 16px/1.3 var(--f-body)}
.part-champ select option{background:var(--abysse)}
.part-champ :is(input,select,textarea):focus-visible{border-color:var(--cyan);outline:2px solid var(--cyan);outline-offset:2px;box-shadow:0 0 0 3px rgba(95,227,255,.22)}
.part-champ [aria-invalid="true"]{border-color:var(--crit)}
.part-large{grid-column:1/-1}
.part-coche{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:15px;min-height:44px}
.part-coche input{width:24px;height:24px;flex:none}
.part-piege{position:absolute;left:-9999px;width:220px;overflow:hidden}
.part-piege input{display:block;width:200px;min-height:44px}
#partenaire-etat:empty{display:none}
@media(max-width:1000px){.part-grille{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.part-grille,.part-form{grid-template-columns:1fr}}
.price-rabais{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-top:4px;color:var(--dim);font-size:14px}
.price-rabais s{color:var(--muted);font:500 15px/1.2 var(--f-data);text-decoration-color:var(--dim)}
.services-tete{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}
.services-tete img{width:56px;height:56px;object-fit:contain}
.couches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(18px,2.6vw,36px)}
.couches li{border-top:1px solid var(--line-soft);padding:12px 0}
.couches b{display:block;font:600 16.5px/1.3 var(--f-display)}
.couches span{color:var(--muted);font-size:15px;line-height:1.4}
.couches a{padding:10px 0}
.gestes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;counter-reset:geste}
.gestes li{counter-increment:geste;padding:16px;border:1px solid var(--line-soft);border-radius:14px;background:rgba(7,16,26,.72)}
.gestes li::before{content:counter(geste);display:block;font:700 30px/1 var(--f-display);color:var(--cyan);margin-bottom:8px}
.gestes h4{margin:0;font:600 16.5px/1.25 var(--f-display)}
.gestes p{margin-top:5px;color:var(--muted);font-size:14.5px;line-height:1.4}
.sub-head .tag{vertical-align:middle;margin-left:8px;font-family:var(--f-body)}
/* ---------- Innovations ---------- */
.inno-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:12px}
.inno{padding:18px}
.inno h3{font:700 19.5px/1.2 var(--f-display);margin-top:10px}
.inno p{color:var(--muted);font-size:15px;line-height:1.42;margin-top:5px}
/* ---------- Offre fondateurs ---------- */
.prix-mention{margin-bottom:14px;padding:11px 15px;border:1px solid var(--line);border-radius:10px;background:rgba(95,227,255,.08);font-size:15.5px;line-height:1.45}
.pricing{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px}
.price{padding:20px;display:flex;flex-direction:column;gap:4px}
.price h3{font-size:16.5px;line-height:1.3;font-weight:600}
.price b{display:block;font:700 clamp(25px,2.4vw,33px)/1.1 var(--f-display);color:var(--cyan);margin-top:6px}
.price small{color:var(--muted);font-size:14.5px}
.price p{color:var(--muted);font-size:14.5px;line-height:1.4;margin-top:6px}
/* ---------- Appel final : la scène revient au premier plan ---------- */
.sec-final{background:none;min-height:100svh;display:flex;align-items:center}
.final-carte{max-width:760px;margin-inline:auto;text-align:center;padding:clamp(22px,4vw,44px);border-radius:26px;background:rgba(3,6,10,.76);backdrop-filter:blur(8px);border:1px solid var(--line)}
.final-logo{display:block;width:clamp(170px,24vw,260px);height:auto;margin:0 auto 6px;filter:drop-shadow(0 12px 40px rgba(0,0,0,.6))}
.final-carte .h2{margin:0 auto;font-size:clamp(30px,4.2vw,56px)}
.final-carte .lede{margin-inline:auto}
.final-carte .cta{justify-content:center;margin-top:18px}
@media(max-width:1100px){.piliers{grid-template-columns:1fr;gap:18px}.piliers::before{left:8px;right:auto;top:0;bottom:0;width:2px;height:auto}.piliers li{padding:0 0 0 32px}.gestes{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-menace{grid-template-columns:repeat(2,minmax(0,1fr))}.couches{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.stats-geants{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}.fonctions{grid-template-columns:1fr}}
@media(max-width:560px){.stats-menace,.couches,.gestes{grid-template-columns:1fr}.fonction{flex-direction:column;gap:6px}}
.couches span{display:block}
.auto-tags{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}
.fine a{padding:10px 0}

/* ---------- La boucle à sept étapes : la lumière passe d'une étape à l'autre ---------- */
.loop{margin-bottom:22px}
.loop ol{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;position:relative}
.loop ol::before{content:"";position:absolute;left:8%;right:8%;top:22px;height:2px;background:repeating-linear-gradient(90deg,var(--cyan) 0 14px,transparent 14px 26px);animation:march 1.4s linear infinite;opacity:.7}
@keyframes march{to{background-position:26px 0}}
.loop li{position:relative;display:grid;justify-items:center;text-align:center;gap:3px;padding:0 6px}
.loop li::before{content:"";width:38px;height:44px;clip-path:var(--hex);background:var(--prime);filter:drop-shadow(0 0 14px var(--cyan));margin-bottom:6px;position:relative;z-index:1}
.loop b{font:700 17px var(--f-display)}
.loop span{color:var(--dim);font-size:14px;line-height:1.3}
.loop li::before{animation:boucleLueur 8.4s ease-in-out infinite}
.loop li:nth-child(2)::before{animation-delay:1.2s}.loop li:nth-child(3)::before{animation-delay:2.4s}.loop li:nth-child(4)::before{animation-delay:3.6s}.loop li:nth-child(5)::before{animation-delay:4.8s}.loop li:nth-child(6)::before{animation-delay:6s}.loop li:nth-child(7)::before{animation-delay:7.2s}
@keyframes boucleLueur{0%,16%,100%{opacity:.5;transform:scale(.92)}8%{opacity:1;transform:scale(1.14)}}
@media(max-width:860px){.loop ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 0}.loop ol::before{display:none}}
.mur-statut{margin-top:7px}
.loop li{align-content:start}
.chapter h2,.chapter p{text-wrap:balance}
.scene-on .hero-mark .h-cyan{text-shadow:0 0 18px rgba(95,227,255,.7),0 1px 4px #000,0 0 22px #03060a}
.stat{display:flex;flex-direction:column}
.stat cite{margin-top:auto}
.piliers .tag{margin-top:auto}
html:not(.js) .actors,html:not(.js) .matrice-box{display:none}
.threat-note{text-align:left}
