
/* ==========================================================================
   1. FONDATIONS
   ========================================================================== */
:root{
  --bleu-nuit:#0a1c3a;
  --bleu-profond:#112b4d;
  --bleu-profond-clair:#1b3e63;
  --or:#F0B429;
  --or-clair:#FFD27F;
  --orange:#FF8C42;
  --texte-clair:#F5F7FA;
  --texte-doux:rgba(245,247,250,0.68);
  --verre:rgba(255,255,255,0.05);
  --verre-fort:rgba(255,255,255,0.08);
  --bordure-verre:rgba(255,255,255,0.12);
  --bordure-or:rgba(240,180,41,0.35);

  --ombre-or:0 8px 30px rgba(240,180,41,0.25);
  --ombre-douce:0 20px 50px rgba(0,0,0,0.35);

  --rapide:0.2s cubic-bezier(.4,0,.2,1);
  --moyen:0.4s cubic-bezier(.4,0,.2,1);

  --font-titre:'DM Serif Display', Georgia, serif;
  --font-corps:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-corps);
  color:var(--texte-clair);
  background:var(--bleu-nuit);
  line-height:1.65;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
input{font-family:inherit;}

.conteneur{width:100%;max-width:1240px;margin:0 auto;padding:0 24px;}

.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:0.78rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--or);
}
.titre-section{
  font-family:var(--font-titre);font-weight:400;
  font-size:clamp(2rem,4vw,2.9rem);color:var(--texte-clair);
  text-align:center;margin:12px 0 16px;line-height:1.2;
}
.sous-titre-section{
  text-align:center;color:var(--texte-doux);max-width:560px;margin:0 auto 56px;font-size:1.05rem;
}
.centre{text-align:center;display:block;}

.revele{opacity:0;transform:translateY(36px);transition:opacity 0.8s cubic-bezier(.16,1,.3,1), transform 0.8s cubic-bezier(.16,1,.3,1);}
.revele.visible{opacity:1;transform:translateY(0);}
.revele-echelle{opacity:0;transform:scale(0.94);transition:opacity 0.7s ease, transform 0.7s cubic-bezier(.16,1,.3,1);}
.revele-echelle.visible{opacity:1;transform:scale(1);}

a:focus-visible, button:focus-visible, input:focus-visible{
  outline:3px solid var(--or);outline-offset:3px;border-radius:4px;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}

/* ==========================================================================
   2. SCÈNE 3D EN FOND FIXE
   ========================================================================== */
#scene3d{
  position:fixed;inset:0;z-index:0;
  width:100vw;height:100vh;
  display:block;
  pointer-events:none;
}
.voile-degrade{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse at 50% 30%, rgba(10,28,58,0.05) 0%, rgba(10,28,58,0.55) 70%, rgba(8,18,38,0.85) 100%);
}
.voile-scroll{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  background:var(--bleu-nuit);opacity:0;transition:opacity 0.15s linear;
}
#repli3d{
  position:fixed;inset:0;z-index:0;display:none;
  background:radial-gradient(circle at 50% 30%, #16345c 0%, #0a1c3a 65%, #071224 100%);
}

/* ==========================================================================
   3. HEADER
   ========================================================================== */
.entete{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:26px 0;background:transparent;
  transition:padding var(--moyen), background var(--moyen), box-shadow var(--moyen), backdrop-filter var(--moyen);
}
.entete.contracte{
  padding:14px 0;background:rgba(10,28,58,0.72);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 4px 24px rgba(0,0,0,0.3);border-bottom:1px solid var(--bordure-verre);
}
.entete-int{display:flex;align-items:center;justify-content:space-between;}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--font-titre);font-size:1.4rem;color:var(--texte-clair);}
.logo-image{height:42px;width:auto;flex-shrink:0;transition:height var(--moyen);}
.entete.contracte .logo-image{height:32px;}
.logo .accent{color:var(--orange);}

