/* =====================================================================
   Avea28 — feuille de style unique
   Générée depuis v2-projets/ (script assemble-css.py), refonte 2026-09.
   - concaténation des <style> des 10 pages, règles identiques dédupliquées
   - 2e bloc <style> "header nav" (code mort bugué) retiré
   - petits ajouts refonte en fin de fichier
   TODO : dédupliquer la base commune répétée par page.
   ===================================================================== */


/* ---------------- index ---------------- */
/* ─────────────────────────────────────────
   TOKENS
───────────────────────────────────────── */
:root {
  --ink:        #1C2B1A;
  --forest:     #2D5A27;
  --moss:       #4A7C3F;
  --terra:      #C4683B;
  --terra-lt:   #E09070;
  --gold:       #C4A050;
  --parchment:  #F7F0E0;
  --parchment2: #EDE3CC;
  --parchment3: #E0D5BC;
  --cream:      #FAF7F0;
  --white:      #FFFDF8;

  --f-display: 'Fraunces', Georgia, serif;
  --f-body:    'DM Sans', system-ui, sans-serif;
}
/* ─────────────────────────────────────────
   RESET & BASE
───────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--f-body);
  background: var(--parchment);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.75;
  overflow-x: hidden;
}
/* Paper grain texture overlay */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 9999;
  opacity: .5;
}
.wrap { max-width: 1120px; margin: 0 auto; padding: 0 28px; }
/* ─────────────────────────────────────────
   TYPOGRAPHY
───────────────────────────────────────── */
h1, h2, h3 { font-family: var(--f-display); line-height: 1.15; }
h1 { font-size: clamp(2.6rem, 6vw, 4.2rem); font-weight: 700; }
h2 { font-size: clamp(1.9rem, 4vw, 3rem); font-weight: 700; }
h3 { font-size: 1.25rem; font-weight: 700; }
.label {
  font-family: var(--f-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--terra);
}
/* ─────────────────────────────────────────
   BUTTONS
───────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--f-body);
  font-weight: 600;
  font-size: .95rem;
  padding: 13px 28px;
  border-radius: 100px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: transform .22s cubic-bezier(.34,1.56,.64,1), box-shadow .22s;
  position: relative;
}
.btn:hover { transform: translateY(-3px); }
.btn-forest {
  background: var(--forest);
  color: var(--white);
  box-shadow: 0 4px 18px rgba(45,90,39,.28);
}
.btn-forest:hover { box-shadow: 0 8px 28px rgba(45,90,39,.38); }
.btn-ghost {
  background: transparent;
  color: var(--forest);
  border: 2px solid var(--forest);
}
.btn-ghost:hover { background: var(--forest); color: var(--white); }
.btn-terra {
  background: var(--terra);
  color: var(--white);
  box-shadow: 0 4px 18px rgba(196,104,59,.3);
}
.btn-terra:hover { box-shadow: 0 8px 28px rgba(196,104,59,.4); }
/* ─────────────────────────────────────────
   IMAGE PLACEHOLDER
───────────────────────────────────────── */
.ph {
  background: var(--parchment2);
  border: 2px dashed var(--parchment3);
  border-radius: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #9C8A6E;
  font-family: var(--f-body);
  font-size: .8rem;
  font-weight: 500;
  text-align: center;
  padding: 24px;
  width: 100%;
  height: 100%;
}
.ph svg { opacity: .35; }
.ph strong { display: block; font-size: .85rem; color: #7A6A50; margin-bottom: 2px; }
/* ─────────────────────────────────────────
   BOTANICAL SVGs (reusable inline shapes)
───────────────────────────────────────── */
.deco { pointer-events: none; user-select: none; }
/* ─────────────────────────────────────────
   NAV
───────────────────────────────────────── */
.nav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(247,240,224,.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--parchment3);
}
.nav-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 28px;
  height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
