/* ============================================================
   LIGNE VERTE TERRE DE PAIX — Design System v4
   Fonts: Oliver Regular · Agrandir Narrow · DM Sans (Google)
   Style: Aerra-inspired · Charte LVTP
   ============================================================ */

/* ── FONTS ─────────────────────────────────────────────────── */
/*
 * STRATÉGIE POLICES :
 * Oliver & Agrandir Narrow sont des trials → unicode-range lettre seulement.
 * DM Sans (Google Font, licence libre) couvre tout : lettres + chiffres + ponctuation.
 */

/* Oliver — uniquement pour les lettres (titres sans chiffres) */
@font-face {
  font-family: 'Oliver';
  src: url('../fonts/Oliver-Regular.ttf') format('truetype');
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range:
    U+0020-002F, U+003A-0040,
    U+0041-005A, U+0061-007A,
    U+00C0-00D6, U+00D8-00F6, U+00F8-00FF,
    U+2018-2019, U+201C-201D, U+2026;
}

/* Agrandir Narrow — lettres uniquement, chiffres → DM Sans */
@font-face {
  font-family: 'Agrandir Narrow';
  src: url('../fonts/Agrandir-Narrow.otf') format('opentype');
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range:
    U+0020-002F, U+003A-0040,
    U+0041-005A, U+0061-007A,
    U+00C0-00D6, U+00D8-00F6, U+00F8-00FF,
    U+2018-2019, U+201C-201D, U+2026;
}

/* DM Sans chargé via Google Fonts dans functions.php */

/* ── VARIABLES ──────────────────────────────────────────────── */
:root {
  /* Palette LVTP */
  --ev:      #1c3d2c;   /* Evergreen */
  --ev-dark: #142b1e;   /* Deep Forest */
  --ev-mid:  #254d38;   /* Forest mid */
  --vg:      #718a76;   /* Vert grisé */
  --gp:      #f7c96a;   /* Golden Pollen */
  --gp-dark: #e8b145;   /* Golden dark */
  --ps:      #f17425;   /* Pumpkin Spice */
  --ps-dark: #d4601a;   /* Pumpkin dark */
  --wh:      #ffffff;
  --cr:      #f9f5ed;   /* Crème */
  --cr2:     #ede8dc;   /* Crème foncé */
  --mg:      #64534e;   /* Marron grisé */
  --txt:     #1a1a1a;   /* Texte foncé */

  /* Typographie */
  --font-t: 'Oliver', cursive;                                          /* Titres pure texte */
  --font-s: 'Agrandir Narrow', 'Arial Narrow', sans-serif;              /* Sous-titres, nav, chiffres */
  --font-b: 'DM Sans', 'Helvetica Neue', sans-serif;                        /* Corps — Google Font, chiffres inclus */

  /* Layout */
  --hh:    72px;
  --cw:    1200px;
  --cw-w:  1360px;
  --r:     14px;
  --rpill: 999px;

  /* Effets */
  --shadow-sm: 0 2px 12px rgba(0,0,0,.08);
  --shadow:    0 8px 40px rgba(28,61,44,.12);
  --shadow-lg: 0 24px 80px rgba(0,0,0,.2);
  --trans:     all .3s cubic-bezier(.4,0,.2,1);

  /* Sections */
  --section-pad: 100px 0;
  --section-pad-sm: 64px 0;

  /* Type scale — 1 seule taille par niveau */
  --fs-p: 16px;          /* tous les paragraphes de contenu */
  --fs-h: 42px;          /* tous les titres de contenu (h2/h3) */
}

/* ── RESET ──────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
address { font-style: normal; }
button { cursor: pointer; }

/* ── BASE ───────────────────────────────────────────────────── */
body.lvtp-site {
  background: var(--cr);
  color: var(--txt);
  font-family: var(--font-b);
  font-size: var(--fs-p);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Hide default Hello Elementor header */
.site-header:not(#lvtp-header),
.elementor-location-header { display: none !important; }

/* ============================================================
   HEADER — Style Aerra : transparent → opaque au scroll
   ============================================================ */
#lvtp-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9999;
  height: var(--hh);
  background: rgba(20, 43, 30, .92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: var(--trans);
  border-bottom: 1px solid rgba(255,255,255,.05);
}
#lvtp-header.scrolled {
  height: 60px;
  background: rgba(20, 43, 30, .98);
  box-shadow: 0 4px 32px rgba(0,0,0,.3);
}

.lvtp-header__inner {
  max-width: var(--cw-w);
  margin: 0 auto;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 48px;
  gap: 16px;
}

/* Logo */
.lvtp-header__logo { display: flex; align-items: center; flex-shrink: 0; }
.lvtp-header__logo-img {
  height: 36px; width: auto;
  filter: brightness(0) invert(1);
  transition: var(--trans);
}
.lvtp-header__logo:hover .lvtp-header__logo-img {
  filter: brightness(0) saturate(100%) invert(83%) sepia(37%) saturate(600%) hue-rotate(5deg);
}

/* Nav */
.lvtp-header__nav { flex: 1; min-width: 0; display: flex; justify-content: center; }
.lvtp-nav__list {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 0; margin: 0;
}
.lvtp-nav__list li a {
  font-family: var(--font-s);
  font-size: 13px;
  font-weight: 400;
  color: rgba(255,255,255,.65);
  text-transform: uppercase;
  letter-spacing: .07em;
  padding: 6px 9px;
  border-radius: var(--rpill);
  transition: var(--trans);
  display: block;
  white-space: nowrap;
}
.lvtp-nav__list li a:hover,
.lvtp-nav__list .current-menu-item > a,
.lvtp-nav__list .current_page_item > a {
  color: var(--gp);
  background: rgba(247,201,106,.1);
}

/* ── Dropdown « Notre association » ─────────────────────── */
.lvtp-nav__list li { position: relative; }

/* Indicateur chevron sur les parents */
.lvtp-nav__list li.menu-item-has-children > a::after {
  content: '▾';
  margin-left: 3px;
  font-size: 9px;
  opacity: .6;
  display: inline-block;
  transition: transform .2s;
}
.lvtp-nav__list li.menu-item-has-children:hover > a::after {
  transform: rotate(180deg);
}

/* Panel dropdown */
.lvtp-nav__list .sub-menu {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 210px;
  background: var(--ev-dark);
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.07);
  box-shadow: 0 16px 48px rgba(0,0,0,.4);
  padding: 8px 0;
  z-index: 9000;
  list-style: none;
}
.lvtp-nav__list li.menu-item-has-children:hover .sub-menu,
.lvtp-nav__list li.menu-item-has-children:focus-within .sub-menu {
  display: block;
}
.lvtp-nav__list .sub-menu li { width: 100%; }
.lvtp-nav__list .sub-menu li a {
  font-size: 11px;
  padding: 10px 18px;
  border-radius: 0;
  white-space: nowrap;
  color: rgba(255,255,255,.7);
  background: transparent !important;
}
.lvtp-nav__list .sub-menu li a:hover {
  color: var(--gp) !important;
  background: rgba(247,201,106,.08) !important;
  padding-left: 24px;
}

/* CTA button */
.lvtp-header__actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.lvtp-header__cta {
	background:#f7c96a;
  font-family: var(--font-s);
  font-size: 12px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ev) !important;

  padding: 10px 22px;
  border-radius: var(--rpill);
  transition: var(--trans);
  white-space: nowrap;
}
.lvtp-header__cta:hover {
  background: var(--ps);
  color: var(--wh) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(241,116,37,.35);
}

