:root {
  --green-dark:   #1a3a2a;
  --green-mid:    #2d5a3d;
  --green-light:  #3d7a50;
  --green-pale:   #e8f0e9;
  --accent:       #c8621a;
  --accent-light: #e8823a;
  --white:        #ffffff;
  --offwhite:     #fafaf7;
  --text:         #1a1a1a;
  --text-light:   #555555;
  --divider:      #d4cfc0;
  --shadow-sm:    0 1px 3px rgba(0,0,0,0.08);
  --shadow-md:    0 4px 16px rgba(0,0,0,0.10);
  --shadow-lg:    0 8px 32px rgba(0,0,0,0.12);
  --radius-sm:    4px;
  --radius-md:    8px;
  --radius-lg:    16px;
  --maxw:         1120px;
  --font-body:    -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-heading: Georgia, 'Times New Roman', serif;
  --nav-h:        64px;
  /* Aliases — règles de compatibilité (anciennes conventions présentes dans le CSS) */
  --primary:      var(--green-dark);
  --primary-light: var(--green-light);
  --primary-dark: #122a1e;
  --muted:        var(--text-light);
  --dark:         var(--text);
  --radius:       var(--radius-md);
  --shadow:       var(--shadow-md);
}
*{ box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--font-body);
  color: var(--text);
  background: var(--offwhite);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* --- Images & picture --- */