.nav-bureau{display:flex;gap:38px;}
.nav-bureau a{
  font-weight:600;font-size:0.93rem;color:rgba(245,247,250,0.88);
  position:relative;padding-bottom:5px;transition:color var(--rapide);
}
.nav-bureau a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--or);transition:width var(--moyen);}
.nav-bureau a:hover::after{width:100%;}
.nav-bureau a:hover{color:var(--or);}
.nav-suivi{
  background:linear-gradient(180deg, var(--or-clair), var(--or));color:#1a1204 !important;
  padding:9px 20px;border-radius:9px;box-shadow:0 6px 20px rgba(240,180,41,0.25);
  transition:transform var(--rapide), box-shadow var(--rapide);
}
.nav-suivi::after{display:none;}
.nav-suivi:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(240,180,41,0.4);color:#1a1204;}
.nav-suivi-mobile{
  display:inline-block;margin-top:14px;text-align:center;
  background:linear-gradient(180deg, var(--or-clair), var(--or));color:#1a1204 !important;
  border-radius:9px;border-bottom:none !important;
}

.burger{width:30px;height:22px;position:relative;z-index:101;display:none;flex-shrink:0;}
.burger span{position:absolute;left:0;width:100%;height:2.5px;border-radius:3px;background:var(--texte-clair);transition:transform var(--moyen), opacity var(--moyen);}
.burger span:nth-child(1){top:0;}
.burger span:nth-child(2){top:9.5px;}
.burger span:nth-child(3){top:19px;}
.burger.actif span:nth-child(1){transform:translateY(9.5px) rotate(45deg);}
.burger.actif span:nth-child(2){opacity:0;}
.burger.actif span:nth-child(3){transform:translateY(-9.5px) rotate(-45deg);}

.panneau-mobile{
  position:fixed;top:0;right:-100%;width:82%;max-width:340px;height:100vh;
  background:rgba(10,28,58,0.97);backdrop-filter:blur(20px);z-index:99;
  padding:110px 36px 40px;transition:right 0.5s cubic-bezier(.16,1,.3,1);
  display:flex;flex-direction:column;gap:6px;border-left:1px solid var(--bordure-verre);
}
.panneau-mobile.ouvert{right:0;}
.panneau-mobile a{
  color:var(--texte-clair);font-size:1.3rem;font-weight:600;padding:14px 0;
  opacity:0;transform:translateX(24px);transition:opacity 0.5s ease, transform 0.5s ease;
  border-bottom:1px solid var(--bordure-verre);
}
.panneau-mobile.ouvert a{opacity:1;transform:translateX(0);}
.panneau-mobile.ouvert a:nth-child(1){transition-delay:0.1s;}
.panneau-mobile.ouvert a:nth-child(2){transition-delay:0.17s;}
.panneau-mobile.ouvert a:nth-child(3){transition-delay:0.24s;}
.panneau-mobile.ouvert a:nth-child(4){transition-delay:0.31s;}
.panneau-mobile.ouvert a:nth-child(5){transition-delay:0.38s;}
.voile-mobile{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:98;opacity:0;pointer-events:none;transition:opacity var(--moyen);}
.voile-mobile.actif{opacity:1;pointer-events:auto;}
@media (max-width:880px){.nav-bureau{display:none;}.burger{display:block;}}
@media (max-width:480px){.logo-image{height:34px;}.logo{font-size:1.2rem;gap:8px;}}

/* ==========================================================================
   4. HERO (superposé à la scène 3D)
   ========================================================================== */
.hero{
  position:relative;z-index:2;min-height:100svh;
  display:flex;align-items:center;justify-content:center;text-align:center;padding:0 24px;
}
.hero-contenu{max-width:820px;}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,0.08);border:1px solid var(--bordure-or);
  padding:7px 18px;border-radius:999px;font-size:0.8rem;font-weight:600;letter-spacing:0.04em;margin-bottom:26px;
  opacity:0;animation:apparait-monte 0.8s ease 0.1s forwards;color:var(--or-clair);
}
.hero h1{
  font-family:var(--font-titre);font-weight:400;font-size:clamp(2.2rem,5.6vw,4rem);
  line-height:1.18;margin-bottom:22px;text-shadow:0 4px 40px rgba(0,0,0,0.55);
  opacity:0;animation:apparait-monte 0.9s ease 0.28s forwards;
}
.hero h1 .mot-or{color:var(--or-clair);font-style:italic;}
.hero p{
  font-size:clamp(1rem,1.6vw,1.22rem);color:rgba(245,247,250,0.85);max-width:560px;margin:0 auto 42px;
  opacity:0;animation:apparait-monte 0.9s ease 0.46s forwards;
}
.hero-ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;opacity:0;animation:apparait-monte 0.9s ease 0.64s forwards;}
@keyframes apparait-monte{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:translateY(0);}}

