/* ============================================================
   EchoFirst — Bundle CSS de l'accueil
   ------------------------------------------------------------
   FICHIER GÉNÉRÉ — NE PAS MODIFIER À LA MAIN.
   Concaténation de echofirst.css + refonte-sections.css + home-hero.css
   (reco Eskimoz « LCP à améliorer », 2026-08-17 : une seule requête
   bloquante sur l'accueil au lieu de trois).
   Régénérer après toute modification d'une des trois sources :
       python3 outils/bundle_css.py --gen
   Contrôler qu'il est à jour :
       python3 outils/bundle_css.py --check
   Servi UNIQUEMENT sur la page d'accueil (inc/enqueue.php) ; les autres
   gabarits gardent echofirst.css seul.
   ============================================================ */

/* ==== source : echofirst.css ==== */
/* ============================================================
   Poppins hébergé en interne (audit SEO 2026-07). Remplace Google
   Fonts (perf : plus de requêtes fonts.gstatic bloquantes). Subset
   latin uniquement — couvre le français, y compris œ (U+0152-0153)
   et € (U+20AC). font-display:swap. Fichiers : assets/fonts/poppins/.
   Italiques limitées aux graisses réellement stylées en CSS :
   300 (citations reportage .ri-quote) et 700 (.v6hero__heading em).

   Subset latin VÉRIFIÉ (pas supposé) contre le contenu réel — noms de
   formateurs, corps d'articles, pages rendues du dev : 0 caractère
   latin-ext (U+0100-024F). Le seul glyphe hors subset du contenu est
   le β grec de « β-hCG » (2 occ., un article) : il retombe sur la
   sans-serif système — écart négligeable (β quasi identique d'une
   sans-serif à l'autre), assumé plutôt que d'ajouter un subset greek.
   Les flèches → ← (U+2192/2190) n'existent dans AUCUN subset Poppins :
   déjà en fallback avant cette migration, donc aucune régression.
   ============================================================ */
