/*
 * editorial.css — todo el diseño del sitio salvo las tarjetas de entradas
 * (esas están en portada.css). Los colores, tipografías y medidas salen de
 * variables.css: acá casi no hay números sueltos.
 *
 * Está escrito "de celular para arriba": cada regla vale para pantallas
 * angostas, y los @media (min-width: ...) la ajustan para las anchas.
 *
 * ÍNDICE
 *   1. Base: cajas, página, texto, títulos, enlaces
 *   2. Estructura: la tira, el contenedor, el pie siempre abajo
 *   3. Encabezado
 *   4. Piezas que se repiten: antetítulo, nombre de la revista, citas...
 *   5. Una entrada (single.php)
 *   6. Notas al pie y al margen
 *   7. Páginas de pestañas (Políticas, Sobre nosotros, Temas)
 *   8. Convocatoria y Guía para colaborar
 *   9. Páginas comunes, listados y 404
 *  10. Pie de página
 *
 * OJO AL MOVER REGLAS DE LUGAR: cuando dos reglas igual de específicas
 * apuntan al mismo elemento, gana la que viene después. El orden de las
 * secciones no es solo de lectura.
 */


/* ==========================================================================
   1. Base
   ========================================================================== */

/* Que el relleno y el borde de una caja se cuenten DENTRO de su ancho, y no
   sumados: sin esto, cualquier caja con relleno mide más de lo pedido. */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Todo el sitio mide en rem, o sea en proporción a este número: subirlo o
   bajarlo agranda o achica todo el texto de una vez. 106.25% = 17 px. */
html {
	font-size: 106.25%;
	-webkit-text-size-adjust: 100%;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

/* El papel del sitio. Además es una columna flexible: así el pie queda
   siempre abajo de todo aunque la página sea corta (ver #page, más abajo).
   Sin "overflow-x: hidden" a propósito: rompería el encabezado fijo. */
body {
	margin: 0;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	background-color: var(--color-fondo);
	color: var(--color-texto);
	font-family: var(--fuente-cuerpo);
	font-size: var(--tamano-cuerpo);
	line-height: 1.75;
}

/* Todo el texto justificado, sin partir palabras con guiones. Medido en
   escritorio, el espacio más ancho que abre queda en 1.2 veces uno normal. */
p,
blockquote,
li {
	text-align: justify;
	hyphens: manual;
}

/* Salvo en el teléfono: con seis palabras por renglón, justificar abría
   huecos de hasta cuatro espacios. Ahí el margen derecho queda suelto. */
@media (max-width: 640px) {
	p,
	blockquote,
	li {
		text-align: left;
	}
}

h1,
h2,
h3,
h4 {
	font-family: var(--fuente-titulos);
	font-weight: 800;
	text-transform: uppercase;
	line-height: 1.15;
	color: var(--color-texto);
	/* Una sola palabra muy larga ("CONVOCATORIA" en un teléfono) se parte
	   en vez de salirse de la pantalla. */
	overflow-wrap: break-word;
}

h1 { font-size: var(--tamano-h1); }
h2 { font-size: var(--tamano-h2); }
h3 { font-size: var(--tamano-h3); }

/* Sin color de acento, un enlace dentro de un texto se distingue por el
   subrayado. Los componentes que no lo quieren lo apagan por su cuenta. */
a {
	color: var(--color-texto);
	text-decoration: underline;
	text-underline-offset: 0.16em;
	text-decoration-thickness: 1px;
}

a:hover,
a:focus-visible {
	color: var(--color-realce);
}


/* ==========================================================================
   2. Estructura
   ========================================================================== */

/* La tira: la caja central donde vive todo -- encabezado, portada, pie.
   Una sola medida (--ancho-tira) gobierna el ancho de todo el sitio. */
.revista-tira {
	width: 100%;
	max-width: var(--ancho-tira);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--aire-lateral);
	padding-right: var(--aire-lateral);
}

/* El aire entre la última cosa de la página y el pie negro, para que se
   note dónde termina la revista. */
.revista-contenedor {
	width: 100%;
	padding-bottom: clamp(3rem, 6vw, 5.5rem);
}

/* Todo lo que no es el pie crece hasta llenar la pantalla: así el pie queda
   abajo de todo aunque la página sea corta (ver "body", más arriba). */
#page {
	flex: 1 0 auto;
}

/* Un enlace que solo aparece al llegar con el teclado: permite saltarse el
   encabezado e ir directo al contenido. */
