/* ============================================================
  SUE — Sociedad Universitaria de Economía
  Sistema: papel de gráfico + tinta de sello + datos en mono
  ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,400;1,9..144,500&family=IBM+Plex+Sans:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700&display=swap');
:root{
--ink:        #bf0d1f; /* Rojo principal (extraído de Canva) */
--ink-soft:   #960f1b; /* Tono medio/oscuro para contraste y jerarquía */
--ink-faint:  #d4636e; /* Tono suave/deslavado para elementos secundarios */
--paper:      #FFFAF2; /* Crema principal */
--paper-2:    #F5EFE5; /* Crema ligeramente más oscuro */
--grid-line:  rgba(23,35,64,0.08);
--brick:      #CD1729;
--brick-dark: #980A18;
--gold:       #b98a1f;
--line:       #c9cdb6;
--white:      #fbfbf6;
--negroclaro: #111111;

--font-display: 'Fraunces', serif;
--font-body: 'IBM Plex Sans', sans-serif;
--font-mono: 'Montserrat', sans-serif; /* etiquetas, menú, botones y datos (antes IBM Plex Mono) */
--font-code: ui-monospace, SFMono-Regular, Menlo, monospace; /* solo para código dentro de artículos */

--radius: 4px;
--container: 1180px;
}

*{box-sizing:border-box;}
[hidden]{display:none !important;} /* lo oculto con "hidden" siempre queda oculto, aunque tenga display:grid o flex */
html{scroll-behavior:smooth;}
body{
margin:0;
background: var(--paper);

color:var(--ink);
font-family:var(--font-body);
font-size:16px;
line-height:1.6;
-webkit-font-smoothing:antialiased;
}

/* Incrementamos el tamaño del logo */
.brand .logo-img {
height: 60px;
width: auto;
display: block;
object-fit: contain;
}

@media (max-width: 860px) {
.brand .logo-img {
height: 48px; /* ajusta este valor a tu gusto */
}
}

/* Flexbox para alineación correcta y eliminación de límites apretados */
.brand {
display: flex;
align-items: center;
text-decoration: none;
padding: 5px 0;
}

.site-header .nav {
display: flex;
align-items: center;
min-height: 90px; /* Asegura suficiente espacio vertical para el logo grande */
}

img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 .4em;font-weight:600;letter-spacing:-0.01em;color:var(--negroclaro);}
p{margin:0 0 1em;color:var(--ink-soft);font-family:'Montserrat', sans-serif;}
.container{max-width:var(--container);margin:0 auto;padding:0 28px;}

/* --- focus visibility --- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
outline:2px solid var(--brick);
outline-offset:3px;
}

/* --- eyebrow / mono labels --- */
.eyebrow{
font-family:var(--font-mono);
font-size:12.5px;
letter-spacing:.14em;
text-transform:uppercase;
color:var(--brick);
display:inline-flex;
align-items:center;
gap:.5em;
margin-bottom:.9em;
}
.eyebrow::before{content:"§";color:var(--gold);font-size:1.1em;}

/* ============ TICKER ============ */
.ticker-bar{
background:var(--ink);
color:var(--paper);
overflow:hidden;
white-space:nowrap;
border-bottom:1px solid var(--brick-dark);
}
.ticker-track{
display:inline-flex;
gap:48px;
padding:8px 0;
animation:ticker 32s linear infinite;
font-family:var(--font-mono);
font-size:12px;
letter-spacing:.04em;
}
/* Ya no se pausa al pasar el mouse: el retraso negativo que usa indicators.js
   para retomar la animación entre páginas podía hacer que, al reanudarse,
   la cinta saltara a una posición distinta de la que tenía al pausarse. */
.ticker-track span{opacity:.9;}
.ticker-track span b{color:var(--gold);font-weight:600;}
@keyframes ticker{
from{transform:translateX(0);}
to{transform:translateX(-50%);}
}
@media (max-width:860px){
.ticker-track{
animation-duration:14s; /* antes 32s: se ve más texto por segundo en pantallas chicas */
}
}

