/*
Theme Name: Focus by Harold
Theme URI: https://focusbyharold.fr/
Author: Harold Assier
Author URI: https://focusbyharold.fr/
Description: Thème sur mesure pour Focus by Harold — Consultant & Formateur IA à Pau. Direction artistique éditoriale, fond crème + vert forêt, typographie Cormorant Garamond. Cible TPE/PME du Sud-Ouest.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: All rights reserved
Text Domain: focusbyharold
Tags: business, custom-colors, custom-menu, editor-style, full-width-template, theme-options
*/

/* ─── TOKENS ─────────────────────────────────────────────────── */
:root {
  --bg:       #F9F8F5;
  --bg2:      #F2F0EB;
  --forest:   #1e2b21;
  --forest2:  #2d4232;
  --sage:     #4A7A55;
  --sage-lt:  #A8C4A2;
  --text:     #1A1F1B;
  --muted:    #7A8A7D;
  --line:     rgba(30,43,33,0.12);
  --serif:    'Cormorant Garamond', Georgia, serif;
  --body:     'DM Sans', sans-serif;
  --ease:     cubic-bezier(0.16,1,0.3,1);
}

/* ─── RESET ──────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--body);
  font-weight:300;
  line-height:1.7;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit}

/* ─── GRAIN TEXTURE ──────────────────────────────────────────── */
body::after{
  content:'';
  position:fixed;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity:0.03;
  pointer-events:none;
  z-index:999;
}

/* ─── SCROLLBAR ──────────────────────────────────────────────── */
::-webkit-scrollbar{width:3px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--forest);border-radius:2px}

/* ─── NAV ────────────────────────────────────────────────────── */
.site-nav{
  position:fixed;top:0;left:0;right:0;
  z-index:100;
  padding:1.75rem 5rem;
  display:flex;align-items:center;justify-content:space-between;
  transition:background 0.5s var(--ease),box-shadow 0.5s;
}
.site-nav.scrolled{
  background:rgba(249,248,245,0.92);
  backdrop-filter:blur(16px);
  box-shadow:0 1px 0 var(--line);
}
.nav-logo{
  font-family:var(--serif);
  font-size:1.25rem;font-weight:600;
  letter-spacing:0.01em;color:var(--forest);
}
.nav-links{
  display:flex;gap:2.5rem;list-style:none;
  font-size:0.82rem;font-weight:400;
  letter-spacing:0.08em;text-transform:uppercase;
}
.nav-links a{color:var(--muted);transition:color 0.3s}
.nav-links a:hover,
.nav-links .current-menu-item > a,
.nav-links .current_page_item > a{color:var(--forest)}
.nav-cta{
  font-size:0.82rem;font-weight:500;
  letter-spacing:0.08em;text-transform:uppercase;
  color:var(--forest);
  border-bottom:1px solid var(--forest);
  padding-bottom:2px;
  transition:opacity 0.3s;
}
.nav-cta:hover{opacity:0.6}
.nav-burger{
  display:none;background:none;border:none;cursor:pointer;
  width:28px;height:18px;position:relative;padding:0;
}
.nav-burger span{
  position:absolute;left:0;right:0;height:1.5px;
  background:var(--forest);transition:transform 0.3s,opacity 0.3s,top 0.3s;
}
.nav-burger span:nth-child(1){top:0}
.nav-burger span:nth-child(2){top:8px}
.nav-burger span:nth-child(3){top:16px}
.nav-burger.open span:nth-child(1){top:8px;transform:rotate(45deg)}
.nav-burger.open span:nth-child(2){opacity:0}
.nav-burger.open span:nth-child(3){top:8px;transform:rotate(-45deg)}

/* ─── HOME : HERO ────────────────────────────────────────────── */
#hero{
  min-height:100vh;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  padding:8rem 5rem 5rem;
  gap:5rem;
  position:relative;
  border-bottom:1px solid var(--line);
}
.hero-left{display:flex;flex-direction:column;justify-content:center}
.hero-eyebrow{
  font-size:0.75rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--sage);margin-bottom:2.5rem;
  display:flex;align-items:center;gap:1rem;
  opacity:0;transform:translateY(16px);
  animation:fadeUp 0.8s var(--ease) 0.3s forwards;
}
.hero-eyebrow::before{content:'';width:2rem;height:1px;background:var(--sage)}
.hero-title{
  font-family:var(--serif);
  font-size:clamp(3.2rem,5.5vw,6rem);
  font-weight:600;line-height:1.02;letter-spacing:-0.02em;
  color:var(--forest);margin-bottom:2rem;
}
.hero-title .line{display:block;overflow:hidden}
.hero-title .line span{
  display:block;
  opacity:0;transform:translateY(100%);
  animation:slideUp 0.9s var(--ease) forwards;
}
.hero-title .line:nth-child(1) span{animation-delay:0.45s}
.hero-title .line:nth-child(2) span{animation-delay:0.58s}
.hero-title .line:nth-child(3) span{animation-delay:0.72s}
.hero-title em{font-style:italic;color:var(--sage)}
.hero-sub{
  font-size:1.05rem;color:var(--muted);
  max-width:480px;line-height:1.85;
  opacity:0;transform:translateY(16px);
  animation:fadeUp 0.8s var(--ease) 1s forwards;
}
.hero-actions{
  display:flex;align-items:center;gap:2rem;flex-wrap:wrap;margin-top:3.5rem;
  opacity:0;transform:translateY(16px);
  animation:fadeUp 0.8s var(--ease) 1.2s forwards;
}
.hero-right{
  display:flex;align-items:center;justify-content:center;
  opacity:0;animation:fadeIn 1.2s var(--ease) 0.8s forwards;
}
.hero-visual-block{
  width:100%;aspect-ratio:3/4;max-width:420px;
  background:var(--forest);
  position:relative;overflow:hidden;
}
.hero-visual-block::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(74,122,85,0.25) 0%,transparent 60%);
}
.hero-visual-block img{
  width:100%;height:100%;object-fit:cover;
  position:relative;z-index:1;
}
.hero-photo-placeholder{
  width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1rem;color:rgba(168,196,162,0.5);
  font-size:0.75rem;letter-spacing:0.12em;text-transform:uppercase;
}
.hero-caption-tag{
  position:absolute;bottom:2rem;left:-1.5rem;
  background:var(--bg);padding:1.25rem 1.75rem;
  box-shadow:0 4px 24px rgba(30,43,33,0.12);
  border-left:2px solid var(--sage);
  z-index:2;
}
.hero-caption-tag .label{
  font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:0.25rem;
}
.hero-caption-tag .value{
  font-family:var(--serif);font-size:1.2rem;font-weight:600;color:var(--forest);
}
.hero-scroll-hint{
  position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);
  font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--muted);
  display:flex;flex-direction:column;align-items:center;gap:0.75rem;
  opacity:0;animation:fadeIn 1s var(--ease) 2s forwards;
}
.hero-scroll-hint::before{
  content:'';width:1px;height:36px;
  background:linear-gradient(to bottom,transparent,var(--forest));
}

