/* ===================== DESIGN TOKENS ===================== */
:root{
  --ink:#16283D;
  --ink-2:#22394F;
  --green:#2F7D5A;
  --green-dark:#215D42;
  --sienna:#B65C38;
  --gold:#E3A63E;
  --sand:#EFEAD9;
  --sand-2:#E5DFCB;
  --paper:#FBF9F3;
  --text:#3A3F3E;
  --text-soft:#6B7169;
  --white:#FFFFFF;
  --radius:14px;
  --serif:'Fraunces', Georgia, serif;
  --sans:'Public Sans', -apple-system, Segoe UI, sans-serif;
  --mono:'IBM Plex Mono', ui-monospace, monospace;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; overflow-x:hidden; }

body{
  font-family:var(--sans);
  color:var(--text);
  background:var(--sand);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul{ list-style:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }

:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }

.wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }

.eyebrow{
  font-family:var(--mono);
  font-size:12.5px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
}

/* ===================== HEADER ===================== */
header{
  position:sticky; top:0; z-index:100;
  background:rgba(251,249,243,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--sand-2);
}
.nav-row{ display:flex; align-items:center; justify-content:space-between; padding:18px 0; }
.logo{ display:flex; align-items:center; gap:10px; font-family:var(--serif); font-weight:600; font-size:22px; color:var(--ink); }
.logo-img{ height:40px; width:auto; display:block; }
.logo-mark{
  width:34px; height:34px; border-radius:50%; background:var(--green);
  display:flex; align-items:center; justify-content:center;
  color:var(--white); font-family:var(--mono); font-size:13px; font-weight:600;
}
nav ul{ display:flex; gap:34px; font-size:15px; font-weight:500; white-space:nowrap; }
nav a{ position:relative; padding:6px 0; color:var(--ink); }
nav a::after{ content:''; position:absolute; left:0; bottom:0; width:0%; height:2px; background:var(--sienna); transition:width .25s ease; }
nav a:hover::after, nav a.is-active::after{ width:100%; }
.nav-actions{ display:flex; align-items:center; gap:18px; flex-shrink:0; }
.nav-actions .btn{ white-space:nowrap; }

@media (min-width:901px) and (max-width:1180px){
  nav ul{ gap:18px; font-size:13.5px; }
  .nav-actions{ gap:10px; }
  .nav-actions .btn{ padding:10px 16px; font-size:13px; }
}

.btn{
  font-weight:600; font-size:14.5px; padding:12px 24px; border-radius:999px;
  display:inline-flex; align-items:center; gap:8px;
  transition:transform .2s ease, background .2s ease;
}
.btn-primary{ background:var(--green); color:var(--white); }
.btn-primary:hover{ background:var(--green-dark); transform:translateY(-1px); }
.btn-ghost{ border:1.5px solid var(--ink); color:var(--ink); background:transparent; }
.btn-ghost:hover{ background:var(--ink); color:var(--white); }
.btn-outline-light{ border:1.5px solid rgba(255,255,255,0.5); color:var(--white); background:transparent; }
.btn-outline-light:hover{ background:rgba(255,255,255,0.12); }
.btn-lg{ padding:15px 30px; font-size:15.5px; }
.btn-icon{ width:18px; height:18px; flex-shrink:0; display:inline-flex; }
.btn-icon svg{ width:100%; height:100%; }
.btn-sm{ padding:8px 16px; font-size:13px; }
.btn[disabled]{ opacity:.5; cursor:not-allowed; }

.menu-toggle{ display:none; width:40px; height:40px; }
.menu-toggle span{ display:block; width:22px; height:2px; background:var(--ink); margin:5px auto; transition:.25s; }
.mobile-nav{ display:none; }
.mobile-nav.is-open{
  display:block; position:fixed; inset:0; z-index:200; background:var(--paper);
  padding:24px 32px;
}
.mobile-nav .mnav-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:36px; }
.mobile-nav ul{ display:flex; flex-direction:column; gap:22px; font-size:20px; font-family:var(--serif); margin-bottom:32px; }
.mobile-nav .nav-actions{ flex-direction:column; align-items:stretch; }
.mobile-nav .btn{ justify-content:center; }

