/* ==========================================================================
   DNA Conseil et Formations · site v5 « Hélice de lumière » (24/10/2026)
   Fond abysse profond, lumière turquoise et jaune de la charte, titres géants.
   Règle d'or : rien n'est masqué sans la classe html.anim, posée par le script de
   tête seulement si le mouvement est permis (ni prefers-reduced-motion, ni
   « Arrêter les animations », ni Mode accessible, ni FALC). Sans .anim : page
   statique complète, lisible, sans aucun mouvement.
   Couches : 1 jetons · 2 base · 3 en-tête · 4 boutons · 5 accueil · 6 pages
   intérieures · 7 pied · 8 réglages · 9 mouvement (.anim) · 10 accessibilité
   ========================================================================== */
@font-face{font-family:'OpenDyslexic';src:url('/fonts/OpenDyslexic-Regular.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:'OpenDyslexic';src:url('/fonts/OpenDyslexic-Bold.woff') format('woff');font-weight:700;font-display:swap}

/* ------------------------------------------------------------------ 1. jetons */
:root{
  /* charte DNA Conseil et Formations */
  --turq:#1DB9C3;--turq-fonce:#0D7A82;--jaune:#F0BB3B;--abysse:#0A3238;
  /* surfaces sombres dérivées de l'abysse */
  --fond:#04161A;--fond-0:#020E11;--surf:#0A262C;--surf-2:#0E3138;--ligne:#163F47;--ligne-2:#235660;
  /* textes (tous ≥ 7:1 sur --fond) */
  --blanc:#FFFFFF;--gris-1:#CBE0E3;--gris-2:#93B5BA;--turq-txt:#3CCAD3;--jaune-txt:#F4C658;
  /* lumière : réservée aux filets, CTA, halos */
  --lum:linear-gradient(90deg,#1DB9C3 0%,#7FD7C4 48%,#F0BB3B 100%);
  --halo-t:rgba(29,185,195,.55);--halo-j:rgba(240,187,59,.5);
  --titre:'Montserrat','Montserrat Fallback','Segoe UI',Arial,sans-serif;
  --texte:'Lato','Lato Fallback','Segoe UI',Arial,sans-serif;
  --h1:clamp(2.7rem,6.7vw,6.5rem);--h2:clamp(2.1rem,5.2vw,4.6rem);--h3:clamp(1.25rem,1.8vw,1.55rem);
  --wrap:1260px;--gout:clamp(1.25rem,4.5vw,3.5rem);--r:22px;--entete:78px;
  --ease:cubic-bezier(.2,.7,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);
  --interligne:1.65;
  /* anciennes variables utilisées en style en ligne par les pages existantes */
  --gris-median:var(--gris-2);--ecume:var(--surf);--bordure:var(--ligne-2);--turquoise:var(--turq);
  --police-titre:var(--titre);--police-texte:var(--texte);--lien:var(--turq-txt);--encre:var(--gris-1);
  color-scheme:dark;
}
html[data-taille="1"]{font-size:112.5%}
html[data-taille="2"]{font-size:125%}
html[data-taille="3"]{font-size:145%}
html[data-interligne="1"]{--interligne:1.95}
html[data-interligne="2"]{--interligne:2.3}

/* ------------------------------------------------------------------ 2. base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--fond);scroll-padding-top:calc(var(--entete) + 1rem)}
body{margin:0;font-family:var(--texte);font-size:1.0625rem;line-height:var(--interligne);color:var(--gris-1);background:var(--fond);overflow-x:clip}
/* grain très léger sur tout le fond (profondeur, sans image) */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(1200px 700px at 85% -10%,rgba(29,185,195,.10),transparent 60%),
  radial-gradient(900px 600px at -10% 110%,rgba(240,187,59,.05),transparent 60%),var(--fond)}
img,video,svg,canvas{display:block;max-width:100%}
img{height:auto}
figure{margin:0}
h1,h2,h3,h4{font-family:var(--titre);font-weight:800;line-height:1.02;letter-spacing:-.035em;margin:0 0 .5em;color:var(--blanc);text-wrap:balance}
h1{font-size:var(--h1);font-weight:850;letter-spacing:-.045em;line-height:.95}
h2{font-size:var(--h2)}
h3{font-size:var(--h3);line-height:1.18;letter-spacing:-.02em;font-weight:750}
h4{font-size:1.1rem;letter-spacing:-.01em}
h1 em,h2 em,h3 em,.chute em{font-style:normal;color:var(--jaune)}
p{margin:0 0 1em;text-wrap:pretty}
p:last-child{margin-bottom:0}
a{color:var(--turq-txt);text-underline-offset:.22em}
a:hover{color:var(--blanc)}
ul,ol{margin:0;padding:0}
strong,b{color:var(--blanc);font-weight:700}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--jaune);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gout)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:.6rem;z-index:500;background:var(--jaune);color:#04161A;padding:.7rem 1.1rem;border-radius:10px;font-weight:700;text-decoration:none}
.skip:focus{left:.75rem}
::selection{background:var(--turq);color:#04161A}
main{display:block;outline:none}
.w{display:inline-block;vertical-align:top}
.w>span{display:inline-block}

/* surtitre : filet lumineux + capitales espacées */
.surtitre,.numero{max-width:none!important;display:inline-flex;align-items:center;gap:.7rem;font-family:var(--texte);font-weight:700;font-size:.8rem;letter-spacing:clamp(.1em,1vw,.18em);text-transform:uppercase;color:var(--gris-1);margin:0 0 1.3rem}
.surtitre::before,.numero::before{content:"";width:30px;height:2px;border-radius:2px;background:var(--lum);flex:none}
.sec{position:relative;padding:clamp(4.5rem,10vw,8.5rem) 0}
.sec--serre{padding:clamp(3.5rem,8vw,6rem) 0}
.sec__tete{max-width:64rem;margin-bottom:clamp(2.4rem,5vw,4.2rem)}
.sec__aide{font-size:clamp(1.05rem,1.4vw,1.2rem);color:var(--gris-2)}
.chapo{font-size:clamp(1.12rem,1.6vw,1.35rem);line-height:1.5;color:var(--gris-1);max-width:36rem}
.note{font-size:.9rem;color:var(--gris-2);margin-top:1.1rem}

/* ------------------------------------------------------------------ 3. en-tête */
header.site{position:fixed;inset:0 0 auto 0;z-index:200;transition:background-color .35s,border-color .35s,backdrop-filter .35s;border-bottom:1px solid transparent}
header.site.defile-on,html:not(.js) header.site{background:rgba(3,17,20,.82);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);border-bottom-color:var(--ligne)}
.entete{display:flex;align-items:center;gap:1rem;height:var(--entete)}
.marque{flex:none;display:block;border-radius:8px}
.marque img{width:148px;height:auto}
.nav{margin-left:auto}
.nav__liste{list-style:none;display:flex;align-items:center;gap:.1rem}
.nav__liste>li>a,.nav__bouton{position:relative;white-space:nowrap;display:inline-flex;align-items:center;gap:.35rem;min-height:44px;padding:.4rem .8rem;border-radius:999px;border:0;background:none;cursor:pointer;text-decoration:none;font-family:var(--titre);font-weight:600;font-size:.92rem;letter-spacing:-.01em;color:var(--gris-1)}
.nav__liste>li>a:hover,.nav__bouton:hover{color:var(--blanc);background:rgba(255,255,255,.06)}
.nav__liste>li>a[aria-current="page"],.nav__bouton[data-actif]{color:var(--blanc)}
.nav__liste>li>a[aria-current="page"]::after,.nav__bouton[data-actif]::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:5px;height:2px;border-radius:2px;background:var(--lum)}
.nav__bouton svg{width:16px;height:16px;transition:transform .3s}
.nav__bouton[aria-expanded="true"] svg{transform:rotate(180deg)}
.nav__deroulant{position:relative}
.sousmenu{list-style:none;position:absolute;left:-.5rem;top:calc(100% + .6rem);width:min(380px,90vw);padding:.6rem;border-radius:18px;background:rgba(8,31,36,.97);border:1px solid var(--ligne-2);box-shadow:0 30px 80px -20px rgba(0,0,0,.7),0 0 0 1px rgba(29,185,195,.06) inset;display:none;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.sousmenu.ouvert{display:grid;gap:.15rem}
.sousmenu a{display:flex;flex-direction:column;gap:.1rem;padding:.7rem .9rem;border-radius:12px;text-decoration:none;color:var(--gris-1)}
.sousmenu a b{font-family:var(--titre);font-weight:700;font-size:.95rem;color:var(--blanc);letter-spacing:-.01em}
.sousmenu a span{font-size:.82rem;color:var(--gris-2)}
.sousmenu a:hover,.sousmenu a:focus-visible{background:rgba(29,185,195,.1)}
.sousmenu li:first-child a{border-bottom:1px solid var(--ligne);border-radius:12px 12px 4px 4px;margin-bottom:.2rem}
.nav__contact{display:none}
.nav__mobile-outils{display:none}
.outils{display:flex;align-items:center;gap:.45rem;flex:none}
.outil,.mode-btn,.menu-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;border-radius:999px;border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.04);color:var(--blanc);cursor:pointer;font-family:var(--titre);font-weight:600;font-size:.86rem}
.outil{width:44px;padding:0}
.outil svg,.mode-btn svg,.menu-btn svg{width:20px;height:20px;flex:none}
.mode-btn{padding:0 .95rem 0 .75rem}
.outil:hover,.mode-btn:hover,.menu-btn:hover{border-color:var(--turq);background:rgba(29,185,195,.12)}
.outil[aria-pressed="true"],.mode-btn[aria-pressed="true"]{background:var(--jaune);border-color:var(--jaune);color:#04161A}
.menu-btn{display:none;padding:0 .95rem}
.progression{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--lum);transform-origin:0 50%;transform:scaleX(var(--p,0));pointer-events:none}
html:not(.anim) .progression{display:none}
@media (max-width:1240px){.outils .entete__cta{display:none}}
@media (max-width:1060px){
  .menu-btn{display:inline-flex}
  .nav{position:fixed;left:0;right:0;top:var(--entete);bottom:0;background:#020E11;padding:1.2rem var(--gout) 7rem;display:none;overflow-y:auto}
  .nav.ouvert{display:block}
  .nav__liste{flex-direction:column;align-items:stretch;gap:0}
  .nav__liste>li{border-bottom:1px solid var(--ligne)}
  .nav__liste>li>a,.nav__bouton{width:100%;min-height:68px;padding:0;border-radius:0;font-weight:800;font-size:clamp(1.7rem,7vw,2.4rem);letter-spacing:-.035em;color:var(--blanc);justify-content:space-between}
  .nav__liste>li>a[aria-current="page"]::after,.nav__bouton[data-actif]::after{left:0;right:auto;width:2.6rem;bottom:12px}
  .nav__bouton svg{width:26px;height:26px}
  .sousmenu{position:static;width:auto;background:none;border:0;box-shadow:none;padding:0 0 1rem;-webkit-backdrop-filter:none;backdrop-filter:none}
  .sousmenu li:first-child a{border-bottom:0}
  .nav__contact{display:block}
  .nav__mobile-outils{display:grid;gap:.6rem;margin-top:1.6rem}
  .nav__coord{color:var(--gris-2);font-size:.95rem;margin-top:1rem}
  body.menu-ouvert{overflow:hidden}
  header.site.menu-actif{background:rgba(2,14,17,.98)}
}
@media (max-width:620px){
  :root{--entete:66px}
  .entete{gap:.5rem}
  .marque img{width:116px}
  .outils{gap:.35rem;margin-left:auto}
  .mode-btn{padding:0 .7rem;font-size:.8rem}
  .mode-btn svg{display:none}
  .mode-btn__long{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .mode-btn__lib{text-transform:capitalize}
  .menu-btn{width:44px;padding:0}
  .menu-btn__lib{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
}
@media (max-width:370px){.outil{display:none}}
.outil-large{display:flex;align-items:center;gap:.7rem;min-height:52px;padding:.6rem 1rem;border-radius:14px;border:1.5px solid var(--ligne-2);background:var(--surf);color:var(--blanc);cursor:pointer;font-family:var(--titre);font-weight:650;font-size:1rem;text-align:left}
.outil-large svg{width:22px;height:22px;color:var(--turq-txt)}
.outil-large[aria-pressed="true"]{border-color:var(--jaune)}

/* ------------------------------------------------------------------ 4. boutons et liens */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:56px;padding:.9rem 1.6rem;border-radius:999px;border:1.5px solid transparent;font-family:var(--titre);font-weight:700;font-size:1.02rem;letter-spacing:-.01em;line-height:1.15;text-decoration:none;cursor:pointer;text-align:center;isolation:isolate}
.btn svg{width:20px;height:20px;flex:none}
.btn--lum,.btn-jaune,.btn-primaire{background:var(--jaune);color:#04161A;box-shadow:0 0 0 1px rgba(255,255,255,.12) inset,0 18px 50px -18px rgba(240,187,59,.75)}
.btn--lum::before,.btn-jaune::before,.btn-primaire::before{content:"";position:absolute;inset:-3px;border-radius:inherit;background:radial-gradient(closest-side,rgba(240,187,59,.9),rgba(29,185,195,.5) 70%,transparent);z-index:-1;filter:blur(14px);opacity:0;transition:opacity .35s}
.btn--lum:hover,.btn-jaune:hover,.btn-primaire:hover{color:#04161A;background:#F6CB62}
.btn--lum:hover::before,.btn--lum:focus-visible::before,.btn-jaune:hover::before,.btn-primaire:hover::before{opacity:.75}
.btn--verre,.btn-contour{background:rgba(255,255,255,.05);color:var(--blanc);border-color:rgba(255,255,255,.35);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.btn--verre:hover,.btn-contour:hover{background:var(--blanc);color:#04161A;border-color:var(--blanc)}
.btn--petit{min-height:46px;padding:.55rem 1.1rem;font-size:.92rem}
.btn--rond{width:clamp(170px,17vw,210px);height:clamp(170px,17vw,210px);border-radius:50%;flex-direction:column;padding:1.2rem;font-size:1.08rem;gap:.5rem;line-height:1.2}
.btn .fleche{display:inline-block}
.lien,.lien-fleche{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;color:var(--blanc);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--turq);text-underline-offset:.3em}
.lien:hover,.lien-fleche:hover{text-decoration-color:var(--jaune);color:var(--blanc)}
.lien::after{content:"→";text-decoration:none;display:inline-block;color:var(--jaune);transition:transform .3s var(--ease-out)}
.lien:hover::after{transform:translateX(4px)}
.lien-bouton{background:none;border:0;padding:0;color:var(--gris-1);cursor:pointer;text-decoration:underline;text-underline-offset:.22em;font:inherit}
.lien-bouton:hover{color:var(--blanc)}
.rond-btn{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);background:rgba(255,255,255,.04);color:var(--blanc);cursor:pointer;transition:background .3s,border-color .3s,color .3s}
.rond-btn svg{width:22px;height:22px}
.rond-btn[data-avis="-1"] svg{transform:scaleX(-1)}
.rond-btn:hover{background:var(--blanc);color:#04161A;border-color:var(--blanc)}

/* carte à halo : bord lumineux sous le pointeur (--mx/--my posées par site.js) */
.spot{--mx:50%;--my:50%;position:relative;border-radius:var(--r);background:var(--surf);border:1px solid var(--ligne);isolation:isolate}
.spot::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(240,187,59,.95),rgba(29,185,195,.75) 32%,rgba(29,185,195,.2) 58%,transparent 76%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:0;transition:opacity .35s;pointer-events:none;z-index:3}
.spot::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(600px circle at var(--mx) var(--my),rgba(29,185,195,.12),transparent 45%);opacity:0;transition:opacity .35s;pointer-events:none;z-index:1}
.spot:hover::before,.spot:hover::after,.spot:focus-visible::before,.spot:focus-visible::after,.spot:focus-within::before{opacity:1}

/* ------------------------------------------------------------------ 5. accueil */
/* rail de progression (repère de « niveau ») */
.rail{position:fixed;right:clamp(.8rem,1.6vw,1.6rem);top:50%;z-index:120;transform:translateY(-50%);display:none}
.rail ol{list-style:none;display:grid;gap:.25rem}
.rail a{position:relative;display:flex;align-items:center;justify-content:flex-end;min-height:30px;padding:.15rem .3rem;text-decoration:none;color:var(--gris-2);font-family:var(--titre);font-weight:700;font-size:.72rem;letter-spacing:.08em}
.rail__lib{position:absolute;right:calc(100% + .2rem);top:50%;margin-top:-.6em;padding:.15rem .5rem;border-radius:6px;background:rgba(2,14,17,.9);opacity:0;transform:translateX(6px);transition:opacity .3s,transform .3s;white-space:nowrap;text-transform:uppercase;font-size:.68rem;color:var(--gris-1)}
.rail__n{display:grid;place-items:center;width:30px;height:22px;border-radius:999px;border:1px solid var(--ligne-2);background:rgba(4,22,26,.6)}
.rail a:hover .rail__lib,.rail a:focus-visible .rail__lib{opacity:1;transform:none}
.rail a[aria-current="true"] .rail__n{background:var(--jaune);border-color:var(--jaune);color:#04161A;box-shadow:0 0 18px rgba(240,187,59,.6)}
@media (min-width:1280px){.rail{display:block}}

/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--entete) + 2rem) 0 clamp(2.2rem,5vh,3.6rem);overflow:hidden;isolation:isolate;background:radial-gradient(90% 70% at 72% 38%,rgba(13,122,130,.42),transparent 62%),radial-gradient(50% 40% at 80% 30%,rgba(240,187,59,.10),transparent 70%),var(--fond-0)}
.hero__fond{position:absolute;inset:0;z-index:-1;pointer-events:none}
.helice{position:absolute;inset:0;width:100%;height:100%}
.hero__voile{position:absolute;inset:auto 0 0 0;height:42%;background:linear-gradient(180deg,rgba(4,22,26,0),var(--fond))}
.hero__in{position:relative;width:100%}
.hero h1{max-width:13ch;margin-bottom:.4em}
.hero__surtitre{margin-bottom:1.6rem}
.hero__promesse{font-family:var(--titre);font-weight:600;font-size:clamp(1.15rem,1.7vw,1.5rem);letter-spacing:-.015em;line-height:1.35;color:var(--gris-1);max-width:34rem;margin-bottom:2rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:clamp(2.4rem,7vh,4rem)}
.pastilles{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,auto));justify-content:start;gap:0;border-top:1px solid var(--ligne)}
.pastilles li{padding:1.1rem 2.4rem 0 0;margin-right:2.4rem;border-right:1px solid var(--ligne);min-width:0}
.pastilles li:last-child{border-right:0;margin-right:0}
.pastilles b{display:block;font-family:var(--titre);font-weight:800;font-size:clamp(1.6rem,2.6vw,2.3rem);letter-spacing:-.04em;line-height:1;color:var(--blanc);margin-bottom:.35rem}
.pastilles li:nth-child(2) b{color:var(--jaune)}
.pastilles li:nth-child(3) b{color:var(--turq-txt)}
.pastilles li>span{font-size:.88rem;color:var(--gris-2);display:block;max-width:14rem}
.hero__suite{position:absolute;right:var(--gout);bottom:clamp(8rem,18vh,11rem);display:flex;flex-direction:column;align-items:center;gap:.7rem;color:var(--gris-1);text-decoration:none;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;writing-mode:vertical-rl;padding:.4rem}
.hero__suite::after{content:"";width:1.5px;height:64px;background:linear-gradient(180deg,var(--jaune),rgba(240,187,59,0))}
@media (max-width:860px){
  .hero{justify-content:flex-end;padding-top:calc(var(--entete) + 34vh)}
  .hero h1{font-size:clamp(2.55rem,11.6vw,4.6rem)}
  .hero__suite{display:none}
  .pastilles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pastilles li{padding-right:.8rem;margin-right:.8rem}
  .pastilles li>span{font-size:.78rem}
}
@media (max-width:560px){.hero__actions .btn{width:100%}.pastilles b{font-size:1.45rem}}