/* ─── BUTTONS ────────────────────────────────────────────────── */
.btn-forest{
  display:inline-flex;align-items:center;gap:0.75rem;
  background:var(--forest);color:var(--bg);
  padding:0.9rem 2rem;
  font-family:var(--body);font-size:0.85rem;font-weight:500;
  letter-spacing:0.06em;text-transform:uppercase;
  border:none;cursor:pointer;
  transition:background 0.3s,transform 0.3s var(--ease);
}
.btn-forest:hover{background:var(--forest2);transform:translateY(-2px)}
.btn-text{
  font-size:0.85rem;font-weight:400;
  letter-spacing:0.06em;text-transform:uppercase;
  color:var(--muted);
  display:flex;align-items:center;gap:0.5rem;
  transition:color 0.3s,gap 0.3s var(--ease);
}
.btn-text:hover{color:var(--forest);gap:0.9rem}
.btn-cream{
  display:inline-flex;align-items:center;gap:0.75rem;
  background:var(--bg);color:var(--forest);
  padding:0.9rem 2rem;
  font-size:0.85rem;font-weight:500;
  letter-spacing:0.06em;text-transform:uppercase;
  transition:background 0.3s,transform 0.3s var(--ease);
}
.btn-cream:hover{background:var(--bg2);transform:translateY(-2px)}
.btn-text-cream{
  font-size:0.85rem;letter-spacing:0.06em;text-transform:uppercase;
  color:rgba(249,248,245,0.65);
  display:flex;align-items:center;gap:0.5rem;
  transition:color 0.3s,gap 0.3s var(--ease);
}
.btn-text-cream:hover{color:var(--bg);gap:0.9rem}

/* ─── SECTIONS COMMUNES ──────────────────────────────────────── */
.site-section{padding:7rem 5rem}
.section-marker{
  font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1.5rem;
  display:flex;align-items:center;gap:1rem;
}
.section-marker::before{content:'';width:1.5rem;height:1px;background:var(--sage)}
.section-title{
  font-family:var(--serif);
  font-size:clamp(2.3rem,3.8vw,4rem);
  font-weight:600;line-height:1.05;letter-spacing:-0.02em;
  color:var(--forest);
}
.section-title em{font-style:italic;color:var(--sage)}
.section-intro{
  color:var(--muted);font-size:1.05rem;line-height:1.85;
  max-width:600px;margin-top:1.25rem;
}

/* ─── HOME : ABOUT ───────────────────────────────────────────── */
#about{
  background:var(--bg2);
  display:grid;grid-template-columns:5fr 7fr;
  gap:8rem;align-items:start;
  border-bottom:1px solid var(--line);
}
.about-photo{
  width:100%;aspect-ratio:3/4;
  background:var(--forest);position:relative;overflow:hidden;
}
.about-photo img{width:100%;height:100%;object-fit:cover;display:block}
.about-photo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(30,43,33,0.4) 0%,transparent 50%);
  pointer-events:none;
}
.about-photo-placeholder{
  width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0.75rem;color:rgba(168,196,162,0.45);
  font-size:0.75rem;letter-spacing:0.12em;text-transform:uppercase;
}
.about-right .section-title{margin-bottom:2.5rem}
.about-body{color:var(--muted);font-size:1rem;line-height:1.9;margin-bottom:1.5rem}
.about-body strong{color:var(--text);font-weight:500}
.about-divider{width:3rem;height:1px;background:var(--line);margin:2.5rem 0}
.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.stat{border-top:1px solid var(--line);padding-top:1.5rem}
.stat-num{
  font-family:var(--serif);font-size:2.8rem;font-weight:600;
  color:var(--forest);line-height:1;display:block;margin-bottom:0.4rem;
}
.stat-label{font-size:0.78rem;color:var(--muted);line-height:1.4}

/* ─── HOME : EXPERTISES ──────────────────────────────────────── */
#expertises{background:var(--bg);border-bottom:1px solid var(--line)}
.expertises-top{
  display:grid;grid-template-columns:1fr 1fr;
  gap:4rem;align-items:end;
  margin-bottom:5rem;padding-bottom:4rem;
  border-bottom:1px solid var(--line);
}
.expertises-intro{color:var(--muted);font-size:1.05rem;line-height:1.85}
.expertise-row{
  display:grid;grid-template-columns:3rem 1fr auto;
  align-items:start;gap:2rem;
  padding:2.5rem 0;
  border-bottom:1px solid var(--line);
  cursor:default;
  transition:padding-left 0.4s var(--ease);
  position:relative;
}
.expertise-row:hover{padding-left:1.5rem}
.expertise-row:hover .expertise-name{color:var(--forest)}
.expertise-row:hover .exp-num{color:var(--sage)}
.exp-num{
  font-family:var(--serif);font-size:0.85rem;
  color:var(--muted);font-weight:500;padding-top:0.3rem;
  transition:color 0.3s;
}
.expertise-name{
  font-family:var(--serif);font-size:1.6rem;font-weight:600;
  color:var(--text);line-height:1.2;margin-bottom:0.5rem;
  transition:color 0.4s;
}
.expertise-desc{font-size:0.88rem;color:var(--muted);line-height:1.7}
.exp-arrow{
  color:var(--sage);font-size:1.1rem;
  opacity:0;transform:translateX(-8px);
  transition:opacity 0.3s,transform 0.3s var(--ease);
  align-self:center;
}
.expertise-row:hover .exp-arrow{opacity:1;transform:translateX(0)}

/* ─── HOME : FORMATIONS ──────────────────────────────────────── */
#formations{
  background:var(--forest);color:var(--bg);
  border-bottom:1px solid rgba(255,255,255,0.08);
}
#formations .section-marker{color:var(--sage-lt)}
#formations .section-marker::before{background:var(--sage-lt)}
#formations .section-title{color:var(--bg)}
#formations .section-title em{color:var(--sage-lt)}
.formations-intro{
  color:rgba(249,248,245,0.55);font-size:1rem;
  max-width:520px;margin-top:1rem;line-height:1.8;
}
.formations-header{
  display:grid;grid-template-columns:1fr 1fr;
  gap:4rem;align-items:end;margin-bottom:3rem;
}
.funding-banner{
  display:flex;align-items:center;gap:2rem;
  padding:2rem 2.5rem;
  background:rgba(168,196,162,0.08);
  border-left:2px solid var(--sage-lt);
  margin-bottom:5rem;
}
.funding-icon{
  flex-shrink:0;width:42px;height:42px;
  border:1px solid var(--sage-lt);
  display:flex;align-items:center;justify-content:center;
  color:var(--sage-lt);
}
.funding-text{flex:1}
.funding-tag{
  font-size:0.7rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--sage-lt);margin-bottom:0.4rem;display:block;
}
.funding-text p{color:rgba(249,248,245,0.75);font-size:0.95rem;line-height:1.6}
.funding-text strong{color:var(--bg);font-weight:500}
.formations-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:1px;background:rgba(255,255,255,0.1);
}
.formation-card{
  background:var(--forest);
  padding:3.5rem;
  position:relative;
  transition:background 0.4s var(--ease);
}
.formation-card:hover{background:var(--forest2)}
.f-level{
  font-size:0.7rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--sage-lt);margin-bottom:2rem;
  display:flex;align-items:center;gap:0.75rem;
}
.f-level::before{content:'';width:1rem;height:1px;background:var(--sage-lt)}
.f-title{
  font-family:var(--serif);font-size:1.6rem;font-weight:600;
  line-height:1.2;margin-bottom:1rem;color:var(--bg);
}
.f-desc{
  font-size:0.9rem;color:rgba(249,248,245,0.55);
  line-height:1.8;margin-bottom:2.5rem;
}
.f-meta{
  display:flex;gap:1.5rem;flex-wrap:wrap;
  font-size:0.78rem;color:rgba(249,248,245,0.4);
  border-top:1px solid rgba(255,255,255,0.08);
  padding-top:1.75rem;
}

