/* ========================================================== */
/* IMCSM — Feuille de styles                                  */
/* ========================================================== */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  /* Bleu IMCSM conservé, légèrement réchauffé */
  --blue:#00537e;--blue-dark:#003d57;--blue-light:#2a7aa8;--blue-pale:#e3eef4;
  /* Accent : terracotta doux (chaleureux, humain) */
  --accent:#c97b5d;--accent-soft:#f4e6df;
  /* Fonds : crème chaude au lieu du blanc froid */
  --white:#fbf8f3;--off:#f5f0e8;--cream:#fbf8f3;
  /* Textes plus doux */
  --text:#1f2937;--mid:#52617a;--light:#94a0b3;--border:#e6dfd2;
  /* Typo originale */
  --fh:'Lora',Georgia,serif;--fb:'Sora',sans-serif;
  --r:14px;
  --sm:0 2px 12px rgba(0,83,126,.06);
  --md:0 12px 36px rgba(0,83,126,.09);
  --lg:0 24px 72px rgba(0,83,126,.13);
  --t:.28s cubic-bezier(.4,0,.2,1)}
html{scroll-behavior:smooth;background:#FAF8F4;overflow-x:hidden;scrollbar-width:none}
html::-webkit-scrollbar{display:none}
html{background:#fbf8f3}body{font-family:var(--fb);color:var(--text);background:#fbf8f3;overflow-x:hidden;font-feature-settings:'ss01','cv11';-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* === RAFFINEMENTS TYPO : Fraunces réglée + Inter optimisée === */
h1,h2,h3,h4,.htitle,.stitle,.scname,.tname,.eqvt,.cdl,.flm,.parcours-title,.actu-title,.mc-h2,.sp-title,.sp-h2{
  font-family:var(--fh);
  font-feature-settings:'ss01','ss03','onum';
  letter-spacing:-0.012em;
}
.stitle{
  font-size:clamp(34px,4vw,52px)!important;
  font-weight:400!important;
  line-height:1.08!important;
  letter-spacing:-0.022em!important;
  font-variation-settings:"opsz" 96, "SOFT" 50;
  text-wrap:balance;
}
.stitle em{font-style:italic;color:var(--blue);font-variation-settings:"opsz" 144}
.sdesc{
  font-size:17px!important;
  line-height:1.65!important;
  font-weight:400!important;
  color:var(--mid)!important;
  max-width:600px!important;
  text-wrap:pretty;
}
.htitle{
  font-size:clamp(38px,4.4vw,62px)!important;
  font-weight:400!important;
  line-height:1.05!important;
  letter-spacing:-0.024em!important;
  font-variation-settings:"opsz" 96, "SOFT" 50;
  white-space:normal!important;
  text-wrap:balance;
  color:var(--blue-dark)!important;
}
.stag{
  background:transparent!important;
  border:1px solid var(--border)!important;
  color:var(--mid)!important;
  font-family:var(--fb)!important;
  font-size:11.5px!important;
  letter-spacing:.14em!important;
  padding:6px 14px!important;
  font-weight:500!important;
}
.stag svg{color:var(--accent)}
.sh{margin-bottom:64px!important}

/* === Photos : couleur conservée === */
/* Hero photo : duotone bleu doux par-dessus */
.hero-img-bg{
  filter:grayscale(80%) contrast(1.05);
  opacity:.18!important;
}

/* === SECTIONS : espacement plus généreux === */
section{padding:120px 0!important}
@media(max-width:768px){section{padding:72px 0!important}}
#carte{padding:32px 0!important}
#hero{padding:0!important}
#contact, #faq, #equip, #equipe, #examens, #sites, #parcours, #actualites, #resultats{
  padding:120px 0!important;
}

/* === BACKGROUNDS rythme === */
#sites{background:#fbf8f3!important}
#parcours{background:#f5f0e8!important}
#equipe{background:#fbf8f3!important}
#examens{background:#f5f0e8!important}
#equip{background:#fbf8f3!important}
#actualites{background:#f5f0e8!important}
#resultats{background:#fbf8f3!important}
#faq{background:#f5f0e8!important}
#contact{background:#fbf8f3!important}
#carte{background:var(--cream)!important}

/* === CARDS plus douces === */
.scard,.ecard,.parcours-step,.actu-card,.eqi,.fqitem,.amini,.cic{
  border-color:var(--border)!important;
  background:#fff!important;
  border-radius:18px!important;
}
.scard{box-shadow:0 1px 0 rgba(0,83,126,.04),0 8px 28px rgba(0,83,126,.05)!important}
.scard:hover{box-shadow:0 16px 48px rgba(0,83,126,.10)!important}
.scname{font-size:24px!important;font-weight:500!important;letter-spacing:-0.015em!important}
.scl{
  background:var(--accent-soft)!important;
  color:var(--accent)!important;
  font-weight:600!important;
}
.scex span{
  background:var(--off)!important;
  color:var(--mid)!important;
  font-weight:500!important;
}

/* Examens : carte sombre plus chaude */
.ecard2,.ecard3{background:var(--blue-dark)!important;border-radius:20px!important}
.ecard2:hover,.ecard3:hover{background:var(--blue)!important}

/* === Boutons plus chaleureux === */
.brdv,.fsub,.mc-rdv,.trdv{
  background:var(--blue)!important;
  border-radius:12px!important;
  font-weight:500!important;
  letter-spacing:.005em!important;
  transition:background var(--t),transform var(--t),box-shadow var(--t)!important;
}
.brdv:hover,.fsub:hover,.mc-rdv:hover,.trdv:hover{
  background:var(--blue-dark)!important;
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,83,126,.18)!important;
}
.bsite{border-radius:12px!important}

/* === Tags / pills === */
.actu-tag,.sp-badge{
  background:var(--accent-soft)!important;
  color:var(--accent)!important;
  font-family:var(--fb)!important;
  letter-spacing:.08em!important;
}