/* bandeau de mots géants */
.defile{position:relative;padding:clamp(2rem,5vw,3.6rem) 0;overflow:hidden;border-block:1px solid var(--ligne);background:var(--fond)}
.defile__ligne{display:flex;width:max-content;gap:clamp(1.3rem,3vw,2.6rem);align-items:center;white-space:nowrap;font-family:var(--titre);font-weight:850;font-size:clamp(2.4rem,6.6vw,6.2rem);letter-spacing:-.045em;line-height:1.08;color:var(--blanc);will-change:transform}
.defile__ligne+.defile__ligne{margin-top:.15em}
.defile__ligne--contour{color:transparent;-webkit-text-stroke:1.5px #6E9196}
.defile__ligne .j{color:var(--jaune);-webkit-text-stroke:0}
.defile__ligne .t{color:var(--turq);-webkit-text-stroke:0}
.defile__ligne i{flex:none;width:.26em;height:.26em;border-radius:50%;background:var(--turq);box-shadow:0 0 22px rgba(29,185,195,.9)}
.defile__ligne--contour i{background:var(--jaune);box-shadow:0 0 22px rgba(240,187,59,.9)}
html:not(.anim) .defile__ligne{flex-wrap:wrap;width:auto;white-space:normal;padding:0 var(--gout);font-size:clamp(1.8rem,4.6vw,3.6rem)}
html:not(.anim) .defile__ligne .dup{display:none}

/* situations : menu de choix */
.choix{list-style:none;border-top:1px solid var(--ligne)}
.choix__item{border-bottom:1px solid var(--ligne)}
.choix__btn{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(1rem,3vw,2.6rem);width:100%;padding:clamp(1.4rem,3vw,2.3rem) 0;background:none;border:0;cursor:pointer;text-align:left;color:var(--gris-2)}
.choix__n{font-family:var(--titre);font-weight:800;font-size:.9rem;letter-spacing:.08em;color:var(--gris-2);width:3.2rem;transition:color .3s}
.choix__phrase{font-family:var(--titre);font-weight:750;font-size:clamp(1.35rem,3vw,2.65rem);line-height:1.15;letter-spacing:-.03em;color:var(--gris-1);transition:color .35s,transform .45s var(--ease-out)}
.choix__plus{position:relative;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ligne-2);transition:background .3s,border-color .3s,transform .4s var(--ease-out)}
.choix__plus::before,.choix__plus::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:2px;margin:-1px 0 0 -8px;background:var(--blanc);border-radius:2px;transition:transform .35s var(--ease-out)}
.choix__plus::after{transform:rotate(90deg)}
.choix__btn:hover .choix__phrase,.choix__btn:focus-visible .choix__phrase,.choix__btn[aria-expanded="true"] .choix__phrase{color:var(--blanc)}
.choix__btn:hover .choix__n,.choix__btn[aria-expanded="true"] .choix__n{color:var(--jaune)}
.choix__btn:hover .choix__plus{border-color:var(--turq)}
.choix__btn[aria-expanded="true"] .choix__plus{background:var(--jaune);border-color:var(--jaune);transform:rotate(45deg)}
.choix__btn[aria-expanded="true"] .choix__plus::before,.choix__btn[aria-expanded="true"] .choix__plus::after{background:#04161A}
.choix__rep{padding:0 0 clamp(1.6rem,3vw,2.4rem) calc(3.2rem + clamp(1rem,3vw,2.6rem));max-width:52rem}
.choix__rep p{font-size:clamp(1.05rem,1.4vw,1.22rem);color:var(--gris-1)}
.choix__rep[hidden]{display:none}
.chute{margin-top:clamp(2.4rem,5vw,3.6rem);font-family:var(--titre);font-weight:700;font-size:clamp(1.25rem,2.2vw,1.9rem);letter-spacing:-.025em;line-height:1.25;color:var(--blanc);max-width:36ch}
@media (max-width:620px){.choix__n{display:none}.choix__btn{grid-template-columns:minmax(0,1fr) auto}.choix__rep{padding-left:0}}

/* portes d'entrée */
.portes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem)}
.portes>*{min-width:0}
.porte{display:flex;flex-direction:column;justify-content:flex-end;gap:.55rem;min-height:clamp(28rem,40vw,35rem);padding:clamp(1.5rem,2.6vw,2.3rem);text-decoration:none;color:var(--gris-1);overflow:hidden;transform-style:preserve-3d}
.porte__photo{position:absolute;inset:0;z-index:-1;border-radius:inherit;overflow:hidden}
.porte__photo img{width:100%;height:62%;object-fit:cover;filter:grayscale(.85) contrast(1.08) brightness(.9);opacity:.55;transition:opacity .6s,transform 1.2s var(--ease-out)}
.porte__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,38,44,.1) 0%,rgba(10,38,44,.55) 30%,#0A262C 60%,#0A262C 100%),linear-gradient(90deg,rgba(13,122,130,.35),transparent 60%);mix-blend-mode:normal}
.porte:hover .porte__photo img,.porte:focus-visible .porte__photo img{opacity:.8;transform:scale(1.06)}
.porte__lum{position:absolute;inset:0;z-index:0;border-radius:inherit;overflow:hidden;pointer-events:none}
.porte__lum::before{content:"";position:absolute;right:-30%;top:-40%;width:110%;height:150%;background:conic-gradient(from 205deg at 100% 0%,transparent 0deg,rgba(29,185,195,.38) 16deg,transparent 30deg,rgba(240,187,59,.30) 44deg,transparent 58deg,rgba(29,185,195,.24) 72deg,transparent 86deg);filter:blur(8px);opacity:.55;transition:opacity .5s}
.porte--j .porte__lum::before{background:conic-gradient(from 205deg at 100% 0%,transparent 0deg,rgba(240,187,59,.38) 16deg,transparent 30deg,rgba(29,185,195,.30) 44deg,transparent 58deg,rgba(240,187,59,.22) 72deg,transparent 86deg)}
.porte:hover .porte__lum::before{opacity:1}
.porte>span:not(.porte__photo):not(.porte__lum){position:relative;z-index:2}
.porte__qui{font-weight:700;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--turq-txt)}
.porte--j .porte__qui{color:var(--jaune)}
.porte__titre{display:block;font-family:var(--titre);font-weight:800;font-size:clamp(1.6rem,2.3vw,2.25rem);line-height:1.02;letter-spacing:-.04em;color:var(--blanc);margin:.2rem 0 .4rem}
.porte__txt{display:block;font-size:1.02rem;max-width:24rem}
.porte__note{display:block;font-size:.85rem;color:var(--gris-2)}
.porte__go{margin-top:.4rem;display:inline-flex;align-items:center;gap:.75rem;font-family:var(--titre);font-weight:700;color:var(--blanc);padding-top:1.4rem}
.porte__rond{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;border:1.5px solid rgba(255,255,255,.4);transition:background .3s,border-color .3s,color .3s}
.porte__rond svg{width:22px;height:22px}
.porte:hover .porte__rond,.porte:focus-visible .porte__rond{background:var(--jaune);color:#04161A;border-color:var(--jaune)}
.portes__plus{display:flex;flex-wrap:wrap;gap:1rem 2.4rem;margin-top:clamp(1.8rem,4vw,2.8rem)}
@media (max-width:960px){.portes{grid-template-columns:1fr}.porte{min-height:20rem}}

/* Radiographie 360° */
.radio{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.radio-sec{overflow-x:clip}
.radio>*{min-width:0}
.livrables{list-style:none;display:grid;gap:0;margin:1.8rem 0 2.2rem;border-top:1px solid var(--ligne)}
.livrables li{position:relative;padding:.95rem 0 .95rem 2.6rem;border-bottom:1px solid var(--ligne);color:var(--gris-1);transition:color .4s}
.livrables li::before{content:"";position:absolute;left:0;top:1.05rem;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--turq);transition:background .4s,box-shadow .4s,border-color .4s}
.livrables li::after{content:"";position:absolute;left:7px;top:1.33rem;width:8px;height:4px;border-left:2px solid #04161A;border-bottom:2px solid #04161A;transform:rotate(-45deg);opacity:0;transition:opacity .3s}
.livrables li.lu,html:not(.anim) .livrables li{color:var(--blanc)}
.livrables li.lu::before,html:not(.anim) .livrables li::before{background:var(--jaune);border-color:var(--jaune);box-shadow:0 0 18px rgba(240,187,59,.6)}
.livrables li.lu::after,html:not(.anim) .livrables li::after{opacity:1}
.radar{position:relative;aspect-ratio:1;width:100%;max-width:520px;margin-left:auto;border-radius:50%;background:radial-gradient(circle,rgba(13,122,130,.35) 0%,rgba(4,22,26,0) 70%);font-family:var(--titre)}
.radar__anneau{position:absolute;border-radius:50%;border:1px solid rgba(29,185,195,.32)}
.r1{inset:0}.r2{inset:17%}.r3{inset:34%}
.radar__axe{position:absolute;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(29,185,195,.4),transparent)}
.radar__axe--v{left:50%;right:auto;top:0;bottom:0;width:1px;height:auto;background:linear-gradient(180deg,transparent,rgba(29,185,195,.4),transparent)}
.radar__balai{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(29,185,195,0) 0deg,rgba(29,185,195,0) 290deg,rgba(29,185,195,.45) 350deg,rgba(240,187,59,.7) 360deg);-webkit-mask:radial-gradient(circle,#000 69%,transparent 70.5%);mask:radial-gradient(circle,#000 69%,transparent 70.5%);opacity:.85}
.radar__pt{position:absolute;left:var(--x);top:var(--y);display:flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gris-1);transform:translate(-8px,-50%)}
.radar__pt i{width:12px;height:12px;border-radius:50%;background:var(--jaune);box-shadow:0 0 0 5px rgba(240,187,59,.15),0 0 22px rgba(240,187,59,.9);flex:none}
.radar__centre{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:850;font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.05em;color:var(--blanc);text-shadow:0 0 30px rgba(29,185,195,.7)}
@media (max-width:900px){.radio{grid-template-columns:1fr}.radar{max-width:380px;margin:0 auto;order:-1}}

/* méthode D·N·A : récit collant */
.methode__grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.methode__grille>*{min-width:0}
.methode__visuel{position:sticky;top:calc(var(--entete) + 8vh);height:min(66vh,540px);border-radius:var(--r);background:radial-gradient(120% 90% at 50% 0%,#0E3A41 0%,#0A2A30 45%,#061B1F 100%);border:1px solid var(--ligne);overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:clamp(1.4rem,3vw,2.4rem)}
.methode__visuel::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(29,185,195,.06) 0 1px,transparent 1px 64px),repeating-linear-gradient(0deg,rgba(29,185,195,.06) 0 1px,transparent 1px 64px);-webkit-mask:radial-gradient(80% 70% at 50% 50%,#000,transparent);mask:radial-gradient(80% 70% at 50% 50%,#000,transparent)}
.methode__compteur{position:absolute;right:clamp(1.2rem,3vw,2.2rem);top:clamp(1rem,2.4vw,1.8rem);font-family:var(--titre);font-weight:700;font-size:.95rem;color:var(--gris-2);margin:0}
.methode__compteur b{color:var(--blanc);font-size:1.6rem;margin-right:.1rem}
.methode__lettres{position:relative;display:flex;justify-content:space-between;font-family:var(--titre);font-weight:900;font-size:clamp(5rem,12vw,11rem);letter-spacing:-.06em;line-height:.9}
.methode__lettres span{color:transparent;-webkit-text-stroke:1.5px var(--ligne-2);transition:color .6s,-webkit-text-stroke-color .6s,text-shadow .6s}
.methode__lettres span.on{color:var(--turq);-webkit-text-stroke-color:var(--turq);text-shadow:0 0 50px rgba(29,185,195,.55)}
.methode__lettres span[data-l="2"].on{color:var(--jaune);-webkit-text-stroke-color:var(--jaune);text-shadow:0 0 50px rgba(240,187,59,.55)}
.methode__fil{position:relative;height:6px;border-radius:6px;background:rgba(255,255,255,.08);margin-top:clamp(1.4rem,3vh,2.2rem)}
.methode__fil i{position:absolute;inset:0;border-radius:inherit;background:var(--lum);transform-origin:0 50%;transform:scaleX(var(--prog,1));box-shadow:0 0 18px rgba(29,185,195,.8),0 0 40px rgba(240,187,59,.35)}
.methode__jalons{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1.2rem}
.methode__jalons li{font-family:var(--titre);font-size:.85rem;font-weight:700;color:var(--gris-2);padding-top:.7rem;border-top:2px solid rgba(255,255,255,.1);transition:color .4s,border-color .4s}
.methode__jalons li.on{color:var(--blanc);border-top-color:var(--jaune)}
html:not(.anim) .methode__lettres span{color:var(--turq);-webkit-text-stroke-color:var(--turq)}
html:not(.anim) .methode__lettres span[data-l="2"]{color:var(--jaune);-webkit-text-stroke-color:var(--jaune)}
html:not(.anim) .methode__jalons li{color:var(--gris-1);border-top-color:var(--jaune)}
.methode__etapes{list-style:none}
.met-etape{min-height:min(66vh,540px);display:flex;flex-direction:column;justify-content:center;padding:2rem 0;border-top:1px solid var(--ligne)}
.met-etape:first-child{border-top:0}
.met-etape__l{font-family:var(--titre);font-weight:900;font-size:clamp(3rem,6vw,5rem);line-height:1;letter-spacing:-.05em;color:var(--turq);margin-bottom:.5rem}
.met-etape:last-child .met-etape__l{color:var(--jaune)}
.met-etape h3{font-size:clamp(2.1rem,4.2vw,3.6rem);letter-spacing:-.045em;margin-bottom:.6rem}
.met-etape p{font-size:clamp(1.05rem,1.4vw,1.22rem);max-width:30rem}
.methode__lien{margin-top:clamp(1.6rem,4vw,3rem)}
@media (max-width:860px){
  .methode__grille{grid-template-columns:1fr;gap:1rem}
  .methode__visuel{top:calc(var(--entete) + .5rem);height:auto;padding:1rem 1.2rem;z-index:2;background:rgba(10,38,44,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .methode__lettres{font-size:3.4rem}
  .methode__compteur{display:none}
  .methode__jalons{margin-top:.8rem}
  .methode__jalons li{font-size:.74rem;padding-top:.45rem}
  .met-etape{min-height:auto;padding:3rem 0}
  .met-etape__l{display:none}
}

/* avis Google */
.avis__tete{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:clamp(2rem,4vw,3rem)}
.avis__tete h2 em{font-size:1.25em}
.avis__intro{max-width:38rem;color:var(--gris-1)}
.avis__nav{display:flex;gap:.6rem;flex:none}
.avis__piste{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.5rem 0 1.5rem;outline-offset:-3px}
.avis__piste::-webkit-scrollbar{display:none}
.avis__liste{list-style:none;display:flex;gap:clamp(1rem,2vw,1.5rem);padding:0 max(var(--gout),calc((100vw - var(--wrap))/2 + var(--gout)))}
.avis-carte{flex:none;width:min(420px,82vw);scroll-snap-align:start;display:flex;flex-direction:column;gap:1rem;padding:clamp(1.5rem,2.6vw,2.2rem)}
.avis-carte>*{position:relative;z-index:2}
.avis-carte__etoiles{color:var(--jaune);letter-spacing:.2em;font-size:1.05rem}
.avis-carte p{font-family:var(--titre);font-weight:600;font-size:clamp(1.08rem,1.4vw,1.25rem);line-height:1.4;letter-spacing:-.015em;color:var(--blanc);margin:0}
.avis-carte__qui{margin-top:auto;font-size:.88rem;color:var(--gris-2)}
.avis-carte__qui b{display:block;font-size:1rem;color:var(--blanc)}
.avis__lien{margin-top:.6rem}
@media (max-width:700px){.avis__tete{flex-direction:column;align-items:flex-start}}

/* logos */
.logos-sec{padding:clamp(3rem,7vw,5rem) 0;border-block:1px solid var(--ligne)}
.logos-sec .surtitre{font-size:.78rem}
.logos{overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.logos__piste{display:flex;gap:1rem;width:max-content;padding:.4rem 0}
.logo-item{flex:none;display:grid;place-items:center;width:180px;height:96px;padding:.9rem 1.2rem;border-radius:16px;background:#fff;transition:transform .4s var(--ease-out),box-shadow .4s}
.logo-item img{max-height:62px;width:auto;max-width:100%;object-fit:contain}
.logo-item:hover,.logo-item:focus-visible{transform:translateY(-4px);box-shadow:0 0 0 2px var(--turq),0 16px 40px -14px rgba(29,185,195,.7)}
html:not(.anim) .logos{-webkit-mask:none;mask:none}
html:not(.anim) .logos__piste{flex-wrap:wrap;width:auto;justify-content:center;padding:0 var(--gout)}
html:not(.anim) .logo-item--dup{display:none}

/* fondateur */
.fondateur__grille{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.fondateur__grille>*{min-width:0}
.fondateur__photo{position:relative;border-radius:var(--r);overflow:hidden;max-width:440px;box-shadow:0 40px 120px -40px rgba(29,185,195,.55)}
.fondateur__photo::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);background:linear-gradient(180deg,transparent 55%,rgba(4,22,26,.55))}
.fondateur__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%}
.citation{margin:0 0 1.6rem;padding:0}
.citation p{font-family:var(--titre);font-weight:700;font-size:clamp(1.45rem,2.6vw,2.3rem);line-height:1.22;letter-spacing:-.03em;color:var(--blanc);margin-bottom:.8rem}
.citation footer{font-size:.92rem;color:var(--gris-2)}
.citation .mot{transition:color .4s}
@media (max-width:860px){.fondateur__grille{grid-template-columns:1fr}.fondateur__photo{max-width:340px}}

/* bibliothèque */
.biblio{list-style:none;border-top:1px solid var(--ligne)}
.biblio li{border-bottom:1px solid var(--ligne)}
.biblio__lien{display:grid;grid-template-columns:9rem minmax(0,1fr) auto;align-items:center;gap:1.5rem;padding:clamp(1.2rem,2.4vw,1.8rem) 0;text-decoration:none;color:var(--gris-1)}
.biblio__type{font-weight:700;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--turq-txt)}
.biblio__titre{font-family:var(--titre);font-weight:750;font-size:clamp(1.2rem,2.2vw,1.9rem);line-height:1.15;letter-spacing:-.03em;color:var(--blanc);transition:transform .45s var(--ease-out)}
.biblio__fleche{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ligne-2);transition:background .3s,color .3s,border-color .3s}
.biblio__fleche svg{width:20px;height:20px}
.biblio__lien:hover .biblio__fleche,.biblio__lien:focus-visible .biblio__fleche{background:var(--jaune);border-color:var(--jaune);color:#04161A}
.biblio__tout{margin-top:1.8rem}
@media (max-width:700px){.biblio__lien{grid-template-columns:minmax(0,1fr) auto;gap:.4rem 1rem}.biblio__type{grid-column:1/-1}}

/* appel final */
.appel,.cta-final{position:relative;padding:clamp(6rem,14vw,11rem) 0;overflow:hidden;text-align:center;isolation:isolate}
.appel::before,.cta-final::before{content:"";position:absolute;left:50%;top:62%;width:min(1200px,150vw);aspect-ratio:2/1;translate:-50% -50%;z-index:-1;background:conic-gradient(from 180deg at 50% 100%,transparent 62deg,rgba(29,185,195,.5) 80deg,transparent 95deg,rgba(240,187,59,.45) 116deg,transparent 132deg,rgba(29,185,195,.45) 152deg,transparent 168deg,rgba(240,187,59,.35) 200deg,transparent 218deg,rgba(29,185,195,.35) 250deg,transparent 268deg);filter:blur(30px);opacity:.6;-webkit-mask:radial-gradient(60% 80% at 50% 100%,#000 20%,transparent 75%);mask:radial-gradient(60% 80% at 50% 100%,#000 20%,transparent 75%)}
.helice--appel{opacity:.55}
.appel h2,.cta-final h2{font-size:clamp(2.6rem,7.4vw,6.8rem);max-width:14ch;margin:0 auto .35em}
.cta-final h2 em{font-style:normal;color:var(--jaune)}
.appel p,.cta-final p{font-size:clamp(1.1rem,1.6vw,1.3rem);margin:0 auto 2.2rem;max-width:34rem}
.appel__tel{margin-top:2rem!important}
.appel__tel a,.cta-final .tel{color:var(--blanc);font-weight:700;text-decoration:underline;text-decoration-color:var(--turq);text-underline-offset:.3em}
.cta-final .tel{display:inline-block;margin-top:1.4rem;margin-left:1rem}
.reassurance{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.8rem;margin-top:1.6rem;font-size:.92rem;color:var(--gris-2)}
.reassurance li,.reassurance span{display:inline-flex;align-items:center;gap:.5rem}
.reassurance li::before,.reassurance span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--turq);box-shadow:0 0 10px var(--turq)}

/* ------------------------------------------------------------------ 6. pages intérieures (balisage existant conservé) */
main>section:not(.falc-main):not(.sec):not(.appel):not(.cta-final):not(.hero):not(.logos-sec):not(.hero-page){padding:clamp(3.5rem,8vw,6.5rem) 0}
main section h2{margin-bottom:.55em}
main section h2:not([style]){font-size:clamp(2rem,4.4vw,3.7rem)}
main p,main li{max-width:72ch}
main :is(.choix,.biblio,.livrables,.pastilles,.avis__liste,.methode__etapes,.methode__jalons,.reassurance,.rail ol)>li,main .hero p,main .appel p,main .chute{max-width:none}
main .appel p,main .hero__promesse{max-width:34rem}
.hero-page{position:relative;min-height:min(78vh,760px);display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--entete) + clamp(4rem,10vw,8rem)) 0 clamp(3rem,6vw,5rem);overflow:hidden;isolation:isolate;background:radial-gradient(70% 80% at 85% 25%,rgba(13,122,130,.4),transparent 62%),radial-gradient(40% 40% at 92% 18%,rgba(240,187,59,.10),transparent 70%),var(--fond-0);border-bottom:1px solid var(--ligne)}
.hero-page::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;z-index:-1;background:linear-gradient(180deg,rgba(4,22,26,0),var(--fond));pointer-events:none}
.hero-page .helice{z-index:-1}
@media (max-width:700px){.hero-page .helice{opacity:.42}.hero .helice{opacity:.75}}
.hero-page .arc{display:none}
.hero-page .wrap{position:relative;width:100%}
.hero-page h1{font-size:clamp(2.5rem,6.2vw,6rem);max-width:16ch;margin-bottom:.4em}
.hero-page .lead{font-size:clamp(1.12rem,1.6vw,1.38rem);line-height:1.5;color:var(--gris-1);max-width:40rem}
.hero-page .actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;margin-top:2rem}
.hero-page p[style]{color:var(--gris-2)!important;margin-top:1.4rem!important}
.fil-ariane{font-size:.86rem;color:var(--gris-2);margin-bottom:1.8rem;display:flex;flex-wrap:wrap;gap:.35rem}
.fil-ariane a{color:var(--gris-1);text-decoration:none;border-bottom:1px solid var(--ligne-2)}
.fil-ariane a:hover{color:var(--blanc);border-color:var(--jaune)}
.fil-ariane [aria-current]{color:var(--blanc)}
.page-simple{text-align:center;align-items:center}
.page-simple h1{margin-left:auto;margin-right:auto}
.page-simple .lead{margin-left:auto;margin-right:auto}
.grand-nombre{font-family:var(--titre);font-weight:900;font-size:clamp(6rem,20vw,14rem);line-height:.85;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:2px var(--turq);margin-bottom:.2em}