.btn{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:0.98rem;padding:16px 30px;border-radius:11px;
  transition:transform var(--rapide), box-shadow var(--moyen), background var(--moyen), color var(--moyen);}
.btn-primaire{
  background:linear-gradient(180deg, var(--or-clair), var(--or));color:#1a1204;
  box-shadow:var(--ombre-or), inset 0 1px 0 rgba(255,255,255,0.4);
}
.btn-primaire:hover{transform:translateY(-3px);box-shadow:0 14px 38px rgba(240,180,41,0.4), inset 0 1px 0 rgba(255,255,255,0.5);}
.btn-secondaire{
  position:relative;overflow:hidden;color:var(--texte-clair);border:1.5px solid rgba(255,255,255,0.4);z-index:1;
}
.btn-secondaire::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,0.12);transform:scaleX(0);transform-origin:left;transition:transform var(--moyen);z-index:-1;}
.btn-secondaire:hover::before{transform:scaleX(1);}

.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:2;color:rgba(245,247,250,0.65);animation:rebond 2.2s ease-in-out infinite;}
@keyframes rebond{0%,100%{transform:translate(-50%,0);}50%{transform:translate(-50%,10px);}}

/* ==========================================================================
   5. PANNEAUX DE VERRE (glassmorphism) — utilisés pour toutes les sections sous le hero
   ========================================================================== */
.panneau-section{position:relative;z-index:2;padding:100px 0;}
.panneau-section.strie{background:rgba(9,22,44,0.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-top:1px solid var(--bordure-verre);border-bottom:1px solid var(--bordure-verre);}

/* ==========================================================================
   6. CHIFFRES QUI PARLENT
   ========================================================================== */
.chiffres-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.chiffre-carte{
  text-align:center;background:var(--verre);border:1px solid var(--bordure-verre);border-radius:18px;padding:30px 18px;
  transition:transform var(--moyen), border-color var(--moyen);
}
.chiffre-carte:hover{transform:translateY(-6px);border-color:var(--bordure-or);}
.chiffre-icone{
  width:52px;height:52px;margin:0 auto 16px;border-radius:14px;
  background:rgba(240,180,41,0.1);border:1px solid var(--bordure-or);
  display:flex;align-items:center;justify-content:center;
}
.chiffre-icone svg{width:24px;height:24px;color:var(--or);}
.chiffre-valeur{font-family:var(--font-titre);font-weight:400;font-size:clamp(1.9rem,3.6vw,2.7rem);margin-bottom:6px;color:var(--texte-clair);}
.chiffre-label{font-size:0.88rem;color:var(--texte-doux);margin-bottom:14px;}
.chiffre-barre{width:100%;height:4px;border-radius:4px;background:rgba(255,255,255,0.1);overflow:hidden;}
.chiffre-barre-remplissage{height:100%;width:0%;background:linear-gradient(90deg, var(--or), var(--orange));border-radius:4px;transition:width 1.8s cubic-bezier(.16,1,.3,1);}
@media (max-width:760px){.chiffres-grille{grid-template-columns:repeat(2,1fr);row-gap:24px;}}

/* ==========================================================================
   7. ÉTABLISSEMENTS
   ========================================================================== */
.barre-outils{display:flex;flex-direction:column;align-items:center;gap:28px;margin-bottom:52px;}
.onglets{
  position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;
  background:var(--verre);padding:6px;border-radius:14px;border:1px solid var(--bordure-verre);
}
.onglet{position:relative;padding:11px 20px;border-radius:10px;color:var(--texte-doux);font-weight:600;font-size:0.88rem;z-index:1;transition:color var(--rapide);}
.onglet.actif{color:#1a1204;}
.indicateur-onglet{
  position:absolute;top:6px;bottom:6px;left:6px;
  background:linear-gradient(135deg, var(--or-clair), var(--or));border-radius:10px;
  transition:left var(--moyen), width var(--moyen);box-shadow:var(--ombre-or);
}
.recherche{position:relative;width:100%;max-width:420px;}
.recherche input{
  width:100%;padding:13px 20px 13px 46px;border-radius:12px;
  border:1.5px solid var(--bordure-verre);background:var(--verre);color:var(--texte-clair);font-size:0.94rem;
  transition:border-color var(--rapide), box-shadow var(--rapide);
}
.recherche input::placeholder{color:var(--texte-doux);}
.recherche input:focus{border-color:var(--or);box-shadow:0 0 0 4px rgba(240,180,41,0.14);outline:none;}
.recherche svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--texte-doux);pointer-events:none;}

