/* ==========================================================================
   Renilla 2 — «Papel y azul». Fondo claro, tinta casi negra y un azul eléctrico.
   Una sola grotesca (Host Grotesk) en mayúsculas, márgenes estrechos, líneas finas
   y la foto mandando. Referencias: Palomino (iris, pie, cursor) y Gallery Play (mosaico).
   Tokens → base → cabecera → obturador → cursor → portada (ojo) → selección
   → categorías → precios → contacto → sobre mí → archivo → proyecto → 404
   → pie → visor → movimiento → móvil.
   ========================================================================== */

:root {
	--fondo: var(--wp--preset--color--fondo, #f2f2f0);
	--superficie: var(--wp--preset--color--superficie, #fff);
	--marino: var(--wp--preset--color--marino, #001f56);
	--azul: var(--wp--preset--color--electrico, #1f4bff);
	--tinta: var(--wp--preset--color--tinta, #0b0f19);
	--tenue: var(--wp--preset--color--tenue, #474d59);
	--cielo: var(--wp--preset--color--bengala, #dce4ff);
	--linea: rgba(11, 15, 25, 0.14);

	--t-pequeno: var(--wp--preset--font-size--pequeno);
	--t-texto: var(--wp--preset--font-size--texto);
	--t-entrada: var(--wp--preset--font-size--entrada);
	--t-titulo: var(--wp--preset--font-size--titulo);
	--t-portada: var(--wp--preset--font-size--portada);
	--t-etiqueta: 13px;

	/* Márgenes estrechos, como Palomino (20 px a 1440). */
	--m: clamp(1rem, 0.6rem + 1vw, 1.5rem);
	--hueco: clamp(6rem, 3.5rem + 7vw, 12rem); /* entre secciones */
	--gap: clamp(0.75rem, 1.2vw, 1.25rem); /* entre columnas */
	--cabecera: 4.25rem;

	--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--ease-in-out: cubic-bezier(0.7, 0, 0.2, 1);
	--rapido: 180ms;
	--medio: 450ms;
	--lento: 900ms;

	color-scheme: light;
}

/* ---------- Base ---------- */

html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--fondo);
	color: var(--tinta);
	font-variant-numeric: tabular-nums;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
img, video { max-width: 100%; height: auto; display: block; }
::selection { background: var(--azul); color: #fff; }

:where(a, button, input, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--azul);
	outline-offset: 3px;
}

h1, h2, .wp-block-post-title, .wp-block-query-title { text-wrap: balance; }
:where(h1, h2, h3) em { font-style: normal; color: var(--azul); }
p { text-wrap: pretty; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; /* taste-skill-ignore: texto solo para lectores de pantalla */
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.wp-site-blocks { display: flex; flex-direction: column; min-height: 100svh; }
.wp-site-blocks > * { margin-block-start: 0 !important; }
.wp-site-blocks > main, .wp-site-blocks > .wp-block-group:is(main) { flex: 1; }
main {
	position: relative;
	z-index: 1;
	background: var(--fondo);
	padding-bottom: var(--hueco);
}
main.portada { padding-bottom: var(--hueco); }

/* Etiqueta: mayúsculas pequeñas con un punto azul delante («● Selección»). */
.etiqueta {
	display: flex;
	align-items: center;
	gap: 0.55em;
	margin: 0;
	font-size: var(--t-etiqueta) !important;
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--tinta);
}
.etiqueta::before {
	content: "";
	flex: none;
	width: 0.55em;
	height: 0.55em;
	border-radius: 50%;
	background: var(--azul);
}

/* Botones: píldora azul; la versión «contorno» es una línea fina. */
.wp-element-button, .wp-block-button__link {
	transition: background-color var(--medio) var(--ease-out), color var(--medio) var(--ease-out), transform var(--rapido) ease;
}
.wp-block-button__link:active { transform: scale(0.97); }
.wp-block-button__link::after { content: " →"; display: inline-block; transition: transform var(--medio) var(--ease-out); }
.wp-block-button__link:hover::after { transform: translateX(0.25em); }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--tinta);
	border: 1px solid currentColor;
	padding: calc(0.95rem - 1px) calc(1.6rem - 1px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--tinta);
	border-color: var(--tinta);
	color: #fff;
}

/* ---------- Cabecera: logo · enlaces centrados · Instagram ---------- */

/* En «difference» el blanco se lee negro sobre el papel y se invierte sobre las fotos. */
.sitio-cabecera {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 50;
	color: #fff;
	mix-blend-mode: difference;
}
.admin-bar .sitio-cabecera { top: var(--wp-admin--admin-bar--height, 32px); }
.sitio-cabecera:has(.is-menu-open) { mix-blend-mode: normal; color: var(--tinta); }
.cabecera {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
	padding: 1.1rem var(--m);
}
.cabecera > * { margin: 0 !important; }
.marca {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	color: inherit;
	text-decoration: none;
	justify-self: start;
}
.marca__mono { width: 1.6rem; height: auto; flex: none; }
.marca__nombre {
	font-size: var(--t-etiqueta);
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
}
.cabecera a { color: inherit; text-decoration: none; }
.cabecera__nav { justify-self: center; }
.cabecera__nav .wp-block-navigation-item__content { padding-block: 0.5rem; }
.cabecera__nav .wp-block-navigation__container { gap: clamp(1.25rem, 2.6vw, 2.75rem); }
.cabecera__nav .wp-block-navigation-item__content:hover { text-decoration: underline; text-underline-offset: 0.35em; }
.cabecera__red {
	justify-self: end;
	font-size: var(--t-etiqueta);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.cabecera__nav .wp-block-navigation__responsive-container-open,
.cabecera__nav .wp-block-navigation__responsive-container-close { color: inherit; }
/* El menú del móvil: pantalla de papel con los enlaces en grande. */
.cabecera__nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem var(--m); }
.cabecera__nav .is-menu-open .wp-block-navigation__responsive-container-content,
.cabecera__nav .is-menu-open .wp-block-navigation__container {
	gap: 0.75rem;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	text-align: left;
}
.cabecera__nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem; }
.cabecera__nav .is-menu-open .wp-block-navigation-item__content {
	font-size: clamp(2.75rem, 13vw, 5rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 0.95;
	text-transform: uppercase;
}

/* ---------- Scroll suave (estilos que pide Lenis) ---------- */

html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* ---------- Titulares por líneas ---------- */

.is-style-lineas .line {
	display: block;
	overflow-x: visible;
	overflow-y: clip;
	padding-bottom: 0.08em;
	margin-bottom: -0.08em;
}
.is-style-lineas [data-line] { display: block; }

/* ---------- Obturador entre páginas ---------- */

.obturador {
	position: fixed;
	inset: 0;
	z-index: 200;
	overflow: hidden;
	pointer-events: none;
	visibility: hidden;
}
.obturador svg {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 160vmax;
	height: 160vmax;
	margin: -80vmax 0 0 -80vmax;
	overflow: visible;
}
.obturador__lamina {
	fill: var(--tinta);
	stroke: var(--azul);
	stroke-opacity: 0.55;
	stroke-width: 0.35;
	transform: translateY(100px); /* abierta: fuera de la pantalla */
}
.obturador__punto { fill: var(--azul); opacity: 0; }

/* ---------- Cursor (solo con ratón) ---------- */

.cursor { display: none; }
@media (hover: hover) and (pointer: fine) {
	html.cursor-propio, html.cursor-propio :is(a, button, [role="button"], label, summary) { cursor: none; }
	html.cursor-propio :is(input, textarea, select) { cursor: auto; }
	.cursor.activo {
		display: grid;
		place-items: center;
		position: fixed;
		left: 0;
		top: 0;
		z-index: 150;
		width: 12px;
		height: 12px;
		border-radius: 50%;
		background: #fff;
		mix-blend-mode: difference;
		pointer-events: none;
		transform: translate3d(var(--x, -100px), var(--y, -100px), 0) translate(-50%, -50%);
		transition: width var(--medio) var(--ease-out), height var(--medio) var(--ease-out), background-color var(--medio) ease;
	}
	.cursor.sobre-enlace { width: 56px; height: 56px; }
	.cursor.sobre-foto { width: 88px; height: 88px; background: var(--azul); mix-blend-mode: normal; }
	.cursor__texto {
		font-size: 12px;
		font-weight: 500;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		color: #fff;
		opacity: 0;
		transition: opacity var(--rapido) ease;
	}
	.cursor.sobre-foto .cursor__texto { opacity: 1; }
}

/* ==========================================================================
   Portada: nombre → ojo → «Ver portfolio»
   ========================================================================== */

.ojo {
	position: relative;
	min-height: 100svh;
	box-sizing: border-box;
	display: grid;
	align-content: center;
	padding: calc(var(--cabecera) + 0.5rem) var(--m) clamp(1.5rem, 4vh, 2.5rem);
	margin: 0 !important;
	max-width: none !important;
	overflow: clip;
	isolation: isolate;
}
.ojo__defs { position: absolute; width: 0; height: 0; }
.ojo__contenido {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	row-gap: clamp(1rem, 3vh, 1.75rem);
	align-items: end;
}
.ojo__contenido > * { margin: 0 !important; }

/* El nombre, en escalera (cada línea más sangrada que la anterior). */
.ojo__titulo {
	grid-column: 1 / -1;
	grid-row: 1;
	font-size: clamp(3.5rem, 12vw, 13rem) !important;
	line-height: 0.84 !important;
	letter-spacing: -0.035em !important;
	font-weight: 600 !important;
}
.ojo__linea { display: block; overflow-y: clip; padding-bottom: 0.06em; margin-bottom: -0.06em; }
.ojo__linea > span { display: block; }
.ojo__linea:nth-child(2) { text-align: right; padding-right: 0.04em; } /* compensa el tracking negativo de la última letra */
.ojo__linea:nth-child(3) { padding-left: 30vw; }
.ojo__frase {
	grid-column: 1 / 4;
	grid-row: 1;
	align-self: end;
	margin-bottom: 1.2vw !important;
	position: relative;
	z-index: 1;
}

/* El ojo: la foto vista a través de una almendra. */
.ojo__hueco {
	grid-column: 1 / -1;
	justify-self: center;
	position: relative;
	width: min(68vw, max(40vw, (100svh - 20.2vw - 13rem) * 2.6));
	aspect-ratio: 2.6 / 1;
}
.ojo__ventana {
	position: absolute;
	inset: 0;
	overflow: hidden;
	-webkit-clip-path: url(#ojo-recorte);
	clip-path: url(#ojo-recorte);
	background: var(--cielo);
}
.ojo__img, .ojo--editor .ojo__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ojo--sin-foto .ojo__ventana { background: linear-gradient(120deg, var(--marino), var(--azul)); }
.ojo__trazo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
	pointer-events: none;
}
.ojo__trazo path { fill: none; stroke: var(--tinta); stroke-width: 1; }
/* Iris = anillo de enfoque de una cámara, con su pupila azul. */
.ojo__iris {
	position: absolute;
	left: 50%;
	top: 50%;
	aspect-ratio: 1;
	height: 62%;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.9);
	box-shadow: inset 0 0 0 0.6vw rgba(31, 75, 255, 0.18);
	pointer-events: none;
}
.ojo__iris::before, .ojo__iris::after {
	content: "";
	position: absolute;
	background: rgba(255, 255, 255, 0.9);
}
.ojo__iris::before { left: 50%; top: -8%; width: 1px; height: 116%; transform: translateX(-50%); -webkit-mask: linear-gradient(#000 0 10%, transparent 10% 90%, #000 90%); mask: linear-gradient(#000 0 10%, transparent 10% 90%, #000 90%); }
.ojo__iris::after { top: 50%; left: -8%; height: 1px; width: 116%; transform: translateY(-50%); -webkit-mask: linear-gradient(90deg, #000 0 10%, transparent 10% 90%, #000 90%); mask: linear-gradient(90deg, #000 0 10%, transparent 10% 90%, #000 90%); }
.ojo__pupila {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 9px;
	height: 9px;
	margin: -4.5px 0 0 -4.5px;
	border-radius: 50%;
	background: var(--azul);
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.85);
}
/* Esquinas del visor. */
.ojo__esquina {
	position: absolute;
	width: 18px;
	height: 18px;
	border: 0 solid var(--tinta);
	pointer-events: none;
}
.ojo__esquina--1 { left: -10px; top: -10px; border-width: 1px 0 0 1px; }
.ojo__esquina--2 { right: -10px; top: -10px; border-width: 1px 1px 0 0; }
.ojo__esquina--3 { left: -10px; bottom: -10px; border-width: 0 0 1px 1px; }
.ojo__esquina--4 { right: -10px; bottom: -10px; border-width: 0 1px 1px 0; }

.ojo .wp-block-buttons { grid-column: 1 / -1; justify-content: center; }

/* Con JS la foto ocupa toda la sección y la almendra se recorta donde está el hueco:
   así, al hacer scroll, el ojo puede abrirse hasta llenar la pantalla. */
.ojo--vivo > .ojo__ventana { position: absolute; inset: 0; z-index: 1; background: none; }
.ojo--vivo .ojo__titulo, .ojo--vivo .ojo__frase, .ojo--vivo .wp-block-buttons { position: relative; z-index: 3; }
.ojo--vivo .ojo__hueco { z-index: 2; }

.ojo--editor { min-height: 0; padding: 3rem 1rem; }
.ojo--editor .ojo__hueco { margin-top: 1rem; }

/* ---------- Selección: 20 fotos iguales ---------- */

.seccion-cabeza, .seleccion__cabeza {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	align-items: start;
	margin-bottom: clamp(2.5rem, 6vh, 4.5rem) !important;
}
.seleccion { position: relative; z-index: 2; background: var(--fondo); padding: var(--hueco) var(--m) 0; }
.seleccion__cabeza > .etiqueta { grid-column: 1 / 4; padding-top: 0.6em; }
.seleccion__titulo { grid-column: 4 / -1; margin: 0 !important; font-size: var(--t-titulo) !important; }

.wp-block-gallery.is-style-reticula {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 8px !important;
	margin: 0 !important;
}
.wp-block-gallery.is-style-reticula > figure.wp-block-image {
	width: auto !important;
	margin: 0 !important;
	aspect-ratio: 2 / 3;
	overflow: hidden;
	background: var(--cielo);
	position: relative;
}
.wp-block-gallery.is-style-reticula > figure.wp-block-image a { display: block; width: 100%; height: 100%; }
.wp-block-gallery.is-style-reticula > figure.wp-block-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform 1.1s var(--ease-out), filter var(--medio) ease;
}
.wp-block-gallery.is-style-reticula > figure.wp-block-image a:is(:hover, :focus-visible) img { transform: scale(1.05); }
.wp-block-gallery.is-style-reticula figcaption { display: none !important; }

/* ---------- Categorías: carrusel horizontal ---------- */

.categorias {
	position: relative;
	z-index: 2;
	background: var(--fondo);
	padding: var(--hueco) 0 0;
	margin: 0 !important;
	max-width: none !important;
	overflow: clip;
}
.categorias__cabeza {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	align-items: end;
	padding: 0 var(--m);
	margin-bottom: clamp(1.5rem, 4vh, 2.5rem);
}
.categorias__cabeza > .etiqueta { grid-column: 1 / 4; align-self: start; padding-top: 0.6em; }
.categorias__titulo { grid-column: 4 / 10; margin: 0; font-size: var(--t-titulo); }
.categorias__control {
	grid-column: 10 / -1;
	justify-self: end;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.categorias__cuenta { font-size: var(--t-etiqueta); letter-spacing: 0.04em; margin-right: 0.75rem; color: var(--tenue); }
.categorias__cuenta b { font-weight: 500; color: var(--tinta); }
.categorias__btn {
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	border: 1px solid var(--tinta);
	background: transparent;
	color: var(--tinta);
	font: inherit;
	font-size: 1.1rem;
	cursor: pointer;
	transition: background-color var(--medio) var(--ease-out), color var(--medio) var(--ease-out);
}
.categorias__btn:hover { background: var(--tinta); color: #fff; }
.categorias__btn:disabled { opacity: 0.3; pointer-events: none; }
.categorias__pista {
	list-style: none;
	margin: 0;
	padding: 0 var(--m);
	display: flex;
	gap: var(--gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: var(--m);
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	cursor: grab;
}
.categorias__pista::-webkit-scrollbar { display: none; }
.categorias__pista.arrastrando { cursor: grabbing; scroll-snap-type: none; }
.categoria {
	flex: 0 0 auto;
	width: min(32vw, 64svh * 0.75);
	min-width: 15rem;
	scroll-snap-align: start;
}
.categoria a {
	position: relative;
	display: block;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	color: #fff;
	text-decoration: none;
	background: var(--marino);
}
.categoria__foto { position: absolute; inset: 0; overflow: hidden; }
.categoria__img {
	position: absolute;
	top: 0;
	left: -8%;
	width: 116% !important;
	max-width: none !important;
	height: 100% !important;
	object-fit: cover;
	transition: transform 1.1s var(--ease-out);
}
.categoria a::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 31, 86, 0.72), rgba(0, 31, 86, 0.1) 42%, transparent 60%);
	transition: opacity var(--medio) ease;
}
.categoria a:is(:hover, :focus-visible) .categoria__img { transform: scale(1.06); }
.categoria__num, .categoria__nombre, .categoria__cuenta { position: absolute; z-index: 2; left: 1.1rem; right: 1.1rem; }
.categoria__num { top: 1rem; font-size: var(--t-etiqueta); letter-spacing: 0.04em; }
.categoria__nombre {
	bottom: 2.6rem;
	font-size: clamp(2rem, 1rem + 2.6vw, 3.75rem);
	font-weight: 600;
	line-height: 0.9;
	letter-spacing: -0.03em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}
.categoria__cuenta { bottom: 1rem; font-size: var(--t-etiqueta); letter-spacing: 0.04em; text-transform: uppercase; opacity: 0.85; }
.categorias__barra { position: relative; height: 1px; margin: 1.75rem var(--m) 0; background: var(--linea); }
.categorias__barra span { position: absolute; inset: 0; background: var(--azul); transform-origin: left; transform: scaleX(var(--p, 0.15)); }

/* En escritorio, con JS, la sección se fija y la pista se mueve en horizontal con el scroll. */
.categorias--fijado { min-height: 100svh; box-sizing: border-box; padding-top: calc(var(--cabecera) + 2rem); padding-bottom: 2rem; display: flex; flex-direction: column; justify-content: center; }
.categorias--fijado .categorias__pista { overflow: visible; scroll-snap-type: none; cursor: auto; }
.categorias--fijado .categoria { width: min(32vw, 58svh * 0.75); }

/* ---------- Precios ---------- */

.precios { padding: var(--hueco) var(--m) 0; }
.precios__titulo { margin: 0 !important; font-size: var(--t-titulo) !important; }
.precios__entrada { font-size: var(--t-entrada); max-width: 40ch; margin: 1.25rem 0 0 !important; color: var(--tenue); }
.precios__lista {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: clamp(2.5rem, 6vh, 4rem) !important;
	border-top: 1px solid var(--tinta);
}
.precio {
	position: relative;
	margin: 0 !important;
	padding: 1.5rem clamp(1rem, 2vw, 2rem) 2rem;
	display: flex;
	flex-direction: column;
	border-right: 1px solid var(--linea);
	transition: background-color var(--medio) var(--ease-out);
}
.precio:first-child { padding-left: 0; }
.precio:last-child { border-right: 0; }
.precio:hover { background: var(--superficie); }
.precio:first-child:hover { background: none; }
.precio > * { margin-block: 0 !important; }
.precio__nombre { font-size: var(--t-etiqueta) !important; font-weight: 400 !important; letter-spacing: 0.04em !important; text-transform: uppercase !important; }
.precio__cifra {
	font-size: clamp(3.5rem, 2rem + 5vw, 7.5rem);
	font-weight: 600;
	line-height: 0.9;
	letter-spacing: -0.04em;
	margin: 1.25rem 0 1.75rem !important;
}
.precio__lista { list-style: none; padding: 0; margin: 0 0 2rem !important; display: grid; gap: 0.5rem; color: var(--tenue); }
.precio__lista li { display: flex; gap: 0.6em; align-items: baseline; }
.precio__lista li::before { content: ""; flex: none; width: 0.45em; height: 0.45em; border-radius: 50%; background: var(--azul); transform: translateY(-0.1em); }
.precio .wp-block-buttons { margin-top: auto !important; }

/* ---------- Contacto ---------- */

.contacto {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	align-items: end;
	padding: var(--hueco) var(--m) 0;
}
.contacto__foto { grid-column: 1 / 7; margin: 0 !important; aspect-ratio: 4 / 5; overflow: hidden; }
.contacto__foto img { width: 100%; height: 115% !important; object-fit: cover; }
.contacto__tarjeta {
	grid-column: 8 / -1;
	display: flex;
	flex-direction: column;
	border-top: 1px solid var(--tinta);
	padding-top: 1.25rem;
}
.contacto__tarjeta > * { margin-block: 0 1.25rem !important; }
.contacto__titulo { font-size: var(--t-titulo) !important; margin-bottom: 1.5rem !important; }
.contacto__tarjeta a:not(.wp-block-button__link) { color: var(--tinta); }
.contacto__tarjeta a:not(.wp-block-button__link):hover { color: var(--azul); }
.contacto__accion { margin: 0.75rem 0 0 !important; }
.contacto__accion .wp-block-button__link { padding-block: 1.15rem; }

/* ---------- Sobre mí ---------- */

.pagina-bio { padding-bottom: var(--hueco); }
.pagina-bio .wp-block-post-content > * { margin-block: 0; }
.bio-frase {
	position: relative;
	min-height: 100svh;
	box-sizing: border-box;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 2rem;
	padding: calc(var(--cabecera) + 3rem) var(--m) 4rem;
	text-align: center;
	overflow: clip;
}
.bio-frase .etiqueta { justify-content: center; position: relative; z-index: 2; }
.bio-frase__texto {
	position: relative;
	z-index: 2;
	max-width: 21ch;
	margin: 0 !important;
	font-size: clamp(1.9rem, 0.8rem + 3.4vw, 4.5rem);
	font-weight: 500;
	line-height: 1.04;
	letter-spacing: -0.03em;
}
.rellena .palabra { opacity: 0.2; }
.bio-flota { position: absolute !important; margin: 0 !important; z-index: 1; }
.bio-flota img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
.bio-flota--1 { width: clamp(6rem, 11vw, 11rem); left: 4%; top: 16%; }
.bio-flota--2 { width: clamp(5rem, 9vw, 9rem); right: 7%; top: 12%; }
.bio-flota--3 { width: clamp(5rem, 8vw, 8rem); left: 12%; bottom: 7%; }
.bio-flota--4 { width: clamp(6rem, 12vw, 12rem); right: 3%; bottom: 10%; }

.bio {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	align-items: start;
	padding: 0 var(--m);
}
.bio__foto { grid-column: 1 / 6; margin: 0 !important; aspect-ratio: 4 / 5; overflow: hidden; }
.bio__foto img { width: 100%; height: 115% !important; object-fit: cover; }
.bio__texto { grid-column: 7 / -1; border-top: 1px solid var(--tinta); padding-top: 1.25rem; }
.bio__texto > * { margin-block: 0 !important; }
.bio__titulo { font-size: clamp(2.5rem, 1rem + 4.2vw, 5.5rem) !important; }
.bio__entrada { font-size: var(--t-entrada); max-width: 34ch; margin-top: 1.75rem !important; }
.bio__datos { list-style: none; padding: 0; margin-top: 2.25rem !important; border-top: 1px solid var(--linea); }
.bio__datos li {
	display: grid;
	grid-template-columns: minmax(7rem, 1fr) 2.5fr;
	gap: 1rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--linea);
}
.bio__datos li span { font-size: var(--t-etiqueta); letter-spacing: 0.04em; text-transform: uppercase; color: var(--tenue); padding-top: 0.2em; }
.bio__datos a { color: var(--tinta); }
.bio__datos a:hover { color: var(--azul); }
.bio__texto .wp-block-buttons { margin-top: 2.25rem !important; gap: 0.75rem; }

/* ---------- Archivo: título, carrusel y proyectos ---------- */

.archivo, .pagina, .proyecto, .error404-contenido {
	padding-top: calc(var(--cabecera) + clamp(2.5rem, 8vh, 5rem));
}
.archivo {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	align-content: start;
}
.archivo > * { grid-column: 1 / -1; margin-block: 0 !important; }
/* Márgenes en los hijos (no en el contenedor) para que el carrusel vaya a sangre y se pueda fijar. */
.archivo > :not(.categorias, .pin-spacer) { margin-inline: var(--m) !important; }
.archivo__titulo { font-size: var(--t-portada) !important; line-height: 0.84 !important; overflow-wrap: anywhere; }
.archivo__entrada { grid-column: 1 / 6; max-width: 40ch; font-size: var(--t-entrada); margin-top: 1.25rem !important; color: var(--tenue); }
.archivo > .categorias { padding-top: clamp(3rem, 8vh, 5rem); min-width: 0; margin-inline: 0 !important; }
.archivo > .renilla-carpetas { margin-top: clamp(2.5rem, 6vh, 4rem) !important; }
.archivo__etiqueta { margin-top: var(--hueco) !important; }

.carpetas {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(15rem, 45%), 1fr));
	gap: 8px;
}
.carpeta a { display: block; color: var(--tinta); text-decoration: none; }
.carpeta__img { display: block; aspect-ratio: 3 / 4; overflow: hidden; background: var(--cielo); }
.carpeta__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease-out); }
.carpeta a:is(:hover, :focus-visible) img { transform: scale(1.05); }
.carpeta__nombre { display: block; margin-top: 0.75rem; font-size: var(--t-texto); font-weight: 500; text-transform: uppercase; letter-spacing: 0.02em; }
.carpeta__cuenta { display: block; color: var(--tenue); font-size: var(--t-etiqueta); margin-top: 0.15rem; }

.muro { margin-top: 1.5rem !important; }
.muro__lista {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: var(--gap);
	row-gap: clamp(2.5rem, 5vw, 4.5rem);
}
/* Escalonado, como los proyectos seleccionados de Palomino. */
.muro__lista > li:nth-child(3n + 2) { transform: translateY(clamp(2rem, 6vw, 6rem)); }
.muro__lista > li { margin: 0; }
.muro__foto { margin: 0 0 0.85rem !important; overflow: hidden; aspect-ratio: 4 / 5; background: var(--cielo); }
.muro__foto a { display: block; height: 100%; }
.muro__foto img { width: 100%; height: 100% !important; object-fit: cover; transition: transform 1.1s var(--ease-out); }
.muro__foto a:hover img { transform: scale(1.05); }
.muro__nombre {
	display: flex;
	gap: 0.55em;
	align-items: baseline;
	font-size: var(--t-texto) !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	line-height: 1.25 !important;
	text-transform: uppercase !important;
	margin: 0 !important;
}
.muro__nombre::before { content: ""; flex: none; width: 0.5em; height: 0.5em; border-radius: 50%; background: var(--azul); transform: translateY(-0.05em); }
.muro__nombre a { color: var(--tinta); text-decoration: none; }
.muro__nombre a:hover { color: var(--azul); }
.muro__fecha { margin: 0.2rem 0 0 1.05em !important; color: var(--tenue); font-size: var(--t-etiqueta); text-transform: uppercase; letter-spacing: 0.04em; }
.muro__fecha a { color: inherit; text-decoration: none; }
.muro__fecha a:hover { color: var(--azul); }
.paginacion { margin-top: clamp(5rem, 10vw, 9rem); gap: 1.5rem; font-size: var(--t-texto); }
.paginacion a { color: var(--tinta); }

/* ---------- Página y proyecto ---------- */

.pagina { padding-inline: var(--m); }
.pagina__titulo { margin-bottom: 2.5rem; font-size: var(--t-titulo) !important; }
.pagina--a-sangre { padding-top: 0; }

.proyecto__cabecera {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	padding-inline: var(--m);
}
.proyecto__cabecera > * { grid-column: 1 / -1; margin-block: 0 !important; }
.proyecto__titulo { font-size: var(--t-titulo) !important; max-width: 14ch; }
.proyecto__datos { margin-top: 1.5rem !important; gap: 0.5rem 1.5rem; font-size: var(--t-etiqueta); text-transform: uppercase; letter-spacing: 0.04em; color: var(--tenue); }
.proyecto__datos :where(.wp-block-post-date, .wp-block-post-terms) { font-size: inherit; }
.proyecto__datos a { color: var(--tinta); }
.proyecto__datos a:hover { color: var(--azul); }
.proyecto__entrada { grid-column: 1 / 7 !important; font-size: var(--t-entrada); max-width: 40ch; margin-top: 1.25rem !important; }
.proyecto__portada { margin: clamp(2.5rem, 7vh, 4.5rem) 0 0 !important; height: 88svh; overflow: hidden; }
.proyecto__portada img { width: 100%; height: 115% !important; object-fit: cover; }
/* Portada vertical: se ve entera, a la derecha, con el título fijo en su columna (como Gallery Play). */
.proyecto:has(> .proyecto__portada.es-vertical) {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	align-items: start;
}
.proyecto:has(> .proyecto__portada.es-vertical) > * { grid-column: 1 / -1; }
.proyecto:has(> .proyecto__portada.es-vertical) > .proyecto__cabecera {
	grid-column: 1 / 6;
	grid-row: 1;
	display: block;
	position: sticky;
	top: calc(var(--cabecera) + 2rem);
}
.proyecto:has(> .proyecto__portada.es-vertical) > .proyecto__portada {
	grid-column: 6 / -1;
	grid-row: 1;
	justify-self: end;
	margin: 0 var(--m) 0 0 !important;
}
.proyecto__portada.es-vertical { height: auto; margin-inline: var(--m) !important; }
.proyecto__portada.es-vertical img { height: 88svh !important; width: auto; max-width: 100%; object-fit: contain !important; }
.proyecto__contenido { padding-inline: var(--m); margin-top: 8px !important; }
.proyecto__contenido > :where(p, h2, h3, ul, ol) { max-width: 42rem; margin-block: clamp(2.5rem, 6vh, 4rem); }

/* Galerías del proyecto: mosaico apretado, separaciones de 8 px y cada foto con su proporción. */
.proyecto__contenido .wp-block-gallery.has-nested-images,
.wp-block-gallery.is-style-muro {
	display: block !important;
	columns: 3 18rem;
	column-gap: 8px;
}
.proyecto__contenido .wp-block-gallery.has-nested-images figure.wp-block-image,
.wp-block-gallery.is-style-muro figure.wp-block-image {
	width: 100% !important;
	margin: 0 0 8px !important;
	break-inside: avoid;
	display: block;
	overflow: hidden;
}
.proyecto__contenido .wp-block-gallery.has-nested-images figure.wp-block-image img,
.wp-block-gallery.is-style-muro figure.wp-block-image img {
	width: 100% !important;
	height: auto !important;
	object-fit: contain !important;
	cursor: zoom-in;
	transition: transform 1.1s var(--ease-out);
}
.proyecto__contenido .wp-block-gallery figure.wp-block-image a:hover img { transform: scale(1.03); }
.proyecto__contenido .wp-block-gallery figcaption.wp-element-caption {
	position: static !important;
	background: none !important;
	padding: 0.5rem 0 0 !important;
	color: var(--tenue) !important;
	text-align: left !important;
	font-size: var(--t-pequeno) !important;
	max-height: none !important;
}
.wp-block-gallery.is-style-tira {
	display: flex !important;
	flex-wrap: nowrap !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	gap: 8px !important;
}
.wp-block-gallery.is-style-tira figure.wp-block-image {
	flex: 0 0 clamp(10rem, 18vw, 18rem) !important;
	width: auto !important;
	scroll-snap-align: start;
}
.wp-block-gallery.is-style-tira img { aspect-ratio: 2 / 3; object-fit: cover; }

.proyecto__nav {
	margin: clamp(4rem, 12vh, 8rem) var(--m) 0 !important;
	padding-top: 1.25rem;
	border-top: 1px solid var(--tinta);
	gap: 2rem;
	align-items: flex-start;
}
.proyecto__nav .post-navigation-link-next { text-align: right; margin-left: auto; }
.proyecto__nav a {
	display: block;
	color: var(--tinta);
	text-decoration: none;
	font-size: clamp(1.5rem, 1rem + 2vw, 3rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	text-transform: uppercase;
	line-height: 0.95;
	max-width: 18ch;
}
.proyecto__nav a:hover { color: var(--azul); }
.proyecto__nav .post-navigation-link__label {
	display: block;
	font-size: var(--t-etiqueta);
	font-weight: 400;
	letter-spacing: 0.04em;
	color: var(--tenue);
	margin-bottom: 0.6rem;
}

/* ---------- 404: anillo de fotos ---------- */

.anillo {
	position: relative;
	min-height: max(100svh, 40rem);
	display: grid;
	place-items: center;
	overflow: clip;
	margin: 0 !important;
	max-width: none !important;
}
.anillo__marcos { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; }
.anillo__marco {
	position: absolute;
	left: calc(50% + var(--c) * 39%);
	top: calc(50% + var(--s) * 34%);
	width: var(--w);
	aspect-ratio: 4 / 3;
	transform: translate(-50%, -50%) rotate(var(--r));
	transition: transform var(--medio) var(--ease-out);
}
.anillo__marco.es-vertical { aspect-ratio: 3 / 4; width: calc(var(--w) * 0.8); }
.anillo__marco a { display: block; width: 100%; height: 100%; }
.anillo__marco img { width: 100%; height: 100%; object-fit: cover; }
.anillo__marco:hover, .anillo__marco:focus-within { transform: translate(-50%, -50%) rotate(var(--r)) scale(1.12); z-index: 2; }
.anillo__nucleo { position: relative; z-index: 3; width: min(37.5rem, 100% - 2 * var(--m)); text-align: center; padding-top: var(--cabecera); }
.anillo__nucleo h1 { font-size: clamp(2.75rem, 6vw, 5.5rem); margin: 0; }
.anillo__nucleo .anillo__frase { font-size: var(--t-entrada); max-width: 32ch; margin: 1.25rem auto 0; color: var(--tenue); min-height: 2.6em; }
.anillo__nucleo .wp-block-buttons { justify-content: center; margin-top: 1.75rem; }
.anillo--editor { padding: 3rem 1rem; }
.anillo__aviso { color: var(--tenue); text-align: center; font-size: var(--t-pequeno); }
.error404-contenido { min-height: 70svh; padding-inline: var(--m); display: flex; flex-direction: column; justify-content: center; }

/* ---------- Pie: papel, líneas finas y el nombre gigante relleno de foto ---------- */

.sitio-pie { position: relative; }
.pie {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	background: var(--fondo);
	color: var(--tinta);
	padding: 1.25rem var(--m) 1rem;
	margin: 0 !important;
	border-top: 1px solid var(--tinta);
}
.pie a { color: var(--tinta); text-decoration: none; }
.pie a:hover { color: var(--azul); }
.pie__columnas { gap: var(--gap) !important; margin: 0 !important; font-size: var(--t-pequeno); }
.pie__columnas p { margin: 0; line-height: 1.7; }
.pie__columnas .etiqueta { margin-bottom: 0.75rem; color: var(--tenue); }
.pie__columnas .etiqueta::before { background: var(--tinta); }
.pie__marca {
	min-width: 0;
	overflow: clip;
	margin: clamp(4rem, 12vw, 10rem) 0 0 !important;
	font-size: 11vw;
	font-weight: 400; /* fina, como el pie de Palomino: deja ver la foto */
	text-transform: uppercase;
	line-height: 0.8;
	white-space: nowrap;
	letter-spacing: -0.04em;
	padding-bottom: 0.04em;
	color: var(--marino);
	background: var(--marino) url("../img/pie-textura.webp") center 40% / cover no-repeat;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.pie__marca span { display: inline; }
.pie__legal { margin: 1rem 0 0 !important; font-size: var(--t-etiqueta); letter-spacing: 0.04em; text-transform: uppercase; color: var(--tenue); }

/* ---------- Visor de fotos ---------- */

.lb {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--fondo);
	color: var(--tinta);
	overflow: hidden;
}
.lb::backdrop { background: var(--fondo); }
.lb[open] { display: grid; grid-template-rows: auto 1fr auto; }
.lb__barra {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.75rem var(--m);
	font-size: var(--t-etiqueta);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.lb__escena { position: relative; display: grid; place-items: center; min-height: 0; padding: 0 var(--m); touch-action: pan-y; }
.lb__img {
	max-width: 100%;
	max-height: calc(100svh - 8rem);
	width: auto;
	height: auto;
	object-fit: contain;
	transition: opacity var(--medio) var(--ease-out);
}
.lb__img.cargando { opacity: 0.5; }
.lb__pie { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.75rem var(--m) 1rem; }
.lb__texto { font-size: var(--t-pequeno); color: var(--tenue); margin: 0; flex: 1; text-align: center; }
.lb button {
	font: inherit;
	font-size: var(--t-etiqueta);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--tinta);
	background: none;
	border: 0;
	padding: 0.75rem 0.5rem;
	min-width: 2.75rem;
	min-height: 2.75rem;
	cursor: pointer;
}
.lb button:hover { color: var(--azul); }

/* Estilos de titular elegibles en el editor. */
.is-style-degradado { background: linear-gradient(100deg, var(--azul), var(--marino)); -webkit-background-clip: text; background-clip: text; color: transparent !important; }
.is-style-contorno { color: transparent !important; -webkit-text-stroke: 1.5px var(--tinta); paint-order: stroke fill; }

/* ==========================================================================
   Movimiento. Todo lo que se oculta para animarse tiene una red de seguridad:
   si el JS no llega, a los 3 s aparece igualmente.
   ========================================================================== */

@media (prefers-reduced-motion: no-preference) {
	.js .is-style-lineas [data-line] {
		transform: translateY(105%);
		animation: linea-sube var(--lento) var(--ease-out) forwards;
		animation-delay: calc(var(--i) * 110ms + 150ms);
	}

	/* Llegada a la portada: el nombre, el ojo y el botón esperan al JS. */
	:is(.ojo-entero, .ojo-rapido) .ojo__linea > span { transform: translateY(105%); animation: fr-seguro 0s 3s forwards; }
	:is(.ojo-entero, .ojo-rapido) :is(.ojo__frase, .ojo .wp-block-buttons, .ojo__hueco) { opacity: 0; animation: fr-seguro 0s 3s forwards; }
	.ojo-gsap .ojo__linea > span, .ojo-gsap :is(.ojo__frase, .ojo .wp-block-buttons, .ojo__hueco) { animation: none !important; }

	/* Obturador: se abre al llegar… */
	html.obturador-abre .obturador { visibility: visible; animation: fr-oculta 0s 1s forwards; }
	html.obturador-abre .obturador__lamina { animation: lamina-abre 0.85s var(--ease-in-out) 0.12s both; }
	html.obturador-abre .obturador svg { animation: diafragma-abre 0.85s var(--ease-in-out) 0.12s both; }
	html.obturador-abre .wp-site-blocks { animation: escena-entra 1.1s var(--ease-out) 0.2s backwards; }
	/* …y se cierra al pulsar un enlace. */
	html.obturador-cierra .obturador { visibility: visible; animation: none; }
	html.obturador-cierra .obturador__lamina { animation: lamina-cierra 0.5s var(--ease-in-out) both; }
	html.obturador-cierra .obturador svg { animation: diafragma-cierra 0.5s var(--ease-in-out) both; }
	html.obturador-cierra .obturador__punto { animation: punto 0.25s ease 0.45s both; }
	html.obturador-cierra .wp-site-blocks { animation: escena-sale 0.5s var(--ease-in-out) both; }

	.anillo__marco img { animation: aparece 800ms var(--ease-out) backwards; animation-delay: calc(200ms + var(--i, 0) * 30ms); }
}
@keyframes linea-sube { to { transform: none; } }
@keyframes aparece { from { opacity: 0; } to { opacity: 1; } }
@keyframes fr-seguro { to { opacity: 1; transform: none; } }
@keyframes fr-oculta { to { visibility: hidden; } }
@keyframes lamina-abre { from { transform: translateY(0); } to { transform: translateY(100px); } }
@keyframes lamina-cierra { from { transform: translateY(100px); } to { transform: translateY(0); } }
@keyframes diafragma-abre { from { transform: rotate(30deg); } to { transform: none; } }
@keyframes diafragma-cierra { from { transform: none; } to { transform: rotate(30deg); } }
@keyframes punto { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 1; } }
@keyframes escena-entra { from { transform: scale(1.06); } }
@keyframes escena-sale { to { transform: scale(0.96); filter: brightness(0.7); } }

/* ---------- Tablet ---------- */

@media (max-width: 1100px) {
	.wp-block-gallery.is-style-reticula { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.precios__lista { grid-template-columns: minmax(0, 1fr); }
	.precio, .precio:first-child { padding: 1.5rem 0 2rem; border-right: 0; border-bottom: 1px solid var(--linea); }
	.precio:hover { background: none; }
	.contacto { display: block; }
	.contacto__foto { width: 78%; margin-bottom: 2.5rem !important; }
	.bio { display: block; }
	.bio__foto { width: 70%; margin-bottom: 2.5rem !important; }
	.muro__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.muro__lista > li:nth-child(3n + 2) { transform: none; }
	.muro__lista > li:nth-child(2n) { transform: translateY(clamp(2rem, 8vw, 4rem)); }
	.anillo__marco, .anillo__marco.es-vertical {
		left: calc(50% + var(--mc, 9) * 66vw);
		top: calc(50% + var(--ms, 9) * 66vw);
		width: clamp(4rem, 17vw, 7.5rem);
		transform: translate(-50%, -50%) rotate(var(--mr, 0deg));
	}
	.anillo__marco:nth-child(n + 13) { display: none; }
	.anillo__nucleo { padding-top: 0; width: calc(100% - 3.5rem); }
}

/* ---------- Móvil ---------- */

@media (max-width: 781px) {
	:root { --cabecera: 3.75rem; }
	.cabecera { grid-template-columns: 1fr auto; padding-block: 0.9rem; }
	.cabecera__red { display: none; }
	.cabecera__nav { justify-self: end; }

	.ojo { align-content: center; }
	.ojo__titulo { font-size: 17.5vw !important; }
	.ojo__linea:nth-child(3) { padding-left: 14vw; }
	.ojo__frase { grid-row: auto; grid-column: 1 / -1; margin: 0 !important; order: 0; }
	.ojo__hueco { width: 100%; aspect-ratio: 1.25 / 1; }
	.ojo__iris { height: 56%; }
	.ojo__esquina--1, .ojo__esquina--3 { left: -6px; }
	.ojo__esquina--2, .ojo__esquina--4 { right: -6px; }
	.ojo .wp-block-button, .ojo .wp-block-button__link { width: 100%; text-align: center; }

	.seleccion__cabeza > .etiqueta, .seleccion__titulo, .categorias__cabeza > .etiqueta, .categorias__titulo { grid-column: 1 / -1; }
	.seleccion__titulo, .categorias__titulo { margin-top: 1rem !important; }
	.wp-block-gallery.is-style-reticula { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px !important; }
	.categorias__control { grid-column: 1 / -1; justify-self: start; margin-top: 1.25rem; }
	.categoria { width: 46vw; min-width: 0; }

	.contacto__foto, .bio__foto { width: 100%; }
	.bio-flota--1 { left: -4%; top: 11%; }
	.bio-flota--2 { right: -3%; top: 9%; }
	.bio-flota--3 { left: 2%; bottom: 4%; }
	.bio-flota--4 { right: -2%; bottom: 6%; }
	.bio-frase__texto { max-width: 16ch; }

	.archivo { display: block; }
	.archivo__titulo { font-size: 17vw !important; }
	.muro__lista { row-gap: 3rem; }
	.muro__lista > li:nth-child(3n + 2) { transform: none; }
	.proyecto__entrada { grid-column: 1 / -1 !important; }
	.proyecto__portada { height: 70svh; }
	.proyecto:has(> .proyecto__portada.es-vertical) { display: block; }
	.proyecto__portada.es-vertical { margin: 2rem var(--m) 0 !important; }
	.proyecto__portada.es-vertical img { height: auto !important; width: 100%; }
	.proyecto__contenido .wp-block-gallery.has-nested-images, .wp-block-gallery.is-style-muro { columns: 2; column-gap: 6px; }
	.proyecto__contenido .wp-block-gallery.has-nested-images figure.wp-block-image { margin-bottom: 6px !important; }

	.pie__columnas { display: grid !important; grid-template-columns: 1fr 1fr; row-gap: 2rem !important; }
	.pie__marca { white-space: normal; }
	.pie__marca span { display: block; }

	.lb__pie { padding-bottom: max(1rem, env(safe-area-inset-bottom)); }
}

/* ---------- Móvil estrecho ---------- */

@media (max-width: 560px) {
	.categoria { width: 78vw; }
	.muro__lista { grid-template-columns: minmax(0, 1fr); }
	.muro__lista > li:nth-child(2n) { transform: none; }
}