.revista-saltar-al-contenido {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000;
	padding: 0.75rem 1.25rem;
	background-color: var(--color-texto);
	color: var(--color-fondo);
	text-decoration: none;
}

.revista-saltar-al-contenido:focus {
	left: 0;
}

/* Texto que no se ve pero los lectores de pantalla sí leen. */
.revista-oculto-visualmente {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}


/* ==========================================================================
   3. Encabezado (header.php)
   ========================================================================== */

/* Una franja negra fija arriba de la pantalla. Los colores se dan vuelta
   redefiniendo las variables acá adentro: todas las reglas que piden
   var(--color-texto) o var(--color-gris) se repintan solas. Los valores son
   los mismos del pie, el otro bloque negro del sitio. */
#masthead {
	--color-fondo: #131313;
	--color-texto: #e7e4dc;
	--color-gris: rgba(231, 228, 220, 0.72);
	--color-realce: #fff;
	--color-borde: rgba(231, 228, 220, 0.22);

	border-top: 3px solid var(--color-texto);
	border-bottom: 1px solid var(--color-borde);
	background-color: var(--color-fondo);
	background-image: var(--textura-grano);
	position: sticky;
	top: 0;
	z-index: 999;
}

/* Con la barra de administración de WordPress (solo la ve quien tiene la
   sesión abierta), el encabezado se pega debajo de ella. */
body.admin-bar #masthead {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar #masthead {
		top: 46px;
	}
}

/* Sin el id (#masthead) a propósito: un id le gana a cualquier clase, y así
   cada pieza del encabezado puede cambiar su propia letra y color. */
.site-header {
	font-family: var(--fuente-cuerpo);
	color: var(--color-texto);
}

.site-header a {
	color: var(--color-texto);
}

/* Tres columnas en retícula: "1fr auto 1fr" deja la del medio centrada de
   verdad en la página, midan lo que midan las de los costados. */
.revista-header__cuadro {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
	min-height: 2.5rem;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

.revista-header__lado {
	display: flex;
	align-items: center;
	min-width: 0;
}

.revista-header__lado--fin {
	justify-content: flex-end;
}

.revista-header__izquierda {
	display: flex;
	align-self: center;
}

/* "simulacro", a la izquierda, enlazado a la portada. */
.revista-header__marca {
	display: inline-block;
	font-family: var(--fuente-titulos);
	font-weight: 800;
	font-size: clamp(1.125rem, 2.4vw, 1.5rem);
	letter-spacing: 0.01em;
	color: var(--color-texto);
	text-decoration: none;
}

/* El centro: Convocatoria, Inicio y Sorpréndeme en una fila. */
.revista-header__centro {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	min-width: 0;
}

.revista-header__opciones {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
}

.revista-header__opcion {
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--fuente-titulos);
	font-weight: 800;
	font-size: 0.625rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--color-texto);
	text-decoration: none;
	text-align: center;
}

/* Subrayado al pasar el cursor, y fijo en la página donde se está (Inicio o
   Convocatoria). Sorpréndeme nunca queda marcado: es una acción, no un
   lugar. */
.revista-header__opcion:hover,
.revista-header__opcion:focus-visible,
.revista-header__opcion.revista-header__opcion--activa {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* La derecha: "sobre nosotros". */
.revista-header__acciones {
	display: flex;
	align-items: center;
	align-self: center;
	justify-content: flex-end;
	gap: 0.85rem;
}

.revista-header__sobre-nosotros {
	font-family: var(--fuente-titulos);
	font-weight: 800;
	font-size: 0.875rem;
	color: var(--color-texto);
	text-decoration: none;
}

.revista-header__sobre-nosotros:hover,
.revista-header__sobre-nosotros:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Hasta 1279 px las tres columnas no entran en una fila: la navegación
   pasa arriba, sola y centrada, y "simulacro" y "sobre nosotros" abajo,
   cada uno con media página. */
@media (max-width: 1279px) {
	.revista-header__cuadro {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		grid-template-areas:
			"centro centro"
			"izquierda acciones";
		row-gap: 0.4rem;
		column-gap: 0.6rem;
	}

	.revista-header__centro {
		grid-area: centro;
		justify-content: center;
		flex-wrap: wrap;
		row-gap: 0.3rem;
	}

	.revista-header__lado {
		grid-area: izquierda;
	}

	.revista-header__lado--fin {
		grid-area: acciones;
	}
}


/* ==========================================================================
   4. Piezas que se repiten
   ========================================================================== */

/* Antetítulo: el rótulo chico que va encima de un título y dice qué se
   está mirando ("Sección", "Legal", "Error 404", la sección de una nota). */
.revista-antetitulo {
	display: inline-block;
	margin: 0 0 0.5rem;
	font-family: var(--fuente-titulos);
	font-weight: 800;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	line-height: 1;
	color: var(--color-gris);
	text-align: left;
}

.revista-antetitulo a {
	color: inherit;
	text-decoration: none;
}

.revista-antetitulo a:hover,
.revista-antetitulo a:focus-visible {
	text-decoration: underline;
}

/* El nombre de la revista escrito dentro de un texto
   (<span class="revista-marca">simulacro</span>): en la letra de los
   títulos, en mayúsculas y en negrita. Las mayúsculas las pone el CSS y no
   el texto, para que un lector de pantalla lo lea como palabra y no lo
   deletree. */
.revista-marca {
	font-family: var(--fuente-titulos);
	text-transform: uppercase;
	font-weight: 800;
}

/* Un título con una línea a cada lado ("También te puede interesar"). */
.revista-titulo-seccion {
	display: flex;
	align-items: center;
	gap: 1rem;
	justify-content: center;
}

.revista-titulo-seccion::before,
.revista-titulo-seccion::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--color-borde);
}

