/* ============================================================
   ANAREKA-CI — Design Premium v3
   Thème : Luxe Africain / Éditorial raffiné
   Palette : Ivoire profond + Or chaud + Vert forêt + Terre
   ============================================================ */

/* Police chargée via <link> dans le HTML (évite le double chargement). */

:root {
  --noir:       #0e1a12;
  --vert:       #1a3d2b;
  --vert-med:   #1f4e3a;
  --vert-clair: #2d6b4f;
  --vert-pale:  #edf4ef;
  --or:         #c9a84c;
  --or-clair:   #e8c97a;
  --or-pale:    #fdf8ec;
  --terre:      #6b3a1f;
  --ivoire:     #f8f4ec;
  --blanc:      #ffffff;
  --gris:       #7a7a7a;
  --gris-clair: #f0f2ee;
  --bordure:    #e0e8e0;
  --max:        900px;
  --r:          6px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family: 'Outfit', sans-serif;
  color: var(--noir);
  background: var(--ivoire);
  overflow-x: hidden;
}

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--ivoire); }
::-webkit-scrollbar-thumb { background: var(--or); border-radius: 10px; }

/* ===== ANIMATIONS ===== */
@keyframes fadeUp    { from { opacity:0; transform:translateY(40px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn    { from { opacity:0; } to { opacity:1; } }
@keyframes float     { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }
@keyframes spin      { from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }
@keyframes grain     { 0%,100%{ transform:translate(0,0); } 25%{ transform:translate(-2%,-3%); } 50%{ transform:translate(3%,2%); } 75%{ transform:translate(-1%,3%); } }
@keyframes shimmer   { 0%{ background-position:-600px 0; } 100%{ background-position:600px 0; } }
@keyframes underlineIn { from{ transform:scaleX(0); } to{ transform:scaleX(1); } }

.reveal      { opacity:0; transform:translateY(36px); transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
.reveal-l    { opacity:0; transform:translateX(-36px); transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
.reveal.on, .reveal-l.on { opacity:1; transform:none; }
.delay-1 { transition-delay:.1s; }
.delay-2 { transition-delay:.2s; }
.delay-3 { transition-delay:.3s; }

/* ===== TOPBAR ===== */
.topbar {
  background: var(--noir);
  color: rgba(255,255,255,.6);
  font-size: 11.5px; font-family:'Outfit',sans-serif; font-weight:400;
  text-align:center; padding:9px 20px;
  letter-spacing:.6px;
  border-bottom: 1px solid rgba(201,168,76,.2);
}
.topbar span { margin:0 16px; }
.topbar strong { color: var(--or-clair); font-weight:500; }

/* ===== NAV ===== */
nav {
  background: rgba(248,244,236,.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(201,168,76,.25);
  position: sticky; top:0; z-index:200;
  transition: box-shadow .3s, background .3s;
}
nav.scrolled {
  background: rgba(248,244,236,.99);
  box-shadow: 0 2px 32px rgba(26,61,43,.10);
}
.nav-inner {
  max-width: 1280px; margin:0 auto;
  display:flex; align-items:center;
  justify-content:space-between; padding:0 28px;
}
.nav-logo { display:flex; align-items:center; gap:12px; text-decoration:none; padding:10px 0; }
.nav-logo img { width:44px; height:44px; border-radius:50%; object-fit:cover; border:2px solid var(--or); transition:transform .4s cubic-bezier(.34,1.56,.64,1); }
.nav-logo:hover img { transform:scale(1.1) rotate(6deg); }
.nav-logo-text { font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:600; color:var(--vert); line-height:1.2; }
.nav-logo-text small { font-size:10px; color:var(--gris); font-family:'Outfit',sans-serif; font-weight:400; display:block; letter-spacing:.3px; }
.nav-links { display:flex; align-items:center; gap:2px; }
.nav-links a {
  color: var(--noir); text-decoration:none;
  font-size:11px; font-weight:500;
  padding:20px 10px;
  position:relative; white-space:nowrap;
  text-transform:uppercase; letter-spacing:.5px;
  transition:color .2s;
}
.nav-links a::after {
  content:''; position:absolute; bottom:14px; left:10px; right:10px;
  height:1.5px; background:var(--or);
  transform:scaleX(0); transform-origin:left;
  transition:transform .3s cubic-bezier(.22,1,.36,1);
}
.nav-links a:hover { color:var(--vert); }
.nav-links a:hover::after { transform:scaleX(1); }

/* Bouton hamburger (caché sur grand écran) */
.nav-toggle {
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:42px; height:42px; padding:9px;
  background:transparent; border:none; cursor:pointer;
}
.nav-toggle span {
  display:block; width:100%; height:2px; border-radius:2px;
  background:var(--vert); transition:transform .3s, opacity .3s;
}
.nav-toggle.active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.active span:nth-child(2){ opacity:0; }
.nav-toggle.active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* Menu déroulant sous 1080px : remplace la barre par un menu hamburger */
@media(max-width:1080px){
  .nav-toggle { display:flex; }
  .nav-links {
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:rgba(248,244,236,.99);
    backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(201,168,76,.25);
    box-shadow:0 16px 32px rgba(26,61,43,.12);
    max-height:0; overflow:hidden;
    transition:max-height .4s cubic-bezier(.22,1,.36,1);
  }
  .nav-links.open { max-height:640px; }
  .nav-links a { padding:15px 28px; border-top:1px solid rgba(201,168,76,.12); }
  .nav-links a::after { display:none; }
}

/* ===== HERO ===== */
.hero {
  background: var(--noir);
  min-height: 100svh;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  text-align:center; position:relative; overflow:hidden;
}
/* Texture grain */
.hero::before {
  content:''; position:absolute; inset:-50%;
  width:200%; height:200%;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
  animation: grain 8s steps(2) infinite;
  opacity:.4; pointer-events:none; z-index:0;
}
/* Gradient orbes */
.hero-orb1 {
  position:absolute; width:500px; height:500px; border-radius:50%;
  background: radial-gradient(circle, rgba(201,168,76,.18) 0%, transparent 65%);
  top:-100px; right:-100px; pointer-events:none;
  animation: float 8s ease-in-out infinite;
}
.hero-orb2 {
  position:absolute; width:400px; height:400px; border-radius:50%;
  background: radial-gradient(circle, rgba(26,61,43,.4) 0%, transparent 65%);
  bottom:-80px; left:-80px; pointer-events:none;
  animation: float 6s ease-in-out infinite reverse;
}
.hero-line-top {
  position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, transparent, var(--or), var(--or-clair), var(--or), transparent);
  animation: shimmer 3s linear infinite; background-size:600px 3px;
}
.hero-inner { position:relative; z-index:1; padding:80px 40px 180px; max-width:720px; }
.hero-logo-wrap { position:relative; display:inline-block; margin-bottom:32px; }
.hero-logo {
  width:130px; height:130px; border-radius:50%; object-fit:cover;
  border:3px solid var(--or);
  box-shadow: 0 0 0 12px rgba(201,168,76,.08), 0 20px 60px rgba(0,0,0,.5);
  animation: float 6s ease-in-out infinite;
}
.hero-ring {
  position:absolute; inset:-16px; border-radius:50%;
  border:1px dashed rgba(201,168,76,.4);
  animation: spin 25s linear infinite;
}
.hero-ring2 {
  position:absolute; inset:-30px; border-radius:50%;
  border:1px dashed rgba(201,168,76,.15);
  animation: spin 40s linear infinite reverse;
}
.hero-eyebrow {
  font-size:10.5px; font-weight:600; color:var(--or);
  letter-spacing:4px; text-transform:uppercase; margin-bottom:18px;
  animation: fadeIn 1s .3s both;
  display:flex; align-items:center; justify-content:center; gap:12px;
}
.hero-eyebrow::before, .hero-eyebrow::after {
  content:''; display:block; width:30px; height:1px; background:var(--or); opacity:.5;
}
.hero h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 72px; font-weight:700;
  color: var(--blanc); line-height:.95; margin-bottom:6px;
  animation: fadeUp .9s .4s both;
  letter-spacing:-1px;
}
.hero h1 em { color:var(--or); font-style:normal; }
.hero-sous {
  font-size:13px; color:rgba(255,255,255,.45); letter-spacing:.5px;
  margin-bottom:20px; font-weight:300; animation:fadeIn 1s .55s both;
}
.hero-rule {
  width:50px; height:2px; background:var(--or);
  margin:0 auto 24px; animation:fadeIn 1s .6s both;
}
.hero-desc {
  font-size:17px; color:rgba(255,255,255,.75);
  line-height:1.8; max-width:560px; margin:0 auto 36px;
  animation:fadeUp .9s .65s both; font-weight:300;
}
.hero-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; animation:fadeUp .9s .8s both; }

.btn-or {
  background: var(--or); color:var(--noir);
  padding:14px 34px; border-radius:var(--r);
  text-decoration:none; font-weight:700; font-size:12px;
  letter-spacing:1.5px; text-transform:uppercase;
  transition:all .3s; border:2px solid var(--or);
  box-shadow:0 4px 20px rgba(201,168,76,.35);
  white-space:nowrap;
}
.btn-or:hover { background:var(--or-clair); border-color:var(--or-clair); transform:translateY(-3px); box-shadow:0 10px 30px rgba(201,168,76,.4); }

.btn-ghost {
  background:transparent; color:rgba(255,255,255,.85);
  padding:14px 34px; border-radius:var(--r);
  text-decoration:none; font-weight:500; font-size:12px;
  letter-spacing:1.5px; text-transform:uppercase;
  border:1.5px solid rgba(255,255,255,.25); transition:all .3s;
  white-space:nowrap;
}
.btn-ghost:hover { border-color:var(--or); color:var(--or); transform:translateY(-3px); }

/* Stats hero */
.hero-stats {
  position:absolute; bottom:0; left:0; right:0;
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(201,168,76,.2);
  animation:fadeIn 1s 1.1s both;
}
.hero-stat {
  padding:20px 16px; text-align:center;
  border-right:1px solid rgba(201,168,76,.1);
  transition:background .3s;
}
.hero-stat:last-child { border-right:none; }
.hero-stat:hover { background:rgba(201,168,76,.07); }
.hero-stat strong {
  display:block;
  font-family:'Outfit', sans-serif;
  font-size:22px; font-weight:700; color:var(--or); line-height:1; margin-bottom:5px;
  letter-spacing:.5px;
}
.hero-stat span { font-size:9.5px; color:rgba(255,255,255,.45); text-transform:uppercase; letter-spacing:2px; font-weight:500; }

/* ===== GALERIE ===== */
.galerie { background:var(--vert); }
.galerie-header {
  text-align:center; padding:28px 20px 0;
  font-size:10px; font-weight:600; letter-spacing:3px;
  text-transform:uppercase; color:rgba(255,255,255,.45);
}
.galerie-inner {
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  height:300px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
}
.galerie-item {
  position:relative; overflow:hidden; cursor:pointer;
  scroll-snap-align:start; min-width:180px;
}
.galerie-item img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .6s cubic-bezier(.22,1,.36,1), filter .4s;
  filter:brightness(.6) saturate(.85);
}
.galerie-item:hover img { transform:scale(1.1); filter:brightness(.75) saturate(1.1); }
.galerie-item::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(10,20,14,.7) 0%, transparent 50%);
}
.galerie-label {
  position:absolute; bottom:0; left:0; right:0; z-index:1;
  padding:24px 16px 14px;
  color:white; font-size:12px; font-weight:500;
  transform:translateY(100%); transition:transform .35s cubic-bezier(.22,1,.36,1);
  letter-spacing:.3px;
}
.galerie-item:hover .galerie-label { transform:translateY(0); }