/* ─── HOME : TESTIMONIALS ────────────────────────────────────── */
#testimonials{background:var(--bg2);border-bottom:1px solid var(--line)}
.testimonials-header{
  display:grid;grid-template-columns:1fr 1fr;
  gap:4rem;align-items:end;margin-bottom:5rem;
}
.testimonials-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;
}
.testi-card{
  background:var(--bg);
  padding:3rem;
  border:1px solid var(--line);
  position:relative;
}
.testi-quote{
  font-family:var(--serif);
  font-size:1.1rem;line-height:1.85;
  font-style:italic;font-weight:400;
  color:var(--text);margin-bottom:2.5rem;
}
.testi-author{
  display:flex;align-items:center;gap:1rem;
  padding-top:2rem;border-top:1px solid var(--line);
}
.author-init{
  width:40px;height:40px;
  background:var(--forest);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:0.9rem;font-weight:600;
  color:var(--bg);flex-shrink:0;
}
.author-name{font-size:0.88rem;font-weight:500;color:var(--forest)}
.author-role{font-size:0.78rem;color:var(--muted);margin-top:0.15rem}
.testi-card.featured{
  grid-column:1/-1;
  background:var(--forest);
  border-color:transparent;
  display:grid;grid-template-columns:2fr 1fr;
  gap:3rem;align-items:center;
}
.testi-card.featured .testi-quote{
  color:var(--bg);font-size:1.25rem;margin-bottom:0;
}
.testi-card.featured .testi-author{
  flex-direction:column;align-items:flex-end;text-align:right;
  border-top:1px solid rgba(255,255,255,0.1);padding-top:2rem;
}
.testi-card.featured .author-init{background:rgba(249,248,245,0.15);color:var(--bg)}
.testi-card.featured .author-name{color:var(--bg)}
.testi-card.featured .author-role{color:rgba(249,248,245,0.55)}

/* ─── HOME : BLOG ────────────────────────────────────────────── */
#blog{background:var(--bg);border-bottom:1px solid var(--line)}
.blog-header{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:4rem;flex-wrap:wrap;gap:1rem;
}
.blog-all{
  font-size:0.82rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--muted);
  display:flex;align-items:center;gap:0.6rem;
  transition:color 0.3s,gap 0.3s var(--ease);
}
.blog-all:hover{color:var(--forest);gap:1rem}
.article-row{
  display:grid;grid-template-columns:1fr auto;
  align-items:center;gap:3rem;
  padding:3rem 0;
  border-bottom:1px solid var(--line);
  cursor:pointer;position:relative;
  transition:padding-left 0.4s var(--ease);
}
.article-row:hover{padding-left:1rem}
.article-tag{
  font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--sage);margin-bottom:0.75rem;
}
.article-title{
  font-family:var(--serif);font-size:1.6rem;font-weight:600;
  color:var(--text);line-height:1.25;
  transition:color 0.3s;
}
.article-row:hover .article-title{color:var(--forest)}
.article-excerpt{
  font-size:0.9rem;color:var(--muted);line-height:1.7;
  margin-top:0.6rem;max-width:600px;
}
.article-arrow{
  font-size:1.25rem;color:var(--sage);
  opacity:0;transform:translateX(-8px);
  transition:opacity 0.3s,transform 0.3s var(--ease);
  flex-shrink:0;
}
.article-row:hover .article-arrow{opacity:1;transform:translateX(0)}

/* ─── HOME : CONTACT ─────────────────────────────────────────── */
#contact{
  background:var(--bg2);
  display:grid;grid-template-columns:1fr 1fr;
  gap:8rem;align-items:center;
}
.contact-left .section-title{margin-bottom:1.5rem}
.contact-left p{
  color:var(--muted);font-size:1rem;line-height:1.85;
  max-width:420px;margin-bottom:3rem;
}
.contact-actions{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}
.contact-right{
  display:flex;flex-direction:column;gap:0;
  border:1px solid var(--line);
}
.contact-item{
  padding:2rem 2.5rem;
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
  transition:background 0.3s;cursor:pointer;
}
.contact-item:last-child{border-bottom:none}
.contact-item:hover{background:var(--bg)}
.ci-label{
  font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:0.35rem;
}
.ci-value{
  font-family:var(--serif);font-size:1.1rem;font-weight:500;color:var(--forest);
}
.ci-arrow{
  color:var(--sage);
  opacity:0;transform:translateX(-6px);
  transition:all 0.3s var(--ease);
}
.contact-item:hover .ci-arrow{opacity:1;transform:translateX(0)}

/* ─── PAGES INTÉRIEURES : HERO ───────────────────────────────── */
.page-hero{
  padding:11rem 5rem 6rem;
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.breadcrumb{
  font-size:0.75rem;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--muted);margin-bottom:2rem;
  display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;
}
.breadcrumb a{color:var(--muted);transition:color 0.3s}
.breadcrumb a:hover{color:var(--forest)}
.breadcrumb .sep{opacity:0.4}
.breadcrumb .current{color:var(--forest);font-weight:500}
.page-hero-grid{
  display:grid;grid-template-columns:7fr 5fr;
  gap:6rem;align-items:end;max-width:1280px;
}
.page-hero-eyebrow{
  font-size:0.75rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--sage);margin-bottom:2rem;
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
}
.page-hero-eyebrow::before{content:'';width:2rem;height:1px;background:var(--sage)}
.opco-tag{
  display:inline-flex;align-items:center;gap:0.4rem;
  padding:0.25rem 0.65rem;
  border:1px solid var(--sage);
  font-size:0.65rem;letter-spacing:0.16em;
  color:var(--sage);border-radius:2px;
}
.page-hero h1{
  font-family:var(--serif);
  font-size:clamp(2.6rem,4.8vw,5rem);
  font-weight:600;line-height:1.04;letter-spacing:-0.02em;
  color:var(--forest);margin-bottom:2rem;max-width:1100px;
}
.page-hero h1 em{font-style:italic;color:var(--sage)}
.page-hero-sub{
  color:var(--muted);font-size:1.05rem;line-height:1.85;
  max-width:520px;margin-bottom:2.5rem;
}
.page-hero-actions{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}