/* Una cita destacada dentro de un texto (<blockquote>). */
blockquote {
	font-family: var(--fuente-titulos);
	font-style: italic;
	font-size: var(--tamano-cita);
	line-height: 1.4;
	color: var(--color-texto);
	border-left: 3px solid var(--color-gris);
	margin: var(--espaciado-seccion) 0;
	padding: 0.25rem 0 0.25rem 1.5rem;
}

/* El pie de una foto con leyenda. */
figcaption {
	font-family: var(--fuente-cuerpo);
	font-size: var(--tamano-pie-foto);
	color: var(--color-gris);
	margin-top: 0.5rem;
}

/* El botón negro ("Volver a portada", en la página 404). */
.revista-boton {
	display: inline-block;
	margin-top: 1rem;
	padding: 0.75rem 1.75rem;
	background-color: var(--color-texto);
	color: var(--color-fondo) !important;
	font-family: var(--fuente-cuerpo);
	font-weight: 600;
	text-decoration: none;
	border-radius: 2px;
	transition: opacity 0.2s ease;
}

.revista-boton:hover {
	opacity: 0.85;
}


/* ==========================================================================
   5. Una entrada (single.php)
   ========================================================================== */

/* El texto de la nota: una columna centrada, al ancho cómodo de lectura.
   "position: relative" es el ancla de las notas al margen (sección 6), y el
   contador numera sus marcas. */
.entry-content {
	max-width: var(--ancho-maximo-lectura);
	margin-left: auto;
	margin-right: auto;
	position: relative;
	counter-reset: footnotes;
}

/* Adentro de una entrada los títulos van un escalón más chicos que en el
   resto del sitio: conviven con el texto y no anuncian una sección. */
.revista-articulo__header h1 {
	font-size: clamp(2.25rem, 5vw, 3.25rem);
}

.entry-content h2 {
	font-size: clamp(1.625rem, 3.4vw, 2.125rem);
}

.entry-content h3 {
	font-size: clamp(1.3125rem, 2.5vw, 1.5rem);
}

.entry-content h4 {
	font-size: 1.125rem;
}

.revista-relacionadas .revista-titulo-seccion {
	font-size: clamp(1.5rem, 3vw, 2rem);
	letter-spacing: 0.08em;
}

/* Arriba de todo, solo el título. */
.revista-articulo__header {
	text-align: center;
	max-width: var(--ancho-maximo-lectura);
	margin: 0 auto;
	padding: clamp(1rem, 2.5vw, 1.75rem) 1rem 0.5rem;
}

/* La imagen, al mismo ancho que el texto. "position: relative" ancla el
   aviso de spoilers a esta caja. */
.revista-articulo__imagen {
	position: relative;
	max-width: var(--ancho-maximo-lectura);
	margin: 0 auto 2rem;
	padding: 0 1rem;
}

.revista-articulo__imagen img {
	width: 100%;
	height: auto;
}

/* El aviso de spoilers (diseño en portada.css) queda sobre la foto y no
   sobre el relleno de 1rem que tiene esta caja a los costados. */
.revista-articulo__imagen .revista-spoilers {
	left: calc(1rem + 0.75rem);
}

/* Debajo de la imagen: sección · fecha · tiempo de lectura. */
.revista-articulo__pie-datos {
	max-width: var(--ancho-maximo-lectura);
	margin: 0 auto 0.75rem;
	padding: 0 1rem;
	color: var(--color-gris);
	font-size: 0.875rem;
	text-align: center;
}

