/*
 * Ezker Anitza – Izquierda Unida — tema «Pancarta»
 * Cartel militante: negro, rojo y papel prensa; Anton condensada a gran tamaño, sellos de goma,
 * pasquines con sombra dura, cortes en diagonal y trama de puntos.
 * Anton (rótulos) + Source Sans 3 (lectura).
 */

:root {
  --negro: #121212;
  --carbon: #1f1d1b;
  --rojo: #d0161f;
  --rojo-oscuro: #a40f17;
  --rojo-claro: #ff5b50;
  --papel: #f1ece1;
  --papel-claro: #faf7f0;
  --blanco: #ffffff;
  --tenue: #5b574f;
  --borde: #d6cfbf;
  --foco: #d0161f;

  --ancho-texto: 40rem;
  --ancho-amplio: 76rem;
  --hueco: clamp(1rem, 2.6vw, 1.75rem);
  --radio: 0px;
  --color-texto: var(--negro);
  --color-fondo: var(--papel);
  --color-suave: var(--papel-claro);
  --color-borde: var(--borde);
  --color-acento: var(--rojo);
  --color-acento-texto: #fff;
  --color-tenue: var(--tenue);
  --fuente-texto: "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fuente-titulos: "Anton", "Impact", "Arial Narrow", sans-serif;
  --trama: radial-gradient(circle, currentColor 1.15px, transparent 1.6px);
}