/* === Équipe : cartes plus chaleureuses === */
.tcard{
  background:#fff!important;
  border:1px solid var(--border)!important;
  border-radius:18px!important;
  height:auto!important;
  min-height:380px!important;
  padding:28px 20px!important;
}
.tname{font-family:var(--fh)!important;font-size:16px!important;font-weight:500!important;letter-spacing:-0.01em!important}
.tspec{color:var(--accent)!important;font-weight:600!important;font-size:10.5px!important}
.tphoto{border-color:#fff!important;box-shadow:0 6px 20px rgba(0,83,126,.12)!important}

/* === Nav plus aérée === */
#nav.scrolled{background:rgba(251,248,243,.92)!important;backdrop-filter:blur(16px) saturate(1.4)!important;-webkit-backdrop-filter:blur(16px) saturate(1.4)!important;border-bottom:1px solid rgba(0,83,126,.06)!important;box-shadow:0 1px 0 rgba(255,255,255,.6),0 8px 24px rgba(0,83,126,.04)!important}
.nm{font-family:var(--fh)!important;font-weight:500!important;letter-spacing:-0.01em!important}

/* === Parcours : numéros plus organiques === */
.parcours-num{
  font-family:var(--fh)!important;
  font-style:italic!important;
  font-weight:500!important;
  font-size:22px!important;
  font-variation-settings:"opsz" 144;
}
.parcours-step:nth-child(1) .parcours-num{background:var(--blue)!important}
.parcours-step:nth-child(2) .parcours-num{background:var(--accent)!important}
.parcours-step:nth-child(3) .parcours-num{background:var(--blue-light)!important}
.parcours-title{font-size:19px!important;font-weight:500!important;color:var(--blue-dark)!important}
.parcours-list li{font-size:14px!important;line-height:1.6!important}

/* === FAQ === */
.fqq{font-size:15px!important;font-weight:500!important;font-family:var(--fb)!important;padding:22px 24px!important}
.fqa p{font-size:14px!important;line-height:1.75!important;color:var(--mid)!important}
.fqcb{background:var(--blue-dark)!important;border-radius:18px!important;padding:32px!important}
.fqct{font-family:var(--fh)!important;font-size:18px!important;font-weight:500!important;font-style:italic!important;letter-spacing:-0.01em!important}

/* === Footer === */
footer{background:var(--blue-dark)!important}
.flm{font-family:var(--fh)!important;font-size:24px!important;font-weight:500!important;letter-spacing:-0.015em!important}
.fct{font-family:var(--fb)!important;letter-spacing:.14em!important;color:rgba(255,255,255,.55)!important}

/* === Forms === */
.fi,.fsel,.fta{border-radius:12px!important;border:1.5px solid var(--border)!important;background:#fff!important;font-size:14.5px!important;padding:13px 16px!important}
.fi:focus,.fsel:focus,.fta:focus{border-color:var(--blue)!important;box-shadow:0 0 0 4px rgba(0,83,126,.08)!important}
.fl{font-size:13px!important;font-weight:500!important;color:var(--text)!important}

/* === Texte courant un peu plus grand === */
body{font-size:15px}

/* === Cartes de contact === */
.cdoc{background:var(--blue-dark)!important;border-radius:18px!important;padding:32px!important}
.cdl{font-family:var(--fh)!important;font-size:22px!important;font-weight:500!important;font-style:italic!important;color:#fff!important;letter-spacing:-0.012em!important;line-height:1.25!important}
.cdtx{font-size:14px!important;line-height:1.65!important}

/* === Actualités cards === */
.actu-title{font-size:18px!important;font-weight:500!important;color:var(--blue-dark)!important;letter-spacing:-0.01em!important;line-height:1.3!important}
.actu-excerpt{font-size:14px!important;line-height:1.6!important}
.actu-card{box-shadow:0 1px 0 rgba(0,83,126,.04),0 8px 24px rgba(0,83,126,.04)!important}
.actu-card:hover{box-shadow:0 16px 48px rgba(0,83,126,.10)!important}

/* === HERO : titre plus chaleureux === */
#hero .htitle em{font-style:italic;color:var(--accent)}

/* === Sites : aligner les boutons RDV === */
.sgrid .scard{display:flex!important;flex-direction:column!important}
.sgrid .scard .scf{margin-top:auto!important}

/* === Équipe : masquer la scrollbar verticale des cartes === */
.tcard{overflow:hidden!important}
.tbio{overflow:hidden!important}
/* Scroll horizontal de la liste : conserver mais masquer la barre */
.team-grid{scrollbar-width:none!important;-ms-overflow-style:none!important}
.team-grid::-webkit-scrollbar{display:none!important;height:0!important}



@media(max-width:1024px){#equip .reveal[style*="grid"]{grid-template-columns:1fr 1fr!important}}
@media(max-width:768px){
  /* Hero : masquer davantage la photo */
  .hero-overlay{background:rgba(220,235,245,0.82)!important}
  /* Engagement : grille 1 colonne */
  #equip .reveal[style*="grid"]{grid-template-columns:1fr!important}
  #equip .reveal[style*="grid"] > div{border-right:none!important}
  .equip-grid{grid-template-columns:1fr!important}
  /* FAQ : 1 colonne + centrage */
  .fqg{grid-template-columns:1fr!important;gap:28px!important}
  .fql .sh{text-align:center!important}
  .fql .stag{margin:0 auto!important}
  .fql .sdesc{text-align:center!important;margin-left:auto!important;margin-right:auto!important}
  .fql .fqcb{text-align:center!important}
  .fqcbtn{margin:0 auto!important}
  /* Contact : 1 colonne + centrage + formulaire mobile */
  .cg{grid-template-columns:1fr!important;gap:32px!important}
  .cl .sh{text-align:center!important}
  .cl .stag{display:flex!important;justify-content:center!important;margin:0 auto 12px!important}
  .cl h2.stitle{text-align:center!important}
  .cl p.sdesc{text-align:center!important;margin-left:auto!important;margin-right:auto!important}
  #contact .cl{width:100%!important;max-width:100%!important;box-sizing:border-box!important}
  .cform{width:100%!important;box-sizing:border-box!important}
  .fi,.fsel,.fta{width:100%!important;box-sizing:border-box!important;max-width:100%!important}
  .fsub{width:100%!important;box-sizing:border-box!important}
  /* Footer : centrage mobile */
  .fg2{grid-template-columns:1fr!important;gap:24px!important;text-align:center!important}
  .fg2 img{margin:0 auto 14px!important}
  .fg2 .flinks{align-items:center!important}
  .fbot{flex-direction:column!important;align-items:center!important;gap:8px!important;text-align:center!important}
  footer{padding-bottom:90px!important}
}


  .strip-tournan{font-size:13px!important}
  .strip-roissy{font-size:13px!important}
  .strip-forcilles{font-size:13px!important}
  .strip-tournan::before{content:"Tournan"!important}
  .strip-roissy::before{content:"Roissy"!important}
  .strip-forcilles::before{content:"Forcilles"!important}
  .strip-name{font-size:0!important}
  .strip-name::before{font-size:13px!important;font-family:var(--fh);font-weight:600;color:#00537e}
@media(max-width:768px){
  .strip-addr{display:none!important}
  .burger{display:none!important}
  /* Résultats section: stack columns vertically on mobile */
  #resultats .res-card{flex-direction:column!important}
  #resultats .res-orange{max-width:100%!important;padding:24px 20px!important;text-align:center!important}
  #resultats .res-form{padding:20px!important}
  #resultats .res-form form{gap:10px!important}
}

@media(max-width:768px){
  /* Hide desktop nav elements */
  .nlinks{display:none!important}
  .burger{display:none!important}
  .ntel{display:none!important}
  
  /* Make navbar transparent/floating */
  #nav{
    background:transparent!important;
    border-bottom:none!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
  }
  
  /* Inner nav: logo left, hamburger right, floating */
  .ni{
    height:60px!important;
    padding:0 16px!important;
    justify-content:space-between!important;
  }
  
  /* Logo pill (left) */
  .nl{
    background:rgba(255,255,255,0.92)!important;
    backdrop-filter:blur(10px)!important;
    border-radius:100px!important;
    padding:6px 14px 6px 8px!important;
    box-shadow:0 4px 16px rgba(0,83,126,0.15)!important;
  }
  
  /* Hamburger floating button (right) */
  #mobile-burger{
    display:flex!important;
    align-items:center;justify-content:center;
    width:44px;height:44px;
    background:rgba(255,255,255,0.92);
    backdrop-filter:blur(10px);
    border-radius:100px;
    border:none;cursor:pointer;
    box-shadow:0 4px 16px rgba(0,83,126,0.15);
  }
}
@media(min-width:769px){#mobile-burger{display:none!important}#mobile-menu{display:none!important}}


@media(max-width:768px){
  /* Hide floating logo pill in nav */
  .nl{display:none!important}
  #mobile-burger{position:fixed;top:14px;right:14px;z-index:1001}

  /* Hero: flex column */
  #hero{padding-top:0!important;min-height:auto!important}
  #hero .hero-grid{
    display:flex!important;
    flex-direction:column!important;
    padding:0!important;
  }

  /* Logo column: row layout, logo left + title right, no background */
  #hero .hero-logo-col{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:14px!important;
    padding:72px 20px 12px!important;
    background:transparent!important;
  }
  /* Logo itself: smaller, no white background */
  #hero .hero-logo-col > div{
    width:100px!important;
    margin-left:0!important;
    flex-shrink:0!important;
    background:none!important;
    border-radius:0!important;
    box-shadow:none!important;
    padding:0!important;
  }

  /* Show title next to logo by moving text col to flex-row for first element */
  #hero .hero-logo-col{
    /* Already set above, override to also show title */
    align-items:flex-start!important;
  }
  /* Title: visible next to logo */
  #hero .htitle{
    font-size:clamp(18px,4.5vw,26px)!important;
    line-height:1.2!important;
    margin-bottom:0!important;
    color:#00537e!important;
  }

  /* Restructure: logo col + title in a row, text below */
  #hero .hero-grid{
    display:grid!important;
    grid-template-columns:100px 1fr!important;
    grid-template-rows:auto auto!important;
    gap:0!important;
    padding:72px 20px 0!important;
  }
  #hero .hero-logo-col{
    grid-column:1!important;
    grid-row:1!important;
    padding:0!important;
    background:transparent!important;
    align-items:flex-start!important;
    padding-top:4px!important;
  }
  #hero .hero-logo-col > div{
    width:90px!important;
  }
  #hero .hero-text-col{
    grid-column:2!important;
    grid-row:1!important;
    padding-left:12px!important;
    padding-right:0!important;
    margin-top:0!important;
  }
  /* Paragraphs span full width below */
  #hero .hero-text-col p{
    /* Keep inline - they'll naturally flow */
  }
  /* Text column: below */
  #hero .hero-text-col.standalone{
    padding:16px 20px 32px!important;
    margin-top:0!important;
  }
  #hero .hero-text-col p{
    font-size:14px!important;
    margin-bottom:10px!important;
  }

  /* Hide tagline and second paragraph on mobile */
  #hero .afu.d1{display:none!important}
}