/* ===== CHIFFRES ===== */
.chiffres {
  background: var(--vert-med);
  position:relative; overflow:hidden;
}
.chiffres::before {
  content:''; position:absolute; inset:0;
  background: repeating-linear-gradient(45deg, transparent, transparent 40px, rgba(255,255,255,.015) 40px, rgba(255,255,255,.015) 41px);
}
.chiffres-inner {
  max-width:var(--max); margin:0 auto; position:relative;
  display:grid; grid-template-columns:repeat(4,1fr);
}
.chiffre-item {
  padding:36px 24px; text-align:center;
  border-right:1px solid rgba(255,255,255,.08);
  transition:background .3s; cursor:default;
}
.chiffre-item:last-child { border-right:none; }
.chiffre-item:hover { background:rgba(255,255,255,.04); }
.chiffre-val {
  font-family:'Cormorant Garamond',serif;
  font-size:44px; font-weight:700; color:var(--or-clair);
  display:block; line-height:1; margin-bottom:10px;
  transition:transform .3s;
}
.chiffre-item:hover .chiffre-val { transform:scale(1.06); }
.chiffre-label { font-size:10.5px; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:1.5px; font-weight:500; }

/* ===== PAGE ===== */
.page { max-width:var(--max); margin:0 auto; padding:0 28px 100px; }