/* Burger */
.lvtp-header__burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none; border: none;
  padding: 8px; border-radius: 6px;
}
.lvtp-header__burger span {
  display: block; width: 24px; height: 2px;
  background: var(--wh); border-radius: 2px;
  transition: var(--trans);
}
.lvtp-header__burger.is-active span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.lvtp-header__burger.is-active span:nth-child(2) { opacity: 0; }
.lvtp-header__burger.is-active span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }

.site-content { padding-top: var(--hh); }

/* ============================================================
   ELEMENTOR — Containers & Overrides
   ============================================================ */
.elementor-section > .elementor-container,
.elementor-section .elementor-container {
  max-width: var(--cw) !important;
  margin: 0 auto;
  padding-left: 48px !important;
  padding-right: 48px !important;
}

/* ============================================================
   TYPOGRAPHY — Fallbacks faible spécificité pour Elementor
   Règle : tout font-family ici est SANS !important et à spécificité
   inférieure à (0,2,0) → Elementor .elementor-element-{id} gagne toujours.
   ============================================================ */

/* Titres h1-h3 → Oliver (fallback, spécificité 0,1,0) */
.elementor-heading-title {
  font-family: 'Oliver', cursive;
  line-height: 1.05;
  letter-spacing: -.01em;
}

/* h4-h6 → Agrandir Narrow (fallback, spécificité 0,1,1) */
h4.elementor-heading-title,
h5.elementor-heading-title,
h6.elementor-heading-title {
  font-family: 'Agrandir Narrow', sans-serif;
  text-transform: uppercase;
  letter-spacing: .12em;
  line-height: 1.4;
}
/* Taille par défaut h4-h6 — même spécificité (0,1,1) */
h4.elementor-heading-title,
h5.elementor-heading-title,
h6.elementor-heading-title { font-size: 12px; }

/* Corps de texte text-editor — line-height et font-size par défaut SEULEMENT.
   Aucun font-family ici : Elementor génère .elementor-element-{id} (0,3,0) qui contrôle
   la police du widget entier. Le p/li hérite. Notre CSS ne doit pas overrider cet héritage. */
.elementor-widget-text-editor {
  line-height: 1.75;
  font-size: 16px;
}

/* Bare h1/h2/h3 hors Elementor (contenu WP classique) */
.lvtp-site h1, .lvtp-site h2, .lvtp-site h3 { font-family: 'Oliver', cursive; }
.lvtp-site h4, .lvtp-site h5, .lvtp-site h6 { font-family: 'Agrandir Narrow', sans-serif; }

/* Tailles de titre h1-h3 — spécificité faible (0,1,1), sans !important
   → Elementor .elementor-element-{id} .elementor-heading-title (0,2,0) gagne toujours */
h1.elementor-heading-title { font-size: clamp(40px, 6vw, 80px); }
h2.elementor-heading-title { font-size: var(--fs-h); }
h3.elementor-heading-title { font-size: var(--fs-h); }

/* Bare h1/h2/h3 — fallback sans !important */
.lvtp-site h1 { font-size: clamp(40px, 6vw, 80px); }
.lvtp-site h2 { font-size: var(--fs-h); }
.lvtp-site h3 { font-size: var(--fs-h); }





/* ============================================================
   BOUTONS — Aerra-style pill
   ============================================================ */

.elementor-widget-button .elementor-button:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 32px rgba(0,0,0,.18) !important;
}
/* Bouton pumpkin */
.elementor-widget-button .elementor-button-warning,
.elementor-widget-button .elementor-button.btn-pumpkin {
  border-color: var(--ps) !important;
}
.elementor-widget-button .elementor-button-warning:hover { background: var(--ps-dark) !important; }

/* Bouton blanc */
.elementor-widget-button .elementor-button.btn-white {
  background: #ffffff !important;
  color: var(--ev) !important;
}
.elementor-widget-button .elementor-button.btn-white:hover {
  background: #f0f0f0 !important;
  color: var(--ev) !important;
}

/* Bouton "Faire un don" hero — blanc sur fond sombre */
.elementor-element-hbtn01 .elementor-button {
  background: rgba(255,255,255,.12) !important;
  color: #ffffff !important;
  border: 1.5px solid rgba(255,255,255,.45) !important;
  border-radius: 50px !important;
  font-size: 11px !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  transition: background .2s, border-color .2s !important;
}
.elementor-element-hbtn01 .elementor-button:hover {
  background: rgba(255,255,255,.22) !important;
  border-color: rgba(255,255,255,.7) !important;
}

/* Bouton golden */
.elementor-widget-button .elementor-button-success {
  background: var(--gp) !important;
  color: var(--ev-dark) !important;
  border-color: var(--gp) !important;
}
.elementor-widget-button .elementor-button-success:hover { background: var(--gp-dark) !important; }

/* Bouton outline white */
.elementor-widget-button .elementor-button-ghost,
.elementor-widget-button .elementor-button-default {
  background: transparent !important;
  color: var(--wh) !important;
  border-color: rgba(255,255,255,.5) !important;
}
.elementor-widget-button .elementor-button-ghost:hover,
.elementor-widget-button .elementor-button-default:hover {
  background: var(--wh) !important;
  color: var(--ev) !important;
  border-color: var(--wh) !important;
}

/* ============================================================
   HERO SECTIONS — Aerra full-screen style
   ============================================================ */
.elementor-section.lvtp-hero {
  min-height: 100vh;
  display: flex;
  align-items: flex-end;
  position: relative;
}
.elementor-section.lvtp-hero-70 { min-height: 70vh; }

/* Hero section height — Elementor Free ignores vh unit, force it here */
.elementor-element-4cbc4e0,
.elementor-element-4cbc4e0.elementor-section-height-min-height {
  min-height: 100vh !important;
}
.elementor-element-4cbc4e0 > .elementor-container {
  min-height: 100vh !important;
  align-items: center !important; /* Elementor maps "middle" → invalid; force center */
}

/* Hero overlay gradient */
.elementor-element-4cbc4e0 > .elementor-background-overlay {
  background: linear-gradient(
    105deg,
    rgba(20,43,30,.82) 0%,
    rgba(20,43,30,.55) 55%,
    rgba(20,43,30,.15) 100%
  ) !important;
  opacity: 1 !important;
}

/* ============================================================
   HERO — layout : texte gauche centré, panneau don droite
   ============================================================ */

/* Fix Elementor "middle" → CSS center on columns */
.elementor-element-a1b2hero1.elementor-column > .elementor-widget-wrap,
.elementor-element-a1b2hero2.elementor-column > .elementor-widget-wrap {
  align-items: center !important;
  align-content: center !important;
}

/* Label eyebrow */
.lvtp-hero-label {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .18em !important;
  color: #ffffff !important;
  text-transform: uppercase !important;
  margin: 0 0 20px !important;
}

/* H1 hero — Oliver — spécificité renforcée pour écraser .lvtp-site h1 */
.lvtp-site .lvtp-hero-h1,
h1.lvtp-hero-h1 {
  font-size: clamp(26px, 2.8vw, 44px) !important;
  color: #fff !important;
  margin: 0 0 20px !important;
  line-height: 1.1 !important;
  letter-spacing: -.01em !important;
  max-width: 580px;
}