img{max-width:100%;height:auto;display:block}
picture{display:block}
figure{margin:1.6rem 0}
figure img,figure picture img{border-radius:var(--radius-md);box-shadow:var(--shadow-md)}
figcaption{font-size:.82rem;color:var(--text-light);text-align:center;margin-top:.55rem;font-style:italic}
.card-img picture img,.card-img img{width:100%;height:180px;object-fit:cover}
a { color: var(--green-mid); text-decoration: none; transition: color 0.15s; }
a:hover { color: var(--accent); }
.container { max-width: var(--maxw); margin: 0 auto; padding: 0 1.25rem; }
.nav{background:var(--white);box-shadow:0 1px 3px rgba(0,0,0,.08);position:sticky;top:0;z-index:100}
.nav-inner{max-width:1160px;margin:0 auto;padding:.9rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.logo{font-size:1.35rem;font-weight:800;color:var(--primary);letter-spacing:-.5px}
.logo span{color:var(--accent)}
.nav-links{display:flex;gap:1.4rem;list-style:none;flex-wrap:wrap}
.nav-links a{color:var(--muted);font-weight:600;font-size:.92rem;transition:color .2s}
.nav-links a:hover{color:var(--primary)}
.btn{display:inline-block;padding:.75rem 1.5rem;border-radius:8px;font-weight:700;font-size:.95rem;transition:all .2s;border:none;cursor:pointer;text-align:center}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-light)}
.btn-accent{background:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-dark)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.22)}
.btn-sm{padding:.5rem 1.1rem;font-size:.85rem}
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(26,58,42,.88),rgba(17,24,39,.88));padding:6.5rem 1.5rem;text-align:center;color:#fff}
/* --- Hero slideshow : 3 photos emblématiques défilant en fond (CSS pur, Core Web Vitals) --- */
.hero-slideshow{position:absolute;inset:0;z-index:0}
.hero-slideshow picture{position:absolute;inset:0}
.hero-slideshow .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:heroFade 18s infinite}
.hero-slideshow picture:nth-of-type(1) .slide{animation-delay:0s}
.hero-slideshow picture:nth-of-type(2) .slide{animation-delay:6s}
.hero-slideshow picture:nth-of-type(3) .slide{animation-delay:12s}
@keyframes heroFade{0%{opacity:0}5%{opacity:1}28%{opacity:1}33%{opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion: reduce){.hero-slideshow .slide{animation:none;opacity:1}.hero-slideshow .slide:not(:first-child){display:none}}
.hero>*:not(.hero-slideshow){position:relative;z-index:1}
.hero h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800;letter-spacing:-1px;line-height:1.15;margin:1rem auto 1.2rem;max-width:820px}
.hero h1 em{font-style:normal;color:#fbbf24}
.hero p{font-size:1.15rem;color:#e5e7eb;max-width:680px;margin:0 auto 2.2rem}
.badge{display:inline-block;background:rgba(16,185,129,.15);color:#6ee7b7;border:1px solid rgba(16,185,129,.4);padding:.4rem 1rem;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.hero-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.section{padding:4.5rem 0}
.section-alt{background:var(--white)}
.section-head{max-width:720px;margin:0 auto 3rem;text-align:center}
.eyebrow{display:block;color:var(--accent);font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:.6rem}
.section-head h2{font-size:clamp(1.7rem,3.5vw,2.4rem);font-weight:800;color:var(--dark);letter-spacing:-.5px;margin-bottom:.8rem}
.section-head p{color:var(--muted)}
.breadcrumbs{font-size:.85rem;color:var(--muted);padding:1.2rem 0 0}
.breadcrumbs a{color:var(--primary);font-weight:600}
.breadcrumbs span{margin:0 .4rem}
.page-hero{background:linear-gradient(135deg,rgba(30,63,32,.95),rgba(17,24,39,.9));color:#fff;padding:4rem 0 3.2rem}
.page-hero h1{font-size:clamp(1.9rem,4vw,2.8rem);font-weight:800;letter-spacing:-.5px;margin:.6rem 0 .8rem}
.page-hero p{color:#e5e7eb;max-width:720px;font-size:1.08rem}
.page-hero .meta{font-size:.85rem;color:#9ca3af;margin-top:1rem}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.6rem}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:2rem}
.card{background:var(--white);border:1px solid #e5e7eb;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.card-img{height:190px;background:linear-gradient(135deg,var(--primary),#14532d);display:flex;align-items:center;justify-content:center;color:#fbbf24;font-size:2.4rem}
.card-body{padding:1.4rem;flex:1;display:flex;flex-direction:column}
.card-body h3{font-size:1.15rem;color:var(--dark);margin-bottom:.5rem}
.card-body p{color:var(--muted);font-size:.93rem;flex:1}
.card-body .more{color:var(--primary);font-weight:700;font-size:.9rem;margin-top:.9rem}
.tag{display:inline-block;background:#ecfdf5;color:#047857;font-size:.72rem;font-weight:700;padding:.25rem .7rem;border-radius:999px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.6rem;align-self:flex-start}
.article{max-width:800px;margin:0 auto}
.article h2{font-size:1.6rem;color:var(--dark);margin:2.4rem 0 .9rem;letter-spacing:-.3px}
.article h3{font-size:1.2rem;color:var(--dark);margin:1.8rem 0 .6rem}
.article p{margin-bottom:1.1rem;color:#374151}
.article ul,.article ol{margin:0 0 1.2rem 1.4rem}
.article li{margin-bottom:.45rem;color:#374151}
.article blockquote{border-left:4px solid var(--accent);background:#fffbeb;padding:1rem 1.3rem;border-radius:0 8px 8px 0;margin:1.4rem 0;font-style:italic;color:#78350f}
.article table{width:100%;border-collapse:collapse;margin:1.4rem 0;font-size:.92rem;background:#fff}
.article th{background:var(--primary);color:#fff;text-align:left;padding:.7rem .9rem}
.article td{padding:.65rem .9rem;border-bottom:1px solid #e5e7eb}
.toc{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius);padding:1.4rem 1.6rem;margin:1.6rem 0}
.toc strong{color:var(--primary);display:block;margin-bottom:.5rem}
.toc ul{list-style:none;margin:0}
.toc li{padding:.25rem 0}
.faq details{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem 1.3rem;margin-bottom:.8rem}
.faq summary{font-weight:700;color:var(--dark);cursor:pointer}
.faq p{margin-top:.7rem;color:var(--muted);font-size:.95rem}
.cta-box{background:linear-gradient(135deg,var(--primary),#14532d);color:#fff;border-radius:16px;padding:2.6rem;text-align:center;margin:3rem 0}
.cta-box h2{font-size:1.6rem;margin-bottom:.7rem}
.cta-box p{color:#d1fae5;max-width:640px;margin:0 auto 1.6rem}
.partner-box{background:#022c22;border:1px solid #065f46;border-radius:var(--radius);padding:1.6rem;color:#e5e7eb;margin:1.5rem 0}
.partner-box h3{color:#fbbf24;margin-bottom:.6rem;font-size:1.05rem}
.partner-box a{color:#fcd34d;text-decoration:underline;font-weight:600}
.sources{background:#f8faf9;border:1px solid #d7e5dc;border-left:4px solid #1e3f20;border-radius:8px;padding:1.4rem 1.6rem;margin:2rem 0}
.sources h2{font-size:1.05rem;margin:0 0 .6rem;color:#1e3f20}
.sources p{font-size:.92rem;color:#475569;margin:0 0 .8rem}
.sources ul{margin:0;padding-left:1.1rem;font-size:.92rem}
.sources li{margin-bottom:.4rem;color:#334155}
.sources a{color:#1e5c3a;text-decoration:underline}
.sources-note{margin-top:.9rem!important;margin-bottom:0!important;font-size:.85rem!important;font-style:italic}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin:2rem 0}
.stat{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:1.2rem;text-align:center}
.stat b{display:block;font-size:1.5rem;color:#fbbf24}
.stat small{color:#a7f3d0;font-size:.8rem}
.form-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:var(--shadow);padding:2.2rem;max-width:640px;margin:0 auto}
.form-card label{display:block;font-weight:700;font-size:.88rem;color:var(--dark);margin:1rem 0 .35rem}
.form-card input,.form-card select,.form-card textarea{width:100%;padding:.75rem .9rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;font-family:inherit;transition:border-color .15s,box-shadow .15s;background:#fff}
.form-card input:hover,.form-card select:hover,.form-card textarea:hover{border-color:#9ca3af}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(45,90,61,.18)}
.form-card textarea{resize:vertical;min-height:110px}
.form-card button[type="submit"]:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.form-card .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.form-card .form-row{grid-template-columns:1fr}}
.form-note{font-size:.78rem;color:#6b7280;margin-top:.8rem}
.footer{background:#0f2410;color:#d1d5db;padding:3.5rem 0 1.5rem;margin-top:4rem}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2.2rem;margin-bottom:2.4rem}
.footer h4{color:#fbbf24;font-size:.95rem;margin-bottom:.9rem}
.footer ul{list-style:none}
.footer li{margin-bottom:.5rem}
.footer a{color:#d1d5db;font-size:.9rem}
.footer a:hover{color:#fbbf24}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:1.4rem;text-align:center;font-size:.82rem;color:#9ca3af}
/* --- Page hero (pages intérieures) --- */
.page-hero{background:linear-gradient(135deg,var(--green-dark),#111827);color:#fff;padding:3.5rem 1.5rem 3rem;text-align:center;position:relative;background-size:cover;background-position:center}
/* --- Bandeau avatar : photo illustrant chaque page --- */
.page-hero.has-bg::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,30,20,.55) 0%,rgba(10,16,24,.82) 100%);z-index:0}
.page-hero.has-bg .container{position:relative;z-index:1}
.page-hero.has-bg h1{text-shadow:0 2px 10px rgba(0,0,0,.5)}
.page-hero.has-bg p{color:#e8f0e9;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.photo-credit{font-size:.75rem;color:#6b7280;margin:.5rem 0 0;text-align:right}
.photo-credit a{color:#6b7280;text-decoration:underline}
.page-hero.has-bg .photo-credit{color:#c7d3cb;text-align:center;margin-top:1.1rem;opacity:.85}
.page-hero.has-bg .photo-credit a{color:#c7d3cb}
@media(max-width:640px){.page-hero{padding:2.5rem 1.25rem 2rem}.page-hero.has-bg{min-height:260px}}
.page-hero h1{font-size:clamp(1.9rem,4vw,2.9rem);font-weight:800;letter-spacing:-.8px;margin:.7rem auto .8rem;max-width:820px}
.page-hero p{color:#d1d5db;max-width:720px;margin:0 auto;font-size:1.05rem}
.breadcrumb{font-size:.85rem;margin-bottom:1rem;color:#a7f3d0}
.breadcrumb a{color:#d1fae5;text-decoration:underline}
.breadcrumb a:hover{color:#fbbf24}
.breadcrumb span[aria-current]{color:#fff;font-weight:600}
@media(max-width:760px){.nav-links{gap:.9rem}.hero{padding:4.5rem 1.2rem}.section{padding:3rem 0}.cta-box{padding:1.8rem}}