/* ===================== HERO ===================== */
.hero{ position:relative; }
.hero-slider-full{ position:relative; width:100vw; margin-left:calc(50% - 50vw); height:500px; overflow:hidden; background:var(--ink); }
.hero-slide{ position:absolute; inset:0; opacity:0; transition:opacity .9s ease; background:linear-gradient(120deg, #2F5B48, #16283D 65%); background-size:cover; background-position:center; }
.hero-slide.is-active{ opacity:1; }
.hero-slide:nth-child(2){ background:linear-gradient(120deg, #8A4A2F, #16283D 65%); }
.hero-slide:nth-child(3){ background:linear-gradient(120deg, #1E3A52, #2F7D5A 70%); }
.hero-overlay{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(15,26,39,0.88) 0%, rgba(15,26,39,0.62) 45%, rgba(15,26,39,0.18) 85%); z-index:1; pointer-events:none; }
.hero-slide-content{ position:relative; z-index:2; max-width:1180px; height:100%; margin:0 auto; padding:0 32px; display:flex; align-items:center; }
.hero-text{ max-width:560px; }
.hero-eyebrow{
  display:inline-flex; align-items:center; background:var(--sienna); color:var(--white);
  font-family:var(--mono); font-weight:700; font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  padding:7px 14px; border-radius:6px; margin-bottom:20px;
}
.hero-eyebrow:empty{ display:none; }

h1{ font-family:var(--serif); font-weight:600; font-size:clamp(34px, 4.4vw, 54px); line-height:1.1; color:var(--white); letter-spacing:-0.01em; }
h1 em{ font-style:normal; color:#8FD3AE; }
.hero-sub{ margin-top:20px; font-size:17px; color:rgba(255,255,255,0.72); max-width:460px; line-height:1.7; }
.hero-cta{ margin-top:32px; display:flex; gap:16px; flex-wrap:wrap; }
.hero-trust{ display:flex; gap:34px; flex-wrap:wrap; padding:36px 0 8px; }
.trust-item{ display:flex; align-items:baseline; gap:8px; }
.trust-num{ font-family:var(--mono); font-weight:600; font-size:22px; color:var(--ink); }
.trust-label{ font-size:13px; color:var(--text-soft); }

.slider-arrows{ position:absolute; inset:0; z-index:3; pointer-events:none; }
.slider-arrow{ position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.25); color:var(--white); display:flex; align-items:center; justify-content:center; font-size:17px; transition:background .2s ease; pointer-events:auto; }
.slider-arrow:hover{ background:rgba(255,255,255,0.28); }
#sliderPrev{ left:24px; }
#sliderNext{ right:24px; }
.hero-slider-full:has(.slider-thumbs) #sliderNext{ right:132px; }
.slider-dots{ position:absolute; bottom:22px; left:50%; transform:translateX(-50%); display:flex; gap:8px; z-index:3; }
.slider-dot{ width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,0.35); transition:background .2s ease, width .2s ease; padding:0; }

.slider-thumbs{
  position:absolute; top:50%; right:26px; transform:translateY(-50%); z-index:3;
  display:flex; flex-direction:column; gap:14px;
}
.slider-thumb{
  width:88px; height:64px; border-radius:10px; background-size:cover; background-position:center;
  background-color:rgba(255,255,255,0.15); border:3px solid rgba(255,255,255,0.85);
  box-shadow:0 4px 14px rgba(0,0,0,0.35); opacity:.75;
  transition:opacity .2s ease, border-color .2s ease, transform .2s ease; padding:0;
}
.slider-thumb:hover{ opacity:1; transform:scale(1.04); }
.slider-thumb.is-active{ opacity:1; border-color:var(--gold); box-shadow:0 4px 16px rgba(0,0,0,0.45), 0 0 0 2px rgba(227,166,62,0.35); }
.slider-dot.is-active{ background:var(--gold); width:22px; border-radius:4px; }

/* Simple page hero (pages internes) */
.page-hero{ background:var(--ink); color:var(--white); padding:96px 0 64px; }
.page-hero h1{ font-size:clamp(30px, 4vw, 46px); }
.page-hero p.lead{ margin-top:16px; color:rgba(255,255,255,0.72); max-width:600px; font-size:16.5px; }
.breadcrumb{ font-family:var(--mono); font-size:12px; color:rgba(255,255,255,0.5); margin-bottom:18px; text-transform:uppercase; letter-spacing:.06em; }
.breadcrumb a{ color:rgba(255,255,255,0.75); }

/* ===================== IMPACT BAND ===================== */
.impact{ background:var(--ink); color:var(--white); padding:64px 0; }
.impact-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:32px; }
.impact-item{ border-left:1px solid rgba(255,255,255,0.15); padding-left:24px; }
.impact-icon{ width:34px; height:34px; margin-bottom:16px; color:var(--gold); opacity:.9; }
.impact-icon svg{ width:100%; height:100%; }
.impact-num{ font-family:var(--mono); font-weight:600; font-size:clamp(30px,3.4vw,42px); color:var(--gold); }
.impact-label{ margin-top:8px; font-size:14.5px; color:rgba(255,255,255,0.7); max-width:180px; }
.impact-note{ margin-top:36px; font-size:12.5px; color:rgba(255,255,255,0.4); font-family:var(--mono); }

/* ===================== PILLARS ===================== */
.pillars{ padding:110px 0 90px; position:relative; }
.section-head{ max-width:640px; margin-bottom:56px; }
.section-head .eyebrow{ color:var(--green); margin-bottom:14px; }
h2{ font-family:var(--serif); font-weight:600; font-size:clamp(28px, 3.4vw, 40px); color:var(--ink); line-height:1.15; }
.section-head p{ margin-top:16px; color:var(--text-soft); font-size:16.5px; }

.thread-svg{ display:block; width:100%; height:auto; margin-bottom:-30px; }
.thread-path{ fill:none; stroke:var(--sienna); stroke-width:2; stroke-linecap:round; stroke-dasharray:1400; stroke-dashoffset:1400; animation:draw 2.4s ease forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }

.about-intro-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:60px; align-items:start; }
.about-photo{ border-radius:20px; overflow:hidden; aspect-ratio:4/3; background:var(--sand-2); position:sticky; top:100px; }
.about-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

.pillars-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; }
.pillar-card{ background:var(--paper); border:1px solid var(--sand-2); border-radius:20px; padding:36px 30px; transition:transform .25s ease, box-shadow .25s ease; }
.pillar-card:hover{ transform:translateY(-6px); box-shadow:0 24px 48px -20px rgba(22,40,61,0.22); }
.pillar-image{ width:100%; aspect-ratio:16/10; border-radius:14px; overflow:hidden; margin-bottom:22px; background:var(--sand-2); }
.pillar-image img{ width:100%; height:100%; object-fit:cover; display:block; }
.pillar-image.is-empty{ display:flex; align-items:center; justify-content:center; color:var(--text-soft); }
.pillar-image.is-empty svg{ width:34px; height:34px; opacity:.35; }
.pillar-icon{ width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-weight:600; font-size:13px; color:var(--white); margin-bottom:22px; }
.pillar-icon svg{ width:24px; height:24px; }
.p-sante .pillar-icon{ background:var(--sienna); }
.p-education .pillar-icon{ background:var(--green); }
.p-protection .pillar-icon{ background:var(--ink); }
.pillar-card h3{ font-family:var(--serif); font-size:22px; font-weight:600; color:var(--ink); margin-bottom:12px; }
.pillar-card p{ font-size:15px; color:var(--text-soft); margin-bottom:20px; }
.pillar-link{ font-size:14px; font-weight:600; color:var(--ink); display:inline-flex; align-items:center; gap:6px; }
.pillar-link .arrow{ transition:transform .2s ease; }
.pillar-link:hover .arrow{ transform:translateX(4px); }

/* ===================== TEAM ===================== */
.team-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; margin-top:20px; }
.team-card{ background:var(--paper); border:1px solid var(--sand-2); border-radius:18px; padding:26px 22px; text-align:center; }
.team-photo{ width:88px; height:88px; border-radius:50%; overflow:hidden; margin:0 auto 16px; background:var(--sand-2); }
.team-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.team-photo.is-empty{ display:flex; align-items:center; justify-content:center; color:var(--text-soft); }
.team-photo.is-empty svg{ width:38px; height:38px; opacity:.4; }
.team-card h3{ font-family:var(--serif); font-size:18px; font-weight:600; color:var(--ink); margin-bottom:4px; }
.team-role{ font-family:var(--mono); font-size:11.5px; letter-spacing:.04em; color:var(--sienna); margin-bottom:12px; }
.team-card p, .team-bio{ font-size:13.5px; color:var(--text-soft); line-height:1.6; }
.team-bio p{ margin:0 0 8px; }
.team-bio ul{ text-align:left; margin:0 0 8px 18px; }
.team-bio a{ color:var(--green); }
.team-link{ display:inline-block; margin-top:12px; font-size:13px; font-weight:600; color:var(--green); }