/* Logo */
.logo { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.logo-mark {
  width: 40px; height: 40px;
  background: var(--forest);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.logo-name {
  font-family: var(--f-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--forest);
  line-height: 1;
}
.logo-sub {
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--terra);
  margin-top: 1px;
}
/* Nav links */
.nav-links {
  display: flex;
  align-items: center;
  gap: 2px;
  list-style: none;
}
.nav-links a {
  font-size: .88rem;
  font-weight: 500;
  color: var(--ink);
  padding: 7px 13px;
  border-radius: 8px;
  text-decoration: none;
  transition: background .18s, color .18s;
}
.nav-links a:hover { background: var(--parchment2); color: var(--forest); }
.nav-links .nav-cta a {
  background: var(--forest);
  color: var(--white);
  padding: 8px 20px;
  border-radius: 100px;
}
.nav-links .nav-cta a:hover { background: var(--moss); }
@media(max-width:1180px){
  .nav-links { display: none; }
  .nav-links.open {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 60px; left: 0; right: 0;
    background: var(--forest);
    padding: 16px 0 24px;
    z-index: 1000;
    box-shadow: 0 8px 24px rgba(0,0,0,.2);
    gap: 0;
  }
  .nav-links.open li { border-bottom: 1px solid rgba(255,255,255,.08); pointer-events: all; }
  .nav-links.open a { padding: 14px 24px; display: block; border-radius: 0; pointer-events: all; position: relative; z-index: 1001; }
  .nav-links.open .nav-cta a { margin: 12px 20px 0; border-radius: 8px; }
  .hamburger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    margin-left: auto;
    position: relative;
    z-index: 1001;
  }
  .hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: white;
    border-radius: 2px;
    transition: .3s;
  }
  .hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .hamburger.open span:nth-child(2) { opacity: 0; }
  .hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .nav-overlay {
    display: none;
    position: fixed;
    inset: 0;
    top: 60px;
    background: rgba(0,0,0,.4);
    z-index: 998;
    pointer-events: none;
  }
  .nav-overlay.open { display: block; pointer-events: none; }
}
/* ─────────────────────────────────────────
   HERO
───────────────────────────────────────── */
.hero {
  min-height: calc(100vh - 68px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  position: relative;
  overflow: hidden;
}
/* Left half */
.hero-left {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 80px 60px 80px 28px;
  padding-left: max(28px, calc((100vw - 1120px) / 2 + 28px));
  position: relative;
  z-index: 2;
}
.hero-left .label { margin-bottom: 20px; }
.hero-left h1 {
  color: var(--forest);
  margin-bottom: 24px;
}
.hero-left h1 em {
  font-style: italic;
  color: var(--terra);
}
.hero-lead {
  font-size: 1.05rem;
  color: #5A5040;
  max-width: 420px;
  margin-bottom: 40px;
  line-height: 1.8;
}
.hero-btns { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 48px; }
.hero-stats {
  display: flex;
  gap: 32px;
}
.hero-stat .val {
  font-family: var(--f-display);
  font-size: 2rem;
  font-weight: 700;
  color: var(--forest);
  line-height: 1;
}
.hero-stat .val sup { font-size: 1rem; color: var(--terra); }
.hero-stat .desc { font-size: .78rem; color: #8A7A60; margin-top: 2px; font-weight: 500; }
/* Right half — full bleed image area */
.hero-right {
  position: relative;
  background: var(--parchment2);
}
.hero-right .ph {
  border-radius: 0;
  border: none;
  position: absolute;
  inset: 0;
  font-size: .88rem;
}
/* Floating badge */
.hero-badge {
  position: absolute;
  bottom: 40px;
  left: -28px;
  background: var(--white);
  border-radius: 16px;
  padding: 16px 22px;
  box-shadow: 0 8px 32px rgba(0,0,0,.12);
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 230px;
}
.badge-icon {
  width: 44px; height: 44px;
  background: rgba(196,104,59,.12);
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem;
  flex-shrink: 0;
}
.badge-text strong { display: block; font-size: .92rem; color: var(--ink); font-weight: 700; }
.badge-text span { font-size: .76rem; color: #8A7A60; }
/* Leaf deco top-right */
.hero-leaf-deco {
  position: absolute;
  top: -20px;
  right: -20px;
  width: 220px;
  opacity: .18;
  z-index: 1;
}
@media(max-width:900px){
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-left { padding: 60px 28px; }
  .hero-right { min-height: 320px; }
  .hero-badge { left: 20px; bottom: 20px; }
}
/* ─────────────────────────────────────────
   SECTION DIVIDER (botanical wave)
───────────────────────────────────────── */
.divider {
  width: 100%;
  overflow: hidden;
  line-height: 0;
  background: var(--parchment);
}
.divider svg { display: block; width: 100%; }
/* ─────────────────────────────────────────
   SERVICES
───────────────────────────────────────── */
.services-section {
  background: var(--white);
  padding: 80px 0 90px;
  position: relative;
}
.section-head {
  text-align: center;
  margin-bottom: 60px;
}
.section-head .label { margin-bottom: 12px; display: block; }
.section-head h2 { color: var(--forest); }
.section-head p {
  max-width: 560px;
  margin: 16px auto 0;
  color: #6A5E4A;
  font-size: 1rem;
}
.services-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 24px;
}
.service-card {
  background: var(--parchment);
  border-radius: 24px;
  overflow: hidden;
  transition: transform .28s cubic-bezier(.34,1.56,.64,1), box-shadow .28s;
  border: 1.5px solid var(--parchment2);
  position: relative;
}
.service-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 48px rgba(45,90,39,.12);
  border-color: transparent;
}
.service-img {
  height: 200px;
  width: 100%;
  border-radius: 0;
}
.service-img .ph { border-radius: 0; }
.service-body { padding: 28px 24px 32px; }
.service-pill {
  display: inline-block;
  background: rgba(196,104,59,.1);
  color: var(--terra);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 100px;
  margin-bottom: 12px;
}
.service-body h3 { color: var(--forest); margin-bottom: 10px; }
.service-body p { font-size: .9rem; color: #6A5E4A; line-height: 1.7; }
.service-horaire {
  margin-top: 14px;
  font-size: .78rem;
  font-weight: 600;
  color: #9A8A6E;
  display: flex;
  align-items: center;
  gap: 6px;
}
.service-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--forest);
  font-weight: 700;
  font-size: .88rem;
  margin-top: 20px;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color .18s;
}
.service-link:hover { border-color: var(--forest); }
@media(max-width:900px){ .services-grid { grid-template-columns: 1fr; } }
/* ─────────────────────────────────────────
   APPROCHE (split layout)
───────────────────────────────────────── */
.approche-section {
  padding: 90px 0;
  background: var(--parchment);
  position: relative;
  overflow: hidden;
}
/* big background leaf */
.approche-section::before {
  content: '';
  position: absolute;
  right: -80px;
  top: 50%;
  transform: translateY(-50%);
  width: 500px;
  height: 500px;
  background: radial-gradient(ellipse, rgba(45,90,39,.06), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.approche-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.approche-img-wrap {
  position: relative;
}
.approche-img-main {
  width: 100%;
  aspect-ratio: 4/5;
  border-radius: 40% 20% 36% 24% / 28% 36% 24% 40%;
  overflow: hidden;
  border: 3px solid var(--parchment3);
}
.approche-img-main .ph { border-radius: inherit; border: none; }
.approche-img-small {
  position: absolute;
  bottom: -24px;
  right: -24px;
  width: 48%;
  aspect-ratio: 1;
  border-radius: 20px;
  overflow: hidden;
  border: 4px solid var(--parchment);
  box-shadow: 0 12px 32px rgba(0,0,0,.1);
}
.approche-img-small .ph { border-radius: 0; border: none; }
.approche-text .label { margin-bottom: 14px; display: block; }
.approche-text h2 { color: var(--forest); margin-bottom: 20px; }
.approche-text h2 span { color: var(--terra); font-style: italic; }
.approche-text > p { color: #6A5E4A; margin-bottom: 32px; }
.piliers { display: flex; flex-direction: column; gap: 16px; margin-bottom: 36px; }
.pilier {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 16px 20px;
  background: var(--white);
  border-radius: 16px;
  border-left: 4px solid var(--forest);
  transition: transform .2s;
}
.pilier:hover { transform: translateX(4px); }
.pilier:nth-child(2) { border-color: var(--terra); }
.pilier:nth-child(3) { border-color: var(--gold); }
.pilier-ico { font-size: 1.5rem; flex-shrink: 0; }
.pilier-txt strong { display: block; color: var(--forest); font-size: .95rem; margin-bottom: 3px; }
.pilier-txt span { font-size: .85rem; color: #7A6A50; }
@media(max-width:900px){
  .approche-inner { grid-template-columns: 1fr; gap: 48px; }
  .approche-img-small { right: 0; bottom: -12px; }
}
/* ─────────────────────────────────────────
   CHIFFRES
───────────────────────────────────────── */
.chiffres-section {
  background: var(--forest);
  padding: 60px 0;
  position: relative;
  overflow: hidden;
}
.chiffres-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}
.chiffres-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 0;
  position: relative;
}
.chiffre-item {
  text-align: center;
  padding: 16px 20px;
  border-right: 1px solid rgba(255,255,255,.1);
}
.chiffre-item:last-child { border-right: none; }
.chiffre-val {
  font-family: var(--f-display);
  font-size: 3rem;
  font-weight: 700;
  color: var(--parchment);
  line-height: 1;
  margin-bottom: 6px;
}
.chiffre-val sup { font-size: 1.2rem; color: var(--terra-lt); }
.chiffre-label { font-size: .82rem; color: rgba(247,240,224,.6); font-weight: 500; }
@media(max-width:700px){
  .chiffres-grid { grid-template-columns: repeat(2,1fr); }
  .chiffre-item:nth-child(2) { border-right: none; }
  .chiffre-item:nth-child(3) { border-right: 1px solid rgba(255,255,255,.1); }
  .chiffre-item:nth-child(3),
  .chiffre-item:nth-child(4) { border-top: 1px solid rgba(255,255,255,.1); }
}
/* ─────────────────────────────────────────
   GALERIE
───────────────────────────────────────── */
.galerie-section { padding: 90px 0; background: var(--white); }
.galerie-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-template-rows: 260px 200px;
  gap: 14px;
}
.g-cell { border-radius: 20px; overflow: hidden; }
.g-cell .ph { border-radius: 0; border: none; font-size: .78rem; }
.g-cell:first-child { grid-row: 1 / 3; border-radius: 28px; }
.galerie-note {
  text-align: center;
  margin-top: 20px;
  font-size: .85rem;
  color: #9A8A6E;
  font-style: italic;
}
.galerie-note a { color: var(--terra); font-weight: 600; text-decoration: none; }
@media(max-width:700px){
  .galerie-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 160px 160px 160px;
  }
  .g-cell:first-child { grid-row: auto; border-radius: 20px; }
}
/* ─────────────────────────────────────────
   TEMOIGNAGES
───────────────────────────────────────── */
.temoignages-section {
  padding: 90px 0;
  background: var(--parchment);
  position: relative;
}
.temoignages-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.temo-card {
  background: var(--white);
  border-radius: 24px;
  padding: 32px 28px;
  border: 1.5px solid var(--parchment2);
  position: relative;
  transition: transform .25s, box-shadow .25s;
}
.temo-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,.07);
}
.temo-card::before {
  content: '\201C';
  font-family: var(--f-display);
  font-size: 5rem;
  color: var(--parchment2);
  position: absolute;
  top: 12px;
  left: 20px;
  line-height: 1;
}
.temo-text {
  font-style: italic;
  color: #5A5040;
  line-height: 1.75;
  font-size: .95rem;
  margin-bottom: 24px;
  position: relative;
  z-index: 1;
}
.temo-author { display: flex; align-items: center; gap: 14px; }
.temo-avatar {
  width: 46px; height: 46px;
  border-radius: 50%;
  overflow: hidden;
  border: 2.5px solid var(--parchment2);
  flex-shrink: 0;
}
.temo-avatar .ph { border-radius: 50%; border: none; font-size: .6rem; padding: 4px; }
.temo-name { font-weight: 700; color: var(--forest); font-size: .9rem; }
.temo-role { font-size: .78rem; color: #9A8A6E; }
@media(max-width:900px){ .temoignages-grid { grid-template-columns: 1fr; } }
/* ─────────────────────────────────────────
   CTA FINAL
───────────────────────────────────────── */
.cta-section {
  padding: 100px 28px;
  background: var(--terra);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-section::before,
.cta-section::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  pointer-events: none;
}
.cta-section::before { width: 600px; height: 600px; top: -200px; left: -150px; }
.cta-section::after  { width: 400px; height: 400px; bottom: -150px; right: -80px; }
.cta-section .label { color: rgba(255,255,255,.7); margin-bottom: 16px; display: block; }
.cta-section h2 { color: var(--white); margin-bottom: 16px; max-width: 560px; margin-left: auto; margin-right: auto; }
.cta-section p {
  color: rgba(255,255,255,.8);
  font-size: 1.05rem;
  max-width: 500px;
  margin: 0 auto 40px;
}
.cta-btns { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; position: relative; z-index: 1; }
.btn-white { background: var(--white); color: var(--terra); }
.btn-white:hover { box-shadow: 0 8px 28px rgba(0,0,0,.2); }
.btn-outline-white {
  background: transparent;
  color: var(--white);
  border: 2px solid rgba(255,255,255,.6);
}
.btn-outline-white:hover { background: rgba(255,255,255,.12); }
/* ─────────────────────────────────────────
   FOOTER
───────────────────────────────────────── */
.footer {
  background: var(--ink);
  padding: 60px 28px 28px;
}
.footer-grid {
  max-width: 1120px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.footer-brand .brand-name {
  font-family: var(--f-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--parchment);
}
.footer-brand .brand-sub {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--terra-lt);
  margin-top: 3px;
  display: block;
}
.footer-brand p {
  margin-top: 16px;
  font-size: .87rem;
  color: rgba(247,240,224,.5);
  line-height: 1.7;
}
.socials { display: flex; gap: 10px; margin-top: 20px; }
.socials a {
  width: 36px; height: 36px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.12);
  display: flex; align-items: center; justify-content: center;
  color: rgba(247,240,224,.6);
  transition: background .2s, color .2s;
}
.socials a:hover { background: var(--terra); border-color: var(--terra); color: var(--white); }
.footer-col h4 {
  font-family: var(--f-display);
  font-size: .95rem;
  color: var(--parchment);
  margin-bottom: 18px;
}
.footer-col ul { list-style: none; }
.footer-col ul li { margin-bottom: 9px; }
.footer-col ul li a {
  font-size: .86rem;
  color: rgba(247,240,224,.5);
  text-decoration: none;
  transition: color .18s;
}
.footer-col ul li a:hover { color: var(--parchment); }
.footer-bottom {
  max-width: 1120px;
  margin: 24px auto 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .78rem;
  color: rgba(247,240,224,.3);
}
.footer-bottom a { color: inherit; text-decoration: none; }
.footer-bottom a:hover { color: rgba(247,240,224,.6); }
@media(max-width:900px){
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media(max-width:580px){
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .footer-bottom { flex-direction: column; gap: 8px; text-align: center; }
}
/* ─────────────────────────────────────────
   ANIMATIONS
───────────────────────────────────────── */
@keyframes floatUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}
.hero-left > * {
  animation: floatUp .7s cubic-bezier(.22,1,.36,1) both;
}
.hero-left .label       { animation-delay: .05s; }
.hero-left h1           { animation-delay: .15s; }
.hero-left .hero-lead   { animation-delay: .25s; }
.hero-left .hero-btns   { animation-delay: .35s; }
.hero-left .hero-stats  { animation-delay: .45s; }