/* ─── CONSEIL : AUDIENCE ─────────────────────────────────────── */
#audience{background:var(--bg2);border-bottom:1px solid var(--line)}
.audience-header{margin-bottom:5rem;max-width:800px}
.persona-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.persona-card{
  background:var(--bg);
  padding:3rem 2.5rem;
  border:1px solid var(--line);
  position:relative;
  transition:border-color 0.4s,transform 0.4s var(--ease);
}
.persona-card:hover{border-color:var(--forest);transform:translateY(-4px)}
.persona-num{
  font-family:var(--serif);font-size:0.9rem;font-weight:500;
  color:var(--sage);margin-bottom:1.5rem;display:block;
}
.persona-name{
  font-family:var(--serif);font-size:1.5rem;font-weight:600;
  color:var(--forest);line-height:1.2;margin-bottom:1rem;
}
.persona-desc{font-size:0.92rem;color:var(--muted);line-height:1.75}

/* ─── CONSEIL : METHOD ──────────────────────────────────────── */
#method{background:var(--bg);border-bottom:1px solid var(--line)}
.method-header,.process-header{margin-bottom:5rem;max-width:800px}
.method-step,.process-step{
  display:grid;grid-template-columns:5rem 1fr 1fr;
  gap:3rem;align-items:start;
  padding:3rem 0;
  border-bottom:1px solid var(--line);
  transition:padding-left 0.4s var(--ease);
}
.method-step:hover,.process-step:hover{padding-left:1.25rem}
.method-step:last-child,.process-step:last-child{border-bottom:none}
.method-num,.process-num{
  font-family:var(--serif);font-size:2.4rem;font-weight:500;
  color:var(--sage);line-height:1;
}
.method-content h3,.process-content h3{
  font-family:var(--serif);font-size:1.6rem;font-weight:600;
  color:var(--forest);line-height:1.2;margin-bottom:0.5rem;
}
.method-duration,.process-duration{
  font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--sage);
}
.method-desc,.process-desc{
  font-size:0.95rem;color:var(--muted);line-height:1.85;margin-bottom:1.25rem;
}
.method-deliverable{
  font-size:0.82rem;font-style:italic;color:var(--text);
  padding-left:1rem;border-left:2px solid var(--sage-lt);
}

/* ─── CONSEIL/HOME : SERVICES ────────────────────────────────── */
#services{background:var(--bg2);border-bottom:1px solid var(--line)}
.services-header{margin-bottom:5rem;max-width:800px}

/* ─── CONSEIL : WHY ──────────────────────────────────────────── */
#why{background:var(--bg);border-bottom:1px solid var(--line)}
.why-header{margin-bottom:5rem;max-width:800px}
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line)}
.why-item{background:var(--bg);padding:3rem 2.5rem}
.why-title{
  font-family:var(--serif);font-size:1.4rem;font-weight:600;
  color:var(--forest);margin-bottom:0.75rem;
  display:flex;align-items:center;gap:0.75rem;
}
.why-title::before{content:'';width:1.5rem;height:1px;background:var(--sage)}
.why-proof{font-size:0.95rem;color:var(--muted);line-height:1.8}

/* ─── FAQ ────────────────────────────────────────────────────── */
#faq{background:var(--bg2);border-bottom:1px solid var(--line)}
.faq-header{margin-bottom:4rem;max-width:800px}
.faq-list{max-width:900px}
.faq-item{border-top:1px solid var(--line);padding:0}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-item summary{
  list-style:none;cursor:pointer;
  padding:2rem 0;
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  font-family:var(--serif);font-size:1.25rem;font-weight:600;
  color:var(--forest);line-height:1.3;transition:color 0.3s;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:'+';
  font-family:var(--body);font-weight:300;font-size:1.5rem;
  color:var(--sage);transition:transform 0.3s,color 0.3s;flex-shrink:0;
}
.faq-item[open] summary::after{content:'−';color:var(--forest)}
.faq-item summary:hover{color:var(--forest2)}
.faq-answer{
  padding:0 0 2rem;
  font-size:0.98rem;color:var(--muted);line-height:1.85;max-width:780px;
}
.faq-answer a{color:var(--forest);border-bottom:1px solid var(--sage)}
.faq-answer a:hover{color:var(--sage)}

/* ─── CTA FINAL (sections type bandeau forêt) ────────────────── */
.cta-final{
  background:var(--forest);color:var(--bg);
  text-align:center;padding:8rem 5rem;
}
.cta-final h2{
  font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.6rem);
  font-weight:600;line-height:1.1;letter-spacing:-0.02em;
  color:var(--bg);margin-bottom:1.25rem;
}
.cta-final h2 em{font-style:italic;color:var(--sage-lt)}
.cta-final p{
  color:rgba(249,248,245,0.65);font-size:1.05rem;
  max-width:580px;margin:0 auto 3rem;line-height:1.8;
}
.cta-final-actions{
  display:flex;align-items:center;justify-content:center;gap:2.5rem;flex-wrap:wrap;
}

/* ─── FORMATION : OPCO BANNER XXL ────────────────────────────── */
#opco-banner{
  background:var(--forest);color:var(--bg);
  padding:6rem 5rem;
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.opco-banner-grid{
  display:grid;grid-template-columns:5fr 7fr;
  gap:5rem;align-items:center;max-width:1280px;margin:0 auto;
}
.opco-left .opco-marker{
  font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--sage-lt);margin-bottom:1.5rem;
  display:flex;align-items:center;gap:1rem;
}
.opco-left .opco-marker::before{content:'';width:1.5rem;height:1px;background:var(--sage-lt)}
.opco-left h2{
  font-family:var(--serif);
  font-size:clamp(2rem,3.4vw,3.2rem);
  font-weight:600;line-height:1.08;letter-spacing:-0.02em;color:var(--bg);
}
.opco-left h2 em{font-style:italic;color:var(--sage-lt)}
.opco-right p{color:rgba(249,248,245,0.78);font-size:1.05rem;line-height:1.85;margin-bottom:2rem}
.opco-right p strong{color:var(--bg);font-weight:500}
.opco-steps{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid rgba(255,255,255,0.12);padding-top:2rem;
}
.opco-step{padding-right:2rem;border-right:1px solid rgba(255,255,255,0.08)}
.opco-step:last-child{border-right:none;padding-right:0;padding-left:2rem}
.opco-step:nth-child(2){padding-left:2rem}
.opco-step .num{
  font-family:var(--serif);font-size:1.4rem;font-weight:500;
  color:var(--sage-lt);line-height:1;margin-bottom:0.5rem;display:block;
}
.opco-step .label{font-size:0.78rem;color:rgba(249,248,245,0.7);line-height:1.5}