@font-face{font-family:'Poppins';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/poppins/poppins-latin-300.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/poppins/poppins-latin-400.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/poppins/poppins-latin-500.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/poppins/poppins-latin-600.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/poppins/poppins-latin-700.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/poppins/poppins-latin-800.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:italic;font-weight:300;font-display:swap;src:url('../fonts/poppins/poppins-latin-300-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:italic;font-weight:700;font-display:swap;src:url('../fonts/poppins/poppins-latin-700-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ============================================================
   EchoFirst — base partagée (tokens DA + nav glass + footer)
   Source : EchoFirst_DA-Design-System_v1.md
   ============================================================ */
:root{
  --navy:#10396E;
  --navy-dark:#0B2A52;
  --teal:#00A2B5;
  --teal-dark:#008a9b;
  /* Teal fonctionnel : boutons et petit texte sur fond clair. Le teal de marque
     reste disponible pour les aplats décoratifs ; celui-ci atteint 5,58:1 sur
     blanc et 4,94:1 sur --teal-light (WCAG AA, texte normal). */
  --teal-action:#007380;
  --teal-action-hover:#056A79;
  /* Encre teal. Assombrie de #067a89 à #056A79 le 2026-07-26 : l'ancienne valeur
     n'atteignait que 4,47:1 sur --teal-light, sous les 4,5:1 exigés, et ce fond
     la porte 14 fois (places restantes du catalogue, pastilles de la carte,
     puces d'objectifs, chips de tarif, notices TEC...). Corriger le JETON plutôt
     que ses usages : une seconde encre teal aurait fait cohabiter deux verts
     quasi identiques (ΔL OKLCH 0,05, perceptible sur aplats voisins) sans rien
     régler ailleurs. Aucun des 52 usages n'est posé sur fond sombre ; sur blanc
     le contraste passe de 5,06:1 à 6,28:1, sur --teal-light de 4,47:1 à 5,55:1. */
  --teal-ink:#056A79;
  --teal-light:#E0F5F7;
  --teal-vif:#4FD2E0;
  --ink:#1B2A44;
  --grey:#56657C;
  --grey-light:#f8f9fa;
  --tint:#EEF3FA;
  --border:#dee2e6;
  --white:#ffffff;
  /* tokens de motion */
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.65,0,.35,1);
  --ease-back:cubic-bezier(.34,1.56,.64,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}}
body{font-family:'Poppins',arial,tahoma,sans-serif;color:var(--ink);background:var(--white);line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased;}
.skip-link{position:fixed;z-index:1000;top:10px;left:10px;padding:11px 16px;border-radius:10px;background:var(--navy-dark);color:#fff;font-weight:700;text-decoration:none;transform:translateY(-160%);transition:transform .16s;}
.skip-link:focus{transform:translateY(0);outline:3px solid var(--teal-vif);outline-offset:2px;}
.ef-site-main{display:block;}
img{max-width:100%;}
.container{max-width:1140px;margin:0 auto;padding:0 28px;}
.eyebrow{color:var(--teal-ink);font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:14px;}
h2{font-size:clamp(26px,3.4vw,38px);font-weight:700;color:var(--navy);letter-spacing:-.6px;line-height:1.18;text-wrap:pretty;}
.lead{margin-top:18px;font-size:17px;color:var(--grey);max-width:640px;font-weight:300;line-height:1.75;text-wrap:pretty;}
.lead strong{color:var(--ink);font-weight:600;}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;font-weight:600;font-size:15.5px;padding:15px 32px;border-radius:40px;transition:background-color .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s;cursor:pointer;border:none;font-family:inherit;}
/* Le bouton principal du site n'avait AUCUN état de focus clavier : il retombait
   sur l'anneau par défaut du navigateur, invisible sur les fonds sombres du héros
   et de la nav (relevé le 2026-07-26). Anneau navy, 11,46:1 sur blanc. */
.btn:focus-visible{outline:3px solid var(--navy);outline-offset:3px;}
.btn-teal{background:var(--teal-action);color:#fff;box-shadow:0 6px 18px rgba(0,115,128,.3);}
.btn-teal:hover{background:var(--teal-action-hover);transform:translateY(-2px);box-shadow:0 10px 26px rgba(5,106,121,.38);}
.btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4);}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);}
.btn-navy{background:var(--navy);color:#fff;}
.btn-navy:hover{background:var(--navy-dark);transform:translateY(-2px);}
.btn-outline{background:transparent;color:var(--navy);border:1.5px solid var(--navy);}
.btn-outline:hover{background:var(--navy);color:#fff;}
/* feedback d'appui : le bouton s'enfonce sous le clic/tap */
.btn:active,.nav-cta:active{transform:scale(.97);}

/* ============================================================
   NAV — pilule flottante en verre dépoli + menu déroulant glass
   ============================================================ */
.ef-nav{position:fixed;top:0;left:0;right:0;z-index:90;padding:16px 20px 0;pointer-events:none;}
.nav-shell{pointer-events:auto;position:relative;max-width:1090px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:9px 9px 9px 24px;border-radius:60px;background:rgba(13,40,76,.42);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);box-shadow:0 14px 44px rgba(8,24,48,.22);transition:background .3s,border-color .3s,box-shadow .3s;}
.ef-nav.scrolled .nav-shell{background:rgba(255,255,255,.78);border-color:rgba(16,57,110,.08);box-shadow:0 14px 44px rgba(16,57,110,.12);}
.ef-nav.light .nav-shell{background:rgba(255,255,255,.6);border-color:rgba(16,57,110,.1);box-shadow:0 14px 44px rgba(16,57,110,.1);}
.brand{display:flex;align-items:center;text-decoration:none;}
.brand img{height:26px;display:block;filter:brightness(0) invert(1);transition:filter .3s;}
.ef-nav.scrolled .brand img,.ef-nav.light .brand img{filter:none;}
.nav-right{display:flex;align-items:center;gap:14px;}
.ef-nav .nav-links{position:relative;display:flex;align-items:center;gap:2px;}
.nav-pill{position:absolute;top:auto;bottom:5px;height:2.5px;border-radius:3px;background:var(--teal-vif);opacity:0;transform:scaleX(.55);transition:left .3s var(--ease-out),width .3s var(--ease-out),opacity .22s,background .3s;pointer-events:none;}
.ef-nav.scrolled .nav-pill,.ef-nav.light .nav-pill{background:var(--teal);}
.nav-pill.on{opacity:1;}
.ef-nav .nav-links a{position:relative;z-index:1;text-decoration:none;color:rgba(255,255,255,.85);font-size:14.5px;font-weight:500;padding:9px 15px;border-radius:40px;transition:color .3s;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;}
.ef-nav .nav-links a:hover{color:#fff;}
.ef-nav .nav-links a.active{color:#fff;font-weight:600;}
.ef-nav.scrolled .nav-links a,.ef-nav.light .nav-links a{color:var(--grey);}
.ef-nav.scrolled .nav-links a:hover,.ef-nav.light .nav-links a:hover{color:var(--navy);}
.ef-nav.scrolled .nav-links a.active,.ef-nav.light .nav-links a.active{color:var(--teal-ink);}
.nav-caret{width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .3s;}
.has-menu.open-menu .nav-caret{transform:rotate(225deg) translateY(-1px);}
.nav-cta{background:var(--teal-action);color:#fff;text-decoration:none;font-size:14px;font-weight:600;padding:11px 24px;border-radius:40px;transition:background .2s,transform .2s,box-shadow .2s;white-space:nowrap;box-shadow:0 6px 18px rgba(0,115,128,.35);}
.nav-cta:hover{background:var(--teal-action-hover);transform:translateY(-1px);box-shadow:0 9px 24px rgba(5,106,121,.42);}

/* Menu déroulant Formations — panneau liquid glass */
.nav-menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(-6px) scale(.98);min-width:600px;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:8px;border-radius:24px;background:#fff;backdrop-filter:blur(24px) saturate(1.6);-webkit-backdrop-filter:blur(24px) saturate(1.6);border:1px solid rgba(16,57,110,.1);box-shadow:0 24px 70px rgba(8,24,48,.28),inset 0 1px 0 rgba(255,255,255,.7);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s,transform .32s var(--ease-out),visibility .28s;}
.has-menu.open-menu .nav-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0) scale(1);}
.nav-menu a.menu-item{display:flex;flex-direction:column;gap:3px;padding:13px 15px;border-radius:16px;text-decoration:none;transition:background .2s;}
.nav-menu a.menu-item:hover{background:var(--tint);}
.nav-menu .mi-title{font-size:14.5px;font-weight:600;color:var(--navy);display:flex;align-items:center;gap:8px;}
.nav-menu .mi-count{margin-left:auto;flex-shrink:0;font-size:10.5px;font-weight:700;letter-spacing:.02em;color:var(--teal-ink);background:var(--teal-light);border-radius:20px;padding:3px 9px;}
.nav-menu .mi-desc{font-size:12.5px;color:var(--grey);line-height:1.5;}
.nav-menu .mi-dot{width:8px;height:8px;border-radius:50%;background:var(--teal);flex-shrink:0;}
.nav-menu .mi-dot.plus{background:none;border:1.5px dashed var(--teal);width:9px;height:9px;}
.nav-menu a.menu-all{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:center;gap:8px;background:rgba(16,57,110,.06);font-size:13.5px;font-weight:600;color:var(--navy);padding:12px;}
.nav-menu a.menu-all:hover{background:rgba(16,57,110,.12);}
.nav-menu a.menu-all.ma-rich{justify-content:space-between;padding:9px 10px 9px 18px;}
.nav-menu .ma-live{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;color:var(--grey);}
.nav-menu .ma-dot{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 0 rgba(0,162,181,.5);animation:ma-pulse 2.4s ease-out infinite;}
@keyframes ma-pulse{0%{box-shadow:0 0 0 0 rgba(0,162,181,.45);}70%{box-shadow:0 0 0 6px rgba(0,162,181,0);}100%{box-shadow:0 0 0 0 rgba(0,162,181,0);}}
@media(prefers-reduced-motion:reduce){.nav-menu .ma-dot{animation:none;}}
.nav-menu .ma-go{color:var(--teal-ink);font-weight:700;font-size:13px;transition:transform .2s;}
.nav-menu a.menu-all:hover .ma-go{transform:translateX(3px);}
.nav-menu .ma-btn{display:inline-flex;align-items:center;gap:8px;background:var(--teal-action);color:#fff;font-size:12.5px;font-weight:700;padding:10px 16px;border-radius:30px;white-space:nowrap;transition:background .2s,transform .2s;}
.nav-menu .ma-btn svg{width:11px;height:11px;flex-shrink:0;}
.nav-menu a.menu-all.ma-rich:hover .ma-btn{background:var(--teal-action-hover);transform:translateX(2px);}

/* --- menu Formations : modes sombres (« glass » et « split ») --- */
.nav-menu--glass,.nav-menu--split{background:rgba(10,30,60,.84);border-color:rgba(255,255,255,.14);
  box-shadow:0 30px 80px rgba(4,12,28,.55),inset 0 1px 0 rgba(255,255,255,.12);}
.nav-menu--glass .mi-title{color:#fff;}
.nav-menu--glass .mi-desc{color:rgba(255,255,255,.58);}
.nav-menu--glass a.menu-item:hover{background:rgba(255,255,255,.07);}
.nav-menu--glass .mi-dot,.nav-menu--split .mi-dot{width:11px;height:11px;border:2px solid rgba(255,255,255,.45);box-sizing:border-box;}
.nav-menu--glass .mi-dot.plus,.nav-menu--split .mi-dot.plus{background:none;border:1.5px dashed rgba(255,255,255,.55);}
.nav-menu--glass .mi-count,.nav-menu--split .mi-count{background:rgba(79,210,224,.16);color:var(--teal-vif);}
.nav-menu--glass a.menu-all,.nav-menu--split a.menu-all{background:rgba(255,255,255,.06);color:#fff;}
.nav-menu--glass a.menu-all:hover,.nav-menu--split a.menu-all:hover{background:rgba(255,255,255,.11);}
.nav-menu--glass .ma-live,.nav-menu--split .ma-live{color:rgba(255,255,255,.8);}
.nav-menu--glass .ma-dot,.nav-menu--split .ma-dot{background:var(--teal-vif);box-shadow:0 0 0 0 rgba(79,210,224,.5);}
.nav-menu--glass .ma-go,.nav-menu--split .ma-go{color:var(--teal-vif);}
.nav-menu--glass .ma-btn,.nav-menu--split .ma-btn{background:var(--teal-vif);color:#082036;}
.nav-menu--glass a.menu-all.ma-rich:hover .ma-btn,.nav-menu--split a.menu-all.ma-rich:hover .ma-btn{background:#7CE4EF;}
.mi-low{margin-left:2px;font-size:10px;font-weight:700;padding:3px 8px;border-radius:20px;background:#FBEFD8;color:#9a6a16;flex-shrink:0;}
.nav-menu--glass .mi-low,.nav-menu--split .mi-low{background:rgba(255,197,61,.16);color:#FFC53D;}

/* --- mode « split » : liste + aperçu vivant --- */
.nav-menu--split{min-width:840px;grid-template-columns:1fr;}
@media(max-width:1180px){.nav-menu--split{min-width:720px;}}
.nm-split{display:grid;grid-template-columns:288px 1fr;gap:10px;}
.nm-left{display:flex;flex-direction:column;gap:4px;}
.nm-item{display:flex;align-items:center;gap:12px;padding:15px 16px;border-radius:14px;text-decoration:none;
  font-size:15px;font-weight:600;color:rgba(255,255,255,.75);transition:background .18s,color .18s;}
.nm-item:hover,.nm-item.on{background:rgba(255,255,255,.09);color:#fff;}
.nm-item .mi-count{margin-left:auto;flex-shrink:0;font-size:11px;font-weight:700;border-radius:20px;padding:4px 10px;}
.nm-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nm-view{min-height:300px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  padding:14px;display:flex;flex-direction:column;gap:12px;}
.nm-ph{height:230px;flex-shrink:0;border-radius:12px;overflow:hidden;display:flex;align-items:flex-end;padding:9px 11px;
  background:repeating-linear-gradient(-45deg,rgba(255,255,255,.045) 0 10px,rgba(255,255,255,.085) 10px 20px);
  border:1px solid rgba(255,255,255,.1);}
.nm-ph span{font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:10.5px;letter-spacing:.02em;color:rgba(255,255,255,.48);}
.nm-vbd b{display:block;font-size:16.5px;font-weight:600;color:#fff;}
.nm-vbd p{margin-top:5px;font-size:13.5px;line-height:1.58;color:rgba(255,255,255,.62);}
.nm-vnext{margin-top:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.nv-date{font-size:13px;color:rgba(255,255,255,.65);}
.nv-date b{color:#fff;font-weight:600;}
.nv-badge{font-size:10.5px;font-weight:700;padding:4px 10px;border-radius:20px;white-space:nowrap;}
.nv-badge.ok{background:rgba(79,210,224,.16);color:var(--teal-vif);}
.nv-badge.low{background:rgba(255,197,61,.16);color:#FFC53D;}
.nv-badge.full{background:rgba(255,90,90,.16);color:#FF8484;}
.nm-vgo{margin-top:auto;align-self:flex-start;font-size:13.5px;font-weight:700;color:var(--teal-vif);text-decoration:none;transition:transform .2s;}
.nm-vgo:hover{transform:translateX(3px);}

/* ---- le menu Formations suit l'état de la nav : sombre sur fond navy,
   panneau BLANC dès que la barre passe en clair (scrolled / light) ---- */
.ef-nav.scrolled .nav-menu--glass,.ef-nav.light .nav-menu--glass,
.ef-nav.scrolled .nav-menu--split,.ef-nav.light .nav-menu--split{
  background:#fff;border-color:rgba(16,57,110,.1);
  box-shadow:0 30px 80px rgba(16,57,110,.22),0 2px 8px rgba(16,57,110,.06);}

/* items de la liste (split) */
.ef-nav.scrolled .nav-links .nm-item,.ef-nav.light .nav-links .nm-item{color:rgba(16,57,110,.78);}
.ef-nav.scrolled .nav-links .nm-item:hover,.ef-nav.light .nav-links .nm-item:hover,
.ef-nav.scrolled .nav-links .nm-item.on,.ef-nav.light .nav-links .nm-item.on{background:rgba(16,57,110,.07);color:var(--navy);}
.ef-nav.scrolled .nav-links .nm-item.soon,.ef-nav.light .nav-links .nm-item.soon{color:rgba(16,57,110,.78);}
.ef-nav.scrolled .nav-links .nm-item.soon:hover,.ef-nav.light .nav-links .nm-item.soon:hover,
.ef-nav.scrolled .nav-links .nm-item.soon.on,.ef-nav.light .nav-links .nm-item.soon.on{background:rgba(16,57,110,.04);color:rgba(16,57,110,.78);}
.ef-nav.scrolled .nm-item .mi-dot,.ef-nav.light .nm-item .mi-dot{border-color:rgba(16,57,110,.3);}
.ef-nav.scrolled .nm-item .mi-dot.plus,.ef-nav.light .nm-item .mi-dot.plus{border-color:var(--teal);}
.ef-nav.scrolled .nav-menu--split .mi-count,.ef-nav.light .nav-menu--split .mi-count,
.ef-nav.scrolled .nav-menu--glass .mi-count,.ef-nav.light .nav-menu--glass .mi-count{background:var(--teal-light);color:var(--teal-ink);}
.ef-nav.scrolled .nav-menu--split .mi-count.soon,.ef-nav.light .nav-menu--split .mi-count.soon,
.ef-nav.scrolled .nav-menu--glass .mi-count.soon,.ef-nav.light .nav-menu--glass .mi-count.soon{background:rgba(16,57,110,.08);color:var(--grey);}

/* aperçu de droite (split) */
.ef-nav.scrolled .nm-view,.ef-nav.light .nm-view{background:#F2F6FB;border-color:rgba(16,57,110,.1);}
.ef-nav.scrolled .nm-ph,.ef-nav.light .nm-ph{border-color:rgba(16,57,110,.12);
  background:repeating-linear-gradient(-45deg,rgba(16,57,110,.05) 0 10px,rgba(16,57,110,.09) 10px 20px);}
.ef-nav.scrolled .nm-ph span,.ef-nav.light .nm-ph span{color:rgba(16,57,110,.5);}
.ef-nav.scrolled .nm-vbd b,.ef-nav.light .nm-vbd b{color:var(--navy);}
.ef-nav.scrolled .nm-vbd p,.ef-nav.light .nm-vbd p{color:var(--grey);}
.ef-nav.scrolled .nv-date,.ef-nav.light .nv-date{color:var(--grey);}
.ef-nav.scrolled .nv-date b,.ef-nav.light .nv-date b{color:var(--navy);}
.ef-nav.scrolled .nv-badge.ok,.ef-nav.light .nv-badge.ok{background:var(--teal-light);color:var(--teal-ink);}
.ef-nav.scrolled .nv-badge.low,.ef-nav.light .nv-badge.low{background:#FBEFD8;color:#9a6a16;}
.ef-nav.scrolled .nv-badge.full,.ef-nav.light .nv-badge.full{background:rgba(214,69,69,.1);color:#C93B3B;}
.ef-nav.scrolled .nav-links .nm-vgo,.ef-nav.light .nav-links .nm-vgo{color:var(--teal-ink);}

/* pied « tout le calendrier » */
.ef-nav.scrolled .nav-links .nav-menu--glass a.menu-all,.ef-nav.light .nav-links .nav-menu--glass a.menu-all,
.ef-nav.scrolled .nav-links .nav-menu--split a.menu-all,.ef-nav.light .nav-links .nav-menu--split a.menu-all{background:rgba(16,57,110,.06);color:var(--navy);}
.ef-nav.scrolled .nav-links .nav-menu--glass a.menu-all:hover,.ef-nav.light .nav-links .nav-menu--glass a.menu-all:hover,
.ef-nav.scrolled .nav-links .nav-menu--split a.menu-all:hover,.ef-nav.light .nav-links .nav-menu--split a.menu-all:hover{background:rgba(16,57,110,.1);}
.ef-nav.scrolled .nav-menu--split .ma-live,.ef-nav.light .nav-menu--split .ma-live,
.ef-nav.scrolled .nav-menu--glass .ma-live,.ef-nav.light .nav-menu--glass .ma-live{color:var(--grey);}
.ef-nav.scrolled .nav-menu--split .ma-dot,.ef-nav.light .nav-menu--split .ma-dot,
.ef-nav.scrolled .nav-menu--glass .ma-dot,.ef-nav.light .nav-menu--glass .ma-dot{background:var(--teal);box-shadow:0 0 0 0 rgba(0,162,181,.5);}
.ef-nav.scrolled .nav-menu--split .ma-btn,.ef-nav.light .nav-menu--split .ma-btn,
.ef-nav.scrolled .nav-menu--glass .ma-btn,.ef-nav.light .nav-menu--glass .ma-btn{background:var(--teal-action);color:#fff;}

/* mode « glass » (liste simple) : textes */
.ef-nav.scrolled .nav-menu--glass .mi-title,.ef-nav.light .nav-menu--glass .mi-title{color:var(--navy);}
.ef-nav.scrolled .nav-menu--glass .mi-desc,.ef-nav.light .nav-menu--glass .mi-desc{color:var(--grey);}
.ef-nav.scrolled .nav-menu--glass a.menu-item:hover,.ef-nav.light .nav-menu--glass a.menu-item:hover{background:rgba(16,57,110,.05);}

/* --- menu sans transparence (body.menu-solid) --- */
body.menu-solid .nav-menu--glass,body.menu-solid .nav-menu--split{background:#0A1F3D;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:rgba(255,255,255,.13);box-shadow:0 34px 90px rgba(3,10,24,.6),inset 0 1px 0 rgba(255,255,255,.1);}
body.menu-solid .nav-menu--light{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;}
body.menu-solid .nm-view{background:rgba(255,255,255,.06);}

/* --- variantes de magnétisme de la nav (body[data-navfx]) --- */
body[data-navfx="dot"] .nav-pill{top:auto;bottom:3px;height:5px;border-radius:4px;transform:scaleX(.09);}
body[data-navfx="halo"] .nav-pill{top:2px;bottom:2px;height:auto;border-radius:40px;transform:none;
  background:radial-gradient(closest-side,rgba(79,210,224,.36),rgba(79,210,224,0) 82%);filter:blur(7px);}
body[data-navfx="halo"] .ef-nav.scrolled .nav-pill,body[data-navfx="halo"] .ef-nav.light .nav-pill{background:radial-gradient(closest-side,rgba(0,162,181,.26),rgba(0,162,181,0) 82%);}
body[data-navfx="pill"] .nav-pill{top:5px;bottom:5px;height:auto;border-radius:30px;transform:none;background:rgba(255,255,255,.09);}
body[data-navfx="pill"] .ef-nav.scrolled .nav-pill,body[data-navfx="pill"] .ef-nav.light .nav-pill{background:rgba(16,57,110,.07);}
body[data-navfx="outline"] .nav-pill{top:4px;bottom:4px;height:auto;border-radius:30px;transform:none;background:transparent;border:1.5px solid rgba(79,210,224,.6);box-sizing:border-box;}
body[data-navfx="outline"] .ef-nav.scrolled .nav-pill,body[data-navfx="outline"] .ef-nav.light .nav-pill{border-color:rgba(0,162,181,.55);}

/* Burger (mobile) */
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:12px;}
.nav-burger span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:transform .25s,opacity .25s,background .3s;}
.ef-nav.scrolled .nav-burger span,.ef-nav.light .nav-burger span{background:var(--navy);}
.nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-burger.open span:nth-child(2){opacity:0;}
.nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
/* lien d'inscription du menu mobile — masqué au desktop.
   ⚠️ Le sélecteur doit reprendre le préfixe « .ef-nav .nav-links » : dans le thème WP
   la règle de base est « .ef-nav .nav-links a » (spécificité 0,2,1), contre 0,1,1 pour
   « a.nav-links-cta ». Sans ce préfixe, display:inline-flex l'emporte et « S'inscrire »
   apparaît DEUX FOIS dans la nav desktop (lien + bouton) — constaté en production le
   26/07/2026 à la recette de bascule. Le site statique n'a pas ce problème : sa règle de
   base est « .nav-links a », de même spécificité, donc l'ordre suffit à trancher. */
.ef-nav .nav-links a.nav-links-cta{display:none;}
/* ⚠️ SPÉCIFICITÉ — à lire avant de toucher aux surcharges de nav ci-dessous.
   Dans le thème WP, les règles de BASE de la nav sont préfixées « .ef-nav » :
   « .ef-nav .nav-links » (0,2,0) et « .ef-nav .nav-links a » (0,2,1). Toute surcharge
   écrite « .nav-links… » (0,1,0) est donc PERDANTE sur les propriétés que la base
   déclare aussi — sans erreur, sans avertissement, le navigateur applique juste la base.
   C'est ce qui a cassé le menu mobile en production le 26/07/2026 : « position:absolute »
   et « align-items:stretch » perdaient contre « position:relative » et « align-items:center »
   → le panneau restait DANS la barre de nav (colonne étroite centrée sur le logo) au lieu
   de s'ouvrir en pleine largeur dessous. Les paddings/tailles ci-dessous étaient morts
   pour la même raison, sans que cela se voie.
   RÈGLE : toute surcharge de « .nav-links » reprend le préfixe « .ef-nav ». */
@media(max-width:1150px){
  .ef-nav .nav-links a{padding:9px 11px;font-size:14px;}
  .nav-cta{font-size:13.5px;padding:10px 18px;}
}
@media(max-width:1020px){
  .nav-burger{display:flex;}
  .nav-cta{display:none;}
  .brand img{height:22px;}
  .nav-shell{padding:7px 7px 7px 20px;}
  .nav-pill{display:none;}
  .nav-menu{display:none;}
  .nav-caret{display:none;}
  .ef-nav .nav-links{display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;background:#fff;backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);border:1px solid rgba(16,57,110,.08);border-radius:24px;box-shadow:0 18px 50px rgba(16,57,110,.18);padding:10px;}
  .ef-nav .nav-links.open{display:flex;}
  .ef-nav .nav-links a{padding:13px 18px;font-size:16px;border-radius:14px;color:var(--navy) !important;}
  .ef-nav .nav-links a.active{background:var(--teal-light);color:var(--teal-ink) !important;}
  .ef-nav .nav-links a.nav-links-cta{display:flex;justify-content:center;margin-top:6px;padding:13px 18px;text-align:center;background:var(--teal-action);color:#fff !important;border-radius:40px;}
}
section{scroll-margin-top:96px;}

/* ============================================================
   Bandeau certifications
   ============================================================ */
.certs{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:14px;}
.cert{flex:1 1 0;min-width:290px;max-width:430px;display:flex;align-items:center;gap:18px;color:var(--grey);font-size:14px;line-height:1.5;padding:20px 26px;border:1px solid var(--border);border-radius:18px;background:#fff;transition:border-color .25s,box-shadow .25s,transform .25s;}
.cert:hover{border-color:#c7d5e6;box-shadow:0 12px 30px rgba(16,57,110,.09);transform:translateY(-2px);}
.cert img{height:60px;width:auto;flex-shrink:0;}
.cert .cert-badge{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:16px;background:var(--teal-light);color:var(--teal-ink);font-weight:700;font-size:13px;letter-spacing:.5px;flex-shrink:0;}
.cert b{display:block;color:var(--navy);font-size:15px;font-weight:600;}

/* ============================================================
   Footer
   ============================================================ */
.ef-footer{display:block;background:linear-gradient(135deg,var(--navy-dark),var(--navy));color:#C9D8EC;padding:64px 0 36px;margin-top:0;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px;align-items:start;}
.foot-brand img{height:26px;filter:brightness(0) invert(1);}
.foot-brand p{margin-top:16px;font-size:13.5px;font-weight:300;max-width:320px;line-height:1.7;}
.foot-col .foot-h{color:#fff;font-size:13px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:16px;}
.foot-col{display:flex;flex-direction:column;gap:10px;}
.foot-col a{color:#C9D8EC;text-decoration:none;font-size:14px;transition:color .2s;}
.foot-col a:hover{color:var(--teal-vif);}
.foot-bottom{margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12.5px;color:#8FA6C9;}
.foot-bottom .legal{display:flex;flex-wrap:wrap;gap:10px 22px;}
.foot-bottom a{color:#8FA6C9;text-decoration:none;}
.foot-bottom a:hover{color:#fff;}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr;gap:32px;}}

/* ============================================================
   Réseaux sociaux (footer) + spécialité « à venir » dans les menus
   ============================================================ */
.foot-social{display:flex;gap:10px;margin-top:18px;}
/* .ef-obf = variante obfusquée (span cliquable) rendue hors accueil : même rendu que le lien. */
.foot-social a,.foot-social .ef-obf{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  color:#C9D8EC;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);cursor:pointer;
  transition:color .2s,border-color .2s,background .2s,transform .2s;}
.foot-social a:hover,.foot-social .ef-obf:hover{color:#fff;border-color:var(--teal-vif);background:rgba(79,210,224,.14);transform:translateY(-2px);}
.foot-social .ef-obf:focus-visible{outline:2px solid var(--teal-vif);outline-offset:2px;}
.foot-social svg{width:17px;height:17px;}

.foot-soon{color:#8FA6C9;font-size:14px;display:inline-flex;align-items:center;gap:8px;cursor:default;}
.foot-soon em{font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:2px 8px;}

.nav-menu .menu-item.soon{cursor:default;}
.nav-menu .menu-item.soon:hover{background:none;}
.nav-menu .menu-item.soon .mi-title,.nav-menu .menu-item.soon .mi-desc{opacity:.55;}
.nav-menu .mi-count.soon{margin-left:auto;background:rgba(16,57,110,.08);color:var(--grey);white-space:nowrap;}
.nm-item.soon{cursor:default;opacity:.6;}
.nm-item.soon:hover,.nm-item.soon.on{background:rgba(255,255,255,.05);color:rgba(255,255,255,.75);}
.nav-menu--glass .mi-count.soon,.nav-menu--split .mi-count.soon{background:rgba(255,255,255,.1);color:rgba(255,255,255,.55);white-space:nowrap;}

/* ==== source : refonte-sections.css ==== */
/* ============================================================
   EchoFirst — Refonte premium : sections partagées sous le pli
   Utilisé par les 3 variations de page d'accueil refondue.
   (Charte : echofirst.css — tokens navy / teal / Poppins)
   ============================================================ */

/* — bandeau certifications — */
.certband{padding:44px 0;border-bottom:1px solid var(--border);background:#fff;}

/* — sections génériques — */
section.sec{padding:96px 0;}
section.sec.tint{background:var(--tint);}
.sec-head{max-width:760px;}
.sec-head h2::after{content:'';display:block;width:56px;height:3px;background:var(--teal);border-radius:2px;margin-top:18px;}
.sec-foot{margin-top:42px;display:flex;justify-content:center;}

/* — split méthode — */
.split{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center;margin-top:10px;}
@media(max-width:920px){.split{grid-template-columns:1fr;gap:30px;}}
.split .ph-wrap{position:relative;}
.split image-slot,.split .ph-img{width:100%;height:440px;display:block;}
.split .ph-img{object-fit:cover;border-radius:24px;}
.split .ph-chip{position:absolute;left:22px;bottom:22px;display:flex;align-items:center;gap:12px;padding:14px 20px;border-radius:18px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.6);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);box-shadow:0 12px 34px rgba(8,24,48,.22);font-size:13px;color:var(--grey);}
.split .ph-chip b{display:block;color:var(--navy);font-size:15px;font-weight:700;}
.feat-list{display:flex;flex-direction:column;gap:18px;margin-top:30px;}
.feat{display:flex;gap:16px;align-items:flex-start;}
.feat .pic{width:44px;height:44px;border-radius:13px;background:var(--teal-light);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.feat h3{font-size:16px;font-weight:600;color:var(--navy);}
.feat p{font-size:13.5px;color:var(--grey);line-height:1.6;margin-top:2px;}

/* — liste de sessions — */
.sess-list{display:flex;flex-direction:column;gap:18px;margin-top:46px;}
.sess-row{display:grid;grid-template-columns:210px 1fr auto;gap:26px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:0 1px 4px rgba(16,57,110,.06);transition:transform .25s,box-shadow .25s;}
.sess-row:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(16,57,110,.12);}
.sess-row image-slot{width:210px;height:132px;display:block;}
.sess-info h3{font-size:17px;font-weight:600;color:var(--navy);line-height:1.4;text-wrap:pretty;}
.sess-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.tag{font-size:12px;font-weight:600;border-radius:20px;padding:4px 12px;background:var(--tint);color:var(--navy);border:1px solid var(--border);}
.tag.teal{background:var(--teal-light);color:var(--teal-ink);border-color:transparent;}
.tag.low{background:#FBEFD8;color:#9a6a16;border-color:transparent;}
.tag.full{background:#FBE4E4;color:#C43D3D;border-color:transparent;}
.sess-side{display:flex;flex-direction:column;align-items:flex-end;gap:12px;padding-right:10px;}
.sess-side .digi{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--grey);font-weight:500;}
.sess-side .digi .dot{width:6px;height:6px;border-radius:50%;background:var(--teal);flex-shrink:0;}
@media(max-width:880px){.sess-row{grid-template-columns:1fr;}.sess-row image-slot{width:100%;height:160px;}.sess-side{align-items:flex-start;padding:0 6px 6px;}}

/* — témoignages (section sombre) — */
.dark-sec{background:linear-gradient(135deg,var(--navy-dark),var(--navy));color:#fff;}
.dark-sec h2{color:#fff;}
.dark-sec .lead{color:#C9D8EC;}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:46px;}
@media(max-width:980px){.quotes{grid-template-columns:1fr;max-width:560px;}}
.quote{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:26px;display:flex;flex-direction:column;gap:14px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
.quote p{font-size:14.5px;color:#E6EEF8;line-height:1.7;flex-grow:1;}
.quote .who{display:flex;align-items:center;gap:12px;font-size:13px;color:#9CC3E8;}
.quote .who b{display:block;color:#fff;font-size:13.5px;font-weight:600;}
.quote .av{width:38px;height:38px;border-radius:50%;background:rgba(79,210,224,.2);color:var(--teal-vif);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0;}

/* date de l'avis : rejoint la ligne du rôle, ne concurrence pas le nom.
   La garde est dans le RENDU (quoteHTML / page-les-temoignages.php) : le
   couple `·` + <time> n'est émis que si `date` ET `dt` sont fournis. */
.quote .who time{white-space:nowrap;}
.quote .who .sep{opacity:.55;}
.gnote{display:inline-flex;align-items:center;gap:10px;margin-top:18px;font-size:14px;color:#C9D8EC;}
.gnote b{color:#fff;font-size:16px;}
.stars{color:#f1c40f;letter-spacing:2px;font-size:15px;}

/* — actualités — */
.actu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:46px;}
@media(max-width:980px){.actu-grid{grid-template-columns:1fr;max-width:480px;}}
.actu{position:relative;background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;text-decoration:none;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;}
.actu:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(16,57,110,.12);}
.actu .ph{aspect-ratio:16/9;background:repeating-linear-gradient(45deg,var(--tint),var(--tint) 14px,#E4EBF5 14px,#E4EBF5 28px);display:flex;align-items:center;justify-content:center;color:var(--grey);font-family:monospace;font-size:12px;}
.actu .bd{padding:22px 24px 24px;display:flex;flex-direction:column;gap:9px;}
.actu .cat{font-size:11.5px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--teal-ink);}
.actu h3{font-size:15.5px;font-weight:600;color:var(--navy);line-height:1.45;}
/* Carte article = un seul lien (titre) ; l'ancre s'étend sur toute la carte. */
.actu h3 a{color:inherit;text-decoration:none;}
.actu h3 a::after{content:'';position:absolute;inset:0;z-index:1;border-radius:16px;}
.actu .more{font-size:13px;font-weight:600;color:var(--teal-ink);margin-top:4px;}

/* — presse — */
.press{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 38px;margin-top:36px;}
.press span{font-size:19px;font-weight:700;color:#A9B6C9;letter-spacing:-.3px;white-space:nowrap;transition:color .25s;}
.press span:hover{color:var(--navy);}

/* — bande CTA — */
.cta-band{background:linear-gradient(135deg,var(--navy-dark),var(--navy));border-radius:24px;color:#fff;padding:56px 58px;display:flex;align-items:center;justify-content:space-between;gap:36px;flex-wrap:wrap;}
.cta-band h2{color:#fff;max-width:520px;}
.cta-band p{margin-top:12px;color:#C9D8EC;font-weight:300;font-size:15.5px;max-width:480px;}
@media(max-width:760px){.cta-band{padding:40px 30px;}}

/* ==== source : home-hero.css ==== */
/* Accueil — héros « Mix V9 » : extrait du <style> inline de index.html. */
/* =====================================================================
   REFONTE 09 — « Mix » : base V1 (héros photo + carte session glass)
   + mots rotatifs de la V7 dans le titre.
   Config Tweaks figée : photo Sonde, assombrissement 0.10, Poppins,
   badge inscriptions masqué. Certifications intégrées au héros.
   Photo héros : plan large paysage (praticien + geste pédagogique,
   fond bleu raccord marque) — cadrage object-position 50% 45%.
   ===================================================================== */
:root{--veil-extra:.1;}
.hero{--pad:clamp(26px,4vw,65px);position:relative;width:100%;min-height:100vh;overflow:hidden;background:var(--navy-dark);}

/* fond photo plein écran */
.hero__bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero__bg picture{position:absolute;inset:0;display:block;}
.hero__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;transform:scale(1.03);transition:transform 16s var(--ease-out);}
/* mobile : recentre sur la sonde (audit UX 2026-07) */
@media(max-width:640px){.hero__bg img{object-position:60% 45%;}}
body.is-ready .hero__bg img{transform:scale(1);}
.hero__veil{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(106deg,rgba(8,26,52,.93) 0%,rgba(11,42,82,.74) 34%,rgba(8,26,52,.42) 62%,rgba(8,26,52,.66) 100%);}
.hero__veil::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,26,52,.55) 0%,rgba(8,26,52,0) 26%,rgba(8,26,52,0) 64%,rgba(8,26,52,.85) 100%);}

/* grille héros */
.hero__grid{position:relative;z-index:5;min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:48px;
  padding:140px var(--pad) clamp(48px,7vh,72px);}
@media(max-width:1040px){.hero__grid{grid-template-columns:1fr;gap:40px;align-items:end;padding-top:128px;}}

/* colonne titre */
.hero__left{display:flex;flex-direction:column;}
.hero__eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-vif);}
.hero__eyebrow::before{content:'';width:26px;height:1.5px;background:var(--teal-vif);border-radius:2px;}
.hero__title{margin-top:26px;color:#fff;font-weight:600;letter-spacing:-.03em;line-height:1.08;font-size:clamp(44px,5.9vw,92px);}
.hero__title span{display:block;}
.hero__title .dim{color:rgba(255,255,255,.46);}
.hero__title em{font-style:normal;color:var(--teal-vif);}
/* mot rotatif : gabarit invisible en flux (ligne de base native) + fenêtre centrée */
.hero__title .rot{position:relative;display:inline-block;vertical-align:baseline;white-space:nowrap;transition:width .5s var(--ease-out);}
.hero__title .rot__sizer{visibility:hidden;}
.hero__title .rot__view{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:1.45em;overflow:hidden;pointer-events:none;}
.hero__title .rot__track{display:flex;flex-direction:column;transition:transform .6s var(--ease-in-out);}
.hero__title .rot__word{display:block;line-height:1.45;white-space:nowrap;}
@media(prefers-reduced-motion:reduce){.hero__title .rot,.hero__title .rot__track{transition:none;}}
.hero__desc{margin-top:30px;max-width:430px;color:rgba(255,255,255,.78);font-size:clamp(15px,1.25vw,18px);font-weight:300;line-height:1.62;}
.hero__desc strong{color:#fff;font-weight:600;}
.hero__actions{margin-top:34px;display:flex;align-items:center;gap:26px;flex-wrap:wrap;}
.hero__rating{display:flex;flex-direction:column;gap:3px;}
.hero__rating .stars-row{display:flex;align-items:center;gap:8px;color:#fff;}
.hero__rating .stars-row b{font-size:24px;font-weight:700;line-height:1;}
.hero__rating .stars{color:#FFC53D;font-size:15px;letter-spacing:1px;}
.hero__rating small{color:rgba(255,255,255,.62);font-size:13px;}

/* bouton blanc */
.btn-white{display:inline-flex;align-items:center;gap:10px;padding:15px 28px;border-radius:40px;background:#fff;color:var(--navy);font-weight:600;font-size:15px;text-decoration:none;box-shadow:0 12px 32px rgba(8,24,48,.3);transition:transform .22s,box-shadow .22s,background .22s;}
.btn-white:hover{transform:translateY(-2px);background:#f1f4f9;box-shadow:0 16px 40px rgba(8,24,48,.36);}
.btn-white:active,.tcard__cta:active,.scard-sm:active{transform:scale(.97);}
.btn-white svg{width:13px;height:13px;}

/* carte session glass */
.hero__right{display:flex;flex-direction:column;align-items:flex-end;gap:14px;}
@media(max-width:1040px){.hero__right{align-items:flex-start;}}

/* carte « sur mesure » — forte demande de formations dans les structures */
.scard-sm{position:relative;width:100%;max-width:420px;display:flex;align-items:center;gap:14px;padding:15px 18px;border-radius:20px;text-decoration:none;color:#fff;
  background:rgba(79,210,224,.09);border:1px dashed rgba(79,210,224,.5);
  backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);
  box-shadow:0 18px 44px rgba(6,18,40,.3);
  transition:background .25s,border-color .25s,transform .25s,box-shadow .25s;}
.scard-sm:hover{background:rgba(79,210,224,.15);border-color:var(--teal-vif);transform:translateY(-2px);box-shadow:0 22px 52px rgba(6,18,40,.42);}
.sm-ico{flex:none;width:40px;height:40px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:rgba(79,210,224,.16);color:var(--teal-vif);}
.sm-ico svg{width:16px;height:16px;}
.sm-bd{display:flex;flex-direction:column;gap:3px;min-width:0;}
.sm-kick{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-vif);}
.sm-dot{width:6px;height:6px;border-radius:50%;background:var(--teal-vif);box-shadow:0 0 0 0 rgba(79,210,224,.6);animation:pulse 2.4s ease-out infinite;}
@media(prefers-reduced-motion:reduce){.sm-dot{animation:none;}}
.sm-bd b{font-size:15.5px;font-weight:600;color:#fff;line-height:1.3;}
.sm-txt{font-size:12.5px;color:rgba(255,255,255,.68);line-height:1.5;}
.sm-go{flex:none;margin-left:auto;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.28);display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .25s,background .25s,border-color .25s,color .25s;}
.sm-go svg{width:12px;height:12px;}
.scard-sm:hover .sm-go{background:#fff;border-color:#fff;color:var(--navy);transform:translateX(2px);}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(79,210,224,.55);}70%{box-shadow:0 0 0 7px rgba(79,210,224,0);}100%{box-shadow:0 0 0 0 rgba(79,210,224,0);}}
/* carte « nos formations » : 4 types + bouton « Où se former ? » */
.tcard{position:relative;width:100%;max-width:420px;border-radius:28px;overflow:hidden;padding:24px;
  background:rgba(13,34,66,.46);border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(26px) saturate(1.4);-webkit-backdrop-filter:blur(26px) saturate(1.4);
  box-shadow:0 30px 70px rgba(6,18,40,.5),inset 0 1px 0 rgba(255,255,255,.18);
  display:flex;flex-direction:column;gap:16px;color:#fff;}
.tcard__kicker{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-vif);}
.tcard__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:10px;}
.tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;min-height:88px;padding:16px;border-radius:14px;
  background:rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.08);color:#fff;text-decoration:none;
  transition:background .22s,border-color .22s,transform .22s;}
a.tile:hover{background:rgba(79,210,224,.13);border-color:rgba(79,210,224,.45);transform:translateY(-2px);}
.tile b{font-size:16px;font-weight:600;line-height:1.28;text-wrap:balance;max-width:100%;}
.tile small{font-size:11.5px;color:rgba(255,255,255,.55);}
a.tile .tile__arr{position:absolute;top:13px;right:13px;width:22px;height:22px;border-radius:50%;border:1px solid rgba(255,255,255,.22);
  display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);opacity:0;transform:translateX(-3px);transition:opacity .2s,transform .2s,color .2s;}
a.tile .tile__arr svg{width:9px;height:9px;}
a.tile:hover .tile__arr{opacity:1;transform:none;color:#fff;}
.tile--soon{border-style:dashed;border-color:rgba(255,255,255,.14);background:rgba(0,0,0,.14);cursor:default;}
.tile--soon b{color:rgba(255,255,255,.42);}
.tile__soon{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.14);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.6);}
.tcard__cta{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:50px;border-radius:13px;background:#fff;color:var(--navy);font-weight:600;font-size:15px;text-decoration:none;transition:transform .2s,background .2s;}
.tcard__cta:hover{transform:translateY(-2px);background:#f1f4f9;}
.tcard__cta svg{width:12px;height:12px;}

/* — carte « nos formations » : resserrage mobile —
   À 320px, 26+24+18 par côté rognent 142px sur 320 (44 % du viewport).
   Palier 520px : au-dessus, la carte plafonne à 420px et tout tient à 16px. */
@media(max-width:520px){
  .hero__grid{padding-left:20px;padding-right:20px;}
  .tcard{padding:16px;}
  .tcard__grid{gap:8px;}
  .tile{padding:14px 12px;min-height:76px;}
  .tile b{font-size:14px;}
  a.tile .tile__arr{top:9px;right:9px;width:18px;height:18px;}
}

/* certifications — chips blanches sous la carte « sur mesure » */
.hero-certs{width:100%;max-width:420px;display:flex;align-items:stretch;gap:12px;}
.hero-certs .hc{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;padding:18px 20px;border-radius:18px;cursor:default;
  background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.55);
  box-shadow:0 14px 34px rgba(6,18,40,.3);
  transition:transform .25s,box-shadow .25s,background .25s;}
.hero-certs .hc:hover{transform:translateY(-2px);background:#fff;box-shadow:0 18px 42px rgba(6,18,40,.38);}
.hero-certs .hc img{height:62px;width:auto;max-width:100%;object-fit:contain;display:block;}
@media(max-width:420px){.hero-certs .hc{padding:12px 14px;}.hero-certs .hc img{height:46px;}}
/* petits écrans (≤420px) : cale « en échographie » — la ligne la plus large du
   titre, 7,61em à −.03em, insécable — sur la largeur utile (vw − 2×20px de
   padding sous 520px). 11.2vw → marge ≥7px à 320px, ≥15px à 375px.
   Le cap 44px = min du clamp de base → corps continu au franchissement de 420px.
   Sans cette query, « en » part seul en 4e ligne sur 320–340 et 361–374px,
   et 375px ne tient que par 0,2px. */
@media(max-width:420px){.hero__title{font-size:clamp(34px,11.2vw,44px);}}

/* scroll hint */
.hero__scroll{position:absolute;left:var(--pad);bottom:24px;z-index:5;display:inline-flex;align-items:center;gap:11px;color:rgba(255,255,255,.85);font-size:13px;font-weight:500;letter-spacing:.04em;text-decoration:none;
  padding:8px 20px 8px 9px;border-radius:40px;border:1px solid rgba(255,255,255,.2);background:rgba(8,26,52,.32);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  transition:color .25s,border-color .25s,background .25s,transform .25s;}
.hero__scroll:hover{color:#fff;border-color:rgba(79,210,224,.55);background:rgba(11,42,82,.55);transform:translateY(-2px);}
.hero__scroll .circ{width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;overflow:hidden;transition:background .25s,border-color .25s;}
.hero__scroll:hover .circ{background:var(--teal-vif);border-color:var(--teal-vif);}
.hero__scroll svg{width:9px;height:11px;color:#fff;animation:arrow 2.6s cubic-bezier(.4,0,.7,1) infinite;transition:color .25s;}
.hero__scroll:hover svg{color:var(--navy-dark);}
@keyframes arrow{0%{transform:translateY(-7px);opacity:0;}30%{opacity:1;}55%{transform:translateY(7px);opacity:0;}100%{transform:translateY(7px);opacity:0;}}
@media(max-width:1040px){.hero__scroll{display:none;}}

/* animations légères et discrètes — état caché seulement si le JS est là pour le lever
   (html.js posé par header.php ; sans JS, contenu visible d'emblée) */
:where(html.js) .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);}
body.is-ready .reveal{opacity:1;transform:none;}
body.is-ready .reveal.d1{transition-delay:.06s;}
body.is-ready .reveal.d2{transition-delay:.14s;}
body.is-ready .reveal.d3{transition-delay:.22s;}
body.is-ready .reveal.d4{transition-delay:.30s;}
body.is-ready .reveal.d5{transition-delay:.40s;}
body.is-ready .reveal.d6{transition-delay:.50s;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;}.hero__bg img{transform:none!important;}.hero__scroll svg{animation:none;}}

/* couche d'assombrissement (Tweaks : 0.15) */
.hero__dim{position:absolute;inset:0;z-index:1;background:#06122a;opacity:var(--veil-extra,0);pointer-events:none;transition:opacity .4s;}
.is-hidden{display:none!important;}
/* sheen discret en haut de la carte */
.tcard::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(160deg,rgba(255,255,255,.1),rgba(255,255,255,0) 38%);}
.tcard>*{position:relative;}

/* images réelles : cartes actus + logos presse */
.actu img.ph{width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;display:block;}
/* — logos presse —
   Hauteurs calibrées sur la HAUTEUR D'ENCRE mesurée de chaque fichier, pas sur
   ses dimensions nominales : les marges internes vont de 0 % (Le Point) à 61 %
   (Forbes). Cible 24px d'encre pour les larges, 34px pour les compacts,
   −10 % sur les aplats pleins. Recalibrer si un fichier est remplacé. */
.press{gap:22px 34px;}
.press a{display:inline-flex;align-items:center;border-radius:8px;}
.press a:focus-visible{outline:3px solid var(--navy);outline-offset:4px;}
.press img{height:30px;width:auto;max-width:150px;object-fit:contain;display:block;
  transition:transform .2s var(--ease-out);}

.press img[src*="presslogo-forbesunef"]  {height:62px;} /* 39 % utile  → 24,2px d'encre */
.press img[src*="presslogo-information"] {height:36px;} /* 67 % utile  → 24,3px */
.press img[src*="presslogo-lepointech"]  {height:22px;} /* aplat plein → 22,0px */
.press img[src*="presslogo-bfmtvechogr"] {height:31px;} /* aplat plein → 31,0px */
.press img[src*="presslogo-whatsupdoc"]  {height:35px;} /* 93 % utile  → 32,4px */
.press img[src*="presslogo-lefigaroam"]  {height:47px;} /* 73 % utile  → 34,2px */

/* Fondu des DEUX seuls fichiers à FOND BLANC PARASITE : le JPEG du Figaro
   (opaque par construction) et le PNG de Forbes (palette sans chunk tRNS, donc
   opaque bord à bord ; blanc cassé mesuré à (252,254,252) au rendu). `darken`
   les efface sur la teinte de section — min(252,238)=238 — et laisse l'encre
   sombre intacte. Le tri se fait sur le CONTENU du fichier, pas sur son
   extension : c'est en triant JPEG contre PNG qu'on avait manqué Forbes.
   NE PAS étendre par symétrie aux autres : Le Point (aplat rouge #E41B2F) et
   BFMTV (aplat bleu) portent un TEXTE BLANC — leur aplat EST le logo, et le
   fondu effacerait ce texte. Information Entreprise (canal alpha) et
   What's Up Doc (tRNS) sont réellement transparents : rien à faire. */
.press img[src*="presslogo-lefigaroam"],
.press img[src*="presslogo-forbesunef"]{mix-blend-mode:darken;}

/* Le transform est porté par l'IMAGE, pas par le lien : un transform sur le lien
   en ferait un contexte d'empilement, ce qui isolerait le mix-blend-mode:darken
   du Figaro et ferait réapparaître la plaque blanche de son JPEG au survol
   (mesuré : (255,255,255) au lieu de (238,243,250)). Même piège que opacity
   et filter, déjà écartés plus haut pour la même raison. */
@media(hover:hover){
  .press a:hover img{transform:translateY(-2px);}
}
