/*
Theme Name:        GMV – Grande Muraille Verte
Theme URI:         https://www.grandemurailleverte.org
Author:            Agence Panafricaine GMV
Author URI:        https://www.grandemurailleverte.org
Description:       Thème officiel de l'Agence Panafricaine de la Grande Muraille Verte. Design institutionnel vert, responsive, compatible Gutenberg, avec zones de widgets sidebar agenda, opportunités, carte interactive, section statistiques et plateformes d'accès rapide.
Version:           1.0.0
Requires at least: 6.0
Tested up to:      6.7
Requires PHP:      8.0
License:           GNU General Public License v2 or later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       gmv-theme
Tags:              custom-colors, custom-menu, featured-images, footer-widgets, full-width-template, sticky-post, translation-ready, blog, green, institutional

/* ============================================================
   GMV THEME – Main Styles
   Grande Muraille Verte – WordPress Theme
   ============================================================ */

/* ---- CSS Variables ---- */
:root {
  --gmv-primary:   #1e6b3c;
  --gmv-secondary: #2d9e5f;
  --gmv-accent:    #52c17d;
  --gmv-gold:      #d4a843;
  --gmv-dark:      #152b1e;
  --gmv-grey:      #6b7c6b;
  --gmv-sand:      #f9f5ee;
  --gmv-light:     #f0f4f0;
  --gmv-border:    #d9ead9;
  --gmv-white:     #ffffff;
  --gmv-shadow:    0 2px 20px rgba(30,107,60,.1);
  --gmv-radius:    8px;
  --gmv-font-head: 'Merriweather', Georgia, serif;
  --gmv-font-body: 'DM Sans', 'Helvetica Neue', sans-serif;
}

/* ---- Reset / Base ---- */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--gmv-font-body);
  font-size: 15px; color: var(--gmv-dark);
  background: var(--gmv-white); line-height: 1.6;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--gmv-secondary); }
a:hover { color: var(--gmv-primary); }

/* ---- UTILITY BAR ---- */
.gmv-utility-bar {
  background: var(--gmv-primary);
  color: rgba(255,255,255,.75); font-size: 12px;
}
.gmv-utility-bar__inner {
  max-width: 1280px; margin: 0 auto;
  padding: 5px 24px;
  display: flex; justify-content: space-between; align-items: center;
}
.gmv-utility-bar__langs a {
  color: rgba(255,255,255,.75); text-decoration: none;
  margin-left: 16px; font-weight: 500;
}
.gmv-utility-bar__langs a:hover { color: var(--gmv-accent); }

/* ---- HEADER ---- */
.gmv-header {
  background: var(--gmv-white);
  border-bottom: 1px solid var(--gmv-border);
  position: sticky; top: 0; z-index: 200;
  box-shadow: var(--gmv-shadow);
}
.admin-bar .gmv-header { top: 32px; }
.gmv-header__inner {
  max-width: 1280px; margin: 0 auto;
  padding: 16px 24px;
  display: flex; align-items: center; gap: 20px;
}
.site-branding { display: flex; align-items: center; gap: 14px; text-decoration: none; flex-shrink: 0; }
.site-branding:hover { text-decoration: none; }
.gmv-logo-icon {
  width: 60px; height: 60px;
  background: var(--gmv-primary); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px;
  box-shadow: 0 0 0 4px rgba(30,107,60,.12);
  flex-shrink: 0;
}
.gmv-logo-icon img { width: 36px; height: 36px; object-fit: contain; }
.site-title {
  font-family: var(--gmv-font-head);
  font-size: 15px; font-weight: 900;
  color: var(--gmv-primary); text-transform: uppercase;
  letter-spacing: 1.2px; line-height: 1.2;
  margin: 0;
}
.site-title a { color: inherit; text-decoration: none; }
.site-description {
  font-size: 11px; color: var(--gmv-grey);
  margin-top: 2px; font-style: normal;
}
.gmv-header__tagline {
  flex: 1; text-align: center;
  font-size: 13px; color: var(--gmv-grey);
  font-style: italic; line-height: 1.4;
}
.gmv-header__actions {
  display: flex; align-items: center; gap: 10px; flex-shrink: 0;
}
.gmv-search-form { display: flex; align-items: center; }
.gmv-search-form input[type="search"] {
  border: 1.5px solid var(--gmv-border); border-right: none;
  border-radius: 6px 0 0 6px;
  padding: 8px 12px; font-size: 13px;
  font-family: var(--gmv-font-body); width: 190px;
  outline: none; color: var(--gmv-dark);
  transition: border-color .2s;
}
.gmv-search-form input[type="search"]:focus { border-color: var(--gmv-secondary); }
.gmv-search-form button {
  background: var(--gmv-secondary); color: white;
  border: 1.5px solid var(--gmv-secondary);
  border-radius: 0 6px 6px 0;
  padding: 8px 12px; cursor: pointer; font-size: 14px;
}