/* ===== SECTION ===== */
.section { padding:72px 0; border-bottom:1px solid var(--bordure); }
.section:last-child { border-bottom:none; }

.tag {
  display:inline-flex; align-items:center; gap:6px;
  font-size:10px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase;
  color:var(--or); margin-bottom:16px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(201,168,76,.25);
}
.section-titre {
  font-family:'Cormorant Garamond',serif;
  font-size:38px; font-weight:600; color:var(--vert); line-height:1.1; margin-bottom:12px;
}
.tiret { width:40px; height:2px; background:var(--or); margin-bottom:32px; }

/* ===== PRÉSENTATION ===== */
.pres-lead {
  font-size:19px; font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--vert); line-height:1.7; margin-bottom:24px; font-weight:400;
}
.pres-body {
  font-size:15.5px; line-height:1.85; color:#444;
  padding-left:20px; border-left:3px solid var(--or);
  margin-bottom:20px;
}
.vision-bloc {
  background: linear-gradient(135deg, var(--vert) 0%, var(--vert-clair) 100%);
  border-radius:var(--r); padding:36px 40px; position:relative; overflow:hidden;
  margin-top:32px;
}
.vision-bloc::before {
  content:'❝'; position:absolute; top:-10px; left:24px;
  font-size:100px; color:rgba(201,168,76,.12);
  font-family:'Cormorant Garamond',serif; line-height:1;
}
.vision-bloc h3 {
  font-size:10px; font-weight:700; letter-spacing:3px; text-transform:uppercase;
  color:var(--or-clair); margin-bottom:14px;
}
.vision-bloc p {
  font-family:'Cormorant Garamond',serif; font-size:20px; font-style:italic;
  color:rgba(255,255,255,.92); line-height:1.7;
}