/* ---------------- 02-maternelle ---------------- */
/* ── BASE ── */
    :root{--ink:#1C2B1A;--forest:#2D5A27;--moss:#4A7C3F;--terra:#C4683B;--terra-lt:#E09070;--gold:#C4A050;--parchment:#F7F0E0;--parchment2:#EDE3CC;--parchment3:#E0D5BC;--white:#FFFDF8;--f-display:'Fraunces',Georgia,serif;--f-body:'DM Sans',system-ui,sans-serif}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--f-body);background:var(--parchment);color:var(--ink);font-size:16px;line-height:1.75;overflow-x:hidden}
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");pointer-events:none;z-index:9999;opacity:.5}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px}
section{padding:80px 0}
h1,h2,h3{font-family:var(--f-display);line-height:1.15}
h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:700}
h2{font-size:clamp(1.7rem,3.5vw,2.7rem);font-weight:700}
h3{font-size:1.2rem;font-weight:700}
a{text-decoration:none;color:inherit}
.label{font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--terra)}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-body);font-weight:600;font-size:.95rem;padding:13px 28px;border-radius:100px;border:none;cursor:pointer;text-decoration:none;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s}
.btn:hover{transform:translateY(-3px)}
.btn-forest{background:var(--forest);color:var(--white);box-shadow:0 4px 18px rgba(45,90,39,.28)}
.btn-ghost{background:transparent;color:var(--forest);border:2px solid var(--forest)}
.btn-ghost:hover{background:var(--forest);color:var(--white)}
.btn-white{background:var(--white);color:var(--terra)}
.btn-outline-white{background:transparent;color:var(--white);border:2px solid rgba(255,255,255,.6)}
.ph{background:var(--parchment2);border:2px dashed var(--parchment3);border-radius:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#9C8A6E;font-family:var(--f-body);font-size:.8rem;font-weight:500;text-align:center;padding:24px;width:100%;height:100%}
.ph svg{opacity:.35}
.ph strong{display:block;font-size:.85rem;color:#7A6A50;margin-bottom:2px}
.section-head{text-align:center;margin-bottom:56px}
.section-head .label{margin-bottom:12px;display:block}
.section-head h2{color:var(--forest)}
.section-head p{max-width:560px;margin:14px auto 0;color:#6A5E4A;font-size:1rem}
.wave{width:100%;overflow:hidden;line-height:0}
.wave svg{display:block;width:100%}
/* NAV */
    .nav{position:sticky;top:0;z-index:100;background:rgba(247,240,224,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--parchment3)}
.nav-inner{max-width:1120px;margin:0 auto;padding:0 28px;height:68px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:10px}
.logo-mark{width:40px;height:40px;background:var(--forest);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-name{font-family:var(--f-display);font-size:1.35rem;font-weight:700;color:var(--forest);line-height:1}
.logo-sub{font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--terra);margin-top:1px}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none}
.nav-links a{font-size:.88rem;font-weight:500;color:var(--ink);padding:7px 11px;border-radius:8px;transition:background .18s,color .18s;white-space:nowrap}
.nav-links a:hover,.nav-links a.active{background:var(--parchment2);color:var(--forest)}
.nav-links .nav-cta a{background:var(--forest);color:var(--white);padding:8px 20px;border-radius:100px}
.nav-links .nav-cta a:hover{background:var(--moss)}
@media(max-width:1180px){
  .nav-links{display:none}
  .nav-links.open{display:flex;flex-direction:column;position:fixed;top:68px;left:0;right:0;background:var(--forest);padding:16px 0 24px;z-index:1000;box-shadow:0 8px 24px rgba(0,0,0,.2);gap:0}
  .nav-links.open li{border-bottom:1px solid rgba(255,255,255,.08);pointer-events:all}
  .nav-links.open a{padding:14px 24px;display:block;border-radius:0;color:white !important;pointer-events:all;position:relative;z-index:1001}
  .nav-links.open .nav-cta a{margin:12px 20px 0;border-radius:8px;background:white;color:var(--forest) !important}
  .hamburger{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;position:relative;z-index:1001}
  .hamburger span{display:block;width:24px;height:2px;background:var(--forest);border-radius:2px;transition:.3s}
  .hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .hamburger.open span:nth-child(2){opacity:0}
  .hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-overlay{display:none;position:fixed;inset:0;top:68px;background:rgba(0,0,0,.4);z-index:998;pointer-events:none}
  .nav-overlay.open{display:block;pointer-events:none}
}
/* PAGE HERO */
    .page-hero{background:var(--forest);padding:72px 28px 80px;text-align:center;position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,rgba(196,104,59,.15),transparent 60%);pointer-events:none}
.breadcrumb{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.8rem;color:rgba(247,240,224,.5);margin-bottom:20px}
.breadcrumb a{color:rgba(247,240,224,.6)}
.breadcrumb span{color:rgba(247,240,224,.3)}
.page-hero .label{color:rgba(247,240,224,.65);margin-bottom:14px;display:block}
.page-hero h1{color:var(--parchment);margin-bottom:16px}
.page-hero p{color:rgba(247,240,224,.75);font-size:1.05rem;max-width:560px;margin:0 auto 32px}
.page-hero-btns{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;position:relative;z-index:1}
/* ── INTRO SPLIT ── */
    .intro-split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.intro-img{position:relative}
.intro-img-main{width:100%;aspect-ratio:4/5;border-radius:40% 20% 36% 24%/28% 36% 24% 40%;overflow:hidden;border:3px solid var(--parchment3)}
.intro-img-main .ph{border-radius:0;border:none}
.intro-img-badge{position:absolute;bottom:-20px;right:-20px;background:var(--white);border-radius:16px;padding:14px 18px;box-shadow:0 8px 28px rgba(0,0,0,.1);display:flex;align-items:center;gap:12px}
.badge-ico{width:40px;height:40px;background:rgba(196,104,59,.12);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}
.badge-txt strong{display:block;font-size:.88rem;color:var(--ink);font-weight:700}
.badge-txt span{font-size:.74rem;color:#8A7A60}
.intro-text .label{margin-bottom:14px;display:block}
.intro-text h2{color:var(--forest);margin-bottom:18px}
.intro-text h2 em{font-style:italic;color:var(--terra)}
.intro-text p{color:#6A5E4A;margin-bottom:14px}
@media(max-width:900px){.intro-split{grid-template-columns:1fr;gap:40px}.intro-img-badge{right:0}}
/* ── JOURNÉE TYPE ── */
    .journee-section{background:var(--white)}
.timeline{position:relative;padding-left:32px}
.timeline::before{content:'';position:absolute;left:10px;top:8px;bottom:8px;width:2px;background:var(--parchment2)}
.tl-item{position:relative;margin-bottom:28px}
.tl-item:last-child{margin-bottom:0}
.tl-dot{position:absolute;left:-32px;top:6px;width:20px;height:20px;border-radius:50%;background:var(--forest);border:3px solid var(--parchment);display:flex;align-items:center;justify-content:center}
.tl-dot span{font-size:.55rem;color:var(--white);line-height:1}
.tl-time{font-size:.78rem;font-weight:700;color:var(--terra);letter-spacing:.04em;margin-bottom:3px}
.tl-label{font-weight:600;color:var(--ink);font-size:.95rem;margin-bottom:2px}
.tl-desc{font-size:.85rem;color:#7A6A60}
/* ── BÉNÉFICES ── */
    .benefices-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.bene-card{background:var(--white);border-radius:24px;padding:32px 24px;border:1.5px solid var(--parchment2);transition:transform .25s,box-shadow .25s;text-align:center}
.bene-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.07)}
.bene-icon{font-size:2.4rem;margin-bottom:16px}
.bene-card h3{color:var(--forest);margin-bottom:10px;font-size:1.05rem}
.bene-card p{font-size:.88rem;color:#6A5E4A;line-height:1.7}
@media(max-width:900px){.benefices-grid{grid-template-columns:1fr 1fr}}
@media(max-width:580px){.benefices-grid{grid-template-columns:1fr}}
/* ── GALERIE MINI ── */
    .mini-galerie{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:0}
.mini-cell{border-radius:16px;overflow:hidden;aspect-ratio:1}
.mini-cell .ph{border-radius:0;border:none;font-size:.72rem}
.mini-cell:first-child{border-radius:24px}
/* ── TÉMOIGNAGES ── */
    .temo-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.temo-card{background:var(--white);border-radius:24px;padding:32px 28px;border:1.5px solid var(--parchment2);position:relative;transition:transform .25s,box-shadow .25s}
.temo-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.07)}
.temo-card::before{content:'\201C';font-family:var(--f-display);font-size:5rem;color:var(--parchment2);position:absolute;top:12px;left:20px;line-height:1}
.temo-text{font-style:italic;color:#5A5040;line-height:1.75;font-size:.95rem;margin-bottom:24px;position:relative;z-index:1}
.temo-author{display:flex;align-items:center;gap:14px}
.temo-avatar{width:46px;height:46px;border-radius:50%;overflow:hidden;border:2.5px solid var(--parchment2);flex-shrink:0;display:flex;align-items:center;justify-content:center;background:rgba(196,104,59,.10);color:var(--terra-ink,#9E4A24)}
.temo-avatar .ph{border-radius:50%;border:none;font-size:.55rem;padding:4px}
.temo-name{font-weight:700;color:var(--forest);font-size:.9rem}
.temo-role{font-size:.78rem;color:#9A8A6E}
@media(max-width:700px){.temo-grid{grid-template-columns:1fr}}
/* CTA & FOOTER */
    .cta-section{padding:90px 28px;background:var(--terra);text-align:center;position:relative;overflow:hidden}
.cta-section::before{content:'';position:absolute;border-radius:50%;background:rgba(255,255,255,.06);width:600px;height:600px;top:-200px;left:-150px;pointer-events:none}
.cta-section::after{content:'';position:absolute;border-radius:50%;background:rgba(255,255,255,.06);width:400px;height:400px;bottom:-150px;right:-80px;pointer-events:none}
.cta-section .label{color:rgba(255,255,255,.7);margin-bottom:14px;display:block}
.cta-section h2{color:var(--white);margin-bottom:14px}
.cta-section p{color:rgba(255,255,255,.8);font-size:1.05rem;max-width:500px;margin:0 auto 36px}
.cta-btns{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;position:relative;z-index:1}
.footer{background:var(--ink);padding:60px 28px 28px}
.footer-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:48px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.08)}
.footer-brand .brand-name{font-family:var(--f-display);font-size:1.5rem;font-weight:700;color:var(--parchment)}
.footer-brand .brand-sub{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--terra-lt);margin-top:3px;display:block}
.footer-brand p{margin-top:16px;font-size:.87rem;color:rgba(247,240,224,.5);line-height:1.7}
.socials{display:flex;gap:10px;margin-top:20px}
.socials a{width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;color:rgba(247,240,224,.6);transition:background .2s,color .2s}
.socials a:hover{background:var(--terra);border-color:var(--terra);color:var(--white)}
.footer-col h4{font-family:var(--f-display);font-size:.95rem;color:var(--parchment);margin-bottom:18px}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:9px}
.footer-col ul li a{font-size:.86rem;color:rgba(247,240,224,.5);transition:color .18s}
.footer-col ul li a:hover{color:var(--parchment)}
.footer-bottom{max-width:1120px;margin:24px auto 0;display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:rgba(247,240,224,.3)}
.footer-bottom a{color:inherit}
.footer-bottom a:hover{color:rgba(247,240,224,.6)}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:580px){.footer-grid{grid-template-columns:1fr;gap:32px}.footer-bottom{flex-direction:column;gap:8px;text-align:center}}