/* ---- BUTTONS ---- */
.gmv-btn {
  display: inline-flex; align-items: center; gap: 6px;
  border: none; cursor: pointer;
  font-family: var(--gmv-font-body); font-weight: 600;
  text-decoration: none; border-radius: 6px; transition: all .2s;
}
.gmv-btn--member {
  background: var(--gmv-primary); color: white;
  padding: 9px 18px; font-size: 13px;
}
.gmv-btn--member:hover { background: var(--gmv-dark); color: white; }
.gmv-btn--hero-primary {
  background: var(--gmv-secondary); color: white;
  border: 2px solid var(--gmv-secondary);
  padding: 14px 30px; font-size: 14px; font-weight: 700;
}
.gmv-btn--hero-primary:hover { background: var(--gmv-primary); border-color: var(--gmv-primary); color: white; transform: translateY(-1px); }
.gmv-btn--hero-secondary {
  background: rgba(255,255,255,.1); color: white;
  border: 1.5px solid rgba(255,255,255,.55);
  padding: 14px 30px; font-size: 14px; font-weight: 700;
  backdrop-filter: blur(4px);
}
.gmv-btn--hero-secondary:hover { background: rgba(255,255,255,.2); border-color: white; color: white; }
.gmv-btn--green {
  display: block; background: var(--gmv-secondary); color: white;
  text-align: center; padding: 11px; border-radius: 6px;
  text-decoration: none; font-weight: 700; font-size: 13px; transition: background .2s;
}
.gmv-btn--green:hover { background: var(--gmv-primary); color: white; }

/* Mobile nav toggle */
.gmv-nav-toggle {
  display: none; background: none; border: 2px solid var(--gmv-border);
  border-radius: 5px; cursor: pointer; padding: 7px;
  flex-direction: column; gap: 4px; margin-left: auto;
}
.gmv-nav-toggle span {
  display: block; width: 22px; height: 2px;
  background: var(--gmv-dark); border-radius: 2px; transition: all .3s;
}

/* ---- PRIMARY NAVIGATION ---- */
.gmv-primary-nav { background: var(--gmv-dark); }
.gmv-primary-nav__inner {
  max-width: 1280px; margin: 0 auto; padding: 0 24px;
}
#primary-menu { display: flex; list-style: none; align-items: center; flex-wrap: wrap; }
#primary-menu > li { position: relative; }
#primary-menu li a {
  display: flex; align-items: center;
  color: rgba(255,255,255,.82); text-decoration: none;
  padding: 13px 14px;
  font-size: 11.5px; font-weight: 600;
  letter-spacing: .5px; text-transform: uppercase;
  transition: all .2s;
  white-space: nowrap;
}
#primary-menu li a:hover,
#primary-menu li.current-menu-item > a,
#primary-menu li.current_page_item > a,
#primary-menu li.current-menu-parent > a,
#primary-menu li.current-menu-ancestor > a {
  color: var(--gmv-accent); background: rgba(255,255,255,.04);
}

/* Flèche indicateur sous-menu */
#primary-menu li.menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: 0; height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid rgba(255,255,255,.6);
  margin-left: 6px;
  flex-shrink: 0;
  transition: transform .2s;
}
#primary-menu li.menu-item-has-children:hover > a::after,
#primary-menu li.menu-item-has-children.is-open > a::after {
  transform: rotate(180deg);
  border-top-color: var(--gmv-accent);
}

/* ================================================================
   DROPDOWN SOUS-MENUS — Desktop
   ================================================================ */
#primary-menu .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: var(--gmv-dark);
  border-top: 2px solid var(--gmv-secondary);
  border-radius: 0 0 6px 6px;
  box-shadow: 0 8px 28px rgba(0,0,0,.35);
  z-index: 300;
  list-style: none;
  padding: 6px 0;
  /* Animation d'ouverture */
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity .18s ease, transform .18s ease;
  pointer-events: none;
}

/* Ouverture au hover (desktop) et au clic (.is-open) */
#primary-menu li.menu-item-has-children:hover > .sub-menu,
#primary-menu li.menu-item-has-children.is-open > .sub-menu {
  display: block;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* Items du sous-menu */
#primary-menu .sub-menu li { position: relative; }
#primary-menu .sub-menu li a {
  display: block;
  padding: 10px 20px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .4px;
  color: rgba(255,255,255,.78);
  white-space: nowrap;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
#primary-menu .sub-menu li:last-child a { border-bottom: none; }
#primary-menu .sub-menu li a:hover {
  background: rgba(255,255,255,.08);
  color: var(--gmv-accent);
  padding-left: 26px;
}

/* Sous-sous-menu (niveau 3) — ouvre à droite */
#primary-menu .sub-menu .sub-menu {
  top: 0;
  left: 100%;
  border-top: none;
  border-left: 2px solid var(--gmv-secondary);
  border-radius: 0 6px 6px 0;
}
#primary-menu .sub-menu li.menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: 0; height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 5px solid rgba(255,255,255,.6);
  margin-left: auto;
  border-right: none;
}

/* Pont invisible pour garder le hover actif entre parent et dropdown */
#primary-menu li.menu-item-has-children::after {
  content: '';
  position: absolute;
  bottom: -6px;
  left: 0; right: 0;
  height: 6px;
}

/* ================================================================
   SLIDESHOW HERO
   ================================================================ */

/* -- Conteneur principal -- */
.gmv-slideshow {
  position: relative;
  width: 100%;
  height: 580px;
  overflow: hidden;
  background: var(--gmv-dark);
  user-select: none;
}

/* -- Track -- */
.gmv-slideshow__track {
  position: relative;
  width: 100%; height: 100%;
}

/* -- Chaque slide -- */
.gmv-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  opacity: 0;
  z-index: 0;
  transition: opacity .7s cubic-bezier(.4,0,.2,1);
  will-change: opacity;
}

.gmv-slide--active {
  opacity: 1;
  z-index: 1;
}