.revista-articulo__pie-datos .revista-antetitulo {
	margin: 0;
}

/* La firma: mismo trato que la línea de arriba. */
.revista-articulo__autor {
	max-width: var(--ancho-maximo-lectura);
	margin: 0 auto 1.5rem;
	padding: 0 1rem;
	color: var(--color-gris);
	font-size: 0.875rem;
	text-align: center;
}

.revista-articulo__autor a {
	color: inherit;
}

/* Sin autor cargado, firma la revista: "simulacro" en negrita y minúscula,
   con la letra del nombre del encabezado. */
.revista-articulo__firma-revista {
	font-family: var(--fuente-titulos);
	font-weight: 800;
	color: var(--color-texto);
}

/* La invitación a escribir, al final de cada entrada: un llamado aparte, en
   la letra de los títulos, entre dos líneas. */
.revista-invitacion {
	max-width: var(--ancho-maximo-lectura);
	margin: var(--espaciado-seccion) auto 0;
	padding: 1.5rem 1rem;
	border-top: 1px solid var(--color-borde);
	color: var(--color-texto);
	font-family: var(--fuente-titulos);
	font-weight: 800;
	text-transform: uppercase;
	font-size: clamp(1.0625rem, 1.8vw, 1.35rem);
	line-height: 1.6;
	text-align: center;
}

.revista-invitacion__correo {
	display: block;
	margin-top: 0.75rem;
	font-size: 1.0625rem;
}

/* "También te puede interesar". */
.revista-relacionadas {
	max-width: var(--ancho-maximo-seccion);
	margin: 0 auto;
	padding: var(--espaciado-seccion) 1rem;
}


/* ==========================================================================
   6. Notas al pie y al margen
   ==========================================================================

   Quien escribe agrega una nota con "Nota al pie" en el editor de
   WordPress: queda una marca en el texto (<a class="fn" data-fn="...">) y,
   al final, la lista de notas. El número de cada marca no lo escribe nadie:
   lo cuenta el CSS, así que agregar o borrar una nota corre la numeración
   sola.

   Sin JavaScript, las notas quedan al final, como toda la vida. Con
   JavaScript, assets/js/notas-margen.js le pone a .entry-content una de dos
   clases según el ancho de pantalla:

     .revista-notas-en-margen     pantalla ancha: cada nota va al margen,
                                  a la altura de su marca, alternando
                                  izquierda y derecha;
     .revista-notas-desplegables  pantalla angosta: tocar la marca despliega
                                  la nota debajo del párrafo.

   (WordPress trae su propio CSS para esto, pero el tema lo apaga junto con
   el resto del CSS de bloques -- ver inc/configuracion.php.) */

.entry-content a.fn {
	counter-increment: footnotes;
	text-decoration: none;
	color: var(--color-gris);
	font-weight: 700;
	/* El texto real del enlace se esconde; en su lugar se dibuja el número. */
	font-size: 0;
}

.entry-content a.fn::after {
	content: "[" counter(footnotes) "]";
	font-size: 0.75rem;
	vertical-align: super;
}

.entry-content a.fn:hover,
.entry-content a.fn:focus-visible {
	color: var(--color-texto);
}

.entry-content .wp-block-footnotes {
	margin-top: var(--espaciado-seccion);
	padding-top: 1.5rem;
	border-top: 1px solid var(--color-borde);
	font-size: var(--tamano-pie-foto);
	color: var(--color-gris);
}

.entry-content .wp-block-footnotes li {
	margin-bottom: 0.5rem;
}

.entry-content .wp-block-footnotes a {
	color: inherit;
}

/* En los dos modos con JavaScript, la lista del final sobra: las notas ya
   se leen al lado o debajo de su marca. */
.revista-notas-en-margen .wp-block-footnotes,
.revista-notas-desplegables .wp-block-footnotes {
	display: none;
}

/* Modo margen. 12rem de nota + 1.75rem de aire tienen que entrar en cada
   margen: ANCHO_MINIMO_MARGEN, en notas-margen.js, es la cuenta de cuándo
   entran. Si se cambia uno, hay que cambiar el otro. */
.revista-nota {
	position: absolute;
	width: 12rem;
	font-family: var(--fuente-cuerpo);
	font-size: var(--tamano-pie-foto);
	line-height: 1.5;
	color: var(--color-gris);
	text-align: left;
}

.revista-nota--izquierda {
	right: 100%;
	margin-right: 1.75rem;
}