/* Subtitle héros */
.lvtp-hero-subtitle {
  font-size: var(--fs-p) !important;
  color: rgba(255,255,255,.68) !important;
  line-height: 1.65 !important;
  margin: 0 0 32px !important;
  max-width: 460px;
}

/* ── Panneau don (droite) ─────────────────────────────────── */
.lvtp-don-panel {
  background: #ffffff;
  border-radius: 20px;
  padding: 40px 36px 44px;
  box-shadow: 0 32px 96px rgba(0,0,0,.32);
  width: 100%;
  max-width: 480px;
  min-height: 420px;
}

/* Colonne droite : centrer et aligner le panneau */
.elementor-element-a1b2hero2.elementor-column > .elementor-widget-wrap {
  justify-content: center !important;
  padding: 0 !important;
}

/* ── Cartes CTA (conservées si réutilisées ailleurs) ──────── */
.lvtp-hero-card {
  display: flex;
  flex-direction: column;
  background: rgba(249,245,237,.96);
  color: var(--ev-dark);
  border-radius: 16px;
  padding: 22px 20px 18px;
  min-height: 160px;
  width: 180px;
  text-decoration: none;
  box-shadow: 0 8px 40px rgba(0,0,0,.25);
  transition: transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s;
  flex-shrink: 0;
}
.lvtp-hero-card:hover { transform: translateY(-6px); box-shadow: 0 20px 60px rgba(0,0,0,.32); }
.lvtp-hero-card--golden { background: var(--gp); min-height: 176px; }
.lvtp-hero-card--golden:hover { box-shadow: 0 20px 60px rgba(247,201,106,.5); }
.lvtp-hero-card__label { font-family: var(--font-s); font-size: 9px; text-transform: uppercase; letter-spacing: .16em; color: var(--ev-dark); opacity: .5; display: block; }
.lvtp-hero-card__title { font-family: var(--font-t); font-size: 15px; line-height: 1.2; color: var(--ev-dark); margin-top: 10px; display: block; flex: 1; }
.lvtp-hero-card__arrow { font-size: 22px; color: var(--ev-dark); opacity: .6; margin-top: 16px; display: block; transition: transform .25s, opacity .25s; align-self: flex-end; }
.lvtp-hero-card:hover .lvtp-hero-card__arrow { transform: translateX(5px); opacity: 1; }
.lvtp-hero-cards { display: flex; flex-direction: column; gap: 16px; align-items: flex-end; }

/* ============================================================
   PAGE ACCUEIL — Sections reconstruites
   ============================================================ */

/* ── Section label orange (eyebrow) ──────────────────────── */
.lvtp-section-label {
  font-size: 13px !important;
  font-weight: 400;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ps);
  margin: 0 0 16px !important;
  display: flex;
  align-items: center;
  gap: 10px;
}
.lvtp-section-label::before {
  content: '';
  display: inline-block;
  width: 24px; height: 2px;
  background: var(--ps);
  flex-shrink: 0;
}

/* ── Section header (centered or left) ───────────────────── */
.lvtp-section-header { margin-bottom: 0; }
.lvtp-section-title {
  font-size: clamp(36px, 4.5vw, 64px) !important;
  color: var(--ev) !important;
  line-height: 1.08 !important;
  letter-spacing: -.01em;
  margin: 0 !important;
}
.lvtp-section-header--left .lvtp-section-title { color: var(--ev) !important; }

/* ── Bloc "Pourquoi nous existons" ───────────────────────── */
.lvtp-pourquoi { max-width: 760px; margin: 0 auto; text-align: center; }
.lvtp-pourquoi .lvtp-section-label { justify-content: center; }
.lvtp-pourquoi .lvtp-section-label::before { display: none; }
.lvtp-pourquoi__body p {
  font-size: var(--fs-p) !important;
  line-height: 1.75;
  color: rgba(255,255,255,.78);
  margin: 0 0 20px !important;
}
.lvtp-pourquoi__body p:last-child { margin-bottom: 0 !important; }

/* ── Piliers ──────────────────────────────────────────────── */
.lvtp-pilier { padding-right: 40px; }
.lvtp-pilier__num {
  font-family: var(--font-s);
  font-size: 11px;
  letter-spacing: .2em;
  color: var(--ps);
  display: block;
  margin-bottom: 18px;
  opacity: .9;
}
.lvtp-pilier__title {
  font-size: var(--fs-h) !important;
  color: var(--ev) !important;
  line-height: 1.1 !important;
  margin: 0 0 20px !important;
}
.lvtp-pilier__desc {
  font-size: var(--fs-p) !important;
  line-height: 1.7 !important;
  color: var(--mg) !important;
  margin: 0 0 16px !important;
}
.lvtp-pilier__desc:last-child { margin-bottom: 0 !important; }
/* Light variant (dark background) */
.lvtp-pilier--light .lvtp-pilier__title { color: #fff !important; }
.lvtp-pilier--light .lvtp-pilier__desc  { color: rgba(255,255,255,.72) !important; }
.lvtp-pilier__num--light { color: var(--gp); }

/* ── Section "Pilier 01 Soutien" — image ronde droite ─────── */
.elementor-element-s3soutien .elementor-widget-image img {
  border-radius: 20px;
  aspect-ratio: 4/3;
  object-fit: cover;
}

/* ── Projets — cartes photo ───────────────────────────────── */
.lvtp-projet-meta { padding: 18px 0 8px; }

/* Région (h6 widget heading) */
.lvtp-projet-region .elementor-heading-title,
.lvtp-projet-region {
  font-size: 9px !important;
  text-transform: uppercase !important;
  letter-spacing: .18em !important;
  color: var(--ps) !important;
  display: block !important;
  margin: 0 0 8px !important;
}

/* Titre (h4 widget heading) — même style que noms parrains */
.lvtp-site .lvtp-projet-title h4.elementor-heading-title,
.lvtp-site .lvtp-projet-title .elementor-heading-title,
.lvtp-projet-title {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: var(--ev) !important;
  line-height: 1.2 !important;
  margin: 0 0 10px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* Description (text-editor) */
.lvtp-projet-desc,
.lvtp-projet-desc p {
  font-size: var(--fs-p) !important;
  line-height: 1.65 !important;
  color: var(--mg) !important;
  margin: 0 0 18px !important;
}

/* Padding bloc sous image */
.lvtp-projet-region,
.lvtp-projet-title,
.lvtp-projet-desc {
  padding: 0 !important;
}
.elementor-element-376c6ee > .elementor-widget-wrap,
.elementor-element-c7c1817 > .elementor-widget-wrap,
.elementor-element-bf4d3a5 > .elementor-widget-wrap {
  padding: 0 0 8px !important;
}
/* Espace entre image et texte */
.elementor-element-p1_region,
.elementor-element-p2_region,
.elementor-element-p3_region {
  margin-top: 16px !important;
}
/* Project card images */
.elementor-element-s4projets .elementor-widget-image img {
  aspect-ratio: 16/10;
  object-fit: cover;
  border-radius: 12px;
  width: 100%;
}
/* Align button at bottom */
.elementor-element-s4projets .elementor-widget-button { margin-top: auto; }

/* ── Le Forum image ───────────────────────────────────────── */
.elementor-element-s5forum .elementor-widget-image img {
  border-radius: 20px;
  aspect-ratio: 4/3;
  object-fit: cover;
  width: 100%;
}

/* ── CTA strip ────────────────────────────────────────────── */
.lvtp-cta-label {
  font-size: 10px !important;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--mg);
  text-align: center;
  margin: 0 0 14px !important;
}
.elementor-element-s6cta .elementor-widget-button .elementor-button {
  border-radius: 50px !important;
}
.elementor-element-s6cta .elementor-column .elementor-widget-wrap {
  align-items: center !important;
}

/* ── "Chaque don est une graine…" heading (golden section) ── */
.elementor-element-s_graine .elementor-heading-title {
  font-size: clamp(28px, 3vw, 42px) !important;
  color: var(--ev) !important;
  line-height: 1.1 !important;
}

/* ============================================================
   STATS STRIP — chiffres en Agrandir Narrow (glyphes complets)
   ============================================================ */
.lvtp-stats {
  background: var(--ev-dark);
  padding: 52px 0;
}
.lvtp-stats .elementor-widget-heading .elementor-heading-title {
  color: var(--gp) !important;
  font-size: clamp(40px, 5vw, 72px) !important;
  line-height: 1;
  letter-spacing: -.01em;
}
/* Stats labels — les labels h6 sont des heading widgets, les nombres sont des text-editors.
   On ne force plus la font-size ici pour laisser Elementor settings prendre le dessus. */
.lvtp-stats .elementor-widget-text-editor p,
.lvtp-stats .elementor-widget-text-editor {
  /* font-size retiré → contrôlé par Elementor widget settings */
  letter-spacing: .12em;
}

/* ============================================================
   SECTION LABELS — Agrandir Narrow, orange petites caps
   ============================================================ */
.lvtp-label,
[class*="lvtp-section"] .elementor-widget-heading h6 {
  font-size: 11px !important;
  font-weight: 400;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ps) !important;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}