/* ===================== PROGRAMS ===================== */
.programs{ padding:90px 0; background:var(--sand-2); }
.programs.on-paper{ background:var(--paper); }
.program-filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px; }
.program-filters a{
  font-family:var(--mono); font-size:12.5px; font-weight:600; text-transform:uppercase; letter-spacing:.05em;
  padding:9px 18px; border-radius:999px; border:1.5px solid var(--sand-2); color:var(--ink); background:var(--paper);
}
.program-filters a.is-active, .program-filters a:hover{ background:var(--ink); color:var(--white); border-color:var(--ink); }

.program-list{ display:flex; flex-direction:column; gap:20px; }
.program-row{ display:grid; grid-template-columns:220px 1fr auto; gap:28px; align-items:center; background:var(--paper); border-radius:18px; padding:22px 26px; border:1px solid var(--sand-2); transition:border-color .2s ease; }
.program-row:hover{ border-color:var(--green); }
.program-thumb{ aspect-ratio:16/10; border-radius:12px; background:linear-gradient(135deg,#2F7D5A,#16283D); background-size:cover; background-position:center; }
.program-tag{ font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--sienna); }
.program-row h3{ font-family:var(--serif); font-size:20px; font-weight:600; color:var(--ink); margin:8px 0 6px; }
.program-row p{ font-size:14.5px; color:var(--text-soft); max-width:460px; }
.program-meta{ display:flex; gap:26px; text-align:right; }
.meta-block .big-num{ font-family:var(--mono); font-weight:600; font-size:22px; color:var(--green); }
.meta-block .meta-label{ font-size:11.5px; color:var(--text-soft); }
.program-row-link{ display:contents; }

/* Fiche programme */
.programme-detail{ padding:70px 0 100px; }
.programme-hero-img{ aspect-ratio:16/7; border-radius:20px; background:linear-gradient(135deg,#2F7D5A,#16283D); background-size:cover; background-position:center; margin-bottom:40px; }
.programme-grid{ display:grid; grid-template-columns:2fr 1fr; gap:56px; align-items:start; }
.programme-body h2{ font-size:24px; margin:36px 0 14px; }
.programme-body h2:first-child{ margin-top:0; }
.programme-body p{ color:var(--text-soft); font-size:15.5px; line-height:1.75; }
.programme-side{ background:var(--paper); border:1px solid var(--sand-2); border-radius:18px; padding:28px; position:sticky; top:100px; }
.programme-side .big-num{ font-family:var(--serif); font-size:38px; font-weight:600; color:var(--green); }
.programme-side .meta-label{ font-size:13px; color:var(--text-soft); margin-top:4px; }
.programme-side .side-row{ padding:16px 0; border-top:1px solid var(--sand-2); }
.programme-side .side-row:first-child{ border-top:none; padding-top:0; }
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:20px; }
.gallery-grid .g-item{ aspect-ratio:1; border-radius:10px; background:var(--sand-2); background-size:cover; background-position:center; }

/* ===================== NEWS ===================== */
.news{ padding:100px 0; }
.news-layout{ display:grid; grid-template-columns:280px 1fr; gap:28px; align-items:stretch; }
.news-block{ background:var(--ink); border-radius:20px; padding:36px 30px; display:flex; flex-direction:column; }
.news-block-title{
  font-family:var(--serif); font-weight:700; font-size:30px; line-height:1.1; text-transform:uppercase;
  background:var(--gold); color:var(--ink); display:inline-block; padding:6px 12px; margin-bottom:20px; align-self:flex-start;
}
.news-block p{ color:rgba(255,255,255,0.65); font-size:14px; line-height:1.6; margin-bottom:24px; }
.news-block .btn{ margin-top:auto; align-self:flex-start; }
.news-cards-wrap{ position:relative; min-width:0; }
.news-cards-row{
  display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  padding-bottom:14px; scrollbar-width:auto; scrollbar-color:#FF7A1A var(--sand-2);
}
.news-cards-row::-webkit-scrollbar{ height:9px; }
.news-cards-row::-webkit-scrollbar-track{ background:var(--sand-2); border-radius:999px; }
.news-cards-row::-webkit-scrollbar-thumb{ background:#FF7A1A; border-radius:999px; }
.news-cards-row::-webkit-scrollbar-thumb:hover{ background:#E85F00; }
.news-scroll-btn{
  position:absolute; top:calc(50% - 10px); transform:translateY(-50%); z-index:2;
  width:44px; height:44px; border-radius:50%; background:var(--paper); border:1px solid var(--sand-2);
  color:var(--ink); font-size:19px; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 20px -6px rgba(22,40,61,0.28); transition:background .2s ease;
}
.news-scroll-btn:hover{ background:var(--ink); color:var(--white); }
.news-scroll-prev{ left:-22px; }
.news-scroll-next{ right:-22px; }
@media (max-width:1240px){
  .news-scroll-prev{ left:-8px; }
  .news-scroll-next{ right:-8px; }
}
.news-card-alt{ flex:0 0 280px; background:var(--paper); border:1px solid var(--sand-2); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; scroll-snap-align:start; transition:border-color .2s ease, transform .2s ease; }
.news-card-alt:hover{ border-color:var(--green); transform:translateY(-3px); }
.news-card-alt-top{ padding:22px 22px 18px; }
.news-card-alt-zone{ font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--sienna); }
.news-card-alt h3{ font-family:var(--serif); font-size:18px; font-weight:600; color:var(--ink); margin:10px 0 14px; line-height:1.32; }
.news-card-alt-date{ display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--text-soft); font-family:var(--mono); }
.news-card-alt-date svg{ width:15px; height:15px; flex-shrink:0; }
.news-card-alt-img{ position:relative; aspect-ratio:4/3; margin-top:auto; background:var(--sand-2); background-size:cover; background-position:center; }
.news-card-alt-badge{
  position:absolute; bottom:14px; left:14px; background:var(--green); color:var(--white);
  font-family:var(--mono); font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  padding:6px 12px; border-radius:6px;
}
.news-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; }
.news-card{ display:flex; flex-direction:column; }
.news-thumb{ aspect-ratio:4/3; border-radius:16px; background:var(--sand-2); background-size:cover; background-position:center; margin-bottom:18px; position:relative; overflow:hidden; }
.news-cat{ position:absolute; top:14px; left:14px; background:var(--white); padding:6px 12px; border-radius:999px; font-family:var(--mono); font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); }
.news-date{ font-size:12.5px; color:var(--text-soft); font-family:var(--mono); }
.news-card h3{ font-family:var(--serif); font-size:19px; font-weight:600; color:var(--ink); margin:10px 0 8px; line-height:1.3; }
.news-card p{ font-size:14.5px; color:var(--text-soft); }
.news-filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px; }
.news-filters a{ font-family:var(--mono); font-size:12.5px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; padding:9px 18px; border-radius:999px; border:1.5px solid var(--sand-2); color:var(--ink); }
.news-filters a.is-active, .news-filters a:hover{ background:var(--ink); color:var(--white); border-color:var(--ink); }
.pagination{ display:flex; gap:8px; justify-content:center; margin-top:50px; }
.pagination a, .pagination span{ width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:50%; font-family:var(--mono); font-size:13px; border:1px solid var(--sand-2); }
.pagination a.is-active{ background:var(--ink); color:var(--white); border-color:var(--ink); }