/* ===== HISTORIQUE ===== */
.hist-logos {
  display:flex; align-items:center; justify-content:center;
  gap:48px; margin-bottom:48px; flex-wrap:wrap;
}
.hist-logo-item { text-align:center; }
.hist-logo-item img {
  width:96px; height:96px; object-fit:contain;
  border-radius:10px; margin-bottom:10px;
  box-shadow:0 6px 20px rgba(0,0,0,.1);
  transition:transform .3s; display:block; margin:0 auto 10px;
}
.hist-logo-item:hover img { transform:scale(1.08); }
.hist-logo-item p { font-size:11px; color:var(--gris); font-weight:600; text-transform:uppercase; letter-spacing:.8px; }
.hist-logo-item small { font-size:10px; font-weight:400; color:rgba(0,0,0,.35); }
.hist-fleche { font-size:28px; color:var(--or); opacity:.7; }

.timeline { position:relative; padding-left:130px; }
.timeline::before { content:''; position:absolute; left:106px; top:0; bottom:0; width:1px; background:linear-gradient(to bottom, var(--or), transparent); }
.tl-item { position:relative; margin-bottom:36px; }
.tl-annee {
  position:absolute; left:-130px; top:2px; width:106px;
  text-align:right; padding-right:22px;
  font-family:'Cormorant Garamond',serif;
  font-size:15px; font-weight:700; color:var(--or); line-height:1.3;
}
.tl-point {
  position:absolute; left:-14px; top:5px;
  width:12px; height:12px; border-radius:50%;
  background:var(--vert); border:2px solid var(--blanc);
  box-shadow:0 0 0 2px var(--vert);
  transition:transform .3s;
}
.tl-item:hover .tl-point { transform:scale(1.5); background:var(--or); box-shadow:0 0 0 2px var(--or); }
.tl-item h4 { font-size:15px; font-weight:600; color:var(--vert); margin-bottom:5px; }
.tl-item p { font-size:14px; color:var(--gris); line-height:1.65; }

/* ===== ÉQUIPE ===== */
.equipe-list { display:flex; flex-direction:column; gap:12px; }
.equipe-card {
  display:flex; align-items:center; gap:24px;
  background:var(--blanc); border-radius:var(--r);
  padding:24px 28px;
  border:1px solid var(--bordure); border-left:3px solid var(--vert);
  transition:all .3s;
}
.equipe-card:hover { transform:translateX(8px); box-shadow:0 8px 32px rgba(26,61,43,.09); border-left-color:var(--or); }
.equipe-card.fondateur { border-left-color:var(--or); background:var(--or-pale); }
.eq-avatar {
  width:58px; height:58px; border-radius:50%; flex-shrink:0;
  background:var(--vert-pale); color:var(--vert);
  display:flex; align-items:center; justify-content:center;
  font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:700;
  transition:transform .3s;
}
.equipe-card:hover .eq-avatar { transform:scale(1.1) rotate(5deg); }
.equipe-card.fondateur .eq-avatar { background:rgba(201,168,76,.15); color:var(--or); }
.eq-role { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:var(--or); margin-bottom:4px; }
.eq-nom { font-size:16px; font-weight:600; color:var(--noir); margin-bottom:3px; }
.eq-bio { font-size:13px; color:var(--gris); line-height:1.55; }