/* ============ NAV ============ */
.site-header{
position:sticky;top:0;z-index:50;
background:rgba(250,242,232,0.92); /* --paper con transparencia + blur */
backdrop-filter:blur(6px);
border-bottom:1px solid var(--line);
}
.nav{
display:flex;align-items:center;justify-content:space-between;
padding:16px 28px;
max-width:var(--container);margin:0 auto;
}
.brand{
display:flex;align-items:center;gap:12px;
text-decoration:none;color:var(--ink);
}
.brand-mark{
width:38px;height:38px;flex:none;
border:1.5px solid var(--ink);border-radius:50%;
display:flex;align-items:center;justify-content:center;
font-family:var(--font-mono);font-weight:600;font-size:13px;
background:var(--white);
}
.brand-text{line-height:1.1;}
.brand-text .name{
font-family:var(--font-display);font-weight:600;font-size:17px;
display:block;
}
.brand-text .full{
font-family:var(--font-mono);font-size:10.5px;color:var(--ink-faint);
letter-spacing:.03em;
}
.nav-links{
display:flex;gap:2px;list-style:none;margin:0;padding:0;
font-family:var(--font-mono);font-size:13px;letter-spacing:.02em;
}
.nav-links a{
text-decoration:none;color:var(--ink-soft);
padding:10px 14px;border-radius:3px;
transition:color .15s ease, background .15s ease;
}
.nav-links a:hover{color:var(--ink);background:var(--paper-2);}
.nav-links a.active{color:var(--brick);font-weight:600;}
.nav-toggle{
  display:none !important;background:none;border:1.5px solid var(--ink);border-radius:3px;
  padding:8px 10px;cursor:pointer;font-family:var(--font-mono);font-size:13px;
}

@media (max-width:860px){
  .nav-toggle{
    display:inline-flex !important;align-items:center;gap:8px;
    font-size:22px;padding:8px 12px;line-height:1;
    color:var(--brick);border-color:var(--brick);
  }

  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    background:var(--paper);border-bottom:1px solid var(--line);
    flex-direction:column;padding:8px;gap:0;
    display:none;
  }
  .nav-links.open{display:flex;}
  .nav-links a{
    display:block;
    width:100%;
    padding:24px 24px;
    font-size:21px;
    letter-spacing:.01em;
  }
}
/* ============ BUTTONS ============ */
.btn{
display:inline-flex;align-items:center;gap:8px;
font-family:var(--font-mono);font-size:13px;letter-spacing:.03em;
text-decoration:none;padding:12px 20px;border-radius:3px;
border:1.5px solid var(--ink);cursor:pointer;
transition:transform .15s ease, background .15s ease, color .15s ease;
background:transparent;color:var(--ink);
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--brick);border-color:var(--brick);color:var(--white);}
.btn-primary:hover{background:var(--brick-dark);border-color:var(--brick-dark);}
.btn-ghost:hover{background:var(--ink);color:var(--paper);}

/* ============ HERO ============ */
.hero{
padding:72px 0 56px;
position:relative;
overflow:hidden;
}
.hero::before,
.hero::after{
content:"";
position:absolute;
width:480px;height:480px;
border-radius:50%;
background:radial-gradient(circle, rgba(168,59,44,0.38) 0%, rgba(168,59,44,0.14) 45%, transparent 72%);
filter:blur(40px);
pointer-events:none;
z-index:0;
}
.hero::before{ top:-160px; right:-160px; }
.hero::after{ bottom:-160px; left:-160px; }

.hero-grid{
display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center;
position:relative;z-index:1;
}
.hero h1{
font-size:clamp(34px, 4.6vw, 58px);
line-height:1.05;
margin-bottom:.3em;
}
.hero h1 em{
font-style:italic;color:var(--brick);font-weight:500;
}
.hero-sub{font-size:17px;max-width:46ch;margin-bottom:1.8em;}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;}

.chart-frame{
background:var(--white);
border:1.5px solid var(--ink);
border-radius:6px;
padding:18px 18px 10px;
}
.chart-frame .cap{
display:flex;justify-content:space-between;
font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);
margin-top:6px;letter-spacing:.02em;
}

@media (max-width:900px){
.hero-grid{grid-template-columns:1fr;}
.hero .chart-frame{display:none;} /* en teléfono y tablet el gráfico se oculta: la última actividad toma su lugar */
.hero{padding:48px 0 40px;}
}

/* ============ DEGRADADOS CIRCULARES (todas las páginas) ============
   Resplandor rojo arriba a la derecha y abajo a la izquierda del contenido.
   Cada capa queda COMPLETAMENTE dentro de la pantalla: el brillo se dibuja
   con el centro en la esquina, sin nada que sobresalga. Así el celular no
   permite arrastrar la página hacia los lados. */