/* ─── FORMATION : PROGRAMMES ─────────────────────────────────── */
#programmes{background:var(--bg);border-bottom:1px solid var(--line)}
.programmes-header{margin-bottom:5rem;max-width:800px}
.programmes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.programme-card{
  background:var(--bg2);
  padding:3rem 2.75rem;
  border:1px solid var(--line);
  display:flex;flex-direction:column;
  transition:border-color 0.4s,transform 0.4s var(--ease);
}
.programme-card:hover{border-color:var(--forest);transform:translateY(-4px)}
.p-level{
  font-size:0.7rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1.5rem;
  display:flex;align-items:center;gap:0.75rem;
}
.p-level::before{content:'';width:1rem;height:1px;background:var(--sage)}
.p-title{
  font-family:var(--serif);font-size:1.6rem;font-weight:600;
  color:var(--forest);line-height:1.2;margin-bottom:0.5rem;
}
.p-audience{font-size:0.82rem;color:var(--sage);font-style:italic;margin-bottom:1.25rem}
.p-desc{font-size:0.95rem;color:var(--muted);line-height:1.8;margin-bottom:2rem}
.p-program-label{
  font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--text);font-weight:500;margin-bottom:1rem;
}
.p-modules{list-style:none;margin-bottom:2rem}
.p-modules li{
  font-size:0.9rem;color:var(--muted);line-height:1.7;
  padding:0.5rem 0 0.5rem 1.25rem;position:relative;
  border-bottom:1px solid var(--line);
}
.p-modules li:last-child{border-bottom:none}
.p-modules li::before{
  content:'';position:absolute;left:0;top:1.05em;
  width:6px;height:1px;background:var(--sage);
}
.p-meta{
  margin-top:auto;padding-top:1.5rem;
  border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:1rem;
}
.p-meta-tags{display:flex;gap:0.85rem;flex-wrap:wrap;font-size:0.78rem;color:var(--muted)}
.p-meta-tags .opco{color:var(--sage);font-weight:500}
.p-cta{
  font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--forest);font-weight:500;
  display:flex;align-items:center;gap:0.4rem;
  border-bottom:1px solid var(--forest);padding-bottom:2px;
  transition:gap 0.3s var(--ease);
}
.p-cta:hover{gap:0.7rem}

/* ─── FORMATION : PUBLICS ────────────────────────────────────── */
#publics{background:var(--bg2);border-bottom:1px solid var(--line)}
.publics-header{margin-bottom:5rem;max-width:800px}
.publics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.public-card{
  background:var(--bg);
  padding:3rem 2.5rem;
  border:1px solid var(--line);
  transition:border-color 0.4s,transform 0.4s var(--ease);
}
.public-card:hover{border-color:var(--forest);transform:translateY(-4px)}
.public-icon{width:32px;height:32px;color:var(--sage);margin-bottom:1.5rem}
.public-name{
  font-family:var(--serif);font-size:1.4rem;font-weight:600;
  color:var(--forest);line-height:1.2;margin-bottom:1rem;
}
.public-desc{font-size:0.92rem;color:var(--muted);line-height:1.75;margin-bottom:1.25rem}
.public-tags{display:flex;flex-direction:column;gap:0.5rem;font-size:0.85rem;color:var(--text)}
.public-tags span{display:flex;align-items:center;gap:0.5rem}
.public-tags span::before{
  content:'';width:5px;height:5px;background:var(--sage);
  border-radius:50%;flex-shrink:0;
}

/* ─── FORMATION : FORMATS ────────────────────────────────────── */
#formats{background:var(--bg);border-bottom:1px solid var(--line)}
.formats-header{margin-bottom:5rem;max-width:800px}
.formats-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);
}
.format-card{
  background:var(--bg);
  padding:2.5rem 2rem;
  display:flex;flex-direction:column;gap:0.75rem;
  transition:background 0.3s;
}
.format-card:hover{background:var(--bg2)}
.format-icon{width:28px;height:28px;color:var(--sage);margin-bottom:0.5rem}
.format-name{
  font-family:var(--serif);font-size:1.25rem;font-weight:600;
  color:var(--forest);line-height:1.2;
}
.format-desc{font-size:0.85rem;color:var(--muted);line-height:1.7}

/* ─── OPCO PAGE ──────────────────────────────────────────────── */
#opco-list{background:var(--forest);color:var(--bg);border-bottom:1px solid rgba(255,255,255,0.08)}
#opco-list .section-marker{color:var(--sage-lt)}
#opco-list .section-marker::before{background:var(--sage-lt)}
#opco-list .section-title{color:var(--bg)}
#opco-list .section-title em{color:var(--sage-lt)}
#opco-list .section-intro{color:rgba(249,248,245,0.65)}
.opco-list-header{margin-bottom:5rem;max-width:800px}
.opco-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:rgba(255,255,255,0.08);
}
.opco-item{background:var(--forest);padding:2rem 1.75rem;transition:background 0.3s}
.opco-item:hover{background:var(--forest2)}
.opco-name{
  font-family:var(--serif);font-size:1.25rem;font-weight:600;
  color:var(--bg);margin-bottom:0.5rem;
}
.opco-branches{font-size:0.82rem;color:rgba(249,248,245,0.55);line-height:1.65}
.opco-note{
  margin-top:3rem;font-size:0.92rem;color:rgba(249,248,245,0.75);
  font-style:italic;line-height:1.75;max-width:760px;
}
.opco-note strong{color:var(--bg);font-style:normal;font-weight:500}
#eligible{background:var(--bg);border-bottom:1px solid var(--line)}
.eligible-header{margin-bottom:4rem;max-width:800px}
#included{background:var(--bg2);border-bottom:1px solid var(--line)}
.included-header{margin-bottom:5rem;max-width:800px}
.included-list{display:grid;grid-template-columns:1fr 1fr;gap:0 4rem;max-width:1100px}
.included-item{
  display:flex;align-items:flex-start;gap:1.25rem;
  padding:1.5rem 0;border-bottom:1px solid var(--line);
}
.included-icon{flex-shrink:0;width:24px;height:24px;color:var(--sage);margin-top:0.15rem}
.included-text strong{
  display:block;font-family:var(--serif);font-size:1.15rem;font-weight:600;
  color:var(--forest);margin-bottom:0.25rem;
}
.included-text p{font-size:0.88rem;color:var(--muted);line-height:1.7}