/* ===== MISSIONS ===== */
.missions-list { display:flex; flex-direction:column; gap:8px; }
.mission-card {
  display:flex; gap:18px; align-items:center;
  padding:16px 22px; background:var(--blanc);
  border:1px solid var(--bordure); border-radius:var(--r);
  transition:all .25s; cursor:default;
}
.mission-card:hover { background:var(--vert); border-color:var(--vert); transform:translateX(6px); }
.mission-card:hover p { color:rgba(255,255,255,.9); }
.mission-card:hover .m-num { background:var(--or); color:var(--noir); }
.m-num {
  width:32px; height:32px; border-radius:50%; flex-shrink:0;
  background:var(--vert-pale); color:var(--vert);
  display:flex; align-items:center; justify-content:center;
  font-family:'Cormorant Garamond',serif; font-size:15px; font-weight:700;
  transition:all .25s;
}
.mission-card p { font-size:15px; color:#333; line-height:1.5; transition:color .25s; }

/* ===== DOMAINES ===== */
.domaines-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.domaine-card {
  background:var(--blanc); border:1px solid var(--bordure);
  border-radius:var(--r); padding:30px 24px;
  border-top:3px solid var(--vert);
  position:relative; overflow:hidden;
  transition:all .35s cubic-bezier(.22,1,.36,1);
}
.domaine-card::after {
  content:''; position:absolute; bottom:0; right:0;
  width:80px; height:80px; border-radius:50% 0 0 0;
  background:var(--vert-pale); transition:transform .4s;
  transform:translate(30px, 30px);
}
.domaine-card:hover { transform:translateY(-8px); box-shadow:0 16px 40px rgba(26,61,43,.12); }
.domaine-card:hover::after { transform:translate(0,0) scale(2); }
.d-icon { font-size:30px; margin-bottom:16px; display:block; position:relative; z-index:1; }
.domaine-card h4 { font-size:16px; font-weight:600; color:var(--vert); margin-bottom:10px; position:relative; z-index:1; }
.domaine-card p, .domaine-card li { font-size:13.5px; color:var(--gris); line-height:1.65; position:relative; z-index:1; }
.domaine-card ul { padding-left:16px; }

/* ===== OBJECTIFS ===== */
.obj-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:28px; }
.obj-item {
  display:flex; gap:14px; align-items:flex-start;
  padding:16px 18px; background:var(--vert-pale);
  border-radius:var(--r); transition:all .25s;
}
.obj-item:hover { background:var(--vert); }
.obj-item:hover .obj-txt { color:white; }
.obj-check {
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  background:var(--vert); color:white; font-size:11px;
  display:flex; align-items:center; justify-content:center;
  transition:all .25s; margin-top:1px;
}
.obj-item:hover .obj-check { background:var(--or); color:var(--noir); transform:scale(1.15); }
.obj-txt { font-size:14px; color:var(--vert); font-weight:500; line-height:1.45; transition:color .25s; }

/* ===== PARTENAIRES ===== */
.part-titre { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:var(--gris); margin-bottom:14px; padding-bottom:8px; border-bottom:1px solid var(--bordure); }
.part-row { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px; }
.part-tag {
  background:var(--blanc); border:1px solid var(--bordure);
  color:var(--noir); padding:9px 20px; border-radius:var(--r);
  font-size:13px; font-weight:500;
  transition:all .25s; cursor:default;
}
.part-tag:hover { background:var(--vert); color:white; border-color:var(--vert); transform:translateY(-2px); box-shadow:0 4px 14px rgba(26,61,43,.15); }
.part-tag.cible { background:var(--or-pale); border-color:rgba(201,168,76,.3); color:var(--terre); }
.part-tag.cible:hover { background:var(--or); color:var(--noir); border-color:var(--or); }

/* ===== GRAPHIQUES ===== */
.charts-2col { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.chart-card {
  background:var(--blanc); border:1px solid var(--bordure);
  border-radius:var(--r); padding:28px;
  transition:box-shadow .3s;
}
.chart-card:hover { box-shadow:0 8px 28px rgba(26,61,43,.08); }
.chart-card.full { grid-column:1/-1; }
.c-label { font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--gris); margin-bottom:4px; }
.c-titre { font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:600; color:var(--vert); margin-bottom:22px; }
.chart-box { height:210px; position:relative; }

