/*
Theme Name: FRLH
Description: Tema hijo de GeneratePress para la Fundación Rafael de La-Hoz. Tokens (paleta V5, DM Sans, escala y retícula 1,307) en theme.json.
Author: Fundación Rafael de La-Hoz
Template: generatepress
Version: 0.2.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: frlh
*/

/*
 * Todo sale de theme.json; aquí no hay colores ni tamaños literales.
 *   colores      --wp--preset--color--{azul|rojo|gris|negro|beige|gris-claro|blanco}
 *   tamaños      --wp--preset--font-size--{base|m|l|xl|xxl|xxxl}
 *   espaciados   --wp--preset--spacing--{10…70}  (en filas)
 *   custom       --wp--custom--{proporcion|fila|foco}, --wp--custom--interlineado--*, --wp--custom--reticula--*
 *   maqueta      --wp--style--global--content-size / --wp--style--global--wide-size
 * Cortes: S < 37.5em · M 37.5em–63.99em · L ≥ 64em.
 * Rojo: solo texto grande (≥24 px, o ≥18,7 px en negrita), el símbolo, y fondo del pie y del botón Colabora.
 * Sobre rojo, texto blanco (3,7:1): pie a 18,3 px (font-size--sobre-rojo) en 400 y Colabora en base y 600.
 * No llega a AA en texto normal: excepción aceptada por Mencey el 5 oct 2026, solo en el pie y en Colabora
 * (registrada en auditoria-contraste.js).
 * Azul: solo lo que se pulsa (enlaces, enlace con flecha, botones principal y de contorno, foco);
 * nunca fondo ni texto. Excepción: la retícula visible y la línea de la cabecera compacta (azul al 12 %).
 * Beige: solo huecos de imagen y bordes de tabla. Gris claro: fondo de superficie y tesela.
 */

/*
 * Retícula anclada a la mayúscula (lote 2). La media caja (mc) es la altura de mayúscula de un paso de la
 * escala: mc = 0,7 × 16 × 1,307ⁿ (0,7 = custom.fuente.mayuscula; valores en custom.mc). La celda mide 2 mc de
 * alto y, de ancho, 2 mc × 1,307 en horizontal (desde 600 px) o 2 mc / 1,307 en vertical (por debajo).
 * La retícula va por tramos y centrada; los márgenes absorben la diferencia (margen: 6vw, o lo que quede).
 *
 *   < 600 px        vertical, n = 3     celdas de 38,26 × 50 que quepan (9 a 390 px, 8 a 360 px), margen mínimo
 *   600 – 679       8 horizontales, n = 3       523 px
 *   680 – 776       8 horizontales, n = 3,5     598 px
 *   777 – 1023      8 horizontales, n = 4       683 px
 *   1024 – 1164     12 horizontales, n = 3,5    897 px
 *   1165 – 1331     12 horizontales, n = 4      1025 px
 *   ≥ 1332          12 horizontales, n = 4,5    1172 px
 *
 * Tamaños de texto por tramo: el de hoy a 1440 px en n = 4,5, medio paso menos por cada −0,5 de n, sin bajar
 * del valor móvil. El H1 es 16 × 1,307ⁿ (su mayúscula mide exactamente 1 mc) y el lema (token «titular»), 2 × H1
 * desde 600 px y H1 por debajo. Todo cuelga de --frlh-mc: nada se calcula en JS.
 */
@property --frlh-mc {
	syntax: "<length>";
	inherits: true;
	initial-value: 0px;
}

@property --frlh-celda {
	syntax: "<length>";
	inherits: true;
	initial-value: 0px;
}

@property --frlh-h1 {
	syntax: "<length>";
	inherits: true;
	initial-value: 0px;
}

body {
	--frlh-mc: var(--wp--custom--mc--minimo);
	--frlh-alto: calc(2 * var(--frlh-mc));
	--frlh-celda-alto: var(--frlh-alto);
	/* Aire bajo el último elemento de las cabeceras con retícula: 2 filas de celdas (4 mc). */
	--frlh-cabecera-aire: calc(2 * var(--frlh-celda-alto));
	--frlh-boton: calc(2 * var(--frlh-mc));
	--frlh-celda: calc(var(--frlh-alto) / var(--wp--custom--proporcion));
	--frlh-ancho: round(down, calc(100cqw - 2 * 1.307rem), var(--frlh-celda));
	--frlh-pistas: repeat(auto-fill, minmax(calc(var(--frlh-celda) - 0.5px), 1fr));
	--frlh-h1: 2.23268rem;
	--frlh-lema: var(--frlh-h1);
	--wp--preset--font-size--m: 1.14324rem;
	--wp--preset--font-size--l: 1.30700rem;
	--wp--preset--font-size--xl: 1.70825rem;
	--wp--preset--font-size--xxl: 2.23268rem;
	--wp--preset--font-size--xxxl: 2.55249rem;
	--wp--preset--font-size--titular: var(--frlh-lema);
	--wp--custom--reticula--margen: 1.307rem;
	--wp--style--global--wide-size: var(--frlh-ancho);
	--wp--style--global--content-size: var(--frlh-ancho);
	/* Ancho de una columna de la retícula (pieza de una celda menos el medianil). Obsoleto: ver --frlh-celda. */
	--frlh-columna: calc(var(--frlh-celda) - var(--wp--custom--reticula--medianil));
}

/* 600 px · 8 celdas · n = 3 */
@media (min-width: 37.5em) {
	body {
		--frlh-mc: var(--wp--custom--mc--minimo);
		--frlh-boton: calc(var(--frlh-mc) * var(--wp--custom--proporcion) * var(--wp--custom--proporcion));
		--frlh-celda: calc(var(--frlh-alto) * var(--wp--custom--proporcion));
		--frlh-columnas: 8;
		--frlh-ancho: calc(var(--frlh-columnas) * var(--frlh-celda));
		--frlh-pistas: repeat(var(--frlh-columnas), minmax(0, 1fr));
		--frlh-h1: 2.23268rem;
		--frlh-lema: calc(2 * var(--frlh-h1));
		--wp--preset--font-size--m: 1.14324rem;
		--wp--preset--font-size--l: 1.30700rem;
		--wp--preset--font-size--xl: 1.70825rem;
		--wp--preset--font-size--xxl: 2.23268rem;
		--wp--preset--font-size--xxxl: 2.55249rem;
		--wp--custom--reticula--margen: max(0px, min(clamp(1.307rem, 6vw, 5.228rem), calc((100cqw - var(--frlh-ancho)) / 2)));
		--wp--style--global--content-size: var(--frlh-ancho);
	}
}

/* 680 px · 8 celdas · n = 3,5 */
@media (min-width: 42.5em) {
	body {
		--frlh-mc: var(--wp--custom--mc--estrecho);
		--frlh-boton: calc(var(--frlh-mc) * var(--wp--custom--proporcion) * var(--wp--custom--proporcion));
		--frlh-celda: calc(var(--frlh-alto) * var(--wp--custom--proporcion));
		--frlh-columnas: 8;
		--frlh-ancho: calc(var(--frlh-columnas) * var(--frlh-celda));
		--frlh-pistas: repeat(var(--frlh-columnas), minmax(0, 1fr));
		--frlh-h1: 2.55249rem;
		--frlh-lema: calc(2 * var(--frlh-h1));
		--wp--preset--font-size--m: 1.14324rem;
		--wp--preset--font-size--l: 1.30700rem;
		--wp--preset--font-size--xl: 1.70825rem;
		--wp--preset--font-size--xxl: 2.23268rem;
		--wp--preset--font-size--xxxl: 2.91811rem;
		--wp--custom--reticula--margen: max(0px, min(clamp(1.307rem, 6vw, 5.228rem), calc((100cqw - var(--frlh-ancho)) / 2)));
		--wp--style--global--content-size: var(--frlh-ancho);
	}
}

/* 777 px · 8 celdas · n = 4 */
@media (min-width: 48.5625em) {
	body {
		--frlh-mc: var(--wp--custom--mc--medio);
		--frlh-boton: calc(var(--frlh-mc) * var(--wp--custom--proporcion));
		--frlh-celda: calc(var(--frlh-alto) * var(--wp--custom--proporcion));
		--frlh-columnas: 8;
		--frlh-ancho: calc(var(--frlh-columnas) * var(--frlh-celda));
		--frlh-pistas: repeat(var(--frlh-columnas), minmax(0, 1fr));
		--frlh-h1: 2.91811rem;
		--frlh-lema: calc(2 * var(--frlh-h1));
		--wp--preset--font-size--m: 1.14324rem;
		--wp--preset--font-size--l: 1.49422rem;
		--wp--preset--font-size--xl: 1.95294rem;
		--wp--preset--font-size--xxl: 2.55249rem;
		--wp--preset--font-size--xxxl: 3.33611rem;
		--wp--custom--reticula--margen: max(0px, min(clamp(1.307rem, 6vw, 5.228rem), calc((100cqw - var(--frlh-ancho)) / 2)));
		--wp--style--global--content-size: var(--frlh-ancho);
	}
}

/* 1024 px · 12 celdas · n = 3,5 */
@media (min-width: 64em) {
	body {
		--frlh-mc: var(--wp--custom--mc--estrecho);
		--frlh-boton: calc(var(--frlh-mc) * var(--wp--custom--proporcion) * var(--wp--custom--proporcion));
		--frlh-celda: calc(var(--frlh-alto) * var(--wp--custom--proporcion));
		--frlh-columnas: 12;
		--frlh-ancho: calc(var(--frlh-columnas) * var(--frlh-celda));
		--frlh-pistas: repeat(var(--frlh-columnas), minmax(0, 1fr));
		--frlh-h1: 2.55249rem;
		--frlh-lema: calc(2 * var(--frlh-h1));
		--wp--preset--font-size--m: 1.14324rem;
		--wp--preset--font-size--l: 1.30700rem;
		--wp--preset--font-size--xl: 1.70825rem;
		--wp--preset--font-size--xxl: 2.23268rem;
		--wp--preset--font-size--xxxl: 2.91811rem;
		--wp--custom--reticula--margen: max(0px, min(clamp(1.307rem, 6vw, 5.228rem), calc((100cqw - var(--frlh-ancho)) / 2)));
		--wp--style--global--content-size: calc(7 * var(--frlh-celda));
	}
}

/* 1165 px · 12 celdas · n = 4 */
@media (min-width: 72.8125em) {
	body {
		--frlh-mc: var(--wp--custom--mc--medio);
		--frlh-boton: calc(var(--frlh-mc) * var(--wp--custom--proporcion));
		--frlh-celda: calc(var(--frlh-alto) * var(--wp--custom--proporcion));
		--frlh-columnas: 12;
		--frlh-ancho: calc(var(--frlh-columnas) * var(--frlh-celda));
		--frlh-pistas: repeat(var(--frlh-columnas), minmax(0, 1fr));
		--frlh-h1: 2.91811rem;
		--frlh-lema: calc(2 * var(--frlh-h1));
		--wp--preset--font-size--m: 1.14324rem;
		--wp--preset--font-size--l: 1.49422rem;
		--wp--preset--font-size--xl: 1.95294rem;
		--wp--preset--font-size--xxl: 2.55249rem;
		--wp--preset--font-size--xxxl: 3.33611rem;
		--wp--custom--reticula--margen: max(0px, min(clamp(1.307rem, 6vw, 5.228rem), calc((100cqw - var(--frlh-ancho)) / 2)));
		--wp--style--global--content-size: calc(7 * var(--frlh-celda));
	}
}

/* 1332 px · 12 celdas · n = 4,5 */
@media (min-width: 83.25em) {
	body {
		--frlh-mc: var(--wp--custom--mc--ancho);
		--frlh-boton: calc(var(--frlh-mc) * var(--wp--custom--proporcion));
		--frlh-celda: calc(var(--frlh-alto) * var(--wp--custom--proporcion));
		--frlh-columnas: 12;
		--frlh-ancho: calc(var(--frlh-columnas) * var(--frlh-celda));
		--frlh-pistas: repeat(var(--frlh-columnas), minmax(0, 1fr));
		--frlh-h1: 3.33611rem;
		--frlh-lema: calc(2 * var(--frlh-h1));
		--wp--preset--font-size--m: 1.30700rem;
		--wp--preset--font-size--l: 1.70825rem;
		--wp--preset--font-size--xl: 2.23268rem;
		--wp--preset--font-size--xxl: 2.91811rem;
		--wp--preset--font-size--xxxl: 3.81398rem;
		--wp--custom--reticula--margen: max(0px, min(clamp(1.307rem, 6vw, 5.228rem), calc((100cqw - var(--frlh-ancho)) / 2)));
		--wp--style--global--content-size: calc(7 * var(--frlh-celda));
	}
}

/* Base */

body,
button,
input,
select,
textarea {
	font-family: var(--wp--preset--font-family--dm-sans);
}

body {
	font-size: var(--wp--preset--font-size--base);
	line-height: var(--wp--custom--interlineado--texto);
	color: var(--wp--preset--color--negro);
	background-color: var(--wp--preset--color--blanco);
	font-optical-sizing: auto;
	overflow-x: clip;
	hyphens: manual;
}

p {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--40);
}

table,
th,
td,
.wp-block-table thead,
.wp-block-table tfoot,
.wp-block-table th,
.wp-block-table td {
	border-color: var(--wp--preset--color--beige);
}

hr {
	background-color: var(--wp--preset--color--gris);
}

h1, h2, h3, h4, h5, h6 {
	color: var(--wp--preset--color--negro);
	font-weight: 600;
	line-height: var(--wp--custom--interlineado--etiqueta);
	letter-spacing: -0.01em;
	margin-bottom: var(--wp--preset--spacing--40);
}

h3, h4, h5, h6 {
	margin-bottom: var(--wp--preset--spacing--30);
}

h1 { font-size: var(--frlh-h1); }
h2 { font-size: var(--wp--preset--font-size--xl); }
h3 { font-size: var(--wp--preset--font-size--l); }
h4 { font-size: var(--wp--preset--font-size--m); }
h5, h6 { font-size: var(--wp--preset--font-size--base); }

/* Desde l: interlineado de etiqueta en l y de titular en xl o mayor. Sin guiones: las palabras largas solo saltan de línea si no caben. */

h1, h2, h3,
.has-l-font-size,
.has-xl-font-size,
.has-xxl-font-size,
.has-xxxl-font-size,
.has-titular-font-size,
[class*="is-style-frlh-"] {
	overflow-wrap: break-word;
}

h3,
.has-l-font-size {
	line-height: var(--wp--custom--interlineado--etiqueta);
}

h1, h2,
.has-xl-font-size,
.has-xxl-font-size,
.has-xxxl-font-size,
.has-titular-font-size {
	line-height: var(--wp--custom--interlineado--titular);
}

/* Enlaces: siempre azul y subrayados. Nunca rojo. */

a {
	color: var(--wp--preset--color--azul);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

a:hover,
a:focus {
	color: var(--wp--preset--color--azul);
	text-decoration-thickness: 2px;
}

/* Sobre negro y gris, los enlaces toman el color del texto (blanco). */
.has-negro-background-color a:not(.wp-element-button),
.has-gris-background-color a:not(.wp-element-button) {
	color: inherit;
}

/* Foco visible (WCAG 2.4.7 / 2.4.11): azul sobre blanco y gris claro; blanco sobre negro, gris y rojo. */

:focus-visible {
	outline: 3px solid var(--wp--custom--foco);
	outline-offset: 2px;
}

.has-negro-background-color :focus-visible,
.has-gris-background-color :focus-visible,
.has-rojo-background-color :focus-visible,
.is-style-frlh-superficie-negra :focus-visible,
.site-footer :focus-visible {
	outline-color: var(--wp--preset--color--blanco);
}

/* Botones. Los colores los pone GP (accent = azul, hover contrast = negro). */

.wp-block-button__link,
.wp-element-button,
button,
.button,
input[type="submit"],
input[type="button"] {
	border: 2px solid var(--wp--preset--color--azul);
	border-radius: 0;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	line-height: var(--wp--custom--interlineado--etiqueta);
	text-decoration: none;
}

.wp-block-button__link:hover,
.wp-element-button:hover,
button:hover,
.button:hover,
input[type="submit"]:hover,
input[type="button"]:hover {
	border-color: var(--wp--preset--color--negro);
}

/*
 * Alto de los botones (no los de la cabecera ni el enlace con flecha): mc × 1,307ᵏ con el menor k que da 42 px o más
 * (48,8 · 42,7 · 48,8 · 42,7 en los cuatro n) desde 600 px; 2 mc (50 px) por debajo. En la retícula, el borde inferior cae
 * en una línea (y, en S, también el superior). El ancho se redondea a medias celdas donde hay calc-size().
 */
:is(.wp-element-button, .wp-block-button__link, input[type="submit"], input[type="button"], .button, .frlh-inscripcion__estado):not(.site-header *, .is-style-frlh-flecha *, .wp-block-file__button) {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: var(--frlh-boton);
	padding-block: 0;
}

@supports (width: calc-size(max-content, size)) {
	.wp-block-button:not(.is-style-frlh-flecha) > .wp-block-button__link:not(.site-header *) {
		width: calc-size(max-content, round(up, size, var(--frlh-celda) / 2));
	}
}

/* Secundario: contorno azul. */
.wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--azul);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--azul);
	color: var(--wp--preset--color--blanco);
}

/*
 * Relleno con fondo o borde: el horizontal, uno o dos pasos por encima del vertical.
 * Botones y campos: 12,2 / 20,9, interlineado 1,2 y la misma altura (borde de 2 px en los dos).
 */
input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"]),
select,
textarea {
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	border-width: 2px;
	font-size: var(--wp--preset--font-size--base);
	line-height: var(--wp--custom--interlineado--etiqueta);
}

/* Bloques con fondo (grupos y párrafos): 20,9 / 27,3. Las superficies a todo el ancho van aparte. */
.wp-block-group.has-background,
p.has-background {
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}

/* Celdas de tabla: 9,4 / 12,2. */
table :is(th, td),
.wp-block-table :is(th, td) {
	padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20);
}

/* Botones de bloque: (0,2,0) para ganar a «.wp-block-button .wp-block-button__link» de GP (10 px 20 px). */
.wp-block-button .wp-block-button__link {
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	line-height: var(--wp--custom--interlineado--etiqueta);
}

/* La tabla dentro de su figura no suma el 1.5em de GP: el margen lo da la figura. */
.wp-block-table table {
	margin: 0;
}

/* En el flujo de lectura, botones, buscador y teselas sueltas separan como un párrafo. */
.entry-content > :is(.wp-block-buttons, .wp-block-search, .frlh-teselas):not(.frlh-seccion) {
	margin-bottom: var(--wp--preset--spacing--40);
}

/* Separación entre botones y entre campo y botón del buscador: 12,2. */
.wp-block-buttons {
	gap: var(--wp--preset--spacing--20);
}

.wp-block-search__button {
	margin-left: var(--wp--preset--spacing--20);
}

/* Imágenes, tablas y separadores sin estilo propio: un paso de la escala en vez de em o 40 px. */
.wp-block-image,
.wp-block-table:not(.is-style-frlh-cronologia) {
	margin: 0 0 var(--wp--preset--spacing--30);
}

hr.wp-block-separator:not([class*="is-style-frlh-"], [class*="frlh-cartel"]) {
	margin-block: var(--wp--preset--spacing--70);
}

/* Texto secundario */
.frlh-secundario,
.has-gris-color {
	color: var(--wp--preset--color--gris);
}

