/* ═══════════════════════════════════════════════════════════════
   Colombia Aurrera · hoja de estilo
   Una asociación cívica y política: sobria, legible, con los tres
   colores del mapa-logo (amarillo, azul, rojo) usados con intención.
   Las tipografías se sirven desde la propia web: ni una petición a
   Google ni a nadie.
   ═══════════════════════════════════════════════════════════════ */

@font-face{ font-family:'Fraunces'; src:url('../fuentes/fraunces-latin-opsz-normal.woff2') format('woff2'); font-weight:100 900; font-style:normal; font-display:swap; }
@font-face{ font-family:'Fraunces'; src:url('../fuentes/fraunces-latin-opsz-italic.woff2') format('woff2'); font-weight:100 900; font-style:italic; font-display:swap; }
@font-face{ font-family:'Public Sans'; src:url('../fuentes/public-sans-latin-wght-normal.woff2') format('woff2'); font-weight:100 900; font-style:normal; font-display:swap; }

:root{
  --fondo:#F6F4EF;          /* papel cálido y sobrio */
  --superficie:#FFFFFF;
  --tinta:#13213F;          /* azul noche: texto y bloques institucionales */
  --tinta-2:#4A5470;        /* texto secundario (contraste AA sobre papel) */
  --linea:rgba(19,33,63,0.13);
  --azul:#1F3F8C;           /* el azul del mapa-logo */
  --azul-claro:#E6ECF8;
  --hondo:#0D1B3A;          /* cabecera de portada y pie */
  --amarillo:#FFC23D;       /* el amarillo del mapa-logo */
  --amarillo-claro:#FFF3D1;
  --amarillo-texto:#8A5D00; /* amarillo legible sobre claro */
  --rojo:#D91E1E;           /* el rojo del mapa-logo: el directo */
  --verde:#1E7A4C;
  --verde-claro:#E3F3EA;
  --radio:14px;
  --radio-s:8px;
  --maxw:1180px;
  --sombra:0 1px 2px rgba(13,27,58,0.05), 0 10px 30px rgba(13,27,58,0.07);
  --tricolor:linear-gradient(90deg, var(--amarillo) 0 50%, var(--azul) 50% 75%, var(--rojo) 75% 100%);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; font-size:clamp(15px, 0.55vw + 13px, 19px); scroll-padding-top:84px;}
body{margin:0; background:var(--fondo); color:var(--tinta); font-family:'Public Sans', system-ui, sans-serif; font-size:1rem; line-height:1.6; -webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:'Fraunces', Georgia, serif; font-weight:600; letter-spacing:-0.015em; margin:0; line-height:1.15;}
p{margin:0;}
a{color:inherit;}
img{max-width:100%; height:auto; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
@media (max-width:720px){ .wrap{padding:0 18px;} }
:focus-visible{ outline:3px solid var(--amarillo); outline-offset:2px; }
@media (prefers-reduced-motion: reduce){ *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;} }
.sprite{position:absolute; width:0; height:0; overflow:hidden;}
.solo-lectores{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.salto{position:absolute; left:16px; top:-60px; z-index:400; background:var(--amarillo); color:var(--hondo); font-weight:700; padding:10px 18px; border-radius:999px; text-decoration:none; transition:top .2s ease;}
.salto:focus{top:12px;}
.tricolor{height:5px; background:var(--tricolor);}
.icono{width:1.15em; height:1.15em; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}

/* ---- Botones ---- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:13px 24px; font:inherit; font-size:0.94rem; font-weight:700; line-height:1.2; border-radius:999px; border:1.5px solid transparent; cursor:pointer; text-decoration:none; transition:background .2s ease, border-color .2s ease, color .2s ease, transform .15s ease; }
.btn:hover{transform:translateY(-1px);}
.btn[disabled]{opacity:.6; cursor:progress; transform:none;}
.btn-gold{background:var(--amarillo); color:var(--hondo);}
.btn-gold:hover{background:#FFD36E;}
.btn-azul{background:var(--azul); color:#fff;}
.btn-azul:hover{background:#2A4FA8;}
.btn-rojo{background:var(--rojo); color:#fff;}
.btn-outline{border-color:rgba(255,255,255,0.55); color:#fff;}
.btn-outline:hover{border-color:#fff; background:rgba(255,255,255,0.08);}
.btn-tinta{border-color:var(--linea); color:var(--tinta); background:var(--superficie);}
.btn-tinta:hover{border-color:var(--azul); color:var(--azul);}
.btn-sm{padding:9px 16px; font-size:0.84rem;}
.btn svg{width:18px; height:18px; flex:none;}
.enlace-flecha{display:inline-flex; align-items:center; gap:6px; font-weight:700; color:var(--azul); text-decoration:none;}
.enlace-flecha:hover{text-decoration:underline; text-underline-offset:4px;}

/* ---- Aviso de directo y cabecera ---- */
.barra-directo{background:var(--rojo); color:#fff; font-size:0.9rem; font-weight:600;}
.barra-directo a{display:flex; gap:10px; align-items:center; justify-content:center; padding:9px 16px; text-decoration:none; flex-wrap:wrap; text-align:center;}
.barra-directo a:hover .ver{text-decoration:underline;}
.punto-vivo{display:inline-block; width:9px; height:9px; border-radius:50%; background:currentColor; flex:none; animation:latido 1.4s ease-in-out infinite;}
@keyframes latido{ 50%{opacity:.35;} }
header.sitio{ position:sticky; top:0; z-index:100; background:rgba(255,255,255,0.96); backdrop-filter:blur(8px); border-bottom:1px solid var(--linea); }
header.sitio .wrap{display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:72px;}
.marca{display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--tinta);}
.marca svg{width:1.9rem; height:2.5rem; flex:none;}
.marca .nombre{display:flex; flex-direction:column; line-height:1.05; white-space:nowrap;}
.marca .nombre b{font-family:'Fraunces',serif; font-weight:700; font-size:1.18rem; letter-spacing:-0.01em;}
.marca .nombre small{font-size:0.66rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--tinta-2); margin-top:4px;}
nav.principal{display:flex; gap:4px; align-items:center;}
nav.principal a{display:flex; align-items:center; gap:7px; padding:9px 12px; border-radius:999px; font-size:0.88rem; font-weight:600; text-decoration:none; color:var(--tinta); white-space:nowrap;}
nav.principal a:hover{background:var(--azul-claro); color:var(--azul);}
nav.principal a[aria-current]{color:var(--azul); background:var(--azul-claro);}
nav.principal a.vivo, #menu-movil a.vivo{color:var(--rojo);}
#menu-movil a.vivo{color:#FF7A7A;}
.cabecera-cta{white-space:nowrap;}
.menu-btn{display:none; background:none; border:1px solid var(--linea); border-radius:10px; padding:8px; color:var(--tinta); cursor:pointer;}
.menu-btn svg{width:24px; height:24px; display:block;}
@media (max-width:1080px){ nav.principal, .cabecera-cta{display:none;} .menu-btn{display:block;} }