/* cartes */
.cartes-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(1rem,2vw,1.5rem);margin-top:2rem}
.cartes-grille>*{min-width:0}
.carte{--mx:50%;--my:50%;position:relative;display:flex;flex-direction:column;gap:.6rem;padding:clamp(1.4rem,2.4vw,2rem);border-radius:var(--r);background:var(--surf);border:1px solid var(--ligne);isolation:isolate;transition:border-color .3s,transform .5s var(--ease-out)}
.carte::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:radial-gradient(380px circle at var(--mx) var(--my),rgba(240,187,59,.9),rgba(29,185,195,.7) 32%,transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:0;transition:opacity .35s;pointer-events:none}
.carte:hover::before,.carte:focus-within::before{opacity:1}
.carte h3{font-size:clamp(1.2rem,1.7vw,1.45rem);margin:0}
.carte h3 a{color:var(--blanc);text-decoration:none}
.carte h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.carte h3 a:hover{text-decoration:underline;text-decoration-color:var(--jaune)}
.carte p{color:var(--gris-1);margin:0}
.carte .lien-fleche{margin-top:auto;padding-top:.6rem;position:relative;z-index:1}
.type,.tag{display:inline-flex;align-self:flex-start;align-items:center;font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--turq-txt);background:rgba(29,185,195,.1);border:1px solid rgba(29,185,195,.28);border-radius:999px;padding:.3rem .7rem}
.tag{letter-spacing:.06em;text-transform:none;font-size:.78rem;color:var(--gris-1);background:rgba(255,255,255,.04);border-color:var(--ligne-2)}
.meta-ligne{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.2rem}
.filtres{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.6rem 0 1rem}
.filtre{min-height:44px;padding:.5rem 1.1rem;border-radius:999px;border:1.5px solid var(--ligne-2);background:rgba(255,255,255,.03);color:var(--gris-1);cursor:pointer;font-family:var(--titre);font-weight:650;font-size:.9rem}
.filtre:hover{border-color:var(--turq);color:var(--blanc)}
.filtre[aria-pressed="true"]{background:var(--jaune);border-color:var(--jaune);color:#04161A}

/* offres (conseil) : image + texte en alternance */
.offre{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center;padding:clamp(2.5rem,6vw,5rem) 0;border-top:1px solid var(--ligne)}
.offre>*{min-width:0}
.offre:nth-of-type(even) .offre-visuel{order:2}
.cadre{position:relative;border-radius:var(--r);overflow:hidden;background:var(--surf)}
.cadre::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);background:linear-gradient(180deg,transparent 60%,rgba(4,22,26,.5));pointer-events:none}
.cadre img{width:100%;aspect-ratio:4/3;object-fit:cover}
.offre-visuel .cadre img,.cas-visuel .cadre img{transition:transform 1.2s var(--ease-out)}
.offre:hover .offre-visuel .cadre img{transform:scale(1.04)}
.indice{display:block;font-family:var(--titre);font-weight:900;font-size:clamp(2.6rem,5vw,4.2rem);line-height:1;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px var(--turq);margin-bottom:.6rem}
.offre h3{font-size:clamp(1.7rem,3vw,2.6rem);letter-spacing:-.04em}
.desc{font-size:1.08rem;color:var(--gris-1)}
.meta{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0 1.4rem;max-width:none}
.meta span{font-size:.82rem;font-weight:700;color:var(--gris-1);padding:.35rem .75rem;border-radius:999px;border:1px solid var(--ligne-2);background:rgba(255,255,255,.03)}
@media (max-width:900px){.offre{grid-template-columns:1fr}.offre:nth-of-type(even) .offre-visuel{order:0}}