/* Maqueta: contenedor = wideSize de contenido + margen de retícula a cada lado. */

.grid-container {
	box-sizing: content-box;
	max-width: var(--wp--style--global--wide-size);
	padding-inline: var(--wp--custom--reticula--margen);
}

/*
 * Página: #page (.site) ocupa todo el ancho y es contenedor de consulta, de modo que los
 * alignfull se calculan con cqw (sin la barra de desplazamiento, a diferencia de 100vw).
 * El límite de 75rem y el margen de retícula pasan a .site-content.
 */
.site.grid-container {
	max-width: none;
	padding-inline: 0;
	container-type: inline-size;
}

.site.grid-container > .site-content {
	box-sizing: content-box;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: var(--wp--custom--reticula--margen);
}

.no-sidebar .entry-content > .alignfull {
	max-width: 100cqw;
	width: auto;
	margin-left: calc(50% - 50cqw) !important;
	margin-right: calc(50% - 50cqw) !important;
}

/* Editor: el lienzo reproduce el contenedor del front (wideSize + margen de retícula). */

.block-editor-block-list__layout.is-root-container.is-root-container {
	box-sizing: content-box;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: var(--wp--custom--reticula--margen);
}

/*
 * Contenido (front y editor), todo alineado a la columna 1:
 * ancho normal hasta contentSize; alignwide, .frlh-reticula y .frlh-cartel hasta wideSize;
 * alignfull a todo el ancho.
 * Editor: WordPress centra con «.block-editor-block-list__layout.is-root-container > :where(…)
 * { margin: auto !important }» (0,2,0) y se carga después. Repetir .is-root-container lleva
 * nuestras reglas a (0,3,0) para que ganen también con !important.
 */

.entry-content > :where(:not(.alignwide, .alignfull, .alignleft, .alignright, .frlh-reticula, .frlh-cartel, .frlh-seccion, .frlh-rejilla, .is-style-frlh-cronologia)),
.block-editor-block-list__layout.is-root-container.is-root-container > :where(:not(.alignwide, .alignfull, .alignleft, .alignright, .frlh-reticula, .frlh-cartel, .frlh-seccion, .frlh-rejilla, .is-style-frlh-cronologia)) {
	max-width: var(--wp--style--global--content-size);
	margin-left: 0 !important;
	margin-right: auto !important;
}

.entry-content > :is(.alignwide, .frlh-reticula, .frlh-cartel, .frlh-seccion, .frlh-rejilla):not(.alignfull),
.block-editor-block-list__layout.is-root-container.is-root-container > :is(.alignwide, .frlh-reticula, .frlh-cartel, .frlh-seccion, .frlh-rejilla):not(.alignfull) {
	max-width: var(--wp--style--global--wide-size);
	margin-left: 0 !important;
	margin-right: auto !important;
}

.editor-visual-editor__post-title-wrapper.editor-visual-editor__post-title-wrapper {
	box-sizing: content-box;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: var(--wp--custom--reticula--margen);
}

.editor-visual-editor__post-title-wrapper.editor-visual-editor__post-title-wrapper > :where(*) {
	max-width: var(--wp--style--global--content-size);
	margin-left: 0 !important;
	margin-right: auto !important;
}

.block-editor-block-list__layout.is-root-container.is-root-container > .alignfull {
	max-width: none;
	margin-inline: calc(50% - 50cqw) !important;
}

/* Retícula */

/* Rejilla única: pistas iguales a las celdas, sin column-gap. El medianil va dentro de cada pieza. */
.frlh-reticula {
	display: grid;
	grid-template-columns: var(--frlh-pistas);
	column-gap: 0;
	row-gap: var(--wp--preset--spacing--50);
}

.frlh-reticula > * {
	grid-column: 1 / -1;
	margin-block: 0;
}

@media (min-width: 37.5em) and (max-width: 63.99em) {
	.frlh-m-ancho-1 { grid-column: auto / span 1; }
	.frlh-m-ancho-2 { grid-column: auto / span 2; }
	.frlh-m-ancho-3 { grid-column: auto / span 3; }
	.frlh-m-ancho-4 { grid-column: auto / span 4; }
	.frlh-m-ancho-5 { grid-column: auto / span 5; }
	.frlh-m-ancho-6 { grid-column: auto / span 6; }
	.frlh-m-ancho-7 { grid-column: auto / span 7; }
	.frlh-m-ancho-8 { grid-column: auto / span 8; }

	:is(.frlh-m-ancho-1, .frlh-m-ancho-2, .frlh-m-ancho-3, .frlh-m-ancho-4, .frlh-m-ancho-5, .frlh-m-ancho-6, .frlh-m-ancho-7) {
		margin-right: var(--wp--custom--reticula--medianil);
	}
}

@media (min-width: 64em) {
	.frlh-ancho-1 { grid-column: auto / span 1; }
	.frlh-ancho-2 { grid-column: auto / span 2; }
	.frlh-ancho-3 { grid-column: auto / span 3; }
	.frlh-ancho-4 { grid-column: auto / span 4; }
	.frlh-ancho-5 { grid-column: auto / span 5; }
	.frlh-ancho-6 { grid-column: auto / span 6; }
	.frlh-ancho-7 { grid-column: auto / span 7; }
	.frlh-ancho-8 { grid-column: auto / span 8; }
	.frlh-ancho-9 { grid-column: auto / span 9; }
	.frlh-ancho-10 { grid-column: auto / span 10; }
	.frlh-ancho-11 { grid-column: auto / span 11; }
	.frlh-ancho-12 { grid-column: auto / span 12; }

	/* Cada pieza ocupa sus celdas menos un medianil al final. */
	:is(.frlh-ancho-1, .frlh-ancho-2, .frlh-ancho-3, .frlh-ancho-4, .frlh-ancho-5, .frlh-ancho-6, .frlh-ancho-7, .frlh-ancho-8, .frlh-ancho-9, .frlh-ancho-10, .frlh-ancho-11) {
		margin-right: var(--wp--custom--reticula--medianil);
	}

	.frlh-desde-1 { grid-column-start: 1; }
	.frlh-desde-2 { grid-column-start: 2; }
	.frlh-desde-3 { grid-column-start: 3; }
	.frlh-desde-4 { grid-column-start: 4; }
	.frlh-desde-5 { grid-column-start: 5; }
	.frlh-desde-6 { grid-column-start: 6; }
	.frlh-desde-7 { grid-column-start: 7; }
	.frlh-desde-8 { grid-column-start: 8; }
	.frlh-desde-9 { grid-column-start: 9; }
	.frlh-desde-10 { grid-column-start: 10; }
	.frlh-desde-11 { grid-column-start: 11; }
	.frlh-desde-12 { grid-column-start: 12; }
}

/* Retícula superpuesta (?reticula=1, solo administradores): verticales cada celda, horizontales cada media caja. */

.frlh-ver-reticula::after {
	--frlh-linea: color-mix(in srgb, var(--wp--preset--color--rojo) 45%, transparent);
	content: "";
	position: fixed;
	inset: 0;
	z-index: 100000;
	box-sizing: content-box;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: var(--wp--custom--reticula--margen);
	pointer-events: none;
	background-image:
		repeating-linear-gradient(to bottom, var(--frlh-linea) 0 1px, transparent 1px var(--frlh-mc)),
		repeating-linear-gradient(to right, var(--frlh-linea) 0 1px, transparent 1px var(--frlh-celda));
	background-origin: content-box;
	background-clip: content-box;
}

/* Papeles tipográficos (estilos de bloque de párrafo y titular) */

.is-style-frlh-titulo,
.is-style-frlh-subtitulo,
.is-style-frlh-etiqueta,
.is-style-frlh-nombre,
.is-style-frlh-detalle,
.is-style-frlh-datos {
	margin: 0;
	letter-spacing: normal;
}

.is-style-frlh-titulo,
.is-style-frlh-subtitulo {
	font-size: var(--wp--preset--font-size--xxl);
	line-height: var(--wp--custom--interlineado--titular);
	color: var(--wp--preset--color--rojo);
	text-wrap: balance;
}

.is-style-frlh-titulo { font-weight: 600; }
.is-style-frlh-subtitulo { font-weight: 400; }

.is-style-frlh-etiqueta {
	font-size: var(--wp--preset--font-size--l);
	font-weight: 600;
	line-height: var(--wp--custom--interlineado--etiqueta);
	color: var(--wp--preset--color--gris);
	margin-bottom: var(--wp--preset--spacing--10);
}

.is-style-frlh-nombre,
.is-style-frlh-detalle {
	font-size: var(--wp--preset--font-size--base);
	line-height: var(--wp--custom--interlineado--compacto);
	color: var(--wp--preset--color--negro);
}

.is-style-frlh-nombre { font-weight: 700; }
.is-style-frlh-detalle { font-weight: 400; }

.is-style-frlh-detalle + .is-style-frlh-nombre {
	margin-top: var(--wp--preset--spacing--40);
}

.is-style-frlh-nombre + .is-style-frlh-etiqueta,
.is-style-frlh-detalle + .is-style-frlh-etiqueta,
.is-style-frlh-datos + .is-style-frlh-etiqueta {
	margin-top: var(--wp--preset--spacing--70);
}

/*
 * Banda: gris o negra, como estilos de Separador (sin texto) y de Grupo (con texto).
 * Alto de 3 filas. El texto, si lo hay, en blanco.
 */

.is-style-frlh-banda-gris,
.is-style-frlh-banda-negro {
	color: var(--wp--preset--color--blanco);
}

/* (0,2,1): gana a «body .block-editor-block-list__block hr» (0,1,2) del CSS de editor de GP. */
hr.wp-block-separator:is(.is-style-frlh-banda-gris, .is-style-frlh-banda-negro) {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	height: calc(3 * var(--wp--custom--fila));
	margin: 0;
	border: 0;
	opacity: 1;
}

hr.wp-block-separator.is-style-frlh-banda-gris {
	color: var(--wp--preset--color--gris);
	background-color: var(--wp--preset--color--gris);
}

hr.wp-block-separator.is-style-frlh-banda-negro {
	color: var(--wp--preset--color--negro);
	background-color: var(--wp--preset--color--negro);
}

.wp-block-group:is(.is-style-frlh-banda-gris, .is-style-frlh-banda-negro) {
	min-height: calc(3 * var(--wp--custom--fila));
}

.is-style-frlh-banda-gris {
	background-color: var(--wp--preset--color--gris);
}

.is-style-frlh-banda-negro {
	background-color: var(--wp--preset--color--negro);
}

.is-style-frlh-banda-gris :is(h1, h2, h3, h4, h5, h6, p, a),
.is-style-frlh-banda-negro :is(h1, h2, h3, h4, h5, h6, p, a) {
	color: var(--wp--preset--color--blanco);
}

.is-style-frlh-entradilla {
	font-size: var(--wp--preset--font-size--l);
	font-weight: 400;
	line-height: var(--wp--custom--interlineado--etiqueta);
	color: var(--wp--preset--color--negro);
}

.is-style-frlh-datos {
	font-size: var(--wp--preset--font-size--m);
	font-weight: 700;
	line-height: var(--wp--custom--interlineado--compacto);
	color: var(--wp--preset--color--gris);
}

/* Selector de idioma ES/EN */

.frlh-idiomas ul {
	display: flex;
	gap: var(--wp--preset--spacing--20);
	margin: 0;
	padding: 0;
	list-style: none;
}

.frlh-idiomas abbr {
	text-decoration: none;
}

/* Negro como el menú; el idioma actual en 600 y subrayado solo al pasar el cursor. */
.frlh-idiomas a,
.frlh-idiomas a:is(:hover, :focus) {
	color: var(--wp--preset--color--negro);
	text-decoration: none;
}

.frlh-idiomas a:is(:hover, :focus-visible) {
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

.frlh-idiomas [aria-current] {
	font-weight: 600;
	color: var(--wp--preset--color--negro);
}

/*
 * Cabecera (GeneratePress, nav-float-right). Menú móvil por debajo de 79em, el corte del menú
 * (generate_mobile_menu_media_query en functions.php); la maqueta L empieza en 64em.
 */

.inside-header {
	min-height: calc(3 * var(--wp--custom--fila));
	padding-block: 0;
}

.frlh-logo,
.frlh-logo a,
.frlh-logo picture {
	display: block;
}

.frlh-logo img {
	display: block;
	width: auto;
	height: calc(1.5 * var(--wp--custom--fila));
}

/* El contenedor de la navegación no repite el margen de retícula. */
.main-navigation .inside-navigation.grid-container {
	max-width: none;
	padding-inline: 0;
}

.main-navigation,
.main-navigation .menu-bar-items {
	font-size: var(--wp--preset--font-size--base);
}

.main-navigation .main-nav ul li a {
	padding-inline: var(--wp--preset--spacing--10);
	line-height: var(--wp--custom--interlineado--etiqueta);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 400;
	color: var(--wp--preset--color--negro);
	text-decoration: none;
}

.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li a:focus,
.main-navigation .main-nav ul li:is(.sfHover, :hover) > a {
	background-color: transparent;
	color: var(--wp--preset--color--negro);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

.main-navigation .main-nav ul li:is(.current-menu-item, .current_page_item, .current-menu-ancestor, .current_page_ancestor) > a {
	font-weight: 600;
}

.main-navigation .menu-bar-items {
	margin-left: var(--wp--preset--spacing--10);
}

/* Botón de menú: 44 × 44 px como mínimo, sin fondo. */
.main-navigation button.menu-toggle,
.main-navigation button.menu-toggle:hover,
.main-navigation button.menu-toggle:focus {
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--10);
	min-width: 44px;
	min-height: 44px;
	padding: 0 var(--wp--preset--spacing--10);
	border: 0;
	background-color: transparent;
	color: var(--wp--preset--color--negro);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 400;
	line-height: var(--wp--custom--interlineado--etiqueta);
}

.has-inline-mobile-toggle .mobile-menu-control-wrapper {
	align-items: center;
	margin-left: auto;
}

/* El botón solo existe por debajo de 79em, el corte del menú (GP lo oculta con display: none; aquí no se toca arriba). */
@media (max-width: 78.99em) {
	.main-navigation button.menu-toggle {
		display: inline-flex;
	}
}

/* Panel del menú móvil: fondo blanco, enlaces en m, una fila entre enlaces. */
.main-navigation.toggled {
	background-color: var(--wp--preset--color--blanco);
	padding-bottom: var(--wp--preset--spacing--40);
}

.main-navigation.toggled .main-nav ul li a {
	padding: var(--wp--preset--spacing--10) 0;
	font-size: var(--wp--preset--font-size--m);
	line-height: var(--wp--custom--interlineado--compacto);
}

@media (min-width: 64em) {
	.inside-header {
		display: grid;
		grid-template-columns: var(--frlh-pistas);
		column-gap: 0;
		align-items: center;
		min-height: calc(4 * var(--wp--custom--fila));
	}

	/* Logotipo a 3 columnas (también en la cabecera normal) y navegación en las 9 restantes. */
	.inside-header > .frlh-logo {
		grid-column: 1 / span 3;
	}

	/*
	 * Logotipo 05-2 (tinta 755,16 × 49,47): la misma escala que tenía el 05 (751,56 de tinta en las 3 columnas),
	 * así que el cartabón no cambia de tamaño ni de sitio; el texto llega 3,60 unidades más a la derecha.
	 */
	.frlh-logo img {
		width: calc(100% * 755.16 / 751.56);
		max-width: none;
		height: auto;
		aspect-ratio: 755.16 / 49.47;
	}

	.inside-header > #site-navigation {
		grid-column: 4 / -1;
		justify-self: end;
		margin-left: 0;
	}
}

/*
 * Entre 64em y 79em (corte del menú): maqueta L con el botón «Menú» en las 9 columnas de la
 * derecha; el panel abierto ocupa todo el ancho debajo. Cerrado, no ocupa fila (con JS).
 */
@media (min-width: 64em) and (max-width: 78.99em) {
	.inside-header > .mobile-menu-control-wrapper {
		grid-column: 4 / -1;
		justify-self: end;
		margin-left: 0;
	}

	.inside-header > #site-navigation {
		grid-column: 1 / -1;
		justify-self: stretch;
	}

	html.frlh-js .inside-header > #site-navigation:not(.toggled) {
		display: none;
	}
}

/* Pie: fondo rojo a todo el ancho (GP, footer_*_color), texto blanco en 400 y 18,3 px (nombre en 600); contenido en la retícula. */

.site-info {
	font-size: var(--wp--preset--font-size--sobre-rojo);
	font-weight: 400;
	line-height: var(--wp--custom--interlineado--texto);
	text-align: left;
}

.site-info .inside-site-info {
	display: block;
	padding-block: var(--wp--preset--spacing--70);
}

.frlh-pie {
	display: grid;
	grid-template-columns: var(--frlh-pistas);
	column-gap: 0;
	row-gap: var(--wp--preset--spacing--40);
}

.frlh-pie > * {
	grid-column: 1 / -1;
}

.frlh-pie p {
	margin: 0;
}

.frlh-pie__nombre {
	font-weight: 600;
}

.frlh-pie__legal ul,
.frlh-redes ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--40);
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-info a,
.site-info a:hover,
.site-info a:focus {
	color: var(--wp--preset--color--blanco);
	font-weight: 400;
	text-decoration: underline;
}

/*
 * Redes del pie con iconos: el bloque ocupa lo mismo que la línea de texto que había (1lh), con los iconos
 * centrados en ella, así que el resto del pie no se mueve. Mismo color y foco que los demás enlaces del pie.
 * Desde 64em, enlace del tamaño del icono y 16 px entre iconos (espaciado 30). Por debajo, área táctil de
 * 46,7 × 46,7 (espaciado 70, como el sobre de las personas), contiguas, que desborda la línea sin ensancharla;
 * el primer icono queda alineado a la columna.
 */
.frlh-redes--iconos ul {
	gap: 0 var(--wp--preset--spacing--30);
}

.site-info .frlh-redes--iconos a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 1lh;
	text-decoration: none;
}

@media (max-width: 63.99em) {
	.frlh-redes--iconos ul {
		gap: 0;
	}

	.site-info .frlh-redes--iconos a {
		width: var(--wp--preset--spacing--70);
		height: var(--wp--preset--spacing--70);
		margin-block: calc((1lh - var(--wp--preset--spacing--70)) / 2);
	}

	.frlh-redes--iconos li:first-child a {
		margin-inline-start: calc((var(--wp--preset--spacing--40) - var(--wp--preset--spacing--70)) / 2);
	}
}

@media (min-width: 64em) {
	.frlh-pie__marca {
		grid-column: 1 / span 6;
		grid-row: 1 / span 2;
		margin-right: var(--wp--custom--reticula--medianil);
	}

	/* Enlaces legales y, debajo, las redes, en la columna derecha junto a la marca: el pie no crece. */
	:is(.frlh-pie__legal, .frlh-pie__redes) {
		grid-column: 7 / -1;
	}

	.frlh-pie__redes {
		grid-row: 2;
		align-self: start;
	}
}

/*
 * Newsletter del pie (inc/newsletter.php): etiqueta, una línea y el formulario, a todo el ancho bajo el resto del pie.
 * Orden del DOM (y de tabulación): correo, casilla de privacidad y botón. Campo y botón del alto de los botones
 * (--frlh-boton: mc × 1,307ᵏ desde 600 px, 2 mc por debajo). Por debajo de 600 px, apilados en ese orden y a todo el ancho.
 * Desde 600 px, con grid-area: correo (4 celdas menos un medianil) y botón (a medias celdas donde hay calc-size()) en la
 * misma fila y la casilla debajo. Campo blanco con texto negro; foco blanco, como el pie.
 * Honeypots de Acumbamail fuera de pantalla (no se quitan).
 */