/* ===== CONTACT ===== */
.contact-wrap {
  background:var(--blanc); border-radius:var(--r);
  border:1px solid var(--bordure); overflow:hidden;
  box-shadow:0 4px 24px rgba(0,0,0,.05);
}
.contact-head { background:var(--vert); padding:28px 36px; }
.contact-head h3 { font-family:'Cormorant Garamond',serif; font-size:26px; color:white; margin-bottom:4px; font-weight:600; }
.contact-head p { font-size:13px; color:rgba(255,255,255,.55); }
.contact-corps { padding:28px 36px; }
.c-row {
  display:flex; align-items:flex-start; gap:16px;
  padding:16px 0; border-bottom:1px solid var(--bordure);
  transition:all .2s; border-radius:4px;
}
.c-row:last-of-type { border-bottom:none; }
.c-row:hover { background:var(--vert-pale); padding-left:10px; }
.c-ico {
  width:42px; height:42px; border-radius:var(--r);
  background:var(--vert-pale); display:flex;
  align-items:center; justify-content:center;
  font-size:18px; flex-shrink:0; transition:background .2s;
}
.c-row:hover .c-ico { background:var(--vert); }
.c-lbl { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--gris); margin-bottom:3px; }
.c-val { font-size:15px; font-weight:600; color:var(--noir); }
.c-val a { color:var(--vert); text-decoration:none; }
.c-val a:hover { text-decoration:underline; }
.contact-qr {
  background:var(--ivoire); border-top:1px solid var(--bordure);
  padding:24px 36px; display:flex; align-items:center; gap:24px;
}
.contact-qr img { width:110px; height:110px; border-radius:var(--r); border:2px solid var(--vert); flex-shrink:0; transition:transform .3s; }
.contact-qr img:hover { transform:scale(1.06); }
.contact-qr h4 { font-size:15px; font-weight:600; color:var(--vert); margin-bottom:5px; }
.contact-qr p { font-size:13px; color:var(--gris); line-height:1.6; }
.btn-contact {
  display:inline-block; background:var(--vert); color:white;
  padding:13px 30px; border-radius:var(--r); font-weight:600; font-size:12px;
  text-decoration:none; letter-spacing:1.2px; text-transform:uppercase;
  margin-top:22px; transition:all .3s; border:2px solid var(--vert);
  box-shadow:0 4px 16px rgba(26,61,43,.2);
}
.btn-contact:hover { background:var(--vert-clair); transform:translateY(-2px); box-shadow:0 8px 24px rgba(26,61,43,.25); }

/* ===== BACK TO TOP ===== */
#backTop {
  position:fixed; bottom:28px; right:28px; z-index:300;
  width:44px; height:44px; border-radius:50%;
  background:var(--vert); color:white;
  display:flex; align-items:center; justify-content:center;
  font-size:18px; cursor:pointer; border:none;
  box-shadow:0 4px 20px rgba(0,0,0,.2);
  opacity:0; transform:translateY(16px);
  transition:all .3s; text-decoration:none;
}
#backTop.show { opacity:1; transform:translateY(0); }
#backTop:hover { background:var(--or); color:var(--noir); transform:translateY(-3px); }

/* ===== FOOTER ===== */
footer {
  background:var(--noir); color:white;
  text-align:center; padding:52px 20px 36px;
  position:relative; overflow:hidden;
}
footer::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, var(--or), transparent);
}
.footer-logo { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:700; margin-bottom:6px; letter-spacing:-0.5px; }
.footer-logo span { color:var(--or); }
footer .tagline { font-size:12.5px; color:rgba(255,255,255,.4); margin-bottom:28px; letter-spacing:.3px; }
.footer-nav { display:flex; justify-content:center; gap:28px; flex-wrap:wrap; margin-bottom:28px; }
.footer-nav a { font-size:11px; color:rgba(255,255,255,.45); text-decoration:none; text-transform:uppercase; letter-spacing:1.5px; transition:color .2s; font-weight:500; }
.footer-nav a:hover { color:var(--or); }
.footer-hr { border:none; border-top:1px solid rgba(255,255,255,.08); max-width:300px; margin:0 auto 20px; }
footer small { font-size:11.5px; color:rgba(255,255,255,.28); display:block; margin-top:5px; }

/* ===== RESPONSIVE ===== */
@media(max-width:700px){
  .hero { min-height:100svh; }
  .hero h1 { font-size:40px; }
  .hero-inner { padding:40px 20px 200px; }
  .hero-stats { grid-template-columns:repeat(2,1fr); }
  .hero-stat { border-bottom:1px solid rgba(201,168,76,.1); }
  .hero-btns { flex-direction:row; justify-content:center; gap:10px; margin-bottom:0; }
  .btn-or, .btn-ghost { padding:12px 18px; font-size:11px; }
  .nav-links { display:flex; }
  .chiffres-inner { grid-template-columns:1fr 1fr; }
  .domaines-grid { grid-template-columns:1fr; }
  .charts-2col { grid-template-columns:1fr; }
  .obj-grid { grid-template-columns:1fr; }
  .galerie-inner { height:220px; grid-template-columns: repeat(4, 80vw); overflow-x:auto; }
  .contact-corps { padding:20px; }
  .contact-qr { flex-direction:column; text-align:center; padding:20px; }
  .timeline { padding-left:100px; }
  .tl-annee { left:-100px; width:80px; font-size:13px; }
  .timeline::before { left:80px; }
  .section-titre { font-size:28px; }
}
@media(max-width:420px){
  .hero h1 { font-size:36px; }
  .btn-or, .btn-ghost { padding:11px 14px; font-size:10.5px; letter-spacing:.8px; }
}