/* hiérarchie (niveaux 1-2-3) */
.hierarchie{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem);margin-top:2.2rem;counter-reset:n}
.niveau{position:relative;padding:clamp(1.4rem,2.6vw,2.2rem);border-radius:var(--r);background:var(--surf);border:1px solid var(--ligne)}
.niveau:first-child{border-color:rgba(240,187,59,.45);box-shadow:0 0 60px -30px rgba(240,187,59,.6)}
.rond-niveau{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:1.5px solid var(--turq);font-family:var(--titre);font-weight:800;font-size:1.3rem;color:var(--blanc);margin-bottom:1.1rem;box-shadow:0 0 24px -6px rgba(29,185,195,.8)}
.niveau:first-child .rond-niveau{background:var(--jaune);border-color:var(--jaune);color:#04161A}
.niveau h3{margin-bottom:.5rem}
.niveau .lien-fleche{display:inline-flex;margin-top:.6rem}
@media (max-width:900px){.hierarchie{grid-template-columns:1fr}}

/* FAQ */
.faq{display:grid;gap:.6rem;max-width:56rem}
.faq details{border-radius:16px;background:var(--surf);border:1px solid var(--ligne);transition:border-color .3s}
.faq details[open]{border-color:var(--ligne-2)}
.faq summary{position:relative;list-style:none;cursor:pointer;padding:1.15rem 3.6rem 1.15rem 1.3rem;font-family:var(--titre);font-weight:700;font-size:1.05rem;letter-spacing:-.01em;color:var(--blanc);border-radius:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:1rem;top:50%;width:32px;height:32px;margin-top:-16px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--ligne-2);font-size:1.2rem;line-height:1;color:var(--jaune);transition:transform .35s var(--ease-out),background .3s}
.faq details[open] summary::after{content:"−";background:rgba(240,187,59,.12)}
.faq summary:hover{background:rgba(29,185,195,.06)}
.faq details>p,.faq details>div,.faq details>ul{padding:0 1.3rem 1.2rem;color:var(--gris-1)}
.faq details ul{padding-left:2.6rem}