.frlh-pie__newsletter {
	margin-top: var(--wp--preset--spacing--40);
}

.frlh-newsletter__titulo {
	font-weight: 600;
}

.frlh-newsletter__formulario {
	margin-top: var(--wp--preset--spacing--30);
}

.frlh-newsletter__campos {
	display: grid;
	grid-template-areas: "correo" "casilla" "boton";
	gap: var(--wp--preset--spacing--20);
}

.frlh-newsletter__correo {
	grid-area: correo;
}

.frlh-newsletter__privacidad {
	grid-area: casilla;
}

.frlh-newsletter__boton {
	grid-area: boton;
}

.site-info input.frlh-newsletter__correo {
	box-sizing: border-box;
	width: 100%;
	height: var(--frlh-boton);
	padding-block: 0;
	border: 2px solid var(--wp--preset--color--blanco);
	border-radius: 0;
}

/* Colores también con el foco (GP los cambia en input:focus). */
.site-info input.frlh-newsletter__correo,
.site-info input.frlh-newsletter__correo:focus {
	border-color: var(--wp--preset--color--blanco);
	background-color: var(--wp--preset--color--blanco);
	color: var(--wp--preset--color--negro);
}

.frlh-newsletter__correo::placeholder {
	color: var(--wp--preset--color--gris);
	opacity: 1;
}

.frlh-newsletter__boton {
	width: 100%;
}

.frlh-newsletter__boton:disabled {
	cursor: progress;
}

.frlh-newsletter__privacidad input {
	width: var(--wp--preset--spacing--40);
	height: var(--wp--preset--spacing--40);
	margin: 0 var(--wp--preset--spacing--10) 0 0;
	vertical-align: middle;
	accent-color: var(--wp--preset--color--azul);
}

.frlh-newsletter__trampa {
	position: absolute;
	inset-inline-start: -100vw;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

@media (min-width: 37.5em) {
	.frlh-newsletter__campos {
		grid-template-areas: "correo boton" "casilla casilla";
		grid-template-columns: max-content max-content;
		justify-content: start;
		gap: var(--wp--preset--spacing--20) 0;
	}

	.site-info input.frlh-newsletter__correo {
		width: calc(4 * var(--frlh-celda) - var(--wp--custom--reticula--medianil));
		margin-right: var(--wp--custom--reticula--medianil);
	}

	.frlh-newsletter__boton {
		width: auto;
	}
}

@supports (width: calc-size(max-content, size)) {
	@media (min-width: 37.5em) {
		.frlh-newsletter__boton {
			width: calc-size(max-content, round(up, size, var(--frlh-celda) / 2));
		}
	}
}

/*
 * Tipografía de lectura (contenido de ancho normal, front y editor).
 * h2 en xl y h3 en l (negro, 600): 3 filas antes del h2, 2 antes del h3, 1 después.
 */

:is(.entry-content, .block-editor-block-list__layout.is-root-container) > :is(h2, h3):not([class*="is-style-frlh-"]) {
	margin-bottom: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--negro);
	font-weight: 600;
}

:is(.entry-content, .block-editor-block-list__layout.is-root-container) > h2:not([class*="is-style-frlh-"]) {
	margin-top: var(--wp--preset--spacing--80);
}

:is(.entry-content, .block-editor-block-list__layout.is-root-container) > h3:not([class*="is-style-frlh-"]) {
	margin-top: var(--wp--preset--spacing--70);
	margin-bottom: var(--wp--preset--spacing--30);
}

:is(.entry-content, .block-editor-block-list__layout.is-root-container) > :first-child {
	margin-top: 0;
}

/*
 * Aire del contenido: 2 filas bajo la cabecera y espaciado 60 sobre el pie. Una superficie
 * a todo el ancho al principio o al final va pegada. Los márgenes propios del primer y el
 * último bloque se anulan para no sumar espacio doble.
 */
.entry-content {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--100);
}

.entry-content:has(> .alignfull:first-child) {
	padding-top: 0;
}

.entry-content:has(> .alignfull:last-child) {
	padding-bottom: 0;
}

:is(.entry-content, .block-editor-block-list__layout.is-root-container) > :last-child {
	margin-bottom: 0;
}

/* GP separa los artículos con 20 px; en páginas no hay nada debajo. */
.site-main > article:last-child {
	margin-bottom: 0;
}

/* Listas: una fila de sangría y media fila entre elementos. */
:is(.entry-content, .block-editor-block-list__layout.is-root-container) :is(ul, ol).wp-block-list {
	margin: 0 0 var(--wp--preset--spacing--40);
	padding-left: var(--wp--preset--spacing--40);
}

:is(.entry-content, .block-editor-block-list__layout.is-root-container) .wp-block-list li + li {
	margin-top: var(--wp--preset--spacing--10);
}

:is(.entry-content, .block-editor-block-list__layout.is-root-container) .wp-block-list li > :is(ul, ol) {
	margin: var(--wp--preset--spacing--10) 0 0;
}

/* Pie de imagen: papel Detalle en gris, media fila por encima (además de theme.json). `body :is()` iguala la especificidad de `.wp-block-image figcaption` (13 px) de GP, que carga antes. */
body :is(figcaption, .wp-element-caption) {
	margin-top: var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 400;
	line-height: var(--wp--custom--interlineado--compacto);
	color: var(--wp--preset--color--gris);
}

/* Cabecera de página: huecos de imagen en proporción cabecera o vertical. */
.frlh-imagen-vacia.frlh-imagen-vacia--cabecera {
	aspect-ratio: var(--wp--preset--aspect-ratio--cabecera);
}

.frlh-imagen-vacia.frlh-imagen-vacia--vertical {
	aspect-ratio: var(--wp--preset--aspect-ratio--vertical);
}

/* Cronología (estilo del bloque Tabla): 8 columnas de retícula, alineada a la columna 1. */
.wp-block-table.is-style-frlh-cronologia {
	margin: 0 0 var(--wp--preset--spacing--40);
}

:is(.entry-content, .block-editor-block-list__layout.is-root-container.is-root-container) > .wp-block-table.is-style-frlh-cronologia {
	max-width: calc(8 * var(--frlh-celda) - var(--wp--custom--reticula--medianil));
	margin-left: 0 !important;
	margin-right: auto !important;
}

.wp-block-table.is-style-frlh-cronologia table {
	width: 100%;
	table-layout: fixed;
	border: 0;
	border-collapse: collapse;
}

/*
 * Cabeceras Año e Hito: solo para lectores de pantalla. La fila sigue en la tabla (alto 0)
 * porque table-layout: fixed toma los anchos de la primera fila, que es esta.
 */
.wp-block-table.is-style-frlh-cronologia thead th {
	height: 0;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip-path: inset(50%);
	line-height: 0;
	white-space: nowrap;
}

.wp-block-table.is-style-frlh-cronologia :is(th, td) {
	padding: var(--wp--preset--spacing--10) 0;
	border: 0;
	text-align: left;
	vertical-align: baseline;
}

.wp-block-table.is-style-frlh-cronologia :is(thead th, tbody td):first-child {
	box-sizing: border-box;
	width: calc(3 * var(--frlh-celda));
}

.wp-block-table.is-style-frlh-cronologia tbody td:first-child {
	position: relative;
	padding-right: var(--wp--custom--reticula--medianil);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 600;
	line-height: var(--wp--custom--interlineado--titular);
	color: var(--wp--preset--color--rojo);
}

.wp-block-table.is-style-frlh-cronologia tbody td + td {
	padding-left: var(--wp--custom--reticula--medianil);
	font-size: var(--wp--preset--font-size--base);
	line-height: var(--wp--custom--interlineado--texto);
	color: var(--wp--preset--color--negro);
}

/* Eje: línea vertical de 1 px entre año e hito, de arriba abajo de la tabla. */
.wp-block-table.is-style-frlh-cronologia {
	--frlh-marca: calc(var(--wp--custom--fila) / 2);
	position: relative;
}

.wp-block-table.is-style-frlh-cronologia::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: calc(3 * var(--frlh-celda) - var(--wp--custom--linea) / 2);
	width: var(--wp--custom--linea);
	background-color: var(--wp--preset--color--gris);
}

/* Marca cuadrada de media fila sobre el eje, a la altura de la primera línea del año. */
.wp-block-table.is-style-frlh-cronologia tbody td:first-child::after {
	content: "";
	position: absolute;
	top: calc(var(--wp--custom--fila) / 2 + (var(--wp--custom--interlineado--titular) * var(--wp--preset--font-size--xl) - var(--frlh-marca)) / 2);
	right: calc(var(--frlh-marca) / -2);
	width: var(--frlh-marca);
	height: var(--frlh-marca);
	background-color: var(--wp--preset--color--gris);
	transition: background-color var(--wp--custom--movimiento--corta) var(--wp--custom--movimiento--curva);
}

.wp-block-table.is-style-frlh-cronologia tbody tr.frlh-activa td:first-child::after {
	background-color: var(--wp--preset--color--rojo);
}

/* M y S: eje a la izquierda; año encima del hito, a su derecha. */
@media (max-width: 63.99em) {
	.wp-block-table.is-style-frlh-cronologia::before {
		left: calc(var(--frlh-marca) / 2 - var(--wp--custom--linea) / 2);
	}

	.wp-block-table.is-style-frlh-cronologia :is(thead, tbody, tr, th, td) {
		display: block;
	}

	.wp-block-table.is-style-frlh-cronologia :is(thead th, tbody td):first-child {
		width: auto;
	}

	/* Sangrado de la fila: un paso de la escala (la marca va pegada al borde, sobre el eje). */
	.wp-block-table.is-style-frlh-cronologia tbody tr {
		padding-left: var(--wp--preset--spacing--50);
	}

	.wp-block-table.is-style-frlh-cronologia tbody td:first-child {
		padding-right: 0;
		padding-bottom: 0;
	}

	.wp-block-table.is-style-frlh-cronologia tbody td:first-child::after {
		right: auto;
		left: calc(-1 * var(--wp--preset--spacing--50));
	}

	.wp-block-table.is-style-frlh-cronologia tbody td + td {
		padding-left: 0;
	}
}

/* Índice de años (lo genera frlh.js bajo el título fijo; solo en L). */
.frlh-con-titulo__cabeza > * {
	margin: 0;
}

.frlh-indice ul {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--10);
	margin: var(--wp--preset--spacing--40) 0 0;
	padding: 0;
	list-style: none;
}

.frlh-indice a {
	font-size: var(--wp--preset--font-size--base);
	font-weight: 400;
	line-height: var(--wp--custom--interlineado--compacto);
	color: var(--wp--preset--color--gris);
	text-decoration: none;
}

.frlh-indice a:hover {
	text-decoration: underline;
}

.frlh-indice a[aria-current] {
	font-weight: 600;
	color: var(--wp--preset--color--negro);
}

@media (max-width: 63.99em) {
	.frlh-indice {
		display: none;
	}
}

/* Personas: Línea, Nombre y Detalle; retrato vertical opcional encima. */
.frlh-persona {
	display: flex;
	flex-direction: column;
}

.frlh-persona > * {
	margin: 0;
}

.frlh-persona > :is(.frlh-imagen-vacia, .wp-block-image) {
	margin-bottom: var(--wp--preset--spacing--40);
}

.frlh-persona > .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: var(--wp--preset--aspect-ratio--vertical);
	object-fit: cover;
}

/*
 * Persona con correo: el icono (enlace mailto, nombre accesible «Escribir a…») a la derecha del nombre
 * y el cargo, con el sobre (20,9 px, espaciado 40) en el extremo de la Línea; área táctil de 46,7 px (espaciado 70).
 */
.frlh-persona:has(> .frlh-persona__correo) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: var(--wp--preset--spacing--20);
	align-content: start;
}

.frlh-persona:has(> .frlh-persona__correo) > * {
	grid-column: 1;
}

.frlh-persona:has(> .frlh-persona__correo) > hr {
	grid-column: 1 / -1;
}

.frlh-persona > .frlh-persona__correo {
	grid-column: 2;
	grid-row: 2 / span 2;
	align-self: center;
	/* El área táctil desborda las dos filas sin estirarlas: nombre y cargo, como en las demás personas. */
	margin-block: calc(-1 * var(--wp--preset--spacing--20));
}

.frlh-persona__correo a {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	width: var(--wp--preset--spacing--70);
	height: var(--wp--preset--spacing--70);
	color: var(--wp--preset--color--azul);
}

.frlh-persona__correo a:hover {
	color: var(--wp--preset--color--negro);
}

/* Iconos de línea o de un color (sobre de las personas, redes del pie): 20,9 px (espaciado 40), currentColor. */
.frlh-persona__icono,
.frlh-icono {
	display: block;
	width: var(--wp--preset--spacing--40);
	height: auto;
}

/*
 * Participantes con retrato (ficha de actividad, frlh_participantes_retratos): un grupo por etiqueta
 * («Coloquio con», «Modera»), con la etiqueta encima de su rejilla. En S, dos por fila.
 */
.frlh-con-titulo__contenido > .is-style-frlh-etiqueta + .frlh-rejilla {
	margin-top: var(--wp--preset--spacing--40);
}

/*
 * Retratos de los participantes y campos de los filtros por debajo de 600 px (las celdas verticales que quepan, N):
 * dos por fila. Con N impar, mitades de (N − 1) / 2 celdas con la celda libre en medio y sin medianil interior
 * (4 + 1 + 4 a 390 px: 153 px cada uno); con N par (o 7), mitades con el medianil dentro de cada pieza (4 + 4 a 360 px).
 * N sale del ancho: cabe una celda más cada 38,26 px a partir de 41,8 px de margen (9 desde 386,2; 11 desde 462,7; 13 desde 539,2).
 */
@media (max-width: 37.49em) {
	:is(.frlh-participantes .frlh-rejilla, .frlh-filtros__campos) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	:is(.frlh-participantes .frlh-rejilla, .frlh-filtros__campos) > * {
		grid-column: auto;
		margin-right: var(--wp--custom--reticula--medianil);
	}
}

@media (min-width: 24.15em) and (max-width: 26.5399em) {
	:is(.frlh-participantes .frlh-rejilla, .frlh-filtros__campos) {
		grid-template-columns: repeat(9, minmax(0, 1fr));
	}

	:is(.frlh-participantes .frlh-rejilla, .frlh-filtros__campos) > * {
		grid-column: 1 / span 4;
		margin-right: 0;
	}

	:is(.frlh-participantes .frlh-rejilla, .frlh-filtros__campos) > :nth-child(even) {
		grid-column: 6 / span 4;
	}
}

@media (min-width: 28.93em) and (max-width: 31.3199em) {
	:is(.frlh-participantes .frlh-rejilla, .frlh-filtros__campos) {
		grid-template-columns: repeat(11, minmax(0, 1fr));
	}

	:is(.frlh-participantes .frlh-rejilla, .frlh-filtros__campos) > * {
		grid-column: 1 / span 5;
		margin-right: 0;
	}

	:is(.frlh-participantes .frlh-rejilla, .frlh-filtros__campos) > :nth-child(even) {
		grid-column: 7 / span 5;
	}
}

@media (min-width: 33.71em) and (max-width: 36.0999em) {
	:is(.frlh-participantes .frlh-rejilla, .frlh-filtros__campos) {
		grid-template-columns: repeat(13, minmax(0, 1fr));
	}

	:is(.frlh-participantes .frlh-rejilla, .frlh-filtros__campos) > * {
		grid-column: 1 / span 6;
		margin-right: 0;
	}

	:is(.frlh-participantes .frlh-rejilla, .frlh-filtros__campos) > :nth-child(even) {
		grid-column: 8 / span 6;
	}
}

/*
 * Galería de la ficha (grupo frlh-galeria, ancho amplio): las imágenes en su proporción, sin recortar
 * (fotografías, carteles y cubiertas), en columnas: 3 en L y 2 en M y S. Medianil de la retícula entre
 * columnas y 27,3 (espaciado 50) entre imágenes.
 */
.frlh-galeria {
	columns: 2;
	column-gap: var(--wp--custom--reticula--medianil);
}

.frlh-galeria > .wp-block-image {
	margin: 0 0 var(--wp--preset--spacing--50);
	break-inside: avoid;
}

.frlh-galeria > .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
}

@media (min-width: 64em) {
	.frlh-galeria {
		columns: 3;
	}

	.frlh-galeria:has(> :nth-child(2):last-child) {
		columns: 2;
	}
}

/*
 * Vídeo de YouTube o Vimeo: miniatura estática alojada aquí, con enlace al vídeo (rel="noopener"). No se
 * incrusta el reproductor ni se pide nada a terceros hasta el clic. Botón de reproducir de 46,7 px
 * (espaciado 70, el área táctil) en negro, azul con el ratón o el foco.
 */
.frlh-video a {
	position: relative;
	display: block;
}

.frlh-video a::before,
.frlh-video a::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	pointer-events: none;
}

.frlh-video a::before {
	width: var(--wp--preset--spacing--70);
	height: var(--wp--preset--spacing--70);
	background-color: var(--wp--preset--color--negro);
	transition: background-color var(--wp--custom--movimiento--corta) var(--wp--custom--movimiento--curva);
}

.frlh-video a::after {
	width: var(--wp--preset--spacing--30);
	height: var(--wp--preset--spacing--40);
	background-color: var(--wp--preset--color--blanco);
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	translate: -40% -50%;
}

.frlh-video a:is(:hover, :focus-visible)::before {
	background-color: var(--wp--preset--color--azul);
}

/*
 * Obra y archivo (portada): imágenes del archivo bajo el texto, en el contenido de la sección (columnas 5 a 12
 * en L, las 4 de S). Cada una en la proporción que trae (la foto de archivo completa, 1556 × 1011), sin recorte, pase ni velo; con
 * más de una, en columna, con 27,3 entre ellas (espaciado 50). Pie con el estilo de pie del tema.
 */
.frlh-obra__imagenes {
	display: grid;
	gap: var(--wp--preset--spacing--50);
}

.frlh-obra__imagenes > .wp-block-image {
	margin: 0;
}

.frlh-obra__imagenes > .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
}

/* Cita (estilo del bloque Cita): sin comillas ni barra; cartabón a media columna encima. */
/* (0,4,1): gana a «body .wp-block-quote:not(.is-large):not(.is-style-large)» (0,3,1) del CSS de editor de GP. */
blockquote.wp-block-quote.is-style-frlh-cita:not(.is-large, .is-style-large) {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: inherit;
	font-style: normal;
	quotes: none;
}

.wp-block-quote.is-style-frlh-cita::before {
	content: "";
	display: block;
	width: calc(var(--frlh-celda) / 2);
	aspect-ratio: var(--wp--preset--aspect-ratio--horizontal);
	margin-bottom: var(--wp--preset--spacing--40);
	background: url("assets/marca/cartabon.svg") left top / contain no-repeat;
}

.wp-block-quote.is-style-frlh-cita p {
	margin: 0 0 var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 400;
	line-height: var(--wp--custom--interlineado--titular);
	color: var(--wp--preset--color--negro);
}

.wp-block-quote.is-style-frlh-cita cite {
	display: block;
	font-size: var(--wp--preset--font-size--base);
	font-style: normal;
	font-weight: 400;
	line-height: var(--wp--custom--interlineado--compacto);
	color: var(--wp--preset--color--negro);
}