/* ---------------- 03-elementaire ---------------- */
:root{--ink:#1C2B1A;--forest:#2D5A27;--moss:#4A7C3F;--terra:#C4683B;--terra-lt:#E09070;--gold:#C4A050;--parchment:#F7F0E0;--parchment2:#EDE3CC;--parchment3:#E0D5BC;--white:#FFFDF8;--f-display:'Fraunces',Georgia,serif;--f-body:'DM Sans',system-ui,sans-serif}
h3{font-size:1.15rem;font-weight:700}
.btn-forest:hover{box-shadow:0 8px 28px rgba(45,90,39,.38)}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(196,104,59,.15),transparent 60%);pointer-events:none}
/* SPLIT */
    .split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:40px}}
.split-img{width:100%;aspect-ratio:4/5;border-radius:28px;overflow:hidden}
.split-img .ph{border-radius:0;border:none}
/* INFOS GRID */
    .infos-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px}
.info-pill{background:var(--parchment2);border-radius:14px;padding:16px 18px}
.info-pill strong{display:block;color:var(--forest);font-size:.88rem;margin-bottom:3px}
.info-pill span{font-size:.82rem;color:#6A5E4A}
/* PÉDAGOGIES */
    .peda-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:900px){.peda-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.peda-grid{grid-template-columns:1fr}}