/* ------------------------------------------------------------ base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: var(--papel); color: var(--negro); font-family: var(--fuente-texto); font-size: 1.0625rem; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: var(--rojo-oscuro); text-underline-offset: .18em; text-decoration-thickness: 2px; }
a:hover { color: var(--rojo); }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 3px; }
main:focus { outline: none; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }
.x-oculto { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.envoltorio { width: min(100% - 2rem, var(--ancho-amplio)); margin-inline: auto; }
.envoltorio-texto { width: min(100% - 2rem, var(--ancho-texto)); margin-inline: auto; }
.envoltorio-medio { width: min(100% - 2rem, 54rem); margin-inline: auto; }
@media (min-width: 40rem) {
  .envoltorio { width: min(100% - 4rem, var(--ancho-amplio)); }
  .envoltorio-texto { width: min(100% - 4rem, var(--ancho-texto)); }
  .envoltorio-medio { width: min(100% - 4rem, 54rem); }
}
.saltar { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--rojo); color: #fff; padding: .7rem 1.1rem; font-weight: 800; text-decoration: none; }
.saltar:focus { top: .5rem; color: #fff; }
.icono { width: 1.1em; height: 1.1em; flex: none; vertical-align: -.18em; }

/* zonas oscuras: foco y enlaces claros */
.cabecera, .consigna, .franja-negra, .cabecera-lista, .entrada-cabecera, .pie, .llamada, .error { --foco: #fff; }

/* ------------------------------------------------------------ botones, sellos y etiquetas */
.boton {
  display: inline-flex; align-items: center; gap: .6em; min-height: 3.1rem; padding: .7em 1.4em;
  font: 800 .95rem/1.1 var(--fuente-texto); letter-spacing: .08em; text-transform: uppercase; text-decoration: none;
  color: #fff; background: var(--rojo); border: 3px solid var(--rojo); transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.boton:hover { background: var(--papel); border-color: var(--papel); color: var(--negro); }
.boton-contorno { background: transparent; border-color: var(--papel); color: var(--papel); }
.boton-contorno:hover { background: var(--papel); color: var(--negro); }
.boton-negro { background: var(--negro); border-color: var(--negro); color: var(--papel); }
.boton-negro:hover { background: var(--rojo); border-color: var(--rojo); color: #fff; }
.botones { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0; }

.sello-fecha {
  display: inline-grid; justify-items: center; align-self: start; padding: .35rem .55rem .3rem; border: 3px solid var(--rojo); color: var(--rojo);
  font-family: var(--fuente-titulos); font-size: .95rem; line-height: 1; letter-spacing: .06em; text-transform: uppercase; transform: rotate(-4deg); white-space: nowrap;
}
.sello-fecha b { font-weight: 400; font-size: 2.1rem; letter-spacing: 0; }
.sello-fecha i { font-style: normal; font-size: .78rem; letter-spacing: .12em; }
.sello-grande { font-size: 1.1rem; padding: .45rem .7rem .4rem; }
.sello-grande b { font-size: 2.8rem; }
.sello-pagina { font-size: .9rem; padding: .6rem; }

.etiquetas-cat { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; }
.etiquetas-cat > span, .etiquetas-cat > a {
  display: inline-block; padding: .2em .55em; background: var(--negro); color: var(--papel);
  font: 700 .7rem/1.3 var(--fuente-texto); letter-spacing: .1em; text-transform: uppercase; text-decoration: none;
}
.etiquetas-cat-claras > a { background: var(--rojo); color: #fff; min-height: 2rem; display: inline-flex; align-items: center; }
.etiquetas-cat-claras > a:hover { background: var(--papel); color: var(--negro); }

.titulo-bloque { margin: 0 0 2rem; padding-bottom: .75rem; border-bottom: 5px solid var(--negro); font-family: var(--fuente-titulos); font-weight: 400; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; text-transform: uppercase; letter-spacing: .01em; }
.titulo-bloque span { display: inline-block; padding: .08em .3em .02em; background: var(--negro); color: var(--papel); transform: rotate(-1.5deg); }
.titulo-bloque-claro { border-bottom-color: var(--papel); }
.titulo-bloque-claro span { background: var(--rojo); color: #fff; }

.lista-temas { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.lista-temas a {
  display: inline-flex; align-items: center; min-height: 2.6rem; padding: 0 .9rem; border: 2px solid var(--papel); color: var(--papel);
  font-weight: 800; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; text-decoration: none;
}
.lista-temas a:hover { background: var(--rojo); border-color: var(--rojo); color: #fff; }
.lista-temas-oscura a { border-color: var(--negro); color: var(--negro); }
.lista-temas-oscura a:hover { color: #fff; }

/* ------------------------------------------------------------ cabecera */
.cabecera { background: var(--negro); color: var(--papel); border-bottom: 6px solid var(--rojo); }
.cabecera-fila { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; padding-block: .9rem; }
.marca { display: inline-flex; align-items: center; gap: .85rem; color: var(--papel); text-decoration: none; margin-right: auto; }
.marca:hover { color: var(--papel); }
.marca-insignia { display: grid; place-items: center; min-width: 3.4rem; height: 3.4rem; padding: 0 .4rem; background: var(--rojo); color: #fff; font-family: var(--fuente-titulos); font-size: 1.15rem; letter-spacing: .02em; transform: rotate(-3deg); }
.marca-texto { display: flex; flex-direction: column; line-height: .95; font-family: var(--fuente-titulos); text-transform: uppercase; }
.marca-nombre { font-size: 1.65rem; letter-spacing: .02em; }
.marca-subnombre { font-size: 1rem; letter-spacing: .14em; color: var(--rojo-claro); margin-top: .15rem; }
.cabecera-acciones { display: flex; gap: .4rem; order: 3; }
.boton-icono { display: inline-flex; align-items: center; justify-content: center; width: 2.9rem; height: 2.9rem; border: 2px solid var(--papel); background: transparent; color: var(--papel); cursor: pointer; }
.boton-icono:hover { background: var(--rojo); border-color: var(--rojo); color: #fff; }
.boton-menu .icono-cerrar, .boton-menu[aria-expanded="true"] .icono-menu { display: none; }
.boton-menu[aria-expanded="true"] .icono-cerrar { display: block; }
.navegacion { order: 2; }
.menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.menu a {
  display: flex; align-items: center; min-height: 2.9rem; padding: 0 .85rem;
  font-weight: 800; font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; color: var(--papel); text-decoration: none;
}
.menu a:hover { color: #fff; box-shadow: inset 0 -4px 0 var(--rojo); }
.menu a[aria-current] { background: var(--rojo); color: #fff; }
.menu-sub { display: none; }
@media (min-width: 66rem) { .boton-menu { display: none; } }
@media (max-width: 65.99rem) {
  .navegacion { order: 4; flex-basis: 100%; display: none; }
  .navegacion.abierto { display: block; }
  .menu { flex-direction: column; padding-bottom: .5rem; }
  .menu a { min-height: 3.1rem; padding: 0 .5rem; border-top: 1px solid #333; font-size: 1rem; }
}
@media (max-width: 28rem) {
  .marca-insignia { min-width: 2.8rem; height: 2.8rem; font-size: .95rem; }
  .marca-nombre { font-size: 1.3rem; }
  .marca-subnombre { font-size: .8rem; }
}

/* ------------------------------------------------------------ portada: consigna */
.consigna {
  position: relative; overflow: hidden; background: var(--negro); color: var(--papel);
  padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(4.5rem, 10vw, 7.5rem);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 5vw), 0 100%);
}
.consigna::before { /* trama de puntos */
  content: ""; position: absolute; right: -4rem; top: -2rem; width: min(60vw, 44rem); height: 120%; color: var(--rojo);
  background-image: var(--trama); background-size: 9px 9px; opacity: .55;
  -webkit-mask-image: radial-gradient(closest-side, #000 20%, transparent 100%); mask-image: radial-gradient(closest-side, #000 20%, transparent 100%);
}
.consigna-rejilla { position: relative; }
.consigna-antetitulo { display: inline-flex; align-items: center; gap: .7rem; margin: 0 0 1.5rem; font-weight: 800; font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; }
.consigna-antetitulo::before { content: ""; width: 2.5rem; height: 6px; background: var(--rojo); }
.consigna-titulo { margin: 0; font-family: var(--fuente-titulos); font-weight: 400; font-size: clamp(2.5rem, 10.5vw, 9.6rem); line-height: 1; text-transform: uppercase; letter-spacing: .005em; }
.linea { display: block; }
.linea-roja { margin-top: .12em; }
.linea-roja > span { display: inline-block; padding: .02em .16em 0; background: var(--rojo); color: #fff; transform: rotate(-2deg); transform-origin: left center; box-shadow: .12em .12em 0 var(--papel); }
.consigna-pie { display: grid; gap: 1.75rem 4rem; align-items: end; margin-top: clamp(2rem, 4vw, 3rem); }
@media (min-width: 56rem) { .consigna-pie { grid-template-columns: minmax(0, 1.3fr) auto; } }
.consigna-texto { margin: 0; max-width: 40rem; font-size: clamp(1.05rem, 1.6vw, 1.2rem); color: rgba(241, 236, 225, .85); }

/* ------------------------------------------------------------ bloques de portada */
.bloque { padding-top: clamp(3rem, 6vw, 4.5rem); }
.ultimas-rejilla { display: grid; gap: 2rem 4rem; align-items: start; }
@media (min-width: 60rem) { .ultimas-rejilla { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.titular { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
.titular-titulo { margin: 0; font-family: var(--fuente-titulos); font-weight: 400; font-size: clamp(2.2rem, 4.6vw, 3.8rem); line-height: 1.04; text-transform: uppercase; letter-spacing: .005em; }
.titular-titulo.titulo-largo { font-size: clamp(2rem, 3.8vw, 3.1rem); }
.titular-titulo.titulo-muy-largo { font-size: clamp(1.8rem, 3.2vw, 2.6rem); }
.titular-titulo a { color: var(--negro); text-decoration: none; }
.titular-titulo a::after { content: ""; position: absolute; inset: 0; }
.titular:hover .titular-titulo a { color: var(--rojo); }
.titular-resumen { margin: 0; max-width: 38rem; font-size: 1.2rem; line-height: 1.55; }
.titular-autor { margin: 0; font-weight: 800; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rojo-oscuro); }
.ultimas-lista { border-top: 5px solid var(--negro); }
.ultimas-lista .fila { padding-block: 1rem; grid-template-columns: 5rem minmax(0, 1fr); }
.ultimas-lista .sello-fecha { font-size: .8rem; border-width: 2px; }
.ultimas-lista .sello-fecha b { font-size: 1.6rem; }
.ultimas-lista .fila-titulo { font-size: 1.25rem; }

.pasquines { display: grid; gap: clamp(1.5rem, 3vw, 2.25rem); grid-template-columns: repeat(auto-fill, minmax(min(100%, 21rem), 1fr)); margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.pasquin { position: relative; background: var(--papel-claro); border: 3px solid var(--negro); box-shadow: 8px 8px 0 var(--negro); transition: transform .15s ease, box-shadow .15s ease; }
.pasquin:hover { transform: translate(-3px, -3px); box-shadow: 11px 11px 0 var(--rojo); }
.pasquin-imagen { border-bottom: 3px solid var(--negro); background: var(--negro); }
.pasquin-imagen img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; filter: grayscale(1) contrast(1.15); mix-blend-mode: luminosity; }
.pasquin-cuerpo { display: flex; flex-direction: column; align-items: flex-start; gap: .8rem; padding: 1.25rem 1.25rem 1.4rem; }
.pasquin .sello-fecha { font-size: .78rem; border-width: 2px; }
.pasquin .sello-fecha b { font-size: 1.5rem; }
.pasquin-titulo { margin: 0; font-family: var(--fuente-titulos); font-weight: 400; font-size: 1.5rem; line-height: 1.12; text-transform: uppercase; letter-spacing: .01em; }
.pasquin-titulo.titulo-largo { font-size: 1.3rem; }
.pasquin-titulo.titulo-muy-largo { font-size: 1.15rem; }
.pasquin-titulo a { color: var(--negro); text-decoration: none; }
.pasquin-titulo a::after { content: ""; position: absolute; inset: 0; }
.pasquin:hover .pasquin-titulo a { color: var(--rojo); }
.pasquin-resumen { margin: 0; color: var(--tenue); font-size: .98rem; line-height: 1.5; }
.mas { margin: clamp(2.5rem, 5vw, 3.5rem) 0 0; }

/* franja negra: asambleas, temas y archivo */
.franja-negra { margin-top: clamp(3.5rem, 7vw, 5rem); background: var(--negro); color: var(--papel); padding-block: clamp(3rem, 6vw, 4.5rem); }
.franja-rejilla { display: grid; gap: 3rem 4rem; }
@media (min-width: 60rem) { .franja-rejilla { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); } }
.asambleas { list-style: none; margin: 0; padding: 0; }
.asambleas a {
  display: flex; align-items: center; gap: 1rem; padding-block: .55rem; border-bottom: 2px solid #333; color: var(--papel); text-decoration: none;
  font-family: var(--fuente-titulos); font-size: clamp(2rem, 4.5vw, 3.4rem); line-height: 1.05; text-transform: uppercase;
}
.asamblea-nombre { flex: 1; }
.asamblea-cuenta { display: grid; place-items: center; min-width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--rojo); color: #fff; font-size: 1.15rem; }
.asambleas .icono { width: .7em; height: .7em; transition: transform .15s ease; }
.asambleas a:hover { color: var(--rojo-claro); }
.asambleas a:hover .icono { transform: translateX(6px); }
.franja-lateral .titulo-bloque { font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: 1.25rem; }
.franja-lateral .titulo-bloque + * { margin-bottom: 2.75rem; }
.anios { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.anios a { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 5rem; border: 2px solid var(--papel); color: var(--papel); text-decoration: none; }
.anios a:hover { background: var(--rojo); border-color: var(--rojo); color: #fff; }
.anio { font-family: var(--fuente-titulos); font-size: 2rem; line-height: 1; }
.anio-cuenta { font-weight: 700; font-size: .8rem; letter-spacing: .1em; }

.quienes { padding-top: clamp(3rem, 6vw, 4.5rem); }
.quienes-texto { font-size: clamp(1.2rem, 2vw, 1.45rem); line-height: 1.55; }
.quienes-texto > * { margin-left: 0; max-width: 52rem; }
.quienes-texto p:first-child { padding-left: 1.25rem; border-left: 8px solid var(--rojo); }

/* llamada */
.llamada {
  position: relative; overflow: hidden; margin-top: clamp(3.5rem, 7vw, 5rem); background: var(--rojo); color: #fff;
  padding-block: clamp(4rem, 9vw, 6.5rem) clamp(3rem, 6vw, 4.5rem); clip-path: polygon(0 5vw, 100% 0, 100% 100%, 0 100%);
}
.llamada::after { content: ""; position: absolute; left: -3rem; bottom: -3rem; width: 26rem; height: 18rem; color: var(--negro); background-image: var(--trama); background-size: 10px 10px; opacity: .35; -webkit-mask-image: radial-gradient(closest-side, #000 25%, transparent); mask-image: radial-gradient(closest-side, #000 25%, transparent); }
.llamada-rejilla { position: relative; z-index: 1; display: grid; gap: 1.5rem 4rem; align-items: end; }
@media (min-width: 56rem) { .llamada-rejilla { grid-template-columns: auto minmax(0, 1fr); } }
.llamada-titulo { margin: 0; font-family: var(--fuente-titulos); font-weight: 400; font-size: clamp(3.6rem, 11vw, 8.5rem); line-height: .85; text-transform: uppercase; color: #fff; }
.llamada-texto p { margin: 0 0 1.25rem; max-width: 30rem; font-size: 1.2rem; }
.llamada .boton-negro:hover { background: var(--papel); border-color: var(--papel); color: var(--negro); }

/* ------------------------------------------------------------ listados */
.cabecera-lista { background: var(--negro); color: var(--papel); padding-block: clamp(2.75rem, 6vw, 4rem) clamp(3.5rem, 7vw, 5rem); clip-path: polygon(0 0, 100% 0, 100% calc(100% - 3vw), 0 100%); }
.cabecera-lista-antes { display: inline-block; margin: 0 0 1rem; padding: .2em .6em; background: var(--rojo); color: #fff; font-weight: 800; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; transform: rotate(-2deg); }
.cabecera-lista-titulo { margin: 0; font-family: var(--fuente-titulos); font-weight: 400; font-size: clamp(2.6rem, 7vw, 5.6rem); line-height: 1; text-transform: uppercase; overflow-wrap: anywhere; }
.cabecera-lista-texto { margin: 1rem 0 0; max-width: 40rem; font-size: 1.15rem; color: rgba(241, 236, 225, .85); }
.cabecera-lista-cuenta { margin: 1.25rem 0 0; font-weight: 800; font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; }
.cabecera-lista-cuenta span { font-family: var(--fuente-titulos); font-size: 2rem; letter-spacing: 0; color: var(--rojo-claro); vertical-align: -.15em; }
.buscador-grande { margin-top: 1.5rem; }
.x-buscador { max-width: 40rem; }
.x-buscador input { min-height: 3.2rem; font-size: 1.1rem; border: 3px solid var(--negro); border-radius: 0; background: #fff; color: var(--negro); }
.cabecera-lista .x-buscador input, .error .x-buscador input { border-color: var(--papel); }
.x-buscador input:focus { outline: 3px solid var(--rojo); outline-offset: 2px; }
.x-buscador button { min-height: 3.2rem; border-radius: 0; border-width: 3px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding-inline: 1.4em; }
.listado { padding-top: clamp(1.5rem, 3vw, 2.5rem); }
.filas { border-top: 5px solid var(--negro); }
.fila { position: relative; display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: 1.25rem; padding-block: 1.5rem; border-bottom: 2px solid var(--negro); }
.fila-texto { display: flex; flex-direction: column; gap: .55rem; }
.fila-titulo { margin: 0; font-family: var(--fuente-titulos); font-weight: 400; font-size: clamp(1.4rem, 2.6vw, 1.85rem); line-height: 1.1; text-transform: uppercase; letter-spacing: .01em; }
.fila-titulo.titulo-largo { font-size: clamp(1.3rem, 2.2vw, 1.6rem); }
.fila-titulo.titulo-muy-largo { font-size: clamp(1.2rem, 2vw, 1.4rem); }
.fila-titulo a { color: var(--negro); text-decoration: none; }
.fila-titulo a::after { content: ""; position: absolute; inset: 0; }
.fila:hover .fila-titulo a { color: var(--rojo); }
.fila-resumen { margin: 0; color: var(--tenue); line-height: 1.55; }
.fila-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; margin: 0; }
.fila-autor { font-weight: 800; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rojo-oscuro); }
@media (max-width: 30rem) { .fila { grid-template-columns: 4.6rem minmax(0, 1fr); gap: .9rem; } .sello-fecha { font-size: .78rem; } .sello-fecha b { font-size: 1.6rem; } }
.vacio { padding: 1.5rem; border: 3px dashed var(--negro); }

.pagina { width: min(100% - 2rem, var(--ancho-amplio)); margin: clamp(2rem, 5vw, 3rem) auto 0; }

/* ------------------------------------------------------------ entrada */
.entrada-cabecera { background: var(--negro); color: var(--papel); padding-block: clamp(2.75rem, 6vw, 4.25rem) clamp(4rem, 8vw, 5.5rem); clip-path: polygon(0 0, 100% 0, 100% calc(100% - 3.5vw), 0 100%); }
.entrada-cabecera-rejilla { max-width: 64rem; }
.entrada-cabecera .etiquetas-cat { margin-bottom: 1.25rem; }
.entrada-titulo { margin: 0; font-family: var(--fuente-titulos); font-weight: 400; font-size: clamp(2.4rem, 5.6vw, 4.6rem); line-height: 1.04; text-transform: uppercase; letter-spacing: .005em; }
.entrada-titulo.titulo-largo { font-size: clamp(2.1rem, 4.6vw, 3.7rem); }
.entrada-titulo.titulo-muy-largo { font-size: clamp(1.8rem, 3.8vw, 3rem); }
.entrada-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; margin-top: 1.75rem; }
.entrada-meta p { margin: 0; font-weight: 700; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(241, 236, 225, .8); }
.entrada-meta a { color: #fff; }
.entrada-cabecera .sello-fecha { border-color: var(--rojo-claro); color: var(--rojo-claro); }
.entrada-cuerpo { width: min(100% - 2rem, var(--ancho-amplio)); margin: clamp(2.25rem, 4vw, 3rem) auto 0; }
.entrada-pie { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 3px solid var(--negro); }

.contenido { font-size: 1.15rem; line-height: 1.7; }
.contenido h2, .contenido h3 { font-family: var(--fuente-titulos); font-weight: 400; text-transform: uppercase; letter-spacing: .01em; line-height: 1.12; }
.contenido h2 { font-size: clamp(1.6rem, 3vw, 2.1rem); }
.contenido h3 { font-size: 1.45rem; }
.contenido h4, .contenido h5, .contenido h6 { font-size: 1.1rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.contenido strong { font-weight: 800; }
.contenido blockquote { border-left: 8px solid var(--rojo); padding: .2em 0 .2em 1.25em; font-style: normal; font-weight: 600; font-size: 1.12em; }
.contenido ul li::marker { content: "■  "; color: var(--rojo); font-size: .8em; }
.contenido ol li::marker { font-family: var(--fuente-titulos); color: var(--rojo); }
.contenido figure.imagen img, .contenido p > img, .contenido p > a > img { border: 3px solid var(--negro); }
.contenido .centrado img { display: inline-block; }
.contenido .imagen-externa {
  display: inline-flex; flex-wrap: wrap; align-items: center; gap: .2rem .6rem; min-height: 2.75rem; padding: .45rem .9rem; border: 2px dashed var(--negro);
  color: var(--negro); font-weight: 800; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; vertical-align: middle; margin: .2rem 0;
}
.contenido .imagen-externa span { font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--tenue); overflow-wrap: anywhere; }
.contenido .imagen-externa:hover { border-style: solid; border-color: var(--rojo); color: var(--rojo); }
.contenido figure.tabla table { font-size: .95em; }
.contenido th { background: var(--negro); color: var(--papel); }
.contenido .x-contacto { background: var(--papel-claro); border: 3px solid var(--negro); box-shadow: 8px 8px 0 var(--negro); padding: clamp(1.25rem, 3vw, 2rem); margin-block: 1.5rem 2rem; }
.x-contacto input:not([type=checkbox]), .x-contacto textarea { border: 2px solid var(--negro); border-radius: 0; background: #fff; min-height: 2.9rem; }
.x-contacto input:focus, .x-contacto textarea:focus { outline: 3px solid var(--rojo); }
.x-contacto .x-acepto input { width: 1.2rem; height: 1.2rem; accent-color: var(--rojo); }
.contenido .x-contacto .boton { border-radius: 0; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; border-width: 3px; }

.vecinos { display: grid; gap: 1.25rem; margin-top: 3.5rem; }
@media (min-width: 40rem) { .vecinos { grid-template-columns: 1fr 1fr; } }
.vecino { display: flex; flex-direction: column; gap: .5rem; padding: 1.1rem 1.25rem; background: var(--papel-claro); border: 3px solid var(--negro); box-shadow: 6px 6px 0 var(--negro); color: var(--negro); text-decoration: none; }
.vecino:hover { box-shadow: 6px 6px 0 var(--rojo); color: var(--negro); }
.vecino-sig { grid-column: -2; text-align: right; align-items: flex-end; }
.vecino-etiqueta { display: inline-flex; align-items: center; gap: .4em; font-weight: 800; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rojo-oscuro); }
.vecino-titulo { font-family: var(--fuente-titulos); text-transform: uppercase; font-size: 1.15rem; line-height: 1.1; }

.comentarios { margin-top: 3rem; }
.comentarios .titulo-bloque { font-size: 1.8rem; }
.comentarios-lista { list-style: none; margin: 0; padding: 0; }
.comentarios-lista .comentarios-lista { margin-left: 1.25rem; }
.comentario article { padding: 1rem 1.25rem; border: 2px solid var(--negro); background: var(--papel-claro); margin-bottom: .9rem; }
.comentario-cabecera { display: flex; flex-wrap: wrap; gap: .25rem 1rem; align-items: baseline; }
.comentario-cabecera strong { text-transform: uppercase; letter-spacing: .06em; }
.comentario-cabecera time { color: var(--tenue); font-size: .9rem; }
.comentario-texto p { margin: .4rem 0 0; }

.paginacion { margin-block: 2.5rem 0; }
.paginacion a, .paginacion span[aria-current] { min-width: 3rem; min-height: 3rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 0; border: 3px solid var(--negro); font-family: var(--fuente-titulos); font-size: 1.15rem; color: var(--negro); }
.paginacion a:hover { background: var(--negro); color: var(--papel); }
.paginacion span[aria-current] { background: var(--rojo); border-color: var(--rojo); color: #fff; }
.paginacion-ant, .paginacion-sig { font-family: var(--fuente-texto) !important; font-weight: 800; font-size: .85rem !important; letter-spacing: .08em; text-transform: uppercase; padding-inline: 1rem !important; }

/* 404 */
.error { background: var(--negro); color: var(--papel); padding-block: clamp(3rem, 8vw, 5.5rem) clamp(4.5rem, 9vw, 6.5rem); clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4vw), 0 100%); }
.error-codigo { margin: 0 0 1.75rem; font-family: var(--fuente-titulos); font-size: clamp(6rem, 22vw, 15rem); line-height: 1; }
.error-codigo span { display: inline-block; padding: 0 .12em; background: var(--rojo); color: #fff; transform: rotate(-3deg); }
.error-titulo { margin: 0 0 .75rem; font-family: var(--fuente-titulos); font-weight: 400; font-size: clamp(2.2rem, 6vw, 4rem); line-height: .95; text-transform: uppercase; }
.error-texto { max-width: 36rem; font-size: 1.15rem; }
.error .botones { margin-top: 1.5rem; }

/* ------------------------------------------------------------ pie */
.pie { background: var(--negro); color: var(--papel); padding-block: clamp(3rem, 6vw, 4.5rem) 1.5rem; border-top: 8px solid var(--rojo); }
.pie a { color: var(--papel); text-decoration: none; }
.pie a:hover { color: var(--rojo-claro); }
.pie-lema { margin: 0 0 2.5rem; font-family: var(--fuente-titulos); font-size: clamp(2.2rem, 5.5vw, 4.4rem); line-height: 1.02; text-transform: uppercase; max-width: 18ch; }
.pie-rejilla { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); padding-block: 2rem; border-top: 2px solid #333; }
.pie-marca { margin: 0; font-family: var(--fuente-titulos); font-size: 1.5rem; line-height: 1.05; text-transform: uppercase; }
.pie-titulo { margin: 0 0 .75rem; font-weight: 800; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rojo-claro); }
.pie-lista { list-style: none; margin: 0; padding: 0; }
.pie-lista a { display: inline-flex; align-items: center; gap: .45rem; min-height: 2.5rem; font-weight: 600; }
.pie-lista a[aria-current] { color: var(--rojo-claro); }
.pie-base { margin: 0; padding-top: 1.25rem; border-top: 2px solid #333; font-size: .85rem; color: rgba(241, 236, 225, .7); }

/* ------------------------------------------------------------ movimiento e impresión */
@media (prefers-reduced-motion: reduce) {
  .pasquin:hover { transform: none; }
}
@media print {
  .cabecera-acciones, .navegacion, .llamada, .vecinos, .pie-rejilla, .saltar, .pasquines, .franja-negra { display: none !important; }
  body { background: #fff; font-size: 11pt; }
  .consigna, .cabecera-lista, .entrada-cabecera, .pie, .cabecera { background: none; color: #000; clip-path: none; }
  .consigna::before { display: none; }
  .contenido a::after { content: " (" attr(href) ")"; font-size: .8em; color: #555; overflow-wrap: anywhere; }
}

/* ------------------------------------------------------------ afinado */
/* vídeo bajo demanda (motor: .x-video): pantalla negra con trama roja */
.contenido .x-video { border-radius: 0; background: var(--negro); border: 3px solid var(--negro); box-shadow: 8px 8px 0 var(--rojo); }
.contenido .x-video::before { color: var(--rojo); background: var(--trama); background-size: 9px 9px; opacity: .35; }
.contenido .x-video-icono { color: var(--rojo); }
.contenido .x-video-texto { font-family: var(--fuente-texto); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-size: .85rem; }
.contenido .x-video-texto small { text-transform: none; letter-spacing: 0; font-weight: 400; }
.contenido .x-video:focus-visible { outline-color: var(--rojo); }
/* cifras */
.sello-fecha, .asamblea-cuenta, .anio-cuenta, .cabecera-lista-cuenta, .paginacion { font-variant-numeric: tabular-nums; }
/* estados */
.boton:active, .boton-icono:active, .lista-temas a:active, .anios a:active, .vecino:active { transform: translate(1px, 1px); }
.pasquin:active { transform: translate(2px, 2px); box-shadow: 4px 4px 0 var(--negro); }
.pasquin-titulo a:focus-visible, .fila-titulo a:focus-visible, .titular-titulo a:focus-visible { outline: none; }
.pasquin:has(a:focus-visible), .fila:has(.fila-titulo a:focus-visible), .titular:has(a:focus-visible) { outline: 3px solid var(--rojo); outline-offset: 4px; }
/* móvil: texto corrido nunca por debajo de 16px */
@media (max-width: 40rem) {
  .pasquin-resumen, .fila-resumen, .consigna-texto, .llamada-texto p, .titular-resumen { font-size: 1rem; }
  .contenido { font-size: 1.0625rem; }
}
@media print {
  .x-video, .consigna::before, .llamada::after { display: none !important; }
  .linea-roja > span, .titulo-bloque span, .error-codigo span { background: none !important; color: #000 !important; box-shadow: none !important; }
}
/* casilla de privacidad: el texto con enlace fluye como un párrafo (la etiqueta del motor es flex) */
.x-contacto .x-acepto label { display: block; position: relative; padding-left: 2em; line-height: 1.5; }
.x-contacto .x-acepto input { position: absolute; left: 0; top: .1em; margin: 0; width: 1.25rem; height: 1.25rem; }
/* figuras anidadas (columnas, grupos): sin el margen lateral de 40px del navegador; vídeos a medida de lectura */
.contenido figure { margin-inline: 0; }
.contenido > figure { margin-inline: auto; }
.contenido figure.video { max-width: 48rem; margin-inline: auto; }
.contenido .seccion:has(> .fila > .columna > figure.video:only-child) { max-width: 48rem; }
@media (max-width: 30rem) { .contenido .x-video-texto { bottom: .6rem; font-size: .8rem; } }
/* titulares en Anton: un punto más de interlínea para las tildes de las mayúsculas */
.fila-titulo, .pasquin-titulo { line-height: 1.15; }
.titular-titulo, .entrada-titulo { line-height: 1.08; }

/* tablas anchas: se desplazan dentro de su marco, nunca columnas de una letra */
.contenido figure.tabla { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.contenido figure.tabla table { min-width: 34rem; }
.contenido figure.tabla td, .contenido figure.tabla th { min-width: 6ch; }

/* =====================================================================================================
   RONDA 3 · sistema visual y móvil
   ===================================================================================================== */
:root {
  --e-1: .25rem; --e-2: .5rem; --e-3: .75rem; --e-4: 1rem; --e-5: 1.5rem; --e-6: 2rem; --e-7: 3rem; --e-8: 4rem; --e-9: 5rem;
  --seccion: clamp(var(--e-7), 6vw, var(--e-9));
  --gutter: 1.25rem;
  --alto-cabecera: 4rem;
}
@media (min-width: 40rem) { :root { --gutter: 2rem; } }
::selection { background: var(--rojo); color: #fff; }
html { scrollbar-color: var(--rojo) var(--negro); accent-color: var(--rojo); }
a { text-underline-offset: .2em; transition: color 160ms ease; }
.boton, .boton-icono, .lista-temas a, .anios a, .vecino, .pasquin, .paginacion a, .asambleas a { transition-duration: 160ms; }

.envoltorio { width: min(100% - 2 * var(--gutter), var(--ancho-amplio)); }
.envoltorio-texto { width: min(100% - 2 * var(--gutter), var(--ancho-texto)); }
.envoltorio-medio { width: min(100% - 2 * var(--gutter), 54rem); }
.entrada-cuerpo, .pagina { width: min(100% - 2 * var(--gutter), var(--ancho-amplio)); }

/* ritmo vertical común */
.bloque, .quienes { padding-top: var(--seccion); }
.franja-negra, .llamada { margin-top: var(--seccion); }
.franja-negra { padding-block: var(--seccion); }
main { padding-bottom: 0; }
.listado, .pagina { padding-bottom: var(--seccion); }

/* etiquetas y metadatos legibles (mínimo 13 px, sin perder el aspecto de sello) */
.etiquetas-cat > span, .etiquetas-cat > a { font-size: .8125rem; letter-spacing: .06em; padding: .2em .55em; }
.fila-autor, .titular-autor { font-size: .9375rem; letter-spacing: .06em; }
.consigna-antetitulo { font-size: .9375rem; letter-spacing: .1em; }
.x-contacto input:not([type=checkbox]), .x-contacto textarea, .x-buscador input { font-size: 1rem; }
@media (max-width: 40rem) {
  .x-contacto .boton, .x-buscador button { width: 100%; justify-content: center; }
  .x-buscador { flex-direction: column; }
  .consigna .botones { flex-direction: column; }
  .consigna .boton { justify-content: center; }
  .asambleas a { font-size: 2.2rem; }
  .pasquin { box-shadow: 6px 6px 0 var(--negro); }
}

/* ---------------------------------------------------------------- cabecera y menú en móvil */
@media (max-width: 65.99rem) {
  .cabecera { position: sticky; top: 0; z-index: 40; }
  .cabecera-fila { min-height: calc(var(--alto-cabecera) - 6px); padding-block: .4rem; }
  .marca-insignia { min-width: 2.6rem; height: 2.6rem; font-size: .95rem; }
  .marca-nombre { font-size: 1.3rem; }
  .marca-subnombre { font-size: .78rem; }
  .boton-icono { width: 2.75rem; height: 2.75rem; }
  .navegacion, .navegacion.abierto { display: block; }
  .navegacion {
    position: fixed; inset: var(--alto-cabecera) 0 0 0; z-index: 39; flex-basis: auto; overflow-y: auto; overscroll-behavior: contain;
    background: var(--negro); padding: var(--e-5) var(--gutter) calc(var(--e-7) + env(safe-area-inset-bottom));
    visibility: hidden; opacity: 0; transition: opacity 160ms ease, visibility 0s linear 160ms;
  }
  .navegacion.abierto { visibility: visible; opacity: 1; transition: opacity 160ms ease, visibility 0s; }
  html.menu-abierto { overflow: hidden; }
  .menu a { min-height: 3.6rem; padding: 0; border-top: 1px solid #2c2a28; font-family: var(--fuente-titulos); font-weight: 400; font-size: 1.9rem; letter-spacing: .01em; }
  .menu a[aria-current] { background: none; color: var(--rojo-claro); }
  .menu a:hover { box-shadow: none; color: var(--rojo-claro); }
}
/* etiquetas de sección en la condensada de rótulos: 15 px sin ocupar más que antes */
.etiquetas-cat > span, .etiquetas-cat > a { font-family: var(--fuente-titulos); font-weight: 400; font-size: .9375rem; line-height: 1.2; letter-spacing: .04em; padding: .15em .5em .1em; }

/* =====================================================================================================
   RONDA 4 · muro de carteles (imágenes reales de las entradas, nunca ampliadas)
   ===================================================================================================== */
.muro { position: relative; overflow: hidden; margin-top: var(--seccion); padding-block: var(--seccion); background: var(--negro); color: var(--papel); }
.muro::before { content: ""; position: absolute; inset: 0; color: #2a2826; background-image: var(--trama); background-size: 9px 9px; opacity: .9; pointer-events: none; }
.muro .envoltorio { position: relative; }
.muro-cabecera { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--e-3) var(--e-6); margin-bottom: var(--e-7); }
.muro-cabecera .titulo-bloque { margin: 0; flex: 1 1 auto; }
.muro-texto { margin: 0; max-width: 28rem; color: rgba(241, 236, 225, .8); }
.muro-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: center; gap: var(--e-7) var(--e-6); }
.muro-item { width: min(var(--ancho), 100%); flex: 0 1 var(--ancho); max-width: calc(50% - var(--e-3)); }
.muro-item:nth-child(3n+1) { transform: rotate(-2deg); }
.muro-item:nth-child(3n+2) { transform: rotate(1.5deg) translateY(1.5rem); }
.muro-item:nth-child(3n) { transform: rotate(-.8deg); }
.muro-item a { display: flex; flex-direction: column; gap: var(--e-3); color: var(--papel); text-decoration: none; }
.muro-cartel { position: relative; display: block; padding: .5rem; background: var(--papel-claro); box-shadow: 6px 6px 0 var(--rojo); transition: transform 160ms ease, box-shadow 160ms ease; }
.muro-cartel::before { content: ""; position: absolute; z-index: 1; top: -.7rem; left: 50%; width: 4.5rem; height: 1.3rem; transform: translateX(-50%) rotate(-4deg); background: rgba(241, 236, 225, .82); box-shadow: 0 1px 2px rgba(0, 0, 0, .25); }
.muro-cartel img { display: block; width: 100%; height: auto; filter: grayscale(.15) contrast(1.05); }
.muro-item a:hover .muro-cartel, .muro-item a:focus-visible .muro-cartel { transform: translate(-3px, -3px); box-shadow: 9px 9px 0 var(--rojo); }
.muro-pie { display: flex; align-items: flex-start; gap: var(--e-3); }
.muro-titulo { font-family: var(--fuente-titulos); font-size: 1.05rem; line-height: 1.15; text-transform: uppercase; letter-spacing: .01em; }
.muro-item a:hover .muro-titulo { color: var(--rojo-claro); }
.sello-mini { flex: none; font-size: .7rem; border-width: 2px; padding: .2rem .35rem; border-color: var(--rojo-claro); color: var(--rojo-claro); }
.sello-mini b { font-size: 1.15rem; }
@media (max-width: 40rem) {
  .muro-lista { gap: var(--e-6) var(--e-4); }
  .muro-item { max-width: calc(50% - var(--e-2)); }
  .muro-item:nth-child(3n+2) { transform: rotate(1.5deg); }
  .muro-titulo { font-size: .9375rem; }
  .sello-mini { display: none; }
}
@media (prefers-reduced-motion: reduce) { .muro-item { transform: none !important; } }
@media print { .muro { display: none; } }