html, body{overflow-x:clip;} /* resguardo adicional contra scroll lateral */
main{
position:relative;
isolation:isolate;
overflow-y:clip; /* no invaden el footer */
}
main::before,
main::after{
content:"";
position:absolute;
width:340px;height:340px;
pointer-events:none;
z-index:-1;
}
/* Pegados al borde de la pantalla aunque el contenido sea angosto
   (p. ej. en los artículos, donde <main> mide 900px) */
main::before{
top:0;right:calc((100% - 100vw) / 2);
background:radial-gradient(circle 250px at calc(100% - 80px) 80px,
  rgba(168,59,44,0.34) 0%, rgba(168,59,44,0.20) 35%, rgba(168,59,44,0.08) 70%, transparent 100%);
}
main::after{
bottom:0;left:calc((100% - 100vw) / 2);
background:radial-gradient(circle 250px at 80px calc(100% - 80px),
  rgba(168,59,44,0.34) 0%, rgba(168,59,44,0.20) 35%, rgba(168,59,44,0.08) 70%, transparent 100%);
}
/* En el inicio el hero ya tiene su resplandor superior */
body[data-page="inicio"] main::before{ display:none; }
@media (max-width:700px){
main::before, main::after{ width:230px;height:230px; }
main::before{ background:radial-gradient(circle 170px at calc(100% - 55px) 55px,
  rgba(168,59,44,0.34) 0%, rgba(168,59,44,0.20) 35%, rgba(168,59,44,0.08) 70%, transparent 100%); }
main::after{ background:radial-gradient(circle 170px at 55px calc(100% - 55px),
  rgba(168,59,44,0.34) 0%, rgba(168,59,44,0.20) 35%, rgba(168,59,44,0.08) 70%, transparent 100%); }
.hero::before, .hero::after{ width:320px;height:320px; }
.hero::before{ top:-120px; right:-140px; }
.hero::after{ bottom:-120px; left:-140px; }
}

/* Otros resguardos contra desborde lateral en celular */
.site-header .nav{gap:12px;}
.brand{min-width:0;}
.brand .logo-img{max-width:100%;}
.article-body .katex-display{overflow-x:auto;overflow-y:hidden;} /* ecuaciones largas: scroll propio */

.curve{
stroke-dasharray:420;
stroke-dashoffset:420;
animation:draw 1.4s ease forwards;
}
.curve-supply{animation-delay:.25s;}
@keyframes draw{to{stroke-dashoffset:0;}}
@media (prefers-reduced-motion: reduce){
.curve{stroke-dashoffset:0;animation:none;}
}

/* ============ STAT STRIP ============ */
.stat-strip{
border-top:1px solid var(--line);border-bottom:1px solid var(--line);
background:var(--paper-2);
}
.stat-strip .container{
display:grid;grid-template-columns:repeat(2,1fr);gap:0;
}
.stat{
padding:28px 24px;text-align:center;
border-left:1px solid var(--line);
}
.stat:first-child{border-left:none;}
.stat .num{
font-family:var(--font-display);font-size:36px;font-weight:600;color:var(--brick);
display:block;
}
.stat .label{
font-family:var(--font-mono);font-size:11.5px;color:var(--ink-faint);
text-transform:uppercase;letter-spacing:.08em;
}
@media (max-width:700px){
.stat{padding:20px 12px;}
.stat .num{font-size:30px;}
.stat .label{font-size:10.5px;}
}

/* ============ SECTION ============ */
.section{padding:76px 0;}
.section-head{max-width:640px;margin-bottom:44px;}
.section-head h2{font-size:clamp(26px,3vw,36px);}
.lede{font-size:17px;}

/* ============ CARDS GRID (areas) ============ */
.card-grid{
display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
background:var(--line);border:1px solid var(--line);
}
.card{
background:var(--white);padding:28px 22px;
display:flex;flex-direction:column;gap:10px;
text-decoration:none;color:var(--ink);
transition:background .15s ease;
}
a.card:hover{background:var(--paper-2);} /* solo las tarjetas con enlace reaccionan */
.card .idx{font-family:var(--font-mono);font-size:12px;color:var(--gold);}
.card h3{font-size:18px;}
.card p{font-size:14px;margin:0;}
@media (max-width:920px){.card-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.card-grid{grid-template-columns:1fr;}}

/* ============ QUOTE / MISSION BAND ============ */
.band{
background:var(--ink);color:var(--paper);
padding:64px 0;
}
.band blockquote{
font-family:var(--font-display);font-style:italic;font-weight:400;
font-size:clamp(22px,2.6vw,32px);line-height:1.35;
margin:0;max-width:820px;
}
.band cite{
display:block;margin-top:20px;font-style:normal;
font-family:var(--font-mono);font-size:12.5px;color:#c7b98a;letter-spacing:.04em;
}