/* Animation entrée (fade + léger zoom) */
.gmv-slide--in {
  animation: gmv-slide-in .7s cubic-bezier(.4,0,.2,1) forwards;
}
.gmv-slide--out {
  animation: gmv-slide-out .7s cubic-bezier(.4,0,.2,1) forwards;
}

@keyframes gmv-slide-in {
  from { opacity: 0; transform: scale(1.04); }
  to   { opacity: 1; transform: scale(1);    }
}
@keyframes gmv-slide-out {
  from { opacity: 1; transform: scale(1);    }
  to   { opacity: 0; transform: scale(.97);  }
}

/* -- Contenu d'un slide -- */
.gmv-slide__inner {
  position: relative;
  z-index: 2;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  width: 100%;
}

.gmv-slide__label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(82,193,125,.18);
  border: 1px solid rgba(82,193,125,.38);
  color: var(--gmv-accent);
  padding: 5px 16px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .8px;
  text-transform: uppercase;
  margin-bottom: 20px;
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity .5s .2s, transform .5s .2s;
}
.gmv-slide--active .gmv-slide__label {
  opacity: 1;
  transform: none;
}

.gmv-slide__title {
  font-family: var(--gmv-font-head);
  font-size: 50px;
  font-weight: 900;
  color: white;
  line-height: 1.1;
  margin: 0 0 20px;
  max-width: 640px;
  text-shadow: 0 2px 16px rgba(0,0,0,.3);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .55s .3s, transform .55s .3s;
}
.gmv-slide--active .gmv-slide__title {
  opacity: 1;
  transform: none;
}

.gmv-slide__subtitle {
  color: rgba(255,255,255,.85);
  font-size: 16px;
  line-height: 1.7;
  max-width: 560px;
  margin: 0 0 32px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .55s .42s, transform .55s .42s;
}
.gmv-slide--active .gmv-slide__subtitle {
  opacity: 1;
  transform: none;
}

.gmv-slide__ctas {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .5s .55s, transform .5s .55s;
}
.gmv-slide--active .gmv-slide__ctas {
  opacity: 1;
  transform: none;
}

/* -- Boutons du slide -- */
.gmv-btn--slide-primary {
  background: var(--gmv-secondary);
  color: white;
  border: 2px solid var(--gmv-secondary);
  padding: 13px 28px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: background .2s, transform .15s;
}
.gmv-btn--slide-primary:hover {
  background: var(--gmv-primary);
  border-color: var(--gmv-primary);
  color: white;
  transform: translateY(-2px);
}

.gmv-btn--slide-secondary {
  background: rgba(255,255,255,.1);
  color: white;
  border: 1.5px solid rgba(255,255,255,.55);
  padding: 13px 28px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  backdrop-filter: blur(4px);
  transition: background .2s, border-color .2s, transform .15s;
}
.gmv-btn--slide-secondary:hover {
  background: rgba(255,255,255,.22);
  border-color: white;
  color: white;
  transform: translateY(-2px);
}

/* -- Flèches -- */
.gmv-slideshow__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.45);
  background: rgba(21,43,30,.45);
  color: white;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(6px);
  transition: background .2s, border-color .2s, transform .2s;
  line-height: 1;
}
.gmv-slideshow__arrow:hover {
  background: var(--gmv-secondary);
  border-color: var(--gmv-secondary);
  transform: translateY(-50%) scale(1.1);
}
.gmv-slideshow__arrow--prev { left: 24px; }
.gmv-slideshow__arrow--next { right: 24px; }

/* -- Points de navigation -- */
.gmv-slideshow__dots {
  position: absolute;
  bottom: 52px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: 10px;
  align-items: center;
}

.gmv-slideshow__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.6);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: all .25s;
}
.gmv-slideshow__dot--active {
  background: white;
  border-color: white;
  width: 28px;
  border-radius: 5px;
}
.gmv-slideshow__dot:hover:not(.gmv-slideshow__dot--active) {
  background: rgba(255,255,255,.4);
  border-color: white;
}

/* -- Barre de progression -- */
.gmv-slideshow__progress {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: rgba(255,255,255,.15);
  z-index: 10;
}
.gmv-slideshow__progress-bar {
  height: 100%;
  width: 0%;
  background: var(--gmv-accent);
  transition: none;
}

/* -- Bouton Pause -- */
.gmv-slideshow__pause {
  position: absolute;
  bottom: 38px;
  right: 24px;
  z-index: 10;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.4);
  background: rgba(21,43,30,.45);
  color: white;
  font-size: 11px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(4px);
  transition: background .2s, border-color .2s;
  letter-spacing: 1px;
}
.gmv-slideshow__pause:hover {
  background: var(--gmv-secondary);
  border-color: var(--gmv-secondary);
}

/* -- Accessibilité : désactiver les animations -- */
@media (prefers-reduced-motion: reduce) {
  .gmv-slide            { transition: none; }
  .gmv-slide--in        { animation: none; opacity: 1; }
  .gmv-slide--out       { animation: none; opacity: 0; }
  .gmv-slide__label,
  .gmv-slide__title,
  .gmv-slide__subtitle,
  .gmv-slide__ctas      { transition: none; opacity: 1; transform: none; }
}