.revista-nota--derecha {
	left: 100%;
	margin-left: 1.75rem;
}

.revista-nota__numero {
	font-weight: 700;
	color: var(--color-texto);
	margin-right: 0.25em;
}

/* Modo desplegable. */
.revista-notas-desplegables a.fn {
	cursor: pointer;
}

.revista-nota-desplegable {
	display: block;
	margin: 0.75rem 0;
	padding: 0.75rem 1rem;
	border-left: 2px solid var(--color-gris);
	background-color: var(--color-fondo-alt);
	font-family: var(--fuente-cuerpo);
	font-size: var(--tamano-pie-foto);
	line-height: 1.5;
	color: var(--color-gris);
}

/* El script la abre y la cierra con el atributo "hidden"; sin esta regla,
   el "display: block" de arriba le ganaba y no se cerraba nunca. */
.revista-nota-desplegable[hidden] {
	display: none;
}


/* ==========================================================================
   7. Páginas de pestañas (template-parts/pestanas.php)
   ========================================================================== */

.revista-pestanas__cabecera {
	padding: var(--aire-seccion) 0 1.5rem;
	border-bottom: 1px solid var(--color-borde);
}

.revista-pestanas__titulo {
	margin: 0.4rem 0 0;
	font-size: clamp(1.625rem, 3.6vw, 2.375rem);
	line-height: 1.05;
}

/* Una fila de nombres; la elegida, con una raya debajo. */
.revista-pestanas__lista {
	display: flex;
	flex-wrap: wrap;
	column-gap: 2rem;
	padding-top: 1.25rem;
	border-bottom: 1px solid var(--color-borde);
}

/* Cada pestaña es un <button> de verdad: se puede elegir con el teclado y
   los lectores de pantalla la anuncian como lo que es. */
.revista-pestanas__boton {
	padding: 0 0 0.7rem;
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	/* La raya de la elegida se apoya sobre la línea de la fila. */
	margin-bottom: -1px;
	cursor: pointer;
	font-family: var(--fuente-titulos);
	font-weight: 800;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-gris);
	transition: color 0.15s ease, border-color 0.15s ease;
}

.revista-pestanas__boton:hover {
	color: var(--color-texto);
}

.revista-pestanas__boton.es-activa {
	color: var(--color-texto);
	border-bottom-color: var(--color-texto);
}

.revista-pestanas__panel {
	margin: var(--aire-seccion) 0 var(--espaciado-seccion);
}

/* Los subtítulos que vienen del editor: apenas más grandes que el texto. */
.revista-pestanas__texto h2,
.revista-pestanas__texto h3,
.revista-pestanas__texto h4 {
	font-size: 1.0625rem;
	margin: 1.75rem 0 0.5rem;
}