@media(max-width:768px){
  /* Nav: hide logo pill, keep burger */
  .nl{display:none!important}
  .nlinks{display:none!important}
  #mobile-burger{position:fixed;top:14px;right:14px;z-index:1001}

  /* Hero mobile : laisse la place au strip (52px) + boutons (80px) */
  #hero{
    padding-top:0!important;
    min-height:0!important;
    height:calc(100vh - 132px)!important;
    padding-bottom:0!important;
    background:#fbf8f3!important;
    align-items:stretch!important;
  }
  #hero .hero-overlay{background:rgba(250,248,244,1)!important}

  #hero .hero-grid{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    height:100%!important;
    width:100%!important;
    padding:80px 20px 20px!important;
    gap:16px!important;
    box-sizing:border-box!important;
  }

  /* Logo col : centré */
  #hero .hero-logo-col{
    display:flex!important;
    justify-content:center!important;
    margin-bottom:0!important;
  }
  #hero .hero-logo-col > div{
    width:min(360px,92vw)!important;
    margin-left:0!important;
    background:none!important;
    border-radius:0!important;
    box-shadow:none!important;
    padding:0!important;
  }

  /* Text col : centré */
  #hero .hero-text-col{
    padding:0!important;
    margin-top:0!important;
    text-align:center!important;
    width:100%!important;
  }
  #hero .htitle{font-size:clamp(20px,5.5vw,26px)!important;margin-bottom:8px!important;text-align:center!important;line-height:1.25!important}
  #hero .afu.d1{display:none!important}
  #hero .hero-text-col p{font-size:13px!important;margin-bottom:6px!important;line-height:1.5!important}

  /* Strip : flux normal, collé sous le hero, au-dessus des boutons fixes */
  #hero + div{
    position:relative!important;
    margin-bottom:80px!important;
    box-sizing:border-box!important;
    border-left:none!important;
    border-right:none!important;
  }
  #hero + div > div{grid-template-columns:repeat(3,1fr)!important;width:100%!important;box-sizing:border-box!important}
  #hero + div > div > div{padding:12px 6px!important;justify-content:center!important;align-items:center!important}
  #hero + div > div > div > div:first-child{justify-content:center!important}

  /* Misc labels strip */
  .strip-addr{display:none!important}
  .burger{display:none!important}
  .strip-name{font-size:0!important}
  .strip-tournan::before{content:"Tournan";font-size:13px;font-family:var(--fh);font-weight:600;color:#00537e}
  .strip-roissy::before{content:"Roissy";font-size:13px;font-family:var(--fh);font-weight:600;color:#00537e}
  .strip-forcilles::before{content:"Forcilles";font-size:13px;font-family:var(--fh);font-weight:600;color:#00537e}
}

/* TEAM */
.team-grid{display:flex;flex-wrap:nowrap;align-items:stretch;gap:16px;overflow-x:auto;padding-bottom:16px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;cursor:grab}
.team-grid:active{cursor:grabbing}
.team-grid::-webkit-scrollbar{height:6px}
.team-grid::-webkit-scrollbar-track{background:#DDE4EE;border-radius:3px}
.team-grid::-webkit-scrollbar-thumb{background:#00537e;border-radius:3px}
.team-grid::-webkit-scrollbar-thumb:hover{background:#003d5c}
.tcard{background:#FAF8F4;border:1px solid var(--border);border-radius:16px;padding:24px 18px;text-align:center;transition:box-shadow var(--t),transform var(--t);flex:0 0 200px;width:200px;scroll-snap-align:start;display:flex;flex-direction:column;height:390px;overflow:hidden}
.tcard:hover{box-shadow:var(--md);transform:translateY(-4px)}
.tphoto{width:88px;height:88px;border-radius:50%;object-fit:cover;border:3px solid var(--white);box-shadow:0 4px 16px rgba(26,75,140,.15);display:block;margin:0 auto 14px;background:#FAF8F4}
.tphoto-init{display:flex;align-items:center;justify-content:center;background:var(--blue-pale);color:var(--blue);font-family:var(--fh);font-size:22px;font-weight:600}
.tname{font-size:13px;font-weight:600;color:var(--text);line-height:1.3;margin-bottom:5px}
.tspec{font-size:11px;color:var(--blue);font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}
.tbio{font-size:11px;color:var(--light);line-height:1.6;font-weight:300;min-height:32px}
.tsect{display:inline-block;margin-top:10px;background:var(--blue-pale);color:var(--blue);padding:3px 10px;border-radius:100px;font-size:10.5px;font-weight:500}
.trdv{display:block;margin-top:auto;background:var(--blue);color:#fff;border:none;border-radius:8px;padding:8px 12px;font-size:11px;font-weight:600;cursor:pointer;text-decoration:none;font-family:var(--fb);transition:background .2s}
.trdv:hover{background:var(--blue-dark)}

/* Équipe : scroll horizontal forcé sur mobile */
@media(max-width:768px){
  .team-grid{flex-direction:row!important;flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}
  .tcard{flex:0 0 160px!important;width:160px!important;min-width:160px!important;height:460px!important}
}

/* ROISSY GALLERY */
.roissy-gallery{background:#000;position:relative}
.roissy-main{width:100%;height:200px;object-fit:cover;display:block;cursor:pointer;transition:opacity .2s}
.roissy-main:hover{opacity:.92}
.roissy-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:#000}
.roissy-thumbs img{width:100%;height:64px;object-fit:cover;cursor:pointer;opacity:.75;transition:opacity .2s}
.roissy-thumbs img:hover{opacity:1}

/* PHOTOS */
.hero-img-bg{display:none}
.scard-img{width:100%;height:200px;object-fit:cover;display:block}
.tournan-main,.forcilles-main{width:100%;height:200px;object-fit:cover;display:block;cursor:pointer;transition:opacity .2s}
.tournan-main:hover,.forcilles-main:hover{opacity:.92}
.ecard-img{width:100%;height:120px;object-fit:cover;display:block;border-radius:10px;margin-bottom:16px}
.equip-photo{width:100%;height:200px;object-fit:cover;border-radius:16px;margin-bottom:20px}

/* NAV */
#nav{position:fixed;top:0;left:0;right:0;z-index:999;background:transparent;border-bottom:1px solid transparent;overflow:hidden;transition:background .4s ease,border-color .4s ease,box-shadow .4s ease}
#nav.scrolled{background:linear-gradient(135deg,#FAF8F4 0%,#F3EFE8 100%)!important;border-bottom:1px solid var(--border)!important;box-shadow:0 4px 24px rgba(0,0,0,0.08)!important}
.ni{max-width:1200px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:92px;gap:16px}
.nl{display:flex;align-items:center;text-decoration:none;flex-shrink:0}
.nm{font-family:var(--fh);font-size:19px;font-weight:600;color:var(--blue-dark)}
.ns{font-size:9.5px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--light)}
.nlinks{display:flex;align-items:center;gap:0px;list-style:none}
.nlinks a{display:block;padding:8px 10px;font-size:13.5px;font-weight:500;color:var(--mid);text-decoration:none;border-radius:8px;transition:background var(--t),color var(--t);white-space:nowrap}
.nlinks a:hover{background:var(--blue-pale);color:var(--blue)}
.nresult{background:var(--blue)!important;color:var(--white)!important;font-weight:500!important;padding:9px 18px!important;border-radius:8px!important;transition:background var(--t)!important}
.nresult:hover{background:var(--blue-dark)!important}
.nrdv{background:var(--blue)!important;color:var(--white)!important;font-weight:500!important;padding:9px 18px!important;border-radius:8px!important}
.nrdv:hover{background:var(--blue-dark)!important}
.ntel{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--blue);text-decoration:none;white-space:nowrap;flex-shrink:0}
.ntel svg{width:14px;height:14px}

/* HERO */
#hero{padding-top:72px;min-height:100vh;background:linear-gradient(135deg,#FAF8F4 0%,#F3EFE8 100%);display:flex;align-items:center;position:relative;overflow:hidden}
.hc1{position:absolute;inset:0;pointer-events:none}
.hc1::before{content:'';position:absolute;top:-180px;right:-180px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.05) 0%,transparent 70%)}
.hc1::after{content:'';position:absolute;bottom:-120px;left:30%;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(10,180,180,.12) 0%,transparent 70%)}
.hi{max-width:1200px;margin:0 auto;padding:80px 32px;display:grid;grid-template-columns:1fr 400px;gap:64px;align-items:center;position:relative;z-index:2;width:100%}
.hbadge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.9);padding:6px 14px;border-radius:100px;font-size:12px;margin-bottom:24px}
.hbadge span{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block}
.htitle{font-family:var(--fh);font-size:1.5vw;font-weight:400;line-height:1.2;color:#00537e;margin-bottom:20px;white-space:nowrap}
.htitle em{font-style:italic;color:rgba(255,255,255,.75)}
.hdesc{font-size:15.5px;line-height:1.75;font-weight:300;color:#00537e;max-width:520px;margin-bottom:40px}
.hbtns{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.bw{display:inline-flex;align-items:center;gap:8px;background:var(--white);color:var(--blue-dark);padding:14px 26px;border-radius:10px;font-size:13.5px;font-weight:600;text-decoration:none;box-shadow:0 4px 20px rgba(0,0,0,.15);transition:transform var(--t),box-shadow var(--t)}
.bw:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,.2)}
.bw svg{width:16px;height:16px;color:var(--blue)}
.bo{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--white);padding:13px 22px;border-radius:10px;border:1.5px solid rgba(255,255,255,.35);font-size:13.5px;font-weight:400;text-decoration:none;transition:border-color var(--t),background var(--t)}
.bo:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.6)}
.hstats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:48px}
.hstat{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:var(--r);padding:18px 16px}
.hsn{font-family:var(--fh);font-size:30px;font-weight:600;color:var(--white);line-height:1}
.hsl{font-size:11.5px;font-weight:300;color:rgba(255,255,255,.55);margin-top:5px}
/* hero card */
.hcard{background:var(--white);border-radius:20px;box-shadow:var(--lg);overflow:hidden}
.hch{background:var(--blue-pale);padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.hcht{font-size:13.5px;font-weight:600;color:var(--blue)}
.hcbadge{background:#E8F8F8;color:var(--accent);padding:3px 10px;border-radius:100px;font-size:11px;font-weight:500}
.hcb{padding:20px 22px}

.hsi{display:flex;align-items:flex-start;gap:12px;padding:13px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--t);border-radius:8px;padding:10px 8px;margin:0 -8px}
.hsi:hover{background:var(--blue-pale)}
.hsi:last-child{border-bottom:none}
.hsi-thumb{width:52px;height:52px;border-radius:10px;object-fit:cover;flex-shrink:0;border:2px solid var(--border)}
.sin{font-size:13px;font-weight:600;color:var(--text)}
.sia{font-size:11.5px;color:var(--light);margin-top:2px}
.sih{font-size:11px;color:var(--accent);font-weight:500;margin-top:2px}

.hsi:last-child{border-bottom:none;padding-bottom:0}
.sico{width:38px;height:38px;border-radius:9px;background:var(--blue-pale);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sico svg{width:18px;height:18px;color:var(--blue)}
.sin{font-size:13px;font-weight:600;color:var(--text)}
.sia{font-size:11.5px;color:var(--light);margin-top:2px}
.sih{font-size:11px;color:var(--accent);font-weight:500;margin-top:2px}
.hcf{padding:14px 22px;background:var(--blue)}
.hcf a{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--white);text-decoration:none;font-size:13.5px;font-weight:500}
.hcf svg{width:15px;height:15px}

/* SECTIONS */
.sw{max-width:1200px;margin:0 auto;padding:0 32px}
.sh{text-align:center;margin-bottom:52px}
.stag{display:inline-flex;align-items:center;gap:7px;background:var(--blue-pale);color:var(--blue);padding:5px 13px;border-radius:100px;font-size:11.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px}
.stag svg{width:12px;height:12px}
.stitle{font-family:var(--fh);font-size:clamp(28px,3.5vw,42px);font-weight:400;color:var(--text);line-height:1.2}
.stitle em{font-style:italic;color:var(--blue)}
.sdesc{font-size:15px;font-weight:300;line-height:1.75;color:var(--mid);max-width:560px;margin:14px auto 0}

/* ABOUT */
#about{padding:96px 0;background:var(--off)}
.ag{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.al .sh{text-align:left}
.al .sdesc{margin-left:0}
.afeats{display:flex;flex-direction:column;gap:16px;margin-top:32px}
.afeat{display:flex;gap:14px;align-items:flex-start;background:var(--white);border-radius:var(--r);padding:18px 20px;border:1px solid var(--border);transition:box-shadow var(--t),transform var(--t)}
.afeat:hover{box-shadow:var(--sm);transform:translateX(4px)}
.fico{width:42px;height:42px;border-radius:10px;background:var(--blue-pale);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fico svg{width:20px;height:20px;color:var(--blue)}
.ftt{font-size:13.5px;font-weight:600;color:var(--text);margin-bottom:3px}
.ftx{font-size:12.5px;color:var(--mid);line-height:1.6;font-weight:300}
.ar{display:flex;flex-direction:column;gap:18px}
.abig{background:var(--blue-dark);color:var(--white);border-radius:20px;padding:36px;position:relative;overflow:hidden}
.abig::before{content:'';position:absolute;top:-50px;right:-50px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(10,180,180,.15) 0%,transparent 70%)}
.abignum{font-family:var(--fh);font-size:52px;font-weight:600;color:var(--white);line-height:1;margin-bottom:10px}
.abignum span{color:var(--accent)}
.abigt{font-size:15px;font-weight:300;color:rgba(255,255,255,.8);line-height:1.55}
.arow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.amini{background:var(--white);border-radius:var(--r);padding:22px;text-align:center;border:1px solid var(--border)}
.amin{font-family:var(--fh);font-size:34px;font-weight:600;color:var(--blue)}
.aml{font-size:12px;color:var(--light);margin-top:4px;font-weight:300}

/* SITES */
#sites{padding:48px 0 96px;background:var(--white)}
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.scard{border-radius:20px;overflow:hidden;border:1px solid var(--border);transition:box-shadow var(--t),transform var(--t);background:var(--white)}
.scard:hover{box-shadow:var(--md);transform:translateY(-4px)}
.sch{padding:22px 24px 0;display:flex;justify-content:space-between;align-items:flex-start}
.scl{background:var(--blue-pale);color:var(--blue);padding:3px 11px;border-radius:100px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}
.scop{font-size:11px;color:#16A34A;font-weight:500}
.scb{padding:18px 24px 20px}
.scname{font-family:var(--fh);font-size:21px;font-weight:600;color:var(--text);margin-bottom:7px}
.scaddr{font-size:12.5px;color:var(--light);line-height:1.6;margin-bottom:14px}
.schb{background:var(--off);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.schr{display:flex;justify-content:space-between;font-size:12.5px;gap:8px;padding:2px 0}
.schr span:first-child{color:var(--mid)}
.schr span:last-child{color:var(--text);font-weight:500}
.sctel{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--blue);text-decoration:none;margin-bottom:12px}
.sctel svg{width:14px;height:14px}
.scex{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:18px}
.scex span{background:var(--blue-pale);color:var(--blue);padding:3px 9px;border-radius:5px;font-size:11px}
.scf{padding:0 24px 22px}
.scard-img-click{cursor:pointer;position:relative}
.scard-img-click::after{content:'Voir le centre →';position:absolute;inset:0;background:rgba(16,46,90,.45);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;opacity:0;transition:opacity .2s}
.scard-img-click:hover{opacity:.88}
.bsite{width:100%;background:none;border:1px solid var(--border);color:var(--blue);padding:10px;border-radius:10px;font-family:var(--fb);font-size:13px;font-weight:500;cursor:pointer;margin-top:8px;transition:background var(--t),color var(--t)}
.bsite:hover{background:var(--blue-pale)}
.brdv{display:flex;align-items:center;justify-content:center;gap:7px;background:var(--blue);color:var(--white);padding:12px;border-radius:10px;text-decoration:none;font-size:13px;font-weight:500;transition:background var(--t)}
.brdv:hover{background:var(--blue-dark)}
.brdv svg{width:15px;height:15px}

/* EXAMENS */
#examens{padding:96px 0;background:var(--off)}
.egrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ecard{background:var(--white);border-radius:16px;padding:26px 24px;border:1px solid var(--border);transition:box-shadow var(--t),transform var(--t)}
.ecard:hover{box-shadow:var(--sm);transform:translateY(-3px)}
.eico{width:50px;height:50px;border-radius:13px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.eico svg{width:26px;height:26px}
.eib{background:#e3eff5}.eib svg{color:var(--blue)}
.eit{background:#E6FAF8}.eit svg{color:#0B9B93}
.eip{background:#F0ECFF}.eip svg{color:#6B4ECC}
.eir{background:#FFF0F3}.eir svg{color:#D1436E}
.eia{background:#FFF8E6}.eia svg{color:#C07B00}
.eig{background:#E6F9EF}.eig svg{color:#1A7A42}
.ename{font-size:15.5px;font-weight:600;color:var(--text);margin-bottom:10px}
.elink{display:inline-block;color:var(--blue);text-decoration:none;transition:color var(--t)}
.elink:hover{color:var(--blue-light);text-decoration:underline}
.elist{list-style:none;display:flex;flex-direction:column;gap:6px}
.elist li{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--mid);font-weight:300}
.elist li::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--blue-light);flex-shrink:0}

/* EQUIP */
#equip{padding:96px 0;background:var(--white)}
.eqg{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.eql .sh{text-align:left}
.eql .sdesc{margin-left:0;margin-bottom:28px}
.eqlist{display:flex;flex-direction:column;gap:14px}
.eqi{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--off);border-radius:var(--r);border:1px solid var(--border)}
.eqico{width:42px;height:42px;background:var(--blue-pale);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.eqico svg{width:20px;height:20px;color:var(--blue)}
.eqin{font-size:13.5px;font-weight:600;color:var(--text)}
.eqid{font-size:12px;color:var(--light);margin-top:2px;font-weight:300}
.eqvis{background:var(--blue-dark);border-radius:24px;padding:40px;position:relative;overflow:hidden;min-height:400px;display:flex;flex-direction:column;justify-content:flex-end}
.eqvis::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(10,180,180,.1) 0%,transparent 60%)}
.eqvg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:40px 40px}
.eqvc{position:relative;z-index:2}
.eqvl{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.eqvt{font-family:var(--fh);font-size:26px;font-weight:400;font-style:italic;color:var(--white);line-height:1.3;margin-bottom:18px}
.eqcg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.eqci{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:13px 15px}
.eqcn{font-size:12.5px;font-weight:500;color:var(--white)}
.eqcd{font-size:11px;color:rgba(255,255,255,.5);margin-top:2px;font-weight:300}

/* FAQ */
#faq{padding:96px 0;background:var(--off)}
.fqg{display:grid;grid-template-columns:1fr 1.6fr;gap:60px;align-items:start}
.fql .sh{text-align:left}
.fql .sdesc{margin-left:0;margin-bottom:28px}
.fqcb{background:var(--blue);border-radius:16px;padding:26px}
.fqct{font-size:14.5px;font-weight:600;color:var(--white);margin-bottom:5px}
.fqctx{font-size:12.5px;color:rgba(255,255,255,0.65);margin-bottom:18px;font-weight:300}
.fqcbtn{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);color:var(--white);border:1px solid rgba(255,255,255,.2);padding:10px 16px;border-radius:8px;font-size:13px;font-weight:500;text-decoration:none;width:fit-content;transition:background var(--t)}
.fqcbtn:hover{background:rgba(255,255,255,.2)}
.fqcbtn svg{width:14px;height:14px}
.fqitems{display:flex;flex-direction:column;gap:10px}
.fqitem{background:var(--white);border-radius:13px;border:1px solid var(--border);overflow:hidden}
.fqq{width:100%;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 22px;text-align:left;font-family:var(--fb);font-size:14px;font-weight:500;color:var(--text);transition:background var(--t)}
.fqq:hover{background:var(--off)}
.fqq.open{color:var(--blue)}
.fqchev{width:22px;height:22px;border-radius:50%;background:var(--blue-pale);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform var(--t),background var(--t)}
.fqq.open .fqchev{transform:rotate(180deg);background:var(--blue)}
.fqchev svg{width:11px;height:11px;color:var(--blue)}
.fqq.open .fqchev svg{color:var(--white)}
.fqa{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s ease;padding:0 22px}
.fqa.open{max-height:300px;padding:0 22px 20px}
.fqa p{font-size:13px;color:var(--mid);line-height:1.75;font-weight:300}

/* CONTACT */
#contact{padding:96px 0;background:var(--white)}
.cg{display:grid;grid-template-columns:1.2fr 1fr;gap:52px;align-items:start}
.cl .sh{text-align:left}
.cl .sdesc{margin-left:0}
.cform{margin-top:28px;display:flex;flex-direction:column;gap:13px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.fg{display:flex;flex-direction:column;gap:5px}
.fl{font-size:12.5px;font-weight:500;color:var(--text)}
.fi,.fsel,.fta{padding:11px 15px;border-radius:9px;border:1.5px solid var(--border);background:var(--white);font-family:var(--fb);font-size:13.5px;color:var(--text);outline:none;transition:border-color var(--t),box-shadow var(--t);appearance:none}
.fi:focus,.fsel:focus,.fta:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(26,75,140,.08)}
.fta{resize:vertical;min-height:100px}
.fsub{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:var(--white);padding:13px 26px;border-radius:10px;border:none;font-family:var(--fb);font-size:14px;font-weight:500;cursor:pointer;transition:background var(--t),transform var(--t);margin-top:2px}
.fsub:hover{background:var(--blue-dark);transform:translateY(-1px)}
.fsub svg{width:16px;height:16px}
.cr{display:flex;flex-direction:column;gap:16px}
.cic{background:var(--off);border-radius:15px;border:1px solid var(--border);overflow:hidden}
.cih{background:var(--blue-pale);padding:12px 18px;font-size:12.5px;font-weight:600;color:var(--blue);border-bottom:1px solid var(--border)}
.cib{padding:14px 18px;display:flex;flex-direction:column;gap:9px}
.crow{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--mid)}
.crow svg{width:15px;height:15px;color:var(--blue);flex-shrink:0}
.crow a{color:var(--blue);text-decoration:none;font-weight:500}
.crow a:hover{text-decoration:underline}
.cdoc{background:#00537e;border-radius:15px;padding:26px;display:flex;flex-direction:column;gap:10px}
.cdl{font-family:var(--fh);font-size:19px;font-weight:600;color:var(--white);font-style:italic}
.cdtx{font-size:12.5px;color:rgba(255,255,255,.75);line-height:1.6;font-weight:300}
.cdbtn{display:flex;align-items:center;justify-content:center;gap:7px;background:var(--white);color:#00537e;padding:12px;border-radius:9px;text-decoration:none;font-size:13.5px;font-weight:600;transition:opacity var(--t)}
.cdbtn:hover{opacity:.9}
.cdbtn svg{width:15px;height:15px}

/* FOOTER */
footer{background:var(--blue-dark);color:rgba(255,255,255,0.7)}
.fi2{max-width:1200px;margin:0 auto;padding:56px 32px 28px}
.fg2{display:grid;grid-template-columns:2fr 1.5fr 0.8fr 1fr;gap:44px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:28px}
.flm{font-family:var(--fh);font-size:21px;font-weight:600;color:var(--white);margin-bottom:3px}
.fls{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:16px}
.fab{font-size:12.5px;line-height:1.7;font-weight:300;margin-bottom:22px}
.fct{font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--white);margin-bottom:16px}
.flinks{list-style:none;display:flex;flex-direction:column;gap:9px}
.flinks a{font-size:12.5px;color:rgba(255,255,255,.55);text-decoration:none;font-weight:300;transition:color var(--t)}
.flinks a:hover{color:var(--white)}
.fbot{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:rgba(255,255,255,.3)}
.fbot a{color:rgba(255,255,255,.4);text-decoration:none}
.fbot a:hover{color:#00537e}

/* REVEAL */
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.afu{opacity:0;animation:fadeUp .65s ease forwards}
.d1{animation-delay:.1s}.d2{animation-delay:.2s}.d3{animation-delay:.3s}.d4{animation-delay:.4s}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* RESPONSIVE */
@media(max-width:1024px){.hi{grid-template-columns:1fr}.hcard{display:none}.ag,.eqg,.cg,.fqg{grid-template-columns:1fr}.sgrid{grid-template-columns:1fr 1fr}.egrid{grid-template-columns:1fr 1fr}.fg2{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.nlinks,.ntel{display:none}.burger{display:block!important}.sw{padding:0 16px;max-width:100%;box-sizing:border-box}section,#about,#sites,#examens,#equip,#faq,#contact,#equipe{padding:64px 0}.sgrid,.egrid{grid-template-columns:1fr}.arow{grid-template-columns:1fr}.frow{grid-template-columns:1fr}.fg2{display:none!important}.hstats{grid-template-columns:1fr}.fqcb-desktop{display:none!important}.fqcb-mobile{display:block!important}}
@media(min-width:769px){.fqcb-mobile{display:none!important}.fqcb-desktop{display:block}}
.burger{display:none;background:none;border:none;cursor:pointer;padding:8px}
.burger span{display:block;width:22px;height:2px;background:#003d57;margin:5px 0;border-radius:2px}

.scname[onclick]{text-decoration:none}
.scname[onclick]:hover{color:var(--blue-light)}

/* === PARCOURS PATIENT === */
.parcours-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative}
.parcours-steps::before{content:'';position:absolute;top:52px;left:calc(16.66% + 12px);right:calc(16.66% + 12px);height:2px;background:linear-gradient(to right,var(--blue-pale),var(--accent),var(--blue-pale));z-index:0}
.parcours-step{background:var(--white);border:1px solid var(--border);border-radius:20px;padding:28px 24px;position:relative;z-index:1;box-shadow:var(--sm);transition:box-shadow var(--t),transform var(--t)}
.parcours-step:hover{box-shadow:var(--md);transform:translateY(-4px)}
.parcours-num{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--fh);font-size:18px;font-weight:700;margin:0 auto 20px;color:#fff}
.parcours-icon{font-size:22px;margin-bottom:6px;display:block;text-align:center}
.parcours-title{font-family:var(--fh);font-size:17px;font-weight:600;color:var(--blue-dark);text-align:center;margin-bottom:18px}
.parcours-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.parcours-list li{display:flex;gap:10px;font-size:13.5px;color:var(--mid);line-height:1.55;align-items:flex-start}
.parcours-step:nth-child(1) .parcours-list li::before{content:'';width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;display:block;background:var(--blue)}.parcours-step:nth-child(2) .parcours-list li::before{content:'';width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;display:block;background:var(--accent)}.parcours-step:nth-child(3) .parcours-list li::before{content:'';width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;display:block;background:var(--blue-light)}
@media(max-width:768px){
  .parcours-steps{grid-template-columns:1fr;gap:16px}
  .parcours-steps::before{display:none}
  .parcours-step{padding:22px 18px}
}

/* === ACTUALITÉS === */
.actu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.actu-card{background:#fff;border:1px solid var(--border);border-radius:20px;overflow:hidden;box-shadow:var(--sm);transition:box-shadow var(--t),transform var(--t);display:flex;flex-direction:column}
.actu-card:hover{box-shadow:var(--md);transform:translateY(-4px)}
.actu-img{width:100%;height:180px;object-fit:cover;display:block;background:var(--blue-pale)}
.actu-img-placeholder{width:100%;height:180px;display:flex;align-items:center;justify-content:center;font-size:40px;background:linear-gradient(135deg,var(--blue-pale),#e8f4f8)}
.actu-body{padding:20px 22px;flex:1;display:flex;flex-direction:column}
.actu-tag{display:inline-block;background:var(--blue-pale);color:var(--blue);font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.actu-title{font-family:var(--fh);font-size:16px;font-weight:600;color:var(--blue-dark);line-height:1.4;margin-bottom:8px}
.actu-date{font-size:12px;color:var(--light);margin-bottom:10px}
.actu-excerpt{font-size:13.5px;color:var(--mid);line-height:1.6;flex:1}
.actu-link{display:inline-flex;align-items:center;gap:5px;margin-top:14px;font-size:13px;font-weight:600;color:var(--blue);text-decoration:none;transition:gap var(--t)}
.actu-link:hover{gap:8px}
@media(max-width:900px){.actu-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.actu-grid{grid-template-columns:1fr}}

@media(max-width:768px){
  .actu-card[style*="grid-column"]{flex-direction:column;max-height:none!important}
  .actu-card[style*="grid-column"] .actu-img-placeholder{width:100%!important;min-width:unset!important;height:160px!important}
}
@media(max-width:768px){
  .actu-grid>[style*="grid-column"]{grid-template-columns:1fr!important}
  .actu-grid>[style*="grid-column"]>div:first-child{width:100%!important;min-width:unset!important;height:200px!important}
  .actu-grid>[style*="grid-column"]>div:last-child{padding:20px 20px!important}
}





/* === NOUVELLE GRILLE EXAMENS === */
.egrid2{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ecard2{background:var(--blue-dark);border-radius:18px;padding:28px 20px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;transition:transform var(--t),box-shadow var(--t),background var(--t);position:relative;overflow:hidden}
.ecard2::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.07) 0%,rgba(255,255,255,0) 60%);pointer-events:none}
.ecard2:hover{transform:translateY(-5px);box-shadow:0 16px 40px rgba(0,61,87,.35);background:#004f77}
.ecard2.active{background:var(--blue-light)}
.ecard2-icon{width:100%;aspect-ratio:1;background:none;display:flex;align-items:center;justify-content:center;margin-bottom:10px;padding:8px;box-sizing:border-box}
.ecard2-icon svg{width:100%;height:100%;stroke:#fff;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ecard2-name{font-family:var(--fh);font-size:15px;font-weight:600;color:#fff;margin-bottom:8px;line-height:1.3}
.ecard2-link{font-size:12px;color:rgba(255,255,255,.65);display:flex;align-items:center;gap:4px;transition:color var(--t)}
.ecard2:hover .ecard2-link{color:rgba(255,255,255,.9)}
@media(max-width:768px){
  .egrid2{grid-template-columns:repeat(2,1fr);gap:12px}
  .ecard2{padding:20px 14px 18px}
  .ecard2-icon{width:56px;height:56px;border-radius:12px;margin-bottom:12px}
  .ecard2-icon svg{width:28px;height:28px}
  .ecard2-name{font-size:13.5px}
}
@media(max-width:360px){
  .egrid2{grid-template-columns:1fr 1fr}
}


/* === EXAMENS v3 === */
.egrid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ecard3{background:var(--blue-dark);border-radius:20px;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;transition:transform var(--t),box-shadow var(--t),background var(--t);overflow:hidden}
.ecard3:hover{transform:translateY(-5px);box-shadow:0 16px 40px rgba(0,61,87,.35);background:#004f77}
.ecard3-icon{width:100%;height:220px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.ecard3-icon svg{width:100%;height:100%}
.ecard3-name{font-family:var(--fh);font-size:15px;font-weight:600;color:#fff;margin-bottom:8px;line-height:1.3}
.ecard3-link{font-size:12px;color:rgba(255,255,255,.65);display:flex;align-items:center;gap:4px;transition:color var(--t)}
.ecard3:hover .ecard3-link{color:rgba(255,255,255,.9)}
@media(max-width:768px){
  .egrid3{grid-template-columns:repeat(2,1fr);gap:12px}
  .ecard3{padding:18px 14px 16px}
  .ecard3-icon{min-height:90px}
}




.ename{cursor:pointer;font-size:15.5px;font-weight:600;color:var(--text);margin-bottom:10px;transition:color var(--t)}
.ename:hover{color:var(--blue)}
.emore{font-size:12px;color:var(--blue);font-weight:400;margin-left:6px;white-space:nowrap}
.mc-intro{font-size:14.5px;line-height:1.8;color:var(--mid);font-weight:300;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}
.mc-section{margin-bottom:22px}
.mc-h2{font-family:var(--fh);font-size:18px;font-weight:600;color:var(--blue-dark);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.mc-h3{font-size:13.5px;font-weight:600;color:var(--text);margin:14px 0 7px}
.mc-p{font-size:13px;line-height:1.8;color:var(--mid);font-weight:300;margin-bottom:10px}
.mc-ul{list-style:none;display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.mc-ul li{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--mid);font-weight:300;line-height:1.6}
.mc-ul li::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--blue-light);flex-shrink:0;margin-top:7px}
.mc-subtypes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.mc-subtype{background:var(--off);border-radius:10px;padding:14px;border:1px solid var(--border)}
.mc-subtype-name{font-size:12.5px;font-weight:600;color:var(--blue);margin-bottom:4px}
.mc-subtype-desc{font-size:11.5px;color:var(--mid);line-height:1.6;font-weight:300}
.mc-rdv{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:#fff;padding:13px 24px;border-radius:10px;text-decoration:none;font-size:13.5px;font-weight:500;margin-top:22px;transition:background .2s}
.mc-rdv:hover{background:var(--blue-dark)}
.mc-rdv svg{width:15px;height:15px}
.mc-info{background:var(--blue-pale);border-radius:10px;padding:14px 16px;margin:14px 0;font-size:13px;color:var(--blue);font-weight:400;line-height:1.7}
@media(max-width:600px){.mc-subtypes{grid-template-columns:1fr}}
@media(max-width:768px){
  #hero{height:calc(100vh - 52px - 100px - env(safe-area-inset-bottom, 20px))!important;padding-bottom:0!important}
  #sticky-bottom button,#sticky-bottom a{font-size:12px!important;padding:10px 16px!important}
  /* Inversion alternance mobile : hero clair → sites foncé */
  #sites{background:#f5f0e8!important}
  #parcours{background:#fbf8f3!important}
  #equipe{background:#f5f0e8!important}
  #examens{background:#fbf8f3!important}
  #equip{background:#f5f0e8!important}
  #actualites{background:#fbf8f3!important}
  #resultats{background:#f5f0e8!important}
  #faq{background:#fbf8f3!important}
  #contact{background:#f5f0e8!important}
}


.sp-hero{position:relative;height:220px;overflow:hidden;background:var(--blue-dark)}
.sp-hero img{width:100%;height:100%;object-fit:cover;opacity:.7}
.sp-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(16,46,90,.9) 0%,rgba(16,46,90,.3) 60%)}
.sp-hero-content{position:absolute;bottom:0;left:0;right:0;padding:24px 28px}
.sp-badge{display:inline-block;background:var(--accent);color:#fff;padding:3px 12px;border-radius:100px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.sp-title{font-family:var(--fh);font-size:26px;font-weight:400;color:#fff;line-height:1.2}
.sp-close{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.2);border:none;cursor:pointer;width:36px;height:36px;border-radius:50%;color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;z-index:10}
.sp-body{padding:28px}
.sp-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.sp-section:last-child{border-bottom:none}
.sp-h2{font-family:var(--fh);font-size:17px;font-weight:600;color:var(--blue-dark);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.sp-h2 svg{width:18px;height:18px;color:var(--blue);flex-shrink:0}
.sp-row{display:flex;gap:10px;margin-bottom:8px;font-size:13.5px;color:var(--mid);line-height:1.6}
.sp-row svg{width:16px;height:16px;color:var(--blue);flex-shrink:0;margin-top:2px}
.sp-row a{color:var(--blue);font-weight:500;text-decoration:none}
.sp-row a:hover{text-decoration:underline}
.sp-hours{background:var(--off);border-radius:10px;overflow:hidden;margin-bottom:16px}
.sp-hr{display:flex;justify-content:space-between;padding:9px 16px;font-size:13px;border-bottom:1px solid var(--border)}
.sp-hr:last-child{border-bottom:none}
.sp-hr span:first-child{color:var(--mid)}
.sp-hr span:last-child{font-weight:500;color:var(--text)}
.sp-exams{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.sp-exam{background:var(--blue-pale);color:var(--blue);padding:5px 12px;border-radius:6px;font-size:12.5px;font-weight:500}
.sp-transport{background:var(--off);border-radius:10px;padding:16px;margin-top:10px}
.sp-transport-title{font-size:12px;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.sp-transport-item{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--mid);margin-bottom:6px;line-height:1.6}
.sp-transport-item::before{content:'→';color:var(--blue);flex-shrink:0;font-weight:600}
.sp-btns{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.sp-rdv{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:#fff;padding:13px;border-radius:10px;text-decoration:none;font-size:13.5px;font-weight:500;transition:background .2s}
.sp-rdv:hover{background:var(--blue-dark)}
.sp-rdv svg{width:15px;height:15px}
.sp-map{width:100%;height:200px;border-radius:10px;border:none;margin-top:12px}

/* Flèches galerie centres */
.gallery-wrap{position:relative;display:block}
.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:rgba(255,255,255,0.85);border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,0.15);transition:background .2s;padding:0}
.gallery-arrow:hover{background:#fff}
.gallery-arrow.prev{left:8px}
.gallery-arrow.next{right:8px}


/* Actualités mobile : titre seul + bouton popup */
@media(max-width:768px){
  .actu-grid > .reveal[style*="grid-column"]{
    grid-template-columns:1fr!important;
    grid-column:1/-1!important;
  }
  .actu-grid > .reveal[style*="grid-column"] > div:first-child{
    display:none!important;
  }
  .actu-grid > .reveal[style*="grid-column"] > div:last-child{
    padding:20px!important;
  }
  .actu-grid > .reveal[style*="grid-column"] > div:last-child > div[style*="font-size:13.5px"]{
    display:none!important;
  }
  .actu-mobile-btn{display:inline-block!important}
  .actu-card .actu-excerpt{display:none!important}
}
.actu-mobile-btn{
  display:none;
  margin-top:12px;
  background:var(--blue);
  color:#fff;
  border:none;
  border-radius:8px;
  padding:8px 16px;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  font-family:var(--fb);
}
/* Popup actualité */
#actu-popup-overlay{
  display:none;position:fixed;inset:0;z-index:2000;
  background:rgba(0,0,0,0.5);
}
#actu-popup-box{
  position:absolute;bottom:0;left:0;right:0;
  background:#fff;border-radius:20px 20px 0 0;
  padding:28px 20px 40px;
  max-height:80vh;overflow-y:auto;
  font-size:14px;color:#4B5C72;line-height:1.7;
}
#actu-popup-box h3{
  font-family:var(--fh);font-size:18px;color:var(--blue-dark);
  margin-bottom:12px;line-height:1.3;
}
#actu-popup-close{
  position:absolute;top:12px;right:16px;
  background:none;border:none;font-size:24px;
  cursor:pointer;color:#4B5C72;
}

.sp-gallery{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
.sp-gallery img{width:100%;height:110px;object-fit:cover;border-radius:8px}




@media(min-width:1025px){.mobile-only{display:none!important}}
@media(min-width:769px){#hero .hero-logo-col{visibility:hidden!important}}
@media(min-width:1025px){#scroll-top-btn{bottom:100px!important}}

@media(max-width:768px){
  #map-wrapper{height:360px!important}
  #nav{background:transparent!important;border-bottom:1px solid transparent!important;box-shadow:none!important}
  #hero{background:#fbf8f3!important}
  #hero .hero-overlay{background:rgba(250,248,244,1)!important}
  #hero > div:first-child{display:none!important}
  /* Misc labels strip */
  .strip-addr{display:none!important}
  .burger{display:none!important}
  .strip-name{font-size:0!important}
  .strip-tournan::before{content:"Tournan";font-size:13px;font-family:var(--fh);font-weight:600;color:#00537e}
  .strip-roissy::before{content:"Roissy";font-size:13px;font-family:var(--fh);font-weight:600;color:#00537e}
  .strip-forcilles::before{content:"Forcilles";font-size:13px;font-family:var(--fh);font-weight:600;color:#00537e}
}



/* ========================================================== */
/* Mobile-only overrides                                      */
/* ========================================================== */

@media(min-width:1025px){.mobile-only{display:none!important}#sticky-bottom{display:none!important}}
@media(max-width:1024px){#floating-side{display:none!important}}
@media(min-width:1025px){#scroll-top-btn{bottom:100px!important}}

/* Site strip cells */
.site-strip-cell{padding:16px 12px;cursor:pointer;transition:background .2s;display:flex;flex-direction:column;gap:4px;align-items:center;background:transparent}
.site-strip-cell:hover{background:rgba(0,83,126,0.06)}

/* Floating side buttons */
.floating-rdv:hover{padding-left:22px!important;background:#cc4400!important}
.floating-results:hover{padding-left:22px!important;background:#003d57!important}

/* Scroll-to-top button */
#scroll-top-btn:hover{background:#003d57!important}

/* EXAMENS — grille 3 colonnes × 2 lignes */
.egrid4{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ecard4{position:relative;aspect-ratio:1/1.05;border-radius:18px;overflow:hidden;cursor:pointer;background:#0a3a55;box-shadow:0 4px 20px rgba(0,61,87,.10);transition:transform .35s ease,box-shadow .35s ease}
.ecard4 img{transition:transform .6s ease,filter .4s ease;filter:saturate(.85) brightness(.92)}
.ecard4:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,61,87,.22)}
.ecard4:hover img{transform:scale(1.05);filter:saturate(1) brightness(1)}
.ecard4-overlay{position:absolute;left:0;right:0;bottom:0;padding:20px 22px;background:linear-gradient(to top,rgba(0,40,60,.88) 0%,rgba(0,40,60,.55) 60%,transparent 100%);color:#fff}
.ecard4-title{font-family:var(--fh);font-size:clamp(18px,1.4vw,22px);font-weight:500;line-height:1.2;letter-spacing:-.01em}
@media(max-width:980px){
  .egrid4{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .egrid4{grid-template-columns:1fr;gap:14px}
  .ecard4{aspect-ratio:16/9}
  .ecard4-title{font-size:20px}
}