/* -- Responsive -- */
@media (max-width: 768px) {
  .gmv-slideshow { height: 480px; }
  .gmv-slide__title { font-size: 32px; }
  .gmv-slide__subtitle { font-size: 14px; }
  .gmv-slideshow__arrow { width: 38px; height: 38px; font-size: 14px; }
  .gmv-slideshow__arrow--prev { left: 12px; }
  .gmv-slideshow__arrow--next { right: 12px; }
  .gmv-slideshow__pause { right: 12px; }
}
@media (max-width: 480px) {
  .gmv-slideshow { height: 420px; }
  .gmv-slide__title { font-size: 26px; }
  .gmv-slide__ctas { flex-direction: column; gap: 10px; }
  .gmv-slideshow__arrow { display: none; }
}

/* ---- PAGE LAYOUT ---- */
.gmv-page-wrap {
  max-width: 1280px; margin: 0 auto;
  padding: 52px 24px;
  display: grid; grid-template-columns: 1fr 300px; gap: 48px;
}

/* ---- SECTION HEADER ---- */
.gmv-section-header {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 26px; padding-bottom: 12px;
  border-bottom: 2px solid var(--gmv-secondary);
  position: relative;
}
.gmv-section-header::before {
  content: ''; position: absolute; bottom: -2px; left: 0;
  width: 44px; height: 3px; background: var(--gmv-gold);
}
.gmv-section-header h2 {
  font-family: var(--gmv-font-head);
  font-size: 16px; font-weight: 900;
  text-transform: uppercase; letter-spacing: 1px; color: var(--gmv-dark);
}
.gmv-section-header .view-all {
  font-size: 12px; color: var(--gmv-secondary);
  text-decoration: none; font-weight: 600;
}
.gmv-section-header .view-all:hover { color: var(--gmv-primary); }

/* ---- POST CARDS ---- */
.gmv-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.gmv-post-card {
  border-radius: var(--gmv-radius); overflow: hidden;
  border: 1px solid var(--gmv-border);
  box-shadow: var(--gmv-shadow);
  transition: transform .25s cubic-bezier(.2,.8,.3,1), box-shadow .25s;
  background: var(--gmv-white);
}
.gmv-post-card:hover { transform: translateY(-5px); box-shadow: 0 12px 36px rgba(30,107,60,.18); }
.gmv-post-card__thumb { width: 100%; height: 155px; object-fit: cover; }
.gmv-post-card__thumb-placeholder {
  height: 155px; background: linear-gradient(135deg, var(--gmv-secondary), var(--gmv-primary));
  display: flex; align-items: center; justify-content: center; font-size: 40px;
}
.gmv-post-card__body { padding: 16px; }
.gmv-post-card__cat {
  display: inline-block; padding: 3px 10px; border-radius: 4px;
  font-size: 10px; font-weight: 700; letter-spacing: .6px;
  text-transform: uppercase; margin-bottom: 9px;
}
.gmv-post-card__date { font-size: 11px; color: #aaa; margin-bottom: 7px; }
.gmv-post-card__title {
  font-size: 13.5px; font-weight: 600; color: var(--gmv-dark);
  line-height: 1.45; margin-bottom: 12px;
}
.gmv-post-card__title a { color: inherit; text-decoration: none; }
.gmv-post-card__title a:hover { color: var(--gmv-secondary); }
.gmv-post-card__link { font-size: 12px; color: var(--gmv-secondary); font-weight: 700; text-decoration: none; }
.gmv-post-card__link:hover { color: var(--gmv-primary); }

/* ---- MAIN CONTENT ---- */
.gmv-main-content h1, .gmv-main-content h2 { font-family: var(--gmv-font-head); }
.gmv-entry-content { margin-top: 28px; }
.gmv-front-content { margin-top: 36px; }

/* État vide actualités */
.gmv-news-empty {
  padding: 32px 24px;
  text-align: center;
  background: var(--gmv-light);
  border-radius: var(--gmv-radius);
  color: var(--gmv-grey);
  font-size: 14px;
  grid-column: 1 / -1;
}
.gmv-news-empty a {
  display: inline-block;
  margin-top: 12px;
  background: var(--gmv-secondary);
  color: white;
  padding: 8px 20px;
  border-radius: 5px;
  text-decoration: none;
  font-weight: 600;
  font-size: 13px;
}

/* Header : transition hide on scroll mobile */
.gmv-header { transition: transform .3s ease, box-shadow .2s; }
.gmv-header.is-hidden { transform: translateY(-100%); }
.gmv-header.is-scrolled { box-shadow: 0 4px 20px rgba(26,92,46,.15); }

/* Stats reveal animation — JS ajoute .gmv-stats--js-ready sur le conteneur
   UNIQUEMENT si IntersectionObserver est disponible.
   Sans JS ou si l'observer ne se déclenche pas, les stats sont toujours visibles. */
.gmv-stats--js-ready .gmv-stat-card {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .55s ease, transform .55s ease;
}
.gmv-stats--js-ready .gmv-stat-card.is-visible {
  opacity: 1;
  transform: none;
}

/* ================================================================
   SIDEBAR WIDGETS — fidèle à l'image de référence
   ================================================================ */
.gmv-sidebar { display: flex; flex-direction: column; gap: 20px; }

.gmv-widget {
  background: var(--gmv-white);
  border: 1px solid var(--gmv-border);
  border-radius: var(--gmv-radius);
  overflow: hidden;
  box-shadow: var(--gmv-shadow);
}

/* En-tête du widget : fond blanc, titre vert + icône */
.gmv-widget__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px 10px;
  border-bottom: 1px solid var(--gmv-border);
}
.gmv-widget__header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.gmv-widget__icon {
  font-size: 18px;
  color: var(--gmv-secondary);
  line-height: 1;
}
.gmv-widget__title {
  font-family: var(--gmv-font-head);
  font-size: 13px;
  font-weight: 700;
  color: var(--gmv-primary);
  text-transform: uppercase;
  letter-spacing: .8px;
  margin: 0;
}
.gmv-widget__link {
  font-size: 12px;
  color: var(--gmv-secondary);
  text-decoration: none;
  font-weight: 600;
  white-space: nowrap;
}
.gmv-widget__link:hover { color: var(--gmv-primary); }
.gmv-widget__body { padding: 6px 0; }
.gmv-widget__footer { padding: 6px 16px 16px; }
.gmv-widget__cta-btn {
  display: block;
  background: var(--gmv-secondary);
  color: white;
  text-align: center;
  padding: 11px 16px;
  border-radius: 5px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  transition: background .2s;
}
.gmv-widget__cta-btn:hover { background: var(--gmv-primary); color: white; }