.revista-pestanas__texto a {
	color: var(--color-texto);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.revista-pestanas__texto ul {
	padding-left: 1.25rem;
}

.revista-pestanas__vacio {
	margin: var(--aire-seccion) 0 var(--espaciado-seccion);
}

/* Toda la página al ancho cómodo de lectura, centrada: sin tope, a 1920 px
   un renglón llegaba a 167 caracteres (lo cómodo son 45 a 75). Esta regla
   va después de las de arriba a propósito: les corrige los márgenes de los
   costados. */
.revista-pestanas__cabecera,
.revista-pestanas__lista,
.revista-pestanas__panel,
.revista-pestanas__vacio {
	max-width: var(--ancho-maximo-lectura);
	margin-left: auto;
	margin-right: auto;
}

/* En pantalla angosta las pestañas no entran en una fila: se apilan, una
   por renglón, separadas por una línea fina. */
@media (max-width: 700px) {
	.revista-pestanas__lista {
		display: block;
		padding-top: 0.5rem;
		border-bottom: 0;
	}

	.revista-pestanas__boton {
		display: block;
		width: 100%;
		text-align: left;
		padding: 0.7rem 0;
		margin-bottom: 0;
		border-bottom: 1px solid var(--color-borde);
	}

	.revista-pestanas__boton.es-activa {
		border-bottom-color: var(--color-texto);
	}
}


/* ==========================================================================
   8. Convocatoria y Guía para colaborar
   ==========================================================================

   Las dos páginas tienen la misma forma -- cabecera, una bajada y un
   listado de tipos de escrito agrupados -- y comparten las clases
   .revista-guia__* y .revista-convocatoria__*. Las diferencias:

     Convocatoria  cada grupo es una fila de dos columnas: las definiciones
                   en un párrafo corrido (__parrafo) y las obras
                   recomendadas al lado (__recomendaciones).
     Guía          los grupos se reparten en dos columnas (__columnas), y
                   cada tipo de escrito es un ítem de lista.

   El ritmo vertical lo dan los márgenes de los títulos, no cajas con
   márgenes propios: cada página se lee como un solo documento. */

.revista-convocatoria__tipos {
	line-height: 1.6;
}

/* El nombre de cada tipo de escrito, en mayúsculas (por CSS, para que el
   texto siga siendo fácil de editar y un lector de pantalla lo lea bien). */
.revista-convocatoria__tipo {
	text-transform: uppercase;
}

/* Guía: los grupos en dos columnas (desde 900 px, ver el @media del final
   de esta sección). Ningún grupo se parte entre una columna y otra. */
.revista-convocatoria__columnas {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem 3rem;
	align-items: start;
}

/* El título de cada grupo (Ficción histórica, Fantasía; Ensayo, Crítica...). */
.revista-convocatoria__grupo {
	font-size: 1.125rem;
	color: var(--color-texto);
	letter-spacing: 0.06em;
	margin: 0 0 0.75rem;
	/* Que un título nunca quede solo al pie de una columna. */
	break-after: avoid;
}

.revista-convocatoria__bloque {
	margin-bottom: 1.5rem;
}

.revista-convocatoria__bloque:last-child {
	margin-bottom: 0;
}

.revista-convocatoria__ancho-lectura {
	max-width: var(--ancho-maximo-lectura);
}

/* Convocatoria: la fila de definiciones + recomendaciones. Se reparten el
   ancho según --fila-definicion (cuánto más ancha es la de definiciones);
   cada fila de page-convocatoria.php trae su propio número para que las
   dos columnas terminen a la misma altura. */
.revista-convocatoria__fila {
	display: flex;
	align-items: flex-start;
	gap: 2.5rem;
	--fila-definicion: 1;
	--fila-recomendaciones: 1;
}

/* "margin: 0" para que las dos columnas arranquen a la misma altura (un
   <p> trae margen de fábrica; el <div> de al lado, no). */
.revista-convocatoria__fila > .revista-convocatoria__parrafo {
	flex: var(--fila-definicion) 1 0;
	min-width: 0;
	margin: 0;
}

/* Convocatoria: el título de cada grupo, centrado sobre su fila. */
.revista-convocatoria__tipos > .revista-convocatoria__bloque > .revista-convocatoria__grupo,
.revista-convocatoria__tipos > .revista-convocatoria__bloque > .revista-convocatoria__subtitulo {
	text-align: center;
}

.revista-convocatoria__tipos > .revista-convocatoria__bloque > .revista-convocatoria__grupo {
	margin-bottom: 0.5rem;
}

/* Las recomendaciones: una nota al costado, más chica y en gris. */
.revista-convocatoria__recomendaciones {
	flex: var(--fila-recomendaciones) 1 0;
	min-width: 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--color-gris);
}

.revista-convocatoria__recomendaciones p {
	margin: 0;
	text-align: justify;
}

/* El término, en la misma letra que en la definición de al lado (para
   emparejarlos de un vistazo) pero sin mayúsculas y en gris. */
.revista-convocatoria__recomendaciones .revista-convocatoria__tipo {
	font-family: var(--fuente-titulos);
	text-transform: none;
	color: inherit;
}

/* Por debajo de 1200 px no hay ancho para dos columnas: se apilan, y cada
   una queda centrada al ancho de lectura. */
@media (max-width: 1199px) {
	.revista-convocatoria__fila {
		flex-direction: column;
		gap: 0.5rem;
	}

	.revista-convocatoria__fila > .revista-convocatoria__parrafo,
	.revista-convocatoria__recomendaciones {
		max-width: var(--ancho-maximo-lectura);
		margin-left: auto;
		margin-right: auto;
	}
}

.revista-guia__cabecera {
	max-width: var(--ancho-maximo-seccion);
	margin: 0 auto;
	padding: var(--aire-seccion) 1rem 0;
}

/* El h1 no lleva margen propio: el relleno de la cabecera ya es el aire. */
.revista-guia__cabecera h1 {
	margin: 0;
}

/* En Convocatoria el título va al tamaño de las otras páginas de cabecera
   simple (pestañas, listados); en la Guía, al grande de siempre. */
.revista-convocatoria__titulo {
	font-size: clamp(1.625rem, 3.6vw, 2.375rem);
}

/* La bajada: al ancho de lectura en la Guía, a todo el ancho en
   Convocatoria. */