/* Article détail */
.article-detail{ padding:70px 0 100px; }
.article-detail .wrap{ max-width:760px; }
.article-detail .breadcrumb{ color:var(--text-soft); }
.article-detail .breadcrumb a{ color:var(--text-soft); }
.article-detail .breadcrumb a:hover{ color:var(--ink); }
.article-hero-img{ aspect-ratio:16/9; border-radius:20px; background:linear-gradient(135deg,#2F7D5A,#16283D); background-size:cover; background-position:center; margin:30px 0 40px; }
.article-body{ font-size:16.5px; color:var(--text); line-height:1.85; }
.article-body p{ margin-bottom:20px; }
.article-meta-row{ display:flex; align-items:center; gap:18px; margin-top:16px; }
.share-row{ display:flex; gap:10px; margin-top:50px; padding-top:30px; border-top:1px solid var(--sand-2); }
.share-btn{ width:40px; height:40px; border-radius:50%; background:var(--sand-2); display:flex; align-items:center; justify-content:center; color:var(--ink); transition:background .2s ease; }
.share-btn:hover{ background:var(--ink); color:var(--white); }
.share-btn svg{ width:18px; height:18px; }

/* ===================== TRUST / TRANSPARENCY ===================== */
.trust{ background:var(--ink); color:var(--white); padding:90px 0; }
.trust-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.trust h2{ color:var(--white); }
.trust p.lead{ margin-top:18px; color:rgba(255,255,255,0.7); font-size:16px; max-width:440px; }
.doc-list{ display:flex; flex-direction:column; gap:12px; }
.doc-row{ display:flex; align-items:center; gap:16px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:12px; padding:16px 18px; transition:background .2s ease; }
.doc-row:hover{ background:rgba(255,255,255,0.09); }
.doc-icon{ width:38px; height:38px; border-radius:8px; background:var(--gold); color:var(--ink); font-family:var(--mono); font-weight:600; font-size:11px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.doc-row .doc-title{ font-weight:600; font-size:14.5px; }
.doc-row .doc-meta{ font-size:12.5px; color:rgba(255,255,255,0.5); }
.doc-download{ margin-left:auto; font-family:var(--mono); font-size:12px; color:rgba(255,255,255,0.6); }

.gouvernance-media{ position:relative; border-radius:18px; overflow:hidden; aspect-ratio:4/3; background:rgba(255,255,255,0.06); }
.gouvernance-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.gouvernance-media-empty{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.3); }
.gouvernance-media-empty svg{ width:64px; height:64px; }
.gouvernance-cta{ position:absolute; left:18px; bottom:18px; right:18px; justify-content:center; }
.trust-label-badge{ display:inline-flex; align-items:center; gap:10px; background:rgba(227,166,62,0.12); border:1px solid rgba(227,166,62,0.35); color:var(--gold); padding:10px 18px; border-radius:999px; font-family:var(--mono); font-size:12.5px; margin-top:28px; }

/* Page Transparence complète */
.transparence-page{ padding:70px 0 100px; }
.transparence-page .doc-list{ margin-top:40px; }
.transparence-page .doc-row{ background:var(--paper); border:1px solid var(--sand-2); color:var(--text); }
.transparence-page .doc-row .doc-title{ color:var(--ink); }
.transparence-page .doc-row .doc-meta{ color:var(--text-soft); }
.transparence-page .doc-download{ color:var(--green); font-weight:600; }
.transparence-section-title{ font-family:var(--mono); font-size:12.5px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--text-soft); margin:44px 0 16px; }

/* ===================== CTA BAND ===================== */
.cta-band{ padding:100px 0; text-align:center; }
.cta-band h2{ max-width:640px; margin:0 auto; }
.cta-band p{ margin:18px auto 34px; max-width:460px; color:var(--text-soft); font-size:16.5px; }
.cta-band .hero-cta{ justify-content:center; }

/* ===================== ZONES ===================== */
.zones{ padding:90px 0; background:var(--sand-2); }
.zones-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:20px; }
.zone-card{ background:var(--paper); border:1px solid var(--sand-2); border-radius:16px; padding:26px; }
.zone-icon{ width:30px; height:30px; color:var(--sienna); margin-bottom:12px; }
.zone-icon svg{ width:100%; height:100%; }
.zone-card .eyebrow{ color:var(--sienna); margin-bottom:8px; }
.zone-card h3{ font-family:var(--serif); font-size:19px; color:var(--ink); margin-bottom:6px; }
.zone-card p{ font-size:14px; color:var(--text-soft); }