.lvtp-label::before,
[class*="lvtp-section"] .elementor-widget-heading h6::before {
  content: '';
  display: inline-block;
  width: 28px; height: 2px;
  background: var(--ps);
  flex-shrink: 0;
}

/* ============================================================
   SECTION IMAGES — Aerra image style
   ============================================================ */
.elementor-widget-image img {
  border-radius: var(--r);
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--trans);
}

/* ============================================================
   CARDS PROJETS — Aerra card style
   ============================================================ */
.lvtp-card {
  background: var(--wh);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: var(--trans);
  height: 100%;
}
.lvtp-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
}
.lvtp-card img {
  width: 100%;
  height: 240px;
  object-fit: cover;
  transition: var(--trans);
}
.lvtp-card:hover img { transform: scale(1.05); }
.lvtp-card__body { padding: 28px 24px; }

/* ============================================================
   SECTION ALTERNANCE — Pattern Aerra
   ============================================================ */
/* Fond crème → sections normales */
.elementor-section {
  position: relative;
}



/* ============================================================
   AERRA — Diagonal clip dividers
   ============================================================ */
.lvtp-clip-bottom {
  clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
  padding-bottom: 120px !important;
}
.lvtp-clip-top {
  clip-path: polygon(0 12%, 100% 0, 100% 100%, 0 100%);
  padding-top: 120px !important;
}
.lvtp-clip-both {
  clip-path: polygon(0 6%, 100% 0, 100% 94%, 0 100%);
  padding: 120px 0 !important;
}

/* ============================================================
   AERRA COMPONENTS — Réutilisables
   ============================================================ */

/* Badge / tag */
.lvtp-tag {
  display: inline-block;
  font-family: var(--font-s);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: var(--rpill);
  background: rgba(28,61,44,.08);
  color: var(--ev);
  margin-bottom: 12px;
}

/* Big stat */
.lvtp-stat-big {
  font-family: var(--font-t);
  font-size: clamp(64px, 10vw, 120px);
  color: var(--gp);
  line-height: 1;
}

/* Quote block */
.lvtp-quote {
  font-family: var(--font-t);
  font-size: clamp(22px, 3vw, 36px);
  line-height: 1.3;
  color: var(--ev);
  position: relative;
  padding-left: 32px;
  border-left: 3px solid var(--gp);
}

/* Feature icon item */
.lvtp-feature {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(28,61,44,.08);
}
.lvtp-feature:last-child { border-bottom: none; }
.lvtp-feature__icon {
  width: 44px; height: 44px;
  background: var(--ev);
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  color: var(--gp);
  font-size: 20px;
  flex-shrink: 0;
}
.lvtp-feature__text h4 {
  font-family: var(--font-s);
  font-size: 13px;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--ev);
  margin-bottom: 4px;
}
.lvtp-feature__text p {
  font-family: var(--font-b);
  font-size: 14px;
  color: var(--mg);
  line-height: 1.6;
}

/* ============================================================
   AERRA ANIMATIONS
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  .elementor-widget {
    animation: fadeUp .6s cubic-bezier(.2,0,.4,1) both;
  }
  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
  }
}

/* ============================================================
   FOOTER
   ============================================================ */
#lvtp-footer {
  background: var(--ev-dark);
  color: rgba(255,255,255,.75);
}
.lvtp-footer__inner {
  max-width: var(--cw);
  margin: 0 auto;
  padding: 80px 48px 0;
  display: grid;
  grid-template-columns: 2fr 1fr 1.2fr 1.4fr;
  gap: 48px;
}
.lvtp-footer__logo {
  display: block;
  margin-bottom: 20px;
}
.lvtp-footer__logo-img,
.lvtp-footer__logo img {
  height: auto;
  width: 130px;
  filter: brightness(0) invert(1); /* logo blanc sur fond sombre */
  display: block;
}
.lvtp-footer__logo strong {
  font-family: var(--font-s);
  font-size: 14px;
  letter-spacing: .04em;
  color: var(--wh);
  display: block;
}
.lvtp-footer__logo span {
  font-family: var(--font-b);
  font-size: 11px;
  color: rgba(255,255,255,.4);
  display: block;
}
.lvtp-footer__tagline {
  font-family: var(--font-b);
  font-size: 14px;
  line-height: 1.7;
  color: rgba(255,255,255,.4);
  margin-bottom: 28px;
}
.lvtp-footer__socials { display: flex; gap: 10px; flex-wrap: wrap; }
.lvtp-footer__socials a {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.5);
  transition: var(--trans);
}
.lvtp-footer__socials a:hover { background: var(--gp); border-color: var(--gp); color: var(--ev); }
.lvtp-footer__socials svg { display: block; }

.lvtp-site h3.lvtp-footer__heading,
.lvtp-footer__heading {
  font-size: 19px !important;
  font-weight: 400 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--gp) !important;
  margin-bottom: 20px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid rgba(255,255,255,.06) !important;
}
.lvtp-footer__links li { margin-bottom: 10px; }
.lvtp-footer__links a {
  font-family: var(--font-b);
  font-size: 17px;
  color: rgba(255,255,255,.45);
  transition: var(--trans);
}
.lvtp-footer__links a:hover { color: var(--wh); padding-left: 4px; }
.lvtp-footer__cta-link { color: rgba(255,255,255,.7) !important; }
.lvtp-footer__cta-link:hover { color: var(--gp) !important; }

.lvtp-footer__address p {
  font-family: var(--font-b);
  font-size: 14px;
  line-height: 1.7;
  color: rgba(255,255,255,.4);
  margin-bottom: 8px;
}
.lvtp-footer__address a { color: rgba(255,255,255,.5); transition: var(--trans); }
.lvtp-footer__address a:hover { color: var(--gp); }

