/* =========================================================
   HAD GRAND BORDEAUX — feuille de style principale
   Palette : orange #ed7d31 / jaune #ffc000 / vert #70ad47
   ========================================================= */

:root{
  --orange:#ed7d31;
  --jaune:#ffc000;
  --vert:#70ad47;
  --texte:#1c1c1c;
  --texte-doux:#4d4d4d;
  --fond:#ffffff;
  --fond-alt:#faf7f2;
  --bordure:#ece7de;
  --pied:#2b2b2b;
  --ombre:0 10px 30px rgba(28,28,28,.08);
  --rayon:16px;
  --marge-page:min(6vw,72px);
  --police-titre:'Quicksand',system-ui,sans-serif;
  --police-texte:'Work Sans',system-ui,sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--police-texte);
  color:var(--texte);
  background:var(--fond);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:var(--police-titre);
  font-weight:700;
  line-height:1.15;
  margin:0 0 .5em;
  color:var(--texte);
}
p{margin:0 0 1em;color:var(--texte-doux);}
a{color:var(--orange);text-decoration:none;}
a:hover{text-decoration:underline;}
img{max-width:100%;display:block;}
:focus-visible{outline:3px solid var(--vert);outline-offset:3px;}
.conteneur{max-width:1180px;margin:0 auto;padding:0 var(--marge-page);}

.eyebrow{
  display:inline-block;
  font-family:var(--police-titre);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.78rem;
  color:var(--orange);
  margin-bottom:.6em;
}