/* ============ PUBLICATION TEASER ============ */
.pub-teaser{
border:1.5px solid var(--ink);border-radius:6px;
background:var(--white);
display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;
padding:26px 28px;
}
.pub-teaser .tag{
font-family:var(--font-mono);font-size:11px;color:var(--white);
background:var(--brick);padding:4px 9px;border-radius:3px;letter-spacing:.05em;
white-space:nowrap;
}
@media (max-width:640px){
.pub-teaser{grid-template-columns:1fr;text-align:left;}
}

/* ============ TIMELINE (historia) ============ */
.timeline{position:relative;padding-left:0;}
.timeline::before{
content:"";position:absolute;left:88px;top:0;bottom:0;width:1px;background:var(--line);
}
.tl-item{
display:grid;grid-template-columns:88px 1fr;gap:28px;
padding:30px 0;border-bottom:1px dashed var(--line);
position:relative;
}
.tl-item:last-child{border-bottom:none;}
.tl-year{
font-family:var(--font-mono);font-weight:600;color:var(--brick);font-size:15px;
position:relative;
}
.tl-year::after{
content:"";position:absolute;right:-33.5px;top:4px;
width:9px;height:9px;border-radius:50%;background:var(--brick);
box-shadow:0 0 0 4px var(--paper);
}
.tl-body h3{font-size:19px;margin-bottom:.3em;}
.tl-body p{font-size:14.5px;margin:0;max-width:60ch;}
@media (max-width:640px){
.timeline::before{left:44px;}
.tl-item{grid-template-columns:44px 1fr;gap:16px;}
.tl-year::after{right:-24.5px;}
}