.lvtp-footer__bottom {
  margin-top: 56px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.lvtp-footer__bottom .lvtp-footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  grid-template-columns: none;
  padding: 20px 48px;
  gap: 16px;
}
.lvtp-footer__bottom span {
  font-family: var(--font-b);
  font-size: 13px;
  color: rgba(255,255,255,.3);
}
.lvtp-footer__legal { display: flex; gap: 24px; }
.lvtp-footer__legal a {
  font-family: var(--font-b);
  font-size: 13px;
  color: rgba(255,255,255,.3);
  transition: var(--trans);
}
.lvtp-footer__legal a:hover { color: rgba(255,255,255,.7); }

/* ============================================================
   SECTION "SANS VOUS" — Notre association : 3 cards
   ============================================================ */
.elementor-element-c4616210 {
  background-color: #f9f5ed !important;
  padding: 80px 0 !important;
}

/* Gap + alignement entre colonnes */
.elementor-element-c4616210 > .elementor-container {
  column-gap: 28px !important;
  align-items: stretch !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
}

/* Card base */
.elementor-element-dde5b7a6 > .elementor-widget-wrap,
.elementor-element-85aa655d > .elementor-widget-wrap,
.elementor-element-7dfe82b5 > .elementor-widget-wrap {
  background: #ffffff !important;
  border-radius: 16px !important;
  padding: 40px 32px 36px !important;
  box-shadow: 0 2px 18px rgba(28,61,44,.07) !important;
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  border-bottom: 4px solid var(--ev) !important;
  transition: transform .3s ease, box-shadow .3s ease !important;
}
.elementor-element-dde5b7a6:hover > .elementor-widget-wrap,
.elementor-element-85aa655d:hover > .elementor-widget-wrap,
.elementor-element-7dfe82b5:hover > .elementor-widget-wrap {
  transform: translateY(-5px) !important;
  box-shadow: 0 12px 40px rgba(28,61,44,.13) !important;
}
.elementor-element-85aa655d > .elementor-widget-wrap { border-bottom-color: var(--gp) !important; }
.elementor-element-7dfe82b5 > .elementor-widget-wrap { border-bottom-color: var(--ps) !important; }

/* Titres */
.elementor-element-dde5b7a6 h2,
.elementor-element-85aa655d h2,
.elementor-element-7dfe82b5 h2 {
  font-size: var(--fs-h) !important;
  color: var(--ev) !important;
  margin: 0 0 16px !important;
  line-height: 1.12 !important;
  letter-spacing: -.01em !important;
}

/* Corps */
.elementor-element-dde5b7a6 p,
.elementor-element-85aa655d p,
.elementor-element-7dfe82b5 p {
  font-size: var(--fs-p) !important;
  color: var(--mg) !important;
  line-height: 1.72 !important;
  flex-grow: 1 !important;
}

/* Bouton ancré en bas */
.elementor-element-dde5b7a6 .elementor-widget-button,
.elementor-element-85aa655d .elementor-widget-button,
.elementor-element-7dfe82b5 .elementor-widget-button {
  margin-top: 28px !important;
}

/* Responsive — empilement sur mobile */
@media (max-width: 767px) {
  .elementor-element-c4616210 > .elementor-container {
    flex-direction: column !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .elementor-element-dde5b7a6,
  .elementor-element-85aa655d,
  .elementor-element-7dfe82b5 {
    width: 100% !important;
    margin-bottom: 24px !important;
  }
}

/* ============================================================
   SECTION VALEURS — Notre association : 3 colonnes
   ============================================================ */

/* Section wrapper */
.elementor-element-95f552b8 {
  background-color: #f9f5ed !important;
  padding: 80px 0 !important;
}

/* Container gap + padding */
.elementor-element-95f552b8 > .elementor-container {
  column-gap: 28px !important;
  align-items: stretch !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
}

/* Cartes */
.elementor-element-8d79ca36 > .elementor-widget-wrap,
.elementor-element-0aba6ed8 > .elementor-widget-wrap,
.elementor-element-070b29de > .elementor-widget-wrap {
  background: #ffffff !important;
  border-radius: 16px !important;
  padding: 40px 32px 36px !important;
  box-shadow: 0 2px 18px rgba(28,61,44,.07) !important;
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  border-top: 4px solid var(--ev) !important;
  transition: transform .3s ease, box-shadow .3s ease !important;
}
.elementor-element-8d79ca36:hover > .elementor-widget-wrap,
.elementor-element-0aba6ed8:hover > .elementor-widget-wrap,
.elementor-element-070b29de:hover > .elementor-widget-wrap {
  transform: translateY(-5px) !important;
  box-shadow: 0 12px 40px rgba(28,61,44,.13) !important;
}
/* Accent couleur par valeur */
.elementor-element-0aba6ed8 > .elementor-widget-wrap { border-top-color: var(--gp) !important; }
.elementor-element-070b29de > .elementor-widget-wrap { border-top-color: var(--ps) !important; }

/* Emoji dans un cercle */
.elementor-element-8d79ca36 h2 img.emoji,
.elementor-element-0aba6ed8 h2 img.emoji,
.elementor-element-070b29de h2 img.emoji {
  width: 36px !important;
  height: 36px !important;
  background: #f9f5ed !important;
  border-radius: 50% !important;
  padding: 6px !important;
  display: inline-block !important;
  vertical-align: middle !important;
  margin-right: 10px !important;
}

/* Titres */
.elementor-element-8d79ca36 h2,
.elementor-element-0aba6ed8 h2,
.elementor-element-070b29de h2 {
  font-size: var(--fs-h) !important;
  color: var(--ev) !important;
  margin: 0 0 18px !important;
  line-height: 1.1 !important;
  letter-spacing: -.01em !important;
  display: flex !important;
  align-items: center !important;
}

/* Corps */
.elementor-element-8d79ca36 p,
.elementor-element-0aba6ed8 p,
.elementor-element-070b29de p {
  font-size: var(--fs-p) !important;
  color: var(--mg) !important;
  line-height: 1.72 !important;
  margin: 0 !important;
}

/* Responsive */
@media (max-width: 767px) {
  .elementor-element-95f552b8 > .elementor-container {
    flex-direction: column !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .elementor-element-8d79ca36,
  .elementor-element-0aba6ed8,
  .elementor-element-070b29de {
    width: 100% !important;
    margin-bottom: 20px !important;
  }
}

/* ============================================================
   SECTION VALEURS FONDAMENTALES — e-con containers (7d820f9)
   ============================================================ */

/* Fond vert foncé sur toute la section */
.elementor-element-7d820f9 {
  background-color: var(--ev) !important;
  padding: 80px 0 !important;
}

/* Titre de section : blanc */
.elementor-element-98337df h2,
.elementor-element-98337df h3,
.elementor-element-98337df p,
.elementor-element-98337df .elementor-text-editor {
  color: #ffffff !important;
}

/* Grille des 3 cartes */
.elementor-element-326c728 {
  gap: 24px !important;
  padding: 0 20px !important;
}

/* Chaque carte */
.elementor-element-d7fe55a,
.elementor-element-1c8a555,
.elementor-element-2996ccd {
  background: rgba(255,255,255,.10) !important;
  border-radius: 16px !important;
  padding: 36px 28px 32px !important;
  border-top: 3px solid rgba(255,255,255,.30) !important;
  transition: background .3s ease, transform .3s ease !important;
}
.elementor-element-d7fe55a:hover,
.elementor-element-1c8a555:hover,
.elementor-element-2996ccd:hover {
  background: rgba(255,255,255,.16) !important;
  transform: translateY(-4px) !important;
}

/* Titres */
.elementor-element-d7fe55a h2,
.elementor-element-1c8a555 h2,
.elementor-element-2996ccd h2 {
  font-size: var(--fs-h) !important;
  color: #ffffff !important;
  margin: 0 0 14px !important;
  line-height: 1.1 !important;
  letter-spacing: -.01em !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

/* Emoji dans un cercle discret */
.elementor-element-d7fe55a h2 img.emoji,
.elementor-element-1c8a555 h2 img.emoji,
.elementor-element-2996ccd h2 img.emoji {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.15) !important;
  padding: 5px !important;
  flex-shrink: 0 !important;
}

/* Corps */
.elementor-element-d7fe55a p,
.elementor-element-1c8a555 p,
.elementor-element-2996ccd p {
  font-size: var(--fs-p) !important;
  color: rgba(255,255,255,.82) !important;
  line-height: 1.7 !important;
  margin: 0 !important;
}

/* Responsive */
@media (max-width: 767px) {
  .elementor-element-326c728 {
    flex-direction: column !important;
    padding: 0 16px !important;
  }
}

/* ============================================================
   SECTION PARRAINS — Forum des peuples racines 2025
   ============================================================ */

/* Header : label h6 centré, sans trait */
.elementor-element-s5par_hlabel .elementor-heading-title {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--ps) !important;
  text-align: center !important;
}
.elementor-element-s5par_hlabel::before,
.elementor-element-s5par_hlabel .elementor-heading-title::before {
  display: none !important;
}
.elementor-element-s5par_hlabel {
  justify-content: center !important;
  text-align: center !important;
}
.elementor-element-s5par_htitle .elementor-heading-title {
  text-align: center !important;
  color: var(--ev) !important;
}

/* Container gap */
.elementor-element-s5par_grid > .elementor-container {
  column-gap: 32px !important;
}

/* ===== Grille "7 façons de soutenir" ===== */

/* Gap + hauteur égale — lignes 1 & 2 */
.elementor-element-cac2abe7 > .elementor-container,
.elementor-element-20480f5e > .elementor-container {
  column-gap: 28px !important;
  align-items: stretch !important;
}

/* Espacement entre les deux lignes */
.elementor-element-cac2abe7 {
  margin-bottom: 28px !important;
}

/* La colonne occupe toute la hauteur */
.elementor-element-cac2abe7 .elementor-column,
.elementor-element-20480f5e .elementor-column {
  display: flex !important;
  flex-direction: column !important;
}

/* Carte = colonne flex pour épingler le bouton en bas */
.elementor-element-cac2abe7 .elementor-widget-wrap.elementor-element-populated,
.elementor-element-20480f5e .elementor-widget-wrap.elementor-element-populated {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  border-top: 3px solid var(--ev) !important;
  border-radius: 16px !important;
  box-shadow: 0 2px 14px rgba(0,0,0,.07) !important;
  transition: transform .22s ease, box-shadow .22s ease !important;
  overflow: hidden !important;
}

/* Hover lift */
.elementor-element-cac2abe7 .elementor-column:hover .elementor-widget-wrap,
.elementor-element-20480f5e .elementor-column:hover .elementor-widget-wrap {
  transform: translateY(-5px) !important;
  box-shadow: 0 14px 36px rgba(0,0,0,.13) !important;
}

/* Bouton épinglé en bas */
.elementor-element-cac2abe7 .elementor-widget-button,
.elementor-element-20480f5e .elementor-widget-button {
  margin-top: auto !important;
}

/* Label N° — plus discret et raffiné */
.elementor-element-cac2abe7 .elementor-widget-heading:first-child .elementor-heading-title,
.elementor-element-20480f5e .elementor-widget-heading:first-child .elementor-heading-title {
  font-size: 10px !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--ev) !important;
  opacity: .55 !important;
  font-weight: 600 !important;
}