/* ===================== DON / SIMULATEUR ===================== */
.don-page{ padding:70px 0 110px; }
.don-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:start; }
.amount-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:28px 0; }
.amount-card{ background:var(--paper); border:1.5px solid var(--sand-2); border-radius:16px; padding:22px 16px; text-align:center; transition:border-color .2s ease, transform .2s ease; }
.amount-card:hover{ transform:translateY(-3px); }
.amount-card.is-selected{ border-color:var(--green); background:#F1F7F3; }
.amount-card .amount{ font-family:var(--mono); font-weight:600; font-size:24px; color:var(--ink); }
.amount-card .impact-text{ font-size:12.5px; color:var(--text-soft); margin-top:8px; line-height:1.5; }
.amount-free{ display:flex; align-items:center; gap:10px; background:var(--paper); border:1.5px solid var(--sand-2); border-radius:16px; padding:16px 20px; }
.amount-free input{ border:none; background:transparent; font-family:var(--mono); font-size:18px; width:100%; color:var(--ink); }
.amount-free input:focus{ outline:none; }
.don-summary{ background:var(--ink); color:var(--white); border-radius:20px; padding:34px; }
.don-summary .amount-display{ font-family:var(--serif); font-size:42px; font-weight:600; color:var(--gold); margin:14px 0 22px; }
.don-note{ margin-top:26px; font-size:12.5px; color:rgba(255,255,255,0.55); line-height:1.6; }
.frequency-toggle{ display:flex; background:var(--sand-2); border-radius:999px; padding:4px; margin-bottom:24px; }
.frequency-toggle button{ flex:1; padding:10px; border-radius:999px; font-size:13.5px; font-weight:600; color:var(--text-soft); }
.frequency-toggle button.is-active{ background:var(--white); color:var(--ink); }

/* ===================== FORMS ===================== */
.form-card{ background:var(--paper); border:1px solid var(--sand-2); border-radius:20px; padding:40px; }
.form-group{ margin-bottom:22px; }
.form-group label{ display:block; font-size:13.5px; font-weight:600; color:var(--ink); margin-bottom:8px; }
.form-group input, .form-group textarea, .form-group select{
  width:100%; padding:13px 16px; border:1.5px solid var(--sand-2); border-radius:10px;
  font-family:var(--sans); font-size:15px; background:var(--white); color:var(--text);
}
.form-group input:focus, .form-group textarea:focus, .form-group select:focus{ outline:none; border-color:var(--green); }
.form-group textarea{ min-height:140px; resize:vertical; }
.form-checkbox{ display:flex; align-items:flex-start; gap:10px; font-size:13.5px; color:var(--text-soft); }
.form-checkbox input{ width:auto; margin-top:3px; }
.hp-field{ position:absolute; left:-9999px; top:-9999px; }
.form-alert{ padding:14px 18px; border-radius:10px; font-size:14px; margin-bottom:24px; }
.form-alert.success{ background:#E4F3EA; color:var(--green-dark); border:1px solid #C4E4D0; }
.form-alert.error{ background:#FBE7E0; color:#93331B; border:1px solid #F0C6B4; }

/* Newsletter */
.newsletter-block{ background:var(--green); color:var(--white); padding:56px 0; }
.newsletter-inner{ display:flex; justify-content:space-between; align-items:center; gap:40px; flex-wrap:wrap; }
.newsletter-inner h3{ font-family:var(--serif); font-size:24px; font-weight:600; }
.newsletter-inner p{ font-size:14.5px; color:rgba(255,255,255,0.85); margin-top:6px; }
.newsletter-form{ display:flex; gap:10px; min-width:340px; }
.newsletter-form input{ flex:1; padding:13px 18px; border-radius:999px; border:none; font-size:14.5px; }
.newsletter-form input:focus{ outline:2px solid var(--gold); }
.newsletter-form button{ white-space:nowrap; }

/* Cookie banner */
.cookie-banner{
  position:fixed; bottom:20px; left:20px; right:20px; max-width:560px; z-index:300;
  background:var(--ink); color:var(--white); border-radius:16px; padding:22px 26px;
  box-shadow:0 20px 50px -16px rgba(0,0,0,.5); display:none;
}
.cookie-banner.is-visible{ display:block; }
.cookie-banner p{ font-size:13.5px; color:rgba(255,255,255,0.8); margin-bottom:16px; line-height:1.6; }
.cookie-actions{ display:flex; gap:10px; }

/* ===================== FOOTER ===================== */
footer{ background:#0F1F2E; color:rgba(255,255,255,0.65); padding:70px 0 30px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,0.1); }
.footer-logo{ display:inline-block; margin-bottom:14px; }
.footer-logo .logo-img{ height:38px; }
.footer-grid p{ font-size:14px; max-width:260px; }
.footer-col h4{ font-family:var(--mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,0.4); margin-bottom:16px; }
.footer-col ul{ display:flex; flex-direction:column; gap:10px; }
.footer-col a{ font-size:14.5px; }
.footer-col a:hover{ color:var(--white); }
.footer-social{ display:flex; gap:12px; margin-top:16px; }
.footer-social a{ width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,0.08); display:flex; align-items:center; justify-content:center; color:var(--white); }
.footer-social a:hover{ background:rgba(255,255,255,0.16); }
.footer-social a svg{ width:16px; height:16px; }
.footer-bottom{ display:flex; justify-content:space-between; padding-top:26px; font-size:13px; flex-wrap:wrap; gap:12px; }
.footer-bottom a:hover{ color:var(--white); }

/* ===================== RESPONSIVE ===================== */
@media (max-width: 900px){
  nav, .nav-row .nav-actions .btn-ghost{ display:none; }
  .menu-toggle{ display:block; }
  .hero-slider-full{ height:560px; }
  .hero-slide-content{ align-items:flex-start; padding-top:56px; }
  .hero-text{ max-width:100%; }
  .slider-arrows{ display:none; }
  .slider-thumbs{ display:none; }
  .pillars{ padding:56px 0 48px; }
  .programs{ padding:56px 0; }
  .news{ padding:56px 0; }
  .trust{ padding:56px 0; }
  .zones{ padding:56px 0; }
  .cta-band{ padding:56px 0; }
  .impact-grid{ grid-template-columns:repeat(2, 1fr); row-gap:36px; }
  .about-intro-grid{ grid-template-columns:1fr; gap:32px; }
  .about-photo{ position:static; aspect-ratio:16/10; order:-1; }
  .pillars-grid{
    display:flex; grid-template-columns:none; overflow-x:auto; gap:18px;
    padding-bottom:8px; margin:0 -32px; padding-left:32px; padding-right:32px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  }
  .pillars-grid::-webkit-scrollbar{ display:none; }
  .pillar-card{ flex:0 0 82%; scroll-snap-align:start; }
  .program-row{ grid-template-columns:1fr; text-align:left; }
  .program-meta{ justify-content:flex-start; }
  .news-grid{ grid-template-columns:1fr; }
  .program-list.is-carousel{
    flex-direction:row; overflow-x:auto; gap:18px;
    margin:0 -32px; padding:0 32px 8px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  }
  .program-list.is-carousel::-webkit-scrollbar{ display:none; }
  .program-list.is-carousel .program-row{ flex:0 0 85%; scroll-snap-align:start; }
  .news-grid.is-carousel{
    display:flex; overflow-x:auto; gap:18px;
    margin:0 -32px; padding:0 32px 8px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  }
  .news-grid.is-carousel::-webkit-scrollbar{ display:none; }
  .news-grid.is-carousel .news-card{ flex:0 0 78%; scroll-snap-align:start; }
  .news-layout{ grid-template-columns:1fr; }
  .news-block{ padding:28px 24px; }
  .news-cards-row.is-carousel{
    overflow-x:auto; gap:18px; margin:0 -32px; padding:0 32px 8px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  }
  .news-cards-row.is-carousel::-webkit-scrollbar{ display:none; }
  .news-cards-row.is-carousel .news-card-alt{ flex:0 0 78%; scroll-snap-align:start; }
  .news-scroll-btn{ display:none; }
  .trust-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:32px 20px; }
  .footer-col ul{ overflow-wrap:anywhere; word-break:break-word; }
  .programme-grid, .don-grid{ grid-template-columns:1fr; }
  .zones-grid{
    grid-template-columns:none; display:flex; overflow-x:auto; gap:18px;
    margin:0 -32px; padding:0 32px 8px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  }
  .zones-grid::-webkit-scrollbar{ display:none; }
  .zone-card{ flex:0 0 82%; scroll-snap-align:start; }
  .amount-grid{ grid-template-columns:1fr 1fr; }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .team-grid{
    grid-template-columns:none; display:flex; overflow-x:auto; gap:18px;
    margin:0 -32px; padding:0 32px 8px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  }
  .team-grid::-webkit-scrollbar{ display:none; }
  .team-card{ flex:0 0 68%; scroll-snap-align:start; }
  .newsletter-inner{ flex-direction:column; align-items:flex-start; }
  .newsletter-form{ width:100%; min-width:0; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .thread-path{ animation:none; stroke-dashoffset:0; }
  *{ transition:none !important; }
}