/* --- Événements Agenda --- */
.gmv-event {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--gmv-border);
}
.gmv-event:last-child { border-bottom: none; }

.gmv-event__date-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  background: var(--gmv-primary);
  color: white;
  border-radius: 5px;
  padding: 6px 4px;
  flex-shrink: 0;
}
.gmv-event__day {
  font-size: 22px;
  font-weight: 900;
  line-height: 1;
  font-family: var(--gmv-font-head);
}
.gmv-event__month {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .5px;
  opacity: .85;
  margin-top: 2px;
}
.gmv-event__info { flex: 1; min-width: 0; }
.gmv-event__title {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--gmv-dark);
  line-height: 1.35;
  margin: 0 0 3px;
}
.gmv-event__location {
  font-size: 11px;
  color: #aaa;
  margin: 0 0 5px;
}

/* Badges type événement */
.gmv-event__badge {
  display: inline-block;
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .4px;
  padding: 2px 8px;
  border-radius: 3px;
}
.gmv-event__badge--atelier   { background: #e8f5e9; color: #1e6b3c; }
.gmv-event__badge--webinaire { background: #e3f2fd; color: #1565c0; }
.gmv-event__badge--campagne  { background: #fff3e0; color: #e65100; }

/* --- Opportunités --- */
.gmv-opp-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  border-bottom: 1px solid var(--gmv-border);
  text-decoration: none;
  gap: 10px;
  transition: background .15s;
}
.gmv-opp-item:last-child { border-bottom: none; }
.gmv-opp-item:hover { background: #f8fdf9; }
.gmv-opp-item__text { flex: 1; min-width: 0; }
.gmv-opp-item__title {
  font-size: 13px;
  font-weight: 600;
  color: var(--gmv-dark);
  margin: 0 0 3px;
  line-height: 1.3;
}
.gmv-opp-item__deadline {
  font-size: 11px;
  color: #aaa;
  margin: 0;
}
.gmv-opp-item__arrow {
  color: var(--gmv-secondary);
  font-size: 18px;
  flex-shrink: 0;
  font-weight: 700;
}

/* --- Carte interactive --- */
.gmv-map-preview {
  padding: 12px 16px 4px;
}
.gmv-map-preview svg {
  width: 100%;
  height: auto;
  max-height: 180px;
  display: block;
  border-radius: 6px;
}
.gmv-map-caption { padding: 8px 16px 4px; }
.gmv-map-caption__text {
  font-size: 13px;
  font-weight: 600;
  color: var(--gmv-dark);
  margin: 0;
}


/* ================================================================
   PLATEFORMES ACCÈS RAPIDE — fidèle à l'image de référence
   ================================================================ */
.gmv-platforms {
  background: var(--gmv-white);
  padding: 40px 0 48px;
  border-top: 1px solid var(--gmv-border);
}
.gmv-platforms__inner { max-width: 1280px; margin: 0 auto; padding: 0 24px; }
.gmv-platforms__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.gmv-platform-tile {
  border-radius: var(--gmv-radius);
  padding: 28px 20px 22px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: white;
  position: relative;
  overflow: hidden;
  transition: transform .22s, box-shadow .22s;
}
.gmv-platform-tile:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,.22);
}
/* Reflet subtil en haut */
.gmv-platform-tile::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: rgba(255,255,255,.3);
}