/* Documentos (estilo del bloque Archivo): una fila con Línea arriba, nombre y «Descargar». */
.wp-block-file.is-style-frlh-documento {
	font-size: var(--wp--preset--font-size--base);
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--40);
	margin: 0;
	padding-block: var(--wp--preset--spacing--10);
	border-top: var(--wp--custom--linea) solid var(--wp--preset--color--gris);
}

.wp-block-file.is-style-frlh-documento > a:not(.wp-block-file__button) {
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	color: var(--wp--preset--color--negro);
	text-decoration: none;
}

.wp-block-file.is-style-frlh-documento > a:not(.wp-block-file__button):hover {
	text-decoration: underline;
}

.wp-block-file.is-style-frlh-documento .wp-block-file__button,
.wp-block-file.is-style-frlh-documento .wp-block-file__button:is(:hover, :focus) {
	margin: 0;
	padding: 0;
	border: 0;
	background-color: transparent;
	color: var(--wp--preset--color--azul);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	text-decoration: none;
}

.wp-block-file.is-style-frlh-documento .wp-block-file__button::after {
	content: "→";
	content: "→" / "";
	display: inline-block;
	margin-left: var(--wp--preset--spacing--10);
	transition: transform var(--wp--custom--movimiento--corta) var(--wp--custom--movimiento--curva);
}

.wp-block-file.is-style-frlh-documento .wp-block-file__button:is(:hover, :focus-visible)::after {
	transform: translateX(0.25em);
}

/* Sin radios ni sombras; sin el borde punteado de GP en abbr. */

.frlh-idiomas abbr {
	border-bottom: 0;
	cursor: inherit;
}

.main-navigation ul ul,
.main-navigation.sub-menu-left ul ul {
	box-shadow: none;
}

input,
select,
textarea,
button,
img,
.wp-block-search__input,
.wp-block-search__inside-wrapper {
	border-radius: 0;
}

/*
 * Texto solo para lectores de pantalla (aviso de pestaña nueva en los enlaces externos, inc/enlaces.php).
 * Sin el margen de -1 px de .screen-reader-text, que salta en la auditoría de espaciados.
 */
.frlh-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* Enlace de salto de GP («Saltar al contenido») al recibir el foco. */
.screen-reader-text:focus {
	background-color: var(--wp--preset--color--blanco);
	color: var(--wp--preset--color--azul);
	border-radius: 0;
	box-shadow: none;
	outline: 3px solid var(--wp--custom--foco);
}

/*
 * Secciones de portada. Sobre blanco: margen de 60 arriba y abajo (se colapsa entre secciones).
 * Superficies (estilos de Grupo, a todo el ancho): relleno de 60 y contenido en la retícula.
 */

.frlh-seccion {
	margin-block: var(--wp--preset--spacing--100);
}

.is-style-frlh-superficie-gris-claro,
.is-style-frlh-superficie-negra {
	margin-block: 0;
	padding-block: var(--wp--preset--spacing--100);
	padding-inline: max(var(--wp--custom--reticula--margen), calc((100cqw - var(--wp--style--global--wide-size)) / 2));
}

.frlh-seccion > *,
.is-style-frlh-superficie-gris-claro > *,
.is-style-frlh-superficie-negra > * {
	margin-top: 0;
}

.is-style-frlh-superficie-gris-claro {
	background-color: var(--wp--preset--color--gris-claro);
	color: var(--wp--preset--color--negro);
}

.is-style-frlh-superficie-negra {
	background-color: var(--wp--preset--color--negro);
	color: var(--wp--preset--color--blanco);
}

/*
 * Gris claro: texto y titulares negros; Etiqueta y Datos en gris (como sobre blanco); botón principal
 * azul. El rojo solo en titulares de xl o mayor: el resto de rojos pasa a negro.
 */
.is-style-frlh-superficie-gris-claro :is(.is-style-frlh-titulo, .is-style-frlh-subtitulo, .has-rojo-color):is(.has-base-font-size, .has-m-font-size, .has-l-font-size),
.is-style-frlh-superficie-gris-claro .has-rojo-color:not([class*="-font-size"], h1, h2, .is-style-frlh-titulo, .is-style-frlh-subtitulo) {
	color: var(--wp--preset--color--negro) !important;
}

/* Negra: todo el texto en blanco, también los papeles. */
.is-style-frlh-superficie-negra :is(h1, h2, h3, h4, h5, h6, p, li, a, figcaption, .is-style-frlh-titulo, .is-style-frlh-subtitulo, .is-style-frlh-etiqueta, .is-style-frlh-nombre, .is-style-frlh-detalle, .is-style-frlh-datos) {
	color: var(--wp--preset--color--blanco);
}

/* Negra: botón principal invertido (blanco con texto azul); contorno en blanco. */
.is-style-frlh-superficie-negra .wp-block-button:not(.is-style-outline, .is-style-frlh-flecha) a.wp-block-button__link:not(.has-background) {
	background-color: var(--wp--preset--color--blanco);
	border-color: var(--wp--preset--color--blanco);
	color: var(--wp--preset--color--azul);
}

.is-style-frlh-superficie-negra .wp-block-button:not(.is-style-outline, .is-style-frlh-flecha) a.wp-block-button__link:not(.has-background):is(:hover, :focus),
.is-style-frlh-superficie-negra .wp-block-button.is-style-outline a.wp-block-button__link:not(.has-background) {
	background-color: transparent;
	border-color: var(--wp--preset--color--blanco);
	color: var(--wp--preset--color--blanco);
}

.is-style-frlh-superficie-negra .wp-block-button.is-style-outline a.wp-block-button__link:not(.has-background):is(:hover, :focus) {
	background-color: var(--wp--preset--color--blanco);
	color: var(--wp--preset--color--azul);
}

/* Separador «Línea»: 1 px gris, ancho completo de su contenedor en la retícula. */
hr.wp-block-separator.is-style-frlh-linea {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	height: var(--wp--custom--linea);
	margin: 0 0 var(--wp--preset--spacing--40);
	border: 0;
	opacity: 1;
	color: var(--wp--preset--color--gris);
	background-color: currentColor;
}

.is-style-frlh-superficie-negra hr.wp-block-separator.is-style-frlh-linea {
	color: var(--wp--preset--color--blanco);
}

/* Botón «Enlace con flecha». */
.wp-block-button.is-style-frlh-flecha a.wp-block-button__link:not(.has-background),
.wp-block-button.is-style-frlh-flecha a.wp-block-button__link:not(.has-background):is(:hover, :focus) {
	padding: 0;
	border: 0;
	background-color: transparent;
	color: var(--wp--preset--color--azul);
	font-weight: 600;
	text-decoration: none;
}

.is-style-frlh-superficie-negra .wp-block-button.is-style-frlh-flecha a.wp-block-button__link:not(.has-background) {
	color: var(--wp--preset--color--blanco);
}

.wp-block-button.is-style-frlh-flecha .wp-block-button__link:hover {
	text-decoration: underline;
}

.wp-block-button.is-style-frlh-flecha .wp-block-button__link::after,
.frlh-tesela::after {
	content: "→";
	content: "→" / "";
	display: inline-block;
	transition: transform var(--wp--custom--movimiento--corta) var(--wp--custom--movimiento--curva);
}

.wp-block-button.is-style-frlh-flecha .wp-block-button__link::after {
	margin-left: var(--wp--preset--spacing--10);
}

.wp-block-button.is-style-frlh-flecha .wp-block-button__link:is(:hover, :focus-visible)::after {
	transform: translateX(0.25em);
}

/* División cordobesa: 1fr 1,307fr en L; una columna por debajo. */
.frlh-division {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--70) 0;
	align-items: center;
}

.frlh-division > * {
	min-width: 0;
	margin-block: 0;
}

/* Hueco de imagen: gris claro (el de los fondos) en proporción horizontal, con el cartabón a una columna si lo lleva. */
.frlh-imagen-vacia {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: var(--wp--preset--aspect-ratio--horizontal);
	background-color: var(--wp--preset--color--gris-claro);
}

.frlh-imagen-vacia > .wp-block-image {
	width: var(--frlh-celda);
	margin: 0;
}

.frlh-imagen-vacia img {
	display: block;
	width: 100%;
	height: auto;
}

/* Vídeo del logo (portada; disponible con la clase frlh-intro). */
.frlh-intro {
	margin: 0;
}

.frlh-intro video {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	background-color: var(--wp--preset--color--blanco);
}

.frlh-intro--cuadrado video {
	aspect-ratio: 1;
}

button.frlh-intro__toggle,
button.frlh-intro__toggle:is(:hover, :focus) {
	min-height: 44px;
	margin-top: var(--wp--preset--spacing--10);
	padding: 0;
	border: 0;
	background-color: transparent;
	color: var(--wp--preset--color--azul);
	font-weight: 400;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* Rejilla de tarjetas: 3 en L, 2 en M, 1 en S. Vale para el Bucle de consulta y a mano. */
.frlh-rejilla {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--50) 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.frlh-rejilla > * {
	min-width: 0;
	margin: 0;
}

/*
 * Imágenes con pie en la rejilla (Obra en la portada, Obras en /archivo/): sin enlace, en proporción
 * horizontal y con el pie de la biblioteca (papel Detalle en gris, de theme.json).
 */
.frlh-rejilla > .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: var(--wp--preset--aspect-ratio--horizontal);
	object-fit: cover;
}

/* División invertida (1,307fr 1fr): el texto en la columna ancha y la imagen en la estrecha. */
@media (min-width: 64em) {
	.frlh-division.frlh-division--invertida > :first-child {
		grid-column: 1 / span 7;
	}

	.frlh-division.frlh-division--invertida > :last-child {
		grid-column: 8 / -1;
		margin-right: 0;
	}
}

/* Imágenes verticales (1:1,307): la de la presentación y la figura estrecha de la Semblanza (4 columnas como máximo). */
:is(.frlh-imagen-division, .frlh-imagen-estrecha) img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: var(--wp--preset--aspect-ratio--vertical);
	object-fit: cover;
}

.entry-content > .wp-block-image.frlh-imagen-estrecha {
	max-width: calc(4 * var(--frlh-celda) - var(--wp--custom--reticula--medianil));
}

/* Pies de imagen alineados a la columna, como el resto del texto (WordPress los centra). */
.wp-block-image figcaption,
.wp-block-image .wp-element-caption {
	text-align: left;
}

/* Imagen en el texto de lectura y de cabecera de página (debajo de la retícula, a todo el ancho de la retícula). */
.entry-content > .wp-block-image img,
.frlh-cabecera__imagen img {
	display: block;
	width: 100%;
	height: auto;
}

.frlh-cabecera__imagen img {
	aspect-ratio: var(--wp--preset--aspect-ratio--cabecera);
	object-fit: cover;
}

/*
 * Construcción de la proporción cordobesa (frlh/construccion; docs/FRLH_construccion_cordobesa.html).
 * Lienzo horizontal (1,307:1) y transparente: el dibujo se ve sobre el fondo de la sección donde esté.
 * Estado final por defecto: sin JS, con movimiento reducido y en el editor. frlh.js añade is-pendiente
 * (nada dibujado) y, al entrar en pantalla, is-play: se dibuja una vez (4,4 s). Los tiempos de cada trazo
 * (--ini, --dur) van en el propio SVG, como en el original.
 */
.frlh-construccion {
	margin: 0;
}

.frlh-construccion__lienzo {
	aspect-ratio: var(--wp--preset--aspect-ratio--horizontal);
}

.frlh-construccion svg {
	display: block;
	width: 100%;
	height: 100%;
}

.frlh-construccion .linea { fill: none; stroke: var(--wp--preset--color--rojo); stroke-width: 1; }
.frlh-construccion .discontinua { stroke-dasharray: 4 4; }
.frlh-construccion .punta { fill: var(--wp--preset--color--rojo); stroke: none; }
.frlh-construccion .cartabon { fill: var(--wp--preset--color--rojo); }
.frlh-construccion .trazo { stroke-dasharray: 1; stroke-dashoffset: 0; }
/* La máscara deja ver donde es blanca (luminancia); no se pinta. */
.frlh-construccion .mascara { fill: none; stroke: var(--wp--preset--color--blanco); stroke-width: 6; }
.frlh-construccion .construccion { opacity: 0.3; }

html.frlh-js .frlh-construccion.is-pendiente :is(.construccion, .cartabon) {
	opacity: 0;
}

html.frlh-js .frlh-construccion.is-play .trazo {
	animation: frlh-trazar var(--dur, 0.5s) linear var(--ini, 0s) both;
}

html.frlh-js .frlh-construccion.is-play .aparece {
	animation: frlh-aparecer 0.25s linear var(--ini, 0s) both;
}

html.frlh-js .frlh-construccion.is-play .cartabon {
	animation: frlh-barrido 0.5s var(--wp--custom--movimiento--curva) 3.4s both;
}

html.frlh-js .frlh-construccion.is-play .construccion {
	animation: frlh-atenuar 0.5s linear 3.9s both;
}

@keyframes frlh-trazar { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes frlh-aparecer { from { opacity: 0; } to { opacity: 1; } }
@keyframes frlh-atenuar { from { opacity: 1; } to { opacity: 0.3; } }

@media (prefers-reduced-motion: reduce) {
	html.frlh-js .frlh-construccion :is(.trazo, .aparece, .cartabon, .construccion) {
		animation: none !important;
	}

	html.frlh-js .frlh-construccion.is-pendiente .construccion { opacity: 0.3; }
	html.frlh-js .frlh-construccion.is-pendiente .cartabon { opacity: 1; }
}

/* Tarjeta: un único enlace (el del título se extiende a toda la tarjeta). */
.frlh-tarjeta {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--10);
}

.frlh-tarjeta > * {
	margin: 0;
}

/* Hueco gris claro solo en las actividades: una entrada sin imagen destacada no deja hueco. */
.frlh-tarjeta--actividad:not(:has(img))::before {
	content: "";
	display: block;
	aspect-ratio: var(--wp--preset--aspect-ratio--horizontal);
	background-color: var(--wp--preset--color--gris-claro);
}

.frlh-tarjeta :is(.wp-block-post-featured-image, .wp-block-image) {
	margin: 0;
}

.frlh-tarjeta :is(.wp-block-post-featured-image, .wp-block-image) img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: var(--wp--preset--aspect-ratio--horizontal);
	object-fit: cover;
}

.frlh-tarjeta__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--wp--preset--spacing--10);
}

.frlh-tarjeta :is(.frlh-tarjeta__meta, .frlh-tarjeta__meta *, .is-style-frlh-detalle) {
	margin: 0;
	color: var(--wp--preset--color--gris);
}

.frlh-tarjeta :is(h2, h3, h4) {
	margin: 0;
	font-size: var(--wp--preset--font-size--m);
	font-weight: 600;
	line-height: var(--wp--custom--interlineado--compacto);
	color: var(--wp--preset--color--negro);
}

.frlh-tarjeta :is(h2, h3, h4) a,
.frlh-tesela :is(h2, h3, h4) a {
	color: inherit;
	text-decoration: none;
}

.frlh-tarjeta :is(h2, h3, h4) a::after,
.frlh-tesela :is(h2, h3, h4) a::after {
	content: "";
	position: absolute;
	inset: 0;
}


.frlh-tarjeta :is(h2, h3, h4) a:focus-visible,
.frlh-tesela :is(h2, h3, h4) a:focus-visible {
	outline: 0;
}

.frlh-tarjeta:has(a:focus-visible),
.frlh-tesela:has(a:focus-visible) {
	outline: 3px solid var(--wp--custom--foco);
	outline-offset: 2px;
}

/* Teselas: 4 en L (3 columnas cada una), 2 en M, 1 en S; proporción horizontal. */
.frlh-teselas {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--50) 0;
}

.frlh-teselas > * {
	margin: 0;
}

.wp-block-group.frlh-tesela {
	position: relative;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	aspect-ratio: var(--wp--preset--aspect-ratio--horizontal);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}

.frlh-tesela :is(h2, h3, h4) {
	margin: 0;
	font-size: var(--wp--preset--font-size--l);
	font-weight: 600;
	line-height: var(--wp--custom--interlineado--etiqueta);
	color: inherit;
}

.frlh-tesela::after {
	align-self: flex-end;
	font-size: var(--wp--preset--font-size--l);
	line-height: 1;
}

.frlh-tesela--borde {
	border: var(--wp--custom--linea) solid var(--wp--preset--color--gris);
}

@media (max-width: 37.49em) {
	.frlh-tesela {
		aspect-ratio: var(--wp--preset--aspect-ratio--franja);
	}
}

/*
 * Rejilla única (desde 600 px): las pistas son las celdas y no hay column-gap; cada pieza ocupa sus celdas
 * menos un medianil al final, así que cualquier borde izquierdo cae en una línea de la retícula.
 * Tarjetas: 4 celdas (2 por fila en 8 celdas, 3 en 12). Teselas: 4 celdas en M; 3 en L (4 por fila) o 4 si son tres.
 * Por debajo de 600 px, una columna con todas las celdas.
 */
@media (min-width: 37.5em) {
	:is(.frlh-rejilla, .frlh-teselas) {
		grid-template-columns: var(--frlh-pistas);
	}

	:is(.frlh-rejilla, .frlh-teselas) > * {
		grid-column: span 4;
		margin-right: var(--wp--custom--reticula--medianil);
	}
}

/* En M, con tres teselas, la tercera ocupa la fila entera en proporción franja (sin hueco). */
@media (min-width: 37.5em) and (max-width: 63.99em) {
	.frlh-teselas > .frlh-tesela:nth-child(3):last-child {
		grid-column: 1 / -1;
		margin-right: 0;
		aspect-ratio: var(--wp--preset--aspect-ratio--franja);
	}
}

@media (min-width: 64em) {
	.frlh-division {
		grid-template-columns: var(--frlh-pistas);
	}

	/* División cordobesa en celdas: 5 + 7 (la invertida, 7 + 5); el medianil, dentro de la primera pieza. */
	.frlh-division > :first-child {
		grid-column: 1 / span 5;
		margin-right: var(--wp--custom--reticula--medianil);
	}

	.frlh-division > :last-child {
		grid-column: 6 / -1;
	}

	.frlh-teselas > * {
		grid-column: span 3;
	}

	/* Tres teselas (portada y La Fundación): 4 celdas cada una, sin hueco. */
	.frlh-teselas:has(> .frlh-tesela:nth-child(3):last-child) > * {
		grid-column: span 4;
	}

	/* Dentro de una sección con título fijo (8 celdas): rejillas de 2 (4 celdas) y de 3 en las personas (2,5 celdas). */
	.frlh-con-titulo .frlh-rejilla {
		grid-template-columns: repeat(8, minmax(0, 1fr));
	}

	.frlh-con-titulo .frlh-rejilla.frlh-rejilla--tres {
		grid-template-columns: repeat(16, minmax(0, 1fr));
	}

	.frlh-con-titulo .frlh-rejilla.frlh-rejilla--tres > * {
		grid-column: span 5;
	}
}

/*
 * Cabecera fija (frlh.js añade en <html> las clases frlh-cabecera-compacta y frlh-cabecera-oculta).
 * El alto reservado en el flujo (padding-top de body) no cambia al compactarse.
 */
:root {
	--frlh-cabecera: calc(3 * var(--wp--custom--fila));
	scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--frlh-cabecera));
}

@media (min-width: 64em) {
	:root {
		--frlh-cabecera: calc(4 * var(--wp--custom--fila));
	}
}