/* ============ TEAM (quienes somos) ============ */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.team-grid-top{
display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
background:var(--line);border:1px solid var(--line);
margin-bottom:24px;
}
.team-grid-bottom{
display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
background:var(--line);border:1px solid var(--line);
}
@media (max-width:880px){
.team-grid-bottom{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
.team-grid-top{grid-template-columns:1fr;}
.team-grid-bottom{grid-template-columns:1fr;}
}
.team-card{background:var(--white);padding:26px 22px;}
.team-card .role{font-family:var(--font-mono);font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;}
.team-card h3{font-size:17px;margin-bottom:6px;}
.team-card p{font-size:13.5px;margin:0;}
@media (max-width:880px){.team-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.team-grid{grid-template-columns:1fr;}}

.values-list{display:grid;grid-template-columns:repeat(2,1fr);gap:22px 40px;}
.values-list div{border-left:2px solid var(--brick);padding-left:16px;}
.values-list h3{font-size:16px;margin-bottom:4px;}
.values-list p{font-size:14px;margin:0;}
@media (max-width:640px){.values-list{grid-template-columns:1fr;}}

/* ============ DIRECTIVA POR COORDINACIÓN (quienes somos) ============ */
.directiva-grupos{
display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px;
}
.directiva-grupo{
background:var(--white);border:1px solid var(--line);border-radius:6px;
padding:26px 28px 24px;
}
.directiva-grupo--general{border:1.5px solid var(--ink);}
.directiva-grupo .grupo-nombre{
font-size:18px;margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid var(--line);
}
.directiva-miembros{display:grid;gap:20px;}
.directiva-grupo--general .directiva-miembros{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 32px;}
.directiva-grupo .team-card{background:none;padding:0;}
.team-card .mail{
display:inline-block;font-family:var(--font-mono);font-size:12.5px;color:var(--brick);
text-decoration:none;overflow-wrap:anywhere;border-bottom:1px solid transparent;
transition:border-color .15s ease;
}
.team-card .mail:hover{border-bottom-color:var(--brick);}
@media (max-width:720px){
.directiva-grupos, .directiva-grupo--general .directiva-miembros{grid-template-columns:1fr;}
}

/* ============ ORGANIZACIONES Y ESTATUTOS (quienes somos) ============ */
.org-logos{
list-style:none;margin:0;padding:0;
display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;
}
.org-logos a{
display:flex;align-items:center;justify-content:center;
height:140px;padding:28px 32px;
background:var(--white);border:1px solid var(--line);border-radius:6px;
transition:border-color .15s ease;
}
.org-logos a:hover{border-color:var(--ink);}
/* Todos los logos ocupan la misma caja: los anchos llenan el ancho,
   los altos o cuadrados llenan el alto, sin deformarse */
.org-logos img{
width:100%;max-width:190px;height:72px;
object-fit:contain;object-position:center;
}

.doc-teaser{
display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;
padding:26px 28px;
background:var(--white);border:1.5px solid var(--ink);border-radius:6px;
}
.doc-teaser h3{font-size:19px;margin-bottom:6px;}
.doc-teaser p{font-size:14.5px;margin:0;}
@media (max-width:640px){
.doc-teaser{grid-template-columns:1fr;}
.doc-teaser .btn{justify-self:start;}
}

/* ============ PUBLICATIONS LIST ============ */
.filter-row{
display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px;
font-family:var(--font-mono);font-size:12px;
}
.filter-row span{
border:1px solid var(--line);padding:6px 12px;border-radius:20px;color:var(--ink-soft);
}
.filter-btn{
font-family:var(--font-mono);font-size:12px;
border:1px solid var(--line);background:var(--white);color:var(--ink-soft);
padding:7px 14px;border-radius:20px;cursor:pointer;
transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.filter-btn:hover{border-color:var(--ink);}
.filter-btn.active{
background:var(--ink);border-color:var(--ink);color:var(--paper);
}
#pub-empty{
border:1px dashed var(--line);border-radius:6px;padding:28px;
font-family:var(--font-mono);font-size:13px;color:var(--ink-faint);
text-align:center;
}

/* ---- publicar: pasos ---- */
.publish-steps{
display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
background:var(--line);border:1px solid var(--line);margin-bottom:32px;
}
.publish-steps div{background:var(--white);padding:22px 20px;}
.publish-steps .n{
font-family:var(--font-mono);color:var(--gold);font-size:12px;margin-bottom:8px;display:block;
}
.publish-steps h4{font-family:var(--font-display);font-size:16px;margin:0 0 6px;}
.publish-steps p{font-size:13.5px;margin:0;}
@media (max-width:820px){.publish-steps{grid-template-columns:1fr;}}
.pub-list{border-top:1px solid var(--line);}
.pub-row{
display:grid;grid-template-columns:70px 1fr auto;gap:22px;align-items:start;
padding:26px 0;border-bottom:1px solid var(--line);
}
.pub-row .idx{font-family:var(--font-mono);color:var(--gold);font-size:13px;padding-top:3px;}
.pub-row h3{font-size:19px;margin-bottom:6px;}
.pub-row .meta{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-faint);letter-spacing:.02em;margin-bottom:8px;display:block;}
.pub-row p{font-size:14.5px;margin:0;max-width:64ch;}
.pub-row .read{
font-family:var(--font-mono);font-size:12.5px;color:var(--brick);text-decoration:none;
white-space:nowrap;border-bottom:1px solid var(--brick);padding-bottom:2px;
}
@media (max-width:700px){
.pub-row{grid-template-columns:1fr;gap:8px;}
.pub-row .read{justify-self:start;}
}

/* ---- publicaciones.html: archivo en tarjetas ---- */
.pub-archive-head h2{font-size:clamp(26px,3vw,36px);margin:0 0 22px;}
.pub-archive .pub-list{
display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;
border-top:none;
}
.pub-archive .pub-row{
display:flex;flex-direction:column;gap:12px;
padding:24px 24px 22px;
background:var(--white);border:1px solid var(--line);border-radius:6px;
transition:border-color .15s ease, transform .15s ease;
}
.pub-archive .pub-row:hover{border-color:var(--ink);transform:translateY(-2px);}
.pub-archive .pub-row .idx{padding-top:0;}
.pub-archive .pub-row .read{margin-top:auto;align-self:flex-start;}
/* Toda la tarjeta abre el artículo: el enlace "Leer" se estira sobre la tarjeta */
.pub-archive .pub-row{position:relative;cursor:pointer;}
.pub-archive .pub-row .read::after{content:"";position:absolute;inset:0;z-index:1;}
.pub-archive .pub-row .read:focus-visible{outline:none;}
.pub-archive .pub-row:has(.read:focus-visible){outline:2px solid var(--brick);outline-offset:3px;}
.pub-thumb{display:none;}
.pub-archive .pub-row{overflow:hidden;}
.pub-archive .pub-thumb{
display:block;margin:-24px -24px 4px;aspect-ratio:16 / 9;
background:var(--paper-2);border-bottom:1px solid var(--line);
}
.pub-archive .pub-thumb img{width:100%;height:100%;object-fit:cover;display:block;}