/* ===== Section "À la une" — grille dynamique [lvtp_actualites] ===== */

/* Grille 3 colonnes */
.lvtp-actu-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  align-items: stretch;
}

/* Carte */
.lvtp-actu-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(0,0,0,.07);
  transition: transform .24s ease, box-shadow .24s ease;
}
.lvtp-actu-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,.13);
}

/* Image — aspect ratio 3:2, zoom hover */
.lvtp-actu-img {
  display: block;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  flex-shrink: 0;
}
.lvtp-actu-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .5s ease;
}
.lvtp-actu-card:hover .lvtp-actu-img img {
  transform: scale(1.06);
}

/* Corps de la carte */
.lvtp-actu-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 20px 24px 24px;
}

/* Date */
.lvtp-actu-date {
  display: block;
  font-family: 'Agrandir Narrow', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #f17425;
  margin-bottom: 10px;
}

/* Titre */
.lvtp-actu-title {
  font-family: 'Oliver', sans-serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--ev);
  margin: 0 0 12px;
}
.lvtp-actu-title a { color: inherit; text-decoration: none; }
.lvtp-actu-title a:hover { color: var(--ev-mid); }

/* Extrait — 3 lignes max */
.lvtp-actu-excerpt {
  font-family: 'Agrandir Narrow', sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: #555;
  margin: 0 0 20px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Bouton "Lire la suite" épinglé en bas */
.lvtp-actu-btn {
  display: inline-block;
  margin-top: auto;
  align-self: flex-start;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ev);
  border: 1.5px solid var(--ev);
  border-radius: var(--rpill);
  padding: 10px 20px;
  text-decoration: none;
  transition: background .18s, color .18s;
}
.lvtp-actu-btn:hover { background: var(--ev); color: #fff; }

/* Responsive */
@media (max-width: 900px) { .lvtp-actu-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .lvtp-actu-grid { grid-template-columns: 1fr; } }

/* Colonne unique du widget HTML — prend toute la largeur */
.elementor-element-75b37941 .elementor-column,
.elementor-element-75b37941 .elementor-widget-wrap,
.elementor-element-75b37941 .elementor-widget-html {
  width: 100% !important;
  max-width: 100% !important;
}

/* Colonnes centrées */
.elementor-element-s5par_c1 > .elementor-widget-wrap,
.elementor-element-s5par_c2 > .elementor-widget-wrap,
.elementor-element-s5par_c3 > .elementor-widget-wrap {
  align-items: center !important;
  padding: 0 20px !important;
}

/* Photo en cercle */
.elementor-element-s5par_i1 img,
.elementor-element-s5par_i2 img,
.elementor-element-s5par_i3 img {
  border-radius: 50% !important;
  width: 130px !important;
  height: 130px !important;
  object-fit: cover !important;
  object-position: top center !important;
  margin: 0 auto !important;
  display: block !important;
}

/* Label rôle (h6) */
.elementor-element-s5par_l1 .elementor-heading-title,
.elementor-element-s5par_l2 .elementor-heading-title,
.elementor-element-s5par_l3 .elementor-heading-title {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--ps) !important;
  margin: 16px 0 6px !important;
}

/* Nom (h3) — override du global h3 42px */
.lvtp-site .lvtp-parrain-name h3.elementor-heading-title,
.lvtp-site .lvtp-parrain-name .elementor-heading-title {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: var(--ev) !important;
  line-height: 1.2 !important;
  margin: 0 0 12px !important;
}

/* Description */
.elementor-element-s5par_d1 p,
.elementor-element-s5par_d2 p,
.elementor-element-s5par_d3 p {
  font-size: 14px !important;
  color: var(--mg) !important;
  line-height: 1.72 !important;
  text-align: center !important;
  margin: 0 !important;
}