/* ─── À PROPOS : BIO + CREDO ─────────────────────────────────── */
#bio{padding:7rem 5rem;background:var(--bg2);border-bottom:1px solid var(--line)}
.bio-grid{display:grid;grid-template-columns:5fr 7fr;gap:6rem;align-items:start;max-width:1280px;margin:0 auto}
.bio-photo{
  width:100%;aspect-ratio:3/4;
  background:var(--forest);position:relative;overflow:hidden;max-width:480px;
}
.bio-photo img{width:100%;height:100%;object-fit:cover;display:block}
.bio-photo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(30,43,33,0.4) 0%,transparent 50%);
  pointer-events:none;
}
.bio-photo-placeholder{
  width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0.75rem;color:rgba(168,196,162,0.45);
  font-size:0.75rem;letter-spacing:0.12em;text-transform:uppercase;
}
.bio-content .section-marker{
  font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1.5rem;
  display:flex;align-items:center;gap:1rem;
}
.bio-content .section-marker::before{content:'';width:1.5rem;height:1px;background:var(--sage)}
.bio-content h2{
  font-family:var(--serif);
  font-size:clamp(2.1rem,3.4vw,3.2rem);
  font-weight:600;line-height:1.1;letter-spacing:-0.02em;
  color:var(--forest);margin-bottom:2rem;
}
.bio-content h2 em{font-style:italic;color:var(--sage)}
.bio-text p{color:var(--muted);font-size:1rem;line-height:1.95;margin-bottom:1.5rem}
.bio-text p strong{color:var(--text);font-weight:500}
.bio-text p:last-child{margin-bottom:0}
.bio-signature{
  display:flex;align-items:center;gap:1.5rem;
  margin-top:2.5rem;padding-top:2rem;
  border-top:1px solid var(--line);flex-wrap:wrap;
}
.bio-signature .name{font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--forest)}
.bio-signature .role{font-size:0.85rem;color:var(--muted)}
.bio-signature a{
  margin-left:auto;
  font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--forest);
  border-bottom:1px solid var(--forest);padding-bottom:2px;
  transition:opacity 0.3s;
}
.bio-signature a:hover{opacity:0.6}

#credo{
  padding:8rem 5rem;
  background:var(--forest);color:var(--bg);text-align:center;
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.credo-mark{
  font-family:var(--serif);font-size:5rem;
  color:var(--sage-lt);line-height:0.5;margin-bottom:2rem;display:block;
}
.credo-text{
  font-family:var(--serif);
  font-size:clamp(1.6rem,2.6vw,2.4rem);
  font-style:italic;font-weight:400;
  line-height:1.4;color:var(--bg);
  max-width:880px;margin:0 auto;
}
.credo-text strong{font-style:normal;font-weight:600;color:var(--sage-lt)}
.credo-author{
  margin-top:3rem;
  font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;
  color:rgba(249,248,245,0.55);
}

#approche{background:var(--bg);border-bottom:1px solid var(--line)}
.approche-header{margin-bottom:5rem;max-width:800px}
.approche-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.pilier-card{padding:2.5rem 2rem;border-top:2px solid var(--forest);background:transparent}
.pilier-num{
  font-family:var(--serif);font-size:0.9rem;font-weight:500;
  color:var(--sage);margin-bottom:1rem;display:block;
}
.pilier-title{
  font-family:var(--serif);font-size:1.6rem;font-weight:600;
  color:var(--forest);line-height:1.2;margin-bottom:1rem;
}
.pilier-desc{font-size:0.95rem;color:var(--muted);line-height:1.85}

#engagements{background:var(--bg2);border-bottom:1px solid var(--line)}
.engagements-header{margin-bottom:5rem;max-width:800px}
.engagements-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);
}
.engagement{background:var(--bg);padding:2.75rem 2.25rem}
.engagement-num{
  font-family:var(--serif);font-size:0.85rem;font-weight:500;
  color:var(--sage);margin-bottom:0.75rem;display:block;
}
.engagement-title{
  font-family:var(--serif);font-size:1.4rem;font-weight:600;
  color:var(--forest);line-height:1.25;margin-bottom:0.75rem;
}
.engagement-desc{font-size:0.92rem;color:var(--muted);line-height:1.8}

#stats{background:var(--bg);border-bottom:1px solid var(--line)}
.stats-header{margin-bottom:4rem;max-width:800px}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.stat-block{padding:3rem 2rem 0;border-right:1px solid var(--line)}
.stat-block:last-child{border-right:none}
.stat-num-big{
  font-family:var(--serif);font-size:clamp(3rem,5vw,4.5rem);
  font-weight:600;color:var(--forest);
  line-height:1;display:block;margin-bottom:1rem;letter-spacing:-0.02em;
}
.stat-num-big em{font-style:italic;color:var(--sage)}
.stat-label-big{font-size:0.92rem;color:var(--muted);line-height:1.6;max-width:280px}

#offre{background:var(--bg2);border-bottom:1px solid var(--line)}
.offre-header{margin-bottom:5rem;max-width:800px}
.offre-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.offre-card{
  background:var(--bg);
  padding:3.5rem 3rem;
  border:1px solid var(--line);
  display:flex;flex-direction:column;
  transition:border-color 0.4s,transform 0.4s var(--ease);
}
.offre-card:hover{border-color:var(--forest);transform:translateY(-4px)}
.offre-tag{
  font-size:0.7rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1.5rem;
  display:flex;align-items:center;gap:0.75rem;
}
.offre-tag::before{content:'';width:1rem;height:1px;background:var(--sage)}
.offre-title{
  font-family:var(--serif);font-size:1.8rem;font-weight:600;
  color:var(--forest);line-height:1.2;margin-bottom:1rem;
}
.offre-desc{font-size:0.95rem;color:var(--muted);line-height:1.85;margin-bottom:2rem}
.offre-bullets{list-style:none;margin-bottom:2.5rem}
.offre-bullets li{
  font-size:0.9rem;color:var(--text);line-height:1.6;
  padding:0.5rem 0 0.5rem 1.25rem;position:relative;
}
.offre-bullets li::before{
  content:'→';position:absolute;left:0;top:0.45rem;
  color:var(--sage);font-size:0.85rem;
}
.offre-cta{
  margin-top:auto;
  font-size:0.82rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--forest);font-weight:500;
  display:flex;align-items:center;gap:0.5rem;
  border-bottom:1px solid var(--forest);padding-bottom:2px;align-self:flex-start;
  transition:gap 0.3s var(--ease);
}
.offre-cta:hover{gap:0.9rem}