/* =========================== EN-TETE =========================== */
.entete{
  position:sticky;top:0;z-index:100;
  background:#ffffff;
  border-bottom:1px solid var(--bordure);
}
.entete-barre{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px var(--marge-page);
  max-width:1440px;margin:0 auto;
}
.logo-lien{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.logo-lien img{height:60px;width:auto;}

.nav-principale{display:flex;}
.nav-liste{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0;}
.nav-liste>li{position:relative;}
.nav-lien{
  display:flex;align-items:center;gap:4px;
  padding:10px 8px;
  font-family:var(--police-titre);
  font-weight:600;
  font-size:.87rem;
  color:var(--texte);
  border-radius:10px;
  white-space:nowrap;
}
.nav-lien:hover,.nav-lien:focus-visible,.nav-lien.actif{
  color:var(--orange);
  background:var(--fond-alt);
  text-decoration:none;
}
.chevron{width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-4px;transition:transform .2s;}
.a-sous-menu:hover .chevron,.a-sous-menu.ouvert .chevron{transform:rotate(-135deg);margin-top:2px;}

.sous-menu{
  list-style:none;margin:0;padding:8px;
  position:absolute;top:calc(100% + 6px);left:0;
  min-width:280px;
  background:#fff;border:1px solid var(--bordure);border-radius:14px;
  box-shadow:var(--ombre);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
}
.a-sous-menu{cursor:pointer;}
li:hover>.sous-menu,li.ouvert>.sous-menu{opacity:1;visibility:visible;transform:translateY(0);}
.sous-menu a{
  display:block;padding:10px 12px;border-radius:9px;
  color:var(--texte);font-weight:500;font-size:.94rem;
}
.sous-menu a:hover{background:var(--fond-alt);color:var(--orange);text-decoration:none;}

.bouton-rejoindre{
  display:inline-flex;align-items:center;gap:6px;flex-shrink:0;white-space:nowrap;
  padding:9px 16px;border-radius:999px;margin-left:8px;
  background:var(--vert);color:#fff;
  font-family:var(--police-titre);font-weight:700;font-size:.92rem;
  box-shadow:0 6px 16px -6px rgba(112,173,71,.6);
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.bouton-rejoindre:hover{background:#5c9139;color:#fff;text-decoration:none;transform:translateY(-1px);box-shadow:0 8px 20px -6px rgba(112,173,71,.7);}
@media (max-width:960px){.bouton-rejoindre{padding:9px 16px;font-size:.86rem;margin-left:8px;}}
@media (max-width:420px){.bouton-rejoindre{padding:8px 12px;font-size:.8rem;}}

.bouton-menu-mobile{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:42px;height:42px;border:1px solid var(--bordure);border-radius:10px;
  background:#fff;cursor:pointer;
}
.bouton-menu-mobile span{width:20px;height:2px;background:var(--texte);margin:0 auto;transition:.2s;}
.bouton-menu-mobile.actif span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.bouton-menu-mobile.actif span:nth-child(2){opacity:0;}
.bouton-menu-mobile.actif span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:960px){
  .nav-principale{
    position:fixed;inset:89px 0 0 0;
    background:#fff;
    padding:14px var(--marge-page) 40px;
    transform:translateX(100%);
    transition:transform .25s ease;
    overflow-y:auto;
  }
  .nav-principale.ouvert{transform:translateX(0);}
  .nav-liste{flex-direction:column;align-items:stretch;gap:4px;}
  .nav-lien{padding:14px 12px;font-size:1.05rem;justify-content:space-between;}
  .sous-menu{
    position:static;opacity:1;visibility:visible;transform:none;
    box-shadow:none;border:none;background:var(--fond-alt);
    max-height:0;overflow:hidden;padding:0 8px;transition:max-height .25s ease,padding .25s ease;
  }
  li.ouvert>.sous-menu{max-height:400px;padding:8px;}
  .bouton-menu-mobile{display:flex;}
}

/* =========================== HERO / BANDEAU =========================== */
.hero{
  position:relative;overflow:hidden;
  padding:76px var(--marge-page) 54px;
  text-align:center;
  background:var(--fond-alt);
  border-bottom:1px solid var(--bordure);
}
.hero::before,.hero::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;
}
.hero::before{
  width:620px;height:620px;top:-260px;right:-160px;
  background:radial-gradient(circle,var(--tache1,var(--orange)) 0%,rgba(255,255,255,0) 68%);
  opacity:.30;
}
.hero::after{
  width:520px;height:520px;bottom:-240px;left:-140px;
  background:radial-gradient(circle,var(--tache2,var(--vert)) 0%,rgba(255,255,255,0) 68%);
  opacity:.26;
}
.hero-contenu{position:relative;max-width:760px;margin:0 auto;}
.hero-badge{
  width:104px;height:104px;margin:0 auto 22px;
  border-radius:50%;
  background:#fff;
  border:2px dashed var(--accent,var(--orange));
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 30px rgba(28,28,28,.10);
}
.hero-badge svg{width:50px;height:50px;}
.hero-badge.avec-logo{border-style:solid;border-color:var(--bordure);padding:14px;}
.hero-badge.avec-logo img{width:100%;height:100%;object-fit:contain;}
.hero h1{color:var(--texte);font-size:clamp(1.7rem,3.4vw,2.6rem);margin-bottom:.5em;}
.hero-trait{width:56px;height:4px;border-radius:99px;background:var(--accent,var(--orange));margin:0 auto 20px;}
.hero p{color:var(--texte-doux);max-width:600px;margin:0 auto;}
.fil-ariane{
  font-size:.8rem;color:var(--accent,var(--orange));
  margin-bottom:14px;font-family:var(--police-titre);font-weight:700;letter-spacing:.05em;text-transform:uppercase;
}

/* =========================== HERO PHOTO (bandeau photo reelle) =========================== */
.hero-photo{
  position:relative;overflow:hidden;
  height:clamp(280px,38vw,440px);
  padding:0;display:flex;align-items:flex-end;
  background:var(--pied);
}
.hero-photo-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
}
.hero-photo-scrim{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg, rgba(20,18,14,.82) 0%, rgba(20,18,14,.42) 46%, rgba(20,18,14,.08) 75%);
}
.hero-contenu-photo{
  position:relative;z-index:2;max-width:760px;margin:0 auto;
  padding:38px var(--marge-page) 34px;text-align:center;width:100%;
}
.hero-photo h1{color:#fff;}
.hero-photo p{color:rgba(255,255,255,.92);}
.fil-ariane-clair{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.3);}
.hero-photo .hero-trait{background:#fff;}

/* =========================== CARROUSEL ACTUALITES (accueil) =========================== */
.accueil-carrousel{
  position:relative;overflow:hidden;
  height:clamp(360px,44vw,480px);
  background:var(--fond-alt);
  border-bottom:1px solid var(--bordure);
}
.carrousel-piste{
  display:flex;height:100%;
  transition:transform .65s cubic-bezier(.65,0,.35,1);
  will-change:transform;
}
.carrousel-piste.sans-transition{transition:none;}
.carrousel-slide{
  flex:0 0 100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  padding:40px var(--marge-page);text-decoration:none;
}
.carrousel-contenu{
  display:flex;align-items:center;gap:56px;
  max-width:1080px;margin:0 auto;width:100%;
}
.carrousel-image{
  width:200px;height:200px;object-fit:contain;flex-shrink:0;
  filter:drop-shadow(0 18px 32px rgba(28,28,28,.16));
  transition:transform .5s ease;
}
.accueil-carrousel:hover .carrousel-slide.actif .carrousel-image,
.carrousel-slide.actif:focus-visible .carrousel-image{
  transform:scale(1.07) rotate(-2deg);
}
.carrousel-texte h2{font-size:clamp(1.5rem,3vw,2.15rem);margin:.2em 0 .5em;color:var(--texte);}
.carrousel-lien{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--police-titre);font-weight:700;color:var(--texte);
}
.carrousel-lien svg{transition:transform .3s ease;}
.carrousel-slide:hover .carrousel-lien svg,.carrousel-slide:focus-visible .carrousel-lien svg{transform:translateX(5px);}