/* ============================================================
   BOUTONS — Couleurs par section (fix clé Elementor Free)
   ============================================================ */

/* Base communes à tous les boutons de la page d'accueil */
.elementor-element-s5btn .elementor-button,
.elementor-element-s4btn1 .elementor-button,
.elementor-element-s4btn2 .elementor-button,
.elementor-element-s4btn3 .elementor-button,
.elementor-element-s2w2b .elementor-button {
  background-color: var(--ev) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 50px !important;
  font-size: 11px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  padding: 12px 24px !important;
  transition: background-color .2s, transform .2s !important;
}
.elementor-element-s5btn .elementor-button:hover,
.elementor-element-s4btn1 .elementor-button:hover,
.elementor-element-s4btn2 .elementor-button:hover,
.elementor-element-s4btn3 .elementor-button:hover,
.elementor-element-s2w2b .elementor-button:hover {
  background-color: var(--ev-mid) !important;
  transform: translateY(-2px);
}

/* Forum button — doré sur fond vert foncé */
.elementor-element-s5btn .elementor-button {
  background-color: var(--gp) !important;
  color: var(--ev) !important;
}
.elementor-element-s5btn .elementor-button:hover {
  background-color: var(--gp-dark) !important;
  color: var(--ev) !important;
}

/* CTA strip buttons */
.elementor-element-s6btn1 .elementor-button {
  background-color: var(--ev) !important;
  color: #ffffff !important;
  border-radius: 50px !important;
  font-size: 12px !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  padding: 14px 28px !important;
  width: 100%;
}
.elementor-element-s6btn2 .elementor-button {
  background-color: var(--ev) !important;
  color: #ffffff !important;
  border-radius: 50px !important;
  font-size: 12px !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  padding: 14px 28px !important;
  width: 100%;
}
.elementor-element-s6btn3 .elementor-button {
  background-color: var(--gp) !important;
  color: var(--ev) !important;
  border-radius: 50px !important;
  font-size: 12px !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  padding: 14px 28px !important;
  width: 100%;
}
.elementor-element-s6btn1 .elementor-button:hover,
.elementor-element-s6btn2 .elementor-button:hover { background-color: var(--ev-mid) !important; }
.elementor-element-s6btn3 .elementor-button:hover { background-color: var(--gp-dark) !important; }

/* Bouton "Faire un don" dans la section graine */
.elementor-element-sg_btn .elementor-button {
  background-color: var(--ev) !important;
  color: #ffffff !important;
  border-radius: 50px !important;
  font-size: 11px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  padding: 12px 28px !important;
}
.elementor-element-sg_btn .elementor-button:hover { background-color: var(--ev-mid) !important; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1440px) {
  .lvtp-header__inner { padding: 0 32px; }
  .lvtp-footer__inner { padding-left: 32px; padding-right: 32px; }
  .lvtp-footer__bottom .lvtp-footer__inner { padding-left: 32px; padding-right: 32px; }
}

/* ============================================================
   MOBILE NAV OVERLAY — hors du header (évite le backdrop-filter containment)
   ============================================================ */
.lvtp-mobile-nav {
  display: none; /* caché par défaut */
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 9997;
  background: var(--ev-dark);
  padding: calc(var(--hh) + 24px) 32px 48px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.lvtp-mobile-nav.is-open {
  display: flex;
  flex-direction: column;
}
.lvtp-mobile-nav__list {
  list-style: none;
  padding: 0; margin: 0;
  flex: 1;
}
.lvtp-mobile-nav__list li {
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.lvtp-mobile-nav__list li a {
  display: block;
  font-family: var(--font-s);
  font-size: 20px;
  font-weight: 400;
  color: rgba(255,255,255,.85);
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 18px 4px;
  transition: var(--trans);
}
.lvtp-mobile-nav__list li a:hover,
.lvtp-mobile-nav__list .current-menu-item > a,
.lvtp-mobile-nav__list .current_page_item > a {
  color: var(--gp);
  padding-left: 12px;
}
/* Submenu mobile — indenté sous le parent */
.lvtp-mobile-nav__list .sub-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  border-left: 2px solid rgba(247,201,106,.3);
  margin-left: 16px;
  margin-bottom: 4px;
}
.lvtp-mobile-nav__list .sub-menu li {
  border-bottom: none;
}
.lvtp-mobile-nav__list .sub-menu li a {
  font-size: 15px;
  padding: 12px 8px 12px 16px;
  color: rgba(255,255,255,.6);
}
.lvtp-mobile-nav__list .sub-menu li a:hover {
  color: var(--gp);
  padding-left: 22px;
}
/* Chevron parent mobile */
.lvtp-mobile-nav__list .menu-item-has-children > a::after {
  content: ' ▾';
  opacity: .5;
  font-size: 12px;
}
.lvtp-mobile-nav__cta {
  display: inline-block;
  margin-top: 32px;
  font-family: var(--font-s);
  font-size: 14px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ev-dark);
  background: var(--gp);
  padding: 14px 32px;
  border-radius: var(--rpill);
  align-self: flex-start;
  transition: var(--trans);
}
.lvtp-mobile-nav__cta:hover {
  background: var(--ps);
  color: var(--wh);
}

/* 10-item nav → burger at 1200px */
@media (max-width: 1200px) {
  .lvtp-header__nav--desktop { display: none; }
  .lvtp-header__burger { display: flex; }
  body.nav-open { overflow: hidden; }
  .lvtp-footer__inner { grid-template-columns: 1fr 1fr; gap: 40px; padding: 60px 32px 0; }
}

