/* ═══════════════════════════════════════════════════
   RMIB Theme v8 — rmib-main.css
   Design Token Foundation + Full Component Library
   ═══════════════════════════════════════════════════ */

/* ── 1. DESIGN TOKENS ── */
:root {
  --verde-oscuro:      #2d5a1b;
  --verde-medio:       #4a7c2f;
  --verde-boton:       #3d7a2a;
  --verde-boton-hover: #2d5a1b;
  --verde-claro:       #e8f0e2;
  --rojo:              #c0392b;
  --rojo-hover:        #a93226;
  --dorado:            #c8892a;
  --dorado-claro:      #f5e6c8;
  --beige:             #f5f0e8;
  --beige-oscuro:      #ede6d8;
  --blanco:            #ffffff;
  --negro-tierra:      #0e1f09;
  --texto:             #1a1a1a;
  --texto-suave:       #4a4a4a;
  --texto-muted:       #888;
  --fuente-titulo:     'Merriweather', Georgia, serif;
  --fuente-cuerpo:     'Open Sans', system-ui, sans-serif;
  --text-xs:    0.72rem;
  --text-sm:    0.83rem;
  --text-base:  1rem;
  --text-md:    1.125rem;
  --text-lg:    clamp(1.2rem, 2vw, 1.5rem);
  --text-xl:    clamp(1.4rem, 2.5vw, 2rem);
  --text-2xl:   clamp(1.65rem, 3.2vw, 2.6rem);
  --text-3xl:   clamp(2rem, 4vw, 3.2rem);
  --space-1:  0.25rem; --space-2:  0.5rem;  --space-3:  0.75rem;
  --space-4:  1rem;    --space-5:  1.25rem; --space-6:  1.5rem;
  --space-8:  2rem;    --space-10: 2.5rem;  --space-12: 3rem;
  --space-16: 4rem;    --space-20: 5rem;    --space-24: 6rem;
  --container:    1200px;
  --container-sm: 720px;
  --container-md: 960px;
  --radius-sm:   4px;  --radius-md:   8px;
  --radius-lg:   12px; --radius-xl:   20px; --radius-pill: 9999px;
  --shadow-sm:  0 2px 8px rgba(0,0,0,.06);
  --shadow-md:  0 4px 16px rgba(0,0,0,.09);
  --shadow-lg:  0 8px 32px rgba(0,0,0,.15);
  --shadow-xl:  0 16px 48px rgba(0,0,0,.2);
  --transition-fast: 0.15s ease;
  --transition-base: 0.25s ease;
  --transition-slow: 0.45s ease;
  --z-sticky:   100;
  --z-dropdown: 200;
  --z-overlay:  500;
  --z-modal:    1000;
}

/* ── 2. RESET & BASE ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--fuente-cuerpo);
  font-size: var(--text-base);
  color: var(--texto);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  background: #fff;
}
h1,h2,h3,h4,h5 { font-family: var(--fuente-titulo); line-height: 1.25; color: var(--texto); font-weight: 700; }
h1 { font-size: var(--text-2xl); font-weight: 900; }
h2 { font-size: var(--text-xl); }
h3 { font-size: var(--text-lg); }
h4 { font-size: var(--text-md); }
p { line-height: 1.75; }
a { color: var(--verde-oscuro); text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0; }

/* Skip link */
.skip-link { position:absolute;top:-50px;left:1rem;background:var(--verde-oscuro);color:#fff;padding:.5rem 1rem;border-radius:var(--radius-sm);z-index:9999;transition:top .2s; }
.skip-link:focus { top:1rem; }

/* ── 3. LAYOUT UTILITIES ── */
.rmib-container { width:100%; max-width:var(--container); margin:0 auto; padding:0 var(--space-6); }
.rmib-section   { padding: var(--space-16) 1.5rem; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-12); align-items:center; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-6); }

/* ── 4. TYPOGRAPHY UTILITIES ── */
.section-eyebrow {
  font-family: var(--fuente-cuerpo);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--rojo);
  display: block;
  margin-bottom: var(--space-3);
}
.section-header { text-align: center; max-width: 720px; margin: 0 auto var(--space-10); }
.section-header h2 { margin-bottom: var(--space-4); }
.section-intro { font-size: var(--text-md); color: var(--texto-suave); line-height: 1.8; }

/* ════════════════════════════════════════
   IMÁGENES — Sistema global sin cortes
   Todas usan aspect-ratio + object-fit:cover
   + object-position:center para mantenerse
   completas en cualquier tamaño de pantalla
   ════════════════════════════════════════ */