/* Variante photo (fond photographique plein cadre) */
.carrousel-slide-photo{position:relative;padding:0;overflow:hidden;}
.carrousel-photo-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;
  transition:transform .7s ease;
}
.accueil-carrousel:hover .carrousel-slide-photo.actif .carrousel-photo-img{transform:scale(1.06);}
.carrousel-photo-voile{
  position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(15,15,15,.7) 0%,rgba(15,15,15,.28) 55%,rgba(15,15,15,.05) 100%);
}
.carrousel-photo-texte{position:relative;z-index:2;max-width:640px;margin:0 auto;text-align:center;padding:0 30px;}
.carrousel-slide-photo h2{color:#fff;}
.carrousel-slide-photo .carrousel-lien{color:#fff;}

.carrousel-fleche{
  position:absolute;top:50%;transform:translateY(-50%);
  width:46px;height:46px;border-radius:50%;border:none;background:#fff;
  box-shadow:0 8px 22px rgba(28,28,28,.16);
  display:flex;align-items:center;justify-content:center;color:var(--texte);
  cursor:pointer;opacity:0;transition:opacity .25s ease,transform .2s ease;z-index:5;
}
.accueil-carrousel:hover .carrousel-fleche,.accueil-carrousel:focus-within .carrousel-fleche{opacity:1;}
.carrousel-fleche:hover{transform:translateY(-50%) scale(1.08);background:var(--orange);color:#fff;}
.carrousel-precedent{left:18px;}
.carrousel-suivant{right:18px;}
@media (hover:none){.carrousel-fleche{opacity:1;}}

.carrousel-points{
  position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
  display:flex;gap:9px;z-index:5;
}
.carrousel-point{
  width:9px;height:9px;border-radius:50%;padding:0;border:none;
  background:rgba(255,255,255,.6);box-shadow:0 0 0 1px rgba(0,0,0,.15);
  cursor:pointer;transition:all .25s ease;
}
.carrousel-point.actif{background:var(--orange);width:26px;border-radius:5px;box-shadow:none;}

@media (max-width:760px){
  .accueil-carrousel{height:420px;}
  .carrousel-slide{height:100%;padding:32px var(--marge-page) 46px;}
  .carrousel-slide-photo{padding:0;}
  .carrousel-contenu{flex-direction:column;text-align:center;gap:18px;}
  .carrousel-image{width:130px;height:130px;}
}

/* =========================== ACCUEIL — APPEL A L'ACTION =========================== */
.cta-demande{
  background:var(--fond-alt);border-bottom:1px solid var(--bordure);
  padding:56px var(--marge-page);text-align:center;
}
.cta-demande .eyebrow{display:block;}
.cta-demande h2{font-size:clamp(1.4rem,2.6vw,1.9rem);max-width:620px;margin:0 auto .4em;}
.cta-demande p{max-width:560px;margin:0 auto 26px;}
.bouton-demande{
  display:inline-flex;align-items:center;gap:10px;
  padding:17px 34px;border-radius:999px;
  font-family:var(--police-titre);font-weight:700;font-size:1.02rem;
  background:var(--orange);color:#fff;border:none;
  box-shadow:0 0 0 0 rgba(237,125,49,.5);
  animation:pulser-cta 2.4s ease-out infinite;
}
.bouton-demande:hover{background:#d96c22;color:#fff;text-decoration:none;animation-play-state:paused;}
.bouton-demande svg{flex-shrink:0;}
@keyframes pulser-cta{
  0%{box-shadow:0 0 0 0 rgba(237,125,49,.45);}
  70%{box-shadow:0 0 0 16px rgba(237,125,49,0);}
  100%{box-shadow:0 0 0 0 rgba(237,125,49,0);}
}
@media (prefers-reduced-motion:reduce){.bouton-demande{animation:none;}}

/* =========================== ACCUEIL — CHIFFRES CLES =========================== */
.grille-bulles-indicateurs{
  display:grid;grid-template-columns:repeat(4,1fr);gap:34px;
  max-width:1040px;margin:30px auto 0;
}
.bulle-indicateur{
  position:relative;margin:0 auto;
  width:clamp(150px,18vw,220px);height:clamp(150px,18vw,220px);
}
.bulle-indicateur-fond{
  position:absolute;inset:0;
  border-radius:63% 37% 54% 46% / 43% 47% 53% 57%;
  box-shadow:0 16px 30px -12px rgba(28,28,28,.28);
}
.bulle-indicateur-fond-b{
  inset:9% -7% -7% 9%;
  border-radius:41% 59% 47% 53% / 57% 41% 59% 43%;
  opacity:.55;box-shadow:none;
}
.bulle-indicateur-contenu{
  position:relative;z-index:2;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:#fff;padding:16%;
}
.bulle-indicateur .chiffre-cle-valeur{
  font-family:var(--police-titre);font-weight:800;line-height:1;color:#fff;
  font-size:clamp(1.7rem,3.2vw,2.2rem);margin-bottom:8px;
  text-shadow:0 2px 10px rgba(0,0,0,.12);
}
.bulle-indicateur p{margin:0;font-size:.8rem;line-height:1.35;color:#fff;font-weight:600;}
@media (max-width:760px){.grille-bulles-indicateurs{grid-template-columns:1fr 1fr;gap:38px 22px;}}

/* =========================== ACCUEIL — CTA RECRUTEMENT =========================== */
.cta-rejoindre{
  background:#eef5ea;border-top:1px solid var(--bordure);
  padding:56px var(--marge-page);text-align:center;
}
.cta-rejoindre .eyebrow{display:block;color:var(--vert);}
.cta-rejoindre h2{font-size:clamp(1.4rem,2.6vw,1.9rem);max-width:620px;margin:0 auto .4em;}
.video-recrutement{
  max-width:340px;margin:8px auto 30px;border-radius:var(--rayon);
  overflow:hidden;box-shadow:0 18px 36px -14px rgba(28,28,28,.3);
  background:#000;
}
.video-recrutement video{width:100%;height:auto;display:block;}
.cta-rejoindre p{max-width:560px;margin:0 auto 26px;color:var(--texte-doux);}
.bouton-rejoindre-cta{
  display:inline-flex;align-items:center;gap:10px;
  padding:17px 34px;border-radius:999px;
  font-family:var(--police-titre);font-weight:700;font-size:1.02rem;
  background:var(--vert);color:#fff;border:none;
  box-shadow:0 0 0 0 rgba(112,173,71,.5);
  animation:pulser-vert 2.4s ease-out infinite;
}
.bouton-rejoindre-cta:hover{background:#5c9139;color:#fff;text-decoration:none;animation-play-state:paused;}
.bouton-rejoindre-cta svg{flex-shrink:0;}
@keyframes pulser-vert{
  0%{box-shadow:0 0 0 0 rgba(112,173,71,.45);}
  70%{box-shadow:0 0 0 16px rgba(112,173,71,0);}
  100%{box-shadow:0 0 0 0 rgba(112,173,71,0);}
}
@media (prefers-reduced-motion:reduce){.bouton-rejoindre-cta{animation:none;}}

/* =========================== ACCUEIL — BLOCS AVEC ENCART PHOTO =========================== */
.encart-tilt{
  border-radius:var(--rayon);box-shadow:var(--ombre);
  transition:transform .5s ease,box-shadow .5s ease;
  transform-style:preserve-3d;will-change:transform;
}
.encart-photo{
  aspect-ratio:4/3;border-radius:var(--rayon);
  background:var(--fond-alt);border:2px dashed var(--bordure);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  color:var(--texte-doux);text-align:center;padding:20px;
}
.encart-photo-icone{
  width:64px;height:64px;border-radius:50%;
  background:var(--orange);display:flex;align-items:center;justify-content:center;
  animation:flotter 3.6s ease-in-out infinite;
}
.encart-photo-icone svg{width:30px;height:30px;}
.encart-photo span{font-family:var(--police-titre);font-weight:600;font-size:.88rem;}
@keyframes flotter{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
@media (prefers-reduced-motion:reduce){.encart-photo-icone{animation:none;}}

/* =========================== ACCUEIL — SECTIONS DE CONTENU VISUELLES =========================== */
.encart-carte{
  max-width:560px;margin:0 auto;
}
.encart-carte img{width:100%;height:auto;display:block;}
.section-accueil{max-width:1100px;margin:0 auto;padding:60px var(--marge-page);text-align:center;}
.section-accueil h2{font-size:clamp(1.5rem,2.8vw,2rem);max-width:720px;margin:.2em auto .6em;}
.section-accueil .intro{max-width:680px;color:var(--texte-doux);margin:0 auto 30px;font-size:1.02rem;}

.cartes-duo{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:28px;text-align:left;}
.carte-duo{
  background:#fff;border:1px solid var(--bordure);border-radius:20px;
  padding:30px 26px;box-shadow:var(--ombre);
  transition:transform .3s ease,box-shadow .3s ease;
}
.carte-duo:hover{transform:translateY(-6px);box-shadow:0 20px 34px rgba(28,28,28,.12);}
.carte-duo-icone{
  width:56px;height:56px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;
}
.carte-duo h3{font-size:1.06rem;margin:0 0 8px;color:var(--texte);}
.carte-duo p{margin:0;color:var(--texte-doux);font-size:.92rem;}

.badge-certif{
  display:flex;align-items:center;gap:16px;
  background:#eef5ea;border:1px solid #d7e8cd;border-radius:16px;
  padding:18px 24px;max-width:720px;margin:0 auto;
  text-align:left;
}
.badge-certif-icone{
  width:44px;height:44px;border-radius:50%;background:#fff;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--ombre);
}
.badge-certif p{margin:0;color:#3f5c33;font-weight:600;font-size:.94rem;}

.grille-conditions{display:grid;grid-template-columns:1fr 1fr;gap:20px;text-align:left;}
.carte-condition{
  display:flex;gap:16px;align-items:flex-start;
  background:#fff;border:1px solid var(--bordure);border-radius:16px;
  padding:22px;box-shadow:var(--ombre);
  transition:transform .3s ease,box-shadow .3s ease;
}
.carte-condition:hover{transform:translateY(-4px);box-shadow:0 16px 28px rgba(28,28,28,.10);}
.carte-condition-icone{
  width:44px;height:44px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.carte-condition h3{font-size:.98rem;margin:0 0 6px;color:var(--texte);}
.carte-condition p{margin:0;color:var(--texte-doux);font-size:.88rem;}

.duo-medecins{
  display:flex;align-items:center;justify-content:center;gap:16px;
  max-width:820px;margin:0 auto;flex-wrap:wrap;
}
.bulle-medecin{
  flex:1 1 240px;max-width:260px;text-align:center;
  background:#fff;border:1px solid var(--bordure);border-radius:20px;
  padding:28px 22px;box-shadow:var(--ombre);
  transition:transform .3s ease;
}
.bulle-medecin:hover{transform:translateY(-6px);}
.bulle-medecin-icone{
  width:74px;height:74px;border-radius:50%;background:var(--couleur);
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px;
}
.bulle-medecin h3{font-size:1.02rem;margin:0 0 8px;color:var(--texte);}
.bulle-medecin p{margin:0;color:var(--texte-doux);font-size:.88rem;}
.connecteur-medecins{display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 0 auto;padding:0 6px;}
.connecteur-trait{width:2px;height:22px;background:var(--bordure);}
.connecteur-etiquette{
  display:flex;align-items:center;gap:6px;
  font-family:var(--police-titre);font-weight:700;font-size:.78rem;color:var(--vert);
  background:#eef5ea;border-radius:999px;padding:6px 12px;white-space:nowrap;
}

@media (max-width:700px){
  .cartes-duo{grid-template-columns:1fr;}
  .grille-conditions{grid-template-columns:1fr;}
  .badge-certif{flex-direction:column;text-align:center;}
}
@media (max-width:640px){
  .duo-medecins{flex-direction:column;}
  .connecteur-medecins{flex-direction:row;padding:6px 0;}
  .connecteur-trait{width:22px;height:2px;}
}

/* =========================== SECTIONS DE CONTENU =========================== */
.section{padding:64px var(--marge-page);}
.section-alt{background:var(--fond-alt);}
.bloc-duo{
  display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start;
  max-width:1180px;margin:0 auto;padding:44px 0;
  border-bottom:1px solid var(--bordure);
  scroll-margin-top:160px;
}
.bloc-duo:last-child{border-bottom:none;}
.bloc-duo.inverse{direction:rtl;}
.bloc-duo.inverse>*{direction:ltr;}
.bloc-duo img,.bloc-duo svg{border-radius:var(--rayon);box-shadow:var(--ombre);width:100%;height:auto;}
.bloc-duo img{aspect-ratio:4/3;object-fit:cover;}
.bloc-duo h2{font-size:1.5rem;}

@media (max-width:820px){
  .bloc-duo{grid-template-columns:1fr;gap:24px;direction:ltr!important;}
  .bloc-duo .visuel{order:-1;}
}

.contenu-simple{max-width:820px;margin:0 auto;padding:60px var(--marge-page);}

/* =========================== ENCARTS EN MEDAILLON (pages filieres / qualite) =========================== */
.bloc-medaillon{
  display:flex;align-items:center;gap:56px;
  max-width:1020px;margin:0 auto;padding:56px var(--marge-page) 10px;
}
.bloc-medaillon.inverse{flex-direction:row-reverse;}
.medaillon-visuel{flex:0 0 auto;}
.medaillon-texte{flex:1 1 auto;min-width:0;}
.medaillon-texte h2{margin-top:0;}
.medaillon-photo{
  width:220px;height:220px;border-radius:50%;flex-shrink:0;
  background:var(--fond-alt);border:2px dashed var(--bordure);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  color:var(--texte-doux);text-align:center;padding:20px;
}
.medaillon-photo-icone{
  width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  animation:flotter 3.6s ease-in-out infinite;
}
.medaillon-photo span{font-family:var(--police-titre);font-weight:600;font-size:.82rem;}
.medaillon-photo-reelle{
  width:220px;height:220px;border-radius:50%;flex-shrink:0;
  overflow:hidden;box-shadow:0 14px 30px -10px rgba(28,28,28,.3);
  border:4px solid #fff;outline:1px solid var(--bordure);
}
.medaillon-photo-reelle img{width:100%;height:100%;object-fit:cover;display:block;}
@media (max-width:760px){.medaillon-photo-reelle{width:170px;height:170px;}}
@media (max-width:760px){
  .bloc-medaillon,.bloc-medaillon.inverse{flex-direction:column;gap:26px;text-align:center;padding-top:44px;}
  .medaillon-photo{width:170px;height:170px;}
}

.illustration-deco{display:flex;flex-direction:column;align-items:center;gap:10px;margin:40px 0;}
.illustration-deco-cercle{
  width:104px;height:104px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  animation:flotter 4.2s ease-in-out infinite;
}
.illustration-deco span{font-family:var(--police-titre);font-weight:700;font-size:.86rem;color:var(--texte-doux);text-align:center;}
@media (prefers-reduced-motion:reduce){.medaillon-photo-icone,.illustration-deco-cercle{animation:none;}}

.contenu-simple h2{font-size:1.5rem;margin-top:1.4em;}
.contenu-simple h2:first-child{margin-top:0;}
.contenu-simple h3,.texte h3{font-size:1.08rem;color:var(--orange);margin:1.3em 0 .5em;font-family:var(--police-titre);}
.texte h3:first-of-type{margin-top:1.1em;}
.texte ul,.contenu-simple ul{margin:0 0 1.2em;padding-left:1.3em;color:var(--texte-doux);}
.texte li,.contenu-simple li{margin-bottom:.55em;line-height:1.55;}
.texte ul li::marker,.contenu-simple ul li::marker{color:var(--orange);}

/* =========================== TEMOIGNAGE (quote card) =========================== */
.temoignage-carte{
  display:flex;gap:32px;align-items:flex-start;
  background:#fff;border:1px solid var(--bordure);border-radius:20px;
  padding:36px;box-shadow:var(--ombre);margin:28px 0;
}
.temoignage-medaillon{
  width:112px;height:112px;border-radius:50%;overflow:hidden;flex-shrink:0;
  border:3px solid var(--fond-alt);box-shadow:0 6px 18px rgba(28,28,28,.10);
}
.temoignage-medaillon img{width:100%;height:100%;object-fit:cover;}
.temoignage-corps{position:relative;}
.guillemet{font-family:Georgia,'Times New Roman',serif;font-weight:700;}
.guillemet-ouvrant{font-size:2.6rem;line-height:0;color:var(--orange);display:inline-block;margin-bottom:-6px;position:relative;top:14px;}
.guillemet-fermant{font-size:1.7rem;line-height:1;color:var(--vert);display:inline-block;margin-left:12px;vertical-align:-6px;}
.temoignage-texte{font-style:italic;color:var(--texte);font-size:1.06rem;margin-bottom:.8em;}
.temoignage-signature{font-family:var(--police-titre);font-weight:600;color:var(--texte-doux);font-size:.92rem;margin:0;}

@media (max-width:600px){
  .temoignage-carte{flex-direction:column;align-items:center;text-align:center;padding:28px 22px;}
}

/* =========================== ARTICLE INTERVIEW (questions + citations) =========================== */
.question-interview{
  display:flex;gap:14px;align-items:flex-start;
  background:var(--fond-alt);border-left:4px solid var(--orange);
  border-radius:0 14px 14px 0;
  padding:16px 22px;margin:2.2em 0 1.1em;
}
.question-interview-icone{
  flex-shrink:0;width:32px;height:32px;border-radius:50%;
  background:var(--orange);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--police-titre);font-weight:700;font-size:1rem;
  margin-top:1px;
}
.question-interview p{
  margin:0;font-family:var(--police-titre);font-weight:700;color:var(--texte);
  font-size:1.08rem;line-height:1.4;
}
.citation-article{
  max-width:600px;margin:2.4em auto;padding:0 12px;text-align:center;
}
.citation-article .guillemet-ouvrant{font-size:2.1rem;}
.citation-article .guillemet-fermant{font-size:1.4rem;}
.citation-article p{
  display:inline;font-family:var(--police-titre);font-style:italic;font-weight:600;
  font-size:1.26rem;line-height:1.48;color:var(--texte);margin:0;
}
@media (max-width:600px){
  .citation-article p{font-size:1.1rem;}
}

/* =========================== PARCOURS D'ADMISSION =========================== */
.titre-parcours-conteneur{max-width:1180px;margin:0 auto;padding:48px var(--marge-page) 0;}
.titre-parcours-conteneur h2{margin:0;text-align:center;font-size:clamp(1.3rem,2.4vw,1.7rem);}
.illustration-parcours-conteneur{
  max-width:1180px;margin:0 auto;padding:24px var(--marge-page) 8px;
}
.illustration-parcours{
  width:100%;height:auto;display:block;
  padding:12px 0;
}
@media (max-width:820px){
  .illustration-parcours-conteneur{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .illustration-parcours{min-width:950px;}
}
.etapes-parcours{list-style:none;margin:0 0 2em;padding:0;display:flex;flex-direction:column;gap:18px;}

/* Chemin visuel (phases sequentielles, ex: parcours coordonnes) */
.chemin-phases{position:relative;margin:28px 0;max-width:760px;}
.phase-etape{display:flex;gap:22px;position:relative;padding-bottom:34px;}
.phase-etape:last-child{padding-bottom:0;}
.phase-etape::before{
  content:"";position:absolute;left:23px;top:50px;bottom:-4px;width:3px;
  background:var(--bordure);
}
.phase-etape:last-child::before{display:none;}
.phase-numero{
  width:48px;height:48px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 14px -4px rgba(28,28,28,.25);z-index:1;
}
.phase-contenu{padding-top:6px;}
.phase-contenu h4{margin:0 0 6px;font-size:1.05rem;font-family:var(--police-titre);color:var(--texte);}
.phase-contenu p{margin:0;color:var(--texte-doux);}
@media (max-width:600px){
  .phase-etape{gap:16px;}
  .phase-numero{width:40px;height:40px;}
  .phase-numero svg{width:18px;height:18px;}
  .phase-etape::before{left:19px;}
}
.etapes-parcours li{display:flex;gap:16px;align-items:flex-start;}
.etapes-parcours li p{margin:.2em 0 0;color:var(--texte-doux);}
.etapes-parcours li strong{font-family:var(--police-titre);font-size:1.02rem;color:var(--texte);}
.etape-num{
  flex-shrink:0;width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--police-titre);font-weight:700;font-size:.92rem;color:#fff;
}
.etape-orange{background:var(--orange);}
.etape-vert{background:var(--vert);}
.etape-neutre{background:#8a8a8a;}

/* =========================== SOUS-TITRE AVEC PICTO / EQUIPE =========================== */
.soustitre-picto{display:flex;align-items:center;gap:12px;}
.mini-picto{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.grille-equipe{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:20px;margin-top:8px;
}
.carte-equipe{
  display:flex;gap:16px;align-items:flex-start;
  background:#fff;border:1px solid var(--bordure);border-radius:16px;
  padding:20px;box-shadow:var(--ombre);
}
.carte-equipe .puce{
  width:52px;height:52px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.carte-equipe h4{margin:0 0 6px;font-family:var(--police-titre);font-size:1rem;color:var(--texte);}
.carte-equipe p{margin:0;color:var(--texte-doux);font-size:.88rem;}

/* =========================== CHIFFRES CLES (bulles colorees "waouh") =========================== */
.chiffres-cles{
  max-width:1100px;margin:0 auto;padding:12px var(--marge-page) 56px;
  display:flex;flex-direction:column;align-items:center;gap:56px;
}
.chiffres-secondaires{display:flex;flex-wrap:wrap;justify-content:center;gap:52px;}
.chiffre-bloc{display:flex;flex-direction:column;align-items:center;}
.bulle-stat{
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 32% 28%, var(--c1), var(--c2));
  box-shadow:0 18px 34px var(--ombre), inset 0 -10px 18px rgba(0,0,0,.14), inset 0 8px 14px rgba(255,255,255,.35);
  transform:scale(.55);opacity:0;
  transition:transform .7s cubic-bezier(.34,1.56,.64,1), opacity .5s ease;
}
.bulle-stat.visible{transform:scale(1);opacity:1;}
.bulle-grande{width:210px;height:210px;}
.bulle-petite{width:148px;height:148px;}
.bulle-valeur{
  color:#fff;font-family:var(--police-titre);font-weight:800;
  text-shadow:0 3px 8px rgba(0,0,0,.18);
}
.bulle-grande .bulle-valeur{font-size:3rem;}
.bulle-petite .bulle-valeur{font-size:2rem;}
.bulle-label{
  text-align:center;font-family:var(--police-titre);font-weight:600;
  color:var(--texte-doux);margin:18px 0 0;font-size:.95rem;max-width:170px;
}
.chiffre-principal .bulle-label{font-size:1.05rem;color:var(--texte);}

/* =========================== SOMMAIRE (scroll-spy) =========================== */
.sommaire{
  position:sticky;top:89px;z-index:40;
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;
  background:rgba(255,255,255,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--bordure);
  padding:14px var(--marge-page);
}
.sommaire a{
  font-family:var(--police-titre);font-weight:600;font-size:.88rem;
  color:var(--texte-doux);padding:8px 16px;border-radius:999px;
  border:1px solid transparent;transition:all .2s ease;
}
.sommaire a:hover{color:var(--orange);text-decoration:none;}
.sommaire a.actif{color:var(--orange);background:var(--fond-alt);border-color:var(--bordure);}

/* =========================== ANIMATION AU DEFILEMENT =========================== */
.reveal{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease;}
.reveal.pre-anim{opacity:0;transform:translateY(26px);}
.reveal.visible{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion:reduce){
  .reveal.pre-anim{opacity:1;transform:none;transition:none;}
}

/* =========================== CARTES ACTUALITES =========================== */
.grille-actus{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,260px));
  gap:26px;justify-content:center;max-width:1180px;margin:0 auto;padding:56px var(--marge-page);
}
.carte-actu{
  display:block;background:#fff;border:1px solid var(--bordure);border-radius:var(--rayon);
  overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.carte-actu:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 34px rgba(237,125,49,.18);
  border-color:var(--orange);
  text-decoration:none;
}
.carte-actu .visuel-actu{aspect-ratio:4/3;overflow:hidden;background:var(--fond-alt);}
.carte-actu .visuel-actu img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.carte-actu:hover .visuel-actu img{transform:scale(1.06);}
.carte-actu .visuel-actu-icone{display:flex;align-items:center;justify-content:center;padding:34px;}
.carte-actu .visuel-actu-icone img{width:auto;height:100%;object-fit:contain;}
.carte-actu-corps{padding:16px 18px 20px;}
.carte-actu-corps .eyebrow{margin-bottom:.4em;}
.carte-actu-corps h3{font-size:1.02rem;color:var(--texte);margin:0;}

/* =========================== BOITE A OUTILS =========================== */
.grille-outils{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:24px;max-width:1180px;margin:0 auto;padding:56px var(--marge-page);
}
.carte-outil{
  background:#fff;border:1px solid var(--bordure);border-radius:var(--rayon);padding:26px 24px;
}
.carte-outil h3{
  display:flex;align-items:center;gap:10px;font-size:1.12rem;margin-bottom:16px;
}
.puce-outil{width:34px;height:34px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.puce-outil svg{width:18px;height:18px;}
.liste-fichiers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.liste-fichiers a,.liste-fichiers span{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:10px;background:var(--fond-alt);
  color:var(--texte);font-weight:500;font-size:.94rem;
}
.liste-fichiers a:hover{background:#f1ede4;text-decoration:none;color:var(--orange);}
.liste-fichiers .icone-pdf{width:20px;height:20px;flex-shrink:0;}
.liste-fichiers .vide{color:var(--texte-doux);font-style:italic;font-weight:400;}
.liste-fichiers-extra{margin-top:8px;}
.liste-fichiers-extra[hidden]{display:none;}
.voir-plus{
  display:flex;align-items:center;gap:6px;width:100%;
  margin-top:10px;padding:9px 12px;border-radius:10px;
  background:none;border:1px dashed var(--bordure);
  font-family:var(--police-titre);font-weight:600;font-size:.86rem;color:var(--orange);
  cursor:pointer;justify-content:center;
}
.voir-plus:hover{background:var(--fond-alt);}
.voir-plus::after{content:"▾";font-size:.7rem;transition:transform .2s;}
.voir-plus.ouvert::after{transform:rotate(180deg);}

/* =========================== CONTACT =========================== */
.grille-contact{
  display:grid;grid-template-columns:1fr 1fr;gap:52px;
  max-width:1180px;margin:0 auto;padding:60px var(--marge-page);align-items:start;
}
.fiche-contact{display:flex;flex-direction:column;gap:20px;}
.ligne-contact{display:flex;align-items:flex-start;gap:14px;}
.picto-contact{
  width:44px;height:44px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.picto-contact svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:2;}
.ligne-contact strong{display:block;font-family:var(--police-titre);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--texte-doux);}
.ligne-contact span,.ligne-contact a{color:var(--texte);font-weight:600;}
.carte-territoire{}
.carte-territoire h3{padding:0 0 12px;font-size:1.1rem;}
.carte-territoire img{width:100%;height:auto;}
.avertissement-carte{
  margin:0;padding:12px 20px 18px;font-size:.82rem;color:var(--texte-doux);background:var(--fond-alt);
}

@media (max-width:820px){.grille-contact{grid-template-columns:1fr;}}

/* =========================== FORMULAIRE DE CONTACT =========================== */
.section-formulaire{background:var(--fond-alt);border-top:1px solid var(--bordure);padding:64px var(--marge-page);}
.conteneur-formulaire{max-width:760px;margin:0 auto;}
.conteneur-formulaire h2{margin:.2em 0 .5em;}
.conteneur-formulaire .intro{color:var(--texte-doux);margin-bottom:32px;}
.formulaire{background:#fff;border:1px solid var(--bordure);border-radius:20px;padding:36px;box-shadow:var(--ombre);}
.ligne-champs{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.champ{display:flex;flex-direction:column;gap:6px;margin-bottom:20px;}
.champ label{
  font-family:var(--police-titre);font-weight:600;font-size:.88rem;color:var(--texte);
}
.champ input,.champ select,.champ textarea{
  font-family:var(--police-texte);font-size:.96rem;color:var(--texte);
  border:1px solid var(--bordure);border-radius:10px;padding:11px 14px;
  background:#fff;transition:border-color .2s ease,box-shadow .2s ease;
}
.champ input:focus,.champ select:focus,.champ textarea:focus{
  outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(237,125,49,.14);
}
.champ textarea{resize:vertical;min-height:120px;font-family:var(--police-texte);}
.champ-checkbox{
  display:flex;align-items:flex-start;gap:10px;margin-bottom:22px;cursor:pointer;
}
.champ-checkbox input{margin-top:3px;flex-shrink:0;width:16px;height:16px;accent-color:var(--orange);}
.champ-checkbox span{font-size:.86rem;color:var(--texte-doux);line-height:1.5;}
.note-formulaire{font-size:.82rem;color:var(--texte-doux);margin:0 0 20px;}
.formulaire .bouton{border:none;cursor:pointer;font-size:1rem;width:100%;justify-content:center;}
@media (max-width:600px){
  .ligne-champs{grid-template-columns:1fr;gap:0;}
  .formulaire{padding:26px 22px;}
}

/* =========================== PAGE 404 =========================== */
.page-404{
  min-height:56vh;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:80px var(--marge-page);
}
.page-404-contenu{max-width:520px;}
.page-404-chiffres{
  font-family:var(--police-titre);font-weight:700;
  font-size:clamp(4rem,14vw,7.5rem);line-height:1;
  display:flex;gap:10px;justify-content:center;margin-bottom:6px;
}
.chiffre-flottant{display:inline-block;animation:flotter 2.6s ease-in-out infinite;}
.page-404 h1{font-size:clamp(1.25rem,2.6vw,1.7rem);margin:.3em 0 .5em;}
.page-404 p{color:var(--texte-doux);margin:0 auto 28px;}
.page-404-boutons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:34px;}
.page-404-liens{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;font-size:.9rem;color:var(--texte-doux);}
.page-404-liens a{font-weight:600;}
@media (prefers-reduced-motion:reduce){.chiffre-flottant{animation:none;}}

/* =========================== PIED DE PAGE =========================== */
.pied{background:var(--pied);color:#e9e7e2;padding:52px var(--marge-page) 26px;margin-top:0;}
.pied-haut{
  max-width:1180px;margin:0 auto;
  display:flex;flex-wrap:wrap;gap:36px;justify-content:space-between;
  padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.12);
}
.pied-logo a{display:inline-block;background:#fff;padding:12px 20px;border-radius:14px;margin-bottom:16px;}
.pied-logo img{height:52px;display:block;}
.pied-logo p{color:#c7c5c0;font-size:.9rem;max-width:280px;}
.pied-coord{display:flex;flex-direction:column;gap:8px;font-size:.94rem;}
.pied-coord a{color:#e9e7e2;}
.pied-coord a:hover{color:var(--jaune);}
.pied-reseaux{display:flex;align-items:flex-start;gap:12px;}
.rond-social{
  width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:center;transition:background .18s;
}
.rond-social:hover{background:var(--orange);}
.rond-social svg{width:18px;height:18px;fill:#fff;}
.pied-bas{
  max-width:1180px;margin:0 auto;padding-top:20px;
  display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;
  font-size:.82rem;color:#9c9a95;
}
.pied-liens-legaux{display:flex;gap:18px;flex-wrap:wrap;}
.pied-liens-legaux a{color:#9c9a95;}
.pied-liens-legaux a:hover{color:#fff;}

/* =========================== UTILITAIRES =========================== */
.bouton{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 26px;border-radius:999px;
  font-family:var(--police-titre);font-weight:700;font-size:.94rem;
  background:var(--orange);color:#fff;border:none;cursor:pointer;
}
.bouton:hover{background:#d96c22;text-decoration:none;color:#fff;}
.bouton-contour{background:transparent;border:2px solid var(--orange);color:var(--orange);padding:11px 24px;}
.bouton-contour:hover{background:var(--orange);color:#fff;}

.bandeau-note{
  max-width:1180px;margin:0 auto 40px;padding:16px 22px;
  background:#fff7e6;border:1px solid #ffe4a3;border-radius:12px;
  font-size:.9rem;color:#6b5a1f;
}

/* =========================== BANDEAU COOKIES (RGPD) =========================== */
.bandeau-cookies{
  position:fixed;left:0;right:0;bottom:0;z-index:9999;pointer-events:auto;
  background:#fff;border-top:1px solid var(--bordure);
  box-shadow:0 -8px 24px -10px rgba(28,28,28,.18);
  padding:18px var(--marge-page);
  display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;
}
.bandeau-cookies[hidden]{display:none;}
.bandeau-cookies-boutons{position:relative;z-index:1;pointer-events:auto;}
.bandeau-cookies p{margin:0;max-width:680px;font-size:.88rem;color:var(--texte-doux);}
.bandeau-cookies p a{color:var(--orange);font-weight:600;}
.bandeau-cookies-boutons{display:flex;gap:10px;flex-shrink:0;}
.bandeau-cookies .bouton{padding:10px 20px;font-size:.9rem;}
@media (max-width:600px){
  .bandeau-cookies{padding:16px 20px;text-align:center;}
  .bandeau-cookies-boutons{width:100%;justify-content:center;}
}
