/*
Theme Name: CEDEM
Theme URI: https://cedemsenegal.org
Author: CEDEM
Description: Thème sur mesure moderne et dynamique — Design ONG internationale
Version: 3.1
License: GNU General Public License v2 or later
Text Domain: cedem
*/

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;500;600;700;800&family=Roboto:wght@400;500;700&display=swap');

/* ========== TOKENS ========== */
:root {
  /* Palette principale */
  --c-green-950: #0a1a05;
  --c-green-900: #1a3d0a;
  --c-green-800: #234d0e;
  --c-green-700: #2d6010;
  --c-green-600: #3a7a18;
  --c-green-100: #ecf5d8;
  --c-gold:      #d4a020;
  --c-gold-dark: #b89010;
  --c-gold-light:#f0c040;
  --c-gold-pale: #fdf5d0;
  --c-white:     #ffffff;
  --c-ink:       #0f1f13;

  /* Thème clair */
  --bg:          #f6f9f0;
  --bg-alt:      #ffffff;
  --bg-elevated: #ffffff;
  --bg-subtle:   #f0f6e8;
  --text:        #0e1a06;
  --text-muted:  #4a5e2a;
  --text-light:  #7a8a4a;
  --accent:      var(--c-green-900);
  --accent-2:    var(--c-gold);
  --border:      rgba(20,61,28,0.1);
  --border-gold: rgba(232,160,32,0.3);
  --shadow-sm:   0 2px 8px rgba(20,61,28,0.08);
  --shadow:      0 8px 32px rgba(20,61,28,0.12);
  --shadow-lg:   0 20px 60px rgba(20,61,28,0.15);
  --shadow-gold: 0 8px 32px rgba(232,160,32,0.25);

  /* Gradients */
  --grad-green:  linear-gradient(135deg, #1a4a10 0%, #4a7a1a 100%);
  --grad-gold:   linear-gradient(135deg, #d4a020 0%, #f0c040 100%);
  --grad-hero:   linear-gradient(160deg, #0d2008 0%, #1a3d10 50%, #2d5a10 100%);
  --grad-card:   linear-gradient(135deg, rgba(20,61,28,0.04) 0%, rgba(232,160,32,0.06) 100%);

  /* Typo */
  --font-display: "Open Sans","Segoe UI",sans-serif;
  --font-body:    "Roboto","Segoe UI",sans-serif;

  /* Espacements */
  --radius-sm:  10px;
  --radius:     16px;
  --radius-lg:  24px;
  --radius-xl:  32px;
  --container:  1180px;
  --transition: .25s cubic-bezier(.4,0,.2,1);
}

/* Thème sombre */
[data-theme="dark"] {
  --bg:          #0d1a08;
  --bg-alt:      #121f08;
  --bg-elevated: #182606;
  --bg-subtle:   #1e2f0a;
  --text:        #eef5f0;
  --text-muted:  #9ab8a4;
  --text-light:  #6d9478;
  --accent:      var(--c-gold);
  --accent-2:    var(--c-gold-light);
  --border:      rgba(232,160,32,0.15);
  --border-gold: rgba(232,160,32,0.3);
  --shadow-sm:   0 2px 8px rgba(0,0,0,0.3);
  --shadow:      0 8px 32px rgba(0,0,0,0.4);
  --shadow-lg:   0 20px 60px rgba(0,0,0,0.5);
  --grad-card:   linear-gradient(135deg, rgba(255,255,255,0.03) 0%, rgba(232,160,32,0.05) 100%);
}

/* ========== BASE ========== */
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  margin:0; padding:0;
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  transition:background var(--transition), color var(--transition);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  line-height:1.6;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; cursor:pointer; }
ul { list-style:none; margin:0; padding:0; }
p { margin:0 0 1em; line-height:1.75; }
h1,h2,h3,h4,h5 {
  font-family:var(--font-display);
  line-height:1.2;
  margin:0 0 .6em;
  font-weight:700;
  color:var(--text);
  letter-spacing:-.02em;
}

.container { max-width:var(--container); margin:0 auto; padding:0 28px; }

/* ========== EYEBROW ========== */
.eyebrow {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.7rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--c-gold); font-weight:800; margin-bottom:12px;
  font-family:var(--font-display);
}
.eyebrow::before {
  content:""; width:28px; height:2px;
  background:var(--grad-gold); border-radius:2px;
  flex-shrink:0;
}

/* ========== SECTIONS ========== */
.section { padding:96px 0; }
.section-alt { background:var(--bg-alt); }
.section-subtle { background:var(--bg-subtle); }

.section-head { max-width:640px; margin:0 auto 56px; text-align:center; }
.section-head h2 {
  font-size:clamp(1.8rem,3.5vw,2.6rem);
  background:var(--grad-green);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
[data-theme="dark"] .section-head h2 {
  background:var(--grad-gold);
  -webkit-background-clip:text;
  background-clip:text;
}
.section-head p { color:var(--text-muted); font-size:1.05rem; line-height:1.7; }

/* ========== BOUTONS ========== */
.btn {
  display:inline-flex; align-items:center; gap:9px;
  padding:14px 30px; border-radius:999px;
  font-family:var(--font-display); font-weight:700; font-size:.9rem;
  cursor:pointer; border:none; letter-spacing:.02em;
  transition:all var(--transition); white-space:nowrap;
  position:relative; overflow:hidden;
}
.btn::after {
  content:""; position:absolute; inset:0;
  background:rgba(255,255,255,0); transition:background var(--transition);
}
.btn:hover::after { background:rgba(255,255,255,0.12); }
.btn:hover { transform:translateY(-3px); }
.btn:active { transform:translateY(-1px); }

.btn-primary {
  background:var(--grad-gold);
  color:var(--c-green-900);
  box-shadow:0 4px 16px rgba(232,160,32,0.3);
}
.btn-primary:hover { box-shadow:var(--shadow-gold); }

.btn-outline {
  background:transparent;
  border:2px solid var(--border-gold);
  color:var(--c-gold);
}
.btn-outline:hover { background:rgba(232,160,32,0.08); border-color:var(--c-gold); }

.btn-white {
  background:rgba(255,255,255,0.15);
  color:#fff; border:2px solid rgba(255,255,255,0.4);
  backdrop-filter:blur(8px);
}
.btn-white:hover { background:rgba(255,255,255,0.25); border-color:#fff; }

.hero-btns { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:32px; }
.text-center { text-align:center; }
.mt-36 { margin-top:36px; }

/* ========== HEADER ========== */
.site-header {
  position:sticky; top:0; z-index:200;
  background:rgba(255,255,255,0.95);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  transition:background var(--transition);
}
[data-theme="dark"] .site-header {
  background:rgba(13,31,18,0.95);
}
.nav-wrap {
  display:flex; align-items:center;
  justify-content:space-between;
  padding:12px 0; gap:14px; flex-wrap:nowrap;
}
.logo {
  display:flex; align-items:center; gap:12px;
  cursor:pointer; flex-shrink:0; text-decoration:none;
}
.logo-mark {
  width:44px; height:44px; border-radius:12px;
  background:var(--grad-green);
  color:var(--c-gold);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; font-weight:800; font-size:.9rem;
  font-family:var(--font-display);
  box-shadow:0 4px 12px rgba(20,61,28,0.3);
}
.main-nav { display:flex; align-items:center; flex:1; justify-content:center; }
.main-nav>ul { display:flex; align-items:center; gap:0; flex-wrap:nowrap; }
.main-nav>ul>li { position:relative; white-space:nowrap; }
.main-nav>ul>li>a {
  display:flex; align-items:center; gap:4px;
  padding:9px 11px; border-radius:10px;
  font-size:.78rem; font-weight:600;
  color:var(--text-muted); cursor:pointer;
  transition:all var(--transition);
  font-family:var(--font-display);
}
.main-nav>ul>li>a:hover,
.main-nav>ul>li.current-menu-item>a,
.main-nav>ul>li.current-menu-parent>a {
  color:var(--c-green-900); background:var(--c-green-100);
}
[data-theme="dark"] .main-nav>ul>li>a:hover,
[data-theme="dark"] .main-nav>ul>li.current-menu-item>a {
  color:var(--c-gold); background:rgba(232,160,32,0.1);
}
.caret { font-size:.6em; opacity:.6; }
.sub-menu, .submenu {
  position:absolute; top:calc(100% + 8px); left:0;
  min-width:210px;
  background:var(--bg-elevated);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow-lg);
  padding:8px; opacity:0; visibility:hidden;
  transform:translateY(10px) scale(.97);
  transition:all .2s cubic-bezier(.4,0,.2,1);
  z-index:300;
}
.main-nav>ul>li:hover .sub-menu,
.main-nav>ul>li:hover .submenu {
  opacity:1; visibility:visible;
  transform:translateY(0) scale(1);
}
.sub-menu li a, .submenu li a {
  display:flex; align-items:center; gap:8px;
  padding:10px 14px; border-radius:10px;
  font-size:.84rem; font-weight:500;
  transition:all var(--transition); color:var(--text-muted);
}
.sub-menu li a:hover, .submenu li a:hover {
  background:var(--c-green-100); color:var(--c-green-900);
}
[data-theme="dark"] .sub-menu li a:hover { background:rgba(232,160,32,0.08); color:var(--c-gold); }
.nav-tools { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.tool-btn {
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:12px;
  border:1.5px solid var(--border);
  background:var(--bg-subtle); cursor:pointer;
  font-size:.9rem; color:var(--text);
  transition:all var(--transition);
}
.tool-btn:hover { border-color:var(--c-gold); background:rgba(232,160,32,0.08); }
.lang-switch {
  display:flex; border:1.5px solid var(--border);
  border-radius:999px; overflow:hidden;
  background:var(--bg-subtle);
}
.lang-btn {
  padding:7px 13px; font-size:.75rem; font-weight:700;
  color:var(--text-muted); background:transparent;
  border:none; cursor:pointer; font-family:var(--font-display);
  transition:all var(--transition);
}
.lang-btn.active { background:var(--grad-green); color:#fff; }
[data-theme="dark"] .lang-btn.active { background:var(--grad-gold); color:var(--c-green-900); }
.nav-toggle {
  display:none; width:38px; height:38px; border-radius:12px;
  border:1.5px solid var(--border); background:var(--bg-subtle);
  cursor:pointer; font-size:1rem; color:var(--text);
}

/* ========== HERO ========== */
.hero {
  position:relative; min-height:95vh;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; color:#fff;
  background:var(--grad-hero);
}
.hero::before {
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse at 30% 50%, rgba(34,96,49,0.4) 0%, transparent 60%),
             radial-gradient(ellipse at 80% 20%, rgba(232,160,32,0.15) 0%, transparent 50%);
}
.hero-slides { position:absolute; inset:0; }
.hero-slide {
  position:absolute; inset:0; opacity:0;
  transition:opacity 1.4s cubic-bezier(.4,0,.2,1);
  background-size:cover; background-position:center;
}
.hero-slide.active { opacity:1; }
.hero-slide::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(160deg,rgba(8,21,16,.4) 0%,rgba(8,21,16,.85) 100%);
}
.hs1 { background:linear-gradient(135deg,#081510,#143d1c,#1a5228); }
.hs2 { background:linear-gradient(135deg,#060f08,#143d1c,#c07010); }
.hs3 { background:linear-gradient(135deg,#081510,#0a2410,#6b3a0a); }
.hs4 { background:linear-gradient(135deg,#081510,#226031,#b8880a); }
.hs5 { background:linear-gradient(135deg,#081510,#143d1c,#8a4a10); }
.hero-content {
  position:relative; z-index:2;
  padding:0 28px 100px;
  max-width:var(--container); margin:0 auto;
  width:100%; text-align:center;
  display:flex; flex-direction:column; align-items:center;
}
.hero-domain-tag {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--c-gold-light); font-weight:800; margin-bottom:20px;
  padding:8px 20px;
  background:rgba(232,160,32,0.12);
  border:1px solid rgba(232,160,32,0.3);
  border-radius:999px; backdrop-filter:blur(8px);
}
.hero-content h1 {
  font-size:clamp(2.2rem,5.5vw,4rem);
  color:#fff; max-width:820px;
  text-shadow:0 4px 24px rgba(0,0,0,0.3);
  line-height:1.1; letter-spacing:-.03em;
  font-weight:800;
}
.hero-keywords {
  font-size:1rem; color:var(--c-gold-light);
  font-weight:700; margin-bottom:16px;
  letter-spacing:.06em; text-transform:uppercase;
}
.hero-content>p {
  max-width:600px; font-size:1.1rem;
  color:rgba(255,255,255,.8); margin-bottom:0; line-height:1.75;
}
.hero-dots { position:absolute; right:32px; bottom:32px; z-index:3; display:flex; gap:8px; }
.hero-dots button {
  width:8px; height:8px; border-radius:50%;
  background:rgba(255,255,255,.3); border:none; cursor:pointer; padding:0;
  transition:all .35s;
}
.hero-dots button.active { background:var(--c-gold); width:24px; border-radius:6px; }
.hero-nav { position:absolute; bottom:32px; left:28px; z-index:3; display:flex; gap:10px; }
.hero-nav button {
  width:38px; height:38px; border-radius:12px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
  color:#fff; cursor:pointer; font-size:.95rem;
  display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(8px); transition:all var(--transition);
}
.hero-nav button:hover { background:rgba(232,160,32,.35); border-color:var(--c-gold); }
.hero-progress { position:absolute; top:0; left:0; height:3px; background:var(--grad-gold); z-index:4; transition:width .1s linear; width:0; }
.btn-hero-outline { background:rgba(255,255,255,.1); border:2px solid rgba(255,255,255,.4); color:#fff; backdrop-filter:blur(8px); }
.btn-hero-outline:hover { background:rgba(255,255,255,.2); border-color:#fff; }

/* Décorations hero */
.hero-deco {
  position:absolute; border-radius:50%;
  background:radial-gradient(circle, rgba(232,160,32,0.15), transparent);
  z-index:1; pointer-events:none;
}
.hero-deco-1 { width:600px; height:600px; top:-200px; right:-100px; }
.hero-deco-2 { width:400px; height:400px; bottom:-100px; left:-50px; }

/* ========== ACTUALITÉS ========== */
.news-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.news-card {
  background:var(--bg-elevated);
  border:1px solid var(--border);
  border-radius:var(--radius-lg); overflow:hidden;
  display:flex; flex-direction:column;
  transition:all var(--transition);
  box-shadow:var(--shadow-sm);
}
.news-card:hover {
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
  border-color:var(--border-gold);
}
.news-thumb {
  aspect-ratio:16/9;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:1.8rem; font-weight:800;
  color:rgba(255,255,255,.8);
  background-size:cover; background-position:center;
  position:relative; overflow:hidden;
}
.news-thumb::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(to bottom, transparent 40%, rgba(0,0,0,0.4));
}
.nt1{background:linear-gradient(135deg,#143d1c,#2d7a3f);}
.nt2{background:linear-gradient(135deg,#1a4d24,#e8a020);}
.nt3{background:linear-gradient(135deg,#226031,#143d1c);}
.nt4{background:linear-gradient(135deg,#e8a020,#c8880a);}
.news-body { padding:20px 22px 24px; flex:1; display:flex; flex-direction:column; }
.news-date {
  font-size:.72rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em; margin-bottom:10px;
  color:var(--c-gold);
}
.news-body h3 { font-size:1rem; margin-bottom:10px; font-weight:700; line-height:1.4; }
.news-body p { color:var(--text-muted); font-size:.88rem; flex:1; margin:0; }
.news-link {
  display:inline-flex; align-items:center; gap:6px;
  margin-top:16px; font-size:.82rem; font-weight:700;
  color:var(--c-green-700); transition:gap var(--transition);
}
.news-link:hover { gap:10px; color:var(--c-gold); }
[data-theme="dark"] .news-link { color:var(--c-gold-light); }

/* ========== PROGRAMMES ========== */
.prog-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.prog-card {
  display:grid; grid-template-columns:130px 1fr; gap:20px;
  background:var(--bg-elevated);
  border:1px solid var(--border);
  border-radius:var(--radius-lg); padding:22px;
  transition:all var(--transition);
  box-shadow:var(--shadow-sm);
  position:relative; overflow:hidden;
}
.prog-card::before {
  content:""; position:absolute; top:0; left:0;
  width:4px; height:100%;
  background:var(--grad-gold);
  border-radius:4px 0 0 4px;
}
.prog-card:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg);
  border-color:var(--border-gold);
}
.prog-thumb {
  border-radius:var(--radius); aspect-ratio:1/1;
  background-size:cover; background-position:center;
  overflow:hidden;
}
.pt1{background:linear-gradient(135deg,#143d1c,#e8a020);}
.pt2{background:linear-gradient(135deg,#e8a020,#226031);}
.pt3{background:linear-gradient(135deg,#226031,#f3c266);}
.pt4{background:linear-gradient(135deg,#1a4d24,#2d7a3f);}
.pt5{background:linear-gradient(135deg,#143d1c,#f3c266);}
.pt6{background:linear-gradient(135deg,#f3c266,#143d1c);}
.prog-badge {
  display:inline-flex; align-items:center; gap:5px;
  font-size:.68rem; font-weight:800; text-transform:uppercase;
  letter-spacing:.07em; padding:4px 12px; border-radius:999px; margin-bottom:10px;
}
.badge-upcoming { background:rgba(232,160,32,.12); color:#b9790f; border:1px solid rgba(232,160,32,.25); }
.badge-done { background:rgba(100,100,100,.1); color:#666; border:1px solid rgba(100,100,100,.2); }
[data-theme="dark"] .badge-upcoming { color:var(--c-gold-light); background:rgba(232,160,32,.1); }
.prog-card h3 { font-size:1rem; margin-bottom:8px; font-weight:700; line-height:1.35; }
.prog-card p { font-size:.87rem; color:var(--text-muted); margin:0; line-height:1.6; }

/* ========== PARTENAIRES ========== */
.partners-strip { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:18px; }
.partner-logo {
  height:80px; padding:12px 20px;
  background:var(--bg-elevated);
  border:1.5px solid var(--border);
  border-radius:var(--radius);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700;
  color:var(--text-muted); font-size:.82rem;
  transition:all var(--transition);
  box-shadow:var(--shadow-sm); min-width:130px;
}
.partner-logo:hover {
  border-color:var(--c-gold); color:var(--c-green-900);
  transform:translateY(-3px); box-shadow:var(--shadow-gold);
  background:rgba(232,160,32,.04);
}
.partner-logo img { max-height:46px; width:auto; object-fit:contain; }
.partners-page-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.partner-card {
  background:var(--bg-elevated); border:1.5px solid var(--border);
  border-radius:var(--radius-lg); padding:32px 20px;
  display:flex; flex-direction:column; align-items:center; gap:14px;
  text-align:center; transition:all var(--transition); box-shadow:var(--shadow-sm);
}
.partner-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:var(--border-gold); }
.partner-icon {
  width:66px; height:66px; border-radius:50%;
  background:var(--grad-green); color:var(--c-gold);
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:.9rem;
  box-shadow:0 4px 16px rgba(20,61,28,0.2);
}
.partner-card h3 { font-size:1rem; margin-bottom:2px; font-weight:700; }
.partner-card p { font-size:.84rem; color:var(--text-muted); margin:0; }

/* ========== FOOTER ========== */
.site-footer { background:#0a1a05 !important; color:#eef5f0; padding:0; width:100%; }
[data-theme="dark"] .site-footer { background:#060f03 !important; }
.footer-signature {
  text-align:center; padding:32px 28px;
  background:linear-gradient(135deg, rgba(232,160,32,0.08), rgba(20,61,28,0.5));
  border-bottom:1px solid rgba(232,160,32,0.2);
}
.footer-signature p {
  font-family:var(--font-display); font-size:1.1rem;
  color:var(--c-gold-light); font-style:italic; margin:0;
  font-weight:600; letter-spacing:.02em;
}
.footer-grid {
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr;
  gap:40px; padding:52px 0 48px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-grid h4 { color:var(--c-gold-light); font-size:.9rem; margin-bottom:18px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.footer-grid p,.footer-grid li,.footer-grid a { color:rgba(238,245,240,.65); font-size:.86rem; margin-bottom:9px; line-height:1.6; }
.footer-grid a:hover { color:var(--c-gold-light); }
.social-row { display:flex; gap:10px; margin-top:18px; }
.social-row a {
  width:36px; height:36px; border-radius:10px;
  border:1px solid rgba(255,255,255,.15);
  display:flex; align-items:center; justify-content:center;
  font-size:.82rem; transition:all var(--transition);
  background:rgba(255,255,255,.04);
}
.social-row a:hover { background:var(--c-gold); color:var(--c-green-900); border-color:var(--c-gold); transform:translateY(-2px); }
.footer-bottom {
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 0; font-size:.78rem; color:rgba(238,245,240,.4);
  flex-wrap:wrap; gap:10px;
}
.footer-mini { background:#0a1a05; color:#eef5f0; padding:30px 0; width:100%; }
.footer-mini-inner { display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; }
.footer-mini .sig { font-family:var(--font-display); font-size:1rem; color:var(--c-gold-light); font-style:italic; font-weight:600; }
.footer-mini .copy { font-size:.76rem; color:rgba(238,245,240,.45); }
.cfd { display:grid; gap:10px; }
.cfd input,.cfd textarea {
  width:100%; padding:11px 14px; border-radius:10px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05); color:#fff;
  font-family:var(--font-body); font-size:.86rem;
  transition:border-color var(--transition);
}
.cfd input:focus,.cfd textarea:focus { outline:none; border-color:var(--c-gold); background:rgba(255,255,255,.08); }
.cfd input::placeholder,.cfd textarea::placeholder { color:rgba(238,245,240,.35); }

/* ========== PAGE HERO ========== */
.page-hero {
  padding:60px 0 40px;
  background:linear-gradient(135deg, var(--c-green-950) 0%, var(--c-green-900) 60%, var(--c-green-800) 100%);
  border-bottom:1px solid var(--border);
  position:relative; overflow:hidden;
}
.page-hero::before {
  content:""; position:absolute; top:-80px; right:-80px;
  width:300px; height:300px; border-radius:50%;
  background:radial-gradient(circle, rgba(232,160,32,0.12), transparent);
}
[data-theme="dark"] .page-hero { background:linear-gradient(135deg, #040d06 0%, #081510 60%, #0d1f12 100%); }
.page-hero h1 { font-size:clamp(1.8rem,4vw,2.8rem); font-weight:800; color:#fff !important; }
.breadcrumb { font-size:.82rem; color:rgba(255,255,255,.6); margin-bottom:12px; }
.breadcrumb a,.breadcrumb span { color:var(--c-gold-light); text-decoration:underline; cursor:pointer; }

/* ========== TEAM ========== */
.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.team-card {
  text-align:center; background:var(--bg-elevated);
  border:1.5px solid var(--border); border-radius:var(--radius-lg);
  padding:28px 20px; transition:all var(--transition); box-shadow:var(--shadow-sm);
}
.team-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:var(--border-gold); }
.team-photo { aspect-ratio:1/1; border-radius:50%; margin:0 auto 18px; max-width:110px; background-size:cover; background-position:center; }
.tp1{background:var(--grad-green);} .tp2{background:linear-gradient(135deg,#e8a020,#226031);}
.tp3{background:linear-gradient(135deg,#226031,#143d1c);} .tp4{background:linear-gradient(135deg,#1a4d24,#f3c266);}
.tp5{background:linear-gradient(135deg,#f3c266,#143d1c);} .tp6{background:linear-gradient(135deg,#143d1c,#226031);}
.team-card h3 { font-size:1rem; margin-bottom:5px; font-weight:700; }
.team-card p { font-size:.82rem; color:var(--c-gold); font-weight:600; margin:0; text-transform:uppercase; letter-spacing:.05em; font-size:.72rem; }

/* ========== TIMELINE ========== */
.timeline { display:grid; gap:28px; margin-top:30px; }
.timeline-item {
  display:grid; grid-template-columns:100px 1fr; gap:22px;
  padding-left:24px; border-left:3px solid rgba(232,160,32,.3);
  position:relative;
}
.timeline-item::before {
  content:""; position:absolute; left:-8px; top:6px;
  width:13px; height:13px; border-radius:50%;
  background:var(--grad-gold); border:3px solid var(--bg);
}
.timeline-year { font-family:var(--font-display); font-weight:800; font-size:1.3rem; color:var(--c-gold); }
.timeline-item h3 { font-size:1rem; margin-bottom:4px; font-weight:700; }
.timeline-item p { color:var(--text-muted); margin:0; font-size:.92rem; line-height:1.65; }

/* ========== VMV ========== */
.vmv-block { max-width:780px; margin:0 auto; }
.vmv-label {
  display:block; font-size:1.2rem; font-weight:800;
  font-family:var(--font-display); margin-bottom:12px;
  color:var(--c-green-900);
}
[data-theme="dark"] .vmv-label { color:var(--c-gold); }
.vmv-text { color:var(--text-muted); line-height:1.85; margin-bottom:36px; font-size:1rem; }
.valeurs-row { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:8px; }
.valeur-pill {
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 22px; border-radius:999px;
  border:1.5px solid var(--border-gold);
  background:rgba(232,160,32,.06); font-size:.9rem; font-weight:700;
  color:var(--c-green-900); transition:all var(--transition);
}
[data-theme="dark"] .valeur-pill { color:var(--c-gold-light); }
.valeur-pill::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--grad-gold); flex-shrink:0; }
.valeur-pill:hover { background:rgba(232,160,32,.12); transform:translateY(-2px); }

/* ========== EXPERTISES ========== */
.expertises-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.expertise-card {
  background:var(--bg-elevated); border:1.5px solid var(--border);
  border-radius:var(--radius-lg); padding:28px 22px;
  transition:all var(--transition); box-shadow:var(--shadow-sm);
  position:relative; overflow:hidden;
}
.expertise-card::after {
  content:""; position:absolute; bottom:0; left:0; right:0; height:3px;
  background:var(--grad-gold); transform:scaleX(0); transition:transform var(--transition);
  transform-origin:left;
}
.expertise-card:hover::after { transform:scaleX(1); }
.expertise-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:var(--border-gold); }
.exp-icon {
  width:46px; height:46px; border-radius:12px;
  background:var(--grad-green); color:var(--c-gold);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:16px; font-size:1.2rem;
  box-shadow:0 4px 12px rgba(20,61,28,0.2);
}
.expertise-card h3 { font-size:.98rem; margin-bottom:8px; font-weight:700; }
.expertise-card p { font-size:.86rem; color:var(--text-muted); margin:0; line-height:1.6; }

/* ========== PUBLICATIONS ========== */
.pub-list { display:grid; gap:18px; }
.pub-card {
  background:var(--bg-elevated); border:1.5px solid var(--border);
  border-radius:var(--radius-lg); overflow:hidden;
  transition:all var(--transition); box-shadow:var(--shadow-sm);
}
.pub-card:hover { box-shadow:var(--shadow-lg); border-color:var(--border-gold); }
.pub-card-header { display:flex; align-items:center; gap:18px; padding:20px 24px; }
.pub-icon {
  width:50px; height:50px; border-radius:12px; flex-shrink:0;
  background:var(--grad-green); color:var(--c-gold);
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:.72rem; letter-spacing:.04em;
}
.pub-info { flex:1; }
.pub-info h3 { font-size:1rem; margin-bottom:4px; font-weight:700; }
.pub-info p { font-size:.8rem; color:var(--text-muted); margin:0; }
.pub-toggle {
  display:inline-flex; align-items:center; gap:7px;
  padding:8px 18px; border-radius:999px;
  border:1.5px solid var(--border-gold);
  background:transparent; color:var(--c-gold);
  font-size:.78rem; font-weight:700; cursor:pointer;
  font-family:var(--font-body); transition:all var(--transition); flex-shrink:0;
}
.pub-toggle:hover,.pub-toggle.open { background:var(--grad-gold); color:var(--c-green-900); border-color:transparent; }
.pub-desc { padding:0 24px; max-height:0; overflow:hidden; transition:max-height .5s ease,padding .3s ease; }
.pub-desc.open { max-height:1000px; padding:0 24px 20px; }
.pub-desc p {
  font-size:.9rem; color:var(--text-muted); line-height:1.75; margin:0;
  padding:18px 20px; background:var(--bg-subtle); border-radius:var(--radius);
  border-left:4px solid var(--c-gold);
}
.pub-card-footer { display:flex; justify-content:flex-end; padding:12px 24px 20px; }

/* ========== MÉDIATHÈQUE ========== */
.media-section-title {
  font-size:1.15rem; font-weight:800; margin-bottom:24px;
  padding-bottom:12px; border-bottom:2px solid var(--border-gold);
  display:inline-block; color:var(--text);
}
.media-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:52px; }
.media-card {
  border-radius:var(--radius-lg); overflow:hidden;
  border:1.5px solid var(--border); background:var(--bg-elevated);
  cursor:pointer; transition:all var(--transition); box-shadow:var(--shadow-sm);
}
.media-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:var(--border-gold); }
.media-thumb {
  aspect-ratio:16/9; display:flex; align-items:center; justify-content:center;
  font-size:2rem; background-size:cover; background-position:center; position:relative;
}
.media-thumb::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 60%);
}
.mth1{background:linear-gradient(135deg,#143d1c,#e8a020);}
.mth2{background:linear-gradient(135deg,#226031,#143d1c);}
.mth3{background:linear-gradient(135deg,#e8a020,#226031);}
.mth4{background:linear-gradient(135deg,#1a4d24,#f3c266);}
.mth5{background:linear-gradient(135deg,#143d1c,#226031);}
.mth6{background:linear-gradient(135deg,#f3c266,#143d1c);}
.media-body { padding:14px 16px 18px; }
.media-body h3 { font-size:.92rem; margin-bottom:4px; font-weight:700; }
.media-body p { font-size:.8rem; color:var(--text-muted); margin:0; }
.photo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.photo-card {
  border-radius:var(--radius); overflow:hidden;
  border:1.5px solid var(--border); cursor:pointer;
  transition:all var(--transition); box-shadow:var(--shadow-sm);
}
.photo-card:hover { transform:scale(1.04); box-shadow:var(--shadow-lg); border-color:var(--border-gold); }
.photo-thumb {
  aspect-ratio:1/1; display:flex; align-items:center;
  justify-content:center; font-size:1.4rem;
  background-size:cover; background-position:center;
}
.ph1{background:linear-gradient(135deg,#143d1c,#e8a020);} .ph2{background:linear-gradient(135deg,#226031,#143d1c);}
.ph3{background:linear-gradient(135deg,#e8a020,#1a4d24);} .ph4{background:linear-gradient(135deg,#f3c266,#143d1c);}
.ph5{background:linear-gradient(135deg,#143d1c,#f3c266);} .ph6{background:linear-gradient(135deg,#1a4d24,#e8a020);}
.ph7{background:linear-gradient(135deg,#e8a020,#226031);} .ph8{background:linear-gradient(135deg,#143d1c,#226031);}
.photo-card p { font-size:.76rem; color:var(--text-muted); margin:0; padding:8px 11px; }

/* ========== CONTACT ========== */
.contact-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:44px; align-items:start; }
.contact-info li {
  display:flex; align-items:flex-start; gap:14px;
  padding:14px 0; border-bottom:1px solid var(--border);
  font-size:.92rem; color:var(--text-muted);
}
.contact-info li span.ico { font-size:1.1rem; flex-shrink:0; margin-top:2px; }
.cfl {
  display:grid; gap:14px;
  background:var(--bg-elevated); border:1.5px solid var(--border);
  border-radius:var(--radius-lg); padding:32px;
  box-shadow:var(--shadow);
}
.cfl h3 { margin-bottom:3px; font-weight:700; font-size:1.25rem; }
.cfl input,.cfl textarea {
  width:100%; padding:13px 16px; border-radius:var(--radius-sm);
  border:1.5px solid var(--border); background:var(--bg);
  color:var(--text); font-family:var(--font-body); font-size:.9rem;
  transition:border-color var(--transition);
}
.cfl input:focus,.cfl textarea:focus { outline:none; border-color:var(--c-gold); box-shadow:0 0 0 3px rgba(232,160,32,0.1); }

/* ========== SHORTCODE SLIDER ========== */
.cedem-slider { position:relative; overflow:hidden; border-radius:var(--radius-lg); }
.cedem-slider__track { position:relative; width:100%; height:100%; }
.cedem-slider__slide { position:absolute; inset:0; opacity:0; transition:opacity .8s ease; background-size:cover; background-position:center; display:flex; align-items:flex-end; }
.cedem-slider__slide.active { opacity:1; }
.cedem-slider__slide::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(8,21,16,.75) 0%,transparent 65%); }
.cedem-slider__caption { position:relative; z-index:2; padding:26px 30px; color:#fff; }
.cedem-slider__caption h3 { font-size:1.2rem; color:#fff; margin-bottom:5px; }
.cedem-slider__caption p { font-size:.9rem; color:rgba(255,255,255,.82); margin:0; }
.cedem-slider__btn { position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:42px; height:42px; border-radius:12px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); color:#fff; cursor:pointer; font-size:1.2rem; display:flex; align-items:center; justify-content:center; backdrop-filter:blur(8px); transition:all var(--transition); }
.cedem-slider__btn:hover { background:rgba(232,160,32,.45); border-color:var(--c-gold); }
.cedem-slider__btn--prev { left:16px; } .cedem-slider__btn--next { right:16px; }
.cedem-slider__dots { position:absolute; bottom:14px; left:50%; transform:translateX(-50%); display:flex; gap:7px; z-index:3; }
.cedem-slider__dot { width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.4); border:none; cursor:pointer; padding:0; transition:all .3s; }
.cedem-slider__dot.active { background:var(--c-gold); width:20px; border-radius:6px; }
.cedem-slider-empty { padding:28px; background:var(--bg-subtle); border:2px dashed var(--border-gold); border-radius:var(--radius-lg); text-align:center; color:var(--text-muted); }
.cedem-contact-form { display:grid; gap:14px; }
.cedem-contact-form input,.cedem-contact-form textarea { width:100%; padding:12px 15px; border-radius:var(--radius-sm); border:1.5px solid var(--border); background:var(--bg); color:var(--text); font-family:var(--font-body); font-size:.9rem; }
.cedem-contact-form input:focus,.cedem-contact-form textarea:focus { outline:none; border-color:var(--c-gold); }

/* Logo images */
.cedem-logo-img { height:50px !important; width:auto !important; display:block; }
.cedem-logo-sombre { display:none; }
[data-theme="dark"] .cedem-logo-clair { display:none; }
[data-theme="dark"] .cedem-logo-sombre { display:block; }
.custom-logo { height:50px !important; width:auto !important; }

/* ========== RESPONSIVE ========== */
@media(max-width:1100px) {
  .main-nav>ul>li>a { padding:8px 7px; font-size:.74rem; }
}
@media(max-width:980px) {
  .news-grid { grid-template-columns:repeat(2,1fr); }
  .prog-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .team-grid { grid-template-columns:repeat(2,1fr); }
  .media-grid { grid-template-columns:repeat(2,1fr); }
  .photo-grid { grid-template-columns:repeat(3,1fr); }
  .expertises-grid { grid-template-columns:1fr 1fr; }
  .partners-page-grid { grid-template-columns:repeat(2,1fr); }
  .contact-grid { grid-template-columns:1fr; }
}
@media(max-width:760px) {
  .main-nav { position:fixed; top:68px; left:0; right:0; bottom:0; background:var(--bg-alt); flex-direction:column; padding:24px; transform:translateX(100%); transition:transform .3s cubic-bezier(.4,0,.2,1); overflow-y:auto; z-index:199; }
  .main-nav.open { transform:translateX(0); }
  .main-nav>ul { flex-direction:column; align-items:stretch; width:100%; }
  .main-nav>ul>li>a { font-size:.92rem; padding:13px 16px; border-radius:12px; }
  .sub-menu,.submenu { position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; display:none; margin:6px 0 0 16px; border:1px solid var(--border); }
  .main-nav>ul>li.mob-open .sub-menu,.main-nav>ul>li.mob-open .submenu { display:block; }
  .nav-toggle { display:block; }
  .news-grid,.footer-grid,.photo-grid { grid-template-columns:1fr; }
  .expertises-grid,.team-grid { grid-template-columns:1fr; }
  .timeline-item { grid-template-columns:1fr; }
  .partners-page-grid { grid-template-columns:1fr; }
  .media-grid { grid-template-columns:1fr; }
  .hero { min-height:85vh; }
  .section { padding:64px 0; }
  .hero-content { padding:0 20px 90px; }
  .prog-card { grid-template-columns:100px 1fr; }
}

/* ========== MODE SOMBRE — overrides complets ========== */
[data-theme="dark"] body { background:var(--bg); color:var(--text); }

/* Header */
[data-theme="dark"] .site-header { background:rgba(8,21,16,0.96); border-bottom-color:rgba(232,160,32,0.12); }
[data-theme="dark"] .tool-btn { background:var(--bg-elevated); border-color:rgba(232,160,32,0.2); color:var(--text); }
[data-theme="dark"] .nav-toggle { background:var(--bg-elevated); border-color:rgba(232,160,32,0.2); color:var(--text); }
[data-theme="dark"] .lang-switch { background:var(--bg-elevated); border-color:rgba(232,160,32,0.2); }
[data-theme="dark"] .main-nav>ul>li>a { color:var(--text-muted); }

/* Sous-menu sombre */
[data-theme="dark"] .sub-menu,
[data-theme="dark"] .submenu { background:var(--bg-elevated); border-color:rgba(232,160,32,0.15); }
[data-theme="dark"] .sub-menu li a,
[data-theme="dark"] .submenu li a { color:var(--text-muted); }

/* Titres */
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4 { color:var(--text); }
[data-theme="dark"] .hero-content h1 { color:#ffffff !important; }
[data-theme="dark"] .page-hero h1 { color:#ffffff !important; }

/* Sections */
[data-theme="dark"] .section-alt { background:var(--bg-alt); }
[data-theme="dark"] .section-subtle { background:var(--bg-subtle); }

/* Cards actualités */
[data-theme="dark"] .news-card { background:var(--bg-elevated); border-color:rgba(232,160,32,0.12); }
[data-theme="dark"] .news-card:hover { border-color:rgba(232,160,32,0.3); }
[data-theme="dark"] .news-body h3 { color:var(--text); }
[data-theme="dark"] .news-body p { color:var(--text-muted); }
[data-theme="dark"] .news-link { color:var(--c-gold-light); }

/* Cards programmes */
[data-theme="dark"] .prog-card { background:var(--bg-elevated); border-color:rgba(232,160,32,0.12); }
[data-theme="dark"] .prog-card:hover { border-color:rgba(232,160,32,0.3); }
[data-theme="dark"] .prog-card h3 { color:var(--text); }
[data-theme="dark"] .prog-card p { color:var(--text-muted); }

/* Partenaires */
[data-theme="dark"] .partner-logo { background:var(--bg-elevated); border-color:rgba(232,160,32,0.12); color:var(--text-muted); }
[data-theme="dark"] .partner-logo:hover { border-color:var(--c-gold); color:var(--c-gold); }
[data-theme="dark"] .partner-card { background:var(--bg-elevated); border-color:rgba(232,160,32,0.12); }
[data-theme="dark"] .partner-card h3 { color:var(--text); }
[data-theme="dark"] .partner-card p { color:var(--text-muted); }

/* Team */
[data-theme="dark"] .team-card { background:var(--bg-elevated); border-color:rgba(232,160,32,0.12); }
[data-theme="dark"] .team-card h3 { color:var(--text); }

/* Expertises */
[data-theme="dark"] .expertise-card { background:var(--bg-elevated); border-color:rgba(232,160,32,0.12); }
[data-theme="dark"] .expertise-card h3 { color:var(--text); }
[data-theme="dark"] .expertise-card p { color:var(--text-muted); }

/* Publications */
[data-theme="dark"] .pub-card { background:var(--bg-elevated); border-color:rgba(232,160,32,0.12); }
[data-theme="dark"] .pub-info h3 { color:var(--text); }
[data-theme="dark"] .pub-info p { color:var(--text-muted); }
[data-theme="dark"] .pub-desc p { background:var(--bg-subtle); border-left-color:var(--c-gold); color:var(--text-muted); }

/* Médias */
[data-theme="dark"] .media-card { background:var(--bg-elevated); border-color:rgba(232,160,32,0.12); }
[data-theme="dark"] .media-body h3 { color:var(--text); }
[data-theme="dark"] .media-body p { color:var(--text-muted); }
[data-theme="dark"] .photo-card { border-color:rgba(232,160,32,0.12); }
[data-theme="dark"] .photo-card p { color:var(--text-muted); }

/* Valeurs */
[data-theme="dark"] .valeur-pill { background:rgba(232,160,32,0.08); border-color:rgba(232,160,32,0.25); color:var(--c-gold-light); }

/* Timeline */
[data-theme="dark"] .timeline-item { border-left-color:rgba(232,160,32,0.3); }
[data-theme="dark"] .timeline-item::before { background:var(--grad-gold); border-color:var(--bg); }
[data-theme="dark"] .timeline-item h3 { color:var(--text); }
[data-theme="dark"] .timeline-item p { color:var(--text-muted); }

/* Contact */
[data-theme="dark"] .cfl { background:var(--bg-elevated); border-color:rgba(232,160,32,0.15); }
[data-theme="dark"] .cfl h3 { color:var(--text); }
[data-theme="dark"] .cfl input,
[data-theme="dark"] .cfl textarea { background:var(--bg); color:var(--text); border-color:rgba(232,160,32,0.15); }
[data-theme="dark"] .cfl input:focus,
[data-theme="dark"] .cfl textarea:focus { border-color:var(--c-gold); }
[data-theme="dark"] .contact-info li { color:var(--text-muted); border-bottom-color:rgba(232,160,32,0.1); }

/* Boutons mode sombre */
[data-theme="dark"] .btn-outline { border-color:rgba(232,160,32,0.4); color:var(--c-gold); }
[data-theme="dark"] .btn-outline:hover { background:rgba(232,160,32,0.1); }

/* Breadcrumb sombre */
[data-theme="dark"] .breadcrumb { color:rgba(255,255,255,0.55); }
[data-theme="dark"] .breadcrumb a,
[data-theme="dark"] .breadcrumb span { color:var(--c-gold-light); }

/* Section head sombre */
[data-theme="dark"] .section-head p { color:var(--text-muted); }
[data-theme="dark"] .vmv-label { color:var(--c-gold); }
[data-theme="dark"] .vmv-text { color:var(--text-muted); }
[data-theme="dark"] .media-section-title { color:var(--text); }

/* Page hero sombre */
[data-theme="dark"] .page-hero { background:linear-gradient(135deg,#040d06 0%,#081510 60%,#0d1f12 100%); }

/* Slider shortcode sombre */
[data-theme="dark"] .cedem-slider-empty { background:var(--bg-subtle); }

/* Police forcée partout */
html, body, * { font-family:var(--font-body); }
h1,h2,h3,h4,h5,.btn,.eyebrow,.logo-mark,
.nav,.main-nav,.lang-btn,.vmv-label,
.news-date,.prog-badge,.timeline-year,
.section-head h2,.page-hero h1 { font-family:var(--font-display); }

/* ===== LOGOS FOOTER — switch selon thème ===== */
.footer-logo-sombre { display: none; }
.footer-logo-clair  { display: block; }
[data-theme="dark"] .footer-logo-clair  { display: none; }
[data-theme="dark"] .footer-logo-sombre { display: block; }

/* ========== PROGRAMMES PAGE — GRILLE TOP ========== */
.progs-full-grid {
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
}
.prog-full-card {
  display:flex;flex-direction:column;
  background:var(--bg-elevated);border:1.5px solid var(--border);
  border-radius:var(--radius-lg);overflow:hidden;
  text-decoration:none;color:inherit;cursor:pointer;
  transition:all var(--transition);box-shadow:var(--shadow-sm);
}
.prog-full-card:hover { transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--border-gold); }
.prog-full-thumb { position:relative;aspect-ratio:16/9;overflow:hidden; }
.prog-full-img { width:100%;height:100%;background-size:cover;background-position:center;transition:transform .4s ease; }
.prog-full-card:hover .prog-full-img { transform:scale(1.06); }
.prog-full-badge-wrap { position:absolute;top:12px;left:12px;z-index:2; }
.prog-full-icons { position:absolute;top:12px;right:12px;display:flex;gap:6px;z-index:2; }
.prog-full-icons span { width:30px;height:30px;border-radius:8px;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;font-size:.85rem; }
.prog-full-body { padding:20px 22px 24px;display:flex;flex-direction:column;flex:1; }
.prog-full-body h3 { font-size:1rem;font-weight:700;margin-bottom:10px;line-height:1.4;color:var(--text); }
.prog-full-body p { font-size:.88rem;color:var(--text-muted);line-height:1.65;flex:1;margin:0 0 14px; }
.prog-full-cta { font-size:.82rem;font-weight:700;color:var(--c-green-700);transition:color var(--transition); }
[data-theme="dark"] .prog-full-cta { color:var(--c-gold-light); }
.prog-full-card:hover .prog-full-cta { color:var(--c-gold); }

/* Badge actif */
.badge-active { background:rgba(76,175,80,.12);color:#2e7d32;border:1px solid rgba(76,175,80,.25); }
[data-theme="dark"] .badge-active { color:#81c784;background:rgba(76,175,80,.1); }

/* Cartes accueil cliquables */
.prog-card-link { text-decoration:none;color:inherit;cursor:pointer; }
.prog-card-link:hover { transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--border-gold); }
.prog-link-more { display:inline-block;margin-top:10px;font-size:.78rem;font-weight:700;color:var(--c-green-700); }
[data-theme="dark"] .prog-link-more { color:var(--c-gold-light); }

/* ========== SINGLE PROGRAMME ========== */
.single-prog-layout { display:grid;grid-template-columns:1fr 300px;gap:36px;align-items:start; }
.single-prog-hero-img { width:100%;aspect-ratio:16/9;border-radius:var(--radius-lg);background-size:cover;background-position:center;margin-bottom:28px; }
.single-prog-content { font-size:1rem;line-height:1.8;color:var(--text-muted); }
.single-prog-video { margin-top:36px; }
.video-wrapper { position:relative;padding-bottom:56.25%;height:0;border-radius:var(--radius);overflow:hidden; }
.video-wrapper iframe { position:absolute;inset:0;width:100%;height:100%;border:none; }
.sidebar-card { background:var(--bg-elevated);border:1.5px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:18px; }
.sidebar-card h4 { font-size:.92rem;margin-bottom:10px;font-weight:700; }
.prog-badge { display:inline-flex;align-items:center; }

@media(max-width:980px) {
  .progs-full-grid { grid-template-columns:repeat(2,1fr); }
  .single-prog-layout { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .progs-full-grid { grid-template-columns:1fr; }
}

/* ========== PAGE PROGRAMMES — DESIGN MODERNE ========== */
.prog-hero { position:relative; overflow:hidden; }
.prog-hero::after {
  content:""; position:absolute; bottom:0; left:0; right:0; height:120px;
  background:linear-gradient(to bottom, transparent, var(--bg));
  pointer-events:none;
}
[data-theme="dark"] .prog-hero::after { background:linear-gradient(to bottom, transparent, var(--bg)); }

.prog-hero-stats {
  display:inline-flex; align-items:center; gap:10px;
  margin-top:20px; padding:8px 20px;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2);
  border-radius:999px; backdrop-filter:blur(8px);
  font-size:.82rem; font-weight:700; color:#fff;
}

/* Grille masonry */
.progs-masonry {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:auto;
  gap:24px;
}

/* Le premier programme prend 2 colonnes */
.prog-featured {
  grid-column:1/3;
}

/* Carte moderne */
.prog-modern-card {
  display:flex; flex-direction:column;
  background:var(--bg-elevated);
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  text-decoration:none; color:inherit; cursor:pointer;
  transition:all var(--transition);
  box-shadow:var(--shadow-sm);
}
.prog-modern-card:hover {
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
  border-color:var(--border-gold);
}

/* Image wrap */
.prog-modern-img-wrap {
  position:relative;
  overflow:hidden;
}
.prog-featured .prog-modern-img-wrap { aspect-ratio:16/7; }
.prog-modern-card:not(.prog-featured) .prog-modern-img-wrap { aspect-ratio:16/9; }

.prog-modern-img {
  width:100%; height:100%;
  background-size:cover; background-position:center;
  transition:transform .5s ease;
}
.prog-modern-card:hover .prog-modern-img { transform:scale(1.06); }

.prog-modern-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.1) 0%, rgba(0,0,0,.6) 100%);
  transition:opacity var(--transition);
}
.prog-modern-card:not(.prog-featured) .prog-modern-overlay {
  background:linear-gradient(to bottom, transparent 30%, rgba(0,0,0,.45) 100%);
}

/* Badges et icônes flottants */
.prog-modern-top {
  position:absolute; top:14px; left:14px; right:14px;
  display:flex; justify-content:space-between; align-items:flex-start;
  z-index:3;
}
.prog-float-badge {
  font-size:.7rem; font-weight:800; padding:4px 12px; border-radius:999px;
  letter-spacing:.06em; text-transform:uppercase;
}
.prog-float-icons { display:flex; gap:6px; }
.prog-float-icons span {
  width:30px; height:30px; border-radius:8px;
  background:rgba(0,0,0,.4); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center;
  font-size:.82rem; color:#fff;
}

/* Titre sur l'image (featured) */
.prog-modern-title-overlay {
  position:absolute; bottom:0; left:0; right:0;
  padding:28px 32px; z-index:3;
}
.prog-category-tag {
  display:inline-block; font-size:.7rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--c-gold-light); margin-bottom:10px;
}
.prog-modern-title-overlay h2 {
  font-size:clamp(1.4rem,2.5vw,2rem); color:#fff !important;
  font-weight:800; margin-bottom:10px; line-height:1.2;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
}
.prog-modern-title-overlay p {
  font-size:.92rem; color:rgba(255,255,255,.82);
  margin-bottom:16px; line-height:1.65;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.prog-modern-btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 22px; border-radius:999px;
  background:var(--grad-gold); color:var(--c-green-900);
  font-weight:700; font-size:.84rem; font-family:var(--font-display);
  transition:all var(--transition);
}
.prog-modern-card:hover .prog-modern-btn {
  box-shadow:0 6px 20px rgba(232,160,32,.4);
  transform:translateX(4px);
}

/* Corps des cartes non-featured */
.prog-modern-body {
  padding:20px 22px 24px;
  display:flex; flex-direction:column; flex:1;
}
.prog-modern-body h3 {
  font-size:1rem; font-weight:700; margin-bottom:8px;
  line-height:1.4; color:var(--text);
}
.prog-modern-body p {
  font-size:.87rem; color:var(--text-muted);
  line-height:1.65; flex:1; margin:0 0 14px;
}
.prog-modern-cta {
  font-size:.82rem; font-weight:700;
  color:var(--c-green-700); transition:color var(--transition);
}
[data-theme="dark"] .prog-modern-cta { color:var(--c-gold-light); }
.prog-modern-card:hover .prog-modern-cta { color:var(--c-gold); }

/* Responsive */
@media(max-width:980px) {
  .progs-masonry { grid-template-columns:1fr 1fr; }
  .prog-featured { grid-column:1/3; }
}
@media(max-width:600px) {
  .progs-masonry { grid-template-columns:1fr; }
  .prog-featured { grid-column:1/2; }
  .prog-modern-title-overlay { padding:20px; }
  .prog-modern-title-overlay h2 { font-size:1.3rem; }
}

/* ========== GROUPES DE PHOTOS ========== */
.photo-groupe-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:18px; padding-bottom:14px;
  border-bottom:2px solid var(--border-gold);
  flex-wrap:wrap; gap:12px;
}
.photo-groupe-titre {
  font-size:1.15rem; font-weight:800; margin:0 0 4px;
  color:var(--text); font-family:var(--font-display);
}
.photo-groupe-count {
  font-size:.8rem; color:var(--text-muted); font-weight:600;
}

/* ========== PUBLICATIONS — VOIR PLUS ========== */
.pub-list { display:grid; gap:18px; }

  transition:max-height .4s ease, padding .3s ease;
}

/* ========== MÉDIATHÈQUE — DESIGN AMÉLIORÉ ========== */
.media-section-header { margin-bottom:24px; }

/* Vidéos */
.video-play-btn {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:52px; height:52px; border-radius:50%;
  background:rgba(232,160,32,.9);
  color:var(--c-green-900);
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem; z-index:3;
  transition:transform var(--transition), background var(--transition);
}
.media-thumb { position:relative; }
.media-card:hover .video-play-btn { transform:translate(-50%,-50%) scale(1.1); background:var(--c-gold); }
.media-link { font-size:.78rem; font-weight:700; color:var(--c-green-700); margin-top:8px; display:block; }
[data-theme="dark"] .media-link { color:var(--c-gold-light); }

/* Groupes de photos */
.photo-groupe-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:18px; padding-bottom:14px;
  border-bottom:2px solid var(--border-gold);
  flex-wrap:wrap; gap:12px;
}
.photo-groupe-titre { font-size:1.15rem; font-weight:800; margin:0 0 4px; }
.photo-groupe-count { font-size:.8rem; color:var(--text-muted); font-weight:600; }

/* Photo card avec overlay téléchargement */
.photo-thumb-wrap { position:relative; overflow:hidden; border-radius:var(--radius-sm); }
.photo-overlay {
  position:absolute; inset:0;
  background:rgba(14,24,18,.65);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity var(--transition);
}
.photo-card:hover .photo-overlay { opacity:1; }
.photo-dl-btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 18px; border-radius:999px;
  background:var(--c-gold); color:var(--c-green-900);
  font-size:.8rem; font-weight:700;
  text-decoration:none; transition:transform var(--transition);
}
.photo-dl-btn:hover { transform:scale(1.05); }

/* Photo grid */
.photo-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:14px;
}
.photo-card { border-radius:var(--radius); overflow:hidden; border:1.5px solid var(--border); cursor:pointer; transition:all var(--transition); box-shadow:var(--shadow-sm); }
.photo-card:hover { transform:scale(1.03); box-shadow:var(--shadow-lg); border-color:var(--border-gold); }
.photo-thumb { aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; font-size:1.4rem; background-size:cover; background-position:center; }
.photo-card p { font-size:.74rem; color:var(--text-muted); margin:0; padding:8px 10px; background:var(--bg-elevated); }

@media(max-width:980px) { .photo-grid { grid-template-columns:repeat(3,1fr); } }
@media(max-width:600px) { .photo-grid { grid-template-columns:repeat(2,1fr); } .media-grid { grid-template-columns:1fr; } }

/* ========== RECHERCHE (header) ========== */
.cedem-search { position:relative; display:flex; align-items:center; }
.cedem-search-form {
  position:absolute; top:50%; right:0; transform:translateY(-50%) scaleX(0);
  transform-origin:right center; opacity:0; pointer-events:none;
  display:flex; align-items:center; gap:0;
  background:var(--bg-subtle); border:1.5px solid var(--border);
  border-radius:999px; overflow:hidden; z-index:20;
  transition:transform var(--transition), opacity var(--transition);
}
.cedem-search.open .cedem-search-form {
  transform:translateY(-50%) scaleX(1); opacity:1; pointer-events:auto;
}
.cedem-search-input {
  width:220px; max-width:48vw; border:none; background:transparent;
  padding:9px 4px 9px 16px; font-size:.85rem; color:var(--text);
  font-family:var(--font-body); outline:none;
}
.cedem-search-input::placeholder { color:var(--text-muted); }
.cedem-search-submit {
  border:none; background:var(--grad-green); color:#fff;
  width:34px; height:34px; margin:2px; border-radius:999px;
  cursor:pointer; font-size:1rem; display:flex; align-items:center; justify-content:center;
  flex-shrink:0; transition:opacity var(--transition);
}
.cedem-search-submit:hover { opacity:.85; }
[data-theme="dark"] .cedem-search-form { background:var(--bg-elevated); border-color:rgba(232,160,32,0.2); }
[data-theme="dark"] .cedem-search-submit { background:var(--grad-gold); color:var(--c-green-900); }
@media (max-width:760px) {
  .cedem-search-form { position:fixed; top:70px; left:12px; right:12px; transform:none; scaleX:1; }
  .cedem-search.open .cedem-search-form { transform:none; }
  .cedem-search-input { width:100%; max-width:none; }
}

/* ========== PAGE DE RESULTATS DE RECHERCHE ========== */
.search-page-form {
  display:flex; gap:10px; margin-bottom:36px;
}
.search-page-form input[type="search"] {
  flex:1; padding:14px 18px; border-radius:var(--radius);
  border:1.5px solid var(--border); background:var(--bg-subtle);
  color:var(--text); font-family:var(--font-body); font-size:.95rem; outline:none;
}
.search-page-form input[type="search"]:focus { border-color:var(--c-gold); }
.search-page-form button {
  padding:14px 26px; border:none; border-radius:var(--radius);
  background:var(--grad-green); color:#fff; font-weight:700; cursor:pointer;
  font-family:var(--font-display); transition:opacity var(--transition);
}
[data-theme="dark"] .search-page-form button { background:var(--grad-gold); color:var(--c-green-900); }
.search-page-form button:hover { opacity:.88; }

.search-results-list { display:flex; flex-direction:column; gap:14px; }
.search-result-card {
  display:flex; align-items:center; gap:16px;
  background:var(--bg-card); border:1.5px solid var(--border);
  border-radius:var(--radius); padding:14px 18px;
  transition:all var(--transition); text-decoration:none; color:var(--text);
}
.search-result-card:hover { border-color:var(--c-gold); transform:translateY(-2px); box-shadow:var(--shadow-md,0 8px 20px rgba(0,0,0,.08)); }
.search-result-thumb {
  width:56px; height:56px; border-radius:12px; flex-shrink:0;
  background-size:cover; background-position:center;
  background:var(--grad-green);
}
.search-result-thumb-fallback {
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:800; font-size:.85rem; font-family:var(--font-display);
}
[data-theme="dark"] .search-result-thumb-fallback { background:var(--grad-gold); color:var(--c-green-900); }
.search-result-body { flex:1; min-width:0; }
.search-result-label {
  display:inline-block; color:var(--c-gold); font-weight:700; font-size:.7rem;
  text-transform:uppercase; letter-spacing:.05em; margin-bottom:3px;
}
.search-result-body h3 { margin:0 0 4px; font-size:1rem; }
.search-result-body p {
  margin:0; color:var(--text-muted); font-size:.85rem; line-height:1.5;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.search-result-arrow { color:var(--c-gold); font-size:1.2rem; flex-shrink:0; }

/* Surlignage temporaire de l'élément trouvé via la recherche */
@keyframes cedemHighlightPulse {
  0%   { box-shadow:0 0 0 0 rgba(212,160,32,.6); }
  70%  { box-shadow:0 0 0 14px rgba(212,160,32,0); }
  100% { box-shadow:0 0 0 0 rgba(212,160,32,0); }
}
.cedem-highlight {
  outline:3px solid var(--c-gold) !important;
  outline-offset:3px;
  animation:cedemHighlightPulse 1.4s ease-out 2;
  border-radius:var(--radius);
}

/* ========== SELECTEUR DE LANGUE (TranslatePress) ========== */
.cedem-lang-switcher {
  display:flex; align-items:center;
}
.cedem-lang-switcher .trp-language-switch-container,
.cedem-lang-switcher select,
.cedem-lang-switcher ul {
  font-family:var(--font-display) !important;
  font-size:.8rem !important;
}
.cedem-lang-switcher select {
  border:1.5px solid var(--border) !important;
  border-radius:999px !important;
  background:var(--bg-subtle) !important;
  color:var(--text) !important;
  padding:7px 14px !important;
  cursor:pointer;
}
[data-theme="dark"] .cedem-lang-switcher select {
  background:var(--bg-elevated) !important;
  border-color:rgba(232,160,32,0.2) !important;
}

/* ========== HIÉRARCHIE NAVIGATION ========== */

/* Pages principales — style normal */
.main-nav > ul > li > a {
  font-size: .78rem;
  font-weight: 600;
  color: var(--text-muted);
}

/* Sous-pages (li dans un ul.submenu/sub-menu) */
.main-nav .submenu li a,
.main-nav .sub-menu li a {
  font-size: .84rem;
  font-weight: 500;
  color: var(--text-muted);
  border-left: 3px solid transparent;
  padding-left: 14px !important;
  transition: border-color var(--transition), color var(--transition), background var(--transition);
}
.main-nav .submenu li a:hover,
.main-nav .sub-menu li a:hover {
  border-left-color: var(--c-gold);
  color: var(--c-green-900);
  background: var(--c-green-100);
}
[data-theme="dark"] .main-nav .submenu li a:hover,
[data-theme="dark"] .main-nav .sub-menu li a:hover {
  color: var(--c-gold);
  background: rgba(232,160,32,.08);
  border-left-color: var(--c-gold);
}

/* ========== HIÉRARCHIE TITRES — PAGE vs SOUS-PAGE ========== */

/* Page principale : H1 grand et vert */
.page-hero h1 {
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 800;
  color: #fff !important;
  letter-spacing: -.02em;
}

/* Sous-page (single programme, single article...) : H1 plus petit avec badge */
.subpage-hero h1,
.single-prog-layout h1 {
  font-size: clamp(1.4rem, 3vw, 2rem) !important;
  font-weight: 700;
  color: #fff !important;
}

/* Breadcrumb différenciation */
.breadcrumb a {
  color: var(--c-gold-light);
  font-weight: 600;
  font-size: .82rem;
}
.breadcrumb strong {
  color: #fff;
  font-weight: 400;
  font-size: .82rem;
}

/* Titres dans le contenu — hiérarchie claire */
.single-prog-content h1 { font-size: 1.8rem; color: var(--text); }
.single-prog-content h2 { font-size: 1.4rem; color: var(--c-green-700); border-left: 4px solid var(--c-gold); padding-left: 12px; margin: 28px 0 12px; }
.single-prog-content h3 { font-size: 1.1rem; color: var(--text); margin: 20px 0 8px; }
[data-theme="dark"] .single-prog-content h2 { color: var(--c-gold-light); }

/* Différenciation menu principal vs sous-menu */
.main-nav > ul > li {
  position: relative;
}
.main-nav > ul > li.menu-item-has-children > a::after {
  content: "▾";
  font-size: .6em;
  margin-left: 3px;
  opacity: .5;
}

/* Indicateur page active dans nav */
.main-nav > ul > li.current-menu-item > a,
.main-nav > ul > li.current-menu-ancestor > a {
  color: var(--c-green-900) !important;
  background: var(--c-green-100) !important;
  font-weight: 700 !important;
}
[data-theme="dark"] .main-nav > ul > li.current-menu-item > a,
[data-theme="dark"] .main-nav > ul > li.current-menu-ancestor > a {
  color: var(--c-gold) !important;
  background: rgba(232,160,32,.1) !important;
}

/* Sous-pages dans submenu — badge visuel */
.submenu .current-menu-item a,
.sub-menu .current-menu-item a {
  color: var(--c-green-900) !important;
  border-left-color: var(--c-gold) !important;
  font-weight: 700 !important;
}

/* ========== PUB DESC FIX ========== */
  max-height: 400px;
  padding: 0 24px 20px;
}

/* ========== SINGLE PROGRAMME — TITRE HIÉRARCHISÉ ========== */
.single-prog-hero .breadcrumb { margin-bottom: 16px; }
.single-prog-titre {
  font-size: clamp(1.2rem, 2.5vw, 1.7rem) !important;
  font-weight: 700 !important;
  color: var(--c-gold-light) !important;
  line-height: 1.3 !important;
  max-width: 780px;
  text-shadow: 0 2px 8px rgba(0,0,0,.3);
}



/* ========== BOUTONS ACTION PROGRAMME ========== */
.prog-action-btns {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid var(--border);
}

.prog-btn-pub {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 28px;
  border-radius: 999px;
  background: #1a3d0a;
  color: #d4a020;
  font-weight: 700;
  font-size: .92rem;
  text-decoration: none;
  font-family: var(--font-display);
  transition: all var(--transition);
  box-shadow: 0 4px 14px rgba(20,61,28,.25);
}

.prog-btn-pub:hover {
  background: #226031;
  color: #f3c266;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(20,61,28,.35);
}

.prog-btn-contact {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 28px;
  border-radius: 999px;
  background: #d4a020;
  color: #1a3d0a;
  font-weight: 700;
  font-size: .92rem;
  text-decoration: none;
  font-family: var(--font-display);
  transition: all var(--transition);
  box-shadow: 0 4px 14px rgba(212,160,32,.3);
}

.prog-btn-contact:hover {
  background: #f3c266;
  color: #0a2410;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(212,160,32,.4);
}