/* ============ ACTIVIDADES ============ */
.act-showcase{
display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:44px;align-items:center;
scroll-margin-top:110px;
}
.act-stage{
position:relative;aspect-ratio:3 / 2;overflow:hidden;
background:var(--paper-2);
border:1.5px solid var(--ink);border-radius:6px;
}
.act-slides{position:absolute;inset:0;}
.act-slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;}
.act-slide.is-active{opacity:1;z-index:1;}
.act-slide img{width:100%;height:100%;object-fit:cover;display:block;}
.act-sin-fotos{
position:absolute;inset:0;display:grid;place-items:center;margin:0;
font-family:var(--font-mono);font-size:13px;color:var(--ink-faint);
}
.act-arrow{
position:absolute;top:50%;transform:translateY(-50%);z-index:3;
width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;
background:rgba(17,17,17,.5);color:var(--white);font-size:26px;line-height:1;
opacity:0;transition:opacity .2s ease, background .15s ease;
}
.act-arrow:hover{background:var(--brick);}
.act-prev{left:14px;}
.act-next{right:14px;}
.act-stage:hover .act-arrow, .act-stage:focus-within .act-arrow{opacity:1;}
.act-arrow:focus-visible, .act-pausa:focus-visible, .act-dots button:focus-visible{outline:2px solid var(--white);outline-offset:2px;}
.act-bar{
position:absolute;left:0;right:0;bottom:0;z-index:2;
display:flex;align-items:center;justify-content:space-between;gap:12px;
padding:36px 16px 14px;background:linear-gradient(transparent, rgba(17,17,17,.55));
}
.act-dots{display:flex;flex-wrap:wrap;gap:2px;}
.act-dots button{width:20px;height:20px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center;}
.act-dots button::before{content:"";width:8px;height:8px;border-radius:4px;background:rgba(251,251,246,.55);transition:width .3s ease, background-color .3s ease;}
.act-dots button[aria-current="true"]{width:30px;}
.act-dots button[aria-current="true"]::before{width:24px;background:var(--white);}
.act-pausa{
font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;color:var(--white);cursor:pointer;
background:rgba(17,17,17,.35);border:1px solid rgba(251,251,246,.6);border-radius:20px;padding:5px 13px;
}
.act-stage.is-empty .act-arrow, .act-stage.is-empty .act-bar,
.act-stage.is-single .act-arrow, .act-stage.is-single .act-bar{display:none;}

.act-info h2{font-size:clamp(24px,2.6vw,32px);margin:0 0 .3em;}
.act-fecha{
display:block;margin:0 0 1.1em;
font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);
}
.act-desc{white-space:pre-line;margin:0;}
.act-contador{
margin:1.4em 0 0;font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);
font-variant-numeric:tabular-nums;
}

.act-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;}
.act-card{
display:flex;flex-direction:column;overflow:hidden;
background:var(--white);border:1px solid var(--line);border-radius:6px;
transition:border-color .15s ease, transform .15s ease;
}
.act-card:hover{border-color:var(--ink);transform:translateY(-2px);}
.act-card-media{position:relative;aspect-ratio:3 / 2;background:var(--paper-2);border-bottom:1px solid var(--line);}
.act-card-media img{width:100%;height:100%;object-fit:cover;display:block;}
.act-badge{
position:absolute;right:10px;bottom:10px;
font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--white);
background:rgba(17,17,17,.6);padding:3px 9px;border-radius:3px;
}
.act-card-body{display:flex;flex-direction:column;gap:8px;flex:1;padding:22px 22px 22px;}
.act-card time{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);}
.act-card h3{font-size:19px;margin:0;line-height:1.3;}
.act-card-desc{
margin:0;font-size:14.5px;white-space:pre-line;
display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
}
.act-card.is-expanded .act-card-desc{display:block;-webkit-line-clamp:unset;}
.act-card-actions{display:flex;flex-wrap:wrap;gap:18px;margin-top:auto;padding-top:10px;}
/* Inicio: línea divisoria bajo la última actividad (desaparece con la sección si no hay actividades) */
#act-home{border-bottom:1px solid var(--line);padding:56px 0 48px;}
#act-home + .section{padding-top:56px;} /* espacio más compacto hacia "Qué hacemos" */
@media (max-width:820px){
#act-home{padding:44px 0 36px;}
#act-home + .section{padding-top:44px;}
#act-home .act-info > p:last-child{margin-top:1em !important;}
}