/* ─── CONTACT PAGE ───────────────────────────────────────────── */
#coordonnees{padding:7rem 5rem;background:var(--bg2);border-bottom:1px solid var(--line)}
.coord-grid{display:grid;grid-template-columns:5fr 7fr;gap:6rem;align-items:start;max-width:1280px;margin:0 auto}
.coord-left .section-marker{
  font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1.5rem;
  display:flex;align-items:center;gap:1rem;
}
.coord-left .section-marker::before{content:'';width:1.5rem;height:1px;background:var(--sage)}
.coord-left h2{
  font-family:var(--serif);font-size:clamp(2rem,3.4vw,3.2rem);
  font-weight:600;line-height:1.1;letter-spacing:-0.02em;color:var(--forest);margin-bottom:2rem;
}
.coord-left h2 em{font-style:italic;color:var(--sage)}
.coord-left p{color:var(--muted);font-size:1rem;line-height:1.85;margin-bottom:1.5rem}
.coord-promise{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--line)}
.coord-promise-item{
  display:flex;align-items:flex-start;gap:1rem;
  font-size:0.9rem;color:var(--text);line-height:1.6;margin-bottom:0.75rem;
}
.coord-promise-item::before{
  content:'';flex-shrink:0;width:6px;height:6px;
  background:var(--sage);margin-top:0.5rem;border-radius:50%;
}
.coord-channels{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--bg)}
.channel{
  display:grid;grid-template-columns:auto 1fr auto;
  gap:1.5rem;align-items:center;
  padding:2.25rem 2.5rem;
  border-bottom:1px solid var(--line);
  transition:background 0.3s;cursor:pointer;
}
.channel:last-child{border-bottom:none}
.channel:hover{background:var(--bg2)}
.channel-icon{
  width:42px;height:42px;
  border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  color:var(--sage);
  transition:border-color 0.3s,color 0.3s;
}
.channel:hover .channel-icon{border-color:var(--forest);color:var(--forest)}
.channel-label{
  font-size:0.7rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--muted);margin-bottom:0.25rem;
}
.channel-value{
  font-family:var(--serif);font-size:1.25rem;font-weight:600;
  color:var(--forest);line-height:1.2;
}
.channel-value-tel{font-size:1.5rem}
.channel-arrow{
  color:var(--sage);
  opacity:0;transform:translateX(-6px);
  transition:opacity 0.3s,transform 0.3s var(--ease);
}
.channel:hover .channel-arrow{opacity:1;transform:translateX(0)}
.channel-zone{
  padding:1.75rem 2.5rem;background:var(--bg2);
  font-size:0.85rem;color:var(--muted);
  display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap;
}
.channel-zone strong{color:var(--text);font-weight:500}

#pourquoi{padding:7rem 5rem;background:var(--bg);border-bottom:1px solid var(--line)}
.pourquoi-header{margin-bottom:5rem;max-width:800px}
.pourquoi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.purpose-card{
  background:var(--bg2);
  padding:2.75rem 2.25rem;
  border:1px solid var(--line);
  display:flex;flex-direction:column;
  transition:border-color 0.4s,transform 0.4s var(--ease);
}
.purpose-card:hover{border-color:var(--forest);transform:translateY(-4px)}
.purpose-tag{
  font-size:0.7rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1.25rem;
  display:flex;align-items:center;gap:0.75rem;
}
.purpose-tag::before{content:'';width:1rem;height:1px;background:var(--sage)}
.purpose-title{
  font-family:var(--serif);font-size:1.4rem;font-weight:600;
  color:var(--forest);line-height:1.2;margin-bottom:1rem;
}
.purpose-desc{font-size:0.92rem;color:var(--muted);line-height:1.8;margin-bottom:2rem}
.purpose-link{
  margin-top:auto;
  font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--forest);font-weight:500;
  display:flex;align-items:center;gap:0.5rem;
  border-bottom:1px solid var(--forest);padding-bottom:2px;align-self:flex-start;
  transition:gap 0.3s var(--ease);
}
.purpose-link:hover{gap:0.9rem}

/* ─── PAGES LÉGALES ──────────────────────────────────────────── */
.legal-hero{padding:11rem 5rem 5rem;background:var(--bg);border-bottom:1px solid var(--line)}
.legal-hero h1{
  font-family:var(--serif);font-size:clamp(2.4rem,4.4vw,4rem);
  font-weight:600;line-height:1.05;letter-spacing:-0.02em;
  color:var(--forest);margin-bottom:1rem;
}
.legal-hero h1 em{font-style:italic;color:var(--sage)}
.legal-meta{
  font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);
}
.legal-content{padding:5rem 5rem 7rem;background:var(--bg);max-width:920px;margin:0 auto}
.legal-content h2{
  font-family:var(--serif);font-size:1.75rem;font-weight:600;
  color:var(--forest);line-height:1.25;letter-spacing:-0.01em;
  margin-top:3.5rem;margin-bottom:1.25rem;
  padding-top:2rem;border-top:1px solid var(--line);
}
.legal-content h2:first-child{margin-top:0;padding-top:0;border-top:none}
.legal-content h3{
  font-family:var(--serif);font-size:1.2rem;font-weight:600;
  color:var(--text);margin-top:1.75rem;margin-bottom:0.75rem;
}
.legal-content p{color:var(--muted);font-size:0.98rem;line-height:1.85;margin-bottom:1.25rem}
.legal-content p strong{color:var(--text);font-weight:500}
.legal-content ul{list-style:none;padding:0;margin-bottom:1.25rem}
.legal-content ul li{
  color:var(--muted);font-size:0.95rem;line-height:1.85;
  padding:0.35rem 0 0.35rem 1.5rem;position:relative;
}
.legal-content ul li::before{
  content:'';position:absolute;left:0;top:1em;
  width:6px;height:1px;background:var(--sage);
}
.legal-content a{color:var(--forest);border-bottom:1px solid var(--sage);transition:color 0.3s}
.legal-content a:hover{color:var(--sage)}
.legal-info-block{
  background:var(--bg2);padding:2rem 2rem;
  border-left:2px solid var(--sage);margin:1.5rem 0;
}
.legal-info-block dt{
  font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--muted);font-weight:500;margin-top:1rem;
}
.legal-info-block dt:first-child{margin-top:0}
.legal-info-block dd{
  font-family:var(--serif);font-size:1.1rem;font-weight:500;
  color:var(--forest);margin-top:0.25rem;
}
.placeholder-flag{
  display:inline-block;
  background:rgba(74,122,85,0.12);color:var(--sage);
  padding:0.15rem 0.55rem;font-size:0.75rem;
  letter-spacing:0.04em;font-weight:500;font-family:var(--body);
  border-radius:2px;margin-left:0.4rem;
}
.review-notice{
  background:var(--forest);color:var(--bg);
  padding:1.5rem 2rem;margin-bottom:3rem;
  font-size:0.92rem;line-height:1.7;
  border-left:3px solid var(--sage-lt);
}
.review-notice strong{
  color:var(--sage-lt);font-weight:500;
  letter-spacing:0.08em;text-transform:uppercase;
  font-size:0.78rem;display:block;margin-bottom:0.5rem;
}

/* ─── 404 ────────────────────────────────────────────────────── */
#error-404{
  min-height:80vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:8rem 2rem;
}
#error-404 .err-num{
  font-family:var(--serif);font-size:clamp(6rem,12vw,12rem);
  font-weight:600;color:var(--forest);line-height:1;
  letter-spacing:-0.04em;margin-bottom:1.5rem;
}
#error-404 .err-num em{font-style:italic;color:var(--sage)}
#error-404 h1{
  font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.6rem);
  font-weight:600;color:var(--forest);margin-bottom:1.25rem;
}
#error-404 p{
  color:var(--muted);font-size:1rem;line-height:1.85;
  max-width:480px;margin-bottom:2.5rem;
}