.grille-cartes{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.carte{
  background:var(--verre);border-radius:18px;overflow:hidden;border:1px solid var(--bordure-verre);
  transition:transform var(--moyen), box-shadow var(--moyen), opacity var(--moyen), border-color var(--moyen);
}
.carte.masquee{opacity:0.15;}
.carte:hover{transform:translateY(-8px);box-shadow:var(--ombre-douce);border-color:var(--bordure-or);}
.carte-image{height:170px;overflow:hidden;position:relative;}
.carte-image img{width:100%;height:100%;object-fit:cover;filter:blur(14px) brightness(0.8);transform:scale(1.1);transition:filter 0.5s ease, transform 0.6s ease;}
.carte-image img.chargee{filter:blur(0) brightness(0.9);transform:scale(1);}
.carte:hover .carte-image img{transform:scale(1.09);}
.carte-image::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,28,58,0) 40%, rgba(10,28,58,0.55) 100%);opacity:0;transition:opacity var(--moyen);}
.carte:hover .carte-image::after{opacity:1;}
.carte-corps{padding:22px;}
.carte-tag{display:inline-block;font-size:0.7rem;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--or);margin-bottom:8px;}
.carte-titre{font-family:var(--font-titre);font-weight:400;font-size:1.15rem;color:var(--texte-clair);margin-bottom:4px;}
.carte-lieu{font-size:0.83rem;color:var(--texte-doux);margin-bottom:10px;display:flex;align-items:center;gap:5px;}
.etoiles{display:flex;align-items:center;gap:3px;margin-bottom:12px;}
.etoiles svg{width:14px;height:14px;}
.etoiles span{font-size:0.8rem;color:var(--texte-doux);margin-left:4px;}
.carte-description{font-size:0.87rem;color:var(--texte-doux);margin-bottom:18px;min-height:40px;}
.carte-btn{
  width:100%;padding:11px;border-radius:9px;font-weight:700;font-size:0.87rem;
  background:transparent;color:var(--or-clair);border:1.5px solid var(--bordure-or);transition:all var(--rapide);
}
.carte-btn:hover{background:var(--or);color:#1a1204;border-color:var(--or);}

@media (max-width:1080px){.grille-cartes{grid-template-columns:repeat(3,1fr);}}
@media (max-width:820px){.grille-cartes{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.grille-cartes{grid-template-columns:1fr;}}

/* Modale */
.voile-modale{
  position:fixed;inset:0;background:rgba(5,12,26,0.75);z-index:200;
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity var(--moyen);
}
.voile-modale.actif{opacity:1;pointer-events:auto;}
.modale{
  background:rgba(17,43,77,0.92);backdrop-filter:blur(20px);border:1px solid var(--bordure-or);
  border-radius:20px;max-width:480px;width:100%;overflow:hidden;
  transform:scale(0.92);opacity:0;transition:transform var(--moyen), opacity var(--moyen);
  max-height:88vh;overflow-y:auto;box-shadow:0 30px 80px rgba(0,0,0,0.5);
}
.voile-modale.actif .modale{transform:scale(1);opacity:1;}
.modale-image{height:210px;}
.modale-image img{width:100%;height:100%;object-fit:cover;}
.modale-corps{padding:28px;position:relative;}
.modale-fermer{
  position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;
  background:rgba(10,28,58,0.85);border:1px solid var(--bordure-or);display:flex;align-items:center;justify-content:center;
  color:var(--or-clair);font-size:1.1rem;z-index:5;transition:transform var(--rapide);
}
.modale-fermer:hover{transform:rotate(90deg);}
.modale-titre{font-family:var(--font-titre);font-weight:400;font-size:1.4rem;color:var(--texte-clair);margin-bottom:6px;}
.modale-ligne{display:flex;gap:10px;align-items:flex-start;font-size:0.9rem;color:var(--texte-clair);margin-bottom:12px;}
.modale-ligne svg{width:18px;height:18px;flex-shrink:0;color:var(--or);margin-top:2px;}
.modale-specialites{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.modale-specialites span{background:rgba(240,180,41,0.1);border:1px solid var(--bordure-or);padding:5px 12px;border-radius:999px;font-size:0.78rem;font-weight:600;color:var(--or-clair);}
.modale-lien-site{display:inline-block;margin-top:16px;font-weight:700;font-size:0.88rem;color:var(--or-clair);border-bottom:1.5px solid var(--or);}

/* ==========================================================================
   8. TÉMOIGNAGES
   ========================================================================== */
.temoin-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.temoin-carte{
  position:relative;overflow:hidden;background:var(--verre);border:1px solid var(--bordure-verre);
  border-radius:20px;padding:38px 28px 28px;transition:transform var(--moyen), box-shadow var(--moyen), border-color var(--moyen);
}
.temoin-carte:hover{transform:translateY(-8px);box-shadow:var(--ombre-douce);border-color:var(--bordure-or);}
.temoin-guillemet{
  position:absolute;top:-22px;right:18px;font-family:var(--font-titre);font-size:7rem;line-height:1;
  color:rgba(240,180,41,0.12);pointer-events:none;user-select:none;
}
.temoin-texte{
  position:relative;z-index:1;font-family:var(--font-titre);font-style:italic;font-weight:400;
  font-size:1.05rem;color:var(--texte-clair);line-height:1.55;margin-bottom:26px;
}
.temoin-pied{position:relative;z-index:1;display:flex;align-items:center;gap:12px;padding-top:18px;border-top:1px solid var(--bordure-verre);}
.temoin-avatar{width:46px;height:46px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid var(--or);}
.temoin-avatar img{width:100%;height:100%;object-fit:cover;}
.temoin-auteur{font-weight:700;color:var(--or-clair);font-size:0.9rem;}
.temoin-role{font-size:0.79rem;color:var(--texte-doux);}
@media (max-width:960px){.temoin-grille{grid-template-columns:1fr;max-width:480px;margin:0 auto;}}

/* ==========================================================================
   9. POURQUOI EDU.ADMIN
   ========================================================================== */
.pourquoi-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.pourquoi-carte{
  background:var(--verre);border-radius:18px;padding:32px 26px;border:1px solid var(--bordure-verre);
  transition:transform var(--moyen), box-shadow var(--moyen), border-color var(--moyen);
}
.pourquoi-carte:hover{transform:translateY(-8px);box-shadow:var(--ombre-douce);border-color:var(--bordure-or);}
.pourquoi-icone{width:56px;height:56px;border-radius:14px;margin-bottom:20px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, var(--or), var(--orange));}
.pourquoi-icone svg{width:26px;height:26px;color:#1a1204;}
.pourquoi-carte:nth-child(1):hover .icone-loupe{animation:tourner 0.6s ease;}
@keyframes tourner{from{transform:rotate(0);}to{transform:rotate(25deg);}}
.pourquoi-carte:nth-child(2):hover .icone-cadenas-anse{animation:verrouiller 0.5s ease forwards;}
@keyframes verrouiller{0%{transform:translateY(-3px);}100%{transform:translateY(0);}}
.pourquoi-carte:nth-child(3):hover .icone-coeur{animation:pulser 0.6s ease;}
@keyframes pulser{0%,100%{transform:scale(1);}50%{transform:scale(1.2);}}
.pourquoi-carte:nth-child(4):hover .icone-globe{animation:pivoter 0.8s linear;}
@keyframes pivoter{from{transform:rotate(0);}to{transform:rotate(360deg);}}
.pourquoi-carte:nth-child(5):hover .trait-education{animation:remonter 0.6s ease;}
@keyframes remonter{0%{transform:translateY(3px);}50%{transform:translateY(-2px);}100%{transform:translateY(0);}}
.pourquoi-carte:nth-child(6):hover .ruban-niveau{animation:flotter 0.6s ease;}
@keyframes flotter{0%,100%{transform:translateY(0) rotate(0);}50%{transform:translateY(-2px) rotate(-3deg);}}
.pourquoi-carte:nth-child(7):hover .icone-qualite{animation:pulser 0.6s ease;}
.pourquoi-titre{font-family:var(--font-titre);font-weight:400;font-size:1.15rem;margin-bottom:8px;color:var(--texte-clair);}
.pourquoi-texte{font-size:0.88rem;color:var(--texte-doux);}
@media (max-width:960px){.pourquoi-grille{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.pourquoi-grille{grid-template-columns:1fr;}}

/* ==========================================================================
   9bis. CASCADE DE RÉVÉLATION — décalage progressif entre eyebrow / titre / sous-titre
   et entre les cartes d'une même grille, pour une entrée en scène plus vivante à chaque section.
   ========================================================================== */
.eyebrow.revele{transition-delay:0s;}
.titre-section.revele{transition-delay:0.09s;}
.sous-titre-section.revele{transition-delay:0.18s;}
.barre-outils.revele{transition-delay:0.26s;}

.chiffres-grille .chiffre-carte:nth-child(1){transition-delay:0.05s;}
.chiffres-grille .chiffre-carte:nth-child(2){transition-delay:0.13s;}
.chiffres-grille .chiffre-carte:nth-child(3){transition-delay:0.21s;}
.chiffres-grille .chiffre-carte:nth-child(4){transition-delay:0.29s;}

.pourquoi-grille .pourquoi-carte:nth-child(1){transition-delay:0.05s;}
.pourquoi-grille .pourquoi-carte:nth-child(2){transition-delay:0.11s;}
.pourquoi-grille .pourquoi-carte:nth-child(3){transition-delay:0.17s;}
.pourquoi-grille .pourquoi-carte:nth-child(4){transition-delay:0.23s;}
.pourquoi-grille .pourquoi-carte:nth-child(5){transition-delay:0.29s;}
.pourquoi-grille .pourquoi-carte:nth-child(6){transition-delay:0.35s;}
.pourquoi-grille .pourquoi-carte:nth-child(7){transition-delay:0.41s;}

.apropos-corps p:nth-child(1){transition-delay:0.05s;}
.apropos-corps p:nth-child(2){transition-delay:0.14s;}
.apropos-corps p:nth-child(3){transition-delay:0.23s;}

/* ==========================================================================
   9ter. SOLUTIONS — Numérisation / Gestion / Développement
   ========================================================================== */
.section-etapes{padding-top:70px;}
.etapes-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.etape-carte{
  position:relative;background:var(--verre);border:1px solid var(--bordure-verre);border-radius:18px;
  padding:34px 28px 30px;transition:transform var(--moyen), box-shadow var(--moyen), border-color var(--moyen);
}
.etape-carte:hover{transform:translateY(-8px);box-shadow:var(--ombre-douce);border-color:var(--bordure-or);}
.etape-carte:nth-child(1){transition-delay:0.05s;}
.etape-carte:nth-child(2){transition-delay:0.16s;}
.etape-carte:nth-child(3){transition-delay:0.27s;}
.etape-numero{
  font-family:var(--font-titre);font-style:italic;font-size:1rem;color:var(--or);
  letter-spacing:0.06em;display:block;margin-bottom:14px;
}
.etape-icone{
  width:54px;height:54px;border-radius:14px;background:rgba(240,180,41,0.1);border:1px solid var(--bordure-or);
  display:flex;align-items:center;justify-content:center;margin-bottom:20px;
}
.etape-icone svg{width:25px;height:25px;color:var(--or);}
.etape-titre{font-family:var(--font-titre);font-weight:400;font-size:1.2rem;color:var(--texte-clair);margin-bottom:10px;}
.etape-texte{font-size:0.9rem;color:var(--texte-doux);}
.etape-carte:nth-child(1):hover .ligne-scan{animation:balayer 1s ease;}
@keyframes balayer{0%{transform:translateY(-5px);opacity:0.3;}50%{transform:translateY(5px);opacity:1;}100%{transform:translateY(-5px);opacity:0.3;}}
.etape-carte:nth-child(2):hover .trait-check{animation:tracer 0.5s ease;}
@keyframes tracer{from{stroke-dasharray:14;stroke-dashoffset:14;}to{stroke-dasharray:14;stroke-dashoffset:0;}}
.etape-carte:nth-child(3):hover .barres-croissance{animation:pousser 0.6s ease;}
@keyframes pousser{0%{transform:scaleY(0.6);}100%{transform:scaleY(1);}}
.etape-carte:nth-child(3):hover .barres-croissance{transform-origin:bottom;}
@media (max-width:960px){.etapes-grille{grid-template-columns:1fr;max-width:420px;margin:0 auto;}}

/* ==========================================================================
   9quater. QUI SOMMES-NOUS
   ========================================================================== */
.apropos-conteneur{max-width:800px;}
.apropos-intro{
  font-family:var(--font-titre);font-style:italic;font-weight:400;font-size:1.28rem;
  color:var(--or-clair);text-align:center;line-height:1.55;margin:0 auto 40px;max-width:680px;
}
.apropos-corps p{font-size:0.97rem;color:var(--texte-doux);margin-bottom:20px;}
.apropos-corps p:last-child{margin-bottom:0;}

/* ==========================================================================
   10. FOOTER
   ========================================================================== */
.pied{position:relative;z-index:2;background:#071224;color:rgba(245,247,250,0.8);padding:72px 0 26px;border-top:1px solid var(--bordure-verre);}
.pied::before{content:'';position:absolute;top:-1px;left:0;right:0;height:2px;background:linear-gradient(90deg, transparent, var(--or), transparent);}
.pied-grille{display:grid;grid-template-columns:1.3fr 0.8fr 0.9fr 1.1fr;gap:40px;margin-bottom:52px;}
.pied-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-titre);font-size:1.3rem;color:var(--texte-clair);margin-bottom:16px;}
.pied-logo img{height:40px;width:auto;}
.pied p{font-size:0.88rem;color:rgba(245,247,250,0.5);max-width:290px;}
.pied-titre-col{font-weight:700;color:var(--texte-clair);margin-bottom:18px;font-size:0.95rem;}
.pied-liens li{margin-bottom:11px;}
.pied-liens a{font-size:0.88rem;color:rgba(245,247,250,0.55);transition:color var(--rapide), padding-left var(--rapide);}
.pied-liens a:hover{color:var(--or);padding-left:4px;}
.pied-newsletter form{display:flex;gap:8px;margin-top:16px;position:relative;}
.champ-email-zone{position:relative;flex:1;}
.pied-newsletter input{
  width:100%;padding:12px 40px 12px 16px;border-radius:9px;
  border:1.5px solid rgba(255,255,255,0.15);background:rgba(255,255,255,0.04);
  color:var(--texte-clair);font-size:0.88rem;transition:border-color var(--rapide);
}
.pied-newsletter input::placeholder{color:rgba(245,247,250,0.35);}
.pied-newsletter input.valide{border-color:#4ADE80;}
.icone-validation{position:absolute;right:12px;top:50%;transform:translateY(-50%) scale(0);color:#4ADE80;transition:transform var(--rapide);}
.icone-validation.visible{transform:translateY(-50%) scale(1);}
.pied-newsletter button{
  background:linear-gradient(180deg, var(--or-clair), var(--or));color:#1a1204;padding:0 20px;border-radius:9px;
  font-weight:700;font-size:0.85rem;transition:transform var(--rapide), box-shadow var(--rapide);white-space:nowrap;
}
.pied-newsletter button:hover{transform:translateY(-2px);box-shadow:var(--ombre-or);}
.pied-confirmation{font-size:0.82rem;color:#6EE7A8;margin-top:12px;height:16px;opacity:0;transform:translateY(-6px);transition:opacity var(--moyen), transform var(--moyen);}
.pied-confirmation.visible{opacity:1;transform:translateY(0);}
.pied-bas{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:26px;border-top:1px solid var(--bordure-verre);font-size:0.8rem;color:rgba(245,247,250,0.4);}
.pied-reseaux{display:flex;gap:14px;}
.pied-reseaux a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;transition:background var(--rapide), transform var(--rapide);}
.pied-reseaux a:hover{background:var(--or);transform:translateY(-3px) rotate(8deg);}
.pied-reseaux svg{width:16px;height:16px;color:var(--texte-clair);}
.pied-reseaux a:hover svg{color:#1a1204;}
@media (max-width:1024px){.pied-grille{grid-template-columns:1fr 1fr;}}
@media (max-width:800px){.pied-grille{grid-template-columns:1fr;}.pied-bas{flex-direction:column;align-items:flex-start;}}

/* ==========================================================================
   11. CONTACT
   ========================================================================== */
.contact-mise-en-page{display:grid;grid-template-columns:0.85fr 1.15fr;gap:32px;align-items:start;}
.contact-infos{display:flex;flex-direction:column;gap:18px;}
.contact-carte{
  display:flex;align-items:flex-start;gap:16px;background:var(--verre);border:1px solid var(--bordure-verre);
  border-radius:16px;padding:22px 20px;transition:transform var(--moyen), border-color var(--moyen);
}
.contact-carte:hover{transform:translateY(-4px);border-color:var(--bordure-or);}
.contact-carte:nth-child(1){transition-delay:0.05s;}
.contact-carte:nth-child(2){transition-delay:0.13s;}
.contact-carte:nth-child(3){transition-delay:0.21s;}
.contact-icone{
  width:44px;height:44px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg, var(--or), var(--orange));
}
.contact-icone svg{width:20px;height:20px;}
.contact-titre{font-weight:700;font-size:0.92rem;color:var(--texte-clair);margin-bottom:4px;}
.contact-texte{font-size:0.87rem;color:var(--texte-doux);}
.contact-formulaire{
  background:var(--verre);border:1px solid var(--bordure-verre);border-radius:20px;padding:34px;
  transition-delay:0.15s;
}
.champ-double{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.contact-formulaire .champ{margin-bottom:18px;}
.contact-formulaire .champ span{display:block;font-size:0.83rem;font-weight:600;color:rgba(245,247,250,0.85);margin-bottom:8px;}
.contact-formulaire input, .contact-formulaire textarea{
  width:100%;padding:12px 16px;border-radius:11px;border:1.5px solid var(--bordure-verre);
  background:rgba(255,255,255,0.04);color:var(--texte-clair);font-size:0.92rem;resize:vertical;
  transition:border-color var(--rapide), box-shadow var(--rapide);
}
.contact-formulaire input::placeholder, .contact-formulaire textarea::placeholder{color:rgba(245,247,250,0.32);}
.contact-formulaire input:focus, .contact-formulaire textarea:focus{
  border-color:var(--or);outline:none;box-shadow:0 0 0 4px rgba(240,180,41,0.14);
}
.contact-confirmation{
  margin-top:16px;font-size:0.86rem;color:#6EE7A8;opacity:0;max-height:0;overflow:hidden;
  transition:opacity var(--moyen), max-height var(--moyen);
}
.contact-confirmation.visible{opacity:1;max-height:40px;}
@media (max-width:860px){
  .contact-mise-en-page{grid-template-columns:1fr;}
  .champ-double{grid-template-columns:1fr;}
  .contact-formulaire{padding:28px 24px;}
}

/* EDU.ADMIN — intégration applicative */
.nav-inscrire{display:inline-flex;align-items:center;background:rgba(255,255,255,.08);border:1px solid var(--bordure-or);padding:8px 14px;border-radius:9px;color:var(--or-clair)!important}
.nav-inscrire:hover{background:rgba(240,180,41,.14)}
.api-status{max-width:900px;margin:22px auto 0;text-align:center;color:var(--texte-doux);font-size:.9rem}
.api-status.erreur{color:#ffc5c5}
#chargerPlus{display:block;margin:36px auto 0;padding:13px 24px;border:1px solid var(--bordure-or);border-radius:10px;color:var(--or-clair);font-weight:700}
#chargerPlus:hover{background:rgba(240,180,41,.12)}
#chargerPlus:disabled{opacity:.5;cursor:wait}
.carte-image{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(17,43,77,.9),rgba(10,28,58,.8));}
.carte-image img{width:100%;height:100%;object-fit:contain;padding:24px;filter:none;transform:none;background:transparent;}
.carte-fallback{width:72px;height:72px;border-radius:22px;display:flex;align-items:center;justify-content:center;background:rgba(240,180,41,.12);border:1px solid var(--bordure-or);color:var(--or-clair);font-family:var(--font-titre);font-size:1.7rem}
.carte:hover .carte-image img{transform:none;}
.carte-description{min-height:40px}
.api-alert{display:none;margin:0 0 20px;padding:13px 15px;border-radius:10px;background:rgba(240,100,100,.1);border:1px solid rgba(255,120,120,.4);color:#ffd0d0;font-size:.9rem}
.api-alert.visible{display:block}
.piege-antibot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
#modaleImage{object-fit:contain;background:#102849;padding:28px}
@media(max-width:880px){.nav-inscrire{margin-top:8px;text-align:center}.panneau-mobile .nav-inscrire{border-bottom:1px solid var(--bordure-verre)!important}}