@media (max-width: 900px) {
  :root { --hh: 64px; }
  .lvtp-header__inner { padding: 0 20px; }
  .elementor-section > .elementor-container {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  .lvtp-footer__inner { grid-template-columns: 1fr 1fr; padding: 48px 20px 0; }
  .lvtp-footer__bottom .lvtp-footer__inner { padding: 16px 20px; flex-direction: column; gap: 8px; text-align: center; }

  /* Hero mobile: panneau don pleine largeur */
  .lvtp-don-panel {
    max-width: 100%;
    min-height: auto;
    padding: 32px 24px 36px;
  }
  /* Cards si réutilisées */
  .lvtp-hero-cards { flex-direction: row; align-items: stretch; width: 100%; }
  .lvtp-hero-card { flex: 1; width: auto; min-height: 140px; }
  .lvtp-hero-card--golden { min-height: 140px; }
}

@media (max-width: 600px) {
  :root { --hh: 60px; }
  .lvtp-header__cta { display: none; }
  .lvtp-footer__inner { grid-template-columns: 1fr; gap: 32px; padding: 40px 20px 0; }
  .lvtp-clip-bottom, .lvtp-clip-top, .lvtp-clip-both { clip-path: none !important; }
}

@media print {
  #lvtp-header, #lvtp-footer { display: none !important; }
  .site-content { padding-top: 0 !important; }
}

/* ── CONTRIBUER PAGE ────────────────────────────────────────── */
/* Equal-height cards in 3-col rows */
.lvtp-site .elementor-widget-text-editor > .elementor-widget-container {
  height: 100%;
}
.lvtp-site .elementor-widget-text-editor > .elementor-widget-container > .elementor-text-editor {
  height: 100%;
}
.lvtp-site .elementor-widget-text-editor > .elementor-widget-container > .elementor-text-editor > div:first-child {
  height: 100%;
}

/* ── PAGE CONTACT — 7 façons de contribuer ─────────────────── */

/* Conteneur des 3 cartes : même hauteur, espacement */
.lvtp-contrib-row > .elementor-container {
  align-items: stretch !important;
  column-gap: 24px !important;
  padding: 0 40px !important;
}
.lvtp-contrib-row .elementor-column { display: flex !important; flex-direction: column !important; }

/* Carte — border-radius + shadow + hover */
.lvtp-contrib-col > .elementor-widget-wrap.elementor-element-populated {
  border-radius: 20px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 24px rgba(0,0,0,.10) !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}
.lvtp-contrib-col:hover > .elementor-widget-wrap {
  transform: translateY(-6px) !important;
  box-shadow: 0 16px 48px rgba(0,0,0,.16) !important;
}

/* H3 dans les cartes — plus compact */
.lvtp-contrib-col h3.elementor-heading-title {
  font-size: 26px !important;
  margin: 4px 0 20px !important;
  line-height: 1.1 !important;
}

/* H6 label niveau */
.lvtp-contrib-col h6.elementor-heading-title {
  font-size: 9px !important;
  letter-spacing: .2em !important;
  margin-bottom: 4px !important;
}

/* Icon-list — items séparés par une ligne discrète */
.lvtp-contrib-col .elementor-icon-list-items {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.lvtp-contrib-col .elementor-icon-list-item {
  padding: 10px 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
}
.lvtp-contrib-col .elementor-icon-list-item:last-child {
  border-bottom: none !important;
}
/* Carte or : séparateur sombre */
.elementor-element-sc_c1 .elementor-icon-list-item {
  border-bottom-color: rgba(28,61,44,.12) !important;
}

/* Texte icon-list — taille cohérente */
.lvtp-contrib-col .elementor-icon-list-text {
  font-size: 14px !important;
  font-weight: 500 !important;
}

/* Ligne boutons actions — espacée */
.elementor-element-sc_btns_row > .elementor-container {
  column-gap: 12px !important;
  padding: 0 40px !important;
  align-items: center !important;
}
.elementor-element-sc_btns_row .elementor-button {
  width: 100% !important;
  text-align: center !important;
  font-size: 10px !important;
  padding: 11px 14px !important;
  letter-spacing: .1em !important;
}

/* ── Impact / counters ─────────────────────────────────────── */
.lvtp-impact-col > .elementor-widget-wrap.elementor-element-populated {
  background: rgba(255,255,255,.07) !important;
  border-radius: 16px !important;
  text-align: center !important;
  border-top: 3px solid rgba(247,201,106,.5) !important;
  transition: background .25s ease !important;
}
.lvtp-impact-col:hover > .elementor-widget-wrap {
  background: rgba(255,255,255,.12) !important;
}

/* Numéros counter — or */
.lvtp-impact-col .elementor-counter-number-wrapper {
  color: #f7c96a !important;
  font-family: 'Oliver', cursive !important;
  font-size: clamp(36px, 4vw, 52px) !important;
  line-height: 1.1 !important;
}
/* Titre counter */
.lvtp-impact-col .elementor-counter-title {
  color: rgba(255,255,255,.65) !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

/* Row counters — espacement */
.elementor-element-sc_ctr_row > .elementor-container {
  column-gap: 20px !important;
  padding: 0 40px !important;
  align-items: stretch !important;
}

/* CTA final — centré */
.elementor-element-sc_cta_row > .elementor-container {
  column-gap: 16px !important;
  padding: 0 40px !important;
  align-items: center !important;
}

@media (max-width: 900px) {
  .lvtp-contrib-row > .elementor-container {
    flex-direction: column !important;
    padding: 0 20px !important;
  }
  .lvtp-contrib-col { width: 100% !important; margin-bottom: 16px !important; }
  .elementor-element-sc_ctr_row > .elementor-container { flex-wrap: wrap !important; padding: 0 20px !important; }
  .lvtp-impact-col { width: 50% !important; margin-bottom: 16px !important; }
  .elementor-element-sc_btns_row > .elementor-container { flex-wrap: wrap !important; padding: 0 20px !important; }
  .elementor-element-sc_btns_row .elementor-column { width: 50% !important; }
}
@media (max-width: 600px) {
  .lvtp-impact-col { width: 100% !important; }
  .elementor-element-sc_btns_row .elementor-column { width: 100% !important; }
}

/* ── TROMBINOSCOPE BÉNÉVOLES v2 — photo card + hover overlay ─── */

/* Rangées sans gouttière → photos jointives */
.lvtp-bene-row > .elementor-container {
  column-gap: 0 !important;
  padding: 0 !important;
  align-items: stretch !important;
}
.lvtp-bene-row { padding-bottom: 0 !important; }
.lvtp-bene-row:last-of-type { padding-bottom: 0 !important; }

/* Colonne = pleine photo */
.lvtp-bene-col { display: flex !important; flex-direction: column !important; }
.lvtp-bene-col > .elementor-widget-wrap.elementor-element-populated {
  position: relative !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  min-height: 340px !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  background-size: cover !important;
  background-position: center top !important;
}

/* Dégradé permanent (bas → transparent) + full cover au survol */
.lvtp-bene-col > .elementor-widget-wrap::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background: linear-gradient(to top, rgba(20,43,30,.92) 0%, rgba(20,43,30,.15) 55%, transparent 100%) !important;
  transition: background .35s ease !important;
}
.lvtp-bene-col:hover > .elementor-widget-wrap::before {
  background: rgba(20,43,30,.88) !important;
}

/* Tous les widgets au-dessus de l'overlay */
.lvtp-bene-col .elementor-widget {
  position: relative !important;
  z-index: 2 !important;
}

/* Spacer occupe l'espace supérieur → pousse le texte en bas */
.lvtp-bene-col .elementor-widget-spacer {
  flex: 1 !important;
  min-height: 0 !important;
}

/* Nom — blanc, toujours visible, glisse légèrement au survol */
.lvtp-bene-col .lvtp-bene-name h4.elementor-heading-title {
  font-family: 'Oliver', cursive !important;
  font-size: 18px !important;
  color: #fff !important;
  text-align: center !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin: 0 0 4px !important;
  padding: 0 16px !important;
  line-height: 1.25 !important;
  transition: transform .35s ease !important;
}
.lvtp-bene-col:hover .lvtp-bene-name h4.elementor-heading-title {
  transform: translateY(-4px) !important;
}

/* Citation — cachée par défaut, révélée au survol */
.lvtp-bene-quote {
  opacity: 0 !important;
  transform: translateY(10px) !important;
  transition: opacity .35s ease, transform .35s ease !important;
  pointer-events: none !important;
  padding: 0 16px 20px !important;
}
.lvtp-bene-col:hover .lvtp-bene-quote {
  opacity: 1 !important;
  transform: translateY(0) !important;
}
.lvtp-bene-quote .elementor-text-editor p {
  font-size: 12.5px !important;
  font-style: italic !important;
  color: rgba(255,255,255,.85) !important;
  line-height: 1.6 !important;
  text-align: center !important;
  margin: 0 !important;
}

@media (max-width: 900px) {
  .lvtp-bene-col > .elementor-widget-wrap.elementor-element-populated { min-height: 260px !important; }
  .lvtp-bene-col { width: 33.333% !important; }
}
@media (max-width: 600px) {
  .lvtp-bene-col { width: 50% !important; }
}