/* Couleurs exactes de l'image */
.gmv-platform-tile--1 { background: #1e6b3c; }
.gmv-platform-tile--2 { background: #1a7a48; }
.gmv-platform-tile--3 { background: #1a6bb5; }
.gmv-platform-tile--4 { background: #6b3abf; }

.gmv-platform-tile__icon-wrap {
  width: 64px;
  height: 64px;
  margin-bottom: 14px;
}
.gmv-platform-tile__icon-wrap svg {
  width: 100%;
  height: 100%;
}

.gmv-platform-tile__num {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .8px;
  opacity: .75;
  margin-bottom: 5px;
}
.gmv-platform-tile__name {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 8px;
  opacity: .95;
}
.gmv-platform-tile__desc {
  font-size: 11.5px;
  line-height: 1.45;
  opacity: .78;
  flex: 1;
  margin-bottom: 18px;
}
.gmv-platform-tile__btn {
  display: inline-block;
  border: 1.5px solid rgba(255,255,255,.55);
  color: white;
  text-decoration: none;
  padding: 8px 16px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
  transition: background .15s, border-color .15s;
  width: 100%;
  text-align: center;
}
.gmv-platform-tile__btn:hover {
  background: rgba(255,255,255,.18);
  border-color: white;
  color: white;
}


/* ================================================================
   LA GMV EN CHIFFRES — fidèle à l'image de référence
   Cards blanches avec bordure sur fond blanc
   ================================================================ */
.gmv-stats {
  background: var(--gmv-white);
  padding: 40px 0 52px;
  border-top: 1px solid var(--gmv-border);
}
.gmv-stats__inner { max-width: 1280px; margin: 0 auto; padding: 0 24px; }

.gmv-stats__title {
  font-family: var(--gmv-font-head);
  font-size: 16px;
  font-weight: 900;
  color: var(--gmv-primary);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 28px;
}

.gmv-stats__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}

.gmv-stat-card {
  background: var(--gmv-white);
  border: 1px solid var(--gmv-border);
  border-radius: var(--gmv-radius);
  padding: 24px 16px 20px;
  text-align: center;
  box-shadow: 0 1px 8px rgba(30,107,60,.06);
  transition: box-shadow .2s, transform .2s;
}
.gmv-stat-card:hover {
  box-shadow: 0 6px 24px rgba(30,107,60,.12);
  transform: translateY(-2px);
}
.gmv-stat-card__icon {
  width: 52px;
  height: 52px;
  margin: 0 auto 14px;
}
.gmv-stat-card__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.gmv-stat-card__value {
  font-family: var(--gmv-font-head);
  font-size: 28px;
  font-weight: 900;
  color: var(--gmv-primary);
  line-height: 1;
  margin-bottom: 8px;
}
.gmv-stat-card__label {
  font-size: 12px;
  color: var(--gmv-grey);
  line-height: 1.4;
}

/* Stats reveal animation */

/* ---- PARTNERS ---- */
.gmv-partners { background: var(--gmv-white); padding: 48px 0; }
.gmv-partners__inner { max-width: 1280px; margin: 0 auto; padding: 0 24px; text-align: center; }
.gmv-partners__logos {
  display: flex; flex-wrap: wrap; justify-content: center;
  align-items: center; gap: 36px;
  opacity: .55; filter: grayscale(30%); margin-top: 24px;
}

/* ---- FOOTER ---- */
.gmv-footer { background: var(--gmv-dark); color: rgba(255,255,255,.72); }
.gmv-footer__widgets {
  max-width: 1280px; margin: 0 auto;
  padding: 52px 24px 36px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px;
}
.gmv-footer__col h4 {
  color: var(--gmv-accent); font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1.2px; margin-bottom: 18px;
}
.gmv-footer__col p,
.gmv-footer__col a {
  font-size: 13px; line-height: 1.7;
  color: rgba(255,255,255,.65);
  text-decoration: none; display: block; margin-bottom: 3px;
}
.gmv-footer__col a:hover { color: var(--gmv-accent); }
.gmv-newsletter-form { display: flex; gap: 6px; margin-top: 10px; }
.gmv-newsletter-form input[type="email"] {
  flex: 1; padding: 9px 12px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 5px; color: white;
  font-family: var(--gmv-font-body); font-size: 12px; outline: none;
}
.gmv-newsletter-form input::placeholder { color: rgba(255,255,255,.35); }
.gmv-newsletter-form button {
  background: var(--gmv-secondary); color: white; border: none;
  padding: 9px 14px; border-radius: 5px; cursor: pointer;
  font-family: var(--gmv-font-body); font-weight: 700; font-size: 12px;
}
.gmv-social-links { display: flex; gap: 8px; margin-top: 14px; }
.gmv-social-links a {
  width: 34px; height: 34px; border-radius: 6px;
  background: rgba(255,255,255,.1);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.8); text-decoration: none; font-size: 14px; transition: background .2s;
}
.gmv-social-links a:hover { background: var(--gmv-secondary); color: white; }
.gmv-footer__bar {
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 18px 24px;
  display: flex; justify-content: space-between; align-items: center;
  font-size: 12px; color: rgba(255,255,255,.4);
}
.gmv-footer__legal { display: flex; gap: 16px; }
.gmv-footer__legal a { color: rgba(255,255,255,.4); text-decoration: none; }
.gmv-footer__legal a:hover { color: rgba(255,255,255,.8); }

/* ================================================================
   MOBILE HEADER ADDITIONS
   ================================================================ */

/* Bouton recherche mobile (masqué desktop) */
.gmv-search-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 20px;
  color: var(--gmv-dark);
  padding: 6px;
  line-height: 1;
}

/* Barre de recherche mobile dépliante */
.gmv-mobile-search {
  display: none;
  padding: 10px 16px 12px;
  border-top: 1px solid var(--gmv-border);
  background: var(--gmv-white);
}
.gmv-mobile-search.is-open { display: block; }
.gmv-mobile-search form {
  display: flex;
  gap: 0;
  border: 1.5px solid var(--gmv-border);
  border-radius: 6px;
  overflow: hidden;
}
.gmv-mobile-search input[type="search"] {
  flex: 1;
  border: none;
  outline: none;
  padding: 10px 14px;
  font-size: 15px;
  font-family: var(--gmv-font-body);
  color: var(--gmv-dark);
  background: var(--gmv-white);
  min-width: 0;
}
.gmv-mobile-search button {
  background: var(--gmv-secondary);
  border: none;
  padding: 10px 16px;
  cursor: pointer;
  font-size: 16px;
  color: white;
  flex-shrink: 0;
}

/* Burger animé */
.gmv-nav-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  flex-direction: column;
  gap: 5px;
  flex-shrink: 0;
}
.gmv-burger__line {
  display: block;
  width: 24px;
  height: 2.5px;
  background: var(--gmv-dark);
  border-radius: 2px;
  transition: transform .3s ease, opacity .3s ease;
  transform-origin: center;
}
.gmv-nav-toggle.is-open .gmv-burger__line:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.gmv-nav-toggle.is-open .gmv-burger__line:nth-child(2) { opacity: 0; transform: scaleX(0); }
.gmv-nav-toggle.is-open .gmv-burger__line:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* Overlay fond sombre quand menu ouvert */
.gmv-nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 90;
}
.gmv-nav-overlay.is-visible { display: block; }

