/* ============================================================
   FUNDAMUISCA — Hoja de estilos del sitio
   Cultura que siembra futuro
============================================================ */

/* ---------- TOKENS ---------- */
:root{
  --rojo:        #7C1F24;
  --rojo-d:      #621318;
  --ocre:        #C8893A;
  --ocre-d:      #b07830;
  --cream:       #F3EBD9;
  --cream-2:     #ECE2CC;
  --ink:         #1d1612;
  --ink-2:       #3d342d;
  --ink-dark:    #1a130f;
  --ink-dark-2:  #221912;
  --muted:       #7b6e62;
  --verde:       #6E7E2A;
  --verde-d:     #5c6a22;
  --teal:        #2F7E84;

  --c-prog:      #7C1F24;
  --c-centro:    #C8893A;
  --c-pasos:     #6E7E2A;
  --c-sonidos:   #2F7E84;
  --c-biblio:    #8A7A2F;

  --logo-w:      300px;
  --pad-x:       40px;
  --maxw:        1280px;

  --shadow-sm:   0 2px 10px rgba(60,40,20,.06);
  --shadow-md:   0 12px 22px rgba(60,40,20,.12);
}

*,*::before,*::after{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ background:var(--cream); }
body{
  font-family:'Manrope',system-ui,sans-serif;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{ text-decoration:none; color:inherit; }
img{ display:block; max-width:100%; }
.cover{ width:100%; height:100%; object-fit:cover; }
ul{ list-style:none; }
:focus-visible{ outline:3px solid var(--ocre); outline-offset:2px; }
.skip-link{
  position:absolute; left:-999px; top:0; z-index:200;
  background:var(--rojo); color:#fff; padding:10px 18px; border-radius:0 0 8px 0;
  font-weight:700; font-size:13px;
}
.skip-link:focus{ left:0; }
.wrap{ max-width:var(--maxw); margin:0 auto; }

/* ============================================================
   HEADER
============================================================ */
.header{ position:relative; background:var(--ink-dark); z-index:90; }
.header-strip{
  position:absolute; top:0; left:0; right:0; height:70px;
  background:var(--rojo); z-index:1;
}
.header-curve{
  position:absolute; top:70px; left:0; width:420px; height:60px;
  z-index:1; pointer-events:none;
}
.header-curve path{ fill:var(--rojo); }

.header-row{
  position:relative; z-index:2; display:flex; align-items:center;
  height:70px; padding:0 var(--pad-x);
}
.brand{ display:flex; align-items:center; gap:14px; width:var(--logo-w); flex-shrink:0; height:70px; margin-top:50px; margin-left:30px; position:relative; z-index:5; }
.brand-logo{ height:62px; width:auto; display:block; }
.brand-mark{ width:62px; height:62px; flex-shrink:0; }
.brand-txt strong{
  display:block; font-family:'DM Serif Display',serif; font-size:22px;
  color:#fff; letter-spacing:2.5px; line-height:1;
}
.brand-txt small{
  display:block; font-size:10px; color:rgba(255,255,255,.62);
  line-height:1.5; margin-top:6px; max-width:200px;
}

.top-right{ margin-left:auto; display:flex; align-items:center; gap:28px; }
.top-links{ display:flex; align-items:center; gap:26px; }
.top-links a{ color:rgba(255,255,255,.85); font-size:13px; font-weight:500; transition:color .2s; }
.top-links a:hover{ color:#fff; }
.top-social{ display:flex; align-items:center; gap:14px; padding-left:8px; }
.top-social a{ color:rgba(255,255,255,.85); display:flex; transition:color .2s; }
.top-social a:hover{ color:#fff; }

.btn-dona{
  background:var(--ocre); color:#fff; font-size:12px; font-weight:800; letter-spacing:1px;
  padding:11px 20px; border-radius:8px; display:inline-flex; align-items:center; gap:8px;
  white-space:nowrap; transition:.2s;
}
.btn-dona:hover{ background:var(--ocre-d); transform:translateY(-1px); }

.nav-row{
  position:relative; z-index:30; display:flex; align-items:center; height:60px;
  padding-left:calc(var(--logo-w) + 40px); padding-right:var(--pad-x); margin-left:var(--pad-x);
}
.nav-menu{ display:flex; align-items:center; gap:30px; flex:1; }
.nav-item{ position:relative; }
.nav-menu > .nav-item > a{
  color:rgba(255,255,255,.78); font-size:13px; font-weight:700; letter-spacing:.6px;
  display:inline-flex; align-items:center; gap:6px; padding:18px 0; position:relative;
  transition:color .2s; text-transform:uppercase;
}
.nav-menu > .nav-item > a:hover{ color:#fff; }
.nav-menu > .nav-item.on > a{ color:var(--ocre); }
.nav-menu > .nav-item.on > a::after{
  content:''; position:absolute; bottom:12px; left:0; right:0;
  height:3px; background:var(--ocre); border-radius:2px;
}
.nav-arr{ font-size:9px; opacity:.55; transition:transform .2s; }

/* dropdown */
.dropdown{
  position:absolute; top:100%; left:-16px; min-width:248px;
  background:#fff; border-radius:0 0 12px 12px; box-shadow:0 18px 40px rgba(20,12,8,.22);
  border-top:3px solid var(--ocre); padding:8px 0;
  opacity:0; visibility:hidden; transform:translateY(8px); transition:.2s; z-index:40;
}
.nav-item.has-drop:hover .dropdown,
.nav-item.has-drop:focus-within .dropdown{ opacity:1; visibility:visible; transform:translateY(0); }
.nav-item.has-drop:hover .nav-arr{ transform:rotate(180deg); }
.dropdown a{
  display:flex; align-items:center; gap:10px; padding:11px 22px;
  font-size:13.5px; font-weight:600; color:var(--ink-2); transition:.15s;
}
.dropdown a::before{ content:'›'; color:var(--ocre); font-weight:800; font-size:15px; }
.dropdown a:hover{ background:var(--cream); color:var(--rojo); padding-left:26px; }

.nav-search{ color:#fff; display:flex; padding:6px; cursor:pointer; opacity:.7; transition:opacity .2s; background:none; border:0; }
.nav-search:hover{ opacity:1; }

/* buscador overlay */
.search-ov{
  position:fixed; inset:0; z-index:210; background:rgba(20,12,8,.72); backdrop-filter:blur(4px);
  opacity:0; visibility:hidden; transition:opacity .2s; display:flex; align-items:flex-start; justify-content:center;
  padding:90px 20px 20px;
}
.search-ov.open{ opacity:1; visibility:visible; }
.search-box{ width:100%; max-width:620px; background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 30px 70px rgba(0,0,0,.4); transform:translateY(-12px); transition:transform .25s; }
.search-ov.open .search-box{ transform:translateY(0); }
.search-bar{ display:flex; align-items:center; gap:12px; padding:18px 20px; border-bottom:1px solid rgba(0,0,0,.07); color:var(--rojo); }
.search-input{ flex:1; border:0; outline:none; font-family:inherit; font-size:17px; color:var(--ink); background:none; }
.search-input::placeholder{ color:var(--muted); }
.search-close{ background:none; border:0; color:var(--muted); font-size:18px; cursor:pointer; padding:4px 8px; border-radius:8px; transition:.2s; }
.search-close:hover{ background:var(--cream); color:var(--rojo); }
.search-results{ max-height:min(60vh,460px); overflow-y:auto; padding:8px; }
.search-hint{ padding:24px; color:var(--muted); font-size:14px; text-align:center; line-height:1.6; }
.search-hit{ display:block; padding:13px 16px; border-radius:10px; transition:.15s; }
.search-hit:hover{ background:var(--cream); }
.search-hit b{ display:block; font-family:'DM Serif Display',serif; font-size:17px; color:var(--ink); font-weight:400; margin-bottom:2px; }
.search-hit span{ display:block; font-size:13px; color:var(--muted); line-height:1.45; }
@media (max-width:980px){ .search-ov{ padding-top:30px; } }

/* mobile toggle */
.nav-toggle{
  display:none; margin-left:auto; background:none; border:0; color:#fff;
  width:42px; height:42px; cursor:pointer; align-items:center; justify-content:center;
}
.nav-toggle svg{ width:26px; height:26px; }

/* ============================================================
   BUTTONS
============================================================ */
.btn{
  display:inline-flex; align-items:center; gap:10px; padding:15px 26px; border-radius:10px;
  font-weight:800; font-size:12px; letter-spacing:1px; text-transform:uppercase;
  transition:.25s; cursor:pointer; border:0; font-family:inherit;
}
.btn-rojo{ background:var(--rojo); color:#fff; }
.btn-rojo:hover{ background:var(--rojo-d); transform:translateY(-2px); }
.btn-ocre{ background:var(--ocre); color:#fff; }
.btn-ocre:hover{ background:var(--ocre-d); transform:translateY(-2px); }
.btn-ink{ background:var(--ink); color:#fff; }
.btn-ink:hover{ background:var(--rojo); transform:translateY(-2px); }
.btn-outline{ border:1.5px solid rgba(255,255,255,.5); color:#fff; }
.btn-outline:hover{ background:rgba(255,255,255,.1); border-color:#fff; }
.btn-outline-dark{ border:1.5px solid rgba(124,31,36,.4); color:var(--rojo); }
.btn-outline-dark:hover{ background:var(--rojo); color:#fff; border-color:var(--rojo); }

/* ============================================================
   BACKGROUND ROTATOR (hero / banners / cta)
============================================================ */
.rot{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.rot-layer{
  position:absolute; inset:0; background-size:cover; background-position:center 35%;
  opacity:0; transform:scale(1.04); transition:opacity 1.4s ease;
  will-change:opacity, transform;
}
.rot-layer.on{ opacity:1; transform:scale(1.12); transition:opacity 1.4s ease, transform 6.5s ease-out; }
@media (prefers-reduced-motion: reduce){
  .rot-layer, .rot-layer.on{ transition:opacity .6s ease; transform:none; }
}

/* ============================================================
   HERO (home)
============================================================ */
.hero{ position:relative; min-height:620px; overflow:hidden; background:#000; }
.hero-bg{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(95deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.62) 38%, rgba(0,0,0,.12) 65%, rgba(0,0,0,.55) 100%);
}
.hero-inner{
  position:relative; z-index:2; min-height:620px; display:flex; align-items:center;
  padding:90px var(--pad-x) 150px; max-width:var(--maxw); margin:0 auto;
}
.hero-txt{ color:#fff; max-width:680px; }
.hero-eyebrow{ color:var(--ocre); text-transform:uppercase; letter-spacing:5px; font-size:12px; font-weight:700; margin-bottom:22px; }
.hero-h1{ font-family:'DM Serif Display',serif; font-size:88px; line-height:.96; letter-spacing:-.5px; margin-bottom:30px; }
.hero-h1 .l1,.hero-h1 .l2{ display:block; }
.hero-h1 .l2{ position:relative; padding-bottom:10px; }
.hero-h1 .dot{ color:var(--rojo); }
.hero-h1 .l2::after{
  content:''; position:absolute; left:4px; bottom:-4px; width:230px; height:5px;
  background:var(--ocre); border-radius:4px; opacity:.95; transform:skewX(-10deg);
}
.hero-p{ font-size:16px; line-height:1.7; color:rgba(255,255,255,.85); max-width:520px; margin-bottom:38px; }
.hero-cta{ display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.btn-video{ display:inline-flex; align-items:center; gap:14px; color:#fff; font-weight:700; font-size:13px; letter-spacing:.5px; }
.play{
  width:46px; height:46px; border-radius:50%; border:1.5px solid rgba(255,255,255,.55);
  display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.06);
  font-size:12px; padding-left:3px;
}

/* stats over hero */
.stats{
  position:absolute; left:50%; transform:translateX(-50%); bottom:28px; z-index:6;
  width:calc(100% - 2*var(--pad-x)); max-width:var(--maxw);
  display:grid; grid-template-columns:repeat(5,1fr);
  background:rgba(15,12,10,.55); backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.06); border-radius:12px; padding:16px 8px;
}
.stat{ display:flex; align-items:center; gap:14px; padding:4px 18px; border-right:1px solid rgba(255,255,255,.10); color:#fff; }
.stat:last-child{ border-right:none; }
.stat-ic{ color:var(--ocre); flex-shrink:0; }
.stat h3{ font-family:'DM Serif Display',serif; color:var(--ocre); font-size:28px; line-height:1; margin-bottom:4px; }
.stat p{ font-size:11.5px; color:rgba(255,255,255,.85); line-height:1.35; }

/* ============================================================
   PAGE BANNER (inner pages)
============================================================ */
.banner{
  position:relative; background:var(--ink-dark); color:#fff; overflow:hidden;
  padding:64px var(--pad-x) 58px;
}
.banner::before{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(100deg, rgba(26,19,15,.94), rgba(124,31,36,.62) 120%);
}
.banner-inner{ position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; }
.crumb{ font-size:12px; letter-spacing:.4px; color:rgba(255,255,255,.6); margin-bottom:16px; display:flex; gap:8px; flex-wrap:wrap; }
.crumb a:hover{ color:var(--ocre); }
.crumb span{ color:var(--ocre); }
.banner .eye{ display:inline-block; font-size:12px; letter-spacing:3px; font-weight:700; color:var(--ocre); text-transform:uppercase; margin-bottom:14px; }
.banner h1{ font-family:'DM Serif Display',serif; font-size:54px; line-height:1.04; letter-spacing:-.5px; max-width:760px; }
.banner h1 em{ color:var(--ocre); font-style:normal; }
.banner p{ font-size:15.5px; line-height:1.7; color:rgba(255,255,255,.78); max-width:620px; margin-top:18px; }

/* ============================================================
   SECTIONS
============================================================ */
.section{ padding:80px var(--pad-x); position:relative; }
.section.cream{ background:var(--cream); }
.section.cream-2{ background:var(--cream-2); }
.section.dark{ background:var(--ink-dark); color:#fff; }
.section.white{ background:#fff; }
.section.tight{ padding:56px var(--pad-x); }

.sec-head{ text-align:center; margin:0 auto 56px; max-width:720px; }
.sec-head.left{ text-align:left; margin-left:0; }
.sec-head .eye{
  display:inline-block; font-size:12px; letter-spacing:3px; font-weight:700; color:var(--ocre);
  text-transform:uppercase; margin-bottom:14px; position:relative; padding:0 22px;
}
.sec-head.left .eye{ padding:0; }
.sec-head .eye::before,.sec-head .eye::after{ content:''; position:absolute; top:50%; width:14px; height:1px; background:currentColor; opacity:.6; }
.sec-head.left .eye::before,.sec-head.left .eye::after{ display:none; }
.sec-head .eye::before{ left:0; } .sec-head .eye::after{ right:0; }
.sec-head h2{ font-family:'DM Serif Display',serif; font-size:44px; line-height:1.08; color:var(--ink); margin-bottom:14px; letter-spacing:-.5px; }
.section.dark .sec-head h2{ color:#fff; }
.sec-head h2 em{ color:var(--rojo); font-style:normal; }
.section.dark .sec-head h2 em{ color:var(--ocre); }
.sec-head p{ font-size:15px; line-height:1.7; color:var(--muted); max-width:580px; margin:0 auto; }
.sec-head.left p{ margin-left:0; }
.section.dark .sec-head p{ color:rgba(255,255,255,.6); }

/* small section heading (left aligned with bar) */
.sec-h{
  font-size:13px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--ink);
  position:relative; padding-bottom:11px; margin-bottom:24px; display:inline-block;
}
.sec-h::after{ content:''; position:absolute; left:0; bottom:0; width:42px; height:3px; background:var(--rojo); }

/* ============================================================
   PROGRAM CARDS
============================================================ */
.prog-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; max-width:var(--maxw); margin:0 auto; }
.prog-grid.cols-3{ grid-template-columns:repeat(3,1fr); }
.pcard{ background:#fff; border-radius:10px; overflow:hidden; box-shadow:var(--shadow-sm); transition:.3s; position:relative; display:flex; flex-direction:column; }
.pcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.pcard-img{ position:relative; height:210px; }
.pcard-img img{ width:100%; height:100%; object-fit:cover; object-position:center 40%; border-radius:10px 10px 0 0; }
.pbadge{
  position:absolute; left:16px; bottom:-22px; width:48px; height:48px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; box-shadow:0 4px 10px rgba(0,0,0,.22);
  border:2px solid #fff; z-index:3; color:#fff;
}
.pbadge.c-sonidos,.pbadge.c-prog,.pbadge.c-voragine{ background:var(--c-prog); }
.pbadge.c-pasos{ background:var(--c-pasos); }
.pbadge.c-arte,.pbadge.c-centro{ background:var(--c-centro); }
.pbadge.c-teal{ background:var(--c-sonidos); }
.pbadge.c-biblio{ background:var(--c-biblio); }
.pcard-body{ padding:32px 18px 24px; flex:1; display:flex; flex-direction:column; }
.pcard-body h3{ font-family:'DM Serif Display',serif; font-size:19px; line-height:1.1; margin-bottom:2px; color:var(--ink); }
.pcat{ font-size:13px; color:var(--muted); font-weight:500; margin-bottom:14px; }
.pcard-body p{ font-size:12.5px; color:#6c6258; line-height:1.55; margin-bottom:18px; flex:1; }
.plink{
  color:var(--ocre); font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:6px; transition:gap .2s; white-space:nowrap; align-self:flex-start;
}
.plink:hover{ gap:9px; color:var(--ocre-d); }
.plink::after{ content:'→'; font-size:13px; }

/* ============================================================
   PROGRAM DETAIL ROWS (programas page)
============================================================ */
.prog-detail{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
  max-width:var(--maxw); margin:0 auto 64px;
}
.prog-detail:last-child{ margin-bottom:0; }
.prog-detail.flip .pd-media{ order:2; }
.pd-media{ position:relative; border-radius:16px; overflow:hidden; height:380px; box-shadow:var(--shadow-md); }
.pd-media img{ width:100%; height:100%; object-fit:cover; }
.pd-tag{
  position:absolute; top:18px; left:18px; background:var(--rojo); color:#fff;
  font-size:11px; font-weight:800; letter-spacing:1.4px; text-transform:uppercase; padding:8px 14px; border-radius:8px;
}
.pd-tag.c-pasos{ background:var(--c-pasos); } .pd-tag.c-arte{ background:var(--c-centro); } .pd-tag.c-teal{ background:var(--c-sonidos); }
.pd-txt h3{ font-family:'DM Serif Display',serif; font-size:34px; line-height:1.06; color:var(--ink); margin-bottom:8px; }
.pd-txt .l-sub{ font-size:11px; font-weight:800; letter-spacing:1.6px; text-transform:uppercase; color:var(--ocre); display:block; margin-bottom:16px; }
.pd-txt > p{ font-size:14.5px; line-height:1.7; color:var(--ink-2); margin-bottom:20px; }
.pd-meta{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:22px; }
.pd-chip{
  display:inline-flex; align-items:center; gap:8px; background:rgba(124,31,36,.06);
  border:1px solid rgba(124,31,36,.14); color:var(--ink-2); font-size:12.5px; font-weight:600;
  padding:8px 14px; border-radius:30px;
}
.pd-chip b{ color:var(--rojo); }

/* ============================================================
   NEWS CARDS / LISTING
============================================================ */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:var(--maxw); margin:0 auto; }
.news-card{ background:#fff; border-radius:10px; overflow:hidden; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; transition:.3s; }
.news-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.nc-img{ position:relative; height:210px; overflow:hidden; }
.nc-img img{ width:100%; height:100%; object-fit:cover; }
.nc-tag{
  position:absolute; bottom:0; left:0; background:var(--rojo); color:#fff; font-size:10px; font-weight:800;
  letter-spacing:1.6px; text-transform:uppercase; padding:6px 12px; border-radius:0 6px 0 0;
}
.nc-body{ padding:20px 22px 24px; flex:1; display:flex; flex-direction:column; }
.nc-date{ font-size:11.5px; font-weight:700; letter-spacing:.6px; color:var(--ocre); text-transform:uppercase; margin-bottom:8px; }
.nc-body h3{ font-family:'DM Serif Display',serif; font-size:20px; line-height:1.2; margin-bottom:10px; color:var(--ink); letter-spacing:-.2px; }
.nc-body p{ font-size:13px; color:#6c6258; line-height:1.55; margin-bottom:14px; flex:1; }
.nlink{ color:var(--ocre); font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; align-self:flex-start; }
.nlink::after{ content:'→'; }

/* article detail */
.article{ max-width:760px; margin:0 auto; }
.article .nc-date{ font-size:13px; }
.article h1{ font-family:'DM Serif Display',serif; font-size:42px; line-height:1.1; color:var(--ink); margin:8px 0 24px; }
.article-hero{ border-radius:16px; overflow:hidden; height:420px; margin-bottom:32px; box-shadow:var(--shadow-md); }
.article-hero img{ width:100%; height:100%; object-fit:cover; }
.article-body p{ font-size:16px; line-height:1.8; color:var(--ink-2); margin-bottom:20px; }
.article-body h2{ font-family:'DM Serif Display',serif; font-size:28px; color:var(--ink); margin:32px 0 14px; }

/* ============================================================
   EVENTS
============================================================ */
.events-list{ display:flex; flex-direction:column; gap:16px; max-width:880px; margin:0 auto; }
.event-row{
  display:grid; grid-template-columns:96px 1fr auto; gap:24px; align-items:center;
  background:#fff; border-radius:12px; padding:22px 26px; box-shadow:var(--shadow-sm);
  border-left:5px solid var(--ocre); transition:.25s;
}
.event-row:hover{ transform:translateX(4px); box-shadow:var(--shadow-md); }
.event-date{ text-align:center; background:var(--cream); border-radius:10px; padding:12px 6px; }
.event-date .d{ font-family:'DM Serif Display',serif; font-size:34px; color:var(--rojo); line-height:1; }
.event-date .m{ font-size:11px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; color:var(--ocre); margin-top:4px; }
.event-date .y{ font-size:10px; color:var(--muted); margin-top:2px; }
.event-info h3{ font-family:'DM Serif Display',serif; font-size:21px; color:var(--ink); margin-bottom:6px; }
.event-info .loc{ font-size:13px; color:var(--muted); display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.event-info p{ font-size:13.5px; color:var(--ink-2); line-height:1.55; max-width:520px; }
.event-empty{ text-align:center; color:var(--muted); padding:40px; font-size:15px; }

/* events sidebar (home) */
.ev-side{ background:var(--rojo); color:#fff; padding:26px 24px; border-radius:12px; display:flex; flex-direction:column; height:100%; }
.ev-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
.ev-head h3{ font-size:14px; font-weight:800; letter-spacing:1.4px; text-transform:uppercase; }
.ev-cal{ width:34px; height:34px; border-radius:8px; background:rgba(255,255,255,.10); display:flex; align-items:center; justify-content:center; }
.ev-item{ display:grid; grid-template-columns:50px 1fr; gap:14px; align-items:start; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.14); }
.ev-d{ font-family:'DM Serif Display',serif; font-size:26px; color:var(--ocre); line-height:1; margin-bottom:3px; text-align:center; }
.ev-m{ font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,.78); text-align:center; }
.ev-info h4{ font-size:13px; font-weight:700; line-height:1.25; margin-bottom:4px; }
.ev-info p{ font-size:11.5px; color:rgba(255,255,255,.72); line-height:1.4; }
.ev-info p.loc{ color:rgba(255,255,255,.5); margin-top:2px; }
.ev-all{
  display:flex; align-items:center; justify-content:center; gap:8px; margin-top:auto;
  color:var(--ocre); font-size:11.5px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase;
  padding:12px; border:1px solid rgba(200,137,58,.45); border-radius:8px; transition:.2s;
}
.ev-all:hover{ background:rgba(200,137,58,.12); }
.ev-all::after{ content:'→'; }

/* home body grid */
.home-grid{ display:grid; grid-template-columns:2fr 1fr; gap:36px; max-width:var(--maxw); margin:0 auto; align-items:start; }

/* ============================================================
   ABOUT / PILLARS / TIMELINE / TEAM
============================================================ */
.about-row{ display:grid; grid-template-columns:1.05fr 1fr; gap:60px; align-items:center; max-width:var(--maxw); margin:0 auto; }
.about-imgs{ display:grid; grid-template-columns:repeat(2,1fr); grid-template-rows:1fr 1fr; gap:14px; height:460px; }
.about-imgs > div{ border-radius:14px; overflow:hidden; position:relative; }
.about-imgs .a1{ grid-row:span 2; }
.about-imgs img{ width:100%; height:100%; object-fit:cover; }
.about-imgs .badge{ position:absolute; left:18px; bottom:18px; background:var(--rojo); color:#fff; padding:10px 16px; border-radius:8px; font-size:12px; letter-spacing:1px; font-weight:800; text-transform:uppercase; }
.about-imgs .badge b{ display:block; font-family:'DM Serif Display',serif; font-size:26px; font-weight:400; letter-spacing:.5px; margin-bottom:2px; color:var(--ocre); }
.about-txt .eye{ display:inline-block; font-size:12px; letter-spacing:3px; font-weight:700; color:var(--ocre); text-transform:uppercase; margin-bottom:18px; }
.about-txt h2{ font-family:'DM Serif Display',serif; font-size:46px; line-height:1.05; margin-bottom:22px; color:var(--ink); letter-spacing:-.5px; }
.about-txt h2 em{ color:var(--rojo); font-style:normal; }
.about-txt > p{ font-size:15px; line-height:1.75; color:var(--ink-2); margin-bottom:28px; }
.about-pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:26px; }
.pillar{ background:rgba(124,31,36,.05); border-left:3px solid var(--rojo); padding:14px 14px 14px 16px; border-radius:0 8px 8px 0; }
.pillar:nth-child(2){ border-color:var(--ocre); background:rgba(200,137,58,.07); }
.pillar:nth-child(3){ border-color:var(--c-pasos); background:rgba(110,126,42,.07); }
.pillar h4{ font-size:12px; font-weight:800; letter-spacing:1.4px; text-transform:uppercase; color:var(--rojo); margin-bottom:6px; }
.pillar:nth-child(2) h4{ color:var(--ocre); } .pillar:nth-child(3) h4{ color:var(--c-pasos); }
.pillar p{ font-size:12.5px; line-height:1.55; color:var(--ink-2); }

/* MVP cards */
.mvp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:var(--maxw); margin:0 auto; }
.mvp-card{ background:#fff; border-radius:14px; padding:38px 32px; box-shadow:var(--shadow-sm); border-top:5px solid var(--rojo); }
.mvp-card:nth-child(2){ border-color:var(--ocre); } .mvp-card:nth-child(3){ border-color:var(--c-pasos); }
.mvp-ic{ width:58px; height:58px; border-radius:14px; background:rgba(124,31,36,.1); color:var(--rojo); display:flex; align-items:center; justify-content:center; margin-bottom:22px; }
.mvp-card:nth-child(2) .mvp-ic{ background:rgba(200,137,58,.14); color:var(--ocre); }
.mvp-card:nth-child(3) .mvp-ic{ background:rgba(110,126,42,.12); color:var(--c-pasos); }
.mvp-card h3{ font-family:'DM Serif Display',serif; font-size:26px; color:var(--ink); margin-bottom:12px; }
.mvp-card p{ font-size:14px; line-height:1.7; color:var(--ink-2); }

/* timeline */
.timeline{ max-width:820px; margin:0 auto; position:relative; padding-left:36px; }
.timeline::before{ content:''; position:absolute; left:7px; top:8px; bottom:8px; width:2px; background:rgba(200,137,58,.4); }
.tl-item{ position:relative; padding:0 0 38px 28px; }
.tl-item:last-child{ padding-bottom:0; }
.tl-item::before{ content:''; position:absolute; left:-36px; top:4px; width:16px; height:16px; border-radius:50%; background:var(--ocre); border:3px solid var(--cream); box-shadow:0 0 0 2px var(--ocre); }
.tl-year{ font-family:'DM Serif Display',serif; font-size:30px; color:var(--rojo); line-height:1; margin-bottom:8px; }
.tl-item h3{ font-size:16px; font-weight:800; color:var(--ink); margin-bottom:6px; }
.tl-item p{ font-size:14px; line-height:1.7; color:var(--ink-2); }

/* team */
.team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; max-width:var(--maxw); margin:0 auto; }
.team-card{ background:#fff; border-radius:14px; padding:30px 24px; text-align:center; box-shadow:var(--shadow-sm); transition:.25s; }
.team-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.team-av{ width:84px; height:84px; border-radius:50%; margin:0 auto 18px; background:var(--rojo); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'DM Serif Display',serif; font-size:32px; }
.team-card:nth-child(3n+2) .team-av{ background:var(--ocre); }
.team-card:nth-child(3n) .team-av{ background:var(--c-pasos); }
.team-card h3{ font-family:'DM Serif Display',serif; font-size:19px; color:var(--ink); margin-bottom:4px; }
.team-card span{ font-size:12px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; color:var(--ocre); }
.team-card.lead{ border-top:4px solid var(--rojo); }

/* ============================================================
   LINES OF ACTION (3 pillars)
============================================================ */
.lines-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:var(--maxw); margin:0 auto; }
.line-card{ background:#fff; border-radius:14px; padding:36px 30px 32px; position:relative; overflow:hidden; transition:.3s; box-shadow:var(--shadow-sm); }
.line-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.line-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:5px; background:var(--c-prog); }
.line-card.l-edu::before{ background:var(--ocre); } .line-card.l-amb::before{ background:var(--c-pasos); }
.line-ic{ width:60px; height:60px; border-radius:14px; background:rgba(124,31,36,.10); color:var(--rojo); display:flex; align-items:center; justify-content:center; margin-bottom:24px; }
.line-card.l-edu .line-ic{ background:rgba(200,137,58,.14); color:var(--ocre); }
.line-card.l-amb .line-ic{ background:rgba(110,126,42,.12); color:var(--c-pasos); }
.line-card h3{ font-family:'DM Serif Display',serif; font-size:26px; line-height:1.1; margin-bottom:8px; color:var(--ink); }
.line-card .l-sub{ font-size:11px; font-weight:800; letter-spacing:1.6px; text-transform:uppercase; color:var(--ocre); margin-bottom:16px; display:block; }
.line-card > p{ font-size:13.5px; line-height:1.65; color:var(--ink-2); margin-bottom:18px; }
.line-card ul{ display:flex; flex-direction:column; gap:8px; }
.line-card li{ font-size:12.5px; color:var(--ink-2); padding-left:22px; position:relative; line-height:1.5; }
.line-card li::before{ content:''; position:absolute; left:6px; top:7px; width:8px; height:8px; background:var(--ocre); transform:rotate(45deg); }
.line-card.l-cul li::before{ background:var(--rojo); } .line-card.l-amb li::before{ background:var(--c-pasos); }

/* ============================================================
   TERRITORY
============================================================ */
.territory{ display:grid; grid-template-columns:1.1fr 1fr; gap:64px; align-items:center; max-width:var(--maxw); margin:0 auto; }
.terr-l .eye{ display:inline-block; font-size:12px; letter-spacing:3px; font-weight:700; color:var(--ocre); text-transform:uppercase; margin-bottom:18px; }
.terr-l h2{ font-family:'DM Serif Display',serif; font-size:44px; line-height:1.08; margin-bottom:18px; letter-spacing:-.5px; color:#fff; }
.terr-l h2 em{ color:var(--ocre); font-style:normal; }
.terr-l p{ font-size:14.5px; color:rgba(255,255,255,.65); line-height:1.7; margin-bottom:28px; max-width:480px; }
.terr-stats{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:0; max-width:460px; }
.terr-stat{ background:rgba(200,137,58,.10); border:1px solid rgba(200,137,58,.20); padding:18px; border-radius:12px; }
.terr-stat .n{ font-family:'DM Serif Display',serif; font-size:38px; color:var(--ocre); line-height:1; margin-bottom:6px; }
.terr-stat .l{ font-size:12px; color:rgba(255,255,255,.78); line-height:1.4; }
.terr-r{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:32px 28px; }
.terr-r h4{ font-size:12px; font-weight:800; letter-spacing:1.6px; text-transform:uppercase; color:var(--ocre); margin-bottom:18px; display:flex; align-items:center; gap:10px; }
.terr-r h4::before{ content:''; width:24px; height:1.5px; background:var(--ocre); }
.terr-list{ display:grid; grid-template-columns:repeat(2,1fr); gap:4px 22px; margin-bottom:22px; }
.terr-list li{ font-size:13.5px; color:rgba(255,255,255,.85); padding:6px 0; border-bottom:1px solid rgba(255,255,255,.06); display:flex; align-items:center; gap:8px; }
.terr-list li::before{ content:''; width:6px; height:6px; background:var(--ocre); border-radius:50%; flex-shrink:0; }
.terr-note{ font-size:12px; color:rgba(255,255,255,.45); font-style:italic; }

/* ============================================================
   TESTIMONIALS
============================================================ */
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; max-width:var(--maxw); margin:0 auto; }
.testi{ background:#fff; border-radius:14px; padding:38px 30px 28px; position:relative; box-shadow:var(--shadow-sm); }
.testi .quote-mk{ position:absolute; top:18px; right:22px; font-family:'DM Serif Display',serif; font-size:60px; color:var(--ocre); opacity:.35; line-height:1; }
.testi blockquote{ font-size:15px; line-height:1.65; color:var(--ink-2); margin-bottom:24px; font-style:italic; font-family:'DM Serif Display',serif; position:relative; z-index:1; }
.testi-by{ display:flex; align-items:center; gap:12px; padding-top:18px; border-top:1px solid rgba(0,0,0,.06); }
.testi-av{ width:44px; height:44px; border-radius:50%; background:var(--rojo); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'DM Serif Display',serif; font-size:18px; flex-shrink:0; }
.testi-av.av-2{ background:var(--ocre); } .testi-av.av-3{ background:var(--c-pasos); }
.testi-meta b{ display:block; font-size:13.5px; font-weight:700; color:var(--ink); line-height:1.2; }
.testi-meta span{ display:block; font-size:11.5px; color:var(--muted); margin-top:3px; }

/* ============================================================
   ALLIES
============================================================ */
.allies-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; max-width:var(--maxw); margin:0 auto; }
.allies-grid.cols-4{ grid-template-columns:repeat(4,1fr); }
.ally{ background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:12px; padding:26px 18px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; transition:.2s; min-height:150px; }
.ally:hover{ border-color:var(--ocre); transform:translateY(-2px); }
.ally-ic{ width:46px; height:46px; border-radius:50%; background:rgba(124,31,36,.08); color:var(--rojo); display:flex; align-items:center; justify-content:center; margin-bottom:4px; }
.ally b{ display:block; font-family:'DM Serif Display',serif; font-size:15px; color:var(--ink); line-height:1.15; }
.ally span{ display:block; font-size:10.5px; color:var(--muted); letter-spacing:.8px; text-transform:uppercase; margin-top:2px; }

/* ============================================================
   CTA DONATION
============================================================ */
.cta{
  background:var(--rojo);
  color:#fff; padding:90px var(--pad-x); text-align:center; position:relative; overflow:hidden;
}
.cta::before{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(95deg, rgba(124,31,36,.96) 0%, rgba(124,31,36,.85) 50%, rgba(98,19,24,.78) 100%);
}
.cta-inner{ max-width:760px; margin:0 auto; position:relative; z-index:2; }
.cta .eye{ display:inline-block; font-size:12px; letter-spacing:3px; font-weight:700; color:var(--ocre); text-transform:uppercase; margin-bottom:18px; }
.cta h2{ font-family:'DM Serif Display',serif; font-size:54px; line-height:1.06; margin-bottom:18px; letter-spacing:-.5px; }
.cta h2 em{ color:var(--ocre); font-style:normal; }
.cta p{ font-size:16px; line-height:1.7; color:rgba(255,255,255,.85); margin:0 auto 36px; max-width:600px; }
.cta-btns{ display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; }

/* ============================================================
   FORMS
============================================================ */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.field{ display:flex; flex-direction:column; gap:7px; margin-bottom:18px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:12.5px; font-weight:700; letter-spacing:.4px; color:var(--ink); }
.field label .req{ color:var(--rojo); }
.field input,.field select,.field textarea{
  font-family:inherit; font-size:14px; color:var(--ink); background:#fff;
  border:1.5px solid rgba(60,40,20,.16); border-radius:10px; padding:13px 15px; transition:.2s; width:100%;
}
.field textarea{ resize:vertical; min-height:130px; }
.field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--ocre); outline:none; box-shadow:0 0 0 3px rgba(200,137,58,.18); }
.form-note{ font-size:12.5px; color:var(--muted); line-height:1.6; }
.form-ok{ background:rgba(110,126,42,.12); border:1px solid rgba(110,126,42,.35); color:var(--verde-d); padding:14px 18px; border-radius:10px; font-size:14px; font-weight:600; margin-bottom:18px; display:none; }

/* ============================================================
   GENERIC CONTENT
============================================================ */
.split{ display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:start; max-width:var(--maxw); margin:0 auto; }
.prose h2{ font-family:'DM Serif Display',serif; font-size:30px; color:var(--ink); margin:0 0 14px; }
.prose h3{ font-size:17px; font-weight:800; color:var(--rojo); margin:24px 0 10px; letter-spacing:.3px; }
.prose p{ font-size:15px; line-height:1.8; color:var(--ink-2); margin-bottom:16px; }
.prose ul.bullets{ display:flex; flex-direction:column; gap:10px; margin:6px 0 20px; }
.prose ul.bullets li{ font-size:14.5px; line-height:1.6; color:var(--ink-2); padding-left:24px; position:relative; }
.prose ul.bullets li::before{ content:''; position:absolute; left:6px; top:8px; width:8px; height:8px; background:var(--ocre); transform:rotate(45deg); }

/* feature cards generic */
.feature-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; max-width:var(--maxw); margin:0 auto; }
.feature-grid.cols-2{ grid-template-columns:repeat(2,1fr); }
.feature{ background:#fff; border-radius:14px; padding:32px 28px; box-shadow:var(--shadow-sm); border:1px solid rgba(0,0,0,.04); transition:.25s; }
.feature:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.feature-ic{ width:54px; height:54px; border-radius:12px; background:rgba(124,31,36,.1); color:var(--rojo); display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.feature h3{ font-family:'DM Serif Display',serif; font-size:21px; color:var(--ink); margin-bottom:10px; }
.feature p{ font-size:13.5px; line-height:1.65; color:var(--ink-2); }
.feature .plink{ margin-top:14px; }

/* document / transparency list */
.doc-list{ display:flex; flex-direction:column; gap:12px; max-width:var(--maxw); margin:0 auto; }
.doc-row{ display:flex; align-items:center; gap:20px; background:#fff; border-radius:12px; padding:20px 24px; box-shadow:var(--shadow-sm); transition:.2s; }
.doc-row:hover{ transform:translateX(4px); box-shadow:var(--shadow-md); }
.doc-ic{ width:48px; height:48px; border-radius:10px; background:rgba(200,137,58,.14); color:var(--ocre); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.doc-info{ flex:1; }
.doc-info h3{ font-size:15.5px; font-weight:800; color:var(--ink); margin-bottom:3px; }
.doc-info p{ font-size:12.5px; color:var(--muted); }
.doc-dl{ color:var(--rojo); font-size:11px; font-weight:800; letter-spacing:1px; text-transform:uppercase; display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.doc-dl::after{ content:'↓'; font-size:14px; }

/* tabs/chips */
.filters{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:40px; }
.chip{ background:#fff; border:1.5px solid rgba(60,40,20,.14); color:var(--ink-2); font-size:12.5px; font-weight:700; letter-spacing:.4px; padding:10px 20px; border-radius:30px; cursor:pointer; transition:.2s; }
.chip:hover{ border-color:var(--ocre); }
.chip.on{ background:var(--rojo); color:#fff; border-color:var(--rojo); }

/* donation page */
.dona-grid{ display:grid; grid-template-columns:1fr 1fr; gap:48px; max-width:var(--maxw); margin:0 auto; align-items:start; }
.dona-card{ background:#fff; border-radius:18px; padding:40px 36px; box-shadow:var(--shadow-md); }
.dona-card h3{ font-family:'DM Serif Display',serif; font-size:26px; color:var(--ink); margin-bottom:6px; }
.amount-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:22px 0; }
.amount{ border:1.5px solid rgba(60,40,20,.16); border-radius:12px; padding:18px 10px; text-align:center; cursor:pointer; font-weight:800; font-size:18px; color:var(--ink); transition:.2s; background:#fff; }
.amount:hover{ border-color:var(--ocre); }
.amount.on{ background:var(--rojo); color:#fff; border-color:var(--rojo); }
.amount small{ display:block; font-size:10px; font-weight:600; letter-spacing:.5px; color:inherit; opacity:.7; margin-top:4px; text-transform:uppercase; }
.bank-box{ background:var(--cream); border:1px dashed rgba(124,31,36,.3); border-radius:12px; padding:24px; }
.bank-box h4{ font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--rojo); margin-bottom:14px; }
.bank-line{ display:flex; justify-content:space-between; gap:16px; padding:9px 0; border-bottom:1px solid rgba(124,31,36,.1); font-size:14px; }
.bank-line:last-child{ border-bottom:0; }
.bank-line b{ color:var(--ink); }
.cocrea{ background:linear-gradient(120deg, rgba(110,126,42,.12), rgba(200,137,58,.1)); border:1px solid rgba(110,126,42,.25); border-radius:14px; padding:26px 28px; margin-top:24px; }
.cocrea h4{ font-family:'DM Serif Display',serif; font-size:22px; color:var(--verde-d); margin-bottom:10px; }
.cocrea .big{ font-family:'DM Serif Display',serif; font-size:40px; color:var(--verde); line-height:1; }

/* gateway placeholder */
.gateway-ph{ border:2px dashed rgba(200,137,58,.5); border-radius:12px; padding:26px; text-align:center; background:rgba(200,137,58,.06); }
.gateway-ph .badge-config{ display:inline-block; background:var(--ocre); color:#fff; font-size:10px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:5px 12px; border-radius:20px; margin-bottom:12px; }
.gateway-ph p{ font-size:13px; color:var(--ink-2); line-height:1.6; }
.gateway-ph code{ background:rgba(124,31,36,.08); color:var(--rojo); padding:2px 7px; border-radius:5px; font-size:12px; }

/* contact info cards */
.contact-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:48px; max-width:var(--maxw); margin:0 auto; align-items:start; }
.contact-info{ display:flex; flex-direction:column; gap:16px; }
.contact-item{ display:flex; gap:16px; align-items:flex-start; background:#fff; border-radius:12px; padding:20px 22px; box-shadow:var(--shadow-sm); }
.contact-item .ci-ic{ width:46px; height:46px; border-radius:50%; background:rgba(124,31,36,.08); color:var(--rojo); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-item h4{ font-size:12px; font-weight:800; letter-spacing:.8px; text-transform:uppercase; color:var(--ocre); margin-bottom:5px; }
.contact-item p{ font-size:14px; color:var(--ink-2); line-height:1.5; }
.map-embed{ border-radius:16px; overflow:hidden; height:320px; box-shadow:var(--shadow-md); margin-top:20px; border:0; width:100%; }

/* ============================================================
   FOOTER (4 columns)
============================================================ */
.site-footer{ position:relative; background:var(--ink-dark); color:#fff; overflow:hidden; }
.foot-pattern{
  position:absolute; left:0; top:0; bottom:0; width:80px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'><g fill='none' stroke='%23C8893A' stroke-width='1' opacity='.55'><path d='M10 40 L40 10 L70 40 L40 70 Z'/><path d='M25 40 L40 25 L55 40 L40 55 Z'/><circle cx='40' cy='40' r='3'/></g></svg>");
  background-repeat:repeat-y; background-size:80px 80px; opacity:.7; pointer-events:none;
}
.foot-main{ position:relative; z-index:1; max-width:var(--maxw); margin:0 auto; padding:60px var(--pad-x) 44px; display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; }
.foot-brand-row{ display:flex; align-items:center; gap:14px; margin-bottom:20px; }
.foot-brand-mark{ width:52px; height:52px; flex-shrink:0; }
.foot-logo{ height:42px; width:auto; display:block; margin-bottom:14px; }
.foot-loc{ font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--ocre); font-weight:700; margin-bottom:16px; }
.foot-brand-tx strong{ display:block; font-family:'DM Serif Display',serif; font-size:20px; letter-spacing:2px; color:#fff; }
.foot-brand-tx small{ display:block; font-size:10px; color:rgba(255,255,255,.55); line-height:1.5; margin-top:4px; }
.foot-tag{ font-size:13.5px; color:rgba(255,255,255,.68); line-height:1.6; max-width:300px; margin-bottom:22px; }
.foot-contact-list{ display:flex; flex-direction:column; gap:12px; margin-bottom:22px; }
.fc{ display:flex; align-items:flex-start; gap:12px; font-size:13px; color:rgba(255,255,255,.78); line-height:1.45; }
.fc-ic{ width:34px; height:34px; border-radius:50%; background:rgba(200,137,58,.16); color:var(--ocre); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.foot-social{ display:flex; align-items:center; gap:10px; }
.fs-ic{ width:36px; height:36px; border-radius:9px; background:rgba(255,255,255,.08); color:#fff; display:flex; align-items:center; justify-content:center; transition:.2s; }
.fs-ic:hover{ background:var(--ocre); }
.foot-col h4{ font-size:12px; font-weight:800; letter-spacing:1.6px; text-transform:uppercase; color:#fff; margin-bottom:20px; position:relative; padding-bottom:12px; }
.foot-col h4::after{ content:''; position:absolute; left:0; bottom:0; width:30px; height:2px; background:var(--ocre); }
.foot-col ul{ display:flex; flex-direction:column; gap:11px; }
.foot-col li a{ display:flex; align-items:center; gap:9px; font-size:13.5px; color:rgba(255,255,255,.7); transition:.18s; }
.foot-col li a::before{ content:'›'; color:var(--ocre); font-weight:800; font-size:15px; }
.foot-col li a:hover{ color:#fff; padding-left:4px; }
.foot-bottom{ position:relative; z-index:1; border-top:1px solid rgba(255,255,255,.1); }
.foot-bottom-in{ max-width:var(--maxw); margin:0 auto; padding:20px var(--pad-x); display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.foot-bottom-in .copy{ font-size:12.5px; color:rgba(255,255,255,.5); }
.foot-bottom-in .copy strong{ color:#fff; font-weight:700; }
.foot-seal{ display:flex; align-items:center; gap:10px; background:rgba(255,255,255,.05); border:1px solid rgba(110,126,42,.4); border-radius:30px; padding:8px 18px; font-size:12px; color:rgba(255,255,255,.8); }
.foot-seal .dot-g{ width:9px; height:9px; border-radius:50%; background:var(--verde); }
.foot-legal{ display:flex; gap:18px; }
.foot-legal a{ font-size:12.5px; color:rgba(255,255,255,.5); transition:.2s; }
.foot-legal a:hover{ color:var(--ocre); }

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width:1180px){
  .stats{ grid-template-columns:repeat(3,1fr); }
  .stat:nth-child(4),.stat:nth-child(5){ display:none; }
  .allies-grid{ grid-template-columns:repeat(3,1fr); }
  .prog-grid{ grid-template-columns:repeat(2,1fr); }
  .news-grid,.feature-grid,.testi-grid,.mvp-grid{ grid-template-columns:repeat(2,1fr); }
  .lines-grid{ grid-template-columns:1fr; }
  .territory,.about-row,.split,.dona-grid,.contact-grid{ grid-template-columns:1fr; gap:40px; }
  .team-grid{ grid-template-columns:repeat(3,1fr); }
  .foot-main{ grid-template-columns:1fr 1fr; }
  .hero-h1{ font-size:72px; }
}
@media (max-width:980px){
  :root{ --logo-w:auto; }
  .home-grid{ grid-template-columns:1fr; }
  .nav-row{ display:none; }
  .nav-toggle{ display:flex; }
  .top-links,.top-social{ display:none; }
  .prog-detail,.prog-detail.flip{ grid-template-columns:1fr; gap:28px; }
  .prog-detail.flip .pd-media{ order:0; }
  .pd-media{ height:300px; }
  .banner h1{ font-size:40px; }
  .hero-h1{ font-size:58px; }
  .hero-inner{ padding-bottom:170px; }
  .sec-head h2,.terr-l h2,.about-txt h2{ font-size:32px; }
  .cta h2{ font-size:36px; }
  .section{ padding:60px var(--pad-x); }
}
@media (max-width:720px){
  :root{ --pad-x:20px; }
  .prog-grid,.news-grid,.feature-grid,.feature-grid.cols-2,.testi-grid,.mvp-grid,.team-grid,.allies-grid,.allies-grid.cols-4{ grid-template-columns:1fr 1fr; }
  .team-grid{ grid-template-columns:1fr 1fr; }
  .form-grid{ grid-template-columns:1fr; }
  .foot-main{ grid-template-columns:1fr; gap:32px; }
  .event-row{ grid-template-columns:72px 1fr; }
  .event-row .btn{ grid-column:1 / -1; justify-content:center; }
  .hero-h1{ font-size:46px; }
  .hero-h1 .l2::after{ width:160px; }
  .banner h1{ font-size:32px; }
  .brand-txt small{ display:none; }
  .about-imgs{ height:360px; }
}
@media (max-width:480px){
  .prog-grid,.news-grid,.feature-grid,.testi-grid,.mvp-grid,.allies-grid,.amount-grid{ grid-template-columns:1fr; }
  .stats{ grid-template-columns:1fr; }
  .stat:nth-child(2),.stat:nth-child(3){ display:none; }
}

/* mobile drawer */
.mobile-drawer{
  position:fixed; inset:0; z-index:200; background:var(--ink-dark);
  transform:translateX(100%); transition:transform .3s; display:flex; flex-direction:column;
  padding:24px; overflow-y:auto;
}
.mobile-drawer.open{ transform:translateX(0); }
.md-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; }
.md-close{ background:none; border:0; color:#fff; width:44px; height:44px; cursor:pointer; }
.md-close svg{ width:28px; height:28px; }
.md-nav a, .md-group > span{ display:block; color:#fff; font-size:16px; font-weight:700; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.08); text-transform:uppercase; letter-spacing:.5px; }
.md-group > span{ color:var(--ocre); font-size:12px; letter-spacing:1.5px; margin-top:8px; }
.md-sub a{ font-size:14px; text-transform:none; font-weight:600; color:rgba(255,255,255,.75); padding:10px 0 10px 16px; }
.md-cta{ margin-top:24px; }
.md-cta .btn{ width:100%; justify-content:center; }
body.no-scroll{ overflow:hidden; }

/* ============================================================
   BOTÓN FLOTANTE DE WHATSAPP
============================================================ */
.wa-float{
  position:fixed; right:22px; bottom:22px; z-index:150;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 18px rgba(37,211,102,.45);
  transition:transform .2s, box-shadow .2s;
  animation:wa-pop .4s ease;
}
.wa-float:hover{ transform:scale(1.08); box-shadow:0 8px 24px rgba(37,211,102,.6); }
.wa-float::after{
  content:''; position:absolute; inset:0; border-radius:50%;
  border:2px solid #25D366; opacity:.6; animation:wa-ring 2.2s ease-out infinite;
}
@keyframes wa-pop{ from{ transform:scale(0); } to{ transform:scale(1); } }
@keyframes wa-ring{ 0%{ transform:scale(1); opacity:.6; } 100%{ transform:scale(1.7); opacity:0; } }
@media (max-width:720px){ .wa-float{ width:52px; height:52px; right:16px; bottom:16px; } }
@media (prefers-reduced-motion: reduce){ .wa-float, .wa-float::after{ animation:none; } }