.revista-guia__texto {
	max-width: var(--ancho-maximo-lectura);
	margin: 1rem auto 0;
	padding: 0 1rem;
}

.revista-guia__texto.revista-convocatoria__texto {
	max-width: var(--ancho-maximo-seccion);
}

.revista-guia__tipos {
	max-width: var(--ancho-maximo-seccion);
	margin: 0 auto;
	padding: 0 1rem var(--aire-seccion);
}

/* El escalón más alto dentro del listado: "Modos y tipos de escritos" en la
   Guía. El primero, pegado a la bajada, lleva menos aire arriba. */
.revista-guia__subtitulo {
	font-size: clamp(1.5rem, 3vw, 2rem);
	margin: 2.5rem 0 1rem;
}

.revista-guia__subtitulo:first-child {
	margin-top: 1.5rem;
}

/* En Convocatoria esos mismos h2 (Subgéneros narrativos, Formatos de
   autor...) están al mismo nivel que los grupos, así que miden lo mismo que
   ellos. Tiene que ir después de .revista-guia__subtitulo. */
.revista-convocatoria__subtitulo {
	font-size: 1.125rem;
	letter-spacing: 0.06em;
	margin: 1.25rem 0 0.5rem;
}

.revista-convocatoria__tipos > .revista-convocatoria__bloque:first-child {
	margin-top: 1.5rem;
}

/* El aire de adentro de cada bloque de Convocatoria. */
.revista-convocatoria__bloque > p,
.revista-convocatoria__bloque > .revista-convocatoria__fila {
	margin: 0 0 1rem;
}

/* Justificado también en el teléfono: es un párrafo largo y corrido. */
.revista-convocatoria__parrafo {
	text-align: justify;
}

.revista-convocatoria__parrafo .revista-convocatoria__tipo {
	font-family: var(--fuente-titulos);
}

.revista-guia__tipos .revista-convocatoria__columna {
	font-size: 1rem;
}

.revista-guia__volver {
	max-width: var(--ancho-maximo-seccion);
	margin: 0 auto;
	padding: 0 1rem var(--aire-seccion);
	text-align: left;
}

/* Guía: las listas de tipos de escrito. En bloque y no en flex, para que
   se puedan repartir entre columnas. */
.revista-convocatoria__tipos ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Un ítem nunca se parte a mitad de la definición. */
.revista-convocatoria__tipos li {
	margin-bottom: 0.6rem;
	break-inside: avoid;
	text-align: justify;
}

.revista-convocatoria__tipos li:last-child {
	margin-bottom: 0;
}

@media (min-width: 900px) {
	.revista-convocatoria__columnas {
		grid-template-columns: 1fr 1fr;
	}
}


/* ==========================================================================
   9. Páginas comunes (page.php), listados y 404
   ========================================================================== */

.revista-pagina__cabecera {
	max-width: var(--ancho-maximo-seccion);
	margin: 0 auto;
	padding: var(--espaciado-seccion) 1rem 0;
}

.revista-pagina__texto {
	margin: 2rem auto 0;
	padding: 0 1rem var(--espaciado-seccion);
}

/* Los listados (una sección, una búsqueda): el ancho y el aire de los
   costados ya los pone .revista-tira. */
.revista-listado__cabecera {
	padding: var(--aire-seccion) 0 1.5rem;
	border-bottom: 1px solid var(--color-borde);
	margin-bottom: var(--aire-seccion);
}

.revista-listado__titulo {
	margin: 0.4rem 0 0;
	font-size: clamp(1.625rem, 3.6vw, 2.375rem);
	line-height: 1.05;
}

.revista-listado__descripcion {
	margin-top: 0.85rem;
	max-width: var(--ancho-maximo-lectura);
	color: var(--color-gris);
}

.revista-listado__vacio {
	max-width: var(--ancho-maximo-lectura);
	margin: 0 auto;
	padding: var(--espaciado-seccion) 1rem;
}

/* La paginación (las clases las pone WordPress). */
.revista-listado .navigation.pagination {
	padding: var(--aire-seccion) 0;
}

.revista-listado .nav-links {
	display: flex;
	gap: 0.75rem;
	justify-content: center;
}

.revista-listado .page-numbers {
	font-family: var(--fuente-titulos);
	padding: 0.4rem 0.8rem;
	border: 1px solid var(--color-borde);
	text-decoration: none;
	color: var(--color-texto);
}

.revista-listado .page-numbers.current {
	background-color: var(--color-texto);
	border-color: var(--color-texto);
	color: var(--color-fondo);
}