/* En el editor, body pasa a ser .editor-styles-wrapper: ahí no se reserva alto. */
body:not(.editor-styles-wrapper) {
	padding-top: var(--frlh-cabecera);
}

.site-header {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	right: 0;
	left: 0;
	z-index: 500;
	transition: transform var(--wp--custom--movimiento--corta) var(--wp--custom--movimiento--curva);
}

/* Al bajar se oculta; nunca con el foco dentro ni con el menú móvil abierto. */
.frlh-cabecera-oculta .site-header:not(:focus-within):not(:has(.main-navigation.toggled)) {
	transform: translateY(calc(-100% - var(--wp-admin--admin-bar--height, 0px)));
}

/* Menú móvil abierto: el panel se desplaza dentro de la cabecera si no cabe. */
.site-header:has(.main-navigation.toggled) {
	max-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
	overflow-y: auto;
}

@media (min-width: 64em) {
	.inside-header {
		transition: min-height var(--wp--custom--movimiento--corta) var(--wp--custom--movimiento--curva);
	}

	.frlh-logo img {
		transition: width var(--wp--custom--movimiento--corta) var(--wp--custom--movimiento--curva);
	}

	/* Compacta: 3 filas de alto; el logotipo ya ocupa sus 3 columnas. */
	.frlh-cabecera-compacta .inside-header {
		min-height: calc(3 * var(--wp--custom--fila));
	}
}

/*
 * Estilo de Grupo «Retícula visible»: la retícula 1:1,307 del manual. Celdas contiguas, sin medianil.
 * W = ancho del contenido / columnas del corte (--frlh-celda, con cqw respecto a #page).
 * V (por debajo de 37.5em): celda W × 1,307; verticales en los bordes; horizontales en los bordes y
 * a media altura. H (desde 37.5em): celda W / 1,307 de alto; verticales en los bordes y a media
 * anchura; horizontales cada media fila. Diagonales de cada celda en las dos.
 * Un solo pseudo-elemento con fondo azul al 12 % y máscaras: degradados para las rectas (1 px
 * exacto), un SVG por orientación para las diagonales y dos capas para cerrar el borde derecho e
 * inferior.
 */
.is-style-frlh-reticula-visible {
	position: relative;
	isolation: isolate;
}

.is-style-frlh-reticula-visible::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-color: color-mix(in srgb, var(--wp--preset--color--azul) 12%, transparent);
	-webkit-mask-image:
		repeating-linear-gradient(to right, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea) var(--frlh-celda)),
		repeating-linear-gradient(to bottom, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea) calc(var(--frlh-celda-alto) / 2 - var(--wp--custom--linea) / 2), var(--wp--preset--color--negro) calc(var(--frlh-celda-alto) / 2 - var(--wp--custom--linea) / 2) calc(var(--frlh-celda-alto) / 2 + var(--wp--custom--linea) / 2), transparent calc(var(--frlh-celda-alto) / 2 + var(--wp--custom--linea) / 2) var(--frlh-celda-alto)),
		url("assets/marca/reticula-v.svg"),
		linear-gradient(to left, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea)),
		linear-gradient(to top, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea));
	mask-image:
		repeating-linear-gradient(to right, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea) var(--frlh-celda)),
		repeating-linear-gradient(to bottom, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea) calc(var(--frlh-celda-alto) / 2 - var(--wp--custom--linea) / 2), var(--wp--preset--color--negro) calc(var(--frlh-celda-alto) / 2 - var(--wp--custom--linea) / 2) calc(var(--frlh-celda-alto) / 2 + var(--wp--custom--linea) / 2), transparent calc(var(--frlh-celda-alto) / 2 + var(--wp--custom--linea) / 2) var(--frlh-celda-alto)),
		url("assets/marca/reticula-v.svg"),
		linear-gradient(to left, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea)),
		linear-gradient(to top, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea));
	-webkit-mask-size: auto, auto, var(--frlh-celda) var(--frlh-celda-alto), auto, auto;
	mask-size: auto, auto, var(--frlh-celda) var(--frlh-celda-alto), auto, auto;
	-webkit-mask-repeat: repeat, repeat, repeat, no-repeat, no-repeat;
	mask-repeat: repeat, repeat, repeat, no-repeat, no-repeat;
	animation: frlh-dibujar-hacia-abajo var(--wp--custom--movimiento--larga) var(--wp--custom--movimiento--curva) both;
}

@media (min-width: 37.5em) {
	.is-style-frlh-reticula-visible::before {
		-webkit-mask-image:
			repeating-linear-gradient(to right, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea) calc(var(--frlh-celda) / 2 - var(--wp--custom--linea) / 2), var(--wp--preset--color--negro) calc(var(--frlh-celda) / 2 - var(--wp--custom--linea) / 2) calc(var(--frlh-celda) / 2 + var(--wp--custom--linea) / 2), transparent calc(var(--frlh-celda) / 2 + var(--wp--custom--linea) / 2) var(--frlh-celda)),
			repeating-linear-gradient(to bottom, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea) calc(var(--frlh-celda-alto) / 2)),
			url("assets/marca/reticula-h.svg"),
			linear-gradient(to left, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea)),
			linear-gradient(to top, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea));
		mask-image:
			repeating-linear-gradient(to right, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea) calc(var(--frlh-celda) / 2 - var(--wp--custom--linea) / 2), var(--wp--preset--color--negro) calc(var(--frlh-celda) / 2 - var(--wp--custom--linea) / 2) calc(var(--frlh-celda) / 2 + var(--wp--custom--linea) / 2), transparent calc(var(--frlh-celda) / 2 + var(--wp--custom--linea) / 2) var(--frlh-celda)),
			repeating-linear-gradient(to bottom, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea) calc(var(--frlh-celda-alto) / 2)),
			url("assets/marca/reticula-h.svg"),
			linear-gradient(to left, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea)),
			linear-gradient(to top, var(--wp--preset--color--negro) 0 var(--wp--custom--linea), transparent var(--wp--custom--linea));
		-webkit-mask-size: auto, auto, var(--frlh-celda) var(--frlh-celda-alto), auto, auto;
		mask-size: auto, auto, var(--frlh-celda) var(--frlh-celda-alto), auto, auto;
		-webkit-mask-repeat: repeat, repeat, repeat, no-repeat, no-repeat;
		mask-repeat: repeat, repeat, repeat, no-repeat, no-repeat;
	}
}

/*
 * Alto: redondeado hacia arriba a media celda, para cubrir siempre el contenido y terminar sobre
 * una línea (la tolerancia de una línea evita sumar media celda por décimas).
 * Sin round(), ocupa el alto de la sección.
 */
@supports (height: round(up, 100%, 1px)) {
	.is-style-frlh-reticula-visible::before {
		bottom: auto;
		height: round(up, 100% - var(--wp--custom--linea), var(--frlh-celda-alto) / 2);
	}
}

/*
 * Texto apoyado en la retícula (portada, cabeceras de página y carteles). La línea base de cada renglón cae en
 * una línea (cada mc) y la parte alta de la mayúscula del h1 y del lema, en la de arriba. Para cada bloque:
 *   --frlh-fs    tamaño de fuente              --frlh-lh   interlineado (múltiplo de mc)
 *   --frlh-g     líneas (mc) desde la línea base del bloque anterior (o desde el borde superior de la caja)
 *                hasta su primera línea base
 * La caja del bloque va de la mayúscula de su primer renglón a la línea base del último (text-box-trim) o, sin
 * soporte, se recorta con --frlh-sube (de la caja de línea a la mayúscula) y --frlh-baja (de la línea base a la
 * caja), calculadas con la métrica de DM Sans de custom.fuente. Sin JS: todo sale de --frlh-mc.
 */
.frlh-cabecera__reticula > :is(.is-style-frlh-etiqueta, h1, .is-style-frlh-entradilla),
.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > :is(.is-style-frlh-titulo, :nth-child(3)) {
	--frlh-sube: calc(var(--frlh-lh) / 2 + (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs));
	--frlh-baja: calc(var(--frlh-lh) / 2 - (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs));
	font-size: var(--frlh-fs) !important;
	line-height: var(--frlh-lh);
	margin-top: calc(var(--frlh-g) * var(--frlh-mc) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs) - var(--frlh-sube)) !important;
	margin-bottom: calc(-1 * var(--frlh-baja)) !important;
}

@supports (text-box: trim-both cap alphabetic) {
	.frlh-cabecera__reticula > :is(.is-style-frlh-etiqueta, h1, .is-style-frlh-entradilla),
	.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > :is(.is-style-frlh-titulo, :nth-child(3)) {
		--frlh-sube: 0px;
		--frlh-baja: 0px;
		text-box: trim-both cap alphabetic;
	}
}

/*
 * Portada. Logotipo en dos líneas (recurso 04) de 8 celdas de ancho desde 1024 px, del ancho de la retícula en M (8 celdas) y de
 * 9 celdas como mucho en S (344 px: con 9 el cartabón mide 2 mc; con 8, a 360 px, 1,75 mc): la parte alta de FUNDACIÓN toca la línea 1 y la base del bloque
 * (el vértice del cartabón) cae en la línea 4 (la 3 en S). Lema: mayúscula de 2 mc, cuelga de la línea 5, con
 * 3 mc de interlineado (en S, mayúscula de 1 mc y 2 mc de interlineado). Declaración: primera línea base 2 líneas por
 * debajo de la última del lema, interlineado de 1 mc. Botones: borde inferior en una línea, 3 líneas por debajo de la
 * última línea base de la declaración (en S, con la parte alta 2 líneas por debajo). Cierra una línea más abajo.
 * Desde 1024 px el contenido va entre las verticales 1 y 11 y la sección mide 18 mc (12 × 9 celdas); por debajo,
 * el ancho de la retícula.
 */
.is-style-frlh-reticula-visible.frlh-portada {
	--frlh-logo-w: min(9 * var(--frlh-celda), var(--frlh-ancho));
	--frlh-logo-h: calc(var(--frlh-logo-w) * 73.87 / 468.59);
	--frlh-logo-base: 3;
	display: grid;
	grid-template-columns: var(--frlh-pistas);
	column-gap: 0;
	padding: 0 0 var(--frlh-mc);
}

.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	grid-column: 1 / -1;
	min-width: 0;
	margin: 0;
}

/*
 * h1: el logotipo estático (el texto queda para lectores). La caja termina en la línea de la base del bloque.
 * (0,4,1): gana a la alineación óptica de la portada, que es (0,4,0).
 */
.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > h1.wp-block-heading {
	box-sizing: border-box;
	width: var(--frlh-logo-w);
	height: var(--frlh-logo-h);
	margin: calc(var(--frlh-logo-base) * var(--frlh-mc) - var(--frlh-logo-h)) 0 0 !important;
	overflow: hidden;
	white-space: nowrap;
	text-indent: 200%;
	text-box: normal;
	background: url("assets/marca/logotipo-dos-lineas.svg") no-repeat 0 0 / 100% 100%;
}

.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > .is-style-frlh-titulo {
	--frlh-fs: var(--frlh-lema);
	--frlh-lh: calc(2 * var(--frlh-mc));
	--frlh-g: 2;
	text-wrap: balance;
}

.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > :nth-child(3) {
	--frlh-fs: var(--wp--preset--font-size--l);
	--frlh-lh: var(--frlh-mc);
	--frlh-g: 2;
}

.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > .wp-block-buttons {
	row-gap: var(--frlh-mc);
	margin: calc(2 * var(--frlh-mc)) 0 0 !important;
}

@media (min-width: 37.5em) {
	.is-style-frlh-reticula-visible.frlh-portada {
		--frlh-logo-w: var(--frlh-ancho);
		--frlh-logo-base: 4;
	}

	.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > .is-style-frlh-titulo {
		--frlh-lh: calc(3 * var(--frlh-mc));
		--frlh-g: 3;
	}

	.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > :nth-child(3) {
		max-width: calc(7 * var(--frlh-celda));
	}

	/* Borde inferior en una línea: 3 líneas bajo la última línea base; entre filas, 2 mc de paso. */
	.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > .wp-block-buttons {
		row-gap: calc(2 * var(--frlh-mc) - var(--frlh-boton));
		margin: calc(3 * var(--frlh-mc) - var(--frlh-boton)) 0 0 !important;
	}
}

@media (min-width: 64em) {
	.is-style-frlh-reticula-visible.frlh-portada {
		--frlh-logo-w: calc(8 * var(--frlh-celda));
		min-height: calc(18 * var(--frlh-mc));
	}

	.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada {
		grid-column: 2 / 12;
	}
}

/* Título y declaración: la fuente da el asta recta a la izquierda (alineación óptica, más abajo). */

/*
 * Ficha de actividad: cabecera cartel (frlh_cartel_actividad) sobre la retícula visible.
 * Por debajo de 1024 px: una columna sobre la retícula, en este orden: etiqueta, título, subtítulo, datos, botón,
 * participantes y cartabón (los dos contenedores de L desaparecen con display: contents). Todo apoyado:
 *   etiqueta con la línea base en la línea 1 (la 2 en S); título con la mayúscula de 1 mc y 2 mc de interlineado,
 *   2 líneas por debajo; subtítulo (xl) 2 líneas por debajo del título, con 1 mc de interlineado (2 mc con n = 3,
 *   donde 1 mc no deja sitio a los rabillos); datos 2 líneas por debajo; botón con el borde inferior en la línea
 *   3 por debajo (en S, con la parte alta 2 líneas por debajo); participantes y nombres a 1 mc; cartabón de 4 mc
 *   (2 en S) a 2 líneas del último texto. La caja cierra una línea más abajo.
 */
.frlh-cartel :is(p, h1, figure) {
	margin: 0;
}

.frlh-cartel__simbolo img {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 63.99em) {
	.frlh-cartel {
		--frlh-simbolo-alto: calc(4 * var(--frlh-mc));
		--frlh-lh-sub: var(--frlh-mc);
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		padding: 0;
	}

	.frlh-cartel__principal,
	.frlh-cartel__lateral {
		display: contents;
	}

	.frlh-cartel :is(.frlh-cartel__formato, .frlh-cartel__titulo, .frlh-cartel__subtitulo, .frlh-cartel__datos, .frlh-cartel__participantes > .is-style-frlh-etiqueta, .frlh-cartel__persona > p) {
		--frlh-sube: calc(var(--frlh-lh) / 2 + (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs));
		--frlh-baja: calc(var(--frlh-lh) / 2 - (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs));
		font-size: var(--frlh-fs) !important;
		line-height: var(--frlh-lh);
		margin-top: calc(var(--frlh-g) * var(--frlh-mc) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs) - var(--frlh-sube)) !important;
		margin-bottom: calc(-1 * var(--frlh-baja)) !important;
	}

	.frlh-cartel__formato {
		--frlh-fs: var(--wp--preset--font-size--l);
		--frlh-lh: var(--frlh-mc);
		--frlh-g: 1;
		order: 1;
	}

	.frlh-cartel__titulo {
		--frlh-fs: var(--frlh-h1);
		--frlh-lh: calc(2 * var(--frlh-mc));
		--frlh-g: 2;
		order: 2;
	}

	.frlh-cartel__subtitulo {
		--frlh-fs: var(--wp--preset--font-size--xl);
		--frlh-lh: var(--frlh-lh-sub);
		--frlh-g: 2;
		order: 3;
	}

	.frlh-cartel__datos {
		--frlh-fs: var(--wp--preset--font-size--m);
		--frlh-lh: var(--frlh-mc);
		--frlh-g: 2;
		order: 4;
	}

	.frlh-cartel .frlh-inscripcion {
		order: 5;
		gap: 0;
		margin-top: calc(3 * var(--frlh-mc) - var(--frlh-boton));
	}

	/* Nota bajo el botón: tamaño base, 1 mc de interlineado, una línea base por debajo del borde inferior del botón. */
	.frlh-cartel .frlh-inscripcion > .frlh-inscripcion__nota {
		--frlh-sube: calc(var(--frlh-lh) / 2 + (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs));
		--frlh-baja: calc(var(--frlh-lh) / 2 - (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs));
		--frlh-fs: var(--wp--preset--font-size--base);
		--frlh-lh: var(--frlh-mc);
		--frlh-g: 1;
		font-size: var(--frlh-fs) !important;
		line-height: var(--frlh-lh);
		margin-top: calc(var(--frlh-g) * var(--frlh-mc) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs) - var(--frlh-sube)) !important;
		margin-bottom: calc(-1 * var(--frlh-baja)) !important;
	}

	.frlh-cartel__participantes {
		order: 6;
	}

	.frlh-cartel__participantes > .is-style-frlh-etiqueta {
		--frlh-fs: var(--wp--preset--font-size--l);
		--frlh-lh: var(--frlh-mc);
		--frlh-g: 2;
	}

	.frlh-cartel__persona > p {
		--frlh-fs: var(--wp--preset--font-size--base);
		--frlh-lh: var(--frlh-mc);
		--frlh-g: 1;
	}

	.frlh-cartel__persona + .frlh-cartel__persona > p:first-child {
		--frlh-g: 2;
	}

	.frlh-cartel__simbolo {
		order: 7;
		margin-top: calc(2 * var(--frlh-mc)) !important;
	}

	.frlh-cartel__simbolo img {
		display: block;
		width: auto;
		height: var(--frlh-simbolo-alto);
	}
}

@media (max-width: 63.99em) {
	@supports (text-box: trim-both cap alphabetic) {
		.frlh-cartel :is(.frlh-cartel__formato, .frlh-cartel__titulo, .frlh-cartel__subtitulo, .frlh-cartel__datos, .frlh-cartel__participantes > .is-style-frlh-etiqueta, .frlh-cartel__persona > p, .frlh-inscripcion > .frlh-inscripcion__nota) {
			--frlh-sube: 0px;
			--frlh-baja: 0px;
			text-box: trim-both cap alphabetic;
		}
	}
}

@media (max-width: 37.49em) {
	.frlh-cartel {
		--frlh-simbolo-alto: calc(2 * var(--frlh-mc));
	}

	.frlh-cartel__formato {
		--frlh-g: 2;
	}

	.frlh-cartel .frlh-inscripcion {
		margin-top: calc(2 * var(--frlh-mc));
	}
}

/* n = 3 (de 600 a 679 px y en S): el subtítulo (xl) con 1 mc de interlineado deja los rabillos sobre la línea siguiente. */
@media (max-width: 42.4375em) {
	.frlh-cartel {
		--frlh-lh-sub: calc(2 * var(--frlh-mc));
	}
}

/*
 * L (desde 1024 px): 12 × 12 celdas de la retícula H (24 medias cajas f = mc; 1,307:1). Contenido entre las verticales 1 y 11.
 * Misma composición que el cartel A4 del manual en los tres tramos; solo cambia de escala con la mc.
 *   principal (verticales 1 a 6): etiqueta con la línea base en 1f; título y subtítulo con la
 *   mayúscula de f y 1,5f entre líneas base, la primera mayúscula de 2f a 3f; botón una f por debajo
 *   de la última línea base; cartabón de 2 × 2 celdas (verticales 1 a 3) con la base en 23f;
 *   lateral (verticales 7 a 11): participantes desde 6f; datos con la última línea base en 23f.
 * Si el contenido no cabe, crece la fila 19 (entre los dos bloques y el cartabón); frlh.js lo
 * redondea a filas completas con --frlh-cartel-extra.
 * Apoyo en las líneas como en la portada: text-box-trim o, sin soporte, --frlh-sube / --frlh-baja
 * (de la caja de línea a la mayúscula y de la línea base a la caja), con la métrica de custom.fuente.
 */
