/* ESE — feuille de style principale (issue de la maquette V28). */
/* ==========================================================================
   ESE — MAQUETTE ACCUEIL · V23
   Fusion des versions V6 → V20 en une seule feuille de style ; V22 : vue 5 « niveaux » ; V23 : logos des niveaux sur l’échelle.

   SOMMAIRE
   0. Variables
   1. Base et mise en page
   2. Styles réutilisables  ← à utiliser partout sur la page
   3. Animations communes
   4. En-tête
   5. Vue 1 — Accueil
   6. Vue 2 — Le label (trois dimensions)
   7. Vue 3 — Reconnaître vos engagements
   8. Vue 4 — La labellisation ESE (parcours interactif)
   9. Vue 5 — Les niveaux du label (échelle de score)
   10. Vue 6 — La marque employeur (animation)
   11. Vue 7 — Une démarche collective
   12. Vue 8 — Le référentiel (cycle + frise)
   13. Vue 9 — Contact
   14. Pied de page
   15. Mouvement réduit

   GUIDE DES STYLES RÉUTILISABLES
   .titre-pleine-page       Titre pleine page (« Le label de l'engagement social… »,
                            « La labellisation ESE. », « Une démarche collective. »)
     __accent               mot en violet
     __souligne             mot en violet souligné d'une vague (+ <svg class="titre-pleine-page__vague">)
     __point                point final violet clair
   .sous-titre-pleine-page  Texte d'accroche sous un titre pleine page
   .titre-2                 Titre de section : écriture violette sur bandeau blanc
   .titre-3                 Titre de section : écriture blanche sur bandeau violet
                            Structure commune aux deux :
                            <h2 class="titre-2"><span class="bandeau"><span class="bandeau__txt">Texte</span></span></h2>
                            Le bandeau se dessine à l'apparition du titre à l'écran.
   .chapeau                 Texte d'introduction sous un titre de section
   .texte-courant           Paragraphe courant en grand corps (gris doux)
   .surtitre                Intertitre en capitales violettes
   .btn                     Bouton, avec .btn--plein / --contour / --blanc / --fantome
   [data-ese-reveal]        Apparition en fondu au défilement (délai : style="--rd:.2s")
   ========================================================================== */

/* ---------- 0. Variables ---------- */
:root{
  --violet:#592FF1;
  --violet-2:#A35EFC;
  --bleu:#D9E2FF;
  --encre:#10111F;
  --texte:#5B5A6D;
  --texte-doux:#5E5A70;
  --line:#E3E2F1;
  --max:1320px;
  --shadow:0 18px 48px rgba(40,27,100,.10);
}

/* ---------- 1. Base et mise en page ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:94px}
body{margin:0;font-family:'Outfit',system-ui,sans-serif;color:var(--encre);background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{width:min(var(--max),calc(100% - 112px));margin:0 auto}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:1120px){.wrap{width:min(var(--max),calc(100% - 64px))}}
@media(max-width:640px){.wrap{width:calc(100% - 36px)}}

/* ---------- 2. Styles réutilisables ---------- */
/* Titre pleine page */
.titre-pleine-page{font-size:clamp(3.4rem,7.2vw,7.8rem);line-height:.96;letter-spacing:-.085em;font-weight:800;color:var(--encre)}
.titre-pleine-page__accent{color:var(--violet)}
.titre-pleine-page__souligne{position:relative;display:inline-block;color:var(--violet)}
.titre-pleine-page__point{color:var(--violet-2)}
.titre-pleine-page__txt{display:block;will-change:translate}
.titre-pleine-page__vague{position:absolute;left:.03em;bottom:-.13em;width:calc(100% - .08em);height:.17em;overflow:visible;fill:none;stroke:var(--violet-2);stroke-width:6;stroke-linecap:round;pointer-events:none}

/* Sous-titre pleine page */
.sous-titre-pleine-page{font-size:clamp(1.1rem,1.8vw,1.55rem);line-height:1.5;color:var(--texte)}