/* Screen reader utility */
.screen-reader-text {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ================================================================
   RESPONSIVE — MOBILE FIRST
   Breakpoints : 1024 · 768 · 600 · 480 · 375
   ================================================================ */

/* ---- Tablette large (≤ 1024px) ---- */
@media (max-width: 1024px) {
  .gmv-platforms__grid { grid-template-columns: repeat(2, 1fr); }
  .gmv-stats__grid     { grid-template-columns: repeat(3, 1fr); }
}

/* ---- Tablette portrait (≤ 768px) ---- */
@media (max-width: 768px) {

  /* Admin bar WordPress */
  .admin-bar .gmv-header    { top: 46px; }
  .admin-bar .gmv-slideshow { margin-top: 0; }

  /* Utility bar : masquer le texte, garder les langues */
  .gmv-utility-bar__name { display: none; }
  .gmv-utility-bar__langs a { margin-left: 10px; }

  /* Header : passer en colonne compacte */
  .gmv-header__inner {
    padding: 10px 16px;
    flex-wrap: nowrap;
    gap: 10px;
  }
  .gmv-header__tagline  { display: none; }
  .gmv-header__actions  { display: none; }    /* Caché, remplacé par icônes mobiles */
  .gmv-search-toggle    { display: flex; align-items: center; }
  .gmv-nav-toggle       { display: flex; }

  /* Logo plus petit */
  .gmv-logo-icon        { width: 44px; height: 44px; font-size: 20px; }
  .site-title           { font-size: 13px; }
  .site-description     { font-size: 10px; }

  /* Nav mobile : panneau latéral glissant */
  .gmv-primary-nav { position: static; }
  .gmv-primary-nav__inner { padding: 0; }

  #primary-menu {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0; right: -100%;
    width: min(280px, 80vw);
    height: 100vh;
    height: 100dvh;          /* dynamic viewport height (iOS Safari) */
    background: var(--gmv-dark);
    z-index: 100;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-top: 60px;
    transition: right .32s cubic-bezier(.4,0,.2,1);
    box-shadow: -4px 0 24px rgba(0,0,0,.3);
  }
  #primary-menu.is-open { right: 0; }

  #primary-menu li      { width: 100%; border-bottom: 1px solid rgba(255,255,255,.07); }
  #primary-menu li a    {
    padding: 15px 24px;
    font-size: 13px;
    letter-spacing: .3px;
    display: flex;
    align-items: center;
    width: 100%;
  }
  #primary-menu li a:hover,
  #primary-menu li.current-menu-item > a {
    background: rgba(255,255,255,.07);
    padding-left: 32px;
  }

  /* Flèche sous-menu mobile */
  #primary-menu li.menu-item-has-children > a::after {
    content: '';
    display: inline-block;
    width: 0; height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid rgba(255,255,255,.5);
    margin-left: auto;
    transition: transform .25s;
  }
  #primary-menu li.menu-item-has-children.is-open > a::after {
    transform: rotate(180deg);
    border-top-color: var(--gmv-accent);
  }

  /* Sous-menu mobile : accordion vertical */
  #primary-menu .sub-menu {
    position: static;
    display: none;
    opacity: 1;
    transform: none;
    box-shadow: none;
    border-top: none;
    border-left: 3px solid var(--gmv-secondary);
    border-radius: 0;
    background: rgba(0,0,0,.25);
    padding: 0;
    min-width: 0;
    pointer-events: auto;
  }
  #primary-menu li.menu-item-has-children.is-open > .sub-menu {
    display: block;
  }
  /* Désactiver le hover desktop en mobile */
  #primary-menu li.menu-item-has-children:hover > .sub-menu {
    display: none;
  }
  #primary-menu li.menu-item-has-children.is-open:hover > .sub-menu {
    display: block;
  }
  #primary-menu .sub-menu li a {
    padding: 12px 24px 12px 32px;
    font-size: 12px;
    border-bottom: 1px solid rgba(255,255,255,.05);
  }
  #primary-menu .sub-menu li a:hover { padding-left: 38px; }

  /* Sous-sous-menu mobile */
  #primary-menu .sub-menu .sub-menu {
    border-left: 3px solid var(--gmv-accent);
    background: rgba(0,0,0,.2);
  }
  #primary-menu .sub-menu .sub-menu li a {
    padding-left: 44px;
  }

  /* Pont invisible inutile en mobile */
  #primary-menu li.menu-item-has-children::after { display: none; }

  /* Flèche niveau 2 en mobile : même style */
  #primary-menu .sub-menu li.menu-item-has-children > a::after {
    border-top: 6px solid rgba(255,255,255,.5);
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: none;
    border-right: none;
    margin-left: auto;
  }

  /* Layout principal */
  .gmv-page-wrap {
    grid-template-columns: 1fr;
    padding: 32px 16px;
    gap: 32px;
  }

  /* Grille actualités */
  .gmv-post-grid { grid-template-columns: 1fr 1fr; gap: 14px; }

  /* Plateformes */
  .gmv-platforms__grid  { grid-template-columns: 1fr 1fr; gap: 12px; }
  .gmv-platform-tile    { padding: 18px 12px 16px; }

  /* Stats */
  .gmv-stats__grid  { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .gmv-stat-card    { padding: 18px 12px 16px; }
  .gmv-stat-card__value { font-size: 22px; }
  .gmv-stats__title { font-size: 14px; margin-bottom: 18px; }

  /* Footer */
  .gmv-footer__widgets {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 36px 16px 24px;
  }
  .gmv-footer__bar {
    flex-direction: column;
    gap: 12px;
    text-align: center;
    padding: 16px;
  }
  .gmv-footer__legal {
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
  }
  .gmv-newsletter-form { flex-direction: column; gap: 8px; }
  .gmv-newsletter-form input,
  .gmv-newsletter-form button { width: 100%; border-radius: 6px; }
}