/* ===== CARTES PARTENAIRES ===== */
.part-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}
.part-card {
  display: flex; align-items: center; gap: 16px;
  background: var(--blanc);
  border: 1px solid var(--bordure);
  border-radius: var(--r);
  padding: 18px 20px;
  text-decoration: none; color: var(--noir);
  transition: all .3s cubic-bezier(.22,1,.36,1);
  position: relative; overflow: hidden;
}
.part-card::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0;
  width: 3px; background: var(--vert);
  transition: width .3s;
}
.part-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(26,61,43,.12); border-color: transparent; }
.part-card:hover::before { width: 5px; background: var(--or); }
.part-card-logo {
  width: 60px; height: 60px; border-radius: 10px; flex-shrink: 0;
  background: var(--vert); display: flex; align-items: center; justify-content: center;
  transition: transform .3s;
}
.part-card:hover .part-card-logo { transform: scale(1.08) rotate(3deg); }
.part-card-logo.inhp     { background: #1a5276; }
.part-card-logo.campc    { background: #7b241c; }
.part-card-logo.luciole  { background: #6c3483; }
.part-card-logo.prefecture { background: #1a3a5c; }
.part-card-logo.oapi       { background: #8e4a00; }
.part-initiales {
  font-family: 'Outfit', sans-serif;
  font-size: 13px; font-weight: 700;
  color: white; letter-spacing: .5px;
  text-align: center;
}
.part-card-info { flex: 1; }
.part-card-info h4 { font-size: 15px; font-weight: 700; color: var(--vert); margin-bottom: 3px; }
.part-card-info p { font-size: 12px; color: var(--gris); line-height: 1.4; margin-bottom: 6px; }
.part-card-domaine {
  font-size: 11px; font-weight: 600;
  color: var(--or); letter-spacing: .3px;
}
.part-card-lien {
  font-size: 11px; color: var(--gris); font-weight: 500;
  white-space: nowrap; opacity: 0;
  transition: opacity .2s;
}
.part-card:hover .part-card-lien { opacity: 1; color: var(--vert); }

@media(max-width:700px){
  .part-cards { grid-template-columns: 1fr; }
}

/* ===== MOSAÏQUE ÉVÉNEMENTS ===== */
.mosaique {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 230px;
  gap: 12px;
}
.mosaique-item {
  position: relative; overflow: hidden;
  border-radius: var(--r); cursor: pointer;
  margin: 0; box-shadow: 0 6px 24px rgba(26,61,43,.08);
}
.mosaique-item img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .7s cubic-bezier(.22,1,.36,1), filter .4s;
  filter: brightness(.82) saturate(.95);
}
.mosaique-item:hover img { transform: scale(1.07); filter: brightness(1) saturate(1.05); }
.mosaique-item::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(10,20,14,.80) 0%, rgba(10,20,14,.15) 45%, transparent 75%);
}
.mosaique-badge {
  position: absolute; top: 16px; left: 16px; z-index: 2;
  background: var(--or); color: var(--noir);
  font-size: 11px; font-weight: 700;
  letter-spacing: .5px; text-transform: uppercase;
  padding: 6px 13px; border-radius: 20px;
  box-shadow: 0 4px 12px rgba(0,0,0,.25);
}
.mosaique-cap {
  position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 2;
  color: #fff; font-family: 'Cormorant Garamond', serif;
  font-size: 19px; font-weight: 600; line-height: 1.25;
  transform: translateY(8px); opacity: .92;
  transition: transform .4s, opacity .4s;
  text-shadow: 0 2px 12px rgba(0,0,0,.4);
}
.mosaique-item:hover .mosaique-cap { transform: translateY(0); opacity: 1; }

/* Tailles des tuiles */
.m-big  { grid-column: span 2; grid-row: span 2; }
.m-wide { grid-column: span 2; }
.m-big .mosaique-cap { font-size: 24px; }

@media(max-width:900px){
  .mosaique { grid-auto-rows: 190px; }
}
@media(max-width:700px){
  .mosaique { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 165px; gap: 10px; }
  .mosaique-cap { font-size: 16px; }
  .m-big .mosaique-cap { font-size: 18px; }
}
@media(max-width:440px){
  .mosaique { grid-auto-rows: 150px; }
  .mosaique-cap { font-size: 15px; }
}

/* ===== BOUTON FLOTTANT ===== */
.btn-float {
  position: fixed; bottom: 84px; right: 28px; z-index: 299;
  display: flex; align-items: center; gap: 8px;
  background: var(--vert); color: white;
  padding: 12px 20px; border-radius: 40px;
  text-decoration: none; font-weight: 600; font-size: 13px;
  box-shadow: 0 6px 24px rgba(26,61,43,.35);
  transition: all .3s cubic-bezier(.22,1,.36,1);
  white-space: nowrap;
  animation: fadeUp .8s 1.2s both;
}
.btn-float:hover { background: var(--or); color: var(--noir); transform: translateY(-4px) scale(1.04); box-shadow: 0 12px 32px rgba(201,168,76,.4); }
.btn-float-icon { font-size: 16px; }
.btn-float-txt { letter-spacing: .3px; }

/* ===== ADHÉSION ===== */
.adhesion-wrap {
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 40px;
  align-items: start;
}
.adhesion-avantages h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px; color: var(--vert); margin-bottom: 24px;
}
.avantages-list { list-style: none; display: flex; flex-direction: column; gap: 18px; }
.avantages-list li { display: flex; gap: 14px; align-items: flex-start; }
.av-icon {
  width: 40px; height: 40px; border-radius: 10px;
  background: var(--vert-pale); display: flex;
  align-items: center; justify-content: center;
  font-size: 18px; flex-shrink: 0;
}
.avantages-list strong { font-size: 14px; color: var(--vert); display: block; margin-bottom: 2px; }
.avantages-list p { font-size: 13px; color: var(--gris); line-height: 1.5; }

.adhesion-form-wrap {
  background: var(--blanc); border-radius: var(--r);
  border: 1px solid var(--bordure); overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,.06);
}
.form-header { background: var(--vert); padding: 22px 28px; }
.form-header h3 { font-family: 'Cormorant Garamond', serif; font-size: 22px; color: white; margin-bottom: 4px; }
.form-header p { font-size: 13px; color: rgba(255,255,255,.6); }