/* Titres de section à bandeau : titre-2 (bandeau blanc) et titre-3 (bandeau violet) */
.titre-2{--bandeau-fond:#fff;--bandeau-texte:var(--violet)}
.titre-3{--bandeau-fond:var(--violet);--bandeau-texte:#fff}
.titre-2,.titre-3{margin:0;max-width:1150px;font-size:clamp(2.8rem,4.9vw,5.5rem);line-height:1.34;letter-spacing:-.073em;font-weight:800}
.bandeau{display:inline;padding:.055em .12em .105em;background:var(--bandeau-fond);color:var(--bandeau-texte);-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* Chapeau (introduction de section) */
.chapeau{margin:20px 0 0;max-width:830px;font-size:clamp(1.08rem,1.5vw,1.32rem);line-height:1.58;color:var(--texte)}

/* Texte courant grand corps */
.texte-courant{margin:0;max-width:960px;font-size:1.18rem;line-height:1.6;font-weight:400;color:var(--texte-doux)}

/* Intertitre en capitales */
.surtitre{margin:44px 0 0;font-size:1.05rem;letter-spacing:.08em;text-transform:uppercase;color:var(--violet);font-weight:800}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 22px;border-radius:6px;border:2px solid var(--violet);font-size:15px;font-weight:800;transition:transform .2s ease,background .2s ease,color .2s ease}
.btn:hover{transform:translateY(-2px)}
.btn--plein{background:var(--violet);color:#fff}
.btn--contour{background:#fff;color:var(--violet)}
.btn--blanc{background:#fff;border-color:#fff;color:var(--violet)}
.btn--fantome{background:transparent;border-color:rgba(255,255,255,.38);color:#fff}

@media(max-width:1100px){
  .texte-courant{font-size:1.08rem;line-height:1.58}
}
@media(max-width:880px){
  .btn{width:100%}
}
@media(max-width:750px){
  .titre-2,.titre-3{font-size:clamp(2.55rem,10.5vw,4.25rem);line-height:1.36}
  .bandeau{padding:.055em .105em .11em}
  .texte-courant{font-size:1.02rem;line-height:1.6}
}
@media(max-width:640px){
  .titre-pleine-page{font-size:clamp(2.8rem,13vw,4.4rem)}
  .sous-titre-pleine-page{font-size:1.05rem}
  .chapeau{font-size:1.02rem}
  .surtitre{margin-top:32px;font-size:1rem}
}

/* ---------- 3. Animations communes ----------
   Les états cachés n'existent que sous .ese-js : sans JS ou en mouvement réduit,
   tout reste lisible et statique. */
/* Apparition au défilement */
.ese-js [data-ese-reveal]{opacity:0;translate:0 26px;filter:blur(6px);transition:opacity .8s ease var(--rd,0s),translate 1s cubic-bezier(.16,1,.3,1) var(--rd,0s),filter .8s ease var(--rd,0s)}
.ese-js [data-ese-reveal].is-in{opacity:1;translate:0 0;filter:none}

/* Bandeau des titres 2 et 3 : le fond balaie la ligne et révèle le texte */
.ese-js .bandeau{background:linear-gradient(var(--bandeau-fond),var(--bandeau-fond)) 0 0/0% 100% no-repeat;transition:background-size 1.15s cubic-bezier(.7,0,.2,1)}
.ese-js .bandeau__txt{padding:0 .12em;margin:0 -.12em;color:transparent;-webkit-text-fill-color:transparent;background:linear-gradient(var(--bandeau-texte),var(--bandeau-texte)) 0 0/0% 100% no-repeat;-webkit-background-clip:text;background-clip:text;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size 1.15s cubic-bezier(.7,0,.2,1)}
.ese-js .is-in .bandeau,.ese-js .is-in .bandeau__txt{background-size:100% 100%}
@media(max-width:750px){.ese-js .bandeau__txt{padding:0 .105em;margin:0 -.105em}}
/* Titres 2 et 3 (bandeau blanc ou violet) : le bandeau est affiché d'emblée,
   le titre entier apparaît en fondu en montant de bas en haut */
.ese-js .titre-2 .bandeau,.ese-js .titre-3 .bandeau{background:var(--bandeau-fond);transition:none}
.ese-js .titre-2 .bandeau__txt,.ese-js .titre-3 .bandeau__txt{padding:0;margin:0;background:none;color:var(--bandeau-texte);-webkit-text-fill-color:currentColor;transition:none}
.ese-js .titre-2,.ese-js .titre-3{opacity:0;translate:0 40px;filter:blur(6px);transition:opacity .9s ease,translate 1.1s cubic-bezier(.16,1,.3,1),filter .9s ease}
.ese-js .titre-2.is-in,.ese-js .titre-3.is-in{opacity:1;translate:0 0;filter:none}

/* Titre pleine page : lettres écrites au défilement + vague dessinée */
.ese-ch{transition:opacity .12s linear}
.ese-js .titre-pleine-page__vague path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1s cubic-bezier(.65,0,.35,1) .1s}
.ese-js .titre-pleine-page.is-written .titre-pleine-page__vague path{stroke-dashoffset:0}

/* ---------- 4. En-tête ---------- */
.topline{height:6px;background:linear-gradient(90deg,#7A3FF5 0%,var(--violet-2) 100%)}
.site-header{position:sticky;top:0;z-index:90;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-bottom:1px solid rgba(89,47,241,.10)}
.header-inner{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;flex-direction:column;gap:5px;line-height:1}
.brand-logo{display:block;width:auto;height:66px}
.brand small{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--encre);text-transform:uppercase}
.nav{display:flex;align-items:center;gap:28px}
.nav a{font-size:14px;font-weight:700;color:#26253A}
.nav a:hover{color:var(--violet)}
.header-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;background:var(--violet);border-radius:6px;color:#fff;font-weight:700}
.mobile-menu{display:none;position:relative}
.mobile-menu summary{list-style:none;cursor:pointer;padding:9px;display:grid;gap:5px}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu summary span{display:block;width:28px;height:2px;background:var(--violet)}
.mobile-pop{position:absolute;right:0;top:52px;width:min(320px,calc(100vw - 30px));padding:18px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow);display:grid;gap:10px}
.mobile-pop a{padding:10px 2px;font-weight:700}
.mobile-pop .header-cta{margin-top:6px}
@media(max-width:880px){
  .nav,.header-inner>.header-cta{display:none}
  .mobile-menu{display:block}
}
@media(max-width:640px){
  .header-inner{min-height:74px}
  .brand-logo{height:52px}
  .brand small{font-size:10px}
}

/* ==========================================================================
   5. VUE 1 — ACCUEIL
   ========================================================================== */
.hero{position:relative;background:linear-gradient(to bottom,#fff 0%,#fff 65%,#f9faff 83%,#e9eeff 94%,#d9e2ff 100%)}
.hero-inner{position:relative;min-height:calc(100svh - 90px);display:flex;align-items:center;justify-content:center;padding:96px 0 126px}
.hero-copy{max-width:1080px;text-align:center}
.hero .titre-pleine-page{margin:28px auto 22px;max-width:1040px}
.hero .sous-titre-pleine-page{max-width:780px;margin:0 auto}
.hero-actions{margin-top:34px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero-scroll{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);z-index:4}
.hero-scroll a{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--violet);font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.hero-scroll .icon{width:56px;height:56px;border-radius:999px;background:rgba(255,255,255,.95);border:1px solid rgba(89,47,241,.14);box-shadow:0 14px 42px rgba(36,22,93,.12);display:grid;place-items:center;font-size:28px;animation:bounce 1.8s ease-in-out infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(10px)}}
@media(max-width:880px){
  .hero-actions{flex-direction:column;align-items:stretch;max-width:420px;margin-inline:auto}
}
@media(max-width:750px){
  .hero-inner{padding-bottom:118px}
}
@media(max-width:640px){
  .hero-inner{min-height:calc(100svh - 80px);padding-top:70px}
  .hero-scroll{bottom:20px}
  .hero-scroll .icon{width:48px;height:48px;font-size:24px}
}

/* ==========================================================================
   6. VUE 2 — LE LABEL (trois dimensions)
   ========================================================================== */
#label{position:relative;padding:92px 0 110px;background:var(--bleu)}
#label .wrap{max-width:1240px}
#label .titre-2{max-width:1060px}
.ese-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px;align-items:start;margin-top:28px}
.ese-pillar{display:grid;grid-template-rows:auto auto 1fr auto;align-content:start;height:100%;padding-right:10px}
.ese-pillar-icon{width:142px;height:142px;object-fit:contain;object-position:left center;margin-bottom:22px}
.ese-pillar h4{margin:0;min-height:2.2em;max-width:12ch;display:flex;align-items:flex-start;font-size:clamp(1.55rem,2.2vw,2.1rem);line-height:1.07;letter-spacing:-.05em;color:var(--violet)}
.ese-pillar p{margin:14px 0 0;max-width:34ch;font-size:1rem;line-height:1.62;color:#5A596C}
.ese-pillar::after{content:'';display:block;align-self:end;width:100%;height:1px;margin-top:24px;background:rgba(89,47,241,.22)}
@media(max-width:1120px){
  .ese-pillars{grid-template-columns:1fr 1fr}
}
@media(max-width:880px){
  .ese-pillars{grid-template-columns:1fr}
  .ese-pillar{text-align:center;justify-items:center;padding-right:0}
  .ese-pillar-icon{object-position:center;margin-left:auto;margin-right:auto}
  .ese-pillar h4{justify-content:center;max-width:none}
  .ese-pillar p{margin-left:auto;margin-right:auto}
}
@media(max-width:750px){
  .ese-pillar{grid-template-rows:auto auto auto auto}
  .ese-pillar h4{min-height:0}
  .ese-pillar-icon{width:112px;height:112px}
}
@media(max-width:640px){
  #label{padding-bottom:78px}
}

/* ==========================================================================
   7. VUE 3 — RECONNAÎTRE VOS ENGAGEMENTS
   Texte d'introduction pleine largeur, puis les quatre bénéfices sur une ligne.
   ========================================================================== */
.engagements{position:relative;isolation:isolate;overflow:hidden;background:var(--bleu);padding:clamp(66px,7.5vw,112px) 0 clamp(56px,6vw,96px)}
.engagements::before{content:"";position:absolute;inset:auto -240px -400px auto;width:760px;height:760px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.45),transparent 70%);z-index:-1;pointer-events:none}
.engagements__body{margin-top:29px}
.engagements__body .texte-courant+.texte-courant{margin-top:18px}
.engagements__benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,48px);margin-top:clamp(48px,5.5vw,80px)}
.engagements__item{min-width:0;margin:0;text-align:center;display:flex;flex-direction:column;align-items:center}
.engagements__icon{width:clamp(82px,7.5vw,116px);height:clamp(82px,7.5vw,116px);display:grid;place-items:center;flex:none;border-radius:50%;background:#d9d7fb;color:#2610d9;box-shadow:inset 0 0 23px rgba(255,255,255,.38);margin-bottom:22px;transition:transform .25s ease}
.engagements__icon svg{display:block;width:66%;height:66%}
.engagements__item:hover .engagements__icon{transform:translateY(-4px)}
.engagements__item h3{margin:0 0 10px;color:#6036f5;font-size:clamp(21px,1.75vw,29px);font-weight:800;line-height:1.16;letter-spacing:-.035em}
.engagements__item p{margin:0;max-width:240px;font-size:clamp(14px,1.05vw,16px);line-height:1.5;color:#344d5e}
@media(max-width:900px){
  .engagements__benefits{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}
}
@media(max-width:590px){
  .engagements{padding:59px 0 48px}
  .engagements__icon{width:clamp(70px,21vw,98px);height:clamp(70px,21vw,98px);margin-bottom:15px}
  .engagements__item h3{font-size:clamp(18px,5vw,23px);margin-bottom:8px}
  .engagements__item p{font-size:clamp(12px,3.4vw,14px);line-height:1.44}
}

/* ==========================================================================
   Ouverture pleine page (vues 4 et 7) : grand titre centré
   ========================================================================== */
.ouverture{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;padding:clamp(56px,7vw,104px) 0 clamp(80px,7.2vw,106px);overflow:hidden}
.ouverture__inner{text-align:center}
.ouverture .titre-pleine-page{margin:30px auto 0;max-width:1180px}
.ouverture__fond{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(rgba(89,47,241,.13) 1.2px,transparent 1.5px) 0 0/26px 26px;-webkit-mask:radial-gradient(55% 62% at 50% 52%,#000 0%,transparent 78%);mask:radial-gradient(55% 62% at 50% 52%,#000 0%,transparent 78%)}
.ouverture__orbe{position:absolute;border-radius:50%;filter:blur(40px);opacity:.75}
.ouverture__orbe--1{width:min(560px,70vw);aspect-ratio:1;left:50%;top:50%;translate:-62% -48%;background:radial-gradient(closest-side,rgba(217,226,255,.95),transparent)}
.ouverture__orbe--2{width:min(420px,55vw);aspect-ratio:1;left:50%;top:50%;translate:-6% -40%;background:radial-gradient(closest-side,rgba(163,94,252,.20),transparent)}
@media(max-width:640px){
  .ouverture{padding:64px 0 100px}
  .ouverture .titre-pleine-page{margin-top:22px}
}

/* ==========================================================================
   8. VUE 4 — LA LABELLISATION ESE (parcours interactif)
   ========================================================================== */
#demarche{padding:0 0 108px;background:#fff}
#demarche .titre-3{margin-top:clamp(6px,1.4vw,18px)}
@media(max-width:640px){#demarche{padding-bottom:78px}}

/* Parcours en trois étapes */
.ese-interactive{--e:#592ff1;--edge:#e6e1fa;position:relative;margin-top:55px}
.ese-interactive__hint{display:flex;align-items:center;gap:9px;margin-bottom:20px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#817999}
.ese-interactive__hint::before{content:'✳';color:var(--e);font-size:17px}
.ese-interactive__stage{display:grid;grid-template-columns:1fr;align-items:stretch;min-height:460px;overflow:hidden;transition:grid-template-columns .65s cubic-bezier(.2,.78,.18,1)}
.ese-interactive.is-open .ese-interactive__stage{grid-template-columns:minmax(275px,1fr) minmax(0,2fr)}
.ese-interactive__steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;border-top:3px solid var(--e);transition:all .55s ease}
.ese-interactive.is-open .ese-interactive__steps{grid-template-columns:1fr;align-content:start;border-top:0;border-right:1px solid var(--edge);background:#fbfaff}
.ese-interactive__step{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:32px clamp(15px,2.6vw,34px) 30px;font:inherit;text-align:left;color:#11101e;appearance:none;border:0;border-right:1px solid var(--edge);background:transparent;cursor:pointer;transition:background .3s ease,padding .5s ease}
.ese-interactive__step:last-child{border-right:0}
.ese-interactive__step::before{content:'';position:absolute;left:34px;top:-12px;width:22px;height:22px;border:4px solid var(--e);border-radius:50%;background:#fff;box-shadow:0 0 0 7px #fff}
.ese-interactive__step:hover{background:#f8f6ff}
.ese-interactive__step:focus-visible{outline:3px solid #9b79fc;outline-offset:-3px;z-index:2}
.ese-interactive__num{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--e)}
.ese-interactive__title{max-width:13ch;margin:28px 0 18px;font-size:clamp(1.7rem,2.3vw,2.45rem);font-weight:800;line-height:1.08;letter-spacing:-.065em}
.ese-interactive__excerpt{max-width:29ch;margin:0 0 12px;font-size:1.06rem;line-height:1.6;color:#5b5a6d}
.ese-interactive__arrow{margin-top:auto;padding-top:20px;font-size:2rem;line-height:1;color:var(--e)}
.ese-interactive.is-open .ese-interactive__step{min-height:118px;padding:24px 20px 24px 35px;border-right:0;border-bottom:1px solid var(--edge);display:grid;grid-template-columns:1fr 24px;gap:4px 8px;align-content:center}
.ese-interactive.is-open .ese-interactive__step::before{top:calc(50% - 7px);left:13px;width:14px;height:14px;border-width:3px;box-shadow:none}
.ese-interactive.is-open .ese-interactive__step[aria-selected="true"]{background:#eeeaff;box-shadow:inset 4px 0 0 var(--e)}
.ese-interactive.is-open .ese-interactive__step[aria-selected="true"]::before{background:var(--e)}
.ese-interactive.is-open .ese-interactive__title{grid-column:1;max-width:none;margin:6px 0 0;font-size:clamp(1.13rem,1.55vw,1.55rem);line-height:1.17}
.ese-interactive.is-open .ese-interactive__excerpt{display:none}
.ese-interactive.is-open .ese-interactive__arrow{grid-column:2;grid-row:1 / span 2;align-self:center;padding:0;font-size:1.5rem}
.ese-interactive__details{min-width:0;max-width:0;opacity:0;transform:translateX(45px);visibility:hidden;overflow:hidden;transition:max-width .6s cubic-bezier(.2,.78,.18,1),opacity .35s ease .12s,transform .55s ease,visibility .55s}
.ese-interactive.is-open .ese-interactive__details{max-width:1200px;opacity:1;transform:translateX(0);visibility:visible}
.ese-interactive__panel{position:relative;display:none;height:100%;min-height:540px;padding:clamp(28px,4.2vw,65px);background:linear-gradient(135deg,#f6f3ff 0%,#eff3ff 100%)}
.ese-interactive__panel.is-current{display:flex;flex-direction:column;animation:ese-panel-in .38s ease both}
@keyframes ese-panel-in{from{opacity:0;transform:translateX(15px)}to{opacity:1;transform:translateX(0)}}
.ese-interactive__panel-heading{margin-bottom:22px;font-size:12px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--e)}
.ese-interactive__panel h3{max-width:670px;margin:0 0 19px;font-size:clamp(1.7rem,2.45vw,2.85rem);line-height:1.06;letter-spacing:-.065em}
.ese-interactive__panel-lead{max-width:650px;margin:0 0 26px;font-size:clamp(1.03rem,1.35vw,1.24rem);line-height:1.55;color:#4f4b65}
.ese-interactive__note{padding-top:18px;border-top:1px solid rgba(89,47,241,.22);font-size:.96rem;line-height:1.5;color:#554b76}
.ese-interactive__close{position:absolute;top:18px;right:18px;width:36px;height:36px;display:grid;place-items:center;border:1px solid #d9d0fa;background:#fff;color:var(--e);font-size:22px;cursor:pointer}
.ese-interactive__close:focus-visible{outline:3px solid var(--e)}

/* Étape 1 : audit */
.audit{margin:8px 0 22px}
.audit-row{display:grid;grid-template-columns:46px 1fr;gap:16px;padding:19px 0;border-bottom:1px solid #b6a5ff}
.audit-row:first-child{border-top:1px solid #b6a5ff}
.audit-icon{width:34px;padding-top:3px;color:#592ff1}
.audit-icon svg{width:33px;height:33px}
.audit h4{margin:0 0 6px;font-size:clamp(1.15rem,1.55vw,1.45rem);line-height:1.18;letter-spacing:-.045em;color:#10111f}
.audit p{margin:0;font-size:.98rem;line-height:1.5;color:#4c4a62}

/* Étape 2 : aperçu de la plateforme */
.dashboard{min-width:0;width:100%;margin:15px 0 23px}
.dashboard-wrap{padding:12px;background:#F5F7FF;border:1px solid #e6e4f7;box-shadow:10px 10px 0 #e8e5ff}
.dashboard-header{height:44px;display:flex;justify-content:space-between;align-items:center;padding:0 10px;background:#fff;border:1px solid #eceaf6;border-bottom:0;color:#69657a;font-size:12px}
.dashboard-header b{color:var(--violet);font-size:15px}
.dashboard-logo{font-size:25px;font-weight:900;color:var(--violet);letter-spacing:-.09em}
.dashboard-logo span{color:var(--violet-2)}
.dashboard-ui{display:grid;grid-template-columns:110px minmax(0,1fr);min-height:330px;background:#fff;border:1px solid #eceaf6}
.dashboard-sidebar{padding:15px 5px;background:#25154b;color:#c6bce9;font-size:10px}
.dash-nav{display:flex;gap:9px;align-items:center;padding:11px 8px;margin:3px 0}
.dash-nav.current{background:#5930ef;color:#fff}
.dashboard-content{min-width:0;padding:18px 16px}
.dash-top,.dash-chart-head{display:flex;justify-content:space-between;align-items:start;gap:16px}
.dash-top small,.dash-score small,.dash-metric small,.dash-chart-head small{font-size:10px;letter-spacing:.1em;color:#918aa7}
.dash-top h4{margin:7px 0 0;font-size:21px;letter-spacing:-.04em}
.dash-tag{padding:8px 10px;font-size:9px;font-weight:800;letter-spacing:.08em;white-space:nowrap;background:#ece8ff;color:var(--violet)}
.dash-summary{display:grid;grid-template-columns:.7fr 1fr;gap:10px;margin:20px 0 14px}
.dash-score,.dash-metric{min-width:0;padding:16px;background:#f7f6fc}
.dash-score strong{font-size:38px;letter-spacing:-.09em;color:var(--violet)}
.dash-score div span{color:#85819a}
.dash-trend,.dash-metric>span{display:block;margin-top:4px;font-size:10px;color:#7a728c}
.dash-metric b{display:block;margin:13px 0 16px;font-size:14px}
.dash-progress{height:7px;background:#e4ddfb}
.dash-progress i{display:block;width:76%;height:7px;background:var(--violet)}
.dash-chart{padding:16px;border:1px solid #eceaf6}
.dash-chart-head b{font-size:13px}
.dash-line{display:grid;grid-template-columns:120px minmax(0,1fr) 24px;align-items:center;gap:6px;margin-top:18px;font-size:10px;color:#6c647f}
.dash-line>div{height:8px;background:#ece9fa}
.dash-line i{display:block;height:8px;background:linear-gradient(90deg,var(--violet),var(--violet-2))}
.dash-line b{color:var(--violet)}
.plateforme-features{padding:20px 23px;border-top:1px solid #d8cdfb;background:rgba(255,255,255,.52)}
.plateforme-features h4{margin:0 0 12px;font-size:1.2rem}
.plateforme-features ul{margin:0;padding-left:22px}
.plateforme-features li{margin-bottom:8px;font-size:1rem;line-height:1.55;color:#47435e}

/* Étape 3 : les trois niveaux */
.niveaux{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 22px}
.niveau{min-width:0;padding:19px 13px 20px;text-align:center;background:#fff;border:1px solid #ddd6fc}
.niveau-emblem{display:flex;align-items:center;justify-content:center;gap:7px;min-height:72px;padding:10px 7px;background:#d9e2ff;color:#592ff1}
.niveau-logo{font-size:clamp(1.55rem,2.4vw,2.5rem);font-weight:900;letter-spacing:-.1em;line-height:1}
.niveau-name{text-align:left;line-height:1.08;font-size:.73rem}
.niveau-name strong{font-size:.8rem}
.niveau-score{margin:19px 0 13px;font-weight:800;color:#592ff1;font-size:clamp(.83rem,1.18vw,1.05rem)}
.niveau p{margin:0;font-size:.91rem;line-height:1.46;color:#49465d}

@media(max-width:1200px){
  .niveaux{grid-template-columns:1fr 1fr}
  .niveau:last-child{grid-column:1/-1}
}
@media(max-width:1050px){
  .dashboard-ui{grid-template-columns:66px minmax(0,1fr)}
  .dash-nav{justify-content:center;padding:10px 0;font-size:15px}
  .dash-nav span{display:none}
  .dash-line{grid-template-columns:100px minmax(0,1fr) 22px}
}
@media(max-width:950px){
  .ese-interactive.is-open .ese-interactive__stage{grid-template-columns:minmax(225px,1fr) minmax(0,1.8fr)}
  .ese-interactive__step{padding-left:20px;padding-right:15px}
  .ese-interactive__step::before{left:20px}
  .ese-interactive__title{font-size:1.62rem}
}
@media(max-width:760px){
  .ese-interactive__panel{min-height:0}
  .niveaux{grid-template-columns:1fr}
  .niveau:last-child{grid-column:auto}
  .audit-row{grid-template-columns:36px 1fr;gap:10px}
  .audit-icon svg{width:27px;height:27px}
  .dashboard-wrap{padding:7px;box-shadow:6px 6px 0 #e8e5ff}
  .dashboard-header{padding:0 7px}
  .dashboard-ui{grid-template-columns:44px minmax(0,1fr)}
  .dashboard-sidebar{padding:9px 3px}
  .dashboard-content{padding:12px 9px}
  .dash-tag{display:none}
  .dash-summary{grid-template-columns:1fr 1fr;gap:6px}
  .dash-score,.dash-metric,.dash-chart{padding:9px}
  .dash-line{grid-template-columns:90px minmax(0,1fr) 18px;gap:5px;font-size:9px}
  .plateforme-features{padding:18px 5px}
}
@media(max-width:750px){
  .dash-top h4{font-size:16px}
  .dash-score strong{font-size:29px}
  .dash-metric b{font-size:11px}
  .dash-chart-head b{font-size:12px}
}
@media(max-width:700px){
  .ese-interactive__stage,.ese-interactive.is-open .ese-interactive__stage{display:block;min-height:0;overflow:visible}
  .ese-interactive__steps{grid-template-columns:1fr;gap:0;border-top:0}
  .ese-interactive__step,.ese-interactive.is-open .ese-interactive__step{display:grid;grid-template-columns:1fr 24px;gap:4px 8px;min-height:0;padding:20px 18px 20px 38px;border:0;border-top:1px solid var(--edge);background:#fff}
  .ese-interactive__step::before,.ese-interactive.is-open .ese-interactive__step::before{top:26px;left:9px;width:17px;height:17px;border-width:3px;box-shadow:none}
  .ese-interactive__title,.ese-interactive.is-open .ese-interactive__title{grid-column:1;max-width:none;margin:6px 0 0;font-size:1.3rem}
  .ese-interactive__excerpt{display:none}
  .ese-interactive__arrow,.ese-interactive.is-open .ese-interactive__arrow{grid-column:2;grid-row:1 / span 2;align-self:center;margin:0;padding:0;font-size:1.5rem}
  .ese-interactive.is-open .ese-interactive__steps{border-right:0}
  .ese-interactive__details{max-width:none;max-height:0;transform:none;transition:max-height .5s ease,opacity .25s ease,visibility .5s}
  .ese-interactive.is-open .ese-interactive__details{max-width:none;max-height:1600px;transform:none}
  .ese-interactive__panel{padding:36px 23px}
}
@media(max-width:420px){
  .dashboard-ui{grid-template-columns:1fr}
  .dashboard-sidebar{display:none}
  .dashboard-content{padding:12px}
  .dash-line{grid-template-columns:78px minmax(0,1fr) 18px}
}

/* ==========================================================================
   9. VUE 5 — LES NIVEAUX DU LABEL
   Échelle de score 0 → 5 (seuil à 2/5) : les logos du label apparaissent
   au fur et à mesure que la barre atteint leur niveau ; puis quatre cartes.
   Survoler une carte (ou un segment de l'échelle) met le palier en évidence.
   ========================================================================== */
#niveaux{--p1:#D9CBFC;--p2:#C9B3FA;--p3:#9D79F6;--p4:var(--violet);padding:clamp(80px,9vw,124px) 0 clamp(72px,8vw,112px);background:#fff}
#niveaux .titre-3{margin-top:0}

/* Échelle */
.echelle{--rh:238px;position:relative;margin-top:clamp(52px,6vw,84px);padding:0 14px}
.echelle__reperes{position:relative;height:var(--rh)}
.echelle__barre{position:relative;height:30px}
.echelle__nums{position:relative;height:30px;margin-top:12px}
.echelle__seg{position:absolute;top:9px;height:12px;left:calc(var(--a) * 20%);width:calc((var(--b) - var(--a)) * 20%);background:var(--pc);transform-origin:left center;transition:opacity .3s ease}
.echelle__seg[data-palier="1"]{border-radius:999px 0 0 999px}
.echelle__seg[data-palier="4"]{border-radius:0 999px 999px 0}
.echelle__pt{position:absolute;z-index:2;top:50%;left:calc(var(--v) * 20%);width:22px;height:22px;translate:-50% -50%;border-radius:50%;background:#fff;border:3px solid var(--pc,var(--p2));box-shadow:0 0 0 4px rgba(255,255,255,.65)}
.echelle__pt::before{content:"";position:absolute;left:50%;bottom:calc(100% + 7px);height:42px;border-left:1.5px dashed rgba(89,47,241,.32)}
.echelle__pt--seuil{width:34px;height:34px;border:0;background:var(--violet);box-shadow:0 0 0 5px #fff,0 8px 20px -6px rgba(89,47,241,.7)}
.echelle__pt--seuil::before{height:calc(var(--rh) - 66px);bottom:calc(100% + 5px);border-left-color:var(--violet)}
.echelle__pt--sous::before{display:none}
.echelle__pt--fin{background:var(--violet);border-color:var(--violet)}
.echelle__nums span{position:absolute;left:calc(var(--v) * 20%);translate:-50% 0;font-size:1.3rem;font-weight:700;color:#5B5A6D}
.echelle__nums .is-seuil{color:var(--violet);font-weight:800}
.echelle__nums .echelle__seuil-mini{display:none}
.echelle__seuil{position:absolute;z-index:3;top:0;left:40%;translate:-50% 0;padding:9px 22px 10px;border-radius:18px;background:var(--violet);color:#fff;font-size:15px;font-weight:800;line-height:1.12;text-align:center;white-space:nowrap;box-shadow:0 14px 28px -14px rgba(89,47,241,.8)}
.echelle__seuil::after{content:"";position:absolute;left:50%;top:100%;width:12px;height:12px;translate:-50% -6px;rotate:45deg;background:var(--violet);border-radius:0 0 3px 0}
.echelle__plage{position:absolute;bottom:20px;left:calc(var(--a) * 20%);width:calc((var(--b) - var(--a)) * 20%);display:flex;align-items:center;justify-content:center;gap:10px;transition:opacity .3s ease}
.echelle__pill{position:relative;z-index:1;padding:9px 20px;border-radius:999px;background:var(--pb);color:var(--violet);font-size:15px;font-weight:700;white-space:nowrap;transition:transform .3s ease,box-shadow .3s ease}
.echelle__plage[data-palier="1"]{--pb:#EFE9FE}
.echelle__badge{display:block;width:min(136px,86%);height:auto;filter:drop-shadow(0 10px 14px rgba(53,28,150,.16));transition:transform .3s ease}
.echelle__fleche{position:relative;flex:1;max-width:120px;height:1.5px;background:#B9A6F5}
.echelle__fleche::after{content:"";position:absolute;top:-4px;width:8px;height:8px;border:solid #B9A6F5;border-width:0 0 1.5px 1.5px}
.echelle__fleche--g::after{left:0;rotate:45deg}
.echelle__fleche--d::after{right:0;rotate:-135deg}

/* Cartes des paliers */
.paliers__cartes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:clamp(40px,4.6vw,64px)}
.palier{position:relative;min-width:0;padding:clamp(24px,2.2vw,32px);border-radius:28px;background:#fff;border:1.5px solid rgba(89,47,241,.07);box-shadow:0 1px 2px rgba(40,27,100,.04),0 24px 46px -30px rgba(53,28,150,.32);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,border-color .35s ease}
.palier__tete{display:flex;align-items:flex-start;gap:16px}
.palier__icone{flex:none;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#F1ECFF;color:var(--violet)}
.palier__icone svg{width:30px;height:30px}
.palier__nom{margin:4px 0 10px;font-size:clamp(1.25rem,1.5vw,1.45rem);font-weight:800;line-height:1.1;letter-spacing:-.035em;color:var(--violet)}
.palier__plage{display:inline-flex;align-items:center;gap:8px;padding:6px 13px;border-radius:999px;background:#F1ECFF;color:var(--violet);font-size:14px;font-weight:700;white-space:nowrap}
.palier__plage::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--pc)}
.palier[data-palier="4"] .palier__plage{background:var(--violet);color:#fff}
.palier[data-palier="4"] .palier__plage::before{background:#fff}
.palier__accroche{margin:24px 0 10px;font-size:1.16rem;font-weight:800;line-height:1.25;letter-spacing:-.02em;color:var(--encre)}
.palier__texte{margin:0;font-size:1rem;line-height:1.58;color:var(--texte-doux)}
.paliers__note{display:flex;align-items:center;gap:24px;margin:clamp(40px,4.5vw,60px) 0 0;font-size:14.5px;line-height:1.45;color:var(--texte-doux);text-align:center}
.paliers__note::before,.paliers__note::after{content:"";flex:1;height:1px;background:rgba(89,47,241,.2)}
[data-palier="1"]{--pc:var(--p1)}
[data-palier="2"]{--pc:var(--p2)}
[data-palier="3"]{--pc:var(--p3)}
[data-palier="4"]{--pc:var(--p4)}

/* Mise en évidence d'un palier */
.paliers[data-actif] .echelle [data-palier]{opacity:.32}
.paliers[data-actif="1"] .echelle [data-palier="1"],.paliers[data-actif="2"] .echelle [data-palier="2"],.paliers[data-actif="3"] .echelle [data-palier="3"],.paliers[data-actif="4"] .echelle [data-palier="4"]{opacity:1}
.paliers[data-actif="1"] .echelle__plage[data-palier="1"] .echelle__pill{transform:translateY(-3px);box-shadow:0 10px 22px -12px rgba(89,47,241,.6)}
.paliers[data-actif="2"] .echelle__plage[data-palier="2"] .echelle__badge,.paliers[data-actif="3"] .echelle__plage[data-palier="3"] .echelle__badge,.paliers[data-actif="4"] .echelle__plage[data-palier="4"] .echelle__badge{transform:translateY(-6px) scale(1.05)}
.palier.is-actif{transform:translateY(-6px);border-color:rgba(89,47,241,.45);box-shadow:0 1px 2px rgba(40,27,100,.04),0 30px 56px -30px rgba(53,28,150,.5)}

/* Apparition : la barre se remplit de 0 à 5, le seuil se pose, les paliers s'affichent */
.echelle__seg[data-palier="1"]{--d:.15s;--t:.8s}
.echelle__seg[data-palier="2"]{--d:.95s;--t:.4s}
.echelle__seg[data-palier="3"]{--d:1.35s;--t:.4s}
.echelle__seg[data-palier="4"]{--d:1.75s;--t:.4s}
.echelle__plage[data-palier="1"]{--d:.55s}
.echelle__plage[data-palier="2"]{--d:1.3s}
.echelle__plage[data-palier="3"]{--d:1.7s}
.echelle__plage[data-palier="4"]{--d:2.1s}
.ese-js .echelle__seg{scale:0 1;transition:scale var(--t) linear var(--d),opacity .3s ease}
.ese-js .echelle__pt{scale:0;transition:scale .5s cubic-bezier(.3,1.7,.5,1) calc(.1s + var(--v) * .4s)}
.ese-js .echelle__pt::before{opacity:0;transition:opacity .5s ease calc(.3s + var(--v) * .4s)}
.ese-js .echelle__nums span{opacity:0;transition:opacity .5s ease calc(.1s + var(--v) * .4s)}
.ese-js .echelle__plage{opacity:0;translate:0 10px;transition:opacity .4s ease var(--d),translate .7s cubic-bezier(.16,1,.3,1) var(--d)}
.ese-js .echelle__badge{scale:.35;rotate:-10deg;transition:scale .75s cubic-bezier(.3,1.6,.5,1) var(--d),rotate .75s cubic-bezier(.3,1.6,.5,1) var(--d),transform .3s ease}
.ese-js .echelle.is-in .echelle__badge{scale:1;rotate:0deg}
.ese-js .echelle__seuil{opacity:0;translate:-50% -18px;transition:opacity .4s ease .95s,translate .8s cubic-bezier(.3,1.6,.5,1) .95s}
.ese-js .echelle.is-in .echelle__seg{scale:1 1}
.ese-js .echelle.is-in .echelle__pt{scale:1}
.ese-js .echelle.is-in .echelle__pt::before,.ese-js .echelle.is-in .echelle__nums span{opacity:1}
.ese-js .echelle.is-in .echelle__plage{opacity:1;translate:0 0}
.ese-js .echelle.is-in .echelle__seuil{opacity:1;translate:-50% 0}
.ese-js .paliers[data-actif] .echelle.is-in .echelle__seg,.ese-js .paliers[data-actif] .echelle.is-in .echelle__plage{transition-delay:0s}

@media(max-width:1120px){
  .paliers__cartes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .echelle__pill{padding:8px 15px;font-size:14px}
  .echelle__pt:not(.echelle__pt--seuil)::before{display:none}
  .paliers__note{display:block}
  .paliers__note::before,.paliers__note::after{display:none}
}
@media(max-width:760px){
  .echelle{--rh:96px;padding:0 12px}
  .echelle__plage{bottom:12px}
  .echelle__plage[data-palier="1"],.echelle__seuil,.echelle__pt::before{display:none}
  .echelle__badge{width:88%;filter:drop-shadow(0 6px 8px rgba(53,28,150,.16))}
  .echelle__nums{height:46px}
  .echelle__nums span{font-size:1.1rem}
  .echelle__nums .echelle__seuil-mini{display:block;top:26px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--violet)}
}
@media(max-width:640px){
  .paliers__cartes{grid-template-columns:1fr}
  .palier{border-radius:24px}
}

/* ==========================================================================
   10. VUE 6 — LA MARQUE EMPLOYEUR « Du site carrière à la bannière »
   Animation automatique : dès que la fenêtre apparaît à l'écran (ou au
   survol de la souris), la page carrière défile seule, le label s'envole et
   atterrit sur la bannière. Bouton « Rejouer ». Sans JS ou en mouvement
   réduit : affichage statique (deux écrans empilés).
   ========================================================================== */
#emploi{--ese-top:84px;--ese-badge:url("../img/badge-carte-remarquable.webp");position:relative;overflow:visible;padding:118px 0 clamp(40px,6vw,96px);background:#fff}
@supports (overflow:clip){#emploi{overflow:clip}}
.employer-header{margin-bottom:clamp(26px,3.4vw,46px)}
@media(max-width:750px){#emploi{padding-top:76px}}

/* Piste + scène */
.ese-scrolly__track{position:relative}
.ese-scrolly__sticky{position:relative;padding:clamp(18px,3vw,40px) 0 clamp(8px,1.5vw,20px)}
.ese-scrolly__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(240px,.34fr) minmax(0,1fr);gap:clamp(30px,5vw,84px);align-items:center}

/* Décor */
.ese-scrolly__bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;-webkit-mask:linear-gradient(transparent,#000 10%,#000 80%,transparent);mask:linear-gradient(transparent,#000 10%,#000 80%,transparent)}
.ese-scrolly__bg::before{content:"";position:absolute;inset:-8% -4%;background:radial-gradient(40% 46% at 72% 46%,rgba(163,94,252,.20),transparent 70%),radial-gradient(30% 36% at 56% 96%,rgba(89,47,241,.10),transparent 70%),radial-gradient(30% 40% at 10% 34%,rgba(217,226,255,.95),transparent 72%)}
.ese-scrolly__bg::after{content:"";position:absolute;inset:0;background:radial-gradient(rgba(89,47,241,.16) 1.3px,transparent 1.6px) 0 0/24px 24px;-webkit-mask:radial-gradient(60% 60% at 70% 50%,#000,transparent 75%);mask:radial-gradient(60% 60% at 70% 50%,#000,transparent 75%)}
.ese-deco{position:absolute;display:block;z-index:1}
.ese-deco--ring{width:clamp(70px,8vw,128px);aspect-ratio:1;border-radius:50%;border:clamp(9px,1vw,15px) solid rgba(163,94,252,.17);right:3%;top:7%;animation:ese-float 9s ease-in-out infinite}
.ese-deco--dot{width:16px;height:16px;border-radius:50%;background:#FFC94D;left:34%;top:11%;animation:ese-float 7s ease-in-out -2s infinite}
.ese-deco--pill{width:74px;height:22px;border-radius:22px;background:rgba(89,47,241,.12);left:4%;bottom:13%;rotate:-24deg;animation:ese-float 8s ease-in-out -4s infinite}
.ese-deco--star{width:26px;height:26px;fill:#A35EFC;right:24%;bottom:7%;animation:ese-spin 12s linear infinite}
.ese-deco--squiggle{width:112px;height:28px;fill:none;stroke:#C9D5FF;stroke-width:6;stroke-linecap:round;left:31%;bottom:5%}
@keyframes ese-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes ese-spin{to{transform:rotate(360deg)}}

/* Étapes */
.ese-msteps{position:relative;list-style:none;margin:0;padding:0 0 0 46px;display:grid;gap:clamp(24px,4.6vh,48px);align-self:center}
.ese-msteps__rail{position:absolute;left:13px;top:14px;bottom:14px;width:3px;border-radius:3px;background:#ECE8FB;list-style:none}
.ese-msteps__rail i{position:absolute;left:0;top:0;width:100%;height:calc(var(--p,1) * 100%);border-radius:inherit;background:linear-gradient(180deg,#592FF1,#A35EFC)}
.ese-mstep{position:relative;transition:opacity .45s ease,transform .45s ease}
.ese-mstep__dot{position:absolute;left:-46px;top:-2px;width:29px;height:29px;box-sizing:border-box;border-radius:50%;background:#fff;border:3px solid #592FF1;box-shadow:0 0 0 7px rgba(89,47,241,.10);transition:border-color .35s,box-shadow .35s}
.ese-mstep__dot::after{content:"";position:absolute;inset:5px;border-radius:50%;background:#592FF1;transition:background .35s,transform .35s}
.ese-mstep__kicker{display:block;padding-top:6px;font-size:12px;line-height:1;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--violet)}
.ese-mstep__title{display:block;margin:12px 0 10px;font-size:clamp(1.55rem,2.3vw,2.3rem);line-height:1.04;letter-spacing:-.045em;font-weight:800;color:var(--encre)}
.ese-mstep__text{margin:0;max-width:30ch;font-size:clamp(1rem,1.15vw,1.1rem);line-height:1.55;color:var(--texte)}
.is-animated .ese-mstep{opacity:.36}
.is-animated .ese-mstep.is-active{opacity:1}
.is-animated .ese-mstep .ese-mstep__dot{border-color:#DCD4FB;box-shadow:none}
.is-animated .ese-mstep .ese-mstep__dot::after{background:#DCD4FB;transform:scale(.7)}
.is-animated .ese-mstep.is-active .ese-mstep__dot{border-color:#592FF1;box-shadow:0 0 0 7px rgba(89,47,241,.12)}
.is-animated .ese-mstep.is-active .ese-mstep__dot::after{background:#592FF1;transform:none}

/* Fenêtre de navigateur */
.ese-stage{position:relative;margin:0;min-width:0;width:100%;justify-self:center}
.is-animated .ese-stage{max-width:calc((100vh - var(--ese-top) - 150px) * 1.7768)}
@supports (height:100svh){.is-animated .ese-stage{max-width:calc((100svh - var(--ese-top) - 150px) * 1.7768)}}
.ese-win{--bar:40px;position:relative;border-radius:20px;background:#fff;box-shadow:0 0 0 1px rgba(89,47,241,.10),0 34px 70px -30px rgba(53,28,150,.42),0 14px 30px -18px rgba(53,28,150,.24)}
.ese-win__bar{position:relative;z-index:2;height:var(--bar);display:flex;align-items:center;gap:12px;padding:0 16px;background:#fff;border-bottom:1px solid #EEEAFB;border-radius:20px 20px 0 0}
.ese-win__dots{display:flex;gap:7px;flex:0 0 60px}
.ese-win__dots i{width:11px;height:11px;border-radius:50%;background:#FF8FAB}
.ese-win__dots i:nth-child(2){background:#FFCE5C}
.ese-win__dots i:nth-child(3){background:#6EDCB0}
.ese-win__url{flex:1 1 auto;min-width:0;max-width:380px;margin:0 auto;height:26px;padding:0 14px;box-sizing:border-box;border-radius:999px;background:#F3F1FC;color:#5B5A6D;font:500 12.5px/1 'Outfit',system-ui,sans-serif;display:flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;overflow:hidden}
.ese-win__url svg{width:12px;height:12px;flex:none;color:#592FF1}
.ese-win__spacer{flex:0 0 60px}
.ese-win__view{position:relative;overflow:hidden;border-radius:0 0 20px 20px;background:#fff;isolation:isolate}
.is-animated .ese-win__view{aspect-ratio:1672/941}
.ese-win__page{position:relative}
.is-animated .ese-win__page{will-change:transform}
.ese-win__scroll{position:absolute;z-index:2;top:6px;right:5px;bottom:6px;width:6px;border-radius:6px;background:rgba(16,17,31,.06);opacity:0;transition:opacity .3s}
.ese-win__scroll i{position:absolute;left:0;right:0;top:0;height:50%;border-radius:6px;background:rgba(89,47,241,.5)}
.is-animated.is-started .ese-win__scroll{opacity:1}

/* Écrans (images nettoyées + textes en HTML) */
.ese-shot{position:relative;container-type:inline-size;aspect-ratio:1672/941;overflow:hidden;--u:calc(100cqw / 1672)}
.ese-shot__bg{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover}
.ese-ov{position:absolute;display:block;margin:0;font-family:'Figtree','Outfit',system-ui,sans-serif;font-style:normal;white-space:nowrap}
.ese-ov--logo{left:calc(71 * var(--u));top:calc(27 * var(--u));height:calc(38 * var(--u));display:flex;align-items:center;gap:calc(13 * var(--u));font-size:calc(24 * var(--u));line-height:1;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#1C1940}
.ese-ov__mark{display:grid;place-items:center;width:calc(38 * var(--u));height:calc(38 * var(--u));border-radius:calc(11 * var(--u));background:linear-gradient(135deg,#8A5CFF,#592FF1)}
.ese-ov__mark svg{width:56%;height:56%;fill:#fff}
.ese-ov--jobtxt{left:calc(72 * var(--u));top:calc(370.3 * var(--u));font-size:calc(21.1 * var(--u));line-height:calc(28.7 * var(--u));font-weight:400;color:#11122E}
.ese-ov--cardbadge,.ese-ov--slot{background:var(--ese-badge) center/100% 100% no-repeat}
.ese-ov--cardbadge{left:calc(1168 * var(--u));top:calc(359.8 * var(--u));width:calc(182 * var(--u));height:calc(190.3 * var(--u))}
.ese-ov--title{left:calc(90 * var(--u));top:calc(210 * var(--u));font-size:calc(90 * var(--u));line-height:calc(96 * var(--u));font-weight:900;letter-spacing:-.05em;color:#150B52}
.ese-ov__l1,.ese-ov__l2{display:block}
.ese-ov__burst{display:inline-block;width:1.05em;height:1.1em;margin:-.08em 0 0 .42em;vertical-align:top;overflow:visible;fill:none;stroke:#A98BF7;stroke-width:13;stroke-linecap:round}
.ese-ov__burst path:nth-child(2){stroke:#B9A0F8}
.ese-ov__burst path:nth-child(3){stroke:#C8B5FA}
.ese-ov--title em{position:relative;display:inline-block;font-style:normal;color:#5A1DF2;background:linear-gradient(90deg,#5316F0,#6C2BF6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ese-ov__wave{position:absolute;left:.02em;width:calc(100% - .04em);bottom:-.15em;height:.2em;overflow:visible;fill:none;stroke:#A35EFC;stroke-width:5.5;stroke-linecap:round}
.ese-ov--para{left:calc(93 * var(--u));top:calc(544 * var(--u));font-size:calc(27 * var(--u));line-height:calc(34 * var(--u));letter-spacing:.028em;font-weight:400;color:#4C4296}
.ese-ov--foot{left:calc(94 * var(--u));top:calc(768.7 * var(--u));font-size:calc(19.5 * var(--u));line-height:calc(28 * var(--u));letter-spacing:.028em;font-weight:400;color:#8079C4}
.ese-ov--slot{left:calc(1061 * var(--u));top:calc(226 * var(--u));width:calc(484 * var(--u));height:calc(506 * var(--u))}

/* Mode animé : états des éléments */
.is-animated .ese-ov--slot{visibility:hidden}
.is-animated .ese-ov--cardbadge{opacity:0;transform:scale(.6);transition:opacity .35s ease,transform .5s cubic-bezier(.3,1.6,.5,1)}
.is-animated.is-lifted .ese-ov--cardbadge{opacity:1;transform:none;transition-delay:.12s}
.is-animated .ese-ov__l1,.is-animated .ese-ov__l2,.is-animated .ese-ov--para,.is-animated .ese-ov--foot{opacity:0;transform:translateY(calc(30 * var(--u)));transition:opacity .45s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.is-animated.is-banner .ese-ov__l1,.is-animated.is-banner .ese-ov__l2,.is-animated.is-banner .ese-ov--para,.is-animated.is-banner .ese-ov--foot{opacity:1;transform:none}
.is-animated.is-banner .ese-ov__l2{transition-delay:.08s}
.is-animated.is-banner .ese-ov--para{transition-delay:.16s}
.is-animated.is-banner .ese-ov--foot{transition-delay:.24s}
.is-animated .ese-ov__burst path,.is-animated .ese-ov__wave path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .5s cubic-bezier(.4,0,.2,1)}
.is-animated.is-landed .ese-ov__burst path,.is-animated.is-landed .ese-ov__wave path{stroke-dashoffset:0}
.is-animated.is-landed .ese-ov__burst path:nth-child(1){transition-delay:.15s}
.is-animated.is-landed .ese-ov__burst path:nth-child(2){transition-delay:.25s}
.is-animated.is-landed .ese-ov__burst path:nth-child(3){transition-delay:.35s}
.is-animated.is-landed .ese-ov__wave path{transition-duration:.8s;transition-delay:.3s}

/* Le label qui s'envole */
.ese-win__fx{position:absolute;left:0;right:0;bottom:0;top:var(--bar);z-index:3;pointer-events:none;display:none}
.is-animated .ese-win__fx{display:block}
.ese-fly{position:absolute;left:0;top:0;z-index:2;transform-origin:50% 50%;will-change:transform;--lift:0}
.ese-fly__inner{position:absolute;inset:0;transform-origin:50% 88%}
.ese-fly__img{position:absolute;inset:0;background:var(--ese-badge) center/100% 100% no-repeat;filter:drop-shadow(0 calc(3px + var(--lift) * 26px) calc(6px + var(--lift) * 22px) rgba(55,25,160,calc(.16 + var(--lift) * .16)))}
.ese-fly__shine{position:absolute;inset:0;opacity:0;background:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.95) 50%,transparent 58%) 100% 0/300% 100% no-repeat;-webkit-mask:var(--ese-badge) center/100% 100% no-repeat;mask:var(--ese-badge) center/100% 100% no-repeat}
.ese-fly__ring{position:absolute;left:50%;top:50%;width:118%;aspect-ratio:1;margin:-59% 0 0 -59%;box-sizing:border-box;border-radius:50%;border:3px solid rgba(163,94,252,.6);opacity:0}
.ese-fly__spark{position:absolute;width:12%;aspect-ratio:1;fill:#FFC94D;opacity:0;transform:scale(0)}
.ese-fly__spark--1{left:-9%;top:-5%;width:15%}
.ese-fly__spark--2{right:-11%;top:16%;width:10%;fill:#A35EFC}
.ese-fly__spark--3{left:-13%;bottom:10%;width:9%;fill:#A35EFC}
.ese-fly__spark--4{right:-4%;bottom:-7%;width:13%}
.is-animated:not(.is-lifted) .ese-fly__inner{animation:ese-wiggle 3.2s ease-in-out .8s infinite}
.is-animated:not(.is-lifted) .ese-fly__ring{animation:ese-ripple 3.2s ease-out 1.1s infinite}
.is-landed .ese-fly__inner{animation:ese-land .9s cubic-bezier(.2,.9,.25,1) both}
.is-landed .ese-fly__ring{animation:ese-ripple 1.1s ease-out .05s both}
.is-landed .ese-fly__ring--2{animation-delay:.28s}
.is-landed .ese-fly__shine{animation:ese-shine 1.2s ease-out .3s both}
.is-landed .ese-fly__spark{animation:ese-twinkle 2.6s ease-in-out .4s infinite}
.is-landed .ese-fly__spark--2{animation-delay:.9s}
.is-landed .ese-fly__spark--3{animation-delay:1.4s}
.is-landed .ese-fly__spark--4{animation-delay:.6s}
@keyframes ese-wiggle{0%,62%,100%{transform:none}68%{transform:rotate(-7deg) scale(1.05)}74%{transform:rotate(6deg) scale(1.05)}80%{transform:rotate(-4deg)}86%{transform:rotate(2deg)}}
@keyframes ese-ripple{0%{opacity:.9;transform:scale(.55)}100%{opacity:0;transform:scale(1.3)}}
@keyframes ese-land{0%{transform:scale(1)}16%{transform:scale(1.12,.88)}36%{transform:scale(.94,1.07)}56%{transform:scale(1.03,.98)}76%{transform:scale(.99,1.01)}100%{transform:none}}
@keyframes ese-shine{0%{opacity:1;background-position:100% 0}100%{opacity:1;background-position:0 0}}
@keyframes ese-twinkle{0%,100%{opacity:0;transform:scale(0) rotate(0)}20%,45%{opacity:1;transform:scale(1) rotate(45deg)}70%{opacity:0;transform:scale(.2) rotate(90deg)}}

/* Confettis (créés par le script à l'atterrissage) */
.ese-confetti{position:absolute;z-index:1;display:block;width:9px;height:14px;margin:-7px 0 0 -4.5px;border-radius:2px;will-change:transform,opacity}
.ese-confetti--1{width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%}
.ese-confetti--2{width:5px;height:18px;margin:-9px 0 0 -2.5px;border-radius:3px}

/* Toast + bouton Rejouer */
.ese-toast{display:none}
.is-animated .ese-toast{position:absolute;z-index:6;right:-22px;top:calc(var(--bar, 40px) + 18px);display:flex;align-items:center;gap:12px;padding:11px 18px 11px 11px;border-radius:16px;background:#fff;box-shadow:0 0 0 1px rgba(89,47,241,.10),0 18px 40px -16px rgba(53,28,150,.40);opacity:0;transform:translateY(-12px) scale(.9);transform-origin:100% 0;transition:opacity .3s ease,transform .45s cubic-bezier(.3,1.5,.5,1);pointer-events:none}
.is-animated.is-landed .ese-toast{opacity:1;transform:none;transition-delay:.45s}
.ese-toast__icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:12px;background:linear-gradient(135deg,#FFE08A,#FFC94D);color:#5A3A00}
.ese-toast__icon svg{width:21px;height:21px}
.ese-toast__txt{display:grid;gap:3px;font-family:'Outfit',system-ui,sans-serif;line-height:1.15;white-space:nowrap}
.ese-toast__txt strong{font-size:15px;font-weight:800;color:#10111F;letter-spacing:-.01em}
.ese-toast__txt span{font-size:13px;color:#5B5A6D}
.ese-stage__foot{display:none}
.is-animated .ese-stage__foot{display:flex;justify-content:center;margin-top:22px}
.ese-replay{display:inline-flex;align-items:center;gap:9px;margin:0;padding:10px 18px 10px 14px;border:0;border-radius:999px;background:#fff;box-shadow:0 0 0 1px rgba(89,47,241,.18),0 12px 26px -16px rgba(53,28,150,.5);font:700 13.5px/1 'Outfit',system-ui,sans-serif;letter-spacing:.01em;color:#592FF1;cursor:pointer;transition:opacity .35s ease,transform .35s ease,box-shadow .2s ease,background .2s ease}
.ese-replay svg{width:17px;height:17px;flex:none;transition:transform .5s cubic-bezier(.3,1.4,.5,1)}
.ese-replay:hover{background:#F6F3FF;box-shadow:0 0 0 1px rgba(89,47,241,.32),0 14px 30px -16px rgba(53,28,150,.6)}
.ese-replay:hover svg{transform:rotate(-200deg)}
.ese-replay:focus-visible{outline:3px solid rgba(89,47,241,.38);outline-offset:3px}
.is-playing .ese-replay{opacity:0;transform:translateY(6px);pointer-events:none}

@media(max-width:1100px){
  .ese-scrolly__grid{grid-template-columns:minmax(220px,.36fr) minmax(0,1fr);gap:34px}
  .ese-mstep__text{font-size:.98rem}
}
@media(max-width:760px){
  .ese-scrolly__sticky{padding-top:10px}
  .ese-scrolly__grid{grid-template-columns:1fr;gap:20px;align-content:center}
  .ese-msteps{padding-left:0;gap:22px}
  .ese-msteps__rail,.ese-mstep__dot{display:none}
  .ese-mstep__title{margin:9px 0 7px;font-size:1.5rem}
  .ese-mstep__text{max-width:none;font-size:.97rem}
  .is-animated .ese-msteps{display:grid;gap:0}
  .is-animated .ese-mstep{grid-area:1/1;opacity:0;transform:translateY(10px)}
  .is-animated .ese-mstep.is-active{opacity:1;transform:none}
  .is-animated .ese-stage{max-width:none}
  .ese-win{--bar:30px;border-radius:14px}
  .ese-win__bar{gap:8px;padding:0 10px;border-radius:14px 14px 0 0}
  .ese-win__dots{flex-basis:38px;gap:5px}
  .ese-win__dots i{width:8px;height:8px}
  .ese-win__url{height:20px;padding:0 10px;font-size:10.5px;gap:5px}
  .ese-win__url svg{width:10px;height:10px}
  .ese-win__spacer{flex-basis:12px}
  .ese-win__view{border-radius:0 0 14px 14px}
  .ese-win__scroll{width:4px;right:3px}
  .is-animated .ese-toast{top:-20px;right:auto;left:50%;translate:-50% 0;transform-origin:50% 0;padding:9px 15px 9px 9px;gap:10px}
  .ese-toast__icon{width:32px;height:32px;border-radius:10px}
  .ese-toast__txt strong{font-size:14px}
  .ese-toast__txt span{font-size:12px}
  .is-animated .ese-stage__foot{margin-top:18px}
  .ese-deco--ring{top:3%}
  .ese-deco--dot{left:auto;right:30%;top:4%}
  .ese-deco--squiggle,.ese-deco--pill{display:none}
}

/* ==========================================================================
   11. VUE 7 — UNE DÉMARCHE COLLECTIVE
   ========================================================================== */
#collectif{padding:0 0 clamp(80px,9vw,130px);background:#fff}
#collectif .titre-3{max-width:1120px;margin:clamp(6px,1.4vw,18px) 0 29px}
.collectif__body{margin-top:clamp(40px,5vw,72px);padding-top:clamp(34px,4vw,54px);border-top:1px solid #E7E3F7}
.collectif__liste{max-width:960px}
.collectif__intro{margin:0 0 6px;font-size:19px;font-weight:800;color:var(--violet)}
.collectif__items{list-style:none;margin:0;padding:0}
.collectif__items li{display:grid;grid-template-columns:50px 1fr;gap:18px;padding:15px 0;border-bottom:1px solid #e5e1f7}
.collectif__items li span{padding-top:3px;font-size:14px;font-weight:800;color:var(--violet)}
.collectif__items p{margin:0;font-size:clamp(1.06rem,1.35vw,1.24rem);line-height:1.45;font-weight:600;color:#38334e}
@media(max-width:750px){
  .collectif__items li{grid-template-columns:34px 1fr;gap:8px}
}

/* ==========================================================================
   12. VUE 8 — LE RÉFÉRENTIEL (cycle animé + frise)
   ========================================================================== */
#referentiel{padding:116px 0 122px;background:#f9f9ff}
#referentiel .titre-3{margin:24px 0 29px}
@media(max-width:750px){#referentiel{padding:77px 0 87px}}

/* Cycle en trois étapes */
.ese-cycle-view{margin-top:clamp(20px,2.6vw,40px)}
.collectif__para{margin-top:18px}
.collectif__suite{margin-top:clamp(56px,6.5vw,96px)}
.ese-cycle-wrap{container-type:inline-size;container-name:ese-cycle;width:100%;max-width:1280px;margin:0 auto}
.ese-cycle,.ese-cycle *{box-sizing:border-box}
.ese-cycle{--c-violet:var(--violet);--c-ink:var(--encre);--c-card-text:#5E5A70;--ese-card-radius:24px;--ese-gap:16px;--ese-ring:clamp(250px,34cqi,440px);--ese-card-w:min(430px,calc((100cqi - var(--ese-ring) - 2 * var(--ese-gap)) / 2));--ese-card-h:0px;--ese-ring-h:calc(var(--ese-ring) * 250 / 248);--ese-drop:max(0px,calc(var(--ese-card-h) / 2 - .1 * var(--ese-ring-h)));display:grid;gap:var(--ese-gap);color:var(--c-ink)}
.ese-cycle__ring{width:min(100%,430px);margin:0 auto 8px}
.ese-cycle__svg{display:block;width:100%;height:auto;overflow:visible}
.ese-cycle__arrows{fill:none;stroke:var(--c-violet);stroke-width:13;stroke-linecap:round;stroke-linejoin:round}
.ese-cycle__node{fill:var(--c-violet)}
.ese-cycle__num{fill:#fff;font-family:'Outfit',system-ui,sans-serif;font-size:40px;font-weight:300}
.ese-cycle__logo-img{pointer-events:none}
.ese-cycle__track{fill:none;stroke:var(--c-violet);stroke-opacity:.22;stroke-width:1.4;stroke-dasharray:1.2 5;stroke-linecap:round}
.ese-cycle__core,.ese-cycle__core-in,.ese-cycle__pt{transform-box:fill-box;transform-origin:center}
.ese-cycle__halo{fill:none;stroke:var(--c-violet);stroke-width:2.2;opacity:0;transform-box:fill-box;transform-origin:center}
.ese-cycle__comet{opacity:0;pointer-events:none;transition:opacity .8s ease}
.ese-cycle__comet-dot{fill:#fff}
.ese-step{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:14px;align-items:start;align-content:center;min-height:var(--ese-card-h);padding:16px 18px;text-align:left;border-radius:var(--ese-card-radius);background:linear-gradient(165deg,#F5F8FF 0%,#E3EAFF 100%);border:1px solid rgba(89,47,241,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 24px 46px -26px rgba(53,40,170,.38),0 6px 14px -10px rgba(53,40,170,.18)}
.ese-step__num{grid-row:1 / span 2;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--c-violet);color:#fff;font-size:1.25rem;font-weight:300;line-height:1;box-shadow:0 0 0 4px rgba(255,255,255,.85),0 6px 14px -4px rgba(89,47,241,.55)}
.ese-step__title{margin:0 0 5px;font-size:1.08rem;font-weight:700;line-height:1.2;letter-spacing:-.01em;text-wrap:balance}
.ese-step__text{margin:0;font-size:.97rem;line-height:1.5;color:var(--c-card-text);text-wrap:pretty}
.ese-step:not(:last-child)::after{content:"";position:absolute;left:34.5px;top:100%;width:3px;height:14px;background:var(--c-violet)}
@container ese-cycle (min-width:760px){
  .ese-cycle{grid-template-columns:var(--ese-card-w) var(--ese-ring) var(--ese-card-w);grid-template-areas:"s1 s1 s1" "s3 ring s2";justify-content:center;column-gap:var(--ese-gap);row-gap:0;padding-top:13px;padding-bottom:var(--ese-drop)}
  .ese-cycle__ring{grid-area:ring;width:100%;margin:0}
  .ese-step{display:flex;flex-direction:column;align-items:center;justify-content:center;width:var(--ese-card-w);padding:24px 18px 16px;text-align:center}
  .ese-step::after{display:none}
  .ese-step__num{position:absolute;top:-13px;left:50%;transform:translateX(-50%);width:28px;height:28px;font-size:1rem}
  .ese-step__title{font-size:clamp(1rem,2.35cqi,1.18rem);margin-bottom:6px}
  .ese-step__text{font-size:clamp(.85rem,1.9cqi,.98rem)}
  .ese-step--1{grid-area:s1;justify-self:center;margin-bottom:6px}
  .ese-step--2{grid-area:s2;align-self:end;transform:translateY(var(--ese-drop))}
  .ese-step--3{grid-area:s3;align-self:end;transform:translateY(var(--ese-drop))}
}
/* séquence d'apparition : pastille → bulle → flèche → pastille suivante… */
.ese-cycle__core{--d:.05s}
.ese-cycle__pt--1{--d:.3s}  .ese-step--1{--d:.45s}
.ese-cycle__arc--1{--d:.8s} .ese-cycle__head--1{--d:1.48s}
.ese-cycle__pt--2{--d:1.7s} .ese-step--2{--d:1.85s}
.ese-cycle__arc--2{--d:2.2s} .ese-cycle__head--2{--d:2.88s}
.ese-cycle__pt--3{--d:3.1s} .ese-step--3{--d:3.25s}
.ese-cycle__arc--3{--d:3.6s} .ese-cycle__head--3{--d:4.28s}
.ese-js .ese-cycle__track{opacity:0;transition:opacity 1.2s ease}
.ese-js .ese-cycle__core{opacity:0;transform:scale(.72);transition:opacity .7s ease var(--d),transform 1.1s cubic-bezier(.2,1.3,.4,1) var(--d)}
.ese-js .ese-cycle__arc,.ese-js .ese-cycle__head{stroke-dasharray:1;stroke-dashoffset:1;opacity:0}
.ese-js .ese-cycle__pt{opacity:0;transform:scale(.25)}
.ese-js .ese-step{opacity:0;translate:0 24px;filter:blur(8px)}
.ese-js .ese-step__num{scale:.4}
.ese-js .ese-cycle.is-in .ese-cycle__track{opacity:1}
.ese-js .ese-cycle.is-in .ese-cycle__core{opacity:1;transform:none}
.ese-js .ese-cycle.is-in .ese-cycle__arc{stroke-dashoffset:0;opacity:1;transition:stroke-dashoffset .72s cubic-bezier(.6,0,.3,1) var(--d),opacity 0s linear var(--d)}
.ese-js .ese-cycle.is-in .ese-cycle__head{stroke-dashoffset:0;opacity:1;transition:stroke-dashoffset .3s cubic-bezier(.3,0,.2,1) var(--d),opacity 0s linear var(--d)}
.ese-js .ese-cycle.is-in .ese-cycle__pt{opacity:1;transform:none;transition:opacity .25s ease var(--d),transform .75s cubic-bezier(.3,1.7,.5,1) var(--d)}
.ese-js .ese-cycle.is-in .ese-cycle__halo{animation:ese-halo 1.3s cubic-bezier(.2,.7,.3,1) var(--d) both}
.ese-js .ese-cycle.is-in .ese-step{opacity:1;translate:0 0;filter:none;transition:opacity .7s ease var(--d),translate 1s cubic-bezier(.16,1,.3,1) var(--d),filter .7s ease var(--d)}
.ese-js .ese-cycle.is-in .ese-step__num{scale:1;transition:scale .6s cubic-bezier(.3,1.7,.5,1) calc(var(--d) + .15s)}
.ese-js .ese-cycle.is-loop .ese-cycle__comet{opacity:1}
.ese-js .ese-cycle.is-loop .ese-cycle__core-in{animation:ese-core 5.5s ease-in-out infinite}
@keyframes ese-halo{0%{opacity:0;transform:scale(.9)}12%{opacity:.6}100%{opacity:0;transform:scale(1.85)}}
@keyframes ese-core{0%,100%{transform:none}50%{transform:scale(1.045)}}

/* Frise « Le référentiel dans le temps », mise en avant (halo + reflet) */
.ese-spot{position:relative;isolation:isolate;max-width:1140px;margin:clamp(40px,5vw,72px) auto 0}
.ese-spot__glow{position:absolute;z-index:-1;left:50%;top:38%;width:min(1180px,118%);height:150%;translate:-50% -50%;pointer-events:none;background:radial-gradient(48% 46% at 50% 50%,rgba(163,94,252,.24) 0%,rgba(89,47,241,.10) 42%,transparent 72%);filter:blur(14px)}
.ese-spot__card{position:relative;z-index:2}
.years{position:relative;isolation:isolate;overflow:hidden;padding:24px 28px 20px;color:#231d45;background:linear-gradient(160deg,#FFFFFF 0%,#F6F3FF 55%,#EDE7FF 100%);border:1.5px solid rgba(89,47,241,.62);border-radius:38px;box-shadow:inset 0 1px 0 #fff,0 60px 110px -60px rgba(53,28,150,.55),0 22px 44px -30px rgba(89,47,241,.40)}
/* reflet lumineux qui traverse le cadre à son arrivée */
.years::after{content:"";position:absolute;top:-10%;bottom:-10%;left:0;width:42%;z-index:3;pointer-events:none;opacity:0;translate:-130% 0;rotate:8deg;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8) 50%,transparent)}
.years-title{display:flex;align-items:center;gap:10px;margin-bottom:0;padding-bottom:18px;border-bottom:1px solid rgba(89,47,241,.18);font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--violet)}
.years-title::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 5px rgba(89,47,241,.14)}
.years-track{display:grid;grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr) 70px minmax(0,1fr);align-items:stretch}
.year-item{position:relative;padding:26px 22px 18px}
.year-step{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;padding:6px 12px;border-radius:999px;background:rgba(89,47,241,.08);color:var(--violet);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.year-number{margin-bottom:12px;font-size:clamp(1.9rem,2.8vw,2.8rem);font-weight:800;letter-spacing:-.06em;line-height:1;color:var(--violet)}
.year-item h3{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:1.18rem;line-height:1.18;color:#231d45}
.year-item p{max-width:34ch;margin:0;font-size:1rem;line-height:1.58;color:#5E5A70}
.year-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:rgba(89,47,241,.12);color:var(--violet)}
.year-badge svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.year-arrow{position:relative;display:flex;align-items:center;justify-content:center}
.year-arrow::before{content:'';position:absolute;left:0;right:0;top:50%;height:2px;background:linear-gradient(90deg,rgba(89,47,241,.22),rgba(89,47,241,.55));transform:translateY(-50%)}
.year-arrow span{position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;border:2px solid rgba(89,47,241,.22);color:var(--violet);font-size:20px;font-weight:700;box-shadow:0 10px 22px rgba(89,47,241,.12)}
/* le reflet au sol */
.ese-spot__mirror{position:relative;z-index:1;margin-top:12px}
.ese-spot__floor{position:absolute;left:3%;right:3%;top:-7px;height:1px;background:linear-gradient(90deg,transparent,rgba(89,47,241,.30) 22%,rgba(163,94,252,.55) 50%,rgba(89,47,241,.30) 78%,transparent)}
.ese-spot__floor::after{content:"";position:absolute;left:6%;right:6%;top:-22px;height:34px;background:radial-gradient(50% 50% at 50% 50%,rgba(53,28,150,.20),transparent 72%);filter:blur(4px)}
.ese-spot__reflect{position:relative;height:clamp(84px,12vw,176px);overflow:hidden;pointer-events:none;opacity:.5;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.25) 38%,transparent 82%);mask-image:linear-gradient(180deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.25) 38%,transparent 82%)}
.ese-spot__reflect>.years{position:absolute;left:0;right:0;top:0;margin:0;transform:scaleY(-1);filter:blur(.7px);box-shadow:none}
/* séquence d'apparition */
.ese-spot .years-title{--rd:.35s}
.ese-spot .years-track>:nth-child(1){--rd:.5s}
.ese-spot .years-track>:nth-child(2){--rd:.82s}
.ese-spot .years-track>:nth-child(3){--rd:.9s}
.ese-spot .years-track>:nth-child(4){--rd:1.22s}
.ese-spot .years-track>:nth-child(5){--rd:1.3s}
.ese-js .ese-spot__glow{opacity:0;scale:.8;transition:opacity 1.4s ease .1s,scale 1.6s cubic-bezier(.16,1,.3,1) .1s}
.ese-js .ese-spot__card{opacity:0;translate:0 -46px;filter:blur(10px);transition:opacity .9s ease,translate 1.3s cubic-bezier(.16,1,.3,1),filter .9s ease}
.ese-js .ese-spot__reflect{opacity:0;translate:0 46px;transition:opacity 1.2s ease .15s,translate 1.3s cubic-bezier(.16,1,.3,1)}
.ese-js .ese-spot__floor{opacity:0;scale:.3 1;transition:opacity 1s ease .5s,scale 1.3s cubic-bezier(.16,1,.3,1) .45s}
.ese-js .ese-spot .years-title,.ese-js .ese-spot .year-item{opacity:0;translate:0 16px;transition:opacity .7s ease var(--rd),translate .9s cubic-bezier(.16,1,.3,1) var(--rd)}
.ese-js .ese-spot .year-arrow span{opacity:0;scale:.4;transition:opacity .4s ease var(--rd),scale .6s cubic-bezier(.3,1.7,.5,1) var(--rd)}
.ese-js .ese-spot .year-arrow::before{clip-path:inset(0 100% 0 0);transition:clip-path .6s cubic-bezier(.6,0,.3,1) calc(var(--rd) - .2s)}
.ese-js .ese-spot .years-track::before{scale:1 0;transform-origin:top;transition:scale 1.5s cubic-bezier(.6,0,.3,1) .5s}
.ese-js .ese-spot.is-in .ese-spot__glow{opacity:1;scale:1;animation:ese-breathe 7s ease-in-out 1.8s infinite}
.ese-js .ese-spot.is-in .ese-spot__card{opacity:1;translate:0 0;filter:none}
.ese-js .ese-spot.is-in .ese-spot__reflect{opacity:.5;translate:0 0}
.ese-js .ese-spot.is-in .ese-spot__floor{opacity:1;scale:1}
.ese-js .ese-spot.is-in .years-title,.ese-js .ese-spot.is-in .year-item{opacity:1;translate:0 0}
.ese-js .ese-spot.is-in .year-arrow span{opacity:1;scale:1}
.ese-js .ese-spot.is-in .year-arrow::before{clip-path:inset(0)}
.ese-js .ese-spot.is-in .years-track::before{scale:1}
.ese-js .ese-spot.is-in .years::after{animation:ese-sheen 1.7s cubic-bezier(.45,0,.2,1) 1.55s both}
@keyframes ese-sheen{0%{opacity:0;translate:-130% 0}12%{opacity:1}88%{opacity:1}100%{opacity:0;translate:300% 0}}
@keyframes ese-breathe{0%,100%{scale:1;opacity:1}50%{scale:1.05;opacity:.82}}

@media(max-width:900px){
  .years{padding:22px 20px 18px}
  .years-track{grid-template-columns:1fr}
  .year-item{padding:20px 8px 18px}
  .year-arrow{min-height:54px}
  .year-arrow::before{left:50%;right:auto;top:0;bottom:0;width:2px;height:auto;background:linear-gradient(180deg,rgba(89,47,241,.22),rgba(89,47,241,.55));transform:translateX(-50%)}
  .year-arrow span{transform:rotate(90deg)}
}
@media(max-width:760px){
  .years{border-radius:30px}
  .ese-spot{margin-top:84px}
  .ese-spot__glow{top:30%;height:110%}
}
/* Frise mobile : rail continu, jalons clairs et contenu en retrait */
@media(max-width:760px){
  .years{padding:24px 19px 26px}
  .years-title{padding:0 0 20px;margin:0 0 18px}
  .years-track{position:relative;display:flex;flex-direction:column;gap:0;padding-left:37px}
  .years-track::before{content:"";position:absolute;left:12px;top:32px;bottom:45px;width:2px;background:linear-gradient(180deg,#592ff1 0%,#a35efc 65%,#592ff1 100%)}
  .year-item{min-width:0;padding:6px 0 26px}
  .year-item:last-child{padding-bottom:0}
  .year-item::before{content:"";position:absolute;left:-36px;top:12px;width:20px;height:20px;border:4px solid #592ff1;background:#f5f2ff;border-radius:50%;box-shadow:0 0 0 5px #eeeafe;z-index:1}
  .year-item .year-step{margin-bottom:11px}
  .year-number{font-size:2.35rem}
  .year-item h3{font-size:1.1rem;line-height:1.25}
  .year-item p{font-size:.98rem;line-height:1.55}
  .year-arrow{height:23px;min-height:23px;margin:0}
  .year-arrow::before,.year-arrow span{display:none}
}
@media(max-width:420px){
  .years{padding:22px 15px}
  .years-track{padding-left:34px}
  .year-item::before{left:-33px}
}

/* ==========================================================================
   13. VUE 9 — PRENDRE PART (grand titre + deux appels à l'action)
   ========================================================================== */
.contact{padding:0 0 clamp(72px,8vw,112px);background:#fff}
.contact__grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,1.8vw,24px);max-width:1080px;margin:clamp(8px,1.5vw,20px) auto 0}
.cta{display:flex;flex-direction:column;min-width:0;padding:clamp(24px,2.6vw,36px);border-radius:24px;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease}
.cta:hover{transform:translateY(-4px)}
.cta--pilote{background:linear-gradient(150deg,#592FF1 0%,#6A3CF5 55%,#8B4FFA 100%);color:#fff;box-shadow:0 24px 48px -30px rgba(89,47,241,.75)}
.cta--pilote:hover{box-shadow:0 32px 56px -28px rgba(89,47,241,.85)}
.cta--partenaire{background:var(--bleu);color:var(--encre);box-shadow:inset 0 0 0 1px rgba(89,47,241,.10),0 20px 40px -32px rgba(53,28,150,.35)}
.cta--partenaire:hover{box-shadow:inset 0 0 0 1px rgba(89,47,241,.18),0 28px 50px -30px rgba(53,28,150,.45)}
.cta__titre{margin:0;max-width:20ch;font-size:clamp(1.4rem,1.9vw,1.85rem);font-weight:800;line-height:1.1;letter-spacing:-.045em;color:inherit}
.cta__texte{margin:12px 0 0;max-width:48ch;font-size:clamp(.96rem,1.05vw,1.02rem);line-height:1.58}
.cta--pilote .cta__texte{color:rgba(255,255,255,.84)}
.cta--partenaire .cta__texte{color:var(--texte-doux)}
.cta__bas{margin-top:auto;padding-top:clamp(20px,2.2vw,28px)}
.cta__btn{display:inline-flex;align-items:center;gap:12px;min-height:50px;padding:0 8px 0 22px;border-radius:999px;font-size:15px;font-weight:700;transition:background .25s ease,color .25s ease}
.cta__fleche{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;transition:transform .35s cubic-bezier(.3,1.5,.5,1)}
.cta__fleche svg{width:16px;height:16px}
.cta:hover .cta__fleche{transform:translateX(4px)}
.cta__btn:focus-visible{outline:3px solid #B9A6F5;outline-offset:3px}
.cta--pilote .cta__btn{background:#fff;color:var(--violet);box-shadow:0 12px 24px -16px rgba(16,17,31,.55)}
.cta--pilote .cta__fleche{background:var(--violet);color:#fff}
.cta--partenaire .cta__btn{background:var(--violet);color:#fff;box-shadow:0 12px 24px -16px rgba(89,47,241,.7)}
.cta--partenaire .cta__btn:hover{background:#4A22DD}
.cta--partenaire .cta__fleche{background:#fff;color:var(--violet)}
.contact__note{display:flex;align-items:center;gap:24px;margin:clamp(32px,3.6vw,48px) auto 0;max-width:720px;font-size:14.5px;color:var(--texte-doux);text-align:center}
.contact__note::before,.contact__note::after{content:"";flex:1;height:1px;background:rgba(89,47,241,.2)}
@media(max-width:880px){
  .contact__grille{grid-template-columns:1fr}
}
@media(max-width:640px){
  .cta{border-radius:20px}
  .cta__btn{width:100%;justify-content:space-between}
  .contact__note{gap:14px;font-size:13.5px}
}

/* ==========================================================================
   14. PIED DE PAGE
   ========================================================================== */
.footer{padding:36px 0;background:#10101B;color:#fff}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.footer-logo{display:block;width:auto;height:36px;margin-bottom:12px}
.footer p{margin:6px 0 0;font-size:13px;color:#C7C6D4}
.footer .footer-about{max-width:46ch;margin-top:10px;line-height:1.5}
.footer-about a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.35);text-underline-offset:3px}
.footer-about a:hover,.footer-about a:focus-visible{text-decoration-color:#fff}
.footer-links{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;font-size:12px;color:#d4d1e0}
.footer-links a{transition:color .2s ease}
.footer-links a:hover,.footer-links a:focus-visible{color:#fff;text-decoration:underline}
.footer-bottom{margin-top:25px;padding-top:16px;border-top:1px solid #34313e;font-size:11px;color:#a8a4b7}
@media(max-width:760px){.footer-links{justify-content:flex-start}}
@media(max-width:640px){.footer-inner{flex-direction:column;align-items:flex-start}}

/* ---------- Indicateur de position dans la page ---------- */
.ese-pager{position:fixed;z-index:80;right:clamp(10px,1.6vw,24px);top:50%;translate:0 -50%;display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 7px;border-radius:999px;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);box-shadow:0 0 0 1px rgba(89,47,241,.10),0 12px 28px -16px rgba(53,28,150,.35);transition:opacity .3s ease}
.ese-pager__dot{position:relative;display:block;width:10px;height:10px;padding:0;border:0;border-radius:999px;background:#BDB3E6;cursor:pointer;transition:height .45s cubic-bezier(.3,1.4,.5,1),background .3s ease}
.ese-pager__dot::before{content:"";position:absolute;inset:-6px -8px}
.ese-pager__dot:hover{background:#9C8BDD}
.ese-pager__dot[aria-current="true"]{height:30px;background:var(--violet)}
.ese-pager__dot:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
.ese-pager__label{position:absolute;right:calc(100% + 16px);top:50%;translate:6px -50%;padding:6px 11px;border-radius:8px;background:var(--encre);color:#fff;font:600 12.5px/1.2 'Outfit',system-ui,sans-serif;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease,translate .2s ease}
.ese-pager__dot:hover .ese-pager__label,.ese-pager__dot:focus-visible .ese-pager__label{opacity:1;translate:0 -50%}
@media(max-width:640px){.ese-pager{display:none}}
@media(prefers-reduced-motion:reduce){.ese-pager__dot{transition:none}}

/* ---------- 15. Mouvement réduit ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-scroll .icon,.ese-deco{animation:none!important}
  .cta,.cta__fleche{transition:none!important}
  .cta:hover{transform:none}
  .btn,.engagements__icon,.ese-interactive__stage,.ese-interactive__details,.ese-interactive__step{transition:none!important}
  .engagements__item:hover .engagements__icon{transform:none}
  .ese-interactive__panel.is-current{animation:none}
}

/* ==========================================================================
   16. INTÉGRATION WORDPRESS
   ========================================================================== */
/* Menus générés par wp_nav_menu() */
.nav__list{display:flex;align-items:center;gap:28px;margin:0;padding:0;list-style:none}
.nav__list li{margin:0}
.nav__list .current-menu-item>a{color:var(--violet)}
.mobile-pop__list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.mobile-pop__list a{display:block}
.footer-links__list{display:flex;flex-wrap:wrap;gap:14px;margin:0;padding:0;list-style:none}
.brand-logo{max-width:none}

/* Accessibilité */
.screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link:focus{z-index:100000;top:10px;left:10px;width:auto;height:auto;margin:0;padding:12px 18px;clip:auto;clip-path:none;border-radius:6px;background:#fff;color:var(--violet);font-weight:800;box-shadow:var(--shadow)}

/* Pages de contenu (mentions légales, 404, articles) */
.contenu-page{min-height:62vh;padding:clamp(56px,7vw,104px) 0 clamp(72px,8vw,120px)}
.contenu-page__inner{max-width:860px}
.contenu-page__titre{margin:0 0 28px;font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:1.05;letter-spacing:-.06em;font-weight:800;color:var(--encre)}
.contenu-page__sous-titre{margin:40px 0 10px;font-size:1.5rem;letter-spacing:-.03em}
.contenu-page__sous-titre a:hover{color:var(--violet)}
.contenu-page__texte{font-size:1.08rem;line-height:1.7;color:var(--texte-doux)}
.contenu-page__texte h2,.contenu-page__texte h3{margin:1.8em 0 .5em;color:var(--encre);letter-spacing:-.03em}
.contenu-page__texte a{color:var(--violet);text-decoration:underline;text-underline-offset:3px}
.contenu-page__texte img{height:auto}
.contenu-page--404 .surtitre{margin-top:0}
.contenu-page--404 .btn{margin-top:28px}

/* Mentions légales */
.legal .surtitre{margin:0 0 14px}
.legal__sommaire{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 44px}
.legal__sommaire a{padding:9px 16px;border:1px solid rgba(89,47,241,.22);border-radius:999px;font-size:.95rem;font-weight:600;color:var(--violet);background:#fff;transition:background .2s,color .2s}
.legal__sommaire a:hover,.legal__sommaire a:focus-visible{background:var(--violet);color:#fff}
.legal__section{padding:34px 0;border-top:1px solid rgba(20,19,38,.1)}
.legal__section:first-child{border-top:0;padding-top:0}
.legal__section h2{margin:0 0 18px;font-size:clamp(1.5rem,2.4vw,2rem);color:var(--violet);line-height:1.15;scroll-margin-top:110px}
.nowrap{white-space:nowrap}
.legal__section h3{margin:1.7em 0 .45em;font-size:1.15rem}
.legal__section p{margin:0 0 .9em}
.legal__fiche{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:10px 24px;margin:0}
.legal__fiche dt{font-weight:700;color:var(--encre)}
.legal__fiche dd{margin:0}
@media (max-width:600px){.legal__fiche{grid-template-columns:1fr;gap:2px}.legal__fiche dd{margin-bottom:12px}}