.peda-card{background:var(--white);border-radius:22px;padding:28px 22px;border:1.5px solid var(--parchment2);transition:transform .25s,box-shadow .25s}
.peda-card:hover{transform:translateY(-5px);box-shadow:0 14px 36px rgba(0,0,0,.07)}
.peda-icon{font-size:2rem;margin-bottom:14px}
.peda-card h3{color:var(--forest);margin-bottom:8px;font-size:1rem}
.peda-card p{font-size:.85rem;color:#6A5E4A;line-height:1.7}
/* GRANDES LEÇONS */
    .lecons-split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
@media(max-width:900px){.lecons-split{grid-template-columns:1fr}}
.lecon-item{display:flex;gap:20px;align-items:flex-start;background:var(--white);border-radius:18px;padding:22px 24px;border:1.5px solid var(--parchment2);margin-bottom:14px;transition:border-color .2s}
.lecon-item:hover{border-color:var(--forest)}
.lecon-num{width:44px;height:44px;border-radius:12px;background:var(--forest);color:var(--white);display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-size:1.2rem;font-weight:700;flex-shrink:0}
.lecon-body strong{display:block;color:var(--forest);font-size:.95rem;margin-bottom:4px}
.lecon-body p{font-size:.83rem;color:#7A6A50}
/* PROGRAMME */
    .prog-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:580px){.prog-grid{grid-template-columns:1fr}}
.prog-item{display:flex;gap:12px;align-items:center;background:var(--parchment);border-radius:12px;padding:14px 16px}
.prog-item span{font-size:.88rem;color:var(--ink);font-weight:500}
/* TEMOIGNAGES */
    .temo-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
/* CTA */
    .cta-section{padding:90px 28px;background:var(--terra);text-align:center;position:relative;overflow:hidden}
.cta-section::before,.cta-section::after{content:'';position:absolute;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}
.cta-section::before{width:600px;height:600px;top:-200px;left:-150px}
.cta-section::after{width:400px;height:400px;bottom:-150px;right:-80px}
/* FOOTER */
    .footer{background:var(--ink);padding:60px 28px 28px}

/* ---------------- 04-loisirs ---------------- */
.ph{background:var(--parchment2);border:2px dashed var(--parchment3);border-radius:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#9C8A6E;font-size:.8rem;font-weight:500;text-align:center;padding:24px;width:100%;height:100%}
/* HERO */
    .page-hero{background:var(--forest);padding:72px 28px 80px;text-align:center;position:relative;overflow:hidden}
/* INTRO */
    .split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
/* PLANNING */
    .planning-card{background:var(--white);border-radius:20px;padding:28px 24px;border:1.5px solid var(--parchment2)}
.planning-card h3{color:var(--forest);margin-bottom:16px;font-size:1rem;display:flex;align-items:center;gap:8px}
.planning-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--parchment2);font-size:.88rem}
.planning-row:last-child{border-bottom:none}
.planning-row .jour{font-weight:600;color:var(--ink)}
.planning-row .heure{color:#7A6A60;font-size:.84rem}
/* TARIFS */
    .tarifs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tarifs-grid--2{grid-template-columns:repeat(2,1fr);max-width:760px;margin-left:auto;margin-right:auto}
@media(max-width:700px){.tarifs-grid,.tarifs-grid--2{grid-template-columns:1fr}}
.tarif-card{border-radius:24px;padding:36px 28px;text-align:center;position:relative}
.tarif-card.t1{background:var(--parchment2);border:2px solid var(--parchment3)}
.tarif-card.t2{background:var(--forest);color:var(--white)}
.tarif-card.t3{background:var(--parchment2);border:2px solid var(--parchment3)}
.tarif-badge{position:absolute;top:16px;right:16px;background:var(--terra);color:var(--white);font-size:.68rem;font-weight:700;padding:4px 10px;border-radius:100px;letter-spacing:.06em;text-transform:uppercase}
.tarif-qf{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--terra);margin-bottom:12px}
.tarif-card.t2 .tarif-qf{color:var(--terra-lt)}
.tarif-prix{font-family:var(--f-display);font-size:3.2rem;font-weight:700;line-height:1;margin-bottom:6px;color:var(--forest)}
.tarif-card.t2 .tarif-prix{color:var(--parchment)}
.tarif-prix sup{font-size:1.2rem;vertical-align:super}
.tarif-jour{font-size:.82rem;color:#7A6A50;margin-bottom:16px}
.tarif-card.t2 .tarif-jour{color:rgba(247,240,224,.6)}
.tarif-desc{font-size:.83rem;color:#6A5E4A;line-height:1.65}
.tarif-card.t2 .tarif-desc{color:rgba(247,240,224,.75)}
/* ACTIVITÉS */
    .acti-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:900px){.acti-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.acti-grid{grid-template-columns:1fr}}
.acti-card{background:var(--white);border-radius:22px;padding:26px 22px;border:1.5px solid var(--parchment2);text-align:center;transition:transform .25s,box-shadow .25s}
.acti-card:hover{transform:translateY(-5px);box-shadow:0 14px 36px rgba(0,0,0,.07)}
.acti-icon{font-size:2.2rem;margin-bottom:12px}
.acti-card h3{color:var(--forest);font-size:1rem;margin-bottom:8px}
.acti-card p{font-size:.84rem;color:#6A5E4A;line-height:1.7}
/* AIDES */
    .aides-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:32px}
.aide-pill{display:flex;align-items:center;gap:10px;background:var(--white);border:1.5px solid var(--parchment2);border-radius:14px;padding:14px 20px;flex:1;min-width:280px}
.aide-pill span{font-size:1.3rem}
.aide-pill div strong{display:block;font-size:.88rem;color:var(--forest)}
.aide-pill div small{font-size:.78rem;color:#7A6A50}
/* JOURNÉE TYPE */
    .journee-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
@media(max-width:900px){.journee-grid{grid-template-columns:1fr}}
.tl{position:relative;padding-left:32px}
.tl::before{content:'';position:absolute;left:10px;top:8px;bottom:8px;width:2px;background:var(--parchment2)}
.tl-item{position:relative;margin-bottom:24px}
.tl-dot{position:absolute;left:-32px;top:6px;width:20px;height:20px;border-radius:50%;background:var(--forest);border:3px solid var(--parchment);display:flex;align-items:center;justify-content:center;font-size:.6rem}
.tl-time{font-size:.76rem;font-weight:700;color:var(--terra);letter-spacing:.04em;margin-bottom:2px}
.tl-desc{font-size:.84rem;color:#7A6A60}

/* ---------------- 05-inscriptions ---------------- */
h3{font-size:1.1rem;font-weight:700}
@media(max-width:1180px){.nav-links{display:none}}
.page-hero p{color:rgba(247,240,224,.75);font-size:1.05rem;max-width:560px;margin:0 auto}
/* LAYOUT PRINCIPAL */
    .main-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
@media(max-width:900px){.main-grid{grid-template-columns:1fr}}
/* ÉTAPES */
    .etape{display:grid;grid-template-columns:56px 1fr;gap:20px;align-items:start;padding:24px 0;border-bottom:1px solid var(--parchment2)}
.etape:last-child{border-bottom:none}
.etape-num{width:52px;height:52px;border-radius:50%;background:var(--forest);color:var(--white);font-family:var(--f-display);font-size:1.4rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.etape h3{color:var(--forest);margin-bottom:6px;font-size:1rem}
.etape p{font-size:.88rem;color:#6A5E4A;margin-bottom:8px}
.etape-tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{background:var(--parchment2);color:var(--forest);font-size:.74rem;font-weight:600;padding:4px 11px;border-radius:100px}
/* FORMULAIRE */
    .form-card{background:var(--white);border-radius:28px;padding:36px;border:1.5px solid var(--parchment2);position:sticky;top:88px}
.form-card h2{color:var(--forest);margin-bottom:6px;font-size:1.5rem}
.form-card p{color:#6A5E4A;font-size:.88rem;margin-bottom:24px}
.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:.83rem;font-weight:600;color:var(--forest);margin-bottom:5px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:11px 15px;border-radius:11px;border:1.5px solid var(--parchment3);background:var(--parchment);font-family:var(--f-body);font-size:.9rem;color:var(--ink);outline:none;transition:border-color .2s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--forest);background:var(--white)}
.form-group textarea{height:90px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:480px){.form-row{grid-template-columns:1fr}}
.form-legal{font-size:.78rem;line-height:1.55;color:#6A5E4A;margin-top:14px}
.form-legal a{color:var(--forest);text-decoration:underline}
.form-submit{width:100%;padding:14px;border-radius:100px;background:var(--forest);color:var(--white);font-family:var(--f-display);font-size:1rem;font-weight:700;border:none;cursor:pointer;transition:transform .2s,box-shadow .2s}
.form-submit:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(45,90,39,.3)}
/* TARIFS */
    .tarifs-ecole{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
@media(max-width:700px){.tarifs-ecole{grid-template-columns:1fr}}
.tarif-box{background:var(--white);border-radius:24px;padding:28px 24px;border:1.5px solid var(--parchment2)}
.tarif-box.featured{background:var(--forest);border-color:transparent}
.tarif-box h3{color:var(--forest);margin-bottom:4px;font-size:.95rem}
.tarif-box.featured h3{color:var(--parchment)}
.tarif-prix{font-family:var(--f-display);font-size:2.6rem;font-weight:700;color:var(--forest);line-height:1;margin:10px 0 4px}
.tarif-box.featured .tarif-prix{color:var(--parchment)}
.tarif-detail{font-size:.8rem;color:#9A8A6E;margin-bottom:18px}
.tarif-box.featured .tarif-detail{color:rgba(247,240,224,.6)}
.tarif-lines{display:flex;flex-direction:column;gap:0}
.tarif-line{display:flex;justify-content:space-between;font-size:.84rem;padding:9px 0;border-bottom:1px solid var(--parchment2)}
.tarif-box.featured .tarif-line{border-color:rgba(255,255,255,.1)}
.tarif-line:last-child{border-bottom:none}
.tarif-line .tl-l{color:#6A5E4A}
.tarif-box.featured .tl-l{color:rgba(247,240,224,.65)}
.tarif-line .tl-r{font-weight:700;color:var(--ink)}
.tarif-box.featured .tl-r{color:var(--parchment)}
/* AIDES */
    .aides-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:900px){.aides-grid{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.aides-grid{grid-template-columns:1fr}}
.aide-card{background:var(--white);border-radius:18px;padding:22px 16px;text-align:center;border:1.5px solid var(--parchment2)}
.aide-card .aide-icon{font-size:2rem;margin-bottom:10px}
.aide-card h3{font-size:.9rem;color:var(--forest);margin-bottom:6px}
.aide-card p{font-size:.8rem;color:#7A6A50;line-height:1.6}

/* ---------------- 06-faq ---------------- */
:root{--ink:#1C2B1A;--forest:#2D5A27;--terra:#C4683B;--terra-lt:#E09070;--parchment:#F7F0E0;--parchment2:#EDE3CC;--parchment3:#E0D5BC;--white:#FFFDF8;--moss:#4A7C3F;--f-display:'Fraunces',Georgia,serif;--f-body:'DM Sans',system-ui,sans-serif}
.nav{position:sticky;top:0;z-index:100;background:rgba(247,240,224,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--parchment3)}
.logo-mark{width:40px;height:40px;background:var(--forest);border-radius:50%;display:flex;align-items:center;justify-content:center}
.page-hero{background:var(--forest);padding:72px 28px 80px;text-align:center;position:relative;overflow:hidden}
/* FAQ accordion */
    .faq-list{display:flex;flex-direction:column;gap:0;max-width:820px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--parchment3)}
.faq-item:first-child{border-top:1px solid var(--parchment3)}
.faq-q{width:100%;background:none;border:none;padding:24px 8px;display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;font-family:var(--f-display);font-size:1.08rem;font-weight:700;color:var(--forest);text-align:left;transition:color .18s}
.faq-q:hover{color:var(--terra)}
.faq-icon{width:28px;height:28px;border-radius:50%;background:var(--parchment2);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem;transition:transform .2s,background .2s}
.faq-item.open .faq-icon{transform:rotate(45deg);background:var(--terra);color:var(--white)}
.faq-a{display:none;padding:0 8px 24px;color:#5A5040;line-height:1.8;font-size:.95rem}
.faq-a ul{margin:12px 0 12px 20px;display:flex;flex-direction:column;gap:6px}
.faq-a ul li{font-size:.9rem}
.faq-a .highlight{background:rgba(45,90,39,.07);border-left:3px solid var(--forest);border-radius:0 10px 10px 0;padding:12px 16px;margin:14px 0;font-style:italic;color:var(--forest)}
.faq-item.open .faq-a{display:block}
/* chiffre comparatif */
    .compa-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px}
@media(max-width:600px){.compa-grid{grid-template-columns:1fr}}
.compa-card{border-radius:24px;padding:32px 28px}
.compa-card.pub{background:var(--parchment2);border:1.5px solid var(--parchment3)}
.compa-card.avea{background:var(--forest);color:var(--white)}
.compa-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px;color:var(--terra)}
.compa-card.avea .compa-label{color:var(--terra-lt)}
.compa-prix{font-family:var(--f-display);font-size:2.6rem;font-weight:700;color:var(--forest);line-height:1;margin-bottom:6px}
.compa-card.avea .compa-prix{color:var(--parchment)}
.compa-detail{font-size:.82rem;color:#7A6A50;margin-bottom:16px}
.compa-card.avea .compa-detail{color:rgba(247,240,224,.6)}
.compa-items{display:flex;flex-direction:column;gap:8px}
.compa-item{display:flex;gap:10px;font-size:.86rem;color:#5A5040}
.compa-card.avea .compa-item{color:rgba(247,240,224,.8)}
.compa-item::before{content:'→';color:var(--terra);font-weight:700;flex-shrink:0}
.compa-card.avea .compa-item::before{color:var(--terra-lt)}
/* CTA footer */
    .cta-section{padding:90px 28px;background:var(--terra);text-align:center;position:relative;overflow:hidden}
:root{--ink:#1C2B1A}

/* ---------------- 07-contact ---------------- */
/* contact grid */
    .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.info-card{background:var(--white);border-radius:24px;padding:32px 28px;border:1.5px solid var(--parchment2);display:flex;gap:16px;align-items:flex-start;margin-bottom:16px;transition:transform .2s,box-shadow .2s}
.info-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.06)}
.info-ico{width:48px;height:48px;border-radius:14px;background:rgba(45,90,39,.08);display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0}
.info-body strong{display:block;color:var(--forest);font-size:.92rem;margin-bottom:4px}
.info-body p,.info-body a{font-size:.88rem;color:#6A5E4A}
.acces-list{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.acces-item{display:flex;gap:12px;align-items:flex-start;background:var(--parchment2);border-radius:14px;padding:14px 16px}
.acces-ico{font-size:1.2rem;flex-shrink:0}
.acces-item span{font-size:.86rem;color:#5A5040}
/* formulaire */
    .form-contact{background:var(--white);border-radius:28px;padding:40px;border:1.5px solid var(--parchment2)}
.form-group{margin-bottom:18px}
.form-group label{display:block;font-size:.85rem;font-weight:600;color:var(--forest);margin-bottom:6px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border-radius:12px;border:1.5px solid var(--parchment3);background:var(--parchment);font-family:var(--f-body);font-size:.9rem;color:var(--ink);outline:none;transition:border-color .2s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--forest)}
.form-group textarea{height:120px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:580px){.form-row{grid-template-columns:1fr}}
.form-submit{width:100%;padding:15px;border-radius:100px;background:var(--forest);color:var(--white);font-family:var(--f-display);font-size:1rem;font-weight:700;border:none;cursor:pointer;transition:transform .2s,box-shadow .2s}
/* carte */
    .map-placeholder{width:100%;height:300px;border-radius:20px;background:var(--parchment2);border:2px dashed var(--parchment3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#9C8A6E;font-size:.88rem;margin-top:32px}
/* CTA footer shared */
    .footer{background:var(--ink);padding:60px 28px 28px}

/* ---------------- 08-mentions ---------------- */
/* NB (lot 3D) : ces règles étaient en sélecteurs nus et fuyaient sur tout
   le site. Scopées aux pages légales via la classe body p-<key>. */
.p-mentions .wrap, .p-confidentialite .wrap { max-width: 800px; }
.p-mentions section, .p-confidentialite section { padding: 64px 0; }
.p-mentions .legal-body, .p-confidentialite .legal-body { font-family: var(--f-body); }
.p-mentions .legal-body h2, .p-confidentialite .legal-body h2 { font-size: 1.4rem; color: var(--forest); margin: 36px 0 14px; }
.p-mentions .legal-body h3, .p-confidentialite .legal-body h3 { font-size: 1.05rem; color: var(--forest); margin: 20px 0 8px; }
.p-mentions .legal-body a, .p-confidentialite .legal-body a { color: var(--forest); text-decoration: underline; text-underline-offset: 2px; }
.p-mentions .legal-body p, .p-confidentialite .legal-body p { color: #5A5040; margin-bottom: 12px; font-size: .95rem; }
.p-mentions .legal-body strong, .p-confidentialite .legal-body strong { color: var(--ink); }
.nav-links a:hover{background:var(--parchment2);color:var(--forest)}
.page-hero{background:var(--forest);padding:60px 28px 70px;text-align:center;position:relative}
.page-hero h1{color:var(--parchment)}
.legal-body{background:var(--white);border-radius:24px;padding:48px 52px;border:1.5px solid var(--parchment2);margin-bottom:40px}
@media(max-width:600px){.legal-body{padding:28px 24px}}
.footer{background:var(--ink);padding:40px 28px 28px}
.footer-bottom{max-width:1120px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:rgba(247,240,224,.3)}
.footer-bottom a{color:inherit;text-decoration:none}
@media(max-width:600px){.footer-bottom{flex-direction:column;gap:8px;text-align:center}}

/* ---------------- 09-confidentialite ---------------- */
/* idem lot 3D : scopé à la page (était en sélecteurs nus, fuite globale) */
.p-confidentialite .legal-body h2 { font-size: 1.35rem; margin: 40px 0 14px; padding-top: 8px; border-top: 1px solid var(--parchment2); }
.p-confidentialite .legal-body h2:first-of-type { border-top: none; margin-top: 0; }
.p-confidentialite .legal-body h3 { font-size: 1rem; margin: 18px 0 8px; }
.p-confidentialite .legal-body ul { margin: 8px 0 14px 22px; color: #5A5040; }
.p-confidentialite .legal-body ul li { margin-bottom: 6px; font-size: .93rem; }
/* HERO */
    .page-hero{background:var(--forest);padding:60px 28px 70px;text-align:center;position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,rgba(196,104,59,.12),transparent 60%);pointer-events:none}
.page-hero p{color:rgba(247,240,224,.65);font-size:.95rem;max-width:500px;margin:14px auto 0}
/* CONTENU */
    .legal-body{background:var(--white);border-radius:24px;padding:48px 52px;border:1.5px solid var(--parchment2);margin-bottom:40px}
@media(max-width:600px){.legal-body{padding:28px 22px}}
/* DROITS */
    .droits-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}
@media(max-width:600px){.droits-grid{grid-template-columns:1fr}}
.droit-card{background:var(--parchment);border-radius:14px;padding:18px 18px;display:flex;gap:12px;align-items:flex-start}
.droit-icon{font-size:1.4rem;flex-shrink:0}
.droit-card strong{display:block;color:var(--forest);font-size:.88rem;margin-bottom:3px}
.droit-card p{font-size:.82rem;margin:0;color:#6A5E4A}
/* TABLE DES MATIÈRES */
    .toc{background:var(--parchment2);border-radius:16px;padding:20px 24px;margin-bottom:36px}
.toc p{font-size:.82rem;font-weight:700;color:var(--forest);margin-bottom:10px;text-transform:uppercase;letter-spacing:.06em}
.toc ol{margin:0 0 0 16px;color:var(--forest)}
.toc ol li{margin-bottom:4px;font-size:.84rem}
.toc ol li a{color:var(--forest);font-weight:500}
.toc ol li a:hover{text-decoration:underline}
/* FOOTER */
    .footer{background:var(--ink);padding:40px 28px 28px}

/* ---------------- 10-actualites ---------------- */
/* ── NAV ── */
    .nav{position:sticky;top:0;z-index:100;background:rgba(247,240,224,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--parchment3)}
/* ── HERO ── */
    .page-hero{background:var(--forest);padding:60px 28px 70px;text-align:center;position:relative}
.page-hero h1{color:var(--parchment);font-size:clamp(2rem,4vw,3rem);font-weight:700}
.page-hero p{color:rgba(247,240,224,.7);margin-top:12px;font-size:1rem;max-width:560px;margin-inline:auto}
/* ── GRILLE ACTU ── */
    .wrap{max-width:1120px;margin:0 auto;padding:0 28px}
.actu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;padding:60px 0}
.actu-card{background:var(--white);border-radius:20px;padding:28px;border:1.5px solid var(--parchment2);transition:transform .2s,box-shadow .2s}
.actu-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.08)}
.actu-date{font-size:.72rem;font-weight:700;color:var(--terra);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}
.actu-card h3{font-family:var(--f-display);font-size:1.15rem;color:var(--forest);margin-bottom:10px;line-height:1.3}
.actu-card p{font-size:.9rem;color:#6A5E4A;line-height:1.65}
.actu-head{margin-top:56px;margin-bottom:0}
.actu-grid{padding-top:32px}
.actu-grid--passees .actu-card{opacity:.75}
.actu-vide-court{text-align:center;color:#9A8A6E;padding:28px 0 8px}
.actu-vide{text-align:center;padding:80px 28px;color:#9A8A6E}
.actu-vide p{font-size:1rem;margin-top:12px}
/* ── ÉQUIPE ── */
.equipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.equipe-card{background:var(--white);border-radius:24px;padding:32px 26px;border:1.5px solid var(--parchment2);text-align:center}
.equipe-photo{width:140px;height:140px;margin:0 auto 20px;border-radius:50%;overflow:hidden;border:4px solid var(--parchment2);background:var(--parchment2);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(45,90,39,.10)}
.equipe-photo img{width:100%;height:100%;object-fit:cover;display:block}
.equipe-initiale{font-family:var(--f-display);font-size:3.2rem;font-weight:700;color:var(--forest)}
.equipe-card h3{font-family:var(--f-display);font-size:1.4rem;color:var(--forest);margin-bottom:4px}
.equipe-role{font-size:.75rem;font-weight:700;color:var(--terra-ink,#9E4A24);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}
.equipe-classe{display:inline-block;font-family:var(--f-accent);font-size:.8rem;color:var(--forest);background:rgba(45,90,39,.08);padding:4px 12px;border-radius:100px;margin-bottom:16px}
.equipe-diplomes{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;align-items:center;gap:6px}
.equipe-diplomes li{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--forest)}
.equipe-diplomes .ico{color:var(--terra-ink,#9E4A24);flex-shrink:0}
.equipe-parcours{font-size:.9rem;color:#6A5E4A;line-height:1.7;text-align:justify;-webkit-hyphens:auto;hyphens:auto;margin-bottom:12px}
/* Colonne étroite : le justifié crée des « rivières » → aligné à gauche sur mobile */
@media(max-width:600px){.equipe-parcours{text-align:left}}
.equipe-temo{margin:18px 0 0;padding:16px 18px;background:rgba(45,90,39,.06);border-left:4px solid var(--forest);border-radius:12px;font-style:italic;font-size:.9rem;color:#5A5040;line-height:1.7;text-align:left}
.equipe-temo::before{content:'« '}
.equipe-temo::after{content:' »'}
.civique-card{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:center;background:var(--white);border-radius:24px;padding:40px;border:1.5px solid var(--parchment3);max-width:900px;margin:0 auto}
.civique-card .label{display:block;margin-bottom:10px}
.civique-card h2{color:var(--forest);margin-bottom:8px}
.civique-photo{width:180px;height:180px;margin:0}
/* Relecture : passages [à valider] de content.json, surlignés tant qu'ils existent */
mark.a-valider{background:rgba(196,160,80,.28);color:inherit;border-radius:4px;padding:0 3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.brouillon-note{display:flex;gap:10px;align-items:center;justify-content:center;margin:32px auto 0;max-width:760px;padding:12px 18px;border-radius:12px;background:rgba(196,160,80,.16);border:1px dashed var(--gold);font-size:.88rem;color:#5A5040;text-align:center}
@media(max-width:900px){.equipe-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.civique-card{grid-template-columns:1fr;text-align:center;padding:32px 24px;gap:20px}.civique-photo{margin:0 auto}}
@media(max-width:600px){.equipe-grid{grid-template-columns:1fr}}
/* ── FILTRES ── */
    .filtres{display:flex;gap:10px;flex-wrap:wrap;padding:32px 0 0}
.filtre-btn{border:1.5px solid var(--parchment3);background:none;padding:7px 18px;border-radius:100px;font-size:.82rem;font-weight:600;color:var(--ink);cursor:pointer;transition:.18s}
.filtre-btn:hover,.filtre-btn.active{background:var(--forest);color:white;border-color:var(--forest)}
/* ── FOOTER ── */
    .footer{background:var(--ink);padding:40px 28px 28px}
@media(max-width:600px){.actu-grid{grid-template-columns:1fr;padding:40px 0}}


/* ---------------- Ajouts refonte 2026-09 ---------------- */
:focus-visible { outline: 3px solid var(--terra); outline-offset: 2px; border-radius: 3px; }

.actu-banner { position: relative; background: var(--forest); color: #fff; padding: 10px 46px 10px 20px; text-align: center; font-size: .88rem; font-weight: 500; line-height: 1.4; z-index: 200; }
.actu-banner-link { color: rgba(255,255,255,.85); text-decoration: underline; margin-left: 10px; white-space: nowrap; }
.actu-banner-close { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: 0; color: #fff; font-size: 1.1rem; line-height: 1; cursor: pointer; opacity: .75; }
.actu-banner-close:hover { opacity: 1; }

.temo-flag { display: inline-block; margin: 14px auto 0; padding: 5px 14px; border-radius: 100px; background: rgba(196,104,59,.12); color: var(--terra); font-size: .74rem; font-weight: 700; letter-spacing: .02em; }


/* =====================================================================
   LOT 1 — Correctifs de contraste (WCAG 2.1 AA), refonte 2026-09
   Ajouts en fin de fichier (cf. TODO dédup. — lot 3). Règles de même
   spécificité placées APRÈS leurs équivalents : elles l'emportent dans
   la cascade sans !important.
   ===================================================================== */
:root {
  --terra-ink:     #9E4A24; /* terracotta assombri, texte < 18px : ~5.3:1 sur parchment, ~6:1 sur blanc */
  --terra-on-dark: #F6BCA4; /* petits libellés terracotta sur fond forest : ~4.9:1 */
  --text-2:        #6A5E4A; /* texte secondaire : ~6.2:1 sur blanc */
  --text-3:        #7A6A50; /* plancher texte tertiaire : ~4.6:1 sur parchment, ~5.2:1 sur blanc */
}

/* Libellés « eyebrow » + petits textes d'accent sur fond clair
   (étaient à ~3.5:1 en #C4683B / .72–.78rem) */
.label,
.logo-sub,
.service-pill,
.tarif-qf,
.compa-label,
.actu-date,
.tl-time,
.temo-flag,
.hero-stat .val sup,
.galerie-note a { color: var(--terra-ink); }

.faq-q:hover { color: var(--terra-ink); }
.btn-white   { color: var(--terra-ink); }

/* Petits libellés terracotta posés sur fond forest (étaient à ~3.3:1) */
.tarif-card.t2 .tarif-qf,
.compa-card.avea .compa-label { color: var(--terra-on-dark); }

/* Légendes gris chaud : #9A8A6E / #9C8A6E étaient à ~3.3:1 sur blanc */
.temo-role,
.tarif-detail,
.galerie-note,
.ph,
.map-placeholder { color: var(--text-3); }

.service-horaire,
.actu-vide       { color: var(--text-2); } /* contenu réel (horaires, état vide) */

/* Footer : opacités sous le seuil (.3 ≈ 2.5:1, .5 ≈ 4.5:1 limite) */
.footer-brand p,
.footer-col ul li a   { color: rgba(247, 240, 224, .72); }
.footer-bottom        { color: rgba(247, 240, 224, .62); }
.footer-bottom a:hover { color: rgba(247, 240, 224, .85); }

/* Page-hero (texte sur fond forest) : libellé + paragraphe trop transparents */
.page-hero .label { color: rgba(247, 240, 224, .82); }
.page-hero p      { color: rgba(247, 240, 224, .82); }

/* Liens en toutes lettres : ne pas signaler l'interactivité par la seule couleur */
.galerie-note a,
.legal-body a { text-decoration: underline; text-underline-offset: 2px; }


/* =====================================================================
   LOT 2 — Mouvement réduit + correctifs navigation
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .hero-left > * { animation: none !important; }
  .btn:hover,
  .service-card:hover,
  .temo-card:hover,
  .peda-card:hover,
  .bene-card:hover,
  .acti-card:hover,
  .actu-card:hover,
  .info-card:hover,
  .lecon-item:hover,
  .pilier:hover { transform: none !important; }
}

/* Hamburger : masqué hors mobile. Tout son style vivait dans la media
   query max-width:768px → un <button> UA nu s'affichait en desktop. */
.hamburger { display: none; }
@media (max-width: 1180px) {
  .hamburger { display: flex; }
  /* La page d'accueil ouvrait le tiroir/voile à top:60px alors que la barre
     fait 68px (les autres pages utilisaient déjà 68px). On aligne. */
  .nav-links.open,
  .nav-overlay { top: 68px; }
}

/* Voile du menu mobile : le rendre cliquable. Il portait pointer-events:none,
   donc le « clic sur le fond pour fermer » (câblé en JS) était inopérant. */
.nav-overlay.open { pointer-events: auto; }
/* L'en-tête (z-index 100) passait sous le voile (998) : le tiroir, qui vit dans
   l'en-tête, était recouvert et chaque tap sur un lien refermait le menu. */
.nav { z-index: 1000; }


/* =====================================================================
   LOT 3A — Correctifs HTML/a11y ponctuels
   ===================================================================== */

/* Lien d'évitement : masqué jusqu'au focus clavier */
.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 1000;
  background: var(--forest);
  color: var(--white);
  padding: 10px 18px;
  border-radius: 10px;
  font-weight: 600;
  text-decoration: none;
  transform: translateY(-160%);
  transition: transform .15s ease;
}
.skip-link:focus { transform: none; }
#contenu:focus { outline: none; } /* cible du lien d'évitement : pas de halo au saut */

/* Bouton de fermeture du bandeau : cible portée à 40x40 (le bandeau fait ~40px) */
.actu-banner-close {
  width: 40px;
  height: 40px;
  right: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  border-radius: 50%;
}
.actu-banner-close:hover { opacity: 1; background: rgba(255, 255, 255, .14); }

/* Unités des grands chiffres : <span class="u"> à la place de <sup> détourné
   (sémantique correcte + lecture d'écran propre). Rendu : petit, gras, teinté. */
.val .u,
.chiffre-val .u {
  font-size: .5em;
  font-weight: 700;
  margin-left: .12em;
  letter-spacing: 0;
}
.hero-stat .val .u { color: var(--terra-ink); }
.chiffre-val .u    { color: var(--terra-on-dark); }

/* Symbole monétaire après le montant (convention FR) */
.tarif-prix .cur { font-size: .42em; font-weight: 700; vertical-align: .1em; }
.tarif-card.t2 .tarif-prix .cur { color: rgba(247, 240, 224, .75); }

/* Titres : équilibrage des retours à la ligne (remplace les <br> codés en dur) */
h1, h2, .section-head h2, .approche-text h2 { text-wrap: balance; }


/* =====================================================================
   LOT 3C — Transparence réduite
   ===================================================================== */
@media (prefers-reduced-transparency: reduce) {
  /* Barre de nav : fond translucide + flou → fond plein opaque */
  .nav { background: var(--parchment); backdrop-filter: none; -webkit-backdrop-filter: none; }
  /* Voile de menu mobile : opacité pleine */
  .nav-overlay.open { background: rgba(0, 0, 0, .55); }
  /* Grain papier plein écran : retiré */
  body::before { display: none; }
}


/* =====================================================================
   LOT 3D — Échelle typographique unique
   Les blocs CSS « par page » concaténés redéclaraient h1/h2/h3/section en
   sélecteurs nus : la taille dépendait de l'ordre du fichier — le hero de
   l'accueil héritait par ex. de la taille réduite des pages légales.
   On rétablit ici, en dernier, une échelle unique. Le spécifique (titres
   de cartes, pages légales) reste porté par des classes plus précises.
   ===================================================================== */
h1 { font-size: clamp(2.5rem, 5.5vw, 4rem);  line-height: 1.12; font-weight: 700; }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.7rem); line-height: 1.16; font-weight: 700;
     margin: 0; padding: 0; border: 0; }
h3 { font-size: 1.2rem; line-height: 1.3; font-weight: 700; margin: 0; }

/* Hero des pages internes : un cran plus compact que le hero d'accueil */
.page-hero h1 { font-size: clamp(2rem, 4vw, 2.9rem); }


/* =====================================================================
   LOT 4 — Revue pré-mise en ligne : retours de formulaire
   ===================================================================== */
.form-error {
  margin-top: 14px;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: .88rem;
  color: var(--terra-ink);
  background: rgba(196, 104, 59, .09);
  border: 1px solid color-mix(in srgb, var(--terra-ink) 35%, transparent);
}
.form-group input:user-invalid,
.form-group textarea:user-invalid,
.form-group select:user-invalid,
.form-group input:focus:invalid {
  border-color: var(--terra-ink);
}


/* =====================================================================
   LOT 5 — Refonte DA "Botanical Storybook, plus narratif" (2026-09)
   Ajouts uniquement — tokens/couleurs/polices de base inchangés.
   Pilote : accueil (index.html). Ne pas dupliquer avant validation.
   ===================================================================== */

/* ── Police accent (badges, kickers, légendes — jamais H1-H3) ── */
:root { --f-accent: 'Fredoka', var(--f-body); }

.label,
.service-pill,
.tag,
.logo-sub,
.badge-text strong,
.badge-txt strong {
  font-family: var(--f-accent);
  font-weight: 500;
}

/* ── Médaillons — icônes rondes au trait fin (nature, autonomie,
   bienveillance, coopération). Habille les icônes .ico déjà en place
   (piliers accueil, bénéfices/pédagogies/activités/aides des pages
   École/Loisirs) sans changer leur structure HTML. ── */
.medaillon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--parchment2);
  box-shadow: 0 6px 18px rgba(45, 90, 39, .10);
}
.medaillon + h3,
.medaillon + h3 + p,
.bene-card .medaillon,
.peda-card .medaillon,
.acti-card .medaillon { margin-bottom: 16px; }
.medaillon .ico { width: 30px; height: 30px; color: var(--forest); }
.medaillon.terra { background: rgba(196, 104, 59, .10); }
.medaillon.terra .ico { color: var(--terra); }

/* ── Alternance de fond façon "pages illustrées" ──
   cream / parchment2 en rotation légère, jamais plus d'un bloc forest
   plein par page (le bloc forest existant, ex. .chiffres-section, EST
   ce bloc — pas la peine d'en ajouter un second). */
.section-cream       { background: var(--cream); }
.section-parchment2  { background: var(--parchment2); }
.section-forest {
  background: var(--forest);
  color: var(--cream);
}
.section-forest h2,
.section-forest h3 { color: var(--cream); }
.section-forest p  { color: rgba(250, 247, 240, .82); }

/* ── Pilote accueil : piliers en médaillons ── */
.p-index .pilier { align-items: center; }

/* ── Pilote accueil : CTA final allégé (le bloc forest des chiffres
   reste l'unique bloc foncé de la page — cf. décision du 18/09) ── */
.p-index .cta-section {
  background: var(--cream);
  color: var(--ink);
}
.p-index .cta-section::before,
.p-index .cta-section::after {
  background: rgba(196, 104, 59, .07);
}
.p-index .cta-section .label { color: var(--terra-ink); }
.p-index .cta-section h2 { color: var(--forest); }
.p-index .cta-section p  { color: #5A5040; }
.p-index .cta-section .btn-white {
  background: var(--forest);
  color: var(--white);
  box-shadow: 0 4px 18px rgba(45, 90, 39, .28);
}
.p-index .cta-section .btn-white:hover { box-shadow: 0 8px 28px rgba(45, 90, 39, .38); }
.p-index .cta-section .btn-outline-white {
  background: transparent;
  color: var(--forest);
  border: 2px solid var(--forest);
}
.p-index .cta-section .btn-outline-white:hover { background: var(--forest); color: var(--white); }

/* ── Duplication pilote validée (18/09) : même allègement de CTA sur les
   pages internes qui ont, comme l'accueil, un .page-hero forest ET un
   .cta-section terra (donc 2 blocs foncés) — .contact/.mentions/
   .confidentialite/.actualites n'ont pas de .cta-section, rien à faire. ── */
.p-maternelle .cta-section,
.p-elementaire .cta-section,
.p-loisirs .cta-section,
.p-inscriptions .cta-section,
.p-faq .cta-section, .p-equipe .cta-section , .p-tarifs .cta-section {
  background: var(--cream);
  color: var(--ink);
}
.p-maternelle .cta-section::before, .p-maternelle .cta-section::after,
.p-elementaire .cta-section::before, .p-elementaire .cta-section::after,
.p-loisirs .cta-section::before, .p-loisirs .cta-section::after,
.p-inscriptions .cta-section::before, .p-inscriptions .cta-section::after,
.p-faq .cta-section::before, .p-equipe .cta-section::before, .p-tarifs .cta-section::before, .p-faq .cta-section::after, .p-equipe .cta-section::after , .p-tarifs .cta-section::after {
  background: rgba(196, 104, 59, .07);
}
.p-maternelle .cta-section .label, .p-elementaire .cta-section .label,
.p-loisirs .cta-section .label, .p-inscriptions .cta-section .label,
.p-faq .cta-section .label, .p-equipe .cta-section .label , .p-tarifs .cta-section .label { color: var(--terra-ink); }
.p-maternelle .cta-section h2, .p-elementaire .cta-section h2,
.p-loisirs .cta-section h2, .p-inscriptions .cta-section h2,
.p-faq .cta-section h2, .p-equipe .cta-section h2 , .p-tarifs .cta-section h2 { color: var(--forest); }
.p-maternelle .cta-section p, .p-elementaire .cta-section p,
.p-loisirs .cta-section p, .p-inscriptions .cta-section p,
.p-faq .cta-section p, .p-equipe .cta-section p , .p-tarifs .cta-section p { color: #5A5040; }
.p-maternelle .cta-section .btn-white, .p-elementaire .cta-section .btn-white,
.p-loisirs .cta-section .btn-white, .p-inscriptions .cta-section .btn-white,
.p-faq .cta-section .btn-white, .p-equipe .cta-section .btn-white , .p-tarifs .cta-section .btn-white {
  background: var(--forest);
  color: var(--white);
  box-shadow: 0 4px 18px rgba(45, 90, 39, .28);
}
.p-maternelle .cta-section .btn-white:hover, .p-elementaire .cta-section .btn-white:hover,
.p-loisirs .cta-section .btn-white:hover, .p-inscriptions .cta-section .btn-white:hover,
.p-faq .cta-section .btn-white:hover, .p-equipe .cta-section .btn-white:hover , .p-tarifs .cta-section .btn-white:hover { box-shadow: 0 8px 28px rgba(45, 90, 39, .38); }
.p-maternelle .cta-section .btn-outline-white, .p-elementaire .cta-section .btn-outline-white,
.p-loisirs .cta-section .btn-outline-white, .p-inscriptions .cta-section .btn-outline-white,
.p-faq .cta-section .btn-outline-white, .p-equipe .cta-section .btn-outline-white , .p-tarifs .cta-section .btn-outline-white {
  background: transparent;
  color: var(--forest);
  border: 2px solid var(--forest);
}
.p-maternelle .cta-section .btn-outline-white:hover, .p-elementaire .cta-section .btn-outline-white:hover,
.p-loisirs .cta-section .btn-outline-white:hover, .p-inscriptions .cta-section .btn-outline-white:hover,
.p-faq .cta-section .btn-outline-white:hover, .p-equipe .cta-section .btn-outline-white:hover , .p-tarifs .cta-section .btn-outline-white:hover { background: var(--forest); color: var(--white); }

/* Cas particulier inscriptions : bouton tél. réutilise aussi .btn-white
   dans le CTA (icône ico--phone), même traitement que les autres liens. */


/* Logo officiel (fond blanc) posé sur un médaillon clair dans le pied de page vert */
.footer-logo{display:block;width:88px;height:88px;border-radius:20px;background:#fff;padding:6px;margin-bottom:16px;object-fit:contain}
/* Menu desktop à 9 entrées (Tarifs ajouté le 29/09) : le logo ne doit pas se tasser */
.nav-inner .logo{flex-shrink:0}
.logo-sub{white-space:nowrap}
/* Icône officielle (yourte des Petits Explor'Acteurs, fournie le 29/09) à la place du pictogramme dessiné */
.logo-mark{width:44px;height:44px;background:none;border-radius:12px;overflow:hidden}
.logo-mark img{width:100%;height:100%;display:block}

/* Photos réelles (remplacent les .ph) — content.json "images" */
.photo{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.hero-right .photo{position:absolute;inset:0}

/* Contrastes WCAG AA — mesure sur la preview du 30/09 (texte ≥ 4,5:1).
   Teintes inchangées : seule l'opacité / la nuance sombre de la palette est ajustée. */
.footer-col ul li { color: rgba(247, 240, 224, .72); }            /* adresse du pied de page : était ink sur ink (invisible) */
.breadcrumb,
.breadcrumb a,
.breadcrumb span { color: rgba(247, 240, 224, .75); }              /* fil d'Ariane sur forest : 2,0 → 4,8 */
.chiffre-label { color: rgba(247, 240, 224, .75); }                /* chiffres clés sur forest : 3,7 → 4,8 */
.tarif-box.featured .tl-l,
.tarif-card.t2 .tarif-jour { color: rgba(247, 240, 224, .75); }   /* lignes des cartes vertes : 4,0 → 4,8 */
.tarif-jour { color: #6A5E4A; }                                    /* « forfait annuel » sur parchment2 : 4,1 → 5,0 */
.hero-stat .desc,
.badge-text span,
.badge-txt span { color: var(--text-3); }                          /* légendes et badges : 3,7 / 4,1 → 4,6 / 5,2 */
.compa-card.pub .compa-detail,
.ph strong, .ph small { color: #6A5E4A; }                                   /* sur parchment2 : 4,1 → 5,0 */
.compa-card.avea .compa-detail,
.tarif-box.featured .tarif-detail { color: rgba(247, 240, 224, .75); } /* sur forest : 3,7 → 4,8 */