@media (min-width: 64em) {
	.frlh-cartel {
		--f: var(--frlh-mc);
		display: grid;
		grid-template-columns: var(--frlh-pistas);
		column-gap: 0;
		grid-template-rows: repeat(18, var(--f)) minmax(calc(var(--f) + var(--frlh-cartel-extra, 0px)), auto) repeat(5, var(--f));
		align-items: start;
		padding-block: 0;
	}

	.frlh-cartel__principal,
	.frlh-cartel__lateral {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		min-width: 0;
	}

	.frlh-cartel__principal {
		grid-column: 2 / 7;
		grid-row: 1 / 20;
	}

	.frlh-cartel__lateral {
		grid-column: 8 / 12;
		grid-row: 7 / 24;
		align-self: stretch;
	}

	.frlh-cartel :is(.frlh-cartel__formato, .frlh-cartel__titulo, .frlh-cartel__subtitulo, .frlh-cartel__participantes > .is-style-frlh-etiqueta, .frlh-cartel__datos) {
		--frlh-sube: calc(var(--frlh-lh) / 2 + (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs));
		--frlh-baja: calc(var(--frlh-lh) / 2 - (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs));
		font-size: var(--frlh-fs) !important;
		line-height: var(--frlh-lh);
		margin-bottom: calc(-1 * var(--frlh-baja)) !important;
	}

	.frlh-cartel :is(.frlh-cartel__formato, .frlh-cartel__participantes > .is-style-frlh-etiqueta) {
		--frlh-fs: var(--wp--preset--font-size--l);
		--frlh-lh: calc(var(--wp--custom--interlineado--etiqueta) * var(--frlh-fs));
	}

	.frlh-cartel :is(.frlh-cartel__titulo, .frlh-cartel__subtitulo) {
		--frlh-fs: calc(var(--f) / var(--wp--custom--fuente--mayuscula));
		--frlh-lh: calc(1.5 * var(--f));
	}

	/* Subtítulo un paso por debajo del título (mayúscula = f / 1,307; 41,8 px a 1440), con 1,5f entre líneas base. */
	.frlh-cartel .frlh-cartel__subtitulo {
		--frlh-fs: calc(var(--f) / var(--wp--custom--fuente--mayuscula) / var(--wp--custom--proporcion));
	}

	.frlh-cartel__datos {
		--frlh-fs: var(--wp--preset--font-size--m);
		--frlh-lh: calc(var(--wp--custom--interlineado--compacto) * var(--frlh-fs));
	}

	/* Los datos no se parten dentro de la columna lateral: pueden ocupar hasta la celda 12. */
	.frlh-cartel__datos {
		width: max-content;
		max-width: calc(5 * var(--frlh-celda));
	}

	/* Etiqueta: mayúscula hasta la línea base en 1f. */
	.frlh-cartel .frlh-cartel__formato {
		order: 0;
		margin-top: calc(var(--f) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs) - var(--frlh-sube)) !important;
	}

	/* Título: de la línea base de la etiqueta (1f) a la primera mayúscula (2f), una f. */
	.frlh-cartel .frlh-cartel__titulo {
		order: 0;
		margin-top: calc(var(--f) - var(--frlh-sube)) !important;
	}

	/* Subtítulo: 1,5f de la última línea base del título a la primera suya, igual que dentro del título. */
	.frlh-cartel .frlh-cartel__subtitulo {
		order: 0;
		margin-top: calc(1.5 * var(--f) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs) - var(--frlh-sube)) !important;
	}

	/*
	 * Botón: una f por debajo de la última línea base, como en el cartel A4. El interlineado del título y del
	 * subtítulo (1,5f) no se toca, así que su última línea base cae en una línea o a media caja y el botón no
	 * se apoya en la retícula (excepción del cartel en ≥ 1024).
	 */
	.frlh-cartel .frlh-inscripcion {
		order: 0;
		margin-top: var(--f);
	}

	/* Participantes desde 6f: nombre y detalle a tamaño base con interlineado f/2; f/2 entre personas. */
	.frlh-cartel .frlh-cartel__participantes {
		order: 0;
		margin-top: 0;
	}

	.frlh-cartel .frlh-cartel__participantes > .is-style-frlh-etiqueta:first-child {
		margin-top: calc(-1 * var(--frlh-sube)) !important;
	}

	.frlh-cartel .frlh-cartel__participantes > .is-style-frlh-etiqueta {
		margin-bottom: calc(var(--f) / 2 - var(--frlh-baja)) !important;
	}

	.frlh-cartel .frlh-cartel__persona + .is-style-frlh-etiqueta {
		margin-top: calc(var(--f) - var(--frlh-sube)) !important;
	}

	.frlh-cartel__persona p {
		font-size: var(--wp--preset--font-size--base);
		line-height: calc(var(--f) / 2);
	}

	.frlh-cartel .frlh-cartel__persona + .frlh-cartel__persona {
		margin-top: calc(var(--f) / 2);
	}

	/* Datos: abajo del lateral, con la última línea base en 23f. */
	.frlh-cartel .frlh-cartel__datos {
		order: 0;
		margin-top: auto !important;
		padding-top: var(--f);
	}

	.frlh-cartel .frlh-cartel__simbolo {
		order: 0;
		grid-column: 2 / 4;
		grid-row: 20 / 24;
		align-self: stretch;
		width: auto;
		margin: 0 !important;
	}

	.frlh-cartel__simbolo img {
		height: 100%;
		object-fit: contain;
		object-position: left bottom;
	}
}

@supports (text-box: trim-both cap alphabetic) {
	@media (min-width: 64em) {
		.frlh-cartel :is(.frlh-cartel__formato, .frlh-cartel__titulo, .frlh-cartel__subtitulo, .frlh-cartel__participantes > .is-style-frlh-etiqueta, .frlh-cartel__datos) {
			--frlh-sube: 0px;
			--frlh-baja: 0px;
			text-box: trim-both cap alphabetic;
		}
	}
}

/*
 * Cabecera de página (patrones frlh/cabecera-pagina y -imagen) sobre la retícula visible, sin
 * animación de entrada: la retícula aparece ya dibujada. La imagen de la variante va debajo, fuera de la retícula.
 *   etiqueta: línea base en la línea 1 (la 2 en S); h1 (mayúscula de 1 mc, 2 mc de interlineado): 2 líneas por debajo
 *   de la etiqueta, y sin etiqueta con la base en la línea 3 (la 4 en S); entradilla (l, 1 mc de interlineado):
 *   primera línea base 2 líneas por debajo de la última del h1. La caja cierra una línea por debajo de la última
 *   base, con 6 mc como mínimo. Desde 1024 px, una celda de aire a cada lado; h1 de 8 celdas como máximo y
 *   entradilla de 7. Con alto entero en mc no hace falta JS.
 *   Lote 4: el cierre (2 filas de celdas libres bajo la fila del último elemento) está en «Cabeceras con retícula: cierre».
 */
.frlh-cabecera__reticula {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 0;
}

.frlh-cabecera__reticula::before {
	animation: none !important;
}

.frlh-cabecera__reticula > h1 {
	font-weight: 600;
	color: var(--wp--preset--color--negro);
}

.frlh-cabecera__reticula > .is-style-frlh-etiqueta {
	--frlh-fs: var(--wp--preset--font-size--l);
	--frlh-lh: var(--frlh-mc);
	--frlh-g: 2;
}

.frlh-cabecera__reticula > h1 {
	--frlh-fs: var(--frlh-h1);
	--frlh-lh: calc(2 * var(--frlh-mc));
	--frlh-g: 2;
}

.frlh-cabecera__reticula > h1:first-child {
	--frlh-g: 4;
}

.frlh-cabecera__reticula > .is-style-frlh-entradilla {
	--frlh-fs: var(--wp--preset--font-size--l);
	--frlh-lh: var(--frlh-mc);
	--frlh-g: 2;
}

@media (min-width: 37.5em) {
	.frlh-cabecera__reticula > .is-style-frlh-etiqueta {
		--frlh-g: 1;
	}

	.frlh-cabecera__reticula > h1:first-child {
		--frlh-g: 3;
	}

	.frlh-cabecera__reticula > h1 {
		max-width: calc(8 * var(--frlh-celda));
	}

	.frlh-cabecera__reticula > .is-style-frlh-entradilla {
		max-width: calc(7 * var(--frlh-celda));
	}
}

@media (min-width: 64em) {
	.frlh-cabecera__reticula {
		padding-inline: var(--frlh-celda);
	}
}

/*
 * Cabeceras con retícula: cierre (lote 4). Debajo de la fila de celdas donde termina el último elemento (línea base del último
 * renglón, borde inferior de un botón o del cartabón) quedan 2 filas de celdas libres (--frlh-cabecera-aire) y el borde inferior
 * cae en una línea de celda: el alto es un número entero de celdas. Vale para las cabeceras de página (también archivos,
 * noticias, legales y 404) y los carteles de las fichas en M y S, que terminan en una media caja cualquiera: calc-size() redondea
 * el alto del contenido a celda hacia arriba y suma el aire. Con max-content y no auto: dentro de la rejilla de .frlh-reticula,
 * «auto» es estirar y Chrome suma el aire dos veces.
 * Sin calc-size() (Safari, Firefox, todo iOS), <head> marca <html> con frlh-sin-calc-size y frlh.js fija el mismo alto (también con
 * ?frlh-sin-calc-size=1, para probarlo en Chrome). Sin JS, el aire va como relleno (4 mc) y la retícula dibujada (::before) se
 * redondea a celda, así que se ve igual; solo la caja puede quedar una media caja más corta.
 * En L, el cartel de las fichas que no son el A4 suma el aire como una fila más de su rejilla (sus elementos acaban en 23f y el
 * cartabón, en 24f: fila 12). Fuera: la portada y el cartel A4 del coloquio en L, que no cambian.
 */
.frlh-cabecera__reticula {
	padding-bottom: var(--frlh-cabecera-aire);
}

@media (max-width: 63.99em) {
	.frlh-cartel {
		padding-bottom: var(--frlh-cabecera-aire);
	}
}

@supports (height: calc-size(max-content, size)) {
	:root:not(.frlh-sin-calc-size) .frlh-cabecera__reticula {
		height: calc-size(max-content, round(up, size - 0.5px, var(--frlh-celda-alto)) + var(--frlh-cabecera-aire));
		padding-bottom: 0;
	}

	@media (max-width: 63.99em) {
		:root:not(.frlh-sin-calc-size) .frlh-cartel {
			height: calc-size(max-content, round(up, size - 0.5px, var(--frlh-celda-alto)) + var(--frlh-cabecera-aire));
			padding-bottom: 0;
		}
	}
}

@supports (height: round(up, 100%, 1px)) {
	:is(.frlh-cabecera__reticula, .frlh-cartel)::before {
		height: round(up, 100% - var(--wp--custom--linea), var(--frlh-celda-alto));
	}
}

@media (min-width: 64em) {
	.frlh-cartel:not(.frlh-cartel--a4) {
		grid-template-rows: repeat(18, var(--f)) minmax(calc(var(--f) + var(--frlh-cartel-extra, 0px)), auto) repeat(5, var(--f)) var(--frlh-cabecera-aire);
	}
}

/* Contenido pendiente (bloques con la clase frlh-pendiente): nota interna, solo con frlh_ver_pendientes (Administrador y Revisor). */
.frlh-pendiente {
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	border: 2px dashed var(--wp--preset--color--gris);
	color: var(--wp--preset--color--negro);
}

.frlh-pendiente::before {
	content: "Nota interna. No se publica. ";
	font-weight: 600;
}

/* Página de entradas: cabecera y texto encima de la rejilla, sin el aire inferior del contenido. */
.frlh-pagina-entradas > .entry-content {
	padding-bottom: 0;
}

/* Separación entre secciones (100) bajo la cabecera y el mismo aire sobre el pie que el contenido. */
.blog .frlh-listado {
	margin-top: var(--wp--preset--spacing--100);
}

.blog .site-main {
	padding-bottom: var(--wp--preset--spacing--100);
}

/* 404: botones bajo la cabecera. */
.error404 .frlh-cabecera + .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	margin-top: var(--wp--preset--spacing--60);
}

/* Ficha: sin banda; debajo de la cabecera, la separación entre secciones (100). */
.entry-content > .frlh-cartel {
	margin-bottom: 0;
}

.entry-content > .frlh-cartel + * {
	margin-top: var(--wp--preset--spacing--100);
}

/*
 * Entradas y páginas con el título de GP (sin cabecera propia): el aire de 2 filas va encima del
 * título y el contenido no suma el margin-top de 2em de GP (.entry-content:not(:first-child)).
 */
.inside-article > .entry-header {
	padding-top: var(--wp--preset--spacing--70);
}

.inside-article > .entry-header + .entry-content {
	margin-top: 0;
	padding-top: var(--wp--preset--spacing--40);
}

/* Palabras con guion («La-Hoz») sin partir por el guion (frlh_sin_corte). */
.frlh-sin-corte {
	white-space: nowrap;
}

/* Inscripción: botón con enlace o, sin plazo o sin plazas, el estado como texto con el mismo tamaño. */
.frlh-inscripcion {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--20);
}

.frlh-inscripcion :is(.wp-block-buttons, p) {
	margin: 0;
}

.frlh-inscripcion__estado {
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	border: 2px solid var(--wp--preset--color--gris);
	font-weight: 600;
	line-height: var(--wp--custom--interlineado--etiqueta);
	color: var(--wp--preset--color--gris);
}

.frlh-inscripcion__nota {
	color: var(--wp--preset--color--gris);
}

/* Información práctica: filas etiqueta y texto; en L, la etiqueta en 3 de las 8 columnas. */
.frlh-info {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
	margin: 0;
}

.frlh-info__fila {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--10);
}

/* Línea de 1 px sobre cada fila, como la Línea (Separador frlh-linea) de las filas de Objetivos. */
.frlh-info__fila::before {
	content: "";
	display: block;
	height: var(--wp--custom--linea);
	margin-bottom: calc(var(--wp--preset--spacing--40) - var(--wp--preset--spacing--10));
	background-color: var(--wp--preset--color--gris);
}

.frlh-info dt {
	margin: 0;
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	color: var(--wp--preset--color--gris);
}

.frlh-info dd {
	margin: 0;
	line-height: var(--wp--custom--interlineado--compacto);
}

.frlh-con-titulo__contenido > .frlh-inscripcion {
	margin-top: var(--wp--preset--spacing--60);
}

@media (min-width: 64em) {
	.frlh-info__fila {
		display: grid;
		grid-template-columns: repeat(8, minmax(0, 1fr));
		column-gap: 0;
		align-items: baseline;
	}

	.frlh-info__fila::before {
		grid-column: 1 / -1;
		margin-bottom: calc(var(--wp--preset--spacing--40) - var(--wp--preset--spacing--10));
	}

	.frlh-info dt { grid-column: 1 / span 3; margin-right: var(--wp--custom--reticula--medianil); }
	.frlh-info dd { grid-column: 4 / -1; }
}

/* Tarjeta de actividad: el estado de la inscripción, en negro y 600, debajo del título. */
.frlh-tarjeta .frlh-tarjeta__estado {
	margin-top: var(--wp--preset--spacing--10);
	font-weight: 600;
	color: var(--wp--preset--color--negro);
}

/* Entrada escalonada de los hijos (sube 1 fila con fundido; 80 ms entre cada uno). */
.frlh-entrada > * {
	animation: frlh-entrar var(--wp--custom--movimiento--media) var(--wp--custom--movimiento--curva) both;
}

.frlh-entrada > :nth-child(2) { animation-delay: 80ms; }
.frlh-entrada > :nth-child(3) { animation-delay: 160ms; }
.frlh-entrada > :nth-child(4) { animation-delay: 240ms; }
.frlh-entrada > :nth-child(n + 5) { animation-delay: 320ms; }

/* Barrido de izquierda a derecha: el cartabón crece siguiendo su hipotenusa. */
.frlh-barrido img {
	animation: frlh-barrido var(--wp--custom--movimiento--larga) var(--wp--custom--movimiento--curva) 100ms both;
}

@keyframes frlh-dibujar-hacia-abajo {
	from { clip-path: inset(0 0 100% 0); }
	to { clip-path: inset(0); }
}

@keyframes frlh-entrar {
	from {
		opacity: 0;
		transform: translateY(var(--wp--custom--fila));
	}
}

@keyframes frlh-barrido {
	from { clip-path: inset(0 100% 0 0); }
	to { clip-path: inset(0); }
}

/* Sin JS: cabecera en el flujo (sin fijar) y menú móvil abierto, sin botón. */
html:not(.frlh-js) body:not(.editor-styles-wrapper) {
	padding-top: 0;
}

html:not(.frlh-js) .site-header {
	position: static;
}

@media (max-width: 78.99em) {
	html:not(.frlh-js) .main-navigation button.menu-toggle {
		display: none;
	}

	html:not(.frlh-js) .has-inline-mobile-toggle #site-navigation {
		display: block;
		flex-basis: 100%;
	}

	html:not(.frlh-js) .main-navigation:not(.toggled) .main-nav > ul,
	html:not(.frlh-js) .has-inline-mobile-toggle #site-navigation .inside-navigation > * {
		display: block;
	}
}

/* 2b. Cabecera compacta: línea inferior de 1 px con el azul al 12 %. */
.site-header::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: var(--wp--custom--linea);
	background-color: color-mix(in srgb, var(--wp--preset--color--azul) 12%, transparent);
	opacity: 0;
	transition: opacity var(--wp--custom--movimiento--corta) var(--wp--custom--movimiento--curva);
	pointer-events: none;
}

.frlh-cabecera-compacta .site-header::after {
	opacity: 1;
}

/*
 * 3. Sección con título fijo (patrón frlh/seccion-con-titulo).
 * L: título (h2, papel Etiqueta) en las columnas 1 a 3, fijo bajo la cabecera compacta con
 * 1 fila de separación; contenido en las columnas 5 a 12. M y S: título encima, sin fijar.
 */
.frlh-con-titulo {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
}

.frlh-con-titulo > * {
	margin: 0;
	min-width: 0;
}

.frlh-con-titulo__contenido > * {
	margin-top: 0;
}

.frlh-con-titulo__contenido > * + * {
	margin-top: var(--wp--preset--spacing--70);
}

.frlh-con-titulo__contenido > :is(h3, .wp-block-heading) + * {
	margin-top: 0;
}

/* Filas título + texto (p. ej. objetivos): Línea arriba; en L, título en 3 de 8 columnas. */
.frlh-fila {
	display: flex;
	flex-direction: column;
}

.frlh-fila > * {
	margin: 0;
	min-width: 0;
}

.frlh-fila > :is(h2, h3, h4) {
	margin-bottom: var(--wp--preset--spacing--10);
}

@media (min-width: 64em) {
	.frlh-con-titulo {
		display: grid;
		grid-template-columns: var(--frlh-pistas);
		column-gap: 0;
		align-items: start;
	}

	.frlh-con-titulo > :first-child {
		grid-column: 1 / span 3;
		margin-right: var(--wp--custom--reticula--medianil);
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 4 * var(--wp--custom--fila));
	}

	.frlh-con-titulo > :not(:first-child) {
		grid-column: 5 / -1;
	}

	.frlh-fila {
		display: grid;
		grid-template-columns: repeat(8, minmax(0, 1fr));
		column-gap: 0;
		align-items: baseline;
	}

	.frlh-fila > * {
		grid-column: 4 / -1;
	}

	.frlh-fila > hr {
		grid-column: 1 / -1;
	}

	.frlh-fila > :is(h2, h3, h4) {
		grid-column: 1 / span 3;
		margin-right: var(--wp--custom--reticula--medianil);
		margin-bottom: 0;
	}
}