.act-link{
font-family:var(--font-mono);font-size:12.5px;color:var(--brick);cursor:pointer;
background:none;border:0;border-bottom:1px solid var(--brick);padding:0 0 2px;
}
.act-link:hover{color:var(--brick-dark);border-bottom-color:var(--brick-dark);}

.act-aviso{
border:1px dashed var(--line);border-radius:6px;padding:36px 28px;text-align:center;
}
.act-aviso p{margin:0 auto;max-width:52ch;font-family:var(--font-mono);font-size:13px;color:var(--ink-faint);}

@media (hover:none){.act-arrow{opacity:1;}}
@media (max-width:820px){.act-showcase{grid-template-columns:1fr;gap:28px;}}
/* Inicio en celular: la última actividad muestra solo el título (sin descripción) */
@media (max-width:820px){#act-home .act-desc{display:none;}}

/* ============ CONTACT ============ */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
.form-field{margin-bottom:18px;}
.form-field label{
display:block;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;
letter-spacing:.06em;color:var(--ink-faint);margin-bottom:6px;
}
.form-field input, .form-field textarea{
width:100%;padding:12px 14px;border:1.5px solid var(--ink);border-radius:3px;
background:var(--white);font-family:var(--font-body);font-size:14.5px;color:var(--ink);
resize:vertical;
}
.form-field input:focus, .form-field textarea:focus{outline:2px solid var(--brick);outline-offset:1px;}
.info-block{margin-bottom:28px;}
.info-block .eyebrow{margin-bottom:.4em;}
.info-block .val{font-family:var(--font-mono);font-size:15px;}
.info-block p{font-size:14.5px;}
.map-note{
border:1px dashed var(--line);border-radius:6px;padding:20px;
font-family:var(--font-mono);font-size:12.5px;color:var(--ink-faint);
}
#form-status{
font-family:var(--font-mono);font-size:13px;margin-top:10px;display:none;
}
#form-status.ok{display:block;color:#1f7a3d;}