/* Reset base — nunca overflow oculto sin razón */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ── Hero background ── */
.hero {
  display:flex; align-items:center;
  min-height: clamp(420px, 60vh, 640px);
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
.hero-slide {
  position:absolute; inset:0;
  background-size: cover !important;
  background-position: center center !important;
  opacity:0; transition:opacity 1s ease;
}
.hero-slide.active { opacity:1; }

/* ── Video de fondo ── */
.hero-video video {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position: center center;
}

/* ── Guardianas — fotos ── */
.photo-box {
  border-radius:var(--radius-md);
  overflow:hidden;
  position:relative;
}
.photo-box img {
  width:100%;
  height:100%;
  object-fit: cover;
  object-position: center top; /* muestra la cara, no los pies */
  display:block;
}
.ph-1 { aspect-ratio: 3/4; min-height: unset; }
.ph-2, .ph-3 { aspect-ratio: 4/3; min-height: unset; }

/* ── Logo ── */
.logo-img {
  object-fit: contain;
  object-position: left center;
  width: auto;
  max-width: var(--logo-max-width, 160px);
  height: var(--logo-height, 52px);
  display: block;
}

/* ── Pilares ── */
.pilar-img {
  aspect-ratio: 16/7;
  border-radius: var(--radius-sm);
  overflow: hidden;
  margin-bottom: var(--space-5);
  height: unset; /* elimina height fijo */
}
.pilar-img img {
  width:100%; height:100%;
  object-fit:cover;
  object-position: center center;
}

/* ── Lideresas — foto de perfil ── */
.voz-foto {
  width:80px; height:80px;
  border-radius:50%; overflow:hidden;
  margin:0 auto var(--space-4);
  border:3px solid #fff;
  box-shadow:var(--shadow-sm);
  flex-shrink:0;
}
.voz-foto img {
  width:100%; height:100%;
  object-fit:cover;
  object-position: center top;
}

/* ── Citas — foto circular ── */
.cita-foto {
  width:88px; height:88px;
  border-radius:50%;
  object-fit:cover;
  object-position: center top;
  border:4px solid var(--dorado);
  flex-shrink:0;
}

/* ── Territorio ── */
.territorio-img-wrap {
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.territorio-img-wrap img {
  width:100%;
  aspect-ratio: 4/3;
  height: unset; /* quita los 480px fijos */
  object-fit:cover;
  object-position: center center;
}
.territorio-foto {
  border-radius:var(--radius-sm);
  overflow:hidden; position:relative;
}
.territorio-foto img {
  width:100%;
  aspect-ratio: 4/3;
  height: unset;
  object-fit:cover;
  object-position: center center;
}

/* ── Timeline ── */
.tl-foto-wrap {
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.tl-foto-wrap img {
  width:100%;
  aspect-ratio: 16/9;
  height: unset;
  object-fit:cover;
  object-position: center center;
}

/* ── Tarjetas de trabajo / proyectos ── */
.card-img {
  aspect-ratio: 16/9;
  height: unset; /* quita los 160px fijos */
  overflow:hidden;
}
.card-img img {
  width:100%; height:100%;
  object-fit:cover;
  object-position: center center;
  transition:transform .4s ease;
}
.trabajo-card:hover .card-img img { transform:scale(1.04); }

/* ── Carrusel de imágenes ── */
.carrusel-item {
  border-radius:var(--radius-md);
  overflow:hidden;
  position:relative;
  aspect-ratio: 4/3; /* relación fija, nunca se corta */
  cursor:pointer;
}
.carrusel-item img {
  width:100%; height:100%;
  object-fit:cover;
  object-position: center center;
}

/* ── Novedades ── */
.nov-img-wrap {
  aspect-ratio: 16/9;
  height: unset; /* quita los 280px fijos */
  overflow:hidden;
}
.nov-img-wrap img {
  width:100%; height:100%;
  object-fit:cover;
  object-position: center top;
  transition:transform .4s ease;
}
.nov-featured:hover .nov-img-wrap img { transform:scale(1.03); }
.nov-small-img-wrap {
  width:120px; flex-shrink:0;
  overflow:hidden;
  aspect-ratio: 1/1;
  height: unset;
}
.nov-small-img-wrap img {
  width:100%; height:100%;
  object-fit:cover;
  object-position: center top;
}

/* ── Fondos / Aliados — logos (no se deben cortar, usar contain) ── */
.fondo-logo-wrap {
  height:80px; display:flex;
  align-items:center; justify-content:center;
  margin-bottom:var(--space-4);
}
.fondo-logo-wrap img {
  max-height:80px; max-width:160px;
  object-fit: contain; /* logos: contain, no cover */
  object-position: center center;
  filter:grayscale(30%);
  transition:filter var(--transition-base);
}
.fondo-card:hover .fondo-logo-wrap img { filter:grayscale(0); }
.aliado-item img {
  max-height:60px; max-width:140px;
  object-fit: contain;
  object-position: center center;
  margin:0 auto;
  filter:grayscale(60%);
  transition:filter var(--transition-base);
}
.aliado-item:hover img { filter:grayscale(0); }

/* ── Mega menú ── */
.mega-col-img {
  width:200px; position:relative;
  overflow:hidden;
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  flex-shrink:0;
}
.mega-col-img img {
  width:100%; height:100%;
  object-fit:cover;
  object-position: center center;
}

/* ── Popup ── */
.rmib-popup-img {
  width:100%;
  aspect-ratio: 16/7;
  height: unset;
  object-fit:cover;
  object-position: center center;
  display:block;
}

/* ── Lightbox — imagen completa sin cortes ── */
.rmib-lightbox img {
  max-width:92vw;
  max-height:90vh;
  object-fit: contain; /* contain: imagen completa visible */
  object-position: center center;
  border-radius:var(--radius-sm);
  width: auto;
  height: auto;
}

/* ── Footer logo ── */
.footer-logo-img {
  width:auto;
  max-width:200px;
  max-height:70px;
  object-fit: contain;
  object-position: left center;
  margin-bottom:var(--space-4);
  display:block;
}

/* ── Responsive — imágenes en móvil ── */
@media (max-width: 768px) {
  .ph-1 { aspect-ratio: 4/3; }
  .territorio-img-wrap img { aspect-ratio: 16/9; }
  .nov-img-wrap { aspect-ratio: 16/9; }
  .nov-small-img-wrap { width:90px; }
  .voz-foto { width:70px; height:70px; }
}
@media (max-width: 640px) {
  .hero { min-height: clamp(320px, 50vh, 480px); }
  .card-img { aspect-ratio: 16/9; }
  .carrusel-item { aspect-ratio: 3/2; }
}
.rmib-fade-in { opacity:0; transform:translateY(28px); transition:opacity 0.65s ease, transform 0.65s ease; }
.rmib-fade-in.rmib-visible { opacity:1; transform:none; }
.rmib-stagger > * { opacity:0; transform:translateY(20px); transition:opacity 0.45s ease, transform 0.45s ease; }
.rmib-stagger.rmib-visible > *:nth-child(1) { transition-delay:.05s; }
.rmib-stagger.rmib-visible > *:nth-child(2) { transition-delay:.12s; }
.rmib-stagger.rmib-visible > *:nth-child(3) { transition-delay:.19s; }
.rmib-stagger.rmib-visible > *:nth-child(4) { transition-delay:.26s; }
.rmib-stagger.rmib-visible > *:nth-child(5) { transition-delay:.33s; }
.rmib-stagger.rmib-visible > *:nth-child(6) { transition-delay:.40s; }
.rmib-stagger.rmib-visible > * { opacity:1; transform:none; }
.img-zoom { overflow:hidden; }
.img-zoom img { transition:transform 0.4s ease; }
.img-zoom:hover img { transform:scale(1.06); }
.card { transition:transform var(--transition-base), box-shadow var(--transition-base); }
.card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
@media (prefers-reduced-motion: reduce) {
  .rmib-fade-in,.rmib-stagger > * { transition:none; opacity:1; transform:none; }
  .card:hover { transform:none; }
  html { scroll-behavior:auto; }
  * { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* ── 6. BUTTONS ── */
.btn {
  display:inline-flex; align-items:center; gap:var(--space-2);
  padding:.72rem 1.6rem;
  font-family:var(--fuente-cuerpo); font-size:var(--text-sm); font-weight:700;
  text-decoration:none; border-radius:var(--radius-sm); border:2px solid transparent;
  cursor:pointer; transition:background var(--transition-base), color var(--transition-base),
    transform var(--transition-fast), box-shadow var(--transition-base);
  white-space:nowrap; line-height:1; text-transform:uppercase; letter-spacing:.06em;
}
.btn:hover   { transform:translateY(-2px); }
.btn:active  { transform:translateY(0); }
.btn:focus-visible { outline:3px solid var(--dorado); outline-offset:3px; }
.btn-primary, .btn-rojo   { background:var(--rojo); color:#fff; }
.btn-primary:hover         { background:var(--rojo-hover); color:#fff; }
.btn-secondary, .btn-verde { background:var(--verde-boton); color:#fff; }
.btn-secondary:hover       { background:var(--verde-boton-hover); color:#fff; }
.btn-outline {
  background:transparent; color:var(--verde-oscuro);
  border-color:var(--verde-oscuro);
}
.btn-outline:hover { background:var(--verde-oscuro); color:#fff; }
.btn-donar {
  background:var(--rojo); color:#fff;
  font-size:var(--text-base); padding:1rem 2.5rem;
  border-radius:var(--radius-md); box-shadow:var(--shadow-md);
  letter-spacing:.04em; border:none; cursor:pointer;
  transition:all var(--transition-base);
  display:block; width:100%; text-align:center;
}
.btn-donar:hover { background:var(--rojo-hover); box-shadow:var(--shadow-lg); transform:translateY(-3px); }
.btn-group { display:flex; gap:.75rem; flex-wrap:wrap; }

/* ── 7. TOPBAR ── */
.topbar {
  background:var(--verde-oscuro); color:rgba(255,255,255,.85);
  font-size:var(--text-xs); padding:.4rem 1.5rem;
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:.5rem;
}
.topbar a { color:rgba(255,255,255,.85); text-decoration:none; }
.topbar a:hover { color:#fff; }
.topbar-right { display:flex; align-items:center; gap:.5rem; }
.topbar-sep { opacity:.4; }
.topbar-social { display:flex; gap:.35rem; }
.topbar-soc { color:rgba(255,255,255,.7); transition:color var(--transition-fast); }
.topbar-soc:hover { color:#fff; }

/* ── 8. HEADER ── */
.site-header {
  background:#fff;
  box-shadow:var(--shadow-sm);
  position:sticky;
  top:0;
  z-index:var(--z-sticky);
  transition:
    background var(--transition-base),
    box-shadow var(--transition-base),
    backdrop-filter var(--transition-base),
    height var(--transition-base);
}
/* Sticky shrink + blur effect on scroll */
.site-header.scrolled {
  background:rgba(255,255,255,0.93);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:0 2px 20px rgba(0,0,0,.10);
}
/* Transparent over hero */
.header-transparent:not(.scrolled) {
  background:transparent;
  box-shadow:none;
}
.header-transparent:not(.scrolled) .logo-line1,
.header-transparent:not(.scrolled) .logo-line2,
.header-transparent:not(.scrolled) .logo-line3 { color:rgba(255,255,255,.9); }
.header-transparent:not(.scrolled) .nav-links a { color:rgba(255,255,255,.88); }
.header-transparent:not(.scrolled) .nav-links a:hover { background:rgba(255,255,255,.15); color:#fff; }
.header-transparent:not(.scrolled) .hamburger-bar { background:#fff; }

.header-inner {
  height:76px;
  display:flex;
  flex-direction:row;        /* ← garantiza fila */
  align-items:center;
  justify-content:space-between;
  gap:var(--space-4);
  flex-wrap:nowrap;          /* ← nunca wrap al siguiente renglón */
}
.header-sticky.sticky-shrink { box-shadow:var(--shadow-md); }

/* ── LOGO (siempre izquierda) ── */
.logo-area {
  display:flex;
  align-items:center;
  gap:.65rem;
  text-decoration:none;
  flex-shrink:0;             /* ← no se encoge */
  flex-grow:0;               /* ← no crece */
}
.logo-img {
  object-fit:contain;
  width:auto;
  max-width:var(--logo-max-width, 160px);
  height:var(--logo-height, 52px);
  display:block;
}
.logo-text-block { display:flex; flex-direction:column; line-height:1.2; }
.logo-line1 { font-family:var(--fuente-titulo); font-size:.72rem; font-weight:700; color:var(--verde-oscuro); transition:color var(--transition-base); }
.logo-line2 { font-family:var(--fuente-titulo); font-size:.65rem; color:var(--texto-suave); transition:color var(--transition-base); }
.logo-line3 { font-family:var(--fuente-cuerpo); font-size:.6rem; color:var(--texto-muted); letter-spacing:.05em; text-transform:uppercase; transition:color var(--transition-base); }

/* ── NAVEGACIÓN (siempre derecha) ── */
nav {
  display:flex;
  align-items:center;
  margin-left:auto;          /* ← empuja a la derecha */
  flex-shrink:1;
  min-width:0;
}
/* Override de WordPress: el <ul> generado por wp_nav_menu */
.nav-links,
nav > ul,
nav ul.menu,
nav ul.nav-links {
  list-style:none;
  display:flex;
  flex-direction:row;        /* ← fuerza horizontal */
  align-items:center;
  gap:.1rem;
  margin:0;
  padding:0;
  flex-wrap:nowrap;
}
.nav-links a,
nav ul.menu li a,
nav ul.nav-links li a {
  font-size:var(--text-sm);
  font-weight:600;
  color:var(--texto-suave);
  padding:.48rem .65rem;
  border-radius:var(--radius-sm);
  display:flex;
  align-items:center;
  gap:.2rem;
  transition:color var(--transition-fast), background var(--transition-fast);
  text-decoration:none;
  white-space:nowrap;
}
.nav-links a:hover,
nav ul.menu li a:hover { color:var(--verde-oscuro); background:var(--verde-claro); }
.nav-links > li,
nav ul.menu > li { position:relative; list-style:none; }
.nav-arrow { font-size:.6rem; opacity:.6; }

/* ── Nav action buttons ─ sobrescriben para WP nav menus ── */
.nav-btns-group,
nav ul li.nav-btns-group { display:flex; align-items:center; gap:.4rem; margin-left:.35rem; list-style:none; }

/* Dropdown */
.nav-item { position:relative; }
.dropdown {
  display:none; position:absolute; top:calc(100% + 8px); left:0;
  background:#fff; border-radius:var(--radius-md); box-shadow:var(--shadow-lg);
  min-width:200px; padding:.5rem; z-index:var(--z-dropdown);
  border-top:3px solid var(--verde-oscuro);
}
.dropdown a {
  display:block; padding:.55rem .9rem; border-radius:var(--radius-sm);
  font-size:var(--text-sm); color:var(--texto);
}
.dropdown a:hover { background:var(--verde-claro); color:var(--verde-oscuro); }
.nav-item:hover .dropdown, .nav-item:focus-within .dropdown { display:block; }

/* Mega menu */
.nav-item.mega .dropdown { min-width:520px; display:none; flex-direction:row; gap:0; padding:0; }
.nav-item.mega:hover .dropdown { display:flex; }
.mega-col-links { padding:1rem; flex:1; }
.mega-col-links h4 { font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.12em; color:var(--texto-muted); margin-bottom:.5rem; padding:.5rem .9rem 0; }
.mega-col-img { width:200px; position:relative; overflow:hidden; border-radius:0 var(--radius-md) var(--radius-md) 0; flex-shrink:0; }
.mega-col-img img { width:100%; height:100%; object-fit:cover; }
.mega-col-img-overlay { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(0,0,0,.7)); padding:1rem; }
.mega-col-img-overlay h3 { color:#fff; font-size:var(--text-sm); margin-bottom:.25rem; }
.mega-col-img-overlay p  { color:rgba(255,255,255,.8); font-size:var(--text-xs); }

/* Nav action buttons */
.nav-btns-group { display:flex; align-items:center; gap:.5rem; margin-left:.5rem; }
.nav-donate { background:var(--rojo); color:#fff; border-radius:var(--radius-sm); padding:.5rem 1rem; font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.nav-donate:hover { background:var(--rojo-hover); color:#fff; transform:translateY(-1px); }
.rmib-login-btn { background:var(--verde-oscuro); color:#fff; border-radius:var(--radius-sm); padding:.5rem 1rem; font-size:var(--text-xs); font-weight:700; }
.rmib-login-btn:hover { background:var(--verde-boton); color:#fff; }
.nav-social-icons { display:flex; align-items:center; gap:.3rem; margin:0 .25rem; }
.nav-soc { color:var(--texto-suave); transition:color var(--transition-fast); display:flex; align-items:center; }
.nav-soc:hover { color:var(--verde-oscuro); }

/* Hamburger */
.nav-hamburger {
  display:none; flex-direction:column; justify-content:center; gap:5px;
  background:none; border:none; cursor:pointer; padding:.5rem;
  width:40px; height:40px; margin-left:auto;
}
.hamburger-bar { width:22px; height:2px; background:var(--texto); border-radius:2px; transition:all var(--transition-base); }
.nav-hamburger[aria-expanded="true"] .hamburger-bar:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.nav-hamburger[aria-expanded="true"] .hamburger-bar:nth-child(2) { opacity:0; }
.nav-hamburger[aria-expanded="true"] .hamburger-bar:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* Alerta banner */
.rmib-alerta-banner {
  background:var(--rojo); color:#fff; text-align:center;
  padding:.55rem 1.5rem; font-size:var(--text-sm); font-weight:600;
}
.rmib-alerta-banner a { color:#fff; text-decoration:underline; margin-left:.35rem; }

/* Sub-menu anclas */
.rmib-submenu {
  background:var(--beige); border-bottom:1px solid var(--beige-oscuro);
  z-index:calc(var(--z-sticky) - 1);
}
.rmib-submenu-sticky { position:sticky; top:76px; }
.rmib-submenu-inner { display:flex; align-items:center; gap:0; overflow-x:auto; padding:.1rem 0; }
.rmib-submenu-link {
  padding:.55rem 1rem; font-size:var(--text-xs); font-weight:600;
  text-transform:uppercase; letter-spacing:.1em; color:var(--verde-oscuro);
  text-decoration:none; border-bottom:2px solid transparent; white-space:nowrap;
  transition:color var(--transition-fast), border-color var(--transition-fast);
}
.rmib-submenu-link:hover, .rmib-submenu-link.active { color:var(--rojo); border-bottom-color:var(--rojo); }

/* Sidebar menu */
.sidebar-menu-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:calc(var(--z-overlay)-1); }
.sidebar-menu-overlay.open { display:block; }
.sidebar-menu {
  position:fixed; top:0; right:-100%; width:min(320px,85vw); height:100vh;
  background:#fff; z-index:var(--z-overlay); overflow-y:auto;
  transition:right var(--transition-slow); box-shadow:var(--shadow-xl);
  display:flex; flex-direction:column;
}
.sidebar-menu.open { right:0; }
.sidebar-header { display:flex; justify-content:space-between; align-items:center; padding:var(--space-6); border-bottom:1px solid var(--beige-oscuro); }
.sidebar-close { background:none; border:none; font-size:1.5rem; cursor:pointer; color:var(--texto); }
.sidebar-nav { padding:var(--space-4) var(--space-6); display:flex; flex-direction:column; gap:.25rem; }
.sidebar-nav a { padding:var(--space-3) var(--space-2); font-size:var(--text-base); color:var(--texto); border-radius:var(--radius-sm); }
.sidebar-nav a:hover { background:var(--verde-claro); }
.sidebar-trigger { background:var(--verde-oscuro); color:#fff; border:none; padding:.5rem 1rem; border-radius:var(--radius-sm); cursor:pointer; font-weight:700; }
.sidebar-divider { height:1px; background:var(--beige-oscuro); margin:.5rem 0; }

/* ── 9. HERO ── */
.hero { display:flex; align-items:center; min-height:560px; }
.hero-inner { padding:var(--space-16) 0; }
.hero-content { max-width:580px; }
.hero-tag {
  display:inline-block; background:rgba(255,255,255,.15); color:#fff;
  font-size:var(--text-xs); font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  padding:.35rem .85rem; border-radius:var(--radius-pill); margin-bottom:var(--space-4);
  border:1px solid rgba(255,255,255,.25);
}
.hero-content h1 { color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.55); margin-bottom:var(--space-5); }
.hero-sub { color:rgba(255,255,255,.85); font-size:var(--text-md); margin-bottom:var(--space-6); }
.hero-frase { border-left:3px solid var(--dorado); padding-left:var(--space-5); margin:var(--space-5) 0; }
.hero-frase p { color:rgba(255,255,255,.8); font-style:italic; font-family:var(--fuente-titulo); }
.hero-buttons { display:flex; gap:var(--space-4); flex-wrap:wrap; margin-top:var(--space-6); }
.hero-slider { position:absolute; inset:0; }
.hero-slide { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1s ease; }
.hero-slide.active { opacity:1; }

/* ── 10. GUARDIANAS ── */
.guardianas-section { background:#fff; }
.guardianas-inner { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-16); align-items:center; max-width:var(--container); margin:0 auto; }
.guardianas-text h2 { margin:var(--space-3) 0 var(--space-5); }
.guardianas-text p { color:var(--texto-suave); line-height:1.8; margin-bottom:var(--space-4); }
.guardianas-photos { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:var(--space-3); }
.photo-label { position:absolute; bottom:0; left:0; right:0; background:rgba(0,0,0,.55); color:#fff; font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.1em; padding:.4rem .75rem; }

/* ── 11. STATS ── */
.stats-section { background:var(--verde-oscuro); padding:var(--space-12) 1.5rem; }
.stats-inner { max-width:var(--container); margin:0 auto; }
.stats-grid { display:flex; flex-direction:row; justify-content:space-around; align-items:center; flex-wrap:wrap; gap:var(--space-8); width:100%; }
.stat-item { text-align:center; flex:1; min-width:140px; }
.stat-icono { font-size:2rem; display:block; margin-bottom:.5rem; }
.stat-number { font-family:var(--fuente-titulo); font-size:var(--text-3xl); font-weight:900; color:#fff; line-height:1; }
.stat-label { font-size:var(--text-sm); color:rgba(255,255,255,.75); margin-top:.35rem; text-transform:uppercase; letter-spacing:.1em; }

/* ── 12. PILARES ── */
.pilares-section { background:var(--beige); }
.pilares-inner { max-width:var(--container); margin:0 auto; }
.pilares-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.pilar-card { background:#fff; border-radius:var(--radius-md); padding:var(--space-8); text-align:center; box-shadow:var(--shadow-sm); }
.pilar-icon { font-size:3rem; margin-bottom:var(--space-5); display:block; }
.pilar-card h3 { color:var(--verde-oscuro); margin-bottom:var(--space-3); }
.pilar-card p { color:var(--texto-suave); font-size:var(--text-sm); line-height:1.75; }
.pilar-link { display:inline-block; margin-top:var(--space-4); font-size:var(--text-sm); font-weight:700; color:var(--verde-oscuro); }

/* ── 13. PRINCIPIOS ── */
.principios-section { color:#fff; }
.principios-inner { max-width:var(--container); margin:0 auto; }
.principios-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-6); margin-top:var(--space-8); }
.principio-item { display:flex; gap:var(--space-5); align-items:flex-start; padding:var(--space-6); background:rgba(255,255,255,.08); border-radius:var(--radius-md); border:1px solid rgba(255,255,255,.12); transition:background var(--transition-base); }
.principio-item:hover { background:rgba(255,255,255,.13); }
.principio-icon { font-size:2.2rem; flex-shrink:0; }
.principio-body h3 { color:var(--dorado); margin-bottom:var(--space-2); font-size:var(--text-md); }
.principio-body p { color:rgba(255,255,255,.75); font-size:var(--text-sm); line-height:1.75; }

/* ── 14. LIDERESAS ── */
.equipo-section { background:var(--beige); }
.equipo-inner { max-width:var(--container); margin:0 auto; }
.lid-filtros { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; margin-bottom:var(--space-8); }
.lid-filtro-btn { background:var(--beige-oscuro); border:none; border-radius:var(--radius-pill); padding:.4rem 1rem; font-size:var(--text-xs); font-weight:700; cursor:pointer; transition:all var(--transition-fast); color:var(--texto-suave); font-family:var(--fuente-cuerpo); }
.lid-filtro-btn:hover { background:var(--verde-claro); color:var(--verde-oscuro); }
.lid-filtro-btn.active { background:var(--verde-oscuro); color:#fff; }
.lid-filtro-btn:focus-visible { outline:3px solid var(--dorado); outline-offset:2px; }
.voz-card.lid-hidden { display:none; }
.voces-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.voz-card { background:#fff; border-radius:var(--radius-md); padding:var(--space-6); text-align:center; box-shadow:var(--shadow-sm); }
.voz-avatar { font-size:2.5rem; margin-bottom:var(--space-4); display:block; }
.voz-nombre { font-family:var(--fuente-titulo); font-weight:700; font-size:var(--text-md); color:var(--verde-oscuro); margin-bottom:.2rem; }
.voz-pueblo { font-size:var(--text-xs); color:var(--dorado); font-weight:700; text-transform:uppercase; letter-spacing:.1em; margin-bottom:.2rem; }
.voz-cargo { font-size:var(--text-xs); color:var(--texto-suave); margin-bottom:var(--space-3); }
.voz-cita { font-style:italic; font-size:var(--text-sm); color:var(--texto-suave); line-height:1.7; border-left:2px solid var(--dorado); padding-left:var(--space-3); text-align:left; }
.voz-link { font-size:var(--text-xs); color:var(--verde-oscuro); font-weight:700; margin-top:var(--space-3); display:inline-block; }

/* ── 15. TERRITORIO ── */
.territorio-section { background:#fff; }
.territorio-inner { display:grid; grid-template-columns:1fr 1.2fr; gap:var(--space-16); align-items:center; max-width:var(--container); margin:0 auto; }
.territorio-text h2 { margin:var(--space-3) 0 var(--space-5); color:var(--verde-oscuro); }
.territorio-text .section-intro { margin-bottom:var(--space-8); }
.territorio-stats { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-4); margin-top:var(--space-6); }
.territorio-stat { padding:var(--space-4); background:var(--beige); border-radius:var(--radius-md); text-align:center; }
.territorio-stat-num { font-family:var(--fuente-titulo); font-size:var(--text-xl); font-weight:900; color:var(--verde-oscuro); }
.territorio-stat-label { font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.1em; color:var(--texto-suave); margin-top:.2rem; }
.territorio-video-wrap { border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:16/9; }
.territorio-video-wrap iframe { width:100%; height:100%; border:none; }
.territorio-galeria { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); }
.territorio-placeholder { text-align:center; padding:var(--space-16); background:var(--beige); border-radius:var(--radius-lg); font-size:2rem; color:var(--texto-muted); }
.territorio-mapa-wrap { border-radius:var(--radius-lg); overflow:hidden; }
.territorio-mapa-wrap iframe { width:100%; height:400px; border:none; }

/* ── 16. TIMELINE ── */
.timeline-section { background:var(--beige); }
.timeline-inner { max-width:var(--container); margin:0 auto; }
.timeline { position:relative; }
.timeline::before { content:''; position:absolute; left:50%; top:0; bottom:0; width:2px; background:var(--verde-claro); transform:translateX(-50%); }
.tl-item { display:grid; grid-template-columns:1fr 40px 1fr; gap:var(--space-6); align-items:center; margin-bottom:var(--space-10); }
.tl-dot { width:16px; height:16px; background:var(--verde-oscuro); border-radius:50%; border:3px solid #fff; box-shadow:0 0 0 3px var(--verde-oscuro); justify-self:center; }
.tl-content { background:#fff; border-radius:var(--radius-md); padding:var(--space-6); box-shadow:var(--shadow-sm); }
.tl-left .tl-content { text-align:right; }
.tl-right .tl-content { text-align:left; }
.tl-anio { display:inline-block; background:var(--verde-oscuro); color:#fff; font-size:var(--text-xs); font-weight:700; padding:.25rem .6rem; border-radius:var(--radius-pill); letter-spacing:.1em; margin-bottom:var(--space-3); }
.tl-titulo { color:var(--verde-oscuro); margin-bottom:var(--space-3); }
.tl-texto { color:var(--texto-suave); font-size:var(--text-sm); line-height:1.75; }
.tl-right .tl-foto-wrap { order:-1; }

/* ── 17. CITAS ── */
.citas-section { padding:var(--space-16) 1.5rem; }
.citas-inner { max-width:700px; margin:0 auto; text-align:center; }
.citas-carousel { position:relative; min-height:260px; }
.cita-slide { display:none; flex-direction:column; align-items:center; gap:var(--space-5); }
.cita-slide.active { display:flex; }
.cita-foto-placeholder { width:88px; height:88px; border-radius:50%; background:rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; font-size:2rem; border:4px solid var(--dorado); }
.cita-texto { font-family:var(--fuente-titulo); font-style:italic; font-size:var(--text-lg); color:rgba(255,255,255,.92); line-height:1.7; }
.cita-nombre { font-weight:700; color:var(--dorado); font-size:var(--text-md); display:block; }
.cita-cargo { font-size:var(--text-xs); color:rgba(255,255,255,.6); text-transform:uppercase; letter-spacing:.1em; display:block; margin-top:.2rem; }
.citas-dots { display:flex; justify-content:center; gap:.5rem; margin-top:var(--space-8); }
.cita-dot { width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.3); border:none; cursor:pointer; transition:background var(--transition-fast), transform var(--transition-fast); }
.cita-dot.active { background:var(--dorado); transform:scale(1.2); }

/* ── 18. TRABAJO ── */
.trabajo-section { background:#fff; }
.trabajo-inner { max-width:var(--container); margin:0 auto; }
.trabajo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.trabajo-card { background:#fff; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); text-decoration:none; color:inherit; display:flex; flex-direction:column; }
.card-img-placeholder { display:flex; align-items:center; justify-content:center; font-size:2.5rem; aspect-ratio:16/9; }
.card-body { padding:var(--space-5); flex:1; display:flex; flex-direction:column; gap:var(--space-2); }
.card-tag { font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.12em; font-weight:700; color:var(--rojo); }
.card-title { font-size:var(--text-md); color:var(--verde-oscuro); line-height:1.3; }
.card-excerpt { font-size:var(--text-sm); color:var(--texto-suave); line-height:1.7; flex:1; }
.card-actions { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:var(--space-3); border-top:1px solid var(--beige-oscuro); }
.card-link { font-size:var(--text-xs); font-weight:700; color:var(--verde-oscuro); }
.trabajo-video-wrap { border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:16/9; margin-bottom:var(--space-10); }
.trabajo-video-wrap iframe { width:100%; height:100%; border:none; }

/* ── 19. CARRUSEL GALERÍA ── */
.carrusel-section { background:var(--beige); }
.carrusel-inner { max-width:var(--container); margin:0 auto; }
.carrusel-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-4); }
.carrusel-caption { position:absolute; bottom:0; left:0; right:0; background:rgba(0,0,0,.55); color:#fff; font-size:var(--text-xs); padding:.4rem .75rem; }
.carrusel-controls { display:flex; justify-content:center; gap:var(--space-4); margin-top:var(--space-6); }
.car-btn { background:var(--verde-oscuro); color:#fff; border:none; border-radius:50%; width:44px; height:44px; font-size:1.25rem; cursor:pointer; transition:background var(--transition-fast); display:flex; align-items:center; justify-content:center; }
.car-btn:hover { background:var(--verde-boton); }

/* ── 20. PUBLICACIONES ── */
.pub-section { background:#fff; }
.pub-inner { max-width:var(--container); margin:0 auto; }
.pub-filtros { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:var(--space-8); }
.pub-filtro-btn { background:var(--beige); border:none; border-radius:var(--radius-pill); padding:.4rem .9rem; font-size:var(--text-xs); font-weight:700; cursor:pointer; transition:all var(--transition-fast); color:var(--texto-suave); }
.pub-filtro-btn:hover, .pub-filtro-btn.active { background:var(--verde-oscuro); color:#fff; }
.pub-list-title { font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.15em; font-weight:700; color:var(--texto-muted); margin-bottom:var(--space-4); }
.pub-item { display:flex; align-items:center; gap:var(--space-4); padding:var(--space-4) var(--space-5); border:1px solid var(--beige-oscuro); border-radius:var(--radius-sm); margin-bottom:var(--space-3); transition:box-shadow var(--transition-fast), border-color var(--transition-fast); }
.pub-item:hover { box-shadow:var(--shadow-sm); border-color:var(--verde-oscuro); }
.pub-item.hidden { display:none; }
.pub-item-tag { background:var(--verde-claro); color:var(--verde-oscuro); font-size:var(--text-xs); font-weight:700; padding:.2rem .5rem; border-radius:var(--radius-sm); white-space:nowrap; }
.pub-item-info { flex:1; min-width:0; }
.pub-item-title { font-weight:700; font-size:var(--text-sm); color:var(--texto); display:block; }
.pub-item-meta { font-size:var(--text-xs); color:var(--texto-muted); }
.pub-item-actions { display:flex; align-items:center; gap:var(--space-4); flex-shrink:0; }
.pub-item-year { font-size:var(--text-xs); color:var(--texto-muted); font-weight:700; }
.pub-download-btn { background:var(--verde-oscuro); color:#fff; border-radius:var(--radius-sm); padding:.3rem .55rem; font-size:.8rem; text-decoration:none; transition:background var(--transition-fast); }
.pub-download-btn:hover { background:var(--verde-boton); color:#fff; }

/* ── 21. NOVEDADES ── */
.novedades-section { background:var(--beige); }
.novedades-inner { max-width:var(--container); margin:0 auto; }
.novedades-grid { display:grid; grid-template-columns:1.6fr 1fr; grid-template-rows:auto auto auto; gap:var(--space-5); }
.nov-featured { grid-row:1/4; border-radius:var(--radius-md); overflow:hidden; text-decoration:none; background:#fff; display:flex; flex-direction:column; }
.nov-img-tall { aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; font-size:3rem; background:var(--verde-claro); }
.nov-body { padding:var(--space-5); flex:1; display:flex; flex-direction:column; gap:var(--space-2); }
.nov-cat { font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--rojo); }
.nov-title { font-family:var(--fuente-titulo); font-weight:700; color:var(--texto); line-height:1.3; }
.nov-title-lg { font-size:var(--text-lg); }
.nov-extract { font-size:var(--text-sm); color:var(--texto-suave); line-height:1.7; }
.nov-meta { font-size:var(--text-xs); color:var(--texto-muted); margin-top:auto; }
.nov-small { border-radius:var(--radius-md); overflow:hidden; text-decoration:none; background:#fff; display:flex; }
.nov-small-img { flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:1.75rem; background:var(--verde-claro); width:90px; aspect-ratio:1/1; }

/* ── 11. STATS ── */
.stats-section { background:var(--verde-oscuro); padding:var(--space-12) 1.5rem; }
.stats-inner { max-width:var(--container); margin:0 auto; }
.stats-grid { display:flex; flex-direction:row; justify-content:space-around; align-items:center; flex-wrap:wrap; gap:var(--space-8); width:100%; }
.stat-item { text-align:center; flex:1; min-width:140px; }
.stat-icono { font-size:2rem; display:block; margin-bottom:.5rem; }
.stat-number { font-family:var(--fuente-titulo); font-size:var(--text-3xl); font-weight:900; color:#fff; line-height:1; }
.stat-label { font-size:var(--text-sm); color:rgba(255,255,255,.75); margin-top:.35rem; text-transform:uppercase; letter-spacing:.1em; }

/* ── 12. PILARES ── */
.pilares-section { background:var(--beige); }
.pilares-inner { max-width:var(--container); margin:0 auto; }
.pilares-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.pilar-card { background:#fff; border-radius:var(--radius-md); padding:var(--space-8); text-align:center; box-shadow:var(--shadow-sm); }
.pilar-icon { font-size:3rem; margin-bottom:var(--space-5); display:block; }
.pilar-img { height:160px; border-radius:var(--radius-sm); overflow:hidden; margin-bottom:var(--space-5); }
.pilar-img img { width:100%; height:100%; object-fit:cover; }
.pilar-card h3 { color:var(--verde-oscuro); margin-bottom:var(--space-3); }
.pilar-card p { color:var(--texto-suave); font-size:var(--text-sm); line-height:1.75; }
.pilar-link { display:inline-block; margin-top:var(--space-4); font-size:var(--text-sm); font-weight:700; color:var(--verde-oscuro); }

/* ── 13. PRINCIPIOS ── */
.principios-section { color:#fff; }
.principios-inner { max-width:var(--container); margin:0 auto; }
.principios-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-6); margin-top:var(--space-8); }
.principio-item { display:flex; gap:var(--space-5); align-items:flex-start; padding:var(--space-6); background:rgba(255,255,255,.08); border-radius:var(--radius-md); border:1px solid rgba(255,255,255,.12); transition:background var(--transition-base); }
.principio-item:hover { background:rgba(255,255,255,.13); }
.principio-icon { font-size:2.2rem; flex-shrink:0; }
.principio-body h3 { color:var(--dorado); margin-bottom:var(--space-2); font-size:var(--text-md); }
.principio-body p { color:rgba(255,255,255,.75); font-size:var(--text-sm); line-height:1.75; }

/* ── 14. LIDERESAS ── */
.equipo-section { background:var(--beige); }
.equipo-inner { max-width:var(--container); margin:0 auto; }

/* Filtros por país */
.lid-filtros {
  display:flex; flex-wrap:wrap; gap:.5rem;
  justify-content:center; margin-bottom:var(--space-8);
}
.lid-filtro-btn {
  background:var(--beige-oscuro); border:none;
  border-radius:var(--radius-pill); padding:.4rem 1rem;
  font-size:var(--text-xs); font-weight:700; cursor:pointer;
  transition:all var(--transition-fast); color:var(--texto-suave);
  font-family:var(--fuente-cuerpo);
}
.lid-filtro-btn:hover { background:var(--verde-claro); color:var(--verde-oscuro); }
.lid-filtro-btn.active { background:var(--verde-oscuro); color:#fff; }
.lid-filtro-btn:focus-visible { outline:3px solid var(--dorado); outline-offset:2px; }

/* Tarjetas ocultas al filtrar */
.voz-card.lid-hidden { display:none; }

.voces-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.voz-card { background:#fff; border-radius:var(--radius-md); padding:var(--space-6); text-align:center; box-shadow:var(--shadow-sm); }
.voz-foto { width:64px; height:64px; border-radius:50%; overflow:hidden; margin:0 auto var(--space-4); border:3px solid #fff; box-shadow:var(--shadow-sm); }
.voz-foto img { width:100%; height:100%; object-fit:cover; }
.voz-avatar { font-size:2.5rem; margin-bottom:var(--space-4); display:block; }
.voz-nombre { font-family:var(--fuente-titulo); font-weight:700; font-size:var(--text-md); color:var(--verde-oscuro); margin-bottom:.2rem; }
.voz-pueblo { font-size:var(--text-xs); color:var(--dorado); font-weight:700; text-transform:uppercase; letter-spacing:.1em; margin-bottom:.2rem; }
.voz-cargo { font-size:var(--text-xs); color:var(--texto-suave); margin-bottom:var(--space-3); }
.voz-cita { font-style:italic; font-size:var(--text-sm); color:var(--texto-suave); line-height:1.7; border-left:2px solid var(--dorado); padding-left:var(--space-3); text-align:left; }
.voz-link { font-size:var(--text-xs); color:var(--verde-oscuro); font-weight:700; margin-top:var(--space-3); display:inline-block; }

/* ── 15. TERRITORIO ── */
.territorio-section { background:#fff; }
.territorio-inner { display:grid; grid-template-columns:1fr 1.2fr; gap:var(--space-16); align-items:center; max-width:var(--container); margin:0 auto; }
.territorio-text h2 { margin:var(--space-3) 0 var(--space-5); color:var(--verde-oscuro); }
.territorio-text .section-intro { margin-bottom:var(--space-8); }
.territorio-stats { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-4); margin-top:var(--space-6); }
.territorio-stat { padding:var(--space-4); background:var(--beige); border-radius:var(--radius-md); text-align:center; }
.territorio-stat-num { font-family:var(--fuente-titulo); font-size:var(--text-xl); font-weight:900; color:var(--verde-oscuro); }
.territorio-stat-label { font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.1em; color:var(--texto-suave); margin-top:.2rem; }
.territorio-img-wrap { border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); }
.territorio-img-wrap img { width:100%; height:480px; object-fit:cover; }
.territorio-video-wrap { border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:16/9; }
.territorio-video-wrap iframe { width:100%; height:100%; border:none; }
.territorio-galeria { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); }
.territorio-foto { border-radius:var(--radius-sm); overflow:hidden; position:relative; }
.territorio-foto img { width:100%; height:180px; object-fit:cover; }
.territorio-placeholder { text-align:center; padding:var(--space-16); background:var(--beige); border-radius:var(--radius-lg); font-size:var(--text-sm); color:var(--texto-muted); font-size:2rem; }
.territorio-mapa-wrap { border-radius:var(--radius-lg); overflow:hidden; }
.territorio-mapa-wrap iframe { width:100%; height:400px; border:none; }

/* ── 16. TIMELINE ── */
.timeline-section { background:var(--beige); }
.timeline-inner { max-width:var(--container); margin:0 auto; }
.timeline { position:relative; }
.timeline::before { content:''; position:absolute; left:50%; top:0; bottom:0; width:2px; background:var(--verde-claro); transform:translateX(-50%); }
.tl-item { display:grid; grid-template-columns:1fr 40px 1fr; gap:var(--space-6); align-items:center; margin-bottom:var(--space-10); }
.tl-dot { width:16px; height:16px; background:var(--verde-oscuro); border-radius:50%; border:3px solid #fff; box-shadow:0 0 0 3px var(--verde-oscuro); justify-self:center; }
.tl-content { background:#fff; border-radius:var(--radius-md); padding:var(--space-6); box-shadow:var(--shadow-sm); }
.tl-left  .tl-content { text-align:right; }
.tl-right .tl-content { text-align:left; }
.tl-anio { display:inline-block; background:var(--verde-oscuro); color:#fff; font-size:var(--text-xs); font-weight:700; padding:.25rem .6rem; border-radius:var(--radius-pill); letter-spacing:.1em; margin-bottom:var(--space-3); }
.tl-titulo { color:var(--verde-oscuro); margin-bottom:var(--space-3); }
.tl-texto { color:var(--texto-suave); font-size:var(--text-sm); line-height:1.75; }
.tl-foto-wrap { border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); }
.tl-foto-wrap img { width:100%; height:180px; object-fit:cover; }
.tl-right .tl-foto-wrap { order:-1; }

/* ── 17. CITAS ── */
.citas-section { padding:var(--space-16) 1.5rem; }
.citas-inner { max-width:700px; margin:0 auto; text-align:center; }
.citas-carousel { position:relative; min-height:260px; }
.cita-slide { display:none; flex-direction:column; align-items:center; gap:var(--space-5); }
.cita-slide.active { display:flex; }
.cita-foto { width:80px; height:80px; border-radius:50%; object-fit:cover; border:4px solid var(--dorado); }
.cita-foto-placeholder { width:80px; height:80px; border-radius:50%; background:rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; font-size:2rem; border:4px solid var(--dorado); }
.cita-texto { font-family:var(--fuente-titulo); font-style:italic; font-size:var(--text-lg); color:rgba(255,255,255,.92); line-height:1.7; }
.cita-nombre { font-weight:700; color:var(--dorado); font-size:var(--text-md); display:block; }
.cita-cargo { font-size:var(--text-xs); color:rgba(255,255,255,.6); text-transform:uppercase; letter-spacing:.1em; display:block; margin-top:.2rem; }
.citas-dots { display:flex; justify-content:center; gap:.5rem; margin-top:var(--space-8); }
.cita-dot { width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.3); border:none; cursor:pointer; transition:background var(--transition-fast), transform var(--transition-fast); }
.cita-dot.active { background:var(--dorado); transform:scale(1.2); }

/* ── 18. TRABAJO ── */
.trabajo-section { background:#fff; }
.trabajo-inner { max-width:var(--container); margin:0 auto; }
.trabajo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.trabajo-card { background:#fff; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); text-decoration:none; color:inherit; display:flex; flex-direction:column; }
.card-img { height:160px; overflow:hidden; }
.card-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.trabajo-card:hover .card-img img { transform:scale(1.06); }
.card-img-placeholder { display:flex; align-items:center; justify-content:center; font-size:2.5rem; }
.card-body { padding:var(--space-5); flex:1; display:flex; flex-direction:column; gap:var(--space-2); }
.card-tag { font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.12em; font-weight:700; color:var(--rojo); }
.card-title { font-size:var(--text-md); color:var(--verde-oscuro); line-height:1.3; }
.card-excerpt { font-size:var(--text-sm); color:var(--texto-suave); line-height:1.7; flex:1; }
.card-actions { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:var(--space-3); border-top:1px solid var(--beige-oscuro); }
.card-link { font-size:var(--text-xs); font-weight:700; color:var(--verde-oscuro); }
.trabajo-video-wrap { border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:16/9; margin-bottom:var(--space-10); }
.trabajo-video-wrap iframe { width:100%; height:100%; border:none; }

/* ── 19. CARRUSEL GALERÍA ── */
.carrusel-section { background:var(--beige); }
.carrusel-inner { max-width:var(--container); margin:0 auto; }
.carrusel-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-4); }
.carrusel-item { border-radius:var(--radius-md); overflow:hidden; position:relative; aspect-ratio:4/3; cursor:pointer; }
.carrusel-item img { width:100%; height:100%; object-fit:cover; }
.carrusel-caption { position:absolute; bottom:0; left:0; right:0; background:rgba(0,0,0,.55); color:#fff; font-size:var(--text-xs); padding:.4rem .75rem; }
.carrusel-controls { display:flex; justify-content:center; gap:var(--space-4); margin-top:var(--space-6); }
.car-btn { background:var(--verde-oscuro); color:#fff; border:none; border-radius:50%; width:44px; height:44px; font-size:1.25rem; cursor:pointer; transition:background var(--transition-fast); display:flex; align-items:center; justify-content:center; }
.car-btn:hover { background:var(--verde-boton); }

/* ── 20. PUBLICACIONES ── */
.pub-section { background:#fff; }
.pub-inner { max-width:var(--container); margin:0 auto; }
.pub-filtros { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:var(--space-8); }
.pub-filtro-btn { background:var(--beige); border:none; border-radius:var(--radius-pill); padding:.4rem .9rem; font-size:var(--text-xs); font-weight:700; cursor:pointer; transition:all var(--transition-fast); color:var(--texto-suave); }
.pub-filtro-btn:hover, .pub-filtro-btn.active { background:var(--verde-oscuro); color:#fff; }
.pub-list-title { font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.15em; font-weight:700; color:var(--texto-muted); margin-bottom:var(--space-4); }
.pub-item { display:flex; align-items:center; gap:var(--space-4); padding:var(--space-4) var(--space-5); border:1px solid var(--beige-oscuro); border-radius:var(--radius-sm); margin-bottom:var(--space-3); transition:box-shadow var(--transition-fast), border-color var(--transition-fast); }
.pub-item:hover { box-shadow:var(--shadow-sm); border-color:var(--verde-oscuro); }
.pub-item.hidden { display:none; }
.pub-item-tag { background:var(--verde-claro); color:var(--verde-oscuro); font-size:var(--text-xs); font-weight:700; padding:.2rem .5rem; border-radius:var(--radius-sm); white-space:nowrap; }
.pub-item-info { flex:1; min-width:0; }
.pub-item-title { font-weight:700; font-size:var(--text-sm); color:var(--texto); display:block; }
.pub-item-meta { font-size:var(--text-xs); color:var(--texto-muted); }
.pub-item-actions { display:flex; align-items:center; gap:var(--space-4); flex-shrink:0; }
.pub-item-year { font-size:var(--text-xs); color:var(--texto-muted); font-weight:700; }
.pub-download-btn { background:var(--verde-oscuro); color:#fff; border-radius:var(--radius-sm); padding:.3rem .55rem; font-size:.8rem; text-decoration:none; transition:background var(--transition-fast); }
.pub-download-btn:hover { background:var(--verde-boton); color:#fff; }

/* ── 21. NOVEDADES ── */
.novedades-section { background:var(--beige); }
.novedades-inner { max-width:var(--container); margin:0 auto; }
.novedades-grid { display:grid; grid-template-columns:1.6fr 1fr; grid-template-rows:auto auto auto; gap:var(--space-5); }
.nov-featured { grid-row:1/4; border-radius:var(--radius-md); overflow:hidden; text-decoration:none; background:#fff; display:flex; flex-direction:column; }
.nov-img-wrap { height:280px; overflow:hidden; }
.nov-img-wrap img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.nov-featured:hover .nov-img-wrap img { transform:scale(1.04); }
.nov-img-tall { height:280px; display:flex; align-items:center; justify-content:center; font-size:3rem; background:var(--verde-claro); }
.nov-body { padding:var(--space-5); flex:1; display:flex; flex-direction:column; gap:var(--space-2); }
.nov-cat { font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--rojo); }
.nov-title { font-family:var(--fuente-titulo); font-weight:700; color:var(--texto); line-height:1.3; }
.nov-title-lg { font-size:var(--text-lg); }
.nov-extract { font-size:var(--text-sm); color:var(--texto-suave); line-height:1.7; }
.nov-meta { font-size:var(--text-xs); color:var(--texto-muted); margin-top:auto; }
.nov-small { border-radius:var(--radius-md); overflow:hidden; text-decoration:none; background:#fff; display:flex; }
.nov-small-img-wrap { width:110px; flex-shrink:0; overflow:hidden; }
.nov-small-img-wrap img { width:100%; height:100%; object-fit:cover; }
.nov-small-img { width:110px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:1.75rem; background:var(--verde-claro); }
.nov-small .nov-body { padding:var(--space-4); }

/* ── 22. FONDOS ── */
.fondos-section { }
.fondos-inner { max-width:var(--container); margin:0 auto; }
.fondos-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.fondo-card { background:#fff; border-radius:var(--radius-md); padding:var(--space-6); text-align:center; box-shadow:var(--shadow-sm); }
.fondo-card a { text-decoration:none; color:inherit; }
.fondo-logo-wrap { height:80px; display:flex; align-items:center; justify-content:center; margin-bottom:var(--space-4); }
.fondo-logo-wrap img { max-height:80px; max-width:160px; object-fit:contain; filter:grayscale(30%); transition:filter var(--transition-base); }
.fondo-card:hover .fondo-logo-wrap img { filter:grayscale(0); }
.fondo-logo-placeholder { font-size:2.5rem; margin-bottom:var(--space-4); display:block; }
.fondo-nombre { font-weight:700; color:var(--verde-oscuro); font-size:var(--text-sm); margin-bottom:.2rem; }
.fondo-pais { font-size:var(--text-xs); color:var(--texto-muted); margin-bottom:var(--space-3); }
.fondo-desc { font-size:var(--text-xs); color:var(--texto-suave); line-height:1.7; }

/* ── 23. ALIADOS ── */
.aliados-section { background:var(--beige); }
.aliados-inner { max-width:var(--container); margin:0 auto; }
.aliados-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-6); align-items:center; }
.aliado-item { text-align:center; }
.aliado-item a { text-decoration:none; color:inherit; }
.aliado-item img { max-height:60px; max-width:140px; object-fit:contain; margin:0 auto; filter:grayscale(60%); transition:filter var(--transition-base); }
.aliado-item:hover img { filter:grayscale(0); }
.aliado-nombre { display:block; font-size:var(--text-xs); color:var(--texto-muted); margin-top:.4rem; }

/* ── 24. VIDEOS ── */
.videos-yt-section { background:#fff; }
.videos-yt-inner { max-width:var(--container); margin:0 auto; }
.videos-yt-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-6); }
.video-yt-item iframe { width:100%; aspect-ratio:16/9; border:none; border-radius:var(--radius-md); }
.video-yt-titulo { font-size:var(--text-sm); font-weight:600; margin-top:var(--space-3); color:var(--texto); }

/* ── 25. VOLUNTARIADO ── */
.voluntariado-section { padding:var(--space-16) 1.5rem; }
.voluntariado-inner { }

/* ── 26. NEWSLETTER ── */
.newsletter-section { background:var(--verde-oscuro); color:#fff; text-align:center; }
.newsletter-inner { max-width:600px; margin:0 auto; }
.newsletter-inner h2 { color:#fff; margin-bottom:var(--space-4); }
.newsletter-inner p { color:rgba(255,255,255,.75); margin-bottom:var(--space-6); }
.newsletter-form { display:flex; gap:var(--space-3); max-width:480px; margin:0 auto; }
.newsletter-input { flex:1; padding:.75rem 1rem; border-radius:var(--radius-sm); border:none; font-size:var(--text-sm); background:rgba(255,255,255,.12); color:#fff; }
.newsletter-input::placeholder { color:rgba(255,255,255,.5); }
.newsletter-btn { white-space:nowrap; }

/* ── 27. PRENSA ── */
.prensa-section { background:var(--beige); }
.prensa-inner { max-width:var(--container); margin:0 auto; }
.prensa-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-12); }
.prensa-subtitle { font-family:var(--fuente-titulo); color:var(--verde-oscuro); margin-bottom:var(--space-5); font-size:var(--text-md); }
.prensa-recursos { display:flex; flex-direction:column; gap:var(--space-3); }
.prensa-recurso-btn { display:flex; gap:var(--space-4); align-items:center; padding:var(--space-4) var(--space-5); background:#fff; border-radius:var(--radius-md); text-decoration:none; color:inherit; box-shadow:var(--shadow-sm); transition:box-shadow var(--transition-fast), transform var(--transition-fast); }
.prensa-recurso-btn:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.prensa-recurso-icon { font-size:1.75rem; }
.prensa-recurso-label { font-weight:700; font-size:var(--text-sm); color:var(--verde-oscuro); }
.prensa-recurso-desc { font-size:var(--text-xs); color:var(--texto-muted); }
.prensa-notas { display:flex; flex-direction:column; gap:var(--space-3); }
.prensa-nota { padding:var(--space-4); background:#fff; border-radius:var(--radius-md); border-left:3px solid var(--dorado); }
.prensa-nota-titulo a { font-weight:700; color:var(--verde-oscuro); font-size:var(--text-sm); }
.prensa-nota-meta { font-size:var(--text-xs); color:var(--texto-muted); margin-top:.25rem; }

/* ── 28. DONACIONES ── */
.donaciones-section { background:var(--negro-tierra); color:#fff; }
.donaciones-inner { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-16); max-width:var(--container); margin:0 auto; align-items:start; }
.donaciones-text h2 { color:#fff; margin:var(--space-3) 0 var(--space-6); }
.donaciones-text p { color:rgba(255,255,255,.8); margin-bottom:var(--space-4); line-height:1.8; }
.usos-list { display:flex; flex-direction:column; gap:var(--space-5); margin-top:var(--space-8); }
.uso-item { display:flex; gap:var(--space-4); }
.uso-icon { font-size:1.75rem; flex-shrink:0; }
.uso-item h5 { color:var(--dorado); font-size:var(--text-sm); margin-bottom:.2rem; }
.uso-item p { font-size:var(--text-sm); color:rgba(255,255,255,.7); }
.don-form-box { background:rgba(255,255,255,.07); border-radius:var(--radius-lg); padding:var(--space-8); border:1px solid rgba(255,255,255,.1); }
.don-form-title { font-family:var(--fuente-titulo); font-size:var(--text-lg); color:#fff; margin-bottom:var(--space-2); }
.don-form-sub { font-size:var(--text-sm); color:rgba(255,255,255,.6); margin-bottom:var(--space-6); }
.montos-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3); margin-bottom:var(--space-6); }
.monto-btn { background:rgba(255,255,255,.1); color:#fff; border:1px solid rgba(255,255,255,.2); border-radius:var(--radius-sm); padding:.6rem; font-weight:700; font-size:var(--text-sm); cursor:pointer; transition:all var(--transition-fast); }
.monto-btn:hover, .monto-btn.active { background:var(--dorado); border-color:var(--dorado); color:#fff; }
.don-input { width:100%; padding:.75rem 1rem; border-radius:var(--radius-sm); border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.08); color:#fff; font-size:var(--text-sm); margin-bottom:var(--space-3); font-family:var(--fuente-cuerpo); }
.don-input::placeholder { color:rgba(255,255,255,.4); }
.don-input:focus { outline:none; border-color:var(--dorado); background:rgba(255,255,255,.12); }
.don-progreso { margin-bottom:var(--space-6); }
.don-progreso-bar { height:8px; background:var(--dorado); border-radius:var(--radius-pill); transition:width .8s ease; }
.don-progreso-info { display:flex; justify-content:space-between; font-size:var(--text-xs); color:rgba(255,255,255,.6); margin-top:.4rem; }

/* ── 29. TERRITORIO & CONTACTO ── */
.contacto-section { background:var(--beige); }
.contacto-inner { max-width:var(--container-md); margin:0 auto; }

/* ── 30. MAPA INTERACTIVO ── */
.mapa-section { background:#fff; }
.mapa-inner { max-width:var(--container); margin:0 auto; }
.mapa-interactivo-wrap { margin-top:var(--space-8); }
.mapa-cols { display:grid; grid-template-columns:1fr 340px; gap:var(--space-8); align-items:start; }
.mapa-svg-col { width:100%; }
.mapa-panel-col { position:sticky; top:90px; }
.mapa-panel {
  background:#fff; border:1px solid var(--beige-oscuro);
  border-radius:var(--radius-lg); padding:var(--space-6);
  min-height:320px; display:flex; align-items:center; justify-content:center;
}
.mapa-panel-empty { text-align:center; color:var(--texto-suave); font-size:var(--text-sm); line-height:1.6; }
.mapa-panel-empty svg { margin:0 auto var(--space-3); display:block; opacity:.35; }
.mapa-panel-info { width:100%; }
.mapa-info-flag { font-size:2rem; margin-bottom:var(--space-2); }
.mapa-info-name { font-size:var(--text-lg); font-weight:700; font-family:var(--fuente-titulo); color:var(--verde-oscuro); margin-bottom:var(--space-1); }
.mapa-info-region { font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.1em; color:var(--texto-suave); padding-bottom:var(--space-3); border-bottom:1px solid var(--beige-oscuro); margin-bottom:var(--space-4); }
.mapa-badge { display:inline-block; font-size:.7rem; padding:3px 10px; border-radius:var(--radius-pill); background:var(--verde-claro); color:var(--verde-oscuro); font-weight:700; margin-bottom:var(--space-4); }
.mapa-stats-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); margin-bottom:var(--space-4); }
.mapa-stat { background:var(--beige); border-radius:var(--radius-md); padding:var(--space-3); text-align:center; }
.mapa-stat-full { grid-column:1/-1; }
.mapa-stat-label { display:block; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--texto-suave); margin-bottom:.2rem; }
.mapa-stat-val { display:block; font-size:var(--text-lg); font-weight:700; font-family:var(--fuente-titulo); color:var(--verde-oscuro); }
.mapa-info-desc { font-size:var(--text-sm); color:var(--texto-suave); line-height:1.7; }
.mapa-leyenda { display:flex; gap:var(--space-4); margin-top:var(--space-4); font-size:var(--text-xs); color:var(--texto-suave); flex-wrap:wrap; }
.mapa-ley-item { display:flex; align-items:center; gap:5px; }
.mapa-ley-dot { width:12px; height:12px; border-radius:2px; flex-shrink:0; }
.mapa-ley-member { background:#3B6D11; }
.mapa-ley-active { background:#EF9F27; }
.mapa-ley-other { background:#C0DD97; }
@media(max-width:768px){
  .mapa-cols { grid-template-columns:1fr; }
  .mapa-panel-col { position:static; }
}

/* ── 31. FOOTER ── */
.site-footer { background:var(--negro-tierra); color:rgba(255,255,255,.75); }
.footer-top {
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:var(--space-10);
  padding:var(--space-16) var(--space-6) var(--space-12);
  max-width:var(--container); margin:0 auto;
}
.footer-logo-img { width:auto; max-width:180px; height:60px; object-fit:contain; margin-bottom:var(--space-4); display:block; }
.footer-col h4 {
  color:#fff; font-size:var(--text-xs);
  text-transform:uppercase; letter-spacing:.15em;
  margin-bottom:var(--space-5); font-family:var(--fuente-cuerpo);
  font-weight:700; padding-bottom:var(--space-3);
  border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-col a {
  display:block; color:rgba(255,255,255,.6);
  font-size:var(--text-sm); margin-bottom:var(--space-3);
  transition:color var(--transition-fast);
  text-decoration:none;
}
.footer-col a:hover { color:#fff; }
.footer-brand p { font-size:var(--text-sm); color:rgba(255,255,255,.55); line-height:1.8; margin-bottom:var(--space-5); }
.footer-social { display:flex; gap:.6rem; flex-wrap:wrap; margin-top:var(--space-2); }
.footer-soc-btn {
  color:rgba(255,255,255,.55); transition:color var(--transition-fast),background var(--transition-fast);
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
}
.footer-soc-btn:hover { color:#fff; background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.3); }

/* Barra inferior */
.footer-bottom {
  border-top:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.2);
  padding:var(--space-5) var(--space-6);
}
.footer-bottom-inner {
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:var(--space-3);
  font-size:var(--text-xs); color:rgba(255,255,255,.4);
  max-width:var(--container); margin:0 auto;
}
.footer-bottom-links { display:flex; align-items:center; gap:var(--space-3); }
.footer-bottom-links a { color:rgba(255,255,255,.4); text-decoration:none; transition:color var(--transition-fast); }
.footer-bottom-links a:hover { color:rgba(255,255,255,.7); }

@media(max-width:1024px){
  .footer-top { grid-template-columns:1fr 1fr; gap:var(--space-8); }
}
@media(max-width:640px){
  .footer-top { grid-template-columns:1fr; }
  .footer-bottom-inner { flex-direction:column; text-align:center; }
}

/* ── 32. LIGHTBOX ── */
.rmib-lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:var(--z-modal); align-items:center; justify-content:center; }
.rmib-lightbox.show { display:flex; }
.rmib-lightbox img { max-width:90vw; max-height:88vh; object-fit:contain; border-radius:var(--radius-sm); }
.rmib-lightbox-close { position:absolute; top:1rem; right:1rem; background:rgba(255,255,255,.15); border:none; color:#fff; font-size:1.5rem; width:44px; height:44px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.rmib-lightbox-nav { position:absolute; background:rgba(255,255,255,.15); border:none; color:#fff; font-size:2rem; width:52px; height:52px; border-radius:50%; cursor:pointer; top:50%; transform:translateY(-50%); display:flex; align-items:center; justify-content:center; }
.rmib-lightbox-prev { left:1rem; }
.rmib-lightbox-next { right:1rem; }
.rmib-lightbox-caption { position:absolute; bottom:1.5rem; left:0; right:0; text-align:center; color:rgba(255,255,255,.7); font-size:var(--text-sm); }

/* ── 33. WHATSAPP & SHARE ── */
.rmib-wa-btn { position:fixed; bottom:24px; right:24px; z-index:calc(var(--z-overlay) - 10); background:#25d366; border-radius:50%; width:58px; height:58px; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lg); transition:transform var(--transition-fast); }
.rmib-wa-btn:hover { transform:scale(1.12); }
.rmib-share-btns { position:fixed; left:16px; top:50%; transform:translateY(-50%); display:flex; flex-direction:column; gap:.5rem; z-index:var(--z-sticky); }
.share-btn { width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); transition:transform var(--transition-fast); }
.share-btn:hover { transform:scale(1.12); }
.share-wa { background:#25d366; } .share-fb { background:#1877f2; } .share-tw { background:#000; }

/* ── 34. POPUP ── */
.rmib-popup-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:var(--z-modal); align-items:center; justify-content:center; padding:1rem; }
.rmib-popup-overlay.show { display:flex; }
.rmib-popup { background:#fff; border-radius:var(--radius-lg); overflow:hidden; max-width:480px; width:100%; box-shadow:var(--shadow-xl); position:relative; }
.rmib-popup-close { position:absolute; top:1rem; right:1rem; background:rgba(0,0,0,.15); border:none; color:#fff; font-size:1.1rem; width:32px; height:32px; border-radius:50%; cursor:pointer; z-index:1; display:flex; align-items:center; justify-content:center; }
.rmib-popup-img { width:100%; height:200px; object-fit:cover; display:block; }
.rmib-popup-img-placeholder { height:200px; display:flex; align-items:center; justify-content:center; font-size:4rem; background:var(--verde-oscuro); }
.rmib-popup-body { padding:var(--space-8); }
.rmib-popup-body h3 { margin-bottom:var(--space-4); }
.rmib-popup-body p { margin-bottom:var(--space-6); font-size:var(--text-sm); }

/* ── 35. RESPONSIVE ── */
@media (max-width: 1024px) {
  .grid-3, .pilares-grid, .trabajo-grid, .voces-grid, .fondos-grid { grid-template-columns:repeat(2,1fr); }
  .carrusel-grid, .aliados-grid { grid-template-columns:repeat(3,1fr); }
  .donaciones-inner, .guardianas-inner, .territorio-inner { grid-template-columns:1fr; }
  .territorio-inner { gap:var(--space-10); }
  .footer-inner { grid-template-columns:1fr 1fr; gap:var(--space-10); }
  .timeline::before { left:20px; }
  .tl-item { grid-template-columns:1fr 40px; }
  .tl-item > div:last-child { display:none; }
  .tl-right .tl-foto-wrap { display:none; }
  .principios-grid { grid-template-columns:1fr; }
}
@media (max-width: 768px) {
  .nav-hamburger { display:flex; }
  #siteNav {
    display:none; position:fixed; top:0; right:0;
    width:min(320px,85vw); height:100vh;
    background:#fff; flex-direction:column;
    padding:var(--space-16) var(--space-6) var(--space-6);
    box-shadow:var(--shadow-xl); z-index:var(--z-overlay);
    overflow-y:auto;
  }
  #siteNav.nav-open { display:flex; animation:slideInRight .3s ease; }
  @keyframes slideInRight { from{transform:translateX(100%)} to{transform:translateX(0)} }
  .nav-links { flex-direction:column; gap:var(--space-1); width:100%; }
  .nav-links a { font-size:var(--text-base); padding:var(--space-3) var(--space-4); width:100%; }
  .nav-btns-group { flex-direction:column; width:100%; margin-top:var(--space-6); }
  .nav-donate, .rmib-login-btn { width:100%; text-align:center; padding:var(--space-3); }
  .dropdown { position:static; box-shadow:none; border:none; border-left:2px solid var(--verde-claro); margin-left:var(--space-4); border-radius:0; padding:0; display:block; }
  .mega-col-img { display:none; }
  .nav-social-icons { justify-content:flex-start; margin-left:var(--space-4); }
  .novedades-grid { grid-template-columns:1fr; }
  .nov-featured { grid-row:auto; }
  .prensa-grid { grid-template-columns:1fr; }
  .videos-yt-grid { grid-template-columns:1fr; }
  .grid-2, .guardianas-inner { grid-template-columns:1fr; }
  .mapa-cols { grid-template-columns:1fr; }
  .mapa-panel-col { position:static; }
  .topbar { font-size:.65rem; padding:.3rem 1rem; }
  .topbar-right { gap:.3rem; }
}
@media (max-width: 640px) {
  .hero-buttons { flex-direction:column; }
  .hero-buttons .btn { width:100%; text-align:center; justify-content:center; }
  .stats-inner { gap:var(--space-6); }
  .stats-grid { flex-direction:column; gap:var(--space-6); }
  .stat-number { font-size:var(--text-2xl); }
  .grid-3, .pilares-grid, .trabajo-grid, .voces-grid, .carrusel-grid, .aliados-grid, .fondos-grid { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr; }
  .footer-bottom-inner { flex-direction:column; text-align:center; }
  .rmib-submenu-inner { gap:0; }
  .montos-grid { grid-template-columns:repeat(2,1fr); }
  .newsletter-form { flex-direction:column; }
  .don-form-box { padding:var(--space-5); }
  .territorio-galeria { grid-template-columns:1fr; }
}

/* ── PAGE HERO (páginas internas) ── */
.page-hero { position:relative; overflow:hidden; }
.page-hero .rmib-container { position:relative; z-index:2; }

/* ── BARRA DE PROGRESO DE LECTURA ── */
.rmib-reading-progress {
  position:fixed; top:0; left:0; z-index:9999;
  height:3px; width:0%; background:var(--dorado);
  transition:width .1s linear;
  pointer-events:none;
}

/* ── BOTÓN VOLVER ARRIBA ── */
.rmib-back-top {
  position:fixed; bottom:90px; right:24px;
  width:44px; height:44px; border-radius:50%;
  background:var(--verde-oscuro); color:#fff;
  border:none; cursor:pointer; font-size:1.2rem;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-md); z-index:calc(var(--z-overlay) - 20);
  opacity:0; transform:translateY(10px);
  transition:opacity var(--transition-base), transform var(--transition-base);
  pointer-events:none;
}
.rmib-back-top.visible { opacity:1; transform:translateY(0); pointer-events:auto; }
.rmib-back-top:hover { background:var(--verde-boton); }

/* ── CSS para página de lideresas con filtro ── */
.lid-count { font-size:var(--text-sm); color:var(--texto-suave); text-align:center; margin-bottom:var(--space-4); }

/* ── Hero páginas internas ── */
.rmib-page-hero { min-height: 320px; display:flex; align-items:center; }
.rmib-page-hero-inner { width:100%; }
@media(max-width:640px){ .rmib-page-hero { min-height:220px; } .rmib-page-hero-inner { padding:50px 20px!important; } }

/* ── Dropdown fix — no desaparece al mover mouse ── */
.nav-item { position:relative; }
.nav-item .dropdown {
  position:absolute; top:100%; left:0;
  background:#fff; border-radius:8px;
  box-shadow:0 8px 32px rgba(0,0,0,.12);
  min-width:220px; padding:.5rem 0;
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateY(8px);
  transition:opacity .2s, transform .2s, visibility .2s;
  z-index:1000;
}
/* Puente invisible entre el item y el dropdown */
.nav-item::after {
  content:''; position:absolute;
  top:100%; left:0; right:0; height:12px;
  background:transparent;
}
.nav-item:hover .dropdown,
.nav-item:focus-within .dropdown {
  opacity:1; visibility:visible;
  pointer-events:auto; transform:translateY(0);
}
.nav-item .dropdown a {
  display:block; padding:.65rem 1.25rem;
  color:#333; text-decoration:none; font-size:.88rem;
  transition:background .15s, color .15s;
  white-space:nowrap;
}
.nav-item .dropdown a:hover {
  background:#f5f0e8; color:var(--verde-oscuro);
}

/* ── Aliados con banderas ── */
.aliados-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:1rem; margin-top:1.5rem;
}
.aliado-item {
  display:flex; flex-direction:column; align-items:center;
  gap:.5rem; padding:1rem; text-align:center;
  border-radius:8px; transition:background .15s;
}
.aliado-item:hover { background:var(--beige); }
.aliado-bandera { font-size:2rem; }
.aliado-nombre { font-size:.82rem; font-weight:600; color:var(--verde-oscuro); }
.aliado-region { font-size:.7rem; color:var(--texto-suave); text-transform:uppercase; letter-spacing:.06em; }

/* ── Mobile hamburger fix ── */
@media(max-width:768px){
  .nav-hamburger { display:flex!important; }
  .nav-links { display:none; }
  .nav-links.open, .nav-links.nav-open { display:flex!important; flex-direction:column; position:fixed; top:0; left:0; right:0; bottom:0; background:#fff; z-index:9999; padding:5rem 2rem 2rem; overflow-y:auto; }
  .nav-links.nav-open .nav-item { width:100%; }
  .nav-links.nav-open .nav-item > a { padding:1rem 0; font-size:1.1rem; border-bottom:1px solid #eee; display:block; }
  .nav-links.nav-open .dropdown { position:static; box-shadow:none; opacity:1; visibility:visible; pointer-events:auto; transform:none; background:#f5f0e8; border-radius:6px; margin:.5rem 0 .5rem 1rem; padding:.25rem 0; }
  .nav-links.nav-open .dropdown a { padding:.6rem 1rem; font-size:.9rem; }
}