/* 4. Lenguaje de cursor (los mismos efectos con :focus-visible). */

/* Botones: color en duración corta. */
.wp-block-button__link,
.wp-element-button,
button,
input[type="submit"],
input[type="button"] {
	transition-property: color, background-color, border-color;
	transition-duration: var(--wp--custom--movimiento--corta);
	transition-timing-function: var(--wp--custom--movimiento--curva);
}

/* Enlaces de texto: el subrayado pasa de 1 a 2 px (a:hover y a:focus ya lo hacen). */
a {
	transition: text-decoration-thickness var(--wp--custom--movimiento--corta) var(--wp--custom--movimiento--curva);
}

/* Tarjeta: la imagen escala a 1,03 dentro de su marco; el subrayado del título se dibuja. */
.frlh-tarjeta :is(.wp-block-post-featured-image, .wp-block-image) {
	overflow: hidden;
}

.frlh-tarjeta :is(.wp-block-post-featured-image, .wp-block-image) img {
	transition: transform var(--wp--custom--movimiento--media) var(--wp--custom--movimiento--curva);
}

.frlh-tarjeta:is(:hover, :has(a:focus-visible)) :is(.wp-block-post-featured-image, .wp-block-image) img {
	transform: scale(1.03);
}

.frlh-tarjeta :is(h2, h3, h4) a {
	background: linear-gradient(currentColor, currentColor) left bottom / 0 var(--wp--custom--linea) no-repeat;
	transition: background-size var(--wp--custom--movimiento--media) var(--wp--custom--movimiento--curva);
}

.frlh-tarjeta:is(:hover, :has(a:focus-visible)) :is(h2, h3, h4) a {
	background-size: 100% var(--wp--custom--linea);
}

/*
 * Tesela: con el ratón (solo en dispositivos con hover) o el foco, crece un cartabón rojo de 1 columna en la
 * esquina y la flecha se aparta a la izquierda a la vez, lo justo para quedar fuera, con 20,9 px de aire
 * entre la punta y la hipotenusa a la altura de la base de la flecha (el relleno inferior, espaciado 40):
 * a esa altura la hipotenusa está a «columna − 1,307 × 40 = columna − 50» del borde derecho; con el
 * relleno derecho (50), el desplazamiento es columna − 2 × 50 + 40. Con translate y no transform: con
 * movimiento reducido cambia igual, sin transición.
 */
.frlh-tesela {
	overflow: hidden;
}

.frlh-tesela::before {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: var(--frlh-celda);
	aspect-ratio: var(--wp--preset--aspect-ratio--horizontal);
	background-color: var(--wp--preset--color--rojo);
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
	transform: scale(0);
	transform-origin: right bottom;
	transition: transform var(--wp--custom--movimiento--media) var(--wp--custom--movimiento--curva);
	pointer-events: none;
}

.frlh-tesela:has(a:focus-visible)::before {
	transform: scale(1);
}

.frlh-tesela::after {
	position: relative;
	z-index: 1;
	transition: translate var(--wp--custom--movimiento--media) var(--wp--custom--movimiento--curva);
}

.frlh-tesela:has(a:focus-visible)::after {
	translate: calc(-1 * max(0px, var(--frlh-celda) - 2 * var(--wp--preset--spacing--50) + var(--wp--preset--spacing--40))) 0;
}

@media (hover: hover) {
	.frlh-tesela:hover::before {
		transform: scale(1);
	}

	.frlh-tesela:hover::after {
		translate: calc(-1 * max(0px, var(--frlh-celda) - 2 * var(--wp--preset--spacing--50) + var(--wp--preset--spacing--40))) 0;
	}
}

/* Retratos: en escala de grises y a color al pasar el cursor. */
.frlh-persona > .wp-block-image img {
	filter: grayscale(1);
	transition: filter var(--wp--custom--movimiento--media) var(--wp--custom--movimiento--curva);
}

.frlh-persona:is(:hover, :focus-within) > .wp-block-image img {
	filter: none;
}

/*
 * 5. Aparición al hacer scroll (animation-timeline: view(), sin JS). Sin soporte, todo se ve
 * completo y quieto. La portada (Retícula visible) tiene su propia entrada y queda fuera.
 */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.frlh-seccion:not(.is-style-frlh-reticula-visible, .frlh-cabecera) > * {
			animation: frlh-entrar linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 80%;
		}

		hr.wp-block-separator.is-style-frlh-linea,
		.frlh-info__fila::before {
			animation: frlh-dibujar-a-la-derecha linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 100%;
		}
	}
}

@keyframes frlh-dibujar-a-la-derecha {
	from { clip-path: inset(0 100% 0 0); }
	to { clip-path: inset(0); }
}

/* 6. Transición entre páginas: fundido corto; el logo conserva su sitio y no parpadea. */
@view-transition {
	navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
	animation-duration: var(--wp--custom--movimiento--corta);
	animation-timing-function: var(--wp--custom--movimiento--curva);
}

.frlh-logo {
	view-transition-name: frlh-logo;
}

/*
 * Impresión: sin cabecera fija, sin animaciones y con todo visible. Fondo blanco y texto en negro.
 */
@media print {
	html,
	body {
		background: var(--wp--preset--color--blanco) !important;
	}

	body:not(.editor-styles-wrapper) {
		padding-top: 0;
	}

	.site-header {
		position: static !important;
		transform: none !important;
	}

	/* Logotipo que se despliega: en papel, el 05 de la cabecera y el 04 estático de la portada. */
	html.frlh-logo-medido .frlh-logo img {
		visibility: visible !important;
	}

	html.frlh-logo-medido .is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > h1.wp-block-heading {
		background: url("assets/marca/logotipo-dos-lineas.svg") no-repeat 0 0 / 100% 100% !important;
	}

	.site-header::after,
	.main-navigation button.menu-toggle,
	.mobile-menu-control-wrapper,
	.frlh-intro__toggle,
	.frlh-indice,
	.frlh-logo__despliegue,
	.is-style-frlh-reticula-visible::before,
	.is-style-frlh-reticula-visible::after {
		display: none !important;
	}

	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
	}

	/* Todo visible (salvo las cabeceras de tabla que solo son para lectores de pantalla). */
	body *:not(.is-style-frlh-cronologia thead th) {
		opacity: 1 !important;
		transform: none !important;
		clip-path: none !important;
	}

	body *:not(img, video, hr, .frlh-imagen-vacia) {
		background-color: transparent !important;
		background-image: none !important;
	}

	/* (0,2,1) o más: por encima de las clases has-*-color de WordPress, que llevan !important. */
	body,
	body :is(.entry-content, .site-header, .site-footer) :is(p, li, td, th, dd, dt, figcaption, blockquote, cite, a, span, time, div) {
		color: var(--wp--preset--color--negro) !important;
	}

	body :is(.entry-content, .site-header, .site-footer) :is(h1, h2, h3, h4, h5, h6) {
		color: var(--wp--preset--color--negro) !important;
	}

	.frlh-con-titulo > :first-child {
		position: static;
	}

	hr.wp-block-separator {
		color: var(--wp--preset--color--negro) !important;
		background-color: currentColor !important;
	}
}

/* Títulos de sección (seccion-con-titulo): h2 gris, 600, tamaño m; subtítulo opcional con papel Detalle en gris. */
.frlh-con-titulo__cabeza > :is(h2, h3) {
	margin: 0;
	font-size: var(--wp--preset--font-size--m);
	font-weight: 600;
	line-height: var(--wp--custom--interlineado--etiqueta);
	color: var(--wp--preset--color--gris);
}

.frlh-con-titulo__cabeza > p {
	margin: var(--wp--preset--spacing--10) 0 0;
}

.frlh-con-titulo__cabeza .is-style-frlh-detalle {
	color: var(--wp--preset--color--gris);
}

/*
 * Botón «Colabora» (cabecera, panel móvil y sección Colabora de la portada): fondo rojo y texto blanco en
 * 600 y tamaño base, como el resto de botones (3,7:1, excepción aceptada), sin borde visible;
 * al pasar el cursor, fondo negro y texto blanco. En móvil, al final del panel.
 * Sin borde visible: como el botón principal, un borde de 2 px del color del fondo, para tener el mismo alto
 * que los demás botones con el relleno de la escala (20 / 40).
 * (0,2,1): gana a «.main-navigation a» de GP, que pone display: block.
 */
a.frlh-colabora,
.main-navigation a.frlh-colabora,
.wp-block-button.frlh-colabora a.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	border: 2px solid var(--wp--preset--color--rojo);
	background-color: var(--wp--preset--color--rojo);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	line-height: var(--wp--custom--interlineado--etiqueta);
	color: var(--wp--preset--color--blanco);
	text-decoration: none;
	transition-property: color, background-color, border-color;
	transition-duration: var(--wp--custom--movimiento--corta);
	transition-timing-function: var(--wp--custom--movimiento--curva);
}

.main-navigation a.frlh-colabora:is(:hover, :focus-visible),
a.frlh-colabora:is(:hover, :focus-visible),
.wp-block-button.frlh-colabora a.wp-block-button__link:is(:hover, :focus-visible) {
	border-color: var(--wp--preset--color--negro);
	background-color: var(--wp--preset--color--negro);
	color: var(--wp--preset--color--blanco);
}

.main-navigation .menu-bar-items {
	gap: var(--wp--preset--spacing--40);
}

@media (max-width: 78.99em) {
	.main-navigation.mobile-menu-control-wrapper a.frlh-colabora,
	#site-navigation .menu-bar-items .frlh-idiomas {
		display: none;
	}

	.has-inline-mobile-toggle #site-navigation.toggled .inside-navigation > .menu-bar-items {
		display: flex;
		flex-basis: 100%;
		order: 4;
		margin: 0;
		padding: var(--wp--preset--spacing--40) 0;
	}
}

/*
 * Logotipo que se despliega (portada, desde 64em; tarea 59). <head> pone frlh-logo-desplegable en
 * <html> antes de pintar; frlh.js mide las cajas reales, fija --frlh-logo-* y añade frlh-logo-medido.
 * Hasta entonces (y sin movimiento, sin soporte o sin JS) se ven el 04 estático del h1 y el 05 de la
 * cabecera, en el mismo sitio que el estado inicial: no hay salto.
 * Dos capas, de 0 a --frlh-logo-fin de scroll (lo que tarda V en llegar a la cabecera):
 *   conjunto (el SVG): translate + scale lineales, exactos al scroll (scroll()); V va pegado a la página;
 *   piezas, en unidades del 04, con un único progreso suavizado (frlh.js, inercia de
 *   custom.movimiento.inercia) y la curva 3u² − 2u³ en su tramo:
 *     «RAFAEL DE LA-HOZ» x 0 → 206,77 (0–70 %); «FUNDACIÓN» x 0 → −35,95 (0–65 %) e y 0 → 37,85
 *     (60–100 %); cartabón, escala 1 → 0,6496 con origen en V (0–65 %).
 */
.frlh-logo a {
	position: relative;
}

.frlh-logo__despliegue {
	display: none;
}

@supports (animation-timeline: scroll()) {
	@media (min-width: 64em) {
		html.frlh-logo-desplegable .inside-header {
			min-height: calc(3 * var(--wp--custom--fila));
		}

		html.frlh-logo-desplegable.frlh-logo-medido .frlh-logo img {
			visibility: hidden;
		}

		html.frlh-logo-desplegable.frlh-logo-medido .is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > h1.wp-block-heading {
			background: none;
		}

		html.frlh-logo-desplegable.frlh-logo-medido .frlh-logo__despliegue {
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			width: 500.24px;
			height: 108.43px;
			overflow: visible;
			transform-origin: 0 0;
			animation: frlh-logo-conjunto linear both;
			animation-timeline: scroll(root);
			animation-range: 0 var(--frlh-logo-fin);
		}

		/*
		 * Piezas: transform calculado con el progreso suavizado --frlh-logo-p (frlh.js, en el SVG).
		 * u = avance dentro del tramo (0 a 1) y curva 3u² − 2u³.
		 */
		html.frlh-logo-desplegable.frlh-logo-medido .frlh-logo__despliegue {
			--frlh-u-rafael: clamp(0, var(--frlh-logo-p, 0) / 0.7, 1);
			--frlh-u-x: clamp(0, var(--frlh-logo-p, 0) / 0.65, 1);
			--frlh-u-y: clamp(0, (var(--frlh-logo-p, 0) - 0.6) / 0.4, 1);
			--frlh-e-rafael: calc(var(--frlh-u-rafael) * var(--frlh-u-rafael) * (3 - 2 * var(--frlh-u-rafael)));
			--frlh-e-x: calc(var(--frlh-u-x) * var(--frlh-u-x) * (3 - 2 * var(--frlh-u-x)));
			--frlh-e-y: calc(var(--frlh-u-y) * var(--frlh-u-y) * (3 - 2 * var(--frlh-u-y)));
		}

		html.frlh-logo-desplegable.frlh-logo-medido .frlh-logo__despliegue g {
			transform-box: view-box;
		}

		/* «RAFAEL DE LA-HOZ»: x 0 → 206,77 (0–70 %; el 05-2 de Rafa, 7 oct: antes 203,55). */
		html.frlh-logo-desplegable.frlh-logo-medido .frlh-logo__rafael {
			transform: translateX(calc(var(--frlh-e-rafael) * 206.77px));
		}

		/* «FUNDACIÓN»: x 0 → −35,95 (0–65 %; antes −39,17) e y 0 → 37,85 (60–100 %). */
		html.frlh-logo-desplegable.frlh-logo-medido .frlh-logo__fundacion-x {
			transform: translateX(calc(var(--frlh-e-x) * -35.95px));
		}

		html.frlh-logo-desplegable.frlh-logo-medido .frlh-logo__fundacion {
			transform: translateY(calc(var(--frlh-e-y) * 37.85px));
		}

		/* Cartabón: escala 1 → 0,6496 con origen en V (0–65 %). */
		html.frlh-logo-desplegable.frlh-logo-medido .frlh-logo__cartabon {
			transform-origin: 15.83px 90.78px;
			transform: scale(calc(1 - var(--frlh-e-x) * 0.3504));
		}
	}
}

@keyframes frlh-logo-conjunto {
	from {
		transform: translate(var(--frlh-logo-x0), var(--frlh-logo-y0)) scale(var(--frlh-logo-s0));
	}

	to {
		transform: translate(var(--frlh-logo-x1), var(--frlh-logo-y1)) scale(var(--frlh-logo-s1));
	}
}

/*
 * Alineación óptica a la izquierda: un margen negativo igual al espacio lateral izquierdo de las
 * letras de asta recta de DM Sans (custom.fuente.lateral, en em), para que el asta toque la línea.
 * Titulares de xl o más, papeles Título y Subtítulo, y título, declaración y h1 de la portada.
 * No se aplica al texto corrido ni a los títulos de sección (tamaño l).
 */
:is(h1, h2, .has-xl-font-size, .has-xxl-font-size, .has-xxxl-font-size, .has-titular-font-size, .is-style-frlh-titulo, .is-style-frlh-subtitulo):not(.frlh-con-titulo__cabeza > *, .frlh-tarjeta *, .frlh-tesela *, [class*="is-style-frlh-etiqueta"], [class*="is-style-frlh-nombre"], [class*="is-style-frlh-detalle"], [class*="is-style-frlh-datos"]),
.is-style-frlh-reticula-visible.frlh-portada > .frlh-entrada > :is(h1, .is-style-frlh-titulo, :nth-child(3)),
.frlh-cabecera__reticula > .is-style-frlh-entradilla {
	margin-left: calc(-1 * var(--wp--custom--fuente--lateral)) !important;
}

.block-editor-block-list__layout.is-root-container.is-root-container > :is(h1, h2, .has-xl-font-size, .has-xxl-font-size, .has-xxxl-font-size, .has-titular-font-size, .is-style-frlh-titulo, .is-style-frlh-subtitulo):not([class*="is-style-frlh-etiqueta"]) {
	margin-left: calc(-1 * var(--wp--custom--fuente--lateral)) !important;
}

/* Archivo de actividades: cabecera en celdas (con el aire superior del contenido) y aire sobre el pie. */
.post-type-archive-actividad .site-main {
	padding-bottom: var(--wp--preset--spacing--100);
}

.frlh-archivo-cabecera.entry-content {
	margin-bottom: 0;
	padding-bottom: 0;
}

/*
 * Filtros del listado de actividades (los imprime frlh-core), sobre la retícula (múltiplos de mc desde el borde inferior de
 * la cabecera, que cierra en una línea). Todo texto a 16 px en una caja de 1 mc; b0 es la distancia de la caja a su línea base.
 *   fila 1 (2 mc): pestañas con la base en la línea 1 y, debajo, su línea azul de 2 px con el borde inferior en la línea 2;
 *   a la derecha, el recuento (y «Quitar filtros») con la misma base. En S, el recuento va debajo (otras 2 mc).
 *   fila 2 (3 mc cada campo): etiqueta con la base en la línea 1, desplegable de 1 mc con la línea de 1 px en la línea 3.
 * Sin JS, el botón «Filtrar» (noscript). El desplegable se envía solo al cambiar (frlh.js).
 */
.frlh-filtros {
	--frlh-b0: calc(var(--frlh-mc) / 2 + (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * 1rem);
	margin: calc(2 * var(--frlh-mc)) 0;
}

.frlh-filtros :is(form, p) {
	margin: 0;
}

.frlh-filtros__fila {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	column-gap: var(--wp--custom--reticula--medianil);
}

.frlh-filtros__estados {
	flex: 1 1 100%;
	min-width: 0;
	overflow-x: auto;
	scrollbar-width: none;
}

.frlh-filtros__estados ul {
	display: flex;
	gap: 0 var(--wp--preset--spacing--50);
	margin: 0;
	padding: 0;
	list-style: none;
	white-space: nowrap;
}

/* Pestaña: caja de 2 mc (con la zona de pulsación de 44 px o más); la línea base en la línea 1 y el borde inferior en la 2. */
.frlh-filtros__estados a {
	display: block;
	box-sizing: border-box;
	padding: calc(var(--frlh-mc) - var(--frlh-b0)) 0 calc(var(--frlh-b0) - 2px);
	border-bottom: 2px solid transparent;
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	line-height: var(--frlh-mc);
	color: var(--wp--preset--color--gris);
	text-decoration: none;
}

.frlh-filtros__estados a:hover {
	color: var(--wp--preset--color--negro);
}

.frlh-filtros__estados a[aria-current] {
	border-bottom-color: var(--wp--preset--color--azul);
	color: var(--wp--preset--color--negro);
}

.frlh-filtros__resultado {
	flex: none;
	padding: calc(var(--frlh-mc) - var(--frlh-b0)) 0 calc(var(--frlh-b0));
	font-size: var(--wp--preset--font-size--base);
	line-height: var(--frlh-mc);
	color: var(--wp--preset--color--gris);
	white-space: nowrap;
}

@media (min-width: 37.5em) {
	.frlh-filtros__estados {
		flex: 1 1 0;
	}
}

/* Campos en la rejilla única: 4 celdas (2 por fila), 3 desde 1024 px (4 por fila); en < 600 px, la celda libre en medio. */
.frlh-filtros__formulario {
	margin-top: var(--frlh-mc);
}

.frlh-filtros__campos {
	display: grid;
	grid-template-columns: var(--frlh-pistas);
	gap: var(--frlh-mc) 0;
}

@media (min-width: 37.5em) {
	.frlh-filtros__campos > .frlh-filtros__campo {
		grid-column: span 4;
		margin-right: var(--wp--custom--reticula--medianil);
	}
}

@media (min-width: 64em) {
	.frlh-filtros__campos > .frlh-filtros__campo {
		grid-column: span 3;
	}
}

.frlh-filtros__campo label {
	display: block;
	margin: calc(var(--frlh-mc) - var(--frlh-b0)) 0 var(--frlh-b0);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	line-height: var(--frlh-mc);
	color: var(--wp--preset--color--gris);
}

/* Desplegable sin caja: una línea inferior de 1 px (negra; azul con un valor; azul de 2 px con el foco), dentro del alto de 1 mc. */
.frlh-filtros__selector {
	position: relative;
	display: block;
	height: var(--frlh-mc);
	box-shadow: inset 0 calc(-1 * var(--wp--custom--linea)) 0 var(--wp--preset--color--negro);
}

.frlh-filtros__selector.is-activo {
	box-shadow: inset 0 calc(-1 * var(--wp--custom--linea)) 0 var(--wp--preset--color--azul);
}

.frlh-filtros__selector:has(select:focus-visible) {
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--azul);
}