#menu-movil{ position:fixed; inset:0; z-index:150; background:var(--hondo); color:#fff; display:flex; flex-direction:column; justify-content:center; gap:4px; padding:32px 28px; transform:translateY(-100%); visibility:hidden; transition:transform .35s ease, visibility 0s linear .35s; }
#menu-movil.open{transform:translateY(0); visibility:visible; transition:transform .35s ease;}
#menu-movil a{color:#fff; font-family:'Fraunces',serif; font-size:1.55rem; text-decoration:none; padding:9px 0; border-bottom:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; gap:12px;}
#menu-movil a.btn{font-family:'Public Sans',sans-serif; font-size:1rem; justify-content:center; margin-top:18px; border:0; color:var(--hondo);}
#menu-movil .cerrar{position:absolute; top:18px; right:20px; background:none; border:0; color:#fff; cursor:pointer; padding:8px;}

/* ---- Portada: cabecera ---- */
.portada{background:var(--hondo); color:#fff; position:relative; overflow:hidden;}
.portada::after{content:""; position:absolute; inset:auto 0 0 0; height:5px; background:var(--tricolor);}
.portada .wrap{display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center; padding-top:72px; padding-bottom:80px;}
@media (max-width:920px){ .portada .wrap{grid-template-columns:1fr; gap:36px; padding-top:48px; padding-bottom:60px;} }
.antetitulo{display:flex; align-items:center; gap:10px; font-size:0.8rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--amarillo);}
.antetitulo::before{content:""; width:28px; height:4px; border-radius:2px; background:var(--tricolor); flex:none;}
.portada h1{font-size:clamp(2.2rem, 4.4vw, 3.5rem); margin-top:18px; max-width:16ch;}
.portada h1 em{font-style:italic; color:var(--amarillo); font-weight:500;}
.portada .sub{margin-top:22px; font-size:1.08rem; color:rgba(255,255,255,0.84); max-width:36rem;}
.portada .acciones{margin-top:32px; display:flex; gap:12px; flex-wrap:wrap;}
.portada-foto{position:relative; border-radius:var(--radio); overflow:hidden; aspect-ratio:4/3.4; box-shadow:0 30px 60px rgba(0,0,0,0.35); margin:0;}
.portada-foto img{width:100%; height:100%; object-fit:cover;}
.portada-foto figcaption{position:absolute; left:16px; bottom:16px; background:var(--amarillo); color:var(--hondo); font-weight:700; font-size:0.82rem; padding:8px 14px; border-radius:999px;}
.cifras{display:flex; gap:14px 34px; flex-wrap:wrap; margin-top:40px; padding-top:26px; border-top:1px solid rgba(255,255,255,0.14);}
.cifras > *{display:flex; flex-direction:column; text-decoration:none;}
.cifras b{font-family:'Fraunces',serif; font-size:1.9rem; line-height:1; color:#fff;}
.cifras span{font-size:0.82rem; color:rgba(255,255,255,0.7); margin-top:6px;}
.cifras .vivo b{color:#FF7A7A;}

/* ---- Secciones ---- */
section{padding:88px 0;}
@media (max-width:720px){ section{padding:60px 0;} }
.clara{background:var(--superficie);}
.oscura{background:var(--hondo); color:#fff;}
.cabeza{max-width:44rem; margin-bottom:44px;}
.cabeza.ancha{max-width:none; display:flex; justify-content:space-between; align-items:flex-end; gap:16px 40px; flex-wrap:wrap;}
.cabeza.ancha > div{max-width:44rem;}
.etiqueta{font-size:0.78rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--azul);}
.oscura .etiqueta{color:var(--amarillo);}
.cabeza h2{font-size:clamp(1.8rem, 3.2vw, 2.45rem); margin-top:10px;}
.cabeza p{margin-top:14px; color:var(--tinta-2); font-size:1.04rem;}
.oscura .cabeza p{color:rgba(255,255,255,0.78);}

/* ---- Proyectos ---- */
.rejilla-proyectos{display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:22px;}
.proyecto-card{position:relative; display:flex; flex-direction:column; background:var(--superficie); border:1px solid var(--linea); border-radius:var(--radio); overflow:hidden; transition:box-shadow .2s ease, transform .2s ease;}
.proyecto-card:hover{box-shadow:var(--sombra); transform:translateY(-2px);}
.proyecto-card .imagen{aspect-ratio:16/9; background:var(--azul-claro); overflow:hidden; display:flex; align-items:center; justify-content:center; color:var(--azul);}
.proyecto-card .imagen img{width:100%; height:100%; object-fit:cover;}
.proyecto-card .imagen svg{width:52px; height:52px;}
.proyecto-card .cuerpo{padding:20px 22px 22px; display:flex; flex-direction:column; gap:10px; flex:1;}
.proyecto-card h3{font-size:1.2rem;}
.proyecto-card h3 a{text-decoration:none;}
.proyecto-card h3 a::after{content:""; position:absolute; inset:0;}
.proyecto-card .resumen{color:var(--tinta-2); font-size:0.92rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
.proyecto-card .pie{margin-top:auto; padding-top:12px; display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:0.86rem; border-top:1px solid var(--linea);}
.proyecto-card .pie .apoyar{font-weight:700; color:var(--azul); white-space:nowrap;}
.chips{display:flex; gap:6px; flex-wrap:wrap;}
.chip{display:inline-flex; align-items:center; gap:6px; font-size:0.72rem; font-weight:700; letter-spacing:0.03em; padding:4px 10px; border-radius:999px; background:var(--fondo); color:var(--tinta-2); white-space:nowrap;}
.chip.en_marcha{background:var(--azul-claro); color:var(--azul);}
.chip.propuesta{background:var(--amarillo-claro); color:var(--amarillo-texto);}
.chip.logrado{background:var(--verde-claro); color:var(--verde);}
.chip.pausado{background:#EEE; color:#555;}
.chip.vivo{background:var(--rojo); color:#fff;}
.chip.programada{background:var(--amarillo); color:var(--hondo);}
.chip.terminada{background:#E9ECF3; color:var(--tinta-2);}
.barra-apoyos{height:8px; border-radius:4px; background:var(--fondo); overflow:hidden;}
.barra-apoyos span{display:block; height:100%; background:linear-gradient(90deg, var(--amarillo), var(--azul));}
.barra-apoyos.p0 span{width:0;} .barra-apoyos.p10 span{width:10%;} .barra-apoyos.p20 span{width:20%;} .barra-apoyos.p30 span{width:30%;}
.barra-apoyos.p40 span{width:40%;} .barra-apoyos.p50 span{width:50%;} .barra-apoyos.p60 span{width:60%;} .barra-apoyos.p70 span{width:70%;}
.barra-apoyos.p80 span{width:80%;} .barra-apoyos.p90 span{width:90%;} .barra-apoyos.p100 span{width:100%;}
.proponer-caja{margin-top:28px; display:grid; grid-template-columns:auto 1fr auto; gap:20px; align-items:center; padding:24px 28px; border-radius:var(--radio); background:var(--amarillo-claro); border:1.5px dashed var(--amarillo);}
.proponer-caja svg{width:44px; height:44px; color:var(--amarillo-texto);}
.proponer-caja h3{font-size:1.25rem;}
.proponer-caja p{color:var(--tinta-2); margin-top:4px;}
@media (max-width:720px){ .proponer-caja{grid-template-columns:1fr;} }
.filtros{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:28px;}
.filtros a{padding:8px 14px; border-radius:999px; border:1px solid var(--linea); background:var(--superficie); text-decoration:none; font-size:0.86rem; font-weight:600;}
.filtros a[aria-current]{background:var(--tinta); color:#fff; border-color:var(--tinta);}
.filtros .sep{width:1px; background:var(--linea); margin:0 6px;}
.vacio{padding:34px; text-align:center; background:var(--superficie); border:1px dashed var(--linea); border-radius:var(--radio); color:var(--tinta-2);}

/* ---- Directo ---- */
.directo-caja{display:grid; grid-template-columns:1.1fr 0.9fr; border-radius:var(--radio); overflow:hidden; background:var(--hondo); color:#fff; text-decoration:none;}
@media (max-width:860px){ .directo-caja{grid-template-columns:1fr;} }
.directo-caja .pantalla{background:#000; aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; position:relative;}
.directo-caja .pantalla img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.42;}
.directo-caja .play{position:relative; width:72px; height:72px; border-radius:50%; background:var(--rojo); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(0,0,0,0.4); transition:transform .2s ease;}
.directo-caja:hover .play{transform:scale(1.06);}
.directo-caja .play svg{width:30px; height:30px; fill:#fff; margin-left:4px;}
.directo-caja .texto{padding:32px 34px; display:flex; flex-direction:column; gap:12px; justify-content:center; align-items:flex-start;}
.directo-caja h3{font-size:1.5rem;}
.directo-caja p{color:rgba(255,255,255,0.8);}
.directo-caja .cuando{font-weight:700; color:var(--amarillo);}

.sala{display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:24px; align-items:start;}
@media (max-width:980px){ .sala{grid-template-columns:1fr;} }
.reproductor{position:relative; background:#000; border-radius:var(--radio); overflow:hidden; aspect-ratio:16/9;}
.reproductor video{width:100%; height:100%; display:block; background:#000;}
.reproductor .velo{position:absolute; inset:0; display:flex; flex-direction:column; gap:10px; align-items:center; justify-content:center; text-align:center; padding:24px; color:#fff; background:radial-gradient(circle at 50% 40%, #1d2d55, #0a1430);}
.reproductor .velo[hidden]{display:none;}
.reproductor .velo svg{width:46px; height:46px; color:var(--amarillo);}
.reproductor .velo b{font-family:'Fraunces',serif; font-size:1.4rem; font-weight:600;}
.reproductor .velo span{color:rgba(255,255,255,0.75); font-size:0.95rem; max-width:30rem;}
.reproductor .insignia{position:absolute; top:14px; left:14px; z-index:2; display:flex; gap:8px;}
.estado-directo{display:flex; gap:10px 14px; align-items:center; flex-wrap:wrap; margin-top:18px; color:var(--tinta-2); font-size:0.92rem;}
.calidad-video{appearance:none; -webkit-appearance:none; font:inherit; font-size:0.84rem; font-weight:600; color:var(--tinta); background:var(--superficie) no-repeat right 12px center / 10px 6px; background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 10 6%27%3E%3Cpath d=%27M1 1l4 4 4-4%27 fill=%27none%27 stroke=%27%2313213F%27 stroke-width=%271.6%27/%3E%3C/svg%3E"); border:1px solid var(--linea); border-radius:999px; padding:8px 32px 8px 14px; cursor:pointer;}
.calidad-video:hover, .calidad-video:focus-visible{border-color:var(--azul);}
.calidad-video[hidden]{display:none;}
.sala h1{font-size:clamp(1.55rem, 3vw, 2.15rem); margin-top:10px;}
.sala .prosa{margin-top:14px;}
.chat{background:var(--superficie); border:1px solid var(--linea); border-radius:var(--radio); display:flex; flex-direction:column; height:min(78vh, 640px); position:sticky; top:96px;}
@media (max-width:980px){ .chat{height:64vh; position:static;} }
.chat-cabeza{padding:14px 16px; border-bottom:1px solid var(--linea); display:flex; justify-content:space-between; align-items:center; gap:10px;}
.chat-cabeza b{font-family:'Fraunces',serif; font-size:1.05rem;}
.chat-cabeza small{color:var(--tinta-2);}
.chat-fijado{margin:10px 12px 0; padding:10px 12px; border-radius:var(--radio-s); background:var(--amarillo-claro); font-size:0.88rem; border-left:4px solid var(--amarillo);}
.chat-fijado:empty{display:none;}
.chat-lista{list-style:none; margin:0; padding:10px 12px; overflow-y:auto; flex:1; display:flex; flex-direction:column; gap:8px; overscroll-behavior:contain;}
.chat-lista li{font-size:0.92rem; line-height:1.45; overflow-wrap:anywhere;}
.chat-lista .quien{font-weight:700; margin-right:6px;}
.chat-lista .hora{color:var(--tinta-2); font-size:0.74rem; margin-right:6px; font-variant-numeric:tabular-nums;}
.chat-lista .junta{background:var(--azul-claro); border-radius:var(--radio-s); padding:6px 8px;}
.chat-lista .junta .quien{color:var(--azul);}
.chat-lista .sistema{color:var(--tinta-2); font-style:italic; text-align:center; font-size:0.84rem;}
.chat-form{border-top:1px solid var(--linea); padding:12px; display:grid; gap:8px;}
.chat-form input[type=text]{width:100%; padding:11px 12px; border:1px solid var(--linea); border-radius:var(--radio-s); font:inherit; font-size:0.92rem; background:var(--fondo); color:var(--tinta);}
.chat-form .fila{display:flex; gap:8px;}
.chat-form .fila input{flex:1; min-width:0;}
.chat-form .nota{font-size:0.74rem; color:var(--tinta-2);}
.chat-form .nota a{color:var(--azul);}
.chat-form .error{font-size:0.82rem; color:#B3261E; font-weight:600;}
.chat-form .error:empty{display:none;}
.chat-cerrado{padding:16px; text-align:center; color:var(--tinta-2); font-size:0.9rem; border-top:1px solid var(--linea);}
.chat-cerrado[hidden], .chat-form[hidden]{display:none;}
.emisiones-lista{display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:16px;}
.emision-card{background:var(--superficie); border:1px solid var(--linea); border-radius:var(--radio); padding:18px 20px; display:flex; flex-direction:column; gap:8px; position:relative;}
.emision-card h3{font-size:1.05rem;}
.emision-card h3 a{text-decoration:none;}
.emision-card h3 a::after{content:""; position:absolute; inset:0;}
.emision-card .meta{font-size:0.86rem; color:var(--tinta-2);}

/* ---- Participa ---- */
.pasos{display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; counter-reset:paso;}
@media (max-width:980px){ .pasos{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .pasos{grid-template-columns:1fr;} }
.paso{background:var(--superficie); border:1px solid var(--linea); border-radius:var(--radio); padding:26px 24px; display:flex; flex-direction:column; gap:12px;}
.paso::before{counter-increment:paso; content:counter(paso, decimal-leading-zero); font-family:'Fraunces',serif; font-size:1.6rem; font-weight:600; color:var(--azul);}
.paso h3{font-size:1.15rem;}
.paso p{color:var(--tinta-2); font-size:0.92rem; flex:1;}
.donar{margin-top:24px; display:flex; flex-wrap:wrap; gap:12px 32px; align-items:center; padding:20px 24px; border-radius:var(--radio); background:var(--superficie); border:1px solid var(--linea);}
.donar h3{font-size:1.06rem;}
.donar dl{display:flex; flex-wrap:wrap; gap:6px 28px; margin:0;}
.donar dt{font-size:0.74rem; text-transform:uppercase; letter-spacing:0.08em; font-weight:700; color:var(--azul);}
.donar dd{margin:2px 0 0; font-weight:700; font-variant-numeric:tabular-nums;}
.copiar{font:inherit; font-size:0.76rem; font-weight:700; border:1px solid var(--linea); background:none; border-radius:999px; padding:3px 10px; margin-left:8px; cursor:pointer; color:var(--tinta-2);}
.copiar:hover{border-color:var(--azul); color:var(--azul);}

/* ---- Frentes de trabajo ---- */
.frentes{display:grid; grid-template-columns:repeat(3,1fr); column-gap:32px; border-top:1px solid rgba(255,255,255,0.14);}
@media (max-width:900px){ .frentes{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .frentes{grid-template-columns:1fr;} }
.frente{padding:26px 0 28px; border-bottom:1px solid rgba(255,255,255,0.14); display:grid; grid-template-columns:auto 1fr; gap:6px 16px; align-content:start;}
.frente svg{grid-row:span 2; width:30px; height:30px; color:var(--amarillo); stroke-width:1.6;}
.frente h3{font-size:1.1rem; color:#fff;}
.frente p{color:rgba(255,255,255,0.74); font-size:0.92rem;}

/* ---- Quiénes somos ---- */
.nosotros{display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:start;}
@media (max-width:900px){ .nosotros{grid-template-columns:1fr; gap:36px;} }
.nosotros .prosa p + p{margin-top:16px;}
.cita{margin:24px 0 0; padding:20px 24px; border-left:4px solid var(--azul); background:var(--superficie); border-radius:0 var(--radio) var(--radio) 0; font-family:'Fraunces',serif; font-style:italic; font-size:1.1rem; color:var(--tinta);}
.valores{list-style:none; margin:0; padding:0; display:grid; gap:12px;}
.valores li{padding:18px 20px; background:var(--superficie); border:1px solid var(--linea); border-radius:var(--radio); display:grid; grid-template-columns:8.6rem 1fr; gap:14px; align-items:baseline;}
@media (max-width:440px){ .valores li{grid-template-columns:1fr; gap:4px;} }
.valores b{font-family:'Fraunces',serif; font-size:1.06rem; color:var(--azul);}
.valores span{color:var(--tinta-2); font-size:0.92rem;}
.aliados{margin-top:36px; display:flex; gap:14px 34px; flex-wrap:wrap; align-items:center; padding-top:24px; border-top:1px solid var(--linea);}
.aliados > span{font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:var(--tinta-2);}
.aliado{font-family:'Fraunces',serif; font-size:1.06rem;}
.aliado small{display:block; font-family:'Public Sans',sans-serif; font-size:0.76rem; color:var(--tinta-2);}
.manifiesto{padding:72px 0; background:var(--azul); color:#fff;}
.manifiesto .wrap{max-width:900px;}
.manifiesto p{font-family:'Fraunces',serif; font-size:clamp(1.35rem, 2.6vw, 1.95rem); line-height:1.35;}
.manifiesto p + p{margin-top:16px; color:rgba(255,255,255,0.82);}

/* ---- Agenda ---- */
.eventos{display:grid; grid-template-columns:repeat(auto-fill, minmax(290px, 1fr)); gap:20px;}
.evento-card{position:relative; display:flex; flex-direction:column; background:var(--superficie); border:1px solid var(--linea); border-radius:var(--radio); overflow:hidden; transition:box-shadow .2s ease;}
.evento-card:hover{box-shadow:var(--sombra);}
.evento-card .imagen{aspect-ratio:16/9; overflow:hidden; background:var(--azul-claro);}
.evento-card .imagen img{width:100%; height:100%; object-fit:cover;}
.evento-card .cuerpo{padding:20px 22px 22px; display:grid; grid-template-columns:auto 1fr; gap:4px 16px; flex:1; align-content:start;}
.fecha-insignia{grid-row:span 3; width:3.5rem; text-align:center; background:var(--tinta); color:#fff; border-radius:10px; padding:8px 0 7px; line-height:1;}
.fecha-insignia .dia{display:block; font-family:'Fraunces',serif; font-size:1.55rem; font-weight:700;}
.fecha-insignia .mes{display:block; font-size:0.68rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--amarillo); margin-top:4px;}
.evento-card h3{font-size:1.08rem; line-height:1.3;}
.evento-card h3 a{text-decoration:none;}
.evento-card h3 a::after{content:""; position:absolute; inset:0;}
.evento-card .meta{font-size:0.86rem; color:var(--tinta-2);}
.evento-card .resumen{grid-column:1/-1; margin-top:8px; font-size:0.9rem; color:var(--tinta-2);}
.agenda-acciones{display:flex; gap:10px; flex-wrap:wrap;}
.agenda-vacia{display:grid; grid-template-columns:1.2fr 1fr; gap:36px; align-items:center; background:var(--superficie); border:1px solid var(--linea); border-radius:var(--radio); padding:32px;}
@media (max-width:860px){ .agenda-vacia{grid-template-columns:1fr; padding:26px 22px;} }
.agenda-vacia h3{font-size:1.3rem;}
.agenda-vacia p{margin-top:8px; color:var(--tinta-2);}

/* ---- Actualidad ---- */
.dos-columnas{display:grid; grid-template-columns:1.2fr 0.8fr; gap:48px; align-items:start;}
@media (max-width:900px){ .dos-columnas{grid-template-columns:1fr; gap:32px;} }
.timeline{border-top:1px solid var(--linea);}
.timeline-item{display:grid; grid-template-columns:140px 1fr; gap:22px; padding:22px 2px; border-bottom:1px solid var(--linea);}
@media (max-width:640px){ .timeline-item{grid-template-columns:1fr; gap:4px;} }
.timeline-item .date{font-size:0.82rem; font-weight:700; color:var(--azul);}
.timeline-item h3{font-size:1.05rem; margin-bottom:6px;}
.timeline-item h3 a{text-decoration:none;}
.timeline-item h3 a:hover{color:var(--azul);}
.timeline-item p{color:var(--tinta-2); font-size:0.92rem;}
.acopio-box{background:var(--tinta); color:#fff; border-radius:var(--radio); padding:26px; scroll-margin-top:110px; border-top:5px solid var(--rojo);}
.acopio-box h3{font-size:1.2rem; color:var(--amarillo); margin-bottom:12px;}
.acopio-box dl{display:grid; grid-template-columns:auto 1fr; gap:6px 14px; font-size:0.92rem; margin:0;}
.acopio-box dt{color:var(--amarillo); font-weight:700;}
.acopio-box dd{margin:0; color:rgba(255,255,255,0.92);}
.acopio-box .acopio-note{margin-top:12px; font-size:0.84rem; color:rgba(255,255,255,0.72);}

/* ---- Galería y comercios ---- */
.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
@media (max-width:860px){ .gallery{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .gallery{grid-template-columns:1fr;} }
.gallery-item{position:relative; aspect-ratio:4/3; border-radius:var(--radio); overflow:hidden; display:flex; align-items:flex-end; padding:14px 16px; margin:0; border:0; background:var(--tinta); color:#fff; font:inherit; text-align:left; cursor:zoom-in; width:100%;}
.gallery-item img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.gallery-item:hover img{transform:scale(1.04);}
.gallery-item::after{content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(8,16,36,0.75), rgba(8,16,36,0) 55%);}
.gallery-item span{position:relative; z-index:2; font-weight:600; font-size:0.92rem;}
.gallery-note{margin-top:16px; font-size:0.86rem; color:var(--tinta-2);}
.gallery-note a{color:var(--azul);}
dialog.visor{padding:0; border:0; background:transparent; max-width:min(92vw, 1100px); max-height:92vh; overflow:visible;}
dialog.visor::backdrop{background:rgba(8,16,36,0.9);}
dialog.visor img{max-width:min(92vw, 1100px); max-height:82vh; width:auto; height:auto; border-radius:10px; margin:0 auto;}
dialog.visor p{color:#fff; text-align:center; margin-top:12px;}
dialog.visor .cerrar{position:absolute; top:-14px; right:-14px; width:42px; height:42px; border-radius:50%; border:0; background:var(--amarillo); color:var(--hondo); font-size:1.4rem; line-height:1; cursor:pointer;}
.comercios{display:grid; grid-template-columns:repeat(6,1fr); gap:12px; list-style:none; margin:0; padding:0;}
@media (max-width:900px){ .comercios{grid-template-columns:repeat(3,1fr);} }
@media (max-width:520px){ .comercios{grid-template-columns:repeat(2,1fr);} }
.comercio, .comercio > a{display:flex; flex-direction:column; gap:8px; text-decoration:none;}
.comercio .logo{aspect-ratio:1/1; border-radius:var(--radio-s); overflow:hidden; border:1px solid var(--linea); background:var(--superficie); display:flex; align-items:center; justify-content:center;}
.comercio .logo img{width:100%; height:100%; object-fit:cover;}
.comercio .logo .inicial{font-family:'Fraunces',serif; font-size:2rem;}
.comercio .nombre{font-size:0.82rem; font-weight:700; line-height:1.3;}
.comercio .nombre small{display:block; font-weight:500; color:var(--tinta-2); font-size:0.74rem;}

/* ---- Contacto y formularios ---- */
.contact-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px;}
@media (max-width:860px){ .contact-grid{grid-template-columns:1fr; gap:36px;} }
.contact-info{margin:0;}
.contact-info dt{font-size:0.76rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--azul); margin-top:22px; font-weight:700;}
.contact-info dt:first-child{margin-top:0;}
.contact-info dd{margin:6px 0 0; font-size:1rem;}
.social-row{display:flex; gap:10px; margin-top:24px; flex-wrap:wrap;}
.social-row a{border:1px solid var(--linea); border-radius:50%; width:42px; height:42px; display:flex; align-items:center; justify-content:center; color:var(--tinta); transition:background .2s ease, color .2s ease, border-color .2s ease;}
.social-row a:hover{background:var(--azul); border-color:var(--azul); color:#fff;}
.social-row svg{width:19px; height:19px;}
.formulario{display:grid; gap:16px; position:relative;}
.tarjeta-form{background:var(--superficie); border:1px solid var(--linea); border-radius:var(--radio); padding:28px;}
@media (max-width:560px){ .tarjeta-form{padding:20px 18px;} }
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.form-row.ancha-primera{grid-template-columns:1.6fr 1fr;}
@media (max-width:560px){ .form-row, .form-row.ancha-primera{grid-template-columns:1fr;} }
.formulario label{font-size:0.86rem; font-weight:700; display:block; margin-bottom:7px;}
.formulario label .opcional{font-weight:500; color:var(--tinta-2);}
.formulario .ayuda{font-size:0.8rem; color:var(--tinta-2); margin-top:5px;}
.formulario input:not([type=checkbox]), .formulario select, .formulario textarea{width:100%; padding:12px 14px; font-family:inherit; font-size:0.96rem; border:1px solid rgba(19,33,63,0.24); border-radius:var(--radio-s); background:var(--superficie); color:var(--tinta);}
.formulario textarea{resize:vertical; min-height:120px;}
.formulario [aria-invalid=true]{border-color:#B3261E; box-shadow:0 0 0 3px rgba(179,38,30,0.12);}
.campo-error{display:block; margin-top:6px; font-size:0.82rem; font-weight:600; color:#B3261E;}
.campo-error:empty{display:none;}
.consentimiento{display:flex; gap:10px; align-items:flex-start; font-size:0.86rem; color:var(--tinta-2); line-height:1.5;}
.formulario .consentimiento{font-weight:500; margin:0;}
.consentimiento input{width:18px; height:18px; margin:2px 0 0; flex:none; accent-color:var(--azul);}
.consentimiento a, .form-nota a{color:var(--azul);}
.form-nota{font-size:0.8rem; color:var(--tinta-2); line-height:1.5;}
.formulario .btn{justify-self:start;}
.form-aviso{padding:14px 16px; border-radius:var(--radio-s); font-size:0.92rem; font-weight:600;}
.form-aviso:empty{display:none;}
.form-aviso.error{background:#FDE7E5; color:#8C1D15;}
.form-aviso.bien{background:var(--verde-claro); color:#0B5E35;}
.trampa{position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden;}
.boletin-form{display:grid; gap:10px;}
.boletin-form .fila{display:flex; gap:10px; flex-wrap:wrap;}
.boletin-form .fila input{flex:1 1 220px;}

/* ---- Páginas interiores ---- */
.cabecera-pagina{background:var(--hondo); color:#fff; padding:54px 0 48px; position:relative;}
.cabecera-pagina::after{content:""; position:absolute; inset:auto 0 0 0; height:5px; background:var(--tricolor);}
.cabecera-pagina h1{font-size:clamp(1.9rem, 3.8vw, 2.9rem); max-width:820px; margin-top:12px;}
.cabecera-pagina p.entradilla{margin-top:14px; max-width:640px; color:rgba(255,255,255,0.84); font-size:1.05rem;}
.cabecera-pagina .kicker{color:var(--amarillo); font-weight:700; font-size:0.84rem;}
.cabecera-pagina .chips{margin-top:16px;}
.migas{font-size:0.82rem; color:rgba(255,255,255,0.7); display:flex; gap:8px; flex-wrap:wrap; list-style:none; margin:0; padding:0;}
.migas li + li::before{content:"›"; margin-right:8px; opacity:.7;}
.migas a{text-decoration:none;}
.migas a:hover{text-decoration:underline; color:#fff;}
.pagina{padding:56px 0 88px;}
.pagina section{padding:0;}
.ficha{display:grid; grid-template-columns:1.4fr 0.9fr; gap:44px; align-items:start;}
@media (max-width:900px){ .ficha{grid-template-columns:1fr;} }
.ficha-imagen{border-radius:var(--radio); overflow:hidden; margin-bottom:26px;}
.ficha-imagen img{width:100%;}
.prosa{font-size:1.04rem; color:var(--tinta-2); max-width:68ch;}
.prosa p + p{margin-top:14px;}
.prosa .entradilla{font-family:'Fraunces',serif; font-size:1.22rem; color:var(--tinta); line-height:1.45; margin-bottom:18px;}
.prosa h2{font-size:1.35rem; color:var(--tinta); margin:28px 0 10px;}
.ficha-datos{background:var(--superficie); border:1px solid var(--linea); border-radius:var(--radio); padding:24px; display:grid; gap:18px; position:sticky; top:96px;}
.ficha-datos dl{margin:0; display:grid; gap:12px;}
.ficha-datos dt{font-size:0.74rem; text-transform:uppercase; letter-spacing:0.08em; font-weight:700; color:var(--azul);}
.ficha-datos dd{margin:3px 0 0; font-weight:600;}
.ficha-datos .btn{width:100%;}
.contador{display:flex; align-items:baseline; gap:8px;}
.contador b{font-family:'Fraunces',serif; font-size:2.4rem; line-height:1;}
.contador span{color:var(--tinta-2);}
.aviso-pasado{background:var(--azul-claro); border-left:4px solid var(--azul); padding:12px 16px; border-radius:8px; font-size:0.92rem; margin-bottom:20px;}
.compartir{display:flex; gap:8px; flex-wrap:wrap; align-items:center;}
.compartir > span{font-size:0.8rem; font-weight:700; color:var(--tinta-2); width:100%;}
.compartir a, .compartir button{width:40px; height:40px; border-radius:50%; border:1px solid var(--linea); display:inline-flex; align-items:center; justify-content:center; background:var(--superficie); color:var(--tinta); cursor:pointer;}
.compartir a:hover, .compartir button:hover{background:var(--azul); color:#fff; border-color:var(--azul);}
.compartir svg{width:18px; height:18px;}
.lista-sencilla{list-style:none; padding:0; margin:0; border-top:1px solid var(--linea);}
.lista-sencilla li{display:flex; gap:18px; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--linea); flex-wrap:wrap;}
.lista-sencilla a{font-weight:700; text-decoration:none;}
.lista-sencilla a:hover{color:var(--azul);}
.lista-sencilla .meta{color:var(--tinta-2); font-size:0.9rem;}
.bloque + .bloque{margin-top:60px;}
.bloque > h2{font-size:1.55rem; margin-bottom:22px;}
.caja{background:var(--superficie); border:1px solid var(--linea); border-radius:var(--radio); padding:30px; max-width:720px;}
.caja.centrada{margin:0 auto; text-align:center;}
.caja h2{font-size:1.65rem;}
.caja p{margin-top:12px; color:var(--tinta-2);}
.caja .acciones{margin-top:24px; display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}
.texto-legal{max-width:760px; color:var(--tinta-2);}
.texto-legal h2{font-size:1.35rem; color:var(--tinta); margin:38px 0 12px;}
.texto-legal h2:first-child{margin-top:0;}
.texto-legal p, .texto-legal ul{margin:0 0 14px;}
.texto-legal ul{padding-left:20px;}
.texto-legal li{margin-bottom:6px;}
.texto-legal a{color:var(--azul);}
.texto-legal table{border-collapse:collapse; width:100%; font-size:0.9rem; margin-bottom:14px; display:block; overflow-x:auto;}
.texto-legal th, .texto-legal td{text-align:left; padding:10px; border-bottom:1px solid var(--linea); vertical-align:top;}
.pendiente{background:#FDE7E5; color:#8C1D15; padding:1px 6px; border-radius:4px; font-weight:700; font-size:0.9em;}

/* ---- Pie ---- */
footer.pie{background:var(--hondo); color:rgba(255,255,255,0.74); padding:0 0 28px;}
footer.pie .tricolor{margin-bottom:48px;}
.pie-top{display:flex; justify-content:space-between; flex-wrap:wrap; gap:32px; padding-bottom:30px; border-bottom:1px solid rgba(255,255,255,0.12);}
.pie .marca{color:#fff;}
.pie .marca .nombre small{color:rgba(255,255,255,0.6);}
.pie nav{display:flex; gap:10px 22px; flex-wrap:wrap; align-content:flex-start; max-width:640px;}
.pie nav a{font-size:0.88rem; text-decoration:none;}
.pie nav a:hover{color:#fff; text-decoration:underline;}
.pie .social-row a{border-color:rgba(255,255,255,0.25); color:#fff; width:38px; height:38px;}
.pie .social-row a:hover{background:var(--amarillo); border-color:var(--amarillo); color:var(--hondo);}
.pie-legal{display:flex; gap:8px 20px; flex-wrap:wrap; padding-top:20px; font-size:0.8rem;}
.pie-legal a{text-decoration:none;}
.pie-legal a:hover{color:#fff;}
.pie-bajo{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px 24px; padding-top:16px; font-size:0.78rem;}
.credit-designer{display:flex; align-items:center; gap:8px; letter-spacing:0.1em; text-transform:uppercase; font-size:0.7rem; color:rgba(255,255,255,0.6);}
.credit-designer img{height:2rem; width:auto;}
.wa-flotante{position:fixed; right:18px; bottom:18px; z-index:90; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 28px rgba(0,0,0,0.25);}
.wa-flotante svg{width:30px; height:30px;}

/* ---- Aparición suave al hacer scroll ---- */
.js .revela{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease;}
.js .revela.visible{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){ .js .revela{opacity:1; transform:none;} }

@media print{
  header.sitio, #menu-movil, .barra-directo, .wa-flotante, .compartir, .chat{display:none !important;}
  .portada, .cabecera-pagina, .oscura{background:none; color:var(--tinta);}
}