/* La página de "no encontrado". */
.revista-404 {
	max-width: var(--ancho-maximo-lectura);
	margin: 0 auto;
	padding: var(--espaciado-seccion) 1rem;
	text-align: center;
}

.revista-404__texto {
	max-width: 32rem;
	margin: 1rem auto 2rem;
	color: var(--color-gris);
	text-align: center;
}


/* ==========================================================================
   10. Pie de página (footer.php)
   ========================================================================== */

/* Un bloque negro, con los colores dados vuelta igual que el encabezado
   (ver #masthead). No lleva línea arriba: el cambio de color ya separa. */
.revista-pie {
	--color-fondo: #131313;
	--color-texto: #e7e4dc;
	--color-gris: rgba(231, 228, 220, 0.72);
	--color-realce: #fff;
	--color-borde: rgba(231, 228, 220, 0.22);

	flex-shrink: 0;
	background-color: var(--color-fondo);
	background-image: var(--textura-grano);
	color: var(--color-texto);
	padding: 0.9rem var(--aire-lateral) 2rem;
}

/* Arriba: la palabra a la izquierda, las columnas a la derecha (en celular,
   una debajo de la otra). Al mismo ancho que el resto del sitio. */
.revista-pie__arriba {
	max-width: var(--ancho-tira);
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.revista-pie__marca {
	display: flex;
}

/* "simulacro", con la misma letra que en el encabezado pero más grande. */
.revista-pie__palabra {
	margin: 0;
	font-family: var(--fuente-titulos);
	font-weight: 800;
	font-size: clamp(1.75rem, 4.5vw, 2.5rem);
	line-height: 1;
	letter-spacing: 0.01em;
	color: var(--color-texto);
}

/* Redes y Legal, lado a lado ya desde el celular. */
.revista-pie__columnas {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2rem;
	text-align: center;
}

/* Redes se dibuja a la izquierda, aunque en el HTML vaya después de Legal.
   "order" solo mueve lo que se ve: un lector de pantalla sigue leyendo
   Legal primero. */
.revista-pie__columnas > [aria-label="Redes"] {
	order: -1;
}

/* En celular Legal es una sola pila (sus dos columnas una arriba de la
   otra): a la mitad de la mitad de un teléfono no entraría ni "Política de
   datos". Desde 700 px se abre en dos columnas (ver el @media). */
.revista-pie__legal {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 0;
}

/* "min-width: 0" y "stretch" hacen falta para que el correo, que no tiene
   espacios donde partirse, se parta adentro de su columna en vez de
   salirse. */
.revista-pie__col {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.5rem;
	min-width: 0;
}

.revista-pie__red {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-width: 0;
}

.revista-pie__red svg {
	flex: 0 0 auto;
}

/* Los enlaces, en gris (el papel al 72%) y no en el claro pleno: son datos
   secundarios; la marca "simulacro" es lo único al 100%. Los íconos toman
   el mismo color ("currentColor" en el SVG). */
.revista-pie__col a {
	font-family: var(--fuente-titulos);
	font-weight: 800;
	font-size: var(--tamano-pie-foto);
	color: var(--color-gris);
	text-decoration: none;
	line-height: 1.5;
	margin: 0;
}

.revista-pie__texto-red {
	min-width: 0;
	overflow-wrap: break-word;
}

.revista-pie__col a:hover,
.revista-pie__col a:focus-visible {
	color: var(--color-realce);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Abajo: la línea divisoria y los derechos. */
.revista-pie__abajo {
	max-width: var(--ancho-tira);
	margin: 1.25rem auto 0;
	padding-top: 1.5rem;
	border-top: 1px solid var(--color-borde);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.revista-pie__derechos {
	font-family: var(--fuente-titulos);
	font-weight: 800;
	font-size: var(--tamano-pie-foto);
	text-align: center;
	color: var(--color-gris);
}

/* Desde 700 px: la palabra a la izquierda y, en todo el espacio que queda
   hasta el margen derecho, tres columnas iguales -- Redes y las dos de
   Legal. */
@media (min-width: 700px) {
	.revista-pie__arriba {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
	}

	.revista-pie__columnas {
		grid-template-columns: 1fr 1fr 1fr;
		gap: 2rem;
		flex: 1 1 auto;
	}

	/* Legal ocupa dos de las tres columnas y se parte adentro en dos, con
	   el mismo espacio entre ellas que la retícula de afuera: así las tres
	   miden exactamente lo mismo. */
	.revista-pie__legal {
		grid-column: span 2;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 2rem;
	}

	.revista-pie__abajo {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}