.frlh-filtros__selector select {
	box-sizing: border-box;
	display: block;
	width: 100%;
	height: var(--frlh-mc);
	margin: 0;
	padding: 0 calc(var(--wp--preset--spacing--40) + 12px) 0 0;
	border: 0;
	border-radius: 0;
	appearance: none;
	background: transparent;
	font-size: var(--wp--preset--font-size--base);
	font-weight: 400;
	line-height: var(--frlh-mc);
	color: var(--wp--preset--color--negro);
	cursor: pointer;
}

.frlh-filtros__flecha {
	position: absolute;
	top: 50%;
	right: 0;
	translate: 0 -50%;
	color: var(--wp--preset--color--negro);
	pointer-events: none;
}

.frlh-filtros__acciones {
	margin-top: var(--frlh-mc);
}

@media (max-width: 37.49em) {
	/* En S, el recuento va bajo las pestañas: otras 2 mc, con la base en la línea 3. */
	.frlh-filtros__resultado {
		flex: 1 1 100%;
	}
}

/* Movimiento reducido */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.wp-block-button.is-style-frlh-flecha .wp-block-button__link::after,
	.wp-block-file.is-style-frlh-documento .wp-block-file__button::after,
	.frlh-tesela::after {
		transition: none;
		transform: none !important;
	}

	/* Sin animaciones ni transiciones de transform, clip-path u opacity: estados finales directos. */
	.is-style-frlh-reticula-visible::before,
	.is-style-frlh-reticula-visible::after,
	.frlh-entrada > *,
	.frlh-barrido img,
	.frlh-logo img {
		animation: none !important;
	}

	.site-header,
	.site-header::after,
	.inside-header,
	.frlh-logo img,
	.wp-block-button__link,
	.wp-element-button,
	button,
	input[type="submit"],
	input[type="button"],
	a,
	.frlh-tarjeta img,
	.frlh-tarjeta :is(h2, h3, h4) a,
	.frlh-tesela::before,
	.frlh-persona img {
		transition: none !important;
	}

	.frlh-seccion > *,
	hr.wp-block-separator.is-style-frlh-linea {
		animation: none !important;
	}

	.frlh-tarjeta img,
	.frlh-tesela::after {
		transform: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	@view-transition {
		navigation: none;
	}
}

/*
 * Zonas de pulsación en móvil (≤ 600 px): 46,7 px de alto (espaciado 70) en el enlace con flecha, en los
 * enlaces de redes de Contacto y en los enlaces de correo del texto (lote 2), con padding y margen negativo del mismo valor: el aspecto y el flujo no
 * cambian. Las teselas ya son pulsables enteras (enlace estirado del título, ::after con inset 0).
 */
@media (max-width: 37.5em) {
	.wp-block-button.is-style-frlh-flecha a.wp-block-button__link:not(.has-background),
	.wp-block-button.is-style-frlh-flecha a.wp-block-button__link:not(.has-background):is(:hover, :focus),
	.frlh-redes:not(.frlh-redes--iconos) a,
	.entry-content p > a[href^="mailto:"] {
		padding-block: calc((var(--wp--preset--spacing--70) - 1lh) / 2);
		margin-block: calc((1lh - var(--wp--preset--spacing--70)) / 2);
	}

	.frlh-redes:not(.frlh-redes--iconos) a,
	.entry-content p > a[href^="mailto:"] {
		display: inline-block;
	}
}

/*
 * Noticia (single.php): cabecera con retícula, imagen destacada de 8 celdas desde 1024 px (todo el ancho por debajo) a
 * una línea de la cabecera y texto en 7 celdas. «Otras noticias» como «Otras actividades».
 */
.entry-content > .frlh-noticia__imagen.alignwide {
	margin: 0 0 var(--wp--preset--spacing--100);
}

.frlh-noticia__imagen img {
	display: block;
	width: 100%;
	height: auto;
}

@media (min-width: 64em) {
	.entry-content > .frlh-noticia__imagen.alignwide {
		max-width: calc(8 * var(--frlh-celda));
	}
}

/*
 * Ampliar fotos (S6; assets/js/ampliar.js). Cada foto de contenido pasa a un botón sin aspecto de botón; el visor es un
 * <dialog> a pantalla completa en negro: cerrar arriba, la imagen entera (contain) con su pie, y anterior, cuenta y siguiente abajo.
 * Sin animaciones (también con movimiento reducido).
 */
button.frlh-ampliar,
button.frlh-ampliar:is(:hover, :focus, :active) {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: inherit;
	font: inherit;
	line-height: 0;
	cursor: zoom-in;
}

html.frlh-visor-abierto {
	overflow: hidden;
}

.frlh-visor {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background-color: var(--wp--preset--color--negro);
	color: var(--wp--preset--color--blanco);
}

.frlh-visor[open] {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
}

.frlh-visor__figura {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	min-height: 0;
	margin: 0;
}

.frlh-visor__imagen {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	object-fit: contain;
}

.frlh-visor__pie {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40) 0;
	font-size: var(--wp--preset--font-size--base);
	line-height: var(--wp--custom--interlineado--compacto);
	text-align: center;
	color: var(--wp--preset--color--blanco);
}

.frlh-visor__barra {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--40);
}

.frlh-visor__cuenta {
	margin: 0;
	min-width: 4em;
	text-align: center;
	color: var(--wp--preset--color--blanco);
}

.frlh-visor :is(button, button:hover, button:focus) {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--wp--preset--spacing--70);
	height: var(--wp--preset--spacing--70);
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--blanco);
}

.frlh-visor__cerrar {
	justify-self: end;
}

.frlh-visor :focus-visible {
	outline-color: var(--wp--preset--color--blanco);
}

/*
 * Carteles de las fichas que no son el A4 del coloquio (S2, lote 3): h1 de varios renglones con 2 mc de interlineado, así que
 * todas sus líneas base caen en una línea (también en L); subtítulo (frlh-cartel__subtitulo) de 16 × 1,307² (token l:
 * 27,3 px a 1332 px o más y por escalones según el tramo), en negro y 400, interlineado de 1 mc, apoyado 2 líneas por debajo del título;
 * botón con el borde inferior en una línea (3 por debajo) y la nota una línea más abajo.
 * Lista lateral en L, también apoyada (como en M y S): etiquetas, nombres, detalles y datos con 1 mc de interlineado y
 * separaciones enteras en mc. Primera etiqueta con la línea base 1 línea por debajo del borde superior del lateral (6f), nombre y
 * detalle a 1 línea, 2 líneas entre personas y antes de cada etiqueta; datos con la última línea base en 23f (abajo del lateral) y,
 * si el lateral se llena, 2 líneas por debajo del último nombre. El estado de la inscripción sin enlace es una caja de botón:
 * se apoya por el borde inferior, como los botones.
 */
.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__subtitulo {
	--frlh-fs: var(--wp--preset--font-size--l);
	--frlh-lh: var(--frlh-mc);
	--frlh-g: 2;
	font-weight: 400;
	color: var(--wp--preset--color--negro);
}

@media (min-width: 64em) {
	.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__titulo {
		--frlh-lh: calc(2 * var(--f));
	}

	.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__subtitulo {
		--frlh-lh: var(--f);
		margin-top: calc(2 * var(--f) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs) - var(--frlh-sube)) !important;
	}

	.frlh-cartel:not(.frlh-cartel--a4) .frlh-inscripcion {
		margin-top: calc(3 * var(--f) - var(--frlh-boton));
	}

	.frlh-cartel:not(.frlh-cartel--a4) :is(.frlh-cartel__participantes > .is-style-frlh-etiqueta, .frlh-cartel__persona > p, .frlh-cartel__datos) {
		--frlh-sube: calc(var(--frlh-lh) / 2 + (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs));
		--frlh-baja: calc(var(--frlh-lh) / 2 - (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs));
		--frlh-lh: var(--frlh-mc);
		font-size: var(--frlh-fs) !important;
		line-height: var(--frlh-lh);
		margin-top: calc(var(--frlh-g) * var(--frlh-mc) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs) - var(--frlh-sube)) !important;
		margin-bottom: calc(-1 * var(--frlh-baja)) !important;
	}

	.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__participantes > .is-style-frlh-etiqueta,
	.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__lateral > .frlh-cartel__datos {
		--frlh-g: 2;
	}

	.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__participantes > .is-style-frlh-etiqueta:first-child,
	.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__persona > p {
		--frlh-g: 1;
	}

	.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__persona > p {
		--frlh-fs: var(--wp--preset--font-size--base);
	}

	.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__persona + .frlh-cartel__persona {
		margin-top: 0;
	}

	.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__persona + .frlh-cartel__persona > p:first-child {
		--frlh-g: 2;
	}

	/* Datos abajo del lateral (margin-top: auto); la separación mínima con lo de encima va en el relleno. */
	.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__lateral > .frlh-cartel__datos {
		margin-top: auto !important;
		padding-top: calc(var(--frlh-g) * var(--frlh-mc) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs) - var(--frlh-sube));
	}

	.frlh-cartel:not(.frlh-cartel--a4) .frlh-cartel__lateral > .frlh-cartel__datos:first-child {
		--frlh-g: 1;
	}

	.frlh-cartel:not(.frlh-cartel--a4) .frlh-inscripcion > .frlh-inscripcion__nota {
		--frlh-sube: calc(var(--frlh-lh) / 2 + (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs));
		--frlh-baja: calc(var(--frlh-lh) / 2 - (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs));
		--frlh-fs: var(--wp--preset--font-size--base);
		--frlh-lh: var(--frlh-mc);
		--frlh-g: 1;
		font-size: var(--frlh-fs) !important;
		line-height: var(--frlh-lh);
		margin-top: calc(var(--frlh-g) * var(--frlh-mc) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs) - var(--frlh-sube)) !important;
		margin-bottom: calc(-1 * var(--frlh-baja)) !important;
	}
}

@supports (text-box: trim-both cap alphabetic) {
	@media (min-width: 64em) {
		.frlh-cartel:not(.frlh-cartel--a4) :is(.frlh-inscripcion > .frlh-inscripcion__nota, .frlh-cartel__participantes > .is-style-frlh-etiqueta, .frlh-cartel__persona > p, .frlh-cartel__datos) {
			--frlh-sube: 0px;
			--frlh-baja: 0px;
			text-box: trim-both cap alphabetic;
		}
	}
}

/*
 * Participantes con retrato: el papel («Coloquio con», «Modera») va como etiqueta encima de cada nombre, en tamaño base.
 */
.frlh-persona > .frlh-persona__papel {
	margin-top: var(--wp--preset--spacing--20);
	margin-bottom: var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--base);
	line-height: var(--wp--custom--interlineado--compacto);
}

/*
 * Tablas apiladas en < 600 px (clase frlh-tabla-apilada; la de incentivos fiscales de Colabora): una ficha por fila, con la
 * primera celda (la modalidad) como título y el tratamiento debajo. La cabecera de la tabla queda solo para lectores de pantalla.
 */
@media (max-width: 37.49em) {
	.wp-block-table.frlh-tabla-apilada :is(table, thead, tbody, tr, th, td) {
		display: block;
		width: auto;
	}

	.wp-block-table.frlh-tabla-apilada table {
		border: 0;
	}

	.wp-block-table.frlh-tabla-apilada thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.wp-block-table.frlh-tabla-apilada tbody tr {
		padding-block: var(--wp--preset--spacing--40);
		border-top: 1px solid var(--wp--preset--color--beige);
	}

	.wp-block-table.frlh-tabla-apilada tbody tr:last-child {
		border-bottom: 1px solid var(--wp--preset--color--beige);
	}

	.wp-block-table.frlh-tabla-apilada :is(td, th) {
		padding: 0;
		border: 0;
		text-align: left;
	}

	.wp-block-table.frlh-tabla-apilada td:first-child {
		margin-bottom: var(--wp--preset--spacing--10);
		font-size: var(--wp--preset--font-size--l);
		font-weight: 600;
		line-height: var(--wp--custom--interlineado--etiqueta);
		color: var(--wp--preset--color--negro);
	}
}

/* Correo en texto seleccionable (de un clic) bajo un botón, p. ej. el de Colabora. */
.frlh-correo {
	margin: var(--wp--preset--spacing--20) 0 0;
	user-select: all;
	color: var(--wp--preset--color--negro);
}

/*
 * Banda de Colabora de la portada (superficie gris claro con título): sus textos se apoyan en las líneas de la retícula,
 * contadas desde el borde superior de la banda. Título (xl) con la base en la línea 3; párrafo (7 celdas) 2 líneas más abajo; botón con el
 * borde inferior en una línea 3 por debajo (en S, la parte alta 2 por debajo); cierra 3 líneas bajo el botón.
 */
.is-style-frlh-superficie-gris-claro.frlh-banda-colabora {
	padding-block: 0 calc(3 * var(--frlh-mc));
}

.frlh-banda-colabora > .frlh-reticula > .frlh-ancho-8 {
	margin-right: 0;
}

.frlh-banda-colabora :is(h2, p) {
	--frlh-sube: calc(var(--frlh-lh) / 2 + (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs));
	--frlh-baja: calc(var(--frlh-lh) / 2 - (var(--wp--custom--fuente--ascendente) - var(--wp--custom--fuente--descendente)) / 2 * var(--frlh-fs));
	font-size: var(--frlh-fs) !important;
	line-height: var(--frlh-lh);
	margin-top: calc(var(--frlh-g) * var(--frlh-mc) - var(--wp--custom--fuente--mayuscula) * var(--frlh-fs) - var(--frlh-sube)) !important;
	margin-bottom: calc(-1 * var(--frlh-baja)) !important;
}

.frlh-banda-colabora h2 {
	--frlh-fs: var(--wp--preset--font-size--xl);
	--frlh-lh: calc(2 * var(--frlh-mc));
	--frlh-g: 4;
}

.frlh-banda-colabora p {
	--frlh-fs: var(--wp--preset--font-size--base);
	--frlh-lh: var(--frlh-mc);
	--frlh-g: 2;
}

.frlh-banda-colabora .wp-block-buttons {
	margin: calc(2 * var(--frlh-mc)) 0 0 !important;
}

@media (min-width: 37.5em) {
	.frlh-banda-colabora h2 {
		--frlh-lh: var(--frlh-mc);
		--frlh-g: 3;
	}

	.frlh-banda-colabora p {
		max-width: calc(7 * var(--frlh-celda));
	}

	.frlh-banda-colabora .wp-block-buttons {
		margin: calc(3 * var(--frlh-mc) - var(--frlh-boton)) 0 0 !important;
	}
}

@supports (text-box: trim-both cap alphabetic) {
	.frlh-banda-colabora :is(h2, p) {
		--frlh-sube: 0px;
		--frlh-baja: 0px;
		text-box: trim-both cap alphabetic;
	}
}

/*
 * Propuesta S1 y S8 (lote 4, solo para enseñar a Rafa): prosa con margen desde 1024 px en la página de Arderius y en las fichas
 * de actividad. El texto ocupa 7 celdas menos un medianil (el medianil por dentro, como en el resto de piezas de la rejilla única)
 * y arranca en la misma línea que el título de la cabecera (vertical 1). Las 4 celdas del margen (9 a 12):
 *   · en la página de Arderius llevan las figuras: flotan a la derecha, fuera de la caja del texto, así que el texto fluye sin
 *     cortes ni huecos. Cada figura empieza donde empieza el párrafo que le sigue en el contenido, puede alargarse junto a los
 *     siguientes y, si chocase con la figura de debajo, esa baja lo justo (los flotantes no se solapan). Las secciones a todo el
 *     ancho van debajo (clear);
 *   · en las fichas quedan libres: las figuras van en la columna del texto y la información práctica es su sección de siempre
 *     (lote 3), debajo del contenido. Nada fijo en el margen; los títulos de sección siguen fijos dentro de su sección.
 */
@media (min-width: 64em) {
	.frlh-prosa-margen .entry-content > :not(.frlh-seccion, .frlh-cartel, .frlh-cabecera, .alignwide, .alignfull, .wp-block-table, .frlh-galeria, .frlh-rejilla, .is-style-frlh-cronologia) {
		max-width: calc(7 * var(--frlh-celda) - var(--wp--custom--reticula--medianil));
		margin-left: var(--frlh-celda) !important;
	}

	.page.frlh-prosa-margen .entry-content > :is(.frlh-seccion, .wp-block-table, .frlh-galeria, .frlh-rejilla, .is-style-frlh-cronologia, .alignwide) {
		clear: both;
	}

	.page.frlh-prosa-margen .entry-content > .wp-block-image:not(.alignwide, .alignfull) {
		float: right;
		clear: right;
		width: calc(4 * var(--frlh-celda) - var(--wp--custom--reticula--medianil));
		max-width: none;
		margin: 0 var(--wp--custom--reticula--medianil) var(--wp--preset--spacing--40) 0 !important;
	}
}

/*
 * Propuesta S3 (lote 4, solo para enseñar a Rafa): La Fundación. Banda de Motivación con su primera frase como declaración,
 * Misión, visión y valores en tres columnas y Líneas de trabajo en tres teselas de fondo gris claro (sin flecha ni efecto: no son enlaces).
 */
.frlh-seccion > .is-style-frlh-etiqueta:first-child,
.frlh-banda-motivacion .is-style-frlh-etiqueta {
	margin-bottom: var(--wp--preset--spacing--50);
}

.frlh-banda-motivacion .frlh-declaracion {
	margin-bottom: var(--wp--preset--spacing--50);
	font-weight: 400;
	line-height: var(--wp--custom--interlineado--titular);
	color: var(--wp--preset--color--negro);
}

.frlh-columna > * {
	margin: 0;
}

.frlh-columna > h3 {
	margin-bottom: var(--wp--preset--spacing--20);
}

.wp-block-group.frlh-tesela.frlh-tesela--texto {
	aspect-ratio: auto;
	justify-content: flex-start;
	gap: var(--wp--preset--spacing--30);
	overflow: visible;
}

.frlh-tesela--texto::before,
.frlh-tesela--texto::after {
	display: none;
}

.frlh-tesela--texto > * {
	margin: 0;
}

.frlh-tesela--texto > h3 {
	color: var(--wp--preset--color--negro);
}