/* ---- formulario de contacto ---- */
.contact-form{
background:var(--white);border:1px solid var(--line);border-radius:6px;
padding:28px 28px 24px;
}
.contact-form .eyebrow{margin-bottom:1.2em;}
.contact-form .btn[disabled]{opacity:.6;cursor:wait;transform:none;}
.form-msg{margin:14px 0 0;font-size:14px;}
.form-msg.is-ok{color:#1f7a3d;}
.form-msg.is-error{color:var(--brick-dark);}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

@media (max-width:820px){
.contact-grid{grid-template-columns:1fr;}
/* Contacto en teléfono: el formulario va primero y los datos debajo */
.contact-grid:has(#sue-contacto){gap:36px;}
.contact-grid > div:has(#sue-contacto){order:-1;}
.contact-form{padding:22px 18px 20px;}
}

/* ============ FOOTER ============ */
.site-footer{
border-top:1px solid var(--line);
background:var(--ink);color:var(--paper);
padding:48px 0 24px;
}
.footer-grid{
display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;
padding-bottom:32px;border-bottom:1px solid rgba(251,251,246,0.14);
}
.footer-grid h4{color:var(--paper);font-family:var(--font-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px;}
.footer-grid p{color:#b7bccb;font-size:13.5px;}
.footer-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.footer-links a{color:#d7dae2;text-decoration:none;font-size:13.5px;}
.footer-links a:hover{color:var(--gold);}
.footer-small{font-size:13.5px;}

.footer-social{
display:flex;gap:14px;margin-top:16px;
}
.footer-social a{
color:var(--paper);
opacity:.85;
transition:opacity .15s ease, color .15s ease;
}
.footer-social a:hover{
opacity:1;color:var(--gold);
}
.footer-bottom{
display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
padding-top:20px;font-family:var(--font-mono);font-size:11.5px;color:#8790a3;
}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr;}}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion: reduce){
html{scroll-behavior:auto;}
.ticker-track{animation:none;}
*{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
.act-card:hover, .pub-archive .pub-row:hover{transform:none;}
}

/* ============ ARTÍCULO (detalle de publicación) ============ */
.article-container{
max-width:900px;margin:0 auto;
padding:56px 32px 100px;
}
.back-link{
font-family:var(--font-mono);font-size:12.5px;letter-spacing:.04em;
color:var(--brick);text-decoration:none;display:inline-flex;align-items:center;gap:7px;
margin-bottom:36px;
}
.back-link::before{content:"←";}
.back-link:hover{text-decoration:underline;}

.article-status{
font-family:var(--font-mono);font-size:13.5px;color:var(--ink-faint);
text-align:center;padding:80px 0;
}

.article-header{
border-bottom:1px solid var(--line);
padding-bottom:30px;margin-bottom:38px;
}
.article-meta{
font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;
color:var(--brick);text-transform:uppercase;margin-bottom:16px;
}
.article-title{
font-size:clamp(30px,4.6vw,46px);
line-height:1.08;margin-bottom:18px;
}
h1.article-title{
font-family:var(--font-display) !important;
font-weight:600 !important;
color:var(--negroclaro) !important;
font-size:clamp(30px,4.2vw,48px) !important;
line-height:1.08;
letter-spacing:-0.01em;
margin:0 0 20px;
}
p.article-resumen{
font-family:var(--font-display);font-style:italic;font-weight:400;
font-size:17px;line-height:1.55;color:var(--ink-soft);margin:18px 0 0;
}

.article-image{
display:block;width:100%;height:auto;margin:34px 0;
}

.article-hero-image{
display:block;width:100%;
aspect-ratio:21/9;
object-fit:cover;
object-position:center;
background:var(--paper-2);
border:1.5px solid var(--ink);border-radius:6px;
margin-bottom:44px;
}

.article-body-figure{margin:36px 0;}
.article-body-image{
display:block;width:100%;height:auto;
border:1.5px solid var(--ink);border-radius:6px;
}
.article-body-figure figcaption{
font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);
margin-top:10px;text-align:center;
}

.article-body{
font-family:var(--font-body);font-size:17px;line-height:1.85;
color:var(--ink-soft);white-space:pre-wrap;
}
.article-body p{margin:0 0 1.2em;}
.article-body h2, .article-body h3, .article-body h4,
.article-body h5, .article-body h6{
  font-family:var(--font-display);color:var(--negroclaro);
  margin:1.4em 0 .5em;line-height:1.2;
}
.article-body h2{font-size:28px;}
.article-body h3{font-size:23px;}
.article-body h4{font-size:19px;}
.article-body h5{font-size:17px;font-weight:600;}
.article-body h6{
  font-size:14px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--brick);font-family:var(--font-mono);font-weight:600;
}

.article-body strong{color:var(--negroclaro);font-weight:700;}
.article-body em{font-style:italic;}
.article-body del{color:var(--ink-faint);text-decoration:line-through;}

.article-body code{
  font-family:var(--font-code);font-size:0.9em;
  background:var(--paper-2);border:1px solid var(--line);
  padding:.1em .4em;border-radius:3px;color:var(--ink-soft);
}

.article-body a{
  color:var(--brick);text-decoration:underline;text-underline-offset:2px;
}
.article-body a:hover{color:var(--brick-dark);}

.article-quote{
  margin:1.6em 0;padding:.2em 0 .2em 20px;
  border-left:3px solid var(--brick);
  font-style:italic;color:var(--ink-soft);
}
.article-quote p{margin:0;}

.article-recuadro{
  margin:1.8em 0;padding:20px 24px;
  background:var(--paper-2);border:1px solid var(--line);border-left:3px solid var(--gold);
  border-radius:6px;
}
.article-recuadro h4{
  font-family:var(--font-display);font-size:16.5px;font-weight:600;color:var(--negroclaro);
  margin:0 0 .5em;
}
.article-recuadro p{margin:0;font-size:15.5px;color:var(--ink-soft);}

.article-table-wrap{margin:1.8em 0;overflow-x:auto;border:1px solid var(--line);border-radius:6px;}
.article-table{width:100%;border-collapse:collapse;font-size:14.5px;}
.article-table th, .article-table td{
  padding:11px 16px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;
}
.article-table th{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;letter-spacing:.03em;text-transform:uppercase;
  color:var(--white);background:var(--ink);white-space:normal;
}
.article-table tbody tr:last-child td{border-bottom:none;}
.article-table tbody tr:nth-child(even){background:var(--paper-2);}
.article-table td:first-child{font-weight:600;color:var(--negroclaro);white-space:normal;}

.article-list{
  margin:0 0 1.2em;padding-left:1.4em;color:var(--ink-soft);
}
.article-list li{margin-bottom:.5em;}

.article-hr{
  border:none;border-top:1px dashed var(--line);
  margin:2.4em 0;
}


/* ============ PAGE HEADER (subpages) ============ */
.page-head{padding:56px 0 40px;border-bottom:1px solid var(--line);}
.page-head h1{font-size:clamp(30px,4vw,46px);}
.page-head p{font-size:16px;max-width:60ch;}