.adhesion-form { padding: 24px 28px; display: flex; flex-direction: column; gap: 16px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group label { font-size: 11.5px; font-weight: 700; color: var(--gris); text-transform: uppercase; letter-spacing: .8px; }
.form-group input, .form-group select, .form-group textarea {
  padding: 11px 14px; border: 1.5px solid var(--bordure);
  border-radius: var(--r); font-size: 14px;
  font-family: 'Outfit', sans-serif; color: var(--noir);
  background: var(--ivoire); transition: border-color .2s, box-shadow .2s;
  outline: none; width: 100%;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  border-color: var(--vert); box-shadow: 0 0 0 3px rgba(26,61,43,.08);
  background: white;
}
.form-group textarea { resize: vertical; min-height: 80px; }
.form-submit {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  background: var(--vert); color: white;
  border: none; border-radius: var(--r); padding: 14px 28px;
  font-size: 14px; font-weight: 700; cursor: pointer;
  font-family: 'Outfit', sans-serif; letter-spacing: .5px;
  transition: all .3s; box-shadow: 0 4px 16px rgba(26,61,43,.2);
}
.form-submit:hover { background: var(--vert-clair); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(26,61,43,.25); }
.submit-arrow { font-size: 18px; transition: transform .3s; }
.form-submit:hover .submit-arrow { transform: translateX(4px); }
.form-note { font-size: 11px; color: var(--gris); text-align: center; }

.form-success {
  margin: 20px 28px; padding: 24px; text-align: center;
  background: var(--vert-pale); border-radius: var(--r);
  border: 1px solid rgba(26,61,43,.15);
}
.success-icon { font-size: 36px; margin-bottom: 10px; }
.form-success h4 { font-family: 'Cormorant Garamond', serif; font-size: 20px; color: var(--vert); margin-bottom: 6px; }
.form-success p { font-size: 13px; color: var(--gris); line-height: 1.6; }

/* ===== RESPONSIVE NOUVELLES SECTIONS ===== */
@media(max-width:700px){
  .adhesion-wrap { grid-template-columns: 1fr; gap: 28px; }
  .form-row { grid-template-columns: 1fr; }
  .btn-float { bottom: 80px; right: 16px; padding: 10px 14px; font-size: 12px; }
}