/* blocs éditoriaux */
.citation-fondateur{position:relative;margin:2.4rem 0;padding:1.6rem 0 1.6rem 1.8rem;font-family:var(--titre);font-weight:700;font-size:clamp(1.3rem,2.2vw,1.9rem);line-height:1.28;letter-spacing:-.025em;color:var(--blanc);border-left:3px solid transparent;border-image:linear-gradient(180deg,var(--turq),var(--jaune)) 1;max-width:44rem}
.citation-fondateur .attribution,.attribution{display:block;margin-top:.8rem;font-family:var(--texte);font-weight:400;font-size:.9rem;letter-spacing:0;color:var(--gris-2)}
.encadre-rdv{background:var(--surf)!important;border-color:var(--ligne-2)!important;border-left-color:var(--jaune)!important}
.encadre-rdv p[style*="abysse"]{color:var(--blanc)!important}
.reponse-directe{margin-top:2rem;padding:clamp(1.3rem,2.4vw,1.8rem);border-radius:var(--r);background:linear-gradient(180deg,rgba(29,185,195,.12),rgba(29,185,195,.04));border:1px solid rgba(29,185,195,.32);max-width:52rem}
.rd-question{font-family:var(--titre);font-weight:800;font-size:1.15rem;color:var(--blanc);margin-bottom:.5rem}
.rd-reponse{color:var(--gris-1)}
.pour-aller-plus-loin{padding-top:clamp(2rem,5vw,3.5rem)!important;border-top:1px solid var(--ligne)}
.experience{background:linear-gradient(180deg,rgba(10,38,44,.0),rgba(10,38,44,.6),rgba(10,38,44,0))}
.probleme{border-block:1px solid var(--ligne)}
.apropos-grid,.cas-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.apropos-grid>*,.cas-grid>*{min-width:0}
.portrait-cadre .cadre img{aspect-ratio:3/4;object-position:50% 20%}
.portrait-cadre{max-width:440px}
.cas-visuel .cadre img{aspect-ratio:3/4}
.cas-grid+.cas-grid{margin-top:clamp(3rem,7vw,5rem);padding-top:clamp(3rem,7vw,5rem);border-top:1px solid var(--ligne)}
.cas-etapes{list-style:none;display:grid;gap:0;border-top:1px solid var(--ligne)}
.cas-etapes li{padding:1rem 0;border-bottom:1px solid var(--ligne);color:var(--gris-1)}
.cas-etapes strong{color:var(--jaune);font-family:var(--titre)}
.etoiles{color:var(--jaune);letter-spacing:.15em}
@media (max-width:900px){.apropos-grid,.cas-grid{grid-template-columns:1fr}}
main section ul:not([class]),main section ol:not([class]){padding-left:1.3rem;display:grid;gap:.4rem;margin:0 0 1.2em}
main section ul:not([class]) li::marker{color:var(--turq)}
main table{width:100%;border-collapse:collapse;margin:1.4rem 0;font-size:.98rem}
main th,main td{text-align:left;padding:.8rem .9rem;border-bottom:1px solid var(--ligne);vertical-align:top}
main th{font-family:var(--titre);color:var(--blanc);background:var(--surf)}