/* ─── FOOTER ─────────────────────────────────────────────────── */
.site-footer{
  background:var(--forest);
  padding:3rem 5rem;
  display:grid;grid-template-columns:1fr 1fr 1fr;
  gap:3rem;align-items:start;
  border-top:1px solid rgba(255,255,255,0.08);
}
.footer-col h4{
  font-family:var(--body);font-size:0.72rem;letter-spacing:0.18em;
  text-transform:uppercase;font-weight:500;
  color:var(--sage-lt);margin-bottom:1rem;
}
.footer-col p,.footer-col a{
  font-size:0.85rem;color:rgba(249,248,245,0.55);line-height:1.7;display:block;
}
.footer-col a:hover{color:var(--bg)}
.footer-logo{font-family:var(--serif);font-weight:600;font-size:1.4rem;color:var(--bg);margin-bottom:0.5rem}
.footer-tag{font-size:0.78rem;color:rgba(249,248,245,0.45);margin-bottom:1.25rem}
.footer-bottom{
  grid-column:1/-1;
  border-top:1px solid rgba(255,255,255,0.08);
  margin-top:1.5rem;padding-top:1.5rem;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
}
.footer-copy{font-size:0.75rem;color:rgba(249,248,245,0.4);letter-spacing:0.05em}
.footer-legal{display:flex;gap:1.5rem}
.footer-legal a{font-size:0.75rem;color:rgba(249,248,245,0.4)}

/* ─── KEYFRAMES & REVEAL ─────────────────────────────────────── */
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{to{opacity:1}}
.reveal{
  opacity:0;transform:translateY(32px);
  transition:opacity 0.85s var(--ease),transform 0.85s var(--ease);
}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.1s}
.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}
.reveal-delay-4{transition-delay:0.4s}

/* ─── RESPONSIVE ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .site-nav{padding:1.25rem 2rem}
  .nav-links{gap:1.75rem}
  .site-section,.cta-final,#opco-banner,#bio,#credo,#coordonnees,#pourquoi,.legal-hero,.legal-content{padding-left:2rem;padding-right:2rem}
  #hero{padding:7rem 2rem 4rem;grid-template-columns:1fr;gap:3rem;min-height:auto}
  .hero-right{order:-1;max-width:340px;margin:0 auto}
  .hero-caption-tag{left:auto;right:-1rem;bottom:1.5rem}
  .page-hero{padding:8rem 2rem 4rem}
  .page-hero-grid{grid-template-columns:1fr;gap:2rem}
  #about{grid-template-columns:1fr;gap:3rem;padding:5rem 2rem}
  .about-photo{max-width:340px;margin:0 auto}
  .expertises-top,.formations-header,.testimonials-header{grid-template-columns:1fr;gap:2rem;align-items:start}
  .formations-grid,.testimonials-grid{grid-template-columns:1fr}
  .testi-card.featured{grid-template-columns:1fr;gap:1.5rem}
  .testi-card.featured .testi-author{align-items:flex-start;text-align:left}
  #contact{grid-template-columns:1fr;gap:3rem;padding:5rem 2rem}
  .persona-grid,.publics-grid,.pourquoi-grid{grid-template-columns:1fr;gap:1.5rem}
  .method-step,.process-step{grid-template-columns:3.5rem 1fr;gap:2rem}
  .method-step .method-content,.process-step .process-content{grid-column:2/3}
  .method-step > div:last-child,.process-step > div:last-child{grid-column:1/-1}
  .why-grid,.programmes-grid,.offre-grid,.engagements-grid{grid-template-columns:1fr;gap:1.5rem}
  .formats-grid,.opco-grid{grid-template-columns:repeat(2,1fr)}
  .bio-grid,.coord-grid,.opco-banner-grid{grid-template-columns:1fr;gap:3rem}
  .bio-photo{max-width:380px}
  .opco-steps{grid-template-columns:1fr;gap:1.5rem}
  .opco-step{padding:0 0 1.5rem 0!important;border-right:none;border-bottom:1px solid rgba(255,255,255,0.08)}
  .opco-step:last-child{border-bottom:none;padding-bottom:0}
  .approche-grid{grid-template-columns:1fr;gap:1rem}
  .stats-grid{grid-template-columns:1fr;border-top:none}
  .stat-block{border-right:none;border-top:1px solid var(--line);padding:2rem 0 0}
  .included-list{grid-template-columns:1fr;gap:0}
  .site-footer{padding:2.5rem 2rem;grid-template-columns:1fr 1fr}
}
@media (max-width: 640px) {
  .site-nav{padding:1rem 1.25rem}
  .nav-links{
    position:fixed;inset:64px 0 auto 0;
    background:var(--bg);
    flex-direction:column;gap:0;
    padding:1.5rem 1.25rem;
    box-shadow:0 4px 24px rgba(30,43,33,0.08);
    transform:translateY(-110%);transition:transform 0.4s var(--ease);
  }
  .nav-links.open{transform:translateY(0)}
  .nav-links li{border-bottom:1px solid var(--line)}
  .nav-links li:last-child{border-bottom:none}
  .nav-links a{display:block;padding:1rem 0;font-size:0.9rem}
  .nav-cta{display:none}
  .nav-burger{display:block}
  .site-section,.cta-final,#opco-banner,#bio,#credo,#coordonnees,#pourquoi,.legal-hero,.legal-content{padding-left:1.25rem;padding-right:1.25rem}
  .site-section{padding-top:4rem;padding-bottom:4rem}
  #hero{padding:6rem 1.25rem 3rem}
  .page-hero{padding:6rem 1.25rem 3rem}
  .hero-actions,.cta-final-actions,.contact-actions{gap:1.25rem}
  .hero-caption-tag{left:1rem;right:auto;bottom:1rem;padding:1rem 1.25rem}
  .about-stats{grid-template-columns:1fr;gap:1.25rem}
  .formation-card{padding:2.5rem 2rem}
  .testi-card{padding:2rem}
  .funding-banner{flex-direction:column;align-items:flex-start;gap:1rem;padding:1.5rem}
  .contact-item{padding:1.5rem 1.5rem}
  .programme-card{padding:2.25rem 1.5rem}
  .public-card{padding:2.25rem 1.5rem}
  .formats-grid,.opco-grid{grid-template-columns:1fr}
  .format-card{padding:2rem 1.5rem}
  .pilier-card{padding:2rem 1.25rem}
  .engagement{padding:2.25rem 1.5rem}
  .offre-card{padding:2.5rem 1.75rem}
  .channel{grid-template-columns:auto 1fr;gap:1rem;padding:1.75rem 1.5rem}
  .channel-arrow{display:none}
  .channel-zone{padding:1.5rem}
  .channel-value-tel{font-size:1.3rem}
  .purpose-card{padding:2.25rem 1.75rem}
  .bio-signature{flex-wrap:wrap;gap:1rem}
  .bio-signature a{margin-left:0;width:100%}
  .credo-text{font-size:1.4rem}
  .faq-item summary{font-size:1.1rem;padding:1.5rem 0}
  .cta-final-actions{flex-direction:column;gap:1.25rem}
  .legal-content h2{font-size:1.4rem}
  .site-footer{grid-template-columns:1fr;padding:2.5rem 1.25rem;gap:2rem}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:0.75rem}
}