/* ---- Mobile (≤ 600px) ---- */
@media (max-width: 600px) {

  /* Slideshow */
  .gmv-slideshow        { height: 460px; }
  .gmv-slide__title     { font-size: 26px; }
  .gmv-slide__subtitle  { font-size: 14px; margin-bottom: 24px; }
  .gmv-slide__label     { font-size: 11px; padding: 4px 12px; }
  .gmv-slide__ctas      { flex-direction: column; gap: 10px; align-items: flex-start; }
  .gmv-btn--slide-primary,
  .gmv-btn--slide-secondary {
    width: 100%;
    justify-content: center;
    padding: 13px 20px;
  }
  .gmv-slideshow__arrow { width: 36px; height: 36px; font-size: 13px; }
  .gmv-slideshow__arrow--prev { left: 10px; }
  .gmv-slideshow__arrow--next { right: 10px; }
  .gmv-slideshow__pause { right: 10px; bottom: 34px; }

  /* Actualités : 1 colonne */
  .gmv-post-grid { grid-template-columns: 1fr; }

  /* Plateformes : 1 colonne */
  .gmv-platforms__grid { grid-template-columns: 1fr; }

  /* Section header */
  .gmv-section-header { flex-direction: column; align-items: flex-start; gap: 6px; }

  /* Sidebar plein écran */
  .gmv-sidebar { gap: 16px; }

  /* Partners */
  .gmv-partners__logos { gap: 20px; }
}

/* ---- Petit mobile (≤ 480px) ---- */
@media (max-width: 480px) {

  /* Utility bar masquée totalement */
  .gmv-utility-bar { display: none; }

  /* Slideshow encore plus compact */
  .gmv-slideshow       { height: 420px; }
  .gmv-slide__inner    { padding: 0 16px; }
  .gmv-slide__title    { font-size: 22px; line-height: 1.2; }
  .gmv-slide__subtitle { font-size: 13px; line-height: 1.6; }
  .gmv-slideshow__arrow { display: none; } /* Swipe tactile suffit */

  /* Stats : 2 colonnes sur petit mobile */
  .gmv-stats { padding: 28px 0; }
  .gmv-stats__inner { padding: 0 16px; }
  .gmv-stats__grid  { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .gmv-stat-card__value { font-size: 20px; }
  .gmv-stat-card__label { font-size: 11px; }

  /* Page wrap */
  .gmv-page-wrap { padding: 24px 12px; gap: 24px; }

  /* Cards */
  .gmv-post-card__thumb { height: 130px; }

  /* Nav toggle + logo bien alignés */
  .gmv-header__inner { padding: 10px 12px; gap: 8px; }
  .gmv-logo-icon     { width: 38px; height: 38px; font-size: 17px; }
  .site-title        { font-size: 12px; letter-spacing: .5px; }

  /* Footer */
  .gmv-footer__widgets { padding: 28px 12px 20px; }
  .gmv-footer__bar     { padding: 14px 12px; }
}

/* ---- Très petit mobile (≤ 375px — iPhone SE, Galaxy A) ---- */
@media (max-width: 375px) {

  .gmv-slideshow    { height: 380px; }
  .gmv-slide__title { font-size: 19px; }
  .gmv-slide__label { display: none; } /* Trop étroit pour le badge */

  .gmv-logo-text .site-title      { font-size: 11px; }
  .gmv-logo-text .site-description { display: none; }

  .gmv-stat { flex-basis: calc(50% - 8px); min-width: 0; }
  .gmv-stat__value { font-size: 20px; }

  #primary-menu { width: 85vw; }

  .gmv-platforms { padding: 28px 0; }
  .gmv-platforms__inner { padding: 0 12px; }

  .gmv-partners { padding: 28px 0; }
  .gmv-partners__logos { gap: 16px; }
}

/* ---- Fallback : pas de backdrop-filter (Android old) ---- */
@supports not (backdrop-filter: blur(1px)) {
  .gmv-slideshow__arrow { background: rgba(21,43,30,.75); }
  .gmv-slideshow__pause { background: rgba(21,43,30,.75); }
  .gmv-btn--slide-secondary { background: rgba(21,43,30,.6); }
}

/* ---- iOS Safari safe area (notch / home indicator) ---- */
@supports (padding: env(safe-area-inset-bottom)) {
  .gmv-footer__bar {
    padding-bottom: calc(18px + env(safe-area-inset-bottom));
  }
  #primary-menu {
    padding-bottom: env(safe-area-inset-bottom);
  }
}