/* formulaire de contact */
.form-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.form-grid>*{min-width:0}
#form-contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.2rem;padding:clamp(1.3rem,3vw,2.2rem);border-radius:var(--r);background:var(--surf);border:1px solid var(--ligne)}
#form-contact>*{min-width:0}
#form-contact>p,#form-contact>.consentement,#form-contact>button,#form-contact>.btn,#form-contact .champ:has(textarea){grid-column:1/-1}
.champ{display:flex;flex-direction:column;gap:.4rem}
.champ label,.champ legend{font-family:var(--titre);font-weight:700;font-size:.9rem;color:var(--blanc)}
.champ input,.champ select,.champ textarea{width:100%;min-height:52px;padding:.8rem 1rem;border-radius:12px;border:1.5px solid var(--ligne-2);background:#061E23;color:var(--blanc);font-size:1rem}
.champ textarea{min-height:150px;resize:vertical}
.champ input:focus,.champ select:focus,.champ textarea:focus{border-color:var(--turq);outline:3px solid rgba(29,185,195,.35);outline-offset:1px}
.opt,.aide{font-weight:400;font-size:.84rem;color:var(--gris-2)}
.consentement{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;color:var(--gris-1)}
.consentement input{width:22px;height:22px;margin-top:.15rem;accent-color:var(--jaune);flex:none}
.encart-contact{padding:clamp(1.3rem,3vw,2rem);border-radius:var(--r);background:linear-gradient(180deg,rgba(29,185,195,.12),rgba(10,38,44,.6));border:1px solid rgba(29,185,195,.3)}
.encart-contact h2,.encart-contact h3{font-size:1.4rem!important}
@media (max-width:900px){.form-grid{grid-template-columns:1fr}}
@media (max-width:620px){#form-contact{grid-template-columns:minmax(0,1fr)}}

/* simulateur : sa feuille propre est pensée pour un fond clair, on lui donne un plateau clair */
.simu-zone{color:var(--gris-1)}
.simu-carte{--gris-median:#5C6B6D;--bordure:#DCE5E6;color:#14262a}
.simu-carte a{color:#0D7A82}
.simu-carte h2,.simu-carte h3,.simu-carte strong,.simu-carte b{color:#0A3238}
.simu-res,.simu-res h2,.simu-res h3,.simu-res strong,.simu-res b{color:#fff}
.pied p a,.reg-note a{text-decoration:underline;text-underline-offset:.2em}

/* version FALC */
.falc-main{display:none;padding:calc(var(--entete) + 3rem) 0 4rem}
html.falc main>*{display:none!important}
html.falc main>.falc-main{display:block!important}
html.falc body{font-size:1.28rem;line-height:1.9}
html.falc .rail,html.falc .helice{display:none!important}
.falc-main .wrap{max-width:820px}
.falc-main .falc-titre,.falc-main h1{font-family:var(--titre);font-weight:800;font-size:clamp(2rem,4.5vw,2.9rem);line-height:1.12;letter-spacing:-.02em;color:var(--blanc);margin:0 0 1.4rem;max-width:none}
.falc-main h2{font-size:1.5rem;letter-spacing:-.01em;margin:2.4rem 0 1rem;display:flex;align-items:center;gap:.7rem;max-width:none}
.falc-main ul{list-style:none;padding:0;margin:0 0 .6rem;display:grid;gap:.7rem}
.falc-main li{display:flex;gap:1rem;align-items:flex-start;background:var(--surf);border:1.5px solid var(--ligne-2);border-radius:16px;padding:1rem 1.2rem;max-width:none}
.falc-main .picto{font-size:1.7rem;line-height:1.3;flex:none;width:2.2rem;text-align:center}
.falc-main a{color:var(--jaune);text-decoration:underline;text-underline-offset:3px}
.falc-main a.btn{text-decoration:none}
.falc-main a.btn:not(.btn-contour){color:#04161A}
.falc-main a.btn-contour{color:var(--blanc)}
.falc-btns{display:flex;flex-wrap:wrap;gap:.9rem;margin:1.6rem 0 .5rem}
.falc-note{font-size:.98rem;color:var(--gris-2);border-left:4px solid var(--turq);padding:.4rem 0 .4rem 1rem;margin-top:2.6rem;line-height:1.6}

/* ------------------------------------------------------------------ 7. pied de page */
.pied{position:relative;background:var(--fond-0);color:var(--gris-1);padding:clamp(4rem,8vw,6rem) 0 2rem;border-top:1px solid var(--ligne);overflow:hidden}
.pied__haut{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:2.2rem}
.pied__haut>*{min-width:0}
.pied__marque img{width:180px;margin-bottom:1.2rem}
.pied__marque p{font-size:.94rem;max-width:26rem}
.pied__baseline{font-family:var(--titre);font-weight:700;font-size:1.05rem!important;color:var(--blanc)}
.pied h2{font-family:var(--texte);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gris-2);margin-bottom:1rem}
.pied ul{list-style:none;display:grid;gap:.55rem;font-size:.95rem}
.pied a{color:var(--gris-1);text-decoration:none}
.pied a:hover{color:var(--blanc);text-decoration:underline;text-decoration-color:var(--jaune)}
.pied__mot{display:block;width:100%;height:auto;margin:clamp(2.5rem,6vw,4rem) 0 0;fill:#082227;user-select:none;pointer-events:none}
.pied__bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--ligne);font-size:.86rem;color:var(--gris-2);padding-bottom:4.5rem}
.pied__bas a{color:var(--gris-2)}
@media (max-width:900px){.pied__haut{grid-template-columns:1fr 1fr}.pied__marque{grid-column:1/-1}}
@media (max-width:560px){.pied__haut{grid-template-columns:1fr}}

/* halo de curseur (souris seulement, créé par site.js sous .anim) */
.halo{position:fixed;left:0;top:0;z-index:150;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(29,185,195,.12) 0%,rgba(240,187,59,.05) 35%,transparent 65%);opacity:0;transition:opacity .5s;mix-blend-mode:screen}
.halo.on{opacity:1}

/* ------------------------------------------------------------------ 8. réglages d'accessibilité */
.reg-fab{position:fixed;right:20px;bottom:20px;z-index:260;display:flex;align-items:center;gap:.6rem;min-height:56px;padding:0 1.1rem 0 .8rem;border-radius:999px;background:#031114;color:var(--blanc);border:2px solid var(--turq);cursor:pointer;box-shadow:0 14px 34px -12px rgba(0,0,0,.7),0 0 24px -8px rgba(29,185,195,.7);font-family:var(--titre);font-weight:700;font-size:.9rem}
.reg-fab svg{width:28px;height:28px;flex:none;color:var(--jaune)}
.reg-fab:hover{background:#000;border-color:var(--jaune)}
@media (max-width:760px){.reg-fab{right:14px;bottom:14px;padding:0;width:56px;justify-content:center}.reg-fab__lib{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}}
.reg-voile{position:fixed;inset:0;z-index:270;background:rgba(0,0,0,.55);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.reg-voile.ouvert{opacity:1;visibility:visible}
.reg{position:fixed;top:0;right:0;bottom:0;z-index:280;width:min(470px,100vw);display:flex;flex-direction:column;background:#06191D;color:var(--blanc);border-left:1px solid var(--ligne-2);box-shadow:-30px 0 80px rgba(0,0,0,.6);transform:translateX(105%);visibility:hidden;transition:transform .45s var(--ease-out),visibility .45s}
.reg.ouvert{transform:none;visibility:visible}
.reg__haut{position:relative;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--ligne)}
.reg__haut h2{font-size:1.4rem;margin:0 3rem .4rem 0}
.reg__haut p{font-size:.88rem;color:var(--gris-1);margin:0}
.reg__fermer{position:absolute;top:1rem;right:1rem;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ligne-2);background:var(--surf);cursor:pointer;color:var(--blanc)}
.reg__fermer svg{width:20px;height:20px}
.reg__corps{flex:1;overflow-y:auto;padding:1rem 1.5rem;overscroll-behavior:contain}
.reg fieldset{border:0;margin:0 0 1.2rem;padding:0;min-width:0}
.reg legend{font-family:var(--titre);font-weight:700;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gris-2);margin-bottom:.55rem;padding:0}
.reg-grille{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.reg-grille--3{grid-template-columns:repeat(3,1fr)}
.reg-opt{position:relative;display:block;min-height:48px;padding:.65rem .8rem;border-radius:12px;border:1.5px solid var(--ligne-2);background:var(--surf);color:var(--blanc);cursor:pointer;text-align:left;font-family:var(--titre);font-weight:650;font-size:.88rem;line-height:1.25}
.reg-opt small{display:block;margin-top:.2rem;font-family:var(--texte);font-weight:400;font-size:.76rem;color:var(--gris-2)}
.reg-opt--large{grid-column:1/-1}
.reg-opt:hover{border-color:var(--turq)}
.reg-opt[aria-pressed="true"],.reg-opt[aria-checked="true"]{background:var(--blanc);color:#04161A;border-color:var(--jaune)}
.reg-opt[aria-pressed="true"] small,.reg-opt[aria-checked="true"] small{color:#2B4448}
.reg-opt[aria-pressed="true"]::after,.reg-opt[aria-checked="true"]::after{content:"✓";position:absolute;right:.7rem;top:.55rem;font-weight:900;color:var(--turq-fonce)}
.reg-pas{display:flex;align-items:center;gap:.7rem}
.reg-pas button{width:52px;height:48px;border-radius:12px;border:1.5px solid var(--ligne-2);background:var(--surf);color:var(--blanc);cursor:pointer;font-family:var(--titre);font-weight:800}
.reg-pas button:hover{border-color:var(--turq)}
.reg-jauge{flex:1;height:6px;border-radius:6px;background:var(--ligne)}
.reg-jauge i{display:block;height:100%;width:var(--j,0%);min-width:6px;border-radius:inherit;background:var(--lum)}
.reg-pas output{min-width:3.6rem;text-align:center;font-family:var(--titre);font-weight:700}
.reg-vocal{display:flex;flex-wrap:wrap;gap:.5rem}
.reg-vocal button,.reg-vocal select{min-height:44px;padding:.4rem .9rem;border-radius:10px;border:1.5px solid var(--ligne-2);background:var(--surf);color:var(--blanc);cursor:pointer;font-weight:700}
.reg-vocal button[aria-pressed="true"]{border-color:var(--jaune)}
.reg__bas{padding:1rem 1.5rem 1.4rem;border-top:1px solid var(--ligne)}
.reg-reset{width:100%;min-height:46px;border-radius:12px;border:1.5px solid var(--ligne-2);background:none;color:var(--gris-1);cursor:pointer;font-family:var(--titre);font-weight:700}
.reg-reset:hover{border-color:var(--blanc);color:var(--blanc)}
.reg-note{font-size:.8rem;color:var(--gris-2);margin:.8rem 0 0}
.reg-note a{color:var(--blanc)}
.annonce{position:fixed;left:50%;bottom:24px;z-index:300;transform:translate(-50%,20px);padding:.7rem 1.1rem;border-radius:999px;background:var(--blanc);color:#04161A;font-weight:700;font-size:.92rem;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;margin:0}
.annonce.vue{opacity:1;transform:translate(-50%,0)}
.guide-lecture{position:fixed;left:0;top:38vh;width:100vw;height:22vh;min-height:150px;border-top:3px solid var(--jaune);border-bottom:3px solid var(--jaune);box-shadow:0 0 0 200vh rgba(0,0,0,.72);z-index:240;pointer-events:none;display:none}
html.a11y-masque .guide-lecture{display:block}
.ligne-lecture{position:fixed;left:0;width:100vw;height:4px;background:var(--jaune);z-index:240;pointer-events:none;display:none;top:50vh}
html.a11y-ligne .ligne-lecture{display:block}
.alt-texte{display:block;margin-top:.4rem;padding:.6rem .8rem;border-radius:10px;border:1px dashed var(--ligne-2);font-size:.9rem;color:var(--gris-1)}

/* ------------------------------------------------------------------ 9. mouvement : seulement sous html.anim */
/* intro du haut de page (CSS pur, démarre au premier affichage) */
.anim .hero .split .w>span{opacity:.06;filter:blur(16px);transform:translateY(.3em) scale(1.04);animation:mot 1.2s var(--ease-out) forwards;animation-delay:calc(.1s + var(--i,0) * .08s)}
.anim .hero__surtitre,.anim .hero__promesse,.anim .hero__actions,.anim .pastilles{opacity:0;animation:monte 1s var(--ease-out) forwards}
.anim .hero__surtitre{animation-delay:.15s}
.anim .hero__promesse{animation-delay:.8s}
.anim .hero__actions{animation-delay:.95s}
.anim .pastilles{animation-delay:1.1s}
.anim .hero__suite::after{animation:goutte 2.4s var(--ease) 2s infinite;transform-origin:50% 0}
.anim .hero-page h1 .w>span{opacity:.06;filter:blur(14px);transform:translateY(.3em);animation:mot 1.1s var(--ease-out) forwards;animation-delay:calc(.08s + var(--i,0) * .06s)}
.anim .hero-page .fil-ariane,.anim .hero-page .numero,.anim .hero-page .lead,.anim .hero-page .actions{opacity:0;animation:monte .9s var(--ease-out) forwards;animation-delay:.5s}
.anim .hero-page .fil-ariane{animation-delay:.1s}
@keyframes mot{to{opacity:1;filter:none;transform:none}}
@keyframes monte{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes goutte{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
/* apparitions au défilement */
.anim .rv,.anim .reveal{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.anim .rv.vu,.anim .reveal.vu{opacity:1;transform:none}
.anim h2.split.rv{opacity:1;transform:none}
.anim h2.split .w{overflow:clip;overflow-clip-margin:.2em;padding-bottom:.08em;margin-bottom:-.08em}
.anim h2.split .w>span{transform:translateY(110%);transition:transform 1s var(--ease-out);transition-delay:calc(var(--i,0) * .055s)}
.anim h2.split.vu .w>span{transform:none}
.anim .rv-groupe>*{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.anim .rv-groupe.vu>*{opacity:1;transform:none}
.anim .rv-groupe.vu>:nth-child(2){transition-delay:.09s}
.anim .rv-groupe.vu>:nth-child(3){transition-delay:.18s}
.anim .rv-groupe.vu>:nth-child(4){transition-delay:.27s}
.anim .rv-groupe.vu>:nth-child(n+5){transition-delay:.36s}
.anim .rv-groupe>[data-incline]{transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.anim .choix__btn:hover .choix__phrase{transform:translateX(10px)}
.anim .biblio__lien:hover .biblio__titre{transform:translateX(8px)}
.anim .radar__balai{animation:balai 4.8s linear infinite}
.anim .radar__pt i{animation:bip 2.4s ease-in-out infinite}
.anim .radar__pt:nth-of-type(2) i{animation-delay:.6s}
.anim .radar__pt:nth-of-type(3) i{animation-delay:1.2s}
.anim .radar__pt:nth-of-type(4) i{animation-delay:1.8s}
@keyframes balai{to{transform:rotate(360deg)}}
@keyframes bip{0%,100%{box-shadow:0 0 0 5px rgba(240,187,59,.15),0 0 22px rgba(240,187,59,.9)}50%{box-shadow:0 0 0 12px rgba(240,187,59,0),0 0 30px rgba(240,187,59,1)}}
.anim .logos__piste{animation:logos 46s linear infinite}
.logos:hover .logos__piste,.logos:focus-within .logos__piste{animation-play-state:paused}
@keyframes logos{to{transform:translateX(-50%)}}
.anim .citation [data-allume] .mot{color:var(--gris-2)}
html.a11y-contraste .citation .mot{color:#fff!important}
.anim .citation [data-allume] .mot.on{color:var(--blanc)}
.anim .porte__rond svg,.anim .btn svg{transition:transform .35s var(--ease-out)}
.anim .porte:hover .porte__rond svg,.anim .btn:hover svg{transform:translateX(4px)}
.anim .nav.ouvert .nav__liste>li{animation:monte .6s var(--ease-out) both}
.anim .nav.ouvert .nav__liste>li:nth-child(2){animation-delay:.04s}
.anim .nav.ouvert .nav__liste>li:nth-child(3){animation-delay:.08s}
.anim .nav.ouvert .nav__liste>li:nth-child(4){animation-delay:.12s}
.anim .nav.ouvert .nav__liste>li:nth-child(n+5){animation-delay:.16s}
html:not(.anim) .halo{display:none}
/* transitions de page (API View Transitions, ignorée si non prise en charge) */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  header.site{view-transition-name:entete}
  ::view-transition-old(root){animation:.32s var(--ease) both vt-sort}
  ::view-transition-new(root){animation:.55s var(--ease-out) both vt-entre}
}
@keyframes vt-sort{to{opacity:0;transform:translateY(-22px)}}
@keyframes vt-entre{from{opacity:0;transform:translateY(30px)}}

/* ------------------------------------------------------------------ 10. accessibilité */
html.a11y-police *{font-family:'Atkinson Hyperlegible',Verdana,sans-serif!important;letter-spacing:0!important}
html.a11y-dyspolice *{font-family:'OpenDyslexic',Verdana,sans-serif!important;letter-spacing:0!important}
html.a11y-dyspolice body{line-height:1.8}
html.a11y-police h1,html.a11y-dyspolice h1{font-size:clamp(2.2rem,5.4vw,4.4rem)}
html.a11y-espace body{line-height:2;letter-spacing:.06em;word-spacing:.14em}
html.a11y-espace p,html.a11y-espace li{margin-bottom:1.1em}
html.a11y-etroit .wrap{max-width:820px}
html.a11y-liens a{text-decoration:underline!important;text-underline-offset:3px;text-decoration-thickness:2px}
html.a11y-fixe *,html.a11y-fixe *::before,html.a11y-fixe *::after,html.mode-accessible *,html.mode-accessible *::before,html.mode-accessible *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.a11y-curseur,html.a11y-curseur *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l16 10-7 1.5L9.5 21z' fill='%23000' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") 4 2,auto!important}
html.a11y-images main img,html.a11y-images .helice,html.a11y-images .porte__photo,html.a11y-images .radar,html.a11y-images .hero__fond{display:none!important}
html:not(.a11y-images) .alt-texte{display:none}

/* contraste renforcé : noir pur, blanc, jaune */
html.a11y-contraste{--fond:#000;--fond-0:#000;--surf:#000;--surf-2:#000;--ligne:#FFFFFF;--ligne-2:#FFFFFF;--gris-1:#FFFFFF;--gris-2:#FFFFFF;--turq-txt:#7EF2F9;--turq:#7EF2F9;--lien:#FFE27A}
html.a11y-contraste body::before{background:#000}
html.a11y-contraste a{color:#FFE27A}
html.a11y-contraste :is(a.btn--lum,a.btn-jaune,a.btn-primaire,a.skip,.porte:hover .porte__rond,a.biblio__lien:hover .biblio__fleche){color:#000!important;background:#FFE27A}
html.a11y-contraste a.btn--verre:hover,html.a11y-contraste a.btn-contour:hover{color:#000!important;background:#fff}
html.a11y-contraste .falc-main a.btn:not(.btn-contour){color:#000!important}
html.a11y-contraste .helice,html.a11y-contraste .hero__fond,html.a11y-contraste .porte__photo,html.a11y-contraste .porte__lum,html.a11y-contraste .halo,html.a11y-contraste .appel::before,html.a11y-contraste .cta-final::before,html.a11y-contraste .hero-page::after{display:none!important}
html.a11y-contraste .hero,html.a11y-contraste .hero-page,html.a11y-contraste .methode__visuel,html.a11y-contraste .pied{background:#000}
html.a11y-contraste .defile__ligne--contour{color:#fff;-webkit-text-stroke:0}
html.a11y-contraste .methode__lettres span,html.a11y-contraste .indice,html.a11y-contraste .grand-nombre{color:#fff!important;-webkit-text-stroke:0!important;text-shadow:none!important}
html.a11y-contraste .pied__mot{display:none}
html.a11y-contraste .spot,html.a11y-contraste .carte,html.a11y-contraste .niveau,html.a11y-contraste .faq details,html.a11y-contraste .reg-opt{border-width:2px}

/* fond clair */
html.a11y-clair{--fond:#FFFFFF;--fond-0:#F2F7F8;--surf:#F2FAFB;--surf-2:#E6F2F4;--ligne:#C9DCDF;--ligne-2:#9DBDC2;--blanc:#0A3238;--gris-1:#1E3A3F;--gris-2:#3E5A5E;--turq-txt:#0B6E75;--jaune:#F0BB3B;--lien:#0B6E75;color-scheme:light}
html.a11y-clair body::before{background:#fff}
html.a11y-clair .helice,html.a11y-clair .halo,html.a11y-clair .porte__photo,html.a11y-clair .porte__lum,html.a11y-clair .appel::before,html.a11y-clair .cta-final::before{display:none!important}
html.a11y-clair .hero,html.a11y-clair .hero-page{background:var(--fond-0)}
html.a11y-clair .hero-page::after,html.a11y-clair .hero__voile{display:none}
html.a11y-clair header.site.defile-on,html.a11y-clair header.site.menu-actif{background:rgba(255,255,255,.95)}
html.a11y-clair .outil,html.a11y-clair .mode-btn,html.a11y-clair .menu-btn,html.a11y-clair .btn--verre,html.a11y-clair .btn-contour,html.a11y-clair .rond-btn{color:var(--blanc);border-color:var(--ligne-2)}
html.a11y-clair .marque img,html.a11y-clair .pied__marque img{background:#0A3238;border-radius:10px;padding:4px 8px}
html.a11y-clair .defile__ligne .j,html.a11y-clair h1 em,html.a11y-clair h2 em,html.a11y-clair .chute em,html.a11y-clair .pastilles li:nth-child(2) b,html.a11y-clair .avis-carte__etoiles,html.a11y-clair .met-etape:last-child .met-etape__l,html.a11y-clair .porte--j .porte__qui,html.a11y-clair .cas-etapes strong{color:#8A5A00}
/* fond clair : derniers textes jaunes ou turquoise sous 3:1 (audit 31/10/2026) */
html.a11y-clair .falc-main a:not(.btn),html.a11y-clair .faq summary::after,html.a11y-clair .reg-fab svg,html.a11y-clair .etoiles{color:#8A5A00}
html.a11y-clair .met-etape__l{color:var(--turq-txt)}
html.a11y-clair .indice{-webkit-text-stroke-color:var(--turq-txt)}
html.a11y-clair .pied__mot{fill:#E3EEF0}
html.a11y-clair .rail__n{background:#fff;color:#0A3238}
html.a11y-clair .defile__ligne .t{color:var(--turq-txt)}
html.a11y-clair .defile__ligne--contour{-webkit-text-stroke-color:#4F7C82}
html.a11y-clair .nav{background:#fff}
html.a11y-clair .sousmenu{background:#fff}
html.a11y-clair .reg{background:#fff;color:#0A3238}
html.a11y-clair .reg-opt[aria-pressed="true"],html.a11y-clair .reg-opt[aria-checked="true"]{background:#0A3238;color:#fff}
html.a11y-clair .reg-opt[aria-pressed="true"] small,html.a11y-clair .reg-opt[aria-checked="true"] small{color:#D6E9EC}
html.a11y-clair .reg-opt[aria-pressed="true"]::after,html.a11y-clair .reg-opt[aria-checked="true"]::after{color:var(--jaune)}
html.a11y-clair .reg-fab{background:#fff;color:#0A3238}
html.a11y-clair .champ input,html.a11y-clair .champ select,html.a11y-clair .champ textarea{background:#fff}
html.a11y-clair .methode__visuel{background:var(--surf)}
html.a11y-clair .methode__lettres span{-webkit-text-stroke-color:var(--ligne-2)}
html.a11y-clair .methode__lettres span.on,html.a11y-clair:not(.anim) .methode__lettres span{color:var(--turq-txt);-webkit-text-stroke-color:var(--turq-txt);text-shadow:none}
html.a11y-clair .methode__lettres span[data-l="2"].on,html.a11y-clair:not(.anim) .methode__lettres span[data-l="2"]{color:#8A5A00;-webkit-text-stroke-color:#8A5A00}

/* Mode accessible : mise en page simplifiée (en plus des réglages qu'il active) */
html.mode-accessible .helice,html.mode-accessible .halo,html.mode-accessible .rail,html.mode-accessible .hero__suite,html.mode-accessible .defile{display:none!important}
html.mode-accessible .hero{min-height:0;padding-top:calc(var(--entete) + 3rem)}
html.mode-accessible .hero-page{min-height:0}
html.mode-accessible .methode__visuel{position:static;height:auto}
html.mode-accessible .met-etape{min-height:0;padding:1.6rem 0}
html.mode-accessible .sec{padding:clamp(3rem,6vw,4.5rem) 0}
html.mode-accessible .porte{min-height:0}
html.mode-accessible .radar{display:none}
html.mode-accessible .radio{grid-template-columns:1fr}
html.mode-accessible h1{font-size:clamp(2.2rem,5.4vw,4.2rem);line-height:1.08}
html.mode-accessible h2{line-height:1.12}

/* préférences système */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv,.reveal,.rv-groupe>*{opacity:1!important;transform:none!important}
}
@media (forced-colors:active){
  .helice,.halo,.hero__fond,.porte__lum,.porte__photo,.radar{display:none!important}
  .btn,.outil,.mode-btn,.menu-btn,.reg-opt,.filtre{border:2px solid ButtonText}
}
@media print{
  header.site,.skip,.reg-fab,.reg,.reg-voile,.rail,.helice,.halo,.hero__fond,.defile,.logos-sec{display:none!important}
  body{background:#fff;color:#000}
  h1,h2,h3,strong,b{color:#000}
  .hero,.hero-page{min-height:0;background:none;padding-top:1rem}
  .choix__rep[hidden]{display:block}
}

/* ==========================================================================
   11. Variante « lumière + » (aperçu /apercu-v5-lumiere/, 24/10/2026)
   Couche ajoutée à la fin de la feuille v5 : aucun texte ni balisage modifié.
   Couleurs : turquoise et jaune de la charte DNA Conseil uniquement.
   Règles :
   - les lueurs n'existent que sous « html.lum » (posée par lumiere.js, retirée en
     Mode accessible, contraste renforcé, fond clair et FALC) ;
   - tout ce qui bouge exige en plus html.anim (absente avec prefers-reduced-motion,
     le bouton pause « Réduire les animations », le Mode accessible et le FALC) ;
   - les effets passent SOUS le texte (z-index négatif ou pseudo-éléments de fond),
     sauf le halo du curseur (mélange « screen », très faible) ;
   - aucun flou animé : faisceaux en dégradés coniques, déplacés par transform.
   ========================================================================== */

/* ---------------------------------------------------------------- A. faisceaux du héros */
html.lum .hero__fond::before,html.lum .hero__fond::after{content:"";position:absolute;pointer-events:none;mix-blend-mode:screen;will-change:transform}
html.lum .hero__fond::before{right:-22%;top:-38%;width:120%;height:150%;transform-origin:90% 0;
  background:conic-gradient(from 203deg at 90% 0,transparent 0deg,rgba(29,185,195,0) 3deg,rgba(29,185,195,.30) 6.5deg,rgba(150,240,245,.42) 8deg,rgba(29,185,195,.30) 9.5deg,rgba(29,185,195,0) 14deg,transparent 18deg,rgba(240,187,59,0) 21deg,rgba(240,187,59,.30) 24deg,rgba(255,230,160,.36) 25deg,rgba(240,187,59,.28) 26deg,rgba(240,187,59,0) 30deg,transparent 36deg,rgba(29,185,195,0) 40deg,rgba(29,185,195,.22) 45deg,rgba(29,185,195,0) 52deg,transparent 60deg);
  -webkit-mask:radial-gradient(120% 100% at 90% 0,#000 18%,rgba(0,0,0,.55) 55%,transparent 88%);mask:radial-gradient(120% 100% at 90% 0,#000 18%,rgba(0,0,0,.55) 55%,transparent 88%)}
html.lum .hero__fond::after{left:-12%;top:-40%;width:100%;height:140%;transform-origin:22% 0;opacity:.75;
  background:conic-gradient(from 148deg at 22% 0,transparent 0deg,rgba(29,185,195,0) 3deg,rgba(29,185,195,.22) 7deg,rgba(29,185,195,0) 12deg,transparent 26deg,rgba(240,187,59,0) 30deg,rgba(240,187,59,.14) 34deg,rgba(240,187,59,0) 39deg,transparent 50deg);
  -webkit-mask:radial-gradient(85% 80% at 22% 0,#000 15%,transparent 75%);mask:radial-gradient(85% 80% at 22% 0,#000 15%,transparent 75%)}
.anim.lum .hero__fond::before{animation:lum-balai 17s ease-in-out infinite alternate}
.anim.lum .hero__fond::after{animation:lum-balai-2 23s ease-in-out infinite alternate}
@keyframes lum-balai{from{transform:rotate(-5deg)}to{transform:rotate(6deg)}}
@keyframes lum-balai-2{from{transform:rotate(4deg)}to{transform:rotate(-6deg)}}
/* lueur de fond du héros un peu plus présente autour de l'hélice */
html.lum .hero{background:radial-gradient(90% 70% at 72% 38%,rgba(13,122,130,.5),transparent 62%),radial-gradient(42% 34% at 78% 30%,rgba(240,187,59,.13),transparent 70%),radial-gradient(30% 30% at 66% 46%,rgba(29,185,195,.16),transparent 70%),var(--fond-0)}

/* ---------------------------------------------------------------- B. transitions de section : filet de lumière qui balaie */
/* overflow-x:clip : le filet animé et les lueurs ne créent jamais de défilement horizontal (overflow-y reste visible) */
html.lum .sec{overflow-x:clip}
html.lum .sec::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent 4%,rgba(29,185,195,.38) 30%,rgba(240,187,59,.34) 70%,transparent 96%)}
html.lum .sec::after{content:"";position:absolute;left:0;top:-70px;width:min(52vw,680px);height:140px;pointer-events:none;mix-blend-mode:screen;opacity:0;
  background:linear-gradient(90deg,transparent,rgba(255,250,235,.95) 50%,transparent) 50% 50%/100% 1.5px no-repeat,radial-gradient(50% 50% at 50% 50%,rgba(29,185,195,.24),rgba(29,185,195,.08) 45%,transparent 72%)}
.anim.lum .sec::after{animation:lum-passe 12s cubic-bezier(.45,.05,.55,.95) infinite;animation-delay:var(--lum-d,1.5s)}
.anim.lum .sec:nth-of-type(2n)::after{--lum-d:5s}
.anim.lum .sec:nth-of-type(3n)::after{--lum-d:8s}
.anim.lum .sec.lum-hors::after,.anim.lum .hero.lum-hors .hero__fond::before,.anim.lum .hero.lum-hors .hero__fond::after,.anim.lum .portes.lum-hors::before{animation-play-state:paused}
@keyframes lum-passe{0%{opacity:0;transform:translateX(-60vw)}8%{opacity:1}42%{opacity:1}50%{opacity:0;transform:translateX(110vw)}100%{opacity:0;transform:translateX(110vw)}}
/* bandeau de mots : bords lumineux, mots colorés auréolés */
html.lum .defile{box-shadow:inset 0 1px 0 rgba(29,185,195,.35),inset 0 -1px 0 rgba(240,187,59,.3),inset 0 30px 60px -50px rgba(29,185,195,.5),inset 0 -30px 60px -50px rgba(240,187,59,.4)}
html.lum .defile__ligne .t{text-shadow:0 0 42px rgba(29,185,195,.5)}
html.lum .defile__ligne .j{text-shadow:0 0 42px rgba(240,187,59,.45)}

/* ---------------------------------------------------------------- C. halo du curseur (bureau, souris) */
html.lum .halo{width:680px;height:680px;margin:-340px 0 0 -340px;background:radial-gradient(circle,rgba(29,185,195,.17) 0%,rgba(29,185,195,.08) 22%,rgba(240,187,59,.055) 40%,transparent 64%)}

/* ---------------------------------------------------------------- D. boutons et bords qui s'illuminent */
html.lum .btn--lum,html.lum .btn-jaune,html.lum .btn-primaire{background-image:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.6) 50%,transparent 62%);background-size:260% 100%;background-repeat:no-repeat;background-position:100% 0;transition:background-position .9s var(--ease-out),box-shadow .35s,background-color .35s}
html.lum .btn--lum:hover,html.lum .btn--lum:focus-visible,html.lum .btn-jaune:hover,html.lum .btn-primaire:hover{background-color:#F6CB62;background-position:0 0;box-shadow:0 0 0 1px rgba(255,255,255,.3) inset,0 0 28px rgba(240,187,59,.6),0 20px 64px -12px rgba(240,187,59,.85)}
html.lum .btn--lum::before{inset:-6px}
html.lum .btn--lum:hover::before,html.lum .btn--lum:focus-visible::before{opacity:.95}
html.lum .btn--verre,html.lum .btn-contour{transition:background .3s,color .3s,border-color .3s,box-shadow .4s}
html.lum .btn--verre:hover,html.lum .btn--verre:focus-visible,html.lum .btn-contour:hover{box-shadow:0 0 0 1px #fff,0 0 26px rgba(29,185,195,.6),0 0 70px rgba(29,185,195,.3)}
html.lum .rond-btn:hover,html.lum .outil:hover,html.lum .mode-btn:hover,html.lum .menu-btn:hover{box-shadow:0 0 0 1px rgba(29,185,195,.5),0 0 22px rgba(29,185,195,.45)}
html.lum .reg-fab{transition:box-shadow .4s,border-color .3s}
html.lum .reg-fab:hover{box-shadow:0 14px 34px -12px rgba(0,0,0,.7),0 0 34px -4px rgba(240,187,59,.7)}
html.lum .nav__liste>li>a:hover,html.lum .nav__bouton:hover{text-shadow:0 0 16px rgba(29,185,195,.75)}
html.lum .nav__liste>li>a[aria-current="page"]::after{box-shadow:0 0 10px rgba(29,185,195,.8)}
html.lum .lien:hover,html.lum .lien-fleche:hover{text-shadow:0 0 18px rgba(240,187,59,.45)}
/* cartes à halo : bord plus net, lueur extérieure au survol */
html.lum .spot{transition:box-shadow .45s}
html.lum .spot:hover,html.lum .spot:focus-visible{box-shadow:0 0 0 1px rgba(29,185,195,.3),0 26px 80px -30px rgba(29,185,195,.65)}
html.lum .spot::before{padding:1.5px}
/* liste « Vous reconnaissez-vous ? » : le filet s'allume au survol */
html.lum .choix__btn::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--lum);box-shadow:0 0 12px rgba(29,185,195,.85),0 0 3px rgba(240,187,59,.8);transform:scaleX(0);transform-origin:0 50%;transition:transform .8s var(--ease-out);pointer-events:none}
html.lum .choix__btn:hover::after,html.lum .choix__btn:focus-visible::after,html.lum .choix__btn[aria-expanded="true"]::after{transform:scaleX(1)}
html.lum .choix__btn:hover .choix__plus{box-shadow:0 0 20px rgba(29,185,195,.5)}
html.lum .choix__btn[aria-expanded="true"] .choix__plus{box-shadow:0 0 24px rgba(240,187,59,.6)}

/* ---------------------------------------------------------------- E. portes d'entrée : lueur douce derrière les cartes */
html.lum .portes{position:relative;isolation:isolate}
html.lum .portes::before{content:"";position:absolute;inset:-14% calc(-1 * min(8%, var(--gout)));z-index:-1;pointer-events:none;
  background:radial-gradient(30% 48% at 17% 58%,rgba(29,185,195,.26),transparent 72%),radial-gradient(28% 46% at 50% 50%,rgba(240,187,59,.18),transparent 72%),radial-gradient(30% 48% at 83% 58%,rgba(29,185,195,.24),transparent 72%)}
@media (max-width:960px){html.lum .portes::before{inset:-6% calc(-1 * var(--gout));background:radial-gradient(70% 18% at 50% 17%,rgba(29,185,195,.24),transparent 72%),radial-gradient(70% 18% at 50% 50%,rgba(240,187,59,.17),transparent 72%),radial-gradient(70% 18% at 50% 83%,rgba(29,185,195,.22),transparent 72%)}}
.anim.lum .portes::before{animation:lum-respire 6.5s ease-in-out infinite alternate}
@keyframes lum-respire{from{opacity:.62}to{opacity:1}}
html.lum .porte{box-shadow:0 0 0 1px rgba(29,185,195,.16),0 34px 90px -44px rgba(29,185,195,.75)}
html.lum .porte--j{box-shadow:0 0 0 1px rgba(240,187,59,.16),0 34px 90px -44px rgba(240,187,59,.65)}
html.lum .porte:hover,html.lum .porte:focus-visible{box-shadow:0 0 0 1px rgba(29,185,195,.5),0 0 40px -6px rgba(29,185,195,.45),0 40px 110px -34px rgba(29,185,195,.85)}
html.lum .porte--j:hover,html.lum .porte--j:focus-visible{box-shadow:0 0 0 1px rgba(240,187,59,.5),0 0 40px -6px rgba(240,187,59,.4),0 40px 110px -34px rgba(240,187,59,.75)}
html.lum .porte__lum::before{opacity:.7}
.anim.lum .porte__lum::before{animation:lum-porte 9s ease-in-out infinite alternate;transform-origin:100% 0}
.anim.lum .porte:nth-child(2) .porte__lum::before{animation-delay:-3s}
.anim.lum .porte:nth-child(3) .porte__lum::before{animation-delay:-6s}
@keyframes lum-porte{from{transform:rotate(-4deg)}to{transform:rotate(5deg)}}
html.lum .porte:hover .porte__rond,html.lum .porte:focus-visible .porte__rond{box-shadow:0 0 22px rgba(240,187,59,.7)}

/* ---------------------------------------------------------------- F. numéros et compteurs qui s'allument */
html.lum .rail__n{transition:background .45s,border-color .45s,color .45s,box-shadow .45s}
html.lum .rail a.lum-passe .rail__n{border-color:rgba(29,185,195,.85);color:var(--turq-txt);box-shadow:0 0 10px rgba(29,185,195,.45),inset 0 0 8px rgba(29,185,195,.22)}
.anim.lum .rail a[aria-current="true"] .rail__n{animation:lum-pouls 2.8s ease-in-out infinite}
@keyframes lum-pouls{50%{box-shadow:0 0 28px rgba(240,187,59,.95),0 0 4px rgba(255,255,255,.7)}}
html.lum .choix__n{transition:color .7s,text-shadow .7s}
html.lum .choix__n.lum-on{color:var(--turq-txt);text-shadow:0 0 12px rgba(29,185,195,.9),0 0 30px rgba(29,185,195,.45)}
html.lum .choix__btn:hover .choix__n,html.lum .choix__btn[aria-expanded="true"] .choix__n{text-shadow:0 0 12px rgba(240,187,59,.9),0 0 30px rgba(240,187,59,.45)}
html.lum .pastilles b{transition:text-shadow 1.4s var(--ease-out)}
html.lum .pastilles b.lum-on{text-shadow:0 0 22px rgba(255,255,255,.35),0 0 46px rgba(29,185,195,.35)}
html.lum .pastilles li:nth-child(2) b.lum-on{text-shadow:0 0 22px rgba(240,187,59,.55),0 0 46px rgba(240,187,59,.3)}
html.lum .pastilles li:nth-child(3) b.lum-on{text-shadow:0 0 22px rgba(29,185,195,.6),0 0 46px rgba(29,185,195,.3)}
html.lum .methode__n{text-shadow:0 0 16px rgba(240,187,59,.75)}
html.lum .methode__lettres span.on{text-shadow:0 0 40px rgba(29,185,195,.55)}
html.lum .methode__lettres span[data-l="2"].on{text-shadow:0 0 40px rgba(240,187,59,.5)}
html.lum .met-etape__l{text-shadow:0 0 26px rgba(29,185,195,.5)}

/* ---------------------------------------------------------------- G. reflet lumineux des titres au défilement
   Seulement sur les grands titres (H1, H2 découpés en mots), jamais sur les paragraphes.
   Le dégradé reste entre #8EE6EC et #FFFFFF (texte clair, contraste > 12:1 sur le fond) ;
   la couleur calculée (color) n'est pas modifiée. --rw, --rp et --ox posées par lumiere.js sur chaque mot (jamais sur le titre :
   un attribut style sur le H2 changerait sa taille en v5). */
.anim.lum .reflet{background-color:#DDEAEC;background-image:linear-gradient(100deg,#DDEAEC 0%,#DDEAEC 45.5%,#8EE6EC 48%,#FFFFFF 49.6%,#FFFFFF 50.4%,#FFDF8A 52%,#DDEAEC 54.5%,#DDEAEC 100%);background-size:var(--rw,2000px) 100%;background-repeat:no-repeat;background-position:calc(var(--rp,-1000px) - var(--ox,0px)) 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.anim.lum .reflet em,.anim.lum .reflet--j{background-color:#F0BB3B;background-image:linear-gradient(100deg,#F0BB3B 0%,#F0BB3B 46%,#FFE08F 48.5%,#FFFBEE 50%,#FFE08F 51.5%,#F0BB3B 54%,#F0BB3B 100%);background-size:var(--rw,2000px) 100%;background-repeat:no-repeat;background-position:calc(var(--rp,-1000px) - var(--ox,0px)) 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ---------------------------------------------------------------- H. garde-fous */
/* jamais de lueur sans html.lum ; en mode accessible, contraste, fond clair, FALC : rien (ceinture et bretelles) */
html.mode-accessible .hero__fond::before,html.mode-accessible .hero__fond::after,html.mode-accessible .sec::after,html.mode-accessible .portes::before,
html.a11y-contraste .hero__fond::before,html.a11y-contraste .sec::after,html.a11y-contraste .portes::before,
html.a11y-clair .hero__fond::before,html.a11y-clair .sec::after,html.a11y-clair .portes::before{display:none!important}
html.mode-accessible .reflet,html.a11y-contraste .reflet,html.a11y-clair .reflet{-webkit-text-fill-color:currentColor!important;background:none!important}
@media (prefers-reduced-motion:reduce){
  .hero__fond::before,.hero__fond::after,.sec::after,.portes::before,.porte__lum::before,.rail__n{animation:none!important}
  .sec::after{display:none}
}
@media print{.hero__fond::before,.hero__fond::after,.sec::before,.sec::after,.portes::before{display:none!important}}
