/* ============================================================
   BIENAL DE ROSARIO 2027 — sistema visual
   Tokens y componentes del prototipo V2 (Manual de Identidad Visual).
   ============================================================ */

@font-face {
	font-family: "SN Pro";
	font-style: normal;
	font-weight: 200 900;
	font-display: swap;
	src: url("../fonts/sn-pro-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "SN Pro";
	font-style: normal;
	font-weight: 200 900;
	font-display: swap;
	src: url("../fonts/sn-pro-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	--tinta: #000000;
	--papel: #ffffff;
	--jacinto: #a83ace;       /* isotipo / convocatorias / acción */
	--jacinto-osc: #8d2bb0;
	--jacinto-claro: #cf8ef0; /* violeta para texto sobre negro (8,8:1); #a83ace no llega a AA ahí */
	--limo: #734800;          /* río, territorio, calendario */
	--limo-claro: #d9a23a;    /* limo sobre negro */
	--linea: #d4d4d4;
	--gris: #6a6a6a;
	--gris-claro: #f2f2f2;
	--texto-2: #333333;
	--max: 1360px;
	--gut: clamp(16px, 4.2vw, 64px);
	--barra: 66px;
	--fuente: "SN Pro", Nunito, "Segoe UI", system-ui, sans-serif;
	--curva: cubic-bezier(.2, .7, .2, 1);
	--curva-sale: cubic-bezier(.65, 0, .35, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--barra) + 16px); }
body {
	margin: 0;
	background: var(--papel);
	color: var(--tinta);
	font-family: var(--fuente);
	font-weight: 400;
	font-size: 17px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	overflow-wrap: break-word;
}
body.menu-abierto { overflow: hidden; }
img, svg, video { max-width: 100%; }
img { display: block; height: auto; }
a { color: inherit; text-underline-offset: .22em; text-decoration-thickness: 1px; }
:focus-visible { outline: 2px solid var(--jacinto); outline-offset: 3px; border-radius: 1px; }
.pulso :focus-visible, .menu :focus-visible, .pie :focus-visible, .hero :focus-visible, .contacto :focus-visible,
.js .bar--sobre:not(.bar--solida) :focus-visible { outline-color: var(--papel); }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 var(--gut); }
.sr, .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.saltar {
	position: absolute; left: var(--gut); top: -100px; z-index: 200;
	background: var(--tinta); color: var(--papel); padding: .7rem 1.1rem; border-radius: 999px; text-decoration: none;
}
.saltar:focus { top: 10px; }
[hidden] { display: none !important; }

/* ---------- tipografía ---------- */
h1, h2, h3, h4 { margin: 0; font-weight: 300; letter-spacing: -.015em; line-height: 1.02; }
.d1 { font-size: clamp(2.6rem, 8.6vw, 6.6rem); font-weight: 200; line-height: .94; letter-spacing: -.03em; }
.d2 { font-size: clamp(2rem, 4.6vw, 3.6rem); font-weight: 200; line-height: 1.02; letter-spacing: -.025em; }
.d3 { font-size: clamp(1.45rem, 2.5vw, 2.1rem); font-weight: 300; line-height: 1.1; }
.lede { font-size: clamp(1.12rem, 1.65vw, 1.4rem); line-height: 1.5; font-weight: 300; max-width: 34ch; margin: 0; }
.prosa { max-width: 66ch; }
.prosa p { margin: 0 0 1.1em; }
.prosa p:last-child { margin-bottom: 0; }
.prosa > h3 { font-size: clamp(1.25rem, 2.2vw, 1.6rem); font-weight: 300; letter-spacing: -.015em; margin: 0 0 .7em; }
.prosa > .wp-block-buttons { margin-top: 1.4rem; }
.meta { font-size: .82rem; line-height: 1.35; color: var(--gris); }
.dato { font-variant-numeric: tabular-nums; }
em.rio, .hero-lema em, .sec-cab h2 em { font-style: normal; color: var(--limo); }

/* ---------- marca ---------- */
.marca { display: flex; align-items: center; gap: .6em; color: inherit; text-decoration: none; }
.marca .iso { width: 1.75em; height: auto; aspect-ratio: 261.97 / 222.37; flex: none; }
.marca .wm { width: 5.4em; height: auto; aspect-ratio: 27870 / 8670; }

/* ---------- barra superior ---------- */
.bar {
	position: sticky; top: 0; z-index: 60; color: var(--tinta);
	background: rgba(255, 255, 255, .92); border-bottom: 1px solid var(--linea);
	-webkit-backdrop-filter: saturate(1.4) blur(12px); backdrop-filter: saturate(1.4) blur(12px);
	transition: background-color .35s var(--curva), color .35s var(--curva), border-color .35s var(--curva);
}
.admin-bar .bar { top: 32px; }
@media (max-width: 782px) { .admin-bar .bar { top: 0; } }
/* Portada (solo con JS): la barra flota transparente sobre el hero y se vuelve blanca al bajar. */
.js .bar--sobre { position: fixed; left: 0; right: 0; }
.js .bar--sobre:not(.bar--solida) { background: transparent; border-color: transparent; color: var(--papel); -webkit-backdrop-filter: none; backdrop-filter: none; }
.bar-in { display: flex; align-items: center; gap: 1.2rem; height: var(--barra); max-width: var(--max); margin: 0 auto; padding: 0 var(--gut); }
.bar .marca { font-size: 15px; }
.bar-ubic { margin-left: auto; font-size: .82rem; color: var(--gris); display: none; }
.js .bar--sobre:not(.bar--solida) .bar-ubic { color: rgba(255, 255, 255, .8); }
/* Arriba de todo en la portada ya se ve la marca grande del hero: la chica aparece al bajar. */
.bar--sobre .marca { transition: opacity .35s var(--curva), visibility .35s; }
.js .bar--sobre:not(.bar--solida) .marca { opacity: 0; visibility: hidden; }
.js .bar--sobre:not(.bar--solida) .bar-ubic { visibility: hidden; } /* las fechas ya están al pie del hero */
@media (min-width: 760px) { .bar-ubic { display: block; } }
.btn-menu, .btn-cerrar {
	display: flex; align-items: center; gap: .55rem; cursor: pointer;
	background: none; border: 1px solid currentColor; border-radius: 999px;
	padding: .42rem .95rem .42rem .8rem; font: inherit; font-size: .9rem; color: inherit;
	min-height: 44px; transition: background-color .25s var(--curva), color .25s var(--curva);
}
.btn-menu { margin-left: auto; }
@media (min-width: 760px) { .btn-menu { margin-left: 1.2rem; } }
.btn-menu:hover { background: var(--tinta); color: var(--papel); }
.js .bar--sobre:not(.bar--solida) .btn-menu:hover { background: var(--papel); color: var(--tinta); }
.btn-menu .bars { display: block; width: 16px; }
.btn-menu .bars i { display: block; height: 1px; background: currentColor; margin: 4px 0; transition: transform .3s var(--curva); }
.btn-menu:hover .bars i:nth-child(2) { transform: translateX(3px); }
.no-js .btn-menu { display: none; }
/* Selector de idiomas: en la barra y en el pie del menú. */
.idiomas { flex: none; font-size: .82rem; letter-spacing: .04em; white-space: nowrap; }
.idiomas a { display: inline-block; padding: .35rem .2rem; color: inherit; text-decoration: none; }
.idiomas a:hover { text-decoration: underline; text-underline-offset: .25em; }
.idiomas a[aria-current] { font-weight: 700; }
.bar-in .idiomas { margin-left: auto; }
.bar-in .idiomas + .btn-menu { margin-left: 0; }
@media (min-width: 760px) { .bar-ubic + .idiomas { margin-left: 0; } }

/* ---------- menú overlay ---------- */
.menu { position: fixed; inset: 0; z-index: 100; background: var(--tinta); color: var(--papel); overflow-y: auto; overscroll-behavior: contain; }
.admin-bar .menu { top: 32px; }
@media (max-width: 782px) { .admin-bar .menu { top: 46px; } }
.menu:not([data-abierto="true"]) { display: none; }
.menu-top { display: flex; align-items: center; height: var(--barra); max-width: var(--max); margin: 0 auto; padding: 0 var(--gut); }
.menu-top .marca { color: var(--papel); font-size: 15px; }
.btn-cerrar { margin-left: auto; color: var(--papel); padding: .42rem 1rem; }
.btn-cerrar:hover { background: var(--papel); color: var(--tinta); }
.menu-lista { max-width: var(--max); margin: 0 auto; padding: clamp(1.5rem, 5vw, 3.5rem) var(--gut) 1rem; list-style: none; }
.menu-lista > li { border-top: 1px solid #333; padding: clamp(.9rem, 2vw, 1.3rem) 0; }
.menu-lista > li:last-child { border-bottom: 1px solid #333; }
.menu-lista > li > a {
	display: block; text-decoration: none; font-weight: 200; letter-spacing: -.025em;
	font-size: clamp(2rem, 6.6vw, 4.2rem); line-height: 1.02;
}
.menu-lista > li > a:hover, .menu-lista a[aria-current="page"] { color: var(--jacinto); }
.menu-lista .sub-menu { list-style: none; margin: .7rem 0 .2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; }
.menu-lista .sub-menu a { font-size: 1rem; color: #bdbdbd; text-decoration: none; border-bottom: 1px solid #555; padding-bottom: 2px; }
.menu-lista .sub-menu a:hover { color: var(--papel); border-color: var(--jacinto); }
.menu-pie {
	max-width: var(--max); margin: 1.5rem auto 0; padding: 0 var(--gut) 5rem;
	display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; font-size: .9rem; color: #9a9a9a;
}
.menu-pie a { color: #e4e4e4; }
@media (prefers-reduced-motion: no-preference) {
	.menu[data-abierto="true"] .menu-lista > li > a { animation: sube .5s cubic-bezier(.2, .7, .3, 1) both; }
	.menu-lista > li:nth-child(2) > a { animation-delay: .04s; }
	.menu-lista > li:nth-child(3) > a { animation-delay: .08s; }
	.menu-lista > li:nth-child(4) > a { animation-delay: .12s; }
	.menu-lista > li:nth-child(5) > a { animation-delay: .16s; }
	.menu-lista > li:nth-child(6) > a { animation-delay: .20s; }
	.menu-lista > li:nth-child(7) > a { animation-delay: .24s; }
	.menu-lista > li:nth-child(8) > a { animation-delay: .28s; }
	.menu-lista > li:nth-child(n+9) > a { animation-delay: .32s; }
	@keyframes sube { from { transform: translateY(14px); opacity: 0; } to { transform: none; opacity: 1; } }
}

/* ---------- hero ---------- */
.hero {
	position: relative; isolation: isolate; overflow: hidden;
	background: var(--tinta); color: var(--papel);
	min-height: min(100svh, 980px); display: grid; grid-template-rows: 1fr auto;
}
.js .hero { padding-top: var(--barra); }
.hero-fondo { position: absolute; inset: 0; z-index: -3; }
.hero-img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
/* Velo: oscurece la foto para que el texto blanco se lea siempre (AA sobre cualquier zona). */
.hero-velo {
	position: absolute; inset: 0; z-index: -2;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .86) 0%, rgba(0, 0, 0, .62) 48%, rgba(0, 0, 0, .28) 100%),
		linear-gradient(0deg, rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, 0) 38%);
}
@media (max-width: 759px) { .hero-velo { background: linear-gradient(0deg, rgba(0, 0, 0, .92) 10%, rgba(0, 0, 0, .55) 60%, rgba(0, 0, 0, .7) 100%); } }
.hero .carto { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; opacity: .5; }
.hero .carto .curvas path { stroke: rgba(255, 255, 255, .22); }
.hero:not(.hero--foto) .carto { opacity: 1; }
.hero-iso {
	position: absolute; z-index: -1; right: clamp(-60px, -2vw, 0px); bottom: clamp(5rem, 12vh, 9rem);
	width: clamp(140px, min(26vw, 46vh), 400px); height: auto; color: var(--jacinto); opacity: .92;
}
@media (max-width: 759px) { .hero-iso { opacity: .5; right: -9vw; bottom: 5.5rem; width: 36vw; } }
.hero-in {
	position: relative; width: 100%; max-width: var(--max); margin: 0 auto; align-self: end;
	padding: clamp(3rem, 10vh, 7rem) var(--gut) clamp(2rem, 5vh, 3.5rem);
}
.hero-wm { display: block; width: min(64vw, 380px, 42vh); height: auto; aspect-ratio: 27870 / 8670; margin-bottom: clamp(1.4rem, 4vh, 2.6rem); color: var(--papel); }
.hero-lema { font-size: clamp(2.6rem, min(8.4vw, 12.5vh), 7.4rem); font-weight: 200; line-height: .92; letter-spacing: -.035em; margin: 0; max-width: 17ch; text-wrap: balance; }
.hero-lema .linea { display: block; }
.hero-lema em { font-style: normal; color: var(--limo-claro); }
.hero .lede { margin-top: clamp(1.2rem, 3vh, 2rem); color: rgba(255, 255, 255, .88); max-width: 40ch; }
.hero-pie {
	position: relative; width: calc(100% - 2 * var(--gut)); max-width: calc(var(--max) - 2 * var(--gut)); margin: 0 auto;
	padding: 1rem 0 1.2rem; border-top: 1px solid rgba(255, 255, 255, .22);
	display: flex; flex-wrap: wrap; gap: .4rem 2rem; justify-content: space-between; align-items: baseline;
}
.hero-fechas { margin: 0; display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; align-items: baseline; font-size: .92rem; color: rgba(255, 255, 255, .8); }
.hero-fechas b { font-weight: 500; font-size: 1.02rem; color: var(--papel); }
.hero-credito { margin: 0; font-size: .74rem; color: rgba(255, 255, 255, .72); }
.carto .curvas path { fill: none; stroke: var(--linea); stroke-width: 1.1; vector-effect: non-scaling-stroke; }

@media (prefers-reduced-motion: no-preference) {
	.carto .curvas path {
		stroke-dasharray: var(--len); stroke-dashoffset: var(--len);
		animation: traza 2.4s var(--curva) forwards; animation-delay: var(--dly);
	}
	@keyframes traza { to { stroke-dashoffset: 0; } }
	.hero-img { animation: acerca 9s var(--curva) both; }
	@keyframes acerca { from { transform: scale(1.08); } to { transform: scale(1); } }
	.hero-in > *, .hero-pie { animation: entra .9s var(--curva) both; }
	.hero-in > :nth-child(2) { animation-delay: .1s; }
	.hero-in > :nth-child(3) { animation-delay: .22s; }
	.hero-in > :nth-child(4) { animation-delay: .32s; }
	.hero-pie { animation-delay: .45s; }
	@keyframes entra { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
	.hero-iso { animation: flota 14s ease-in-out infinite alternate, aparece 1.4s .3s var(--curva) both; }
	@keyframes flota { from { translate: 0 0; rotate: 0deg; } to { translate: -14px -22px; rotate: -6deg; } }
	@keyframes aparece { from { opacity: 0; scale: .85; } }
	/* Con soporte de animaciones atadas al scroll, la foto baja más lento que la página (paralaje). */
	@supports (animation-timeline: scroll()) {
		.hero-fondo { animation: paralaje linear both; animation-timeline: scroll(root); animation-range: 0 100vh; }
		@keyframes paralaje { to { transform: translateY(18%); } }
	}
}

/* ---------- reloj del río ---------- */
.pulso { background: var(--tinta); color: var(--papel); position: relative; }
.pulso::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, var(--jacinto), var(--limo-claro) 60%, transparent); }
.pulso-in { max-width: var(--max); margin: 0 auto; padding: clamp(2rem, 4vw, 3rem) var(--gut); display: grid; gap: 2rem; }
@media (min-width: 900px) { .pulso-in { grid-template-columns: 1fr auto; align-items: end; gap: 3rem; } }
.pulso-txt { max-width: 46ch; font-weight: 300; font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.45; margin: 0; }
.cuenta { display: flex; flex-wrap: wrap; gap: clamp(1.1rem, 3vw, 2.4rem); }
.cuenta > div { min-width: 3.2ch; }
.cuenta .n { font-size: clamp(2.4rem, 6.4vw, 4.4rem); font-weight: 200; line-height: 1; color: #fff; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.cuenta .u { font-size: .74rem; color: #a3a3a3; margin-top: .55rem; text-transform: uppercase; letter-spacing: .12em; }
.cuenta-pie { color: #a3a3a3; margin: 1.1rem 0 0; }
.regla { margin-top: 2rem; position: relative; height: 62px; }
.regla .lin { position: absolute; left: 0; right: 0; top: 34px; height: 1px; background: #3a3a3a; }
.regla i { position: absolute; top: 27px; width: 1px; height: 8px; background: #4e4e4e; }
.regla b { position: absolute; top: 22px; width: 2px; height: 19px; background: var(--limo-claro); }
.regla .val { position: absolute; top: 0; font-size: .82rem; color: var(--limo-claro); transform: translateX(-50%); white-space: nowrap; }
.regla .e { position: absolute; top: 44px; font-size: .7rem; color: #949494; transform: translateX(-50%); white-space: nowrap; }
.regla .e.ini { transform: none; }
.regla .e.fin { transform: translateX(-100%); }
.regla-pie { margin: .6rem 0 0; font-size: .78rem; color: #949494; }

/* ---------- secciones ---------- */
.sec { padding: clamp(3rem, 7vw, 6rem) 0; border-bottom: 1px solid var(--linea); }
.sec:last-child { border-bottom: 0; }
.sec--sin-linea { border-bottom: 0; }
.sec-cab { display: grid; gap: 1.2rem; margin-bottom: clamp(1.8rem, 4vw, 3rem); }
@media (min-width: 900px) { .sec-cab { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: start; } }
.sec-cab h2 { max-width: 18ch; }
.dosco { display: grid; gap: clamp(1.4rem, 3vw, 2.6rem); }
@media (min-width: 900px) { .dosco { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); } }

/* filas con hairline (no tarjetas) */
.filas { border-top: 1px solid var(--tinta); }
.fila { border-bottom: 1px solid var(--linea); padding: clamp(1.2rem, 2.6vw, 1.9rem) 0; display: grid; gap: .5rem; }
@media (min-width: 820px) { .fila { grid-template-columns: minmax(0, 10rem) minmax(0, 1fr) minmax(0, 1.5fr); gap: 2rem; align-items: baseline; } }
.fila h3 { font-size: 1.3rem; font-weight: 400; letter-spacing: -.01em; }
.fila .cua { font-size: .8rem; color: var(--limo); margin: 0; }
.fila p { margin: 0; color: var(--texto-2); }
.fila { position: relative; }
.fila::after { content: ""; position: absolute; left: 0; bottom: -1px; height: 1px; width: 100%; background: var(--jacinto); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--curva); }
.fila:hover::after, .fila:focus-within::after { transform: scaleX(1); }
/* Filas del contenido de las páginas interiores (patrón "Filas"): numeración grande y liviana en ocre. */
body:not(.home) .contenido > .filas { counter-reset: fila; }
body:not(.home) .contenido > .filas > .fila { counter-increment: fila; padding: clamp(1.4rem, 3vw, 2.2rem) 0; }
body:not(.home) .contenido > .filas > .fila::before {
	content: counter(fila, decimal-leading-zero); color: var(--limo);
	font-size: clamp(1.7rem, 3.4vw, 2.6rem); font-weight: 200; line-height: .9; letter-spacing: -.03em; font-variant-numeric: tabular-nums;
}
@media (min-width: 820px) {
	body:not(.home) .contenido > .filas > .fila { grid-template-columns: 4.5rem minmax(0, 9rem) minmax(0, 1fr) minmax(0, 1.5fr); }
}
/* Convocatorias de la portada: toda la fila lleva al detalle, con una flecha en círculo
   que se llena de violeta (en táctiles se ve siempre); las abiertas, con fondo violeta suave. */
.fila--conv .enlace::before { content: ""; position: absolute; inset: 0; z-index: 1; } /* la fila entera es clickeable */
.fila--conv .enlace { text-decoration: none; }
.fila--conv .enlace .flecha {
	display: inline-grid; place-items: center; width: 2rem; height: 2rem; margin-left: .6rem; vertical-align: middle;
	border: 1px solid currentColor; border-radius: 50%; color: var(--jacinto-osc);
	transition: background-color .3s var(--curva), color .3s var(--curva), border-color .3s var(--curva), transform .3s var(--curva);
}
.fila--abierta { background: #f8f1fb; margin-inline: calc(var(--gut) * -.5); padding-inline: calc(var(--gut) * .5); }
@media (hover: hover) {
	.fila--conv:hover h3 { color: var(--jacinto-osc); }
	.fila--conv:hover .enlace .flecha { background: var(--jacinto); border-color: var(--jacinto); color: #fff; }
	.fila--conv:not(.fila--abierta):hover { background: #fbf8fc; }
}
@media (hover: none) { .fila--conv .enlace .flecha { background: var(--jacinto); border-color: var(--jacinto); color: #fff; } }
.fila--conv h3 { transition: color .3s var(--curva); }
.tag.acc::before { content: ""; display: inline-block; width: .5em; height: .5em; border-radius: 50%; background: currentColor; margin-right: .45em; vertical-align: .05em; }
@media (prefers-reduced-motion: no-preference) {
	.tag.acc::before { animation: late 2s ease-in-out infinite; }
	@keyframes late { 50% { opacity: .25; } }
}

/* ---------- cauces y zonas ----------
   Bloque "Cauces y zonas" (portada y La Bienal).
   Cauces: paneles lado a lado con el número grande en violeta y un detalle de las
   curvas de nivel del manual en la esquina. Zonas: una onda de río en ocre. */
.rotulo { font-size: .8rem; font-weight: 500; color: var(--gris); margin: 0 0 1.4rem; padding-bottom: .7rem; border-bottom: 1px solid var(--tinta); letter-spacing: 0; line-height: 1.3; }
.cauces { margin-bottom: clamp(3rem, 6vw, 5rem); display: grid; gap: clamp(.9rem, 2vw, 1.4rem); }
@media (min-width: 900px) { .cauces { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); } }
.rotulo + .cauces { margin-top: 0; }
.cauce {
	position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; gap: .9rem;
	background: var(--papel); border: 1px solid var(--linea); border-top: 2px solid var(--tinta); border-radius: 0 0 6px 6px;
	padding: clamp(1.4rem, 3vw, 2rem) clamp(1.3rem, 2.6vw, 1.8rem) clamp(1.6rem, 3.4vw, 2.4rem);
	transition: border-color .35s var(--curva);
}
.cauce::before {
	content: ""; position: absolute; z-index: -1; right: -28%; bottom: -38%; width: 90%; aspect-ratio: 1;
	background: url("../img/curvas.webp") center / cover no-repeat; filter: invert(1); opacity: .1;
	-webkit-mask-image: radial-gradient(circle, #000 35%, transparent 70%); mask-image: radial-gradient(circle, #000 35%, transparent 70%);
	transition: opacity .5s var(--curva), transform .8s var(--curva);
}
.cauce .num { font-size: clamp(2.6rem, 5vw, 3.8rem); font-weight: 200; line-height: .9; letter-spacing: -.04em; color: var(--jacinto); font-variant-numeric: tabular-nums; transition: font-weight .4s var(--curva); }
.cauce h4 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); font-weight: 200; line-height: 1.04; letter-spacing: -.025em; max-width: 16ch; }
.cauce p { margin: 0; color: #3a3a3a; font-size: .98rem; max-width: 44ch; }
@media (hover: hover) {
	.cauce:hover { border-top-color: var(--jacinto); }
	.cauce:hover::before { opacity: .2; }
	.cauce:hover .num { font-weight: 400; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .cauce:hover::before { transform: scale(1.1) rotate(-4deg); } }

.zonas { border-top: 1px solid var(--linea); display: grid; column-gap: clamp(2rem, 4vw, 3.5rem); }
@media (min-width: 900px) { .zonas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.zona { position: relative; border-bottom: 1px solid var(--linea); padding: clamp(1.1rem, 2.4vw, 1.6rem) 0 clamp(1.1rem, 2.4vw, 1.6rem) 3.1rem; display: grid; gap: .4rem; align-content: start; }
.zona::before {
	content: ""; position: absolute; left: 0; top: calc(clamp(1.1rem, 2.4vw, 1.6rem) + .55em); width: 2.2rem; height: .8rem;
	background: var(--limo); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 10'%3E%3Cpath d='M0 5 Q5 0 10 5 T20 5 T30 5 T40 5' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") 0 50% / 1.1rem 100% repeat-x; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 10'%3E%3Cpath d='M0 5 Q5 0 10 5 T20 5 T30 5 T40 5' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") 0 50% / 1.1rem 100% repeat-x;
}
.zona h4 { font-size: clamp(1.15rem, 2vw, 1.45rem); font-weight: 300; letter-spacing: -.015em; transition: color .3s var(--curva); }
.zona p { margin: 0; color: #3a3a3a; font-size: .95rem; max-width: 50ch; }
@media (hover: hover) { .zona:hover h4 { color: var(--limo); } }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.zona:hover::before { animation: corre-onda 1.2s linear infinite; }
	@keyframes corre-onda { to { -webkit-mask-position: 1.1rem 50%; mask-position: 1.1rem 50%; } }
}

/* etiquetas */
.tag { display: inline-block; font-size: .76rem; line-height: 1; padding: .4em .7em; border: 1px solid var(--linea); border-radius: 999px; color: var(--gris); white-space: nowrap; }
.tag.rio { border-color: rgba(115, 72, 0, .4); color: var(--limo); }
.tag.acc { border-color: rgba(168, 58, 206, .45); color: var(--jacinto); }
.tag.on { background: var(--jacinto); border-color: var(--jacinto); color: #fff; }
.tags { display: flex; flex-wrap: wrap; gap: .35rem; }

/* botones */
.cta, .wp-block-button__link {
	display: inline-flex; align-items: center; gap: .5em; min-height: 44px;
	border: 1px solid var(--tinta); padding: .7rem 1.4rem; border-radius: 999px;
	text-decoration: none; font-size: .95rem; line-height: 1.3; background: var(--papel); color: var(--tinta); cursor: pointer;
	transition: background-color .25s var(--curva), color .25s var(--curva), border-color .25s var(--curva), transform .25s var(--curva);
}
.cta:hover, .wp-block-button__link:hover { background: var(--tinta); color: var(--papel); }
.cta:active { transform: scale(.97); }
.cta.acc, .is-style-violeta .wp-block-button__link { border-color: var(--jacinto); background: var(--jacinto); color: #fff; }
.cta.acc:hover, .is-style-violeta .wp-block-button__link:hover { background: var(--jacinto-osc); border-color: var(--jacinto-osc); }
.cta .ext { font-size: .85em; }
.cta:disabled, .cta:disabled:hover { background: transparent; border-style: dashed; border-color: var(--jacinto); color: var(--jacinto); cursor: not-allowed; transform: none; }
.flecha { display: inline-block; transition: transform .3s var(--curva); }
a:hover > .flecha, a:focus-visible > .flecha { transform: translateX(4px); }
.enlace { text-decoration: underline; text-decoration-color: var(--linea); transition: text-decoration-color .2s; }
.enlace:hover { text-decoration-color: var(--jacinto); }
.enlace .flecha { margin-left: .25em; }

/* ---------- cabecera de página ----------
   Estilos (campo "Estilo de cabecera" de cada página): sin-foto, partida,
   partida-bn, banda y velo. La foto es la imagen destacada. */
.pcab { position: relative; padding: clamp(2.4rem, 6vw, 5rem) 0 clamp(1.8rem, 4vw, 3rem); border-bottom: 1px solid var(--tinta); }
.ruta { font-size: .84rem; color: var(--gris); margin-bottom: 1.1rem; }
.ruta a { color: var(--gris); }
.ruta ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.ruta li + li::before { content: "/"; margin-right: .3rem; }
.pcab-grid { display: grid; gap: 1.4rem; }
@media (min-width: 900px) { .pcab-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 3rem; align-items: end; } }
.pcab .d1 { max-width: 12ch; }
.pcab .d2 { max-width: 24ch; }
.subnav { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.6rem; }
.subnav a { font-size: .9rem; text-decoration: none; border: 1px solid var(--linea); border-radius: 999px; padding: .4rem .95rem; color: var(--gris); transition: border-color .2s, color .2s, background-color .2s; }
.subnav a:hover { border-color: var(--tinta); color: var(--tinta); }
.subnav a[aria-current="page"] { background: var(--tinta); border-color: var(--tinta); color: var(--papel); }
.pcab .credito, .pcab-fig .credito, .pcab-banda .credito { display: block; font-size: .72rem; color: var(--gris); margin-top: .45rem; }

/* sin foto: curvas de nivel del manual, muy suaves, del lado derecho */
.pcab--sin-foto { overflow: hidden; isolation: isolate; }
.pcab--sin-foto::before {
	content: ""; position: absolute; z-index: -1; top: 0; right: 0; bottom: 0; width: min(62%, 860px);
	background: url("../img/curvas.webp") right center / cover no-repeat; filter: invert(1); opacity: .09;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 45%); mask-image: linear-gradient(90deg, transparent, #000 45%);
}
.pcab-iso { position: absolute; z-index: -1; right: 0; top: 50%; translate: 38% -50%; width: clamp(150px, 28vw, 400px); height: auto; color: var(--jacinto); opacity: .14; }
@media (max-width: 899px) { .pcab-iso { top: 1.2rem; translate: 30% 0; width: 32vw; } }
.pcab--sin-foto:has(.pcab-iso)::before { display: none; }

/* partida: título a la izquierda, foto a la derecha */
.pcab-partida { display: grid; gap: 1.4rem; }
.pcab--partida .pcab-grid, .pcab--partida-bn .pcab-grid { grid-template-columns: none; gap: 1.4rem; }
.pcab-fig { margin: 0; }
.pcab-fig .pcab-img { width: 100%; aspect-ratio: 16 / 9; max-height: 230px; object-fit: cover; border-radius: 3px; }
@media (min-width: 900px) {
	.pcab-partida { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: end; }
	.pcab-fig .pcab-img { aspect-ratio: 4 / 3; max-height: none; }
	.pcab--vertical .pcab-fig .pcab-img { aspect-ratio: 4 / 5; max-height: 72vh; }
	.pcab--vertical .pcab-partida { grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); }
}
.pcab--partida-bn .pcab-img { filter: grayscale(1) contrast(1.06); transition: filter .8s var(--curva); }
@media (hover: hover) { .pcab--partida-bn .pcab-fig:hover .pcab-img { filter: none; } }

/* banda: foto angosta y ancha debajo del título */
.pcab--banda { padding-bottom: 0; border-bottom: 0; }
.pcab-banda { margin: clamp(1.8rem, 4vw, 3rem) 0 0; }
.pcab-banda .pcab-img { width: 100%; aspect-ratio: 16 / 9; max-height: 240px; object-fit: cover; border-radius: 3px; }
@media (min-width: 760px) { .pcab-banda .pcab-img { aspect-ratio: 21 / 6; max-height: min(340px, 42vh); } }

/* velo: foto oscurecida detrás del título (ancho del contenido, o pantalla completa si la foto da) */
.pcab--velo { padding: 0; border-bottom: 0; }
.pcab-caja {
	position: relative; isolation: isolate; overflow: hidden; color: var(--papel); background: var(--tinta);
	max-width: calc(var(--max) - 2 * var(--gut)); margin: clamp(1rem, 2.5vw, 2rem) auto 0; width: calc(100% - 2 * var(--gut)); border-radius: 4px;
	min-height: min(52svh, 520px); display: flex; align-items: flex-end;
	padding: clamp(2.4rem, 7vw, 5rem) 0 clamp(1.8rem, 4vw, 3rem);
}
.pcab--ancho .pcab-caja { max-width: none; width: 100%; margin-top: 0; border-radius: 0; min-height: min(62svh, 640px); }
.pcab-caja > .wrap { width: 100%; }
.pcab--velo:not(.pcab--ancho) .pcab-caja > .wrap { padding: 0 clamp(1.2rem, 4vw, 3.5rem); }
.pcab-fondo { position: absolute; inset: 0; z-index: -2; }
.pcab-fondo .pcab-img { width: 100%; height: 100%; object-fit: cover; }
/* Velo: nunca menos de 62 % de negro donde hay texto, para que el blanco cumpla AA aun sobre zonas claras de la foto. */
.pcab-velo { position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(0, 0, 0, .92) 0%, rgba(0, 0, 0, .7) 55%, rgba(0, 0, 0, .62) 100%); }
.pcab--velo .ruta, .pcab--velo .ruta a { color: rgba(255, 255, 255, .8); }
.pcab--velo .lede { color: rgba(255, 255, 255, .9); }
.pcab--velo .subnav a { color: rgba(255, 255, 255, .85); border-color: rgba(255, 255, 255, .4); }
.pcab--velo .subnav a:hover { color: var(--papel); border-color: var(--papel); }
.pcab--velo .subnav a[aria-current="page"] { background: var(--papel); border-color: var(--papel); color: var(--tinta); }
.pcab--velo :focus-visible { outline-color: var(--papel); }
.pcab-caja > .credito { position: absolute; right: clamp(1rem, 3vw, 2rem); bottom: .7rem; margin: 0; color: rgba(255, 255, 255, .72); }

@media (prefers-reduced-motion: no-preference) {
	.pcab-img { animation: aparece-foto 1.1s var(--curva) both; }
	@keyframes aparece-foto { from { opacity: 0; transform: scale(1.04); } }
	.pcab-grid > *, .pcab .ruta { animation: entra .8s var(--curva) both; }
	.pcab-grid > :nth-child(2) { animation-delay: .1s; }
}

/* ---------- contenido del editor ---------- */
.contenido > * { margin-top: 0; margin-bottom: 1.1em; }
.contenido > :last-child { margin-bottom: 0; }
.contenido > p, .contenido > ul, .contenido > ol, .contenido > h2, .contenido > h3, .contenido > h4,
.contenido > blockquote, .contenido > .wp-block-quote { max-width: 66ch; }
.contenido > h2 { font-size: clamp(1.6rem, 3.4vw, 2.6rem); font-weight: 200; letter-spacing: -.025em; margin: 2.4em 0 .7em; }
.contenido > h3 { font-size: clamp(1.25rem, 2.2vw, 1.6rem); font-weight: 300; margin: 2em 0 .6em; }
.contenido > h4 { font-size: 1.1rem; font-weight: 500; margin: 1.8em 0 .5em; }
.contenido > h2:first-child, .contenido > h3:first-child { margin-top: 0; }
.contenido ul, .contenido ol { padding-left: 1.3em; }
.contenido li { margin-bottom: .35em; }
.contenido a:not(.cta):not(.wp-block-button__link) { text-decoration-color: var(--jacinto); }
.contenido .has-large-font-size, .contenido .lede { font-size: clamp(1.12rem, 1.65vw, 1.4rem); font-weight: 300; line-height: 1.5; }
.contenido blockquote, .wp-block-quote {
	margin: 2rem 0; padding: 0 0 0 1.3rem; border-left: 2px solid var(--jacinto);
	font-size: clamp(1.15rem, 2vw, 1.3rem); font-weight: 300; line-height: 1.4;
}
.wp-block-quote p { margin: 0 0 .6em; }
.wp-block-quote cite { display: block; font-size: .82rem; font-style: normal; color: var(--gris); margin-top: .8rem; }
.wp-block-pullquote { border-top: 1px solid var(--tinta); border-bottom: 1px solid var(--linea); padding: 2rem 0; text-align: left; }
.wp-block-pullquote blockquote { border: 0; padding: 0; margin: 0; font-size: clamp(1.4rem, 3vw, 2.2rem); font-weight: 200; }
.wp-block-image figcaption, .wp-element-caption { font-size: .82rem; color: var(--gris); margin-top: .6rem; }
.wp-block-separator { border: 0; border-top: 1px solid var(--linea); margin: 2.5rem 0; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: .7rem; }
.wp-block-buttons > .wp-block-button { margin: 0; }
.wp-block-columns { display: grid; gap: clamp(1.4rem, 3vw, 2.6rem); margin: 2rem 0; }
@media (min-width: 900px) { .wp-block-columns { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 4.5rem); } }
.wp-block-column > :first-child { margin-top: 0; }
.wp-block-column > h3 { font-size: clamp(1.25rem, 2.2vw, 1.6rem); font-weight: 300; letter-spacing: -.015em; margin: 0 0 .7em; }
.wp-block-column p { margin: 0 0 1.1em; }
.wp-block-table table { border-collapse: collapse; width: 100%; font-size: .95rem; }
.wp-block-table th, .wp-block-table td { border-bottom: 1px solid var(--linea); padding: .7rem .6rem .7rem 0; text-align: left; vertical-align: top; }
.wp-block-table thead th { border-bottom-color: var(--tinta); font-weight: 500; }
.wp-block-embed iframe { max-width: 100%; }
.wp-block-embed.is-type-video .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; }
.wp-block-embed.is-type-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.alignwide { max-width: none; }
.has-text-align-center { text-align: center; }

/* patrones (bloques con clase) */
.contenido > .sec-cab, .contenido > .filas, .contenido > .fichas, .contenido > .contacto, .contenido > .bienal-cauces-zonas, .contenido > .dosco { max-width: none; }
.contenido > .sec-cab:not(:first-child), .contenido > .bloque:not(:first-child) { margin-top: clamp(3rem, 7vw, 6rem); padding-top: clamp(3rem, 7vw, 6rem); border-top: 1px solid var(--linea); }
.sec-cab > .prosa > :first-child, .sec-cab > div > :first-child { margin-top: 0; }
.fichas { border-top: 1px solid var(--linea); max-width: 70ch; margin: 0; }
.ficha { border-bottom: 1px solid var(--linea); padding: 1rem 0; display: grid; gap: .3rem; }
@media (min-width: 700px) { .ficha { grid-template-columns: 12rem minmax(0, 1fr); gap: 2rem; } }
.ficha > :first-child, .ficha dt { color: var(--gris); font-size: .9rem; }
.ficha > *, .ficha dd { margin: 0; }
.nota { display: inline-flex; gap: .6rem; align-items: center; font-size: .83rem; color: var(--limo); border: 1px dashed rgba(115, 72, 0, .45); padding: .5rem .85rem; border-radius: 2px; }

/* ---------- fotos dentro del contenido (patrones) ---------- */
.credito { font-size: .72rem; color: var(--gris); }
.contenido > .foto-costado, .contenido > .separador-foto { max-width: none; }

/* Texto con foto al costado (bloque Texto con medios). Con doble clase para ganarle al CSS del bloque. */
.wp-block-media-text.foto-costado { display: grid; grid-template-columns: 100%; gap: 1.4rem; margin: clamp(2.5rem, 6vw, 4.5rem) 0; }
.wp-block-media-text.foto-costado > .wp-block-media-text__content { padding: 0; grid-column: 1; grid-row: 1; }
.foto-costado .wp-block-media-text__content > :first-child { margin-top: 0; }
.foto-costado .wp-block-media-text__content > * { margin: 0 0 1em; max-width: 56ch; }
.foto-costado .wp-block-media-text__content h3 { font-size: clamp(1.4rem, 2.6vw, 2rem); font-weight: 300; letter-spacing: -.02em; }
.wp-block-media-text.foto-costado > .wp-block-media-text__media { margin: 0; grid-column: 1; grid-row: 2; align-self: start; }
/* En celular la foto va entera, debajo del texto, con su proporción. */
.foto-costado .wp-block-media-text__media img { width: 100%; height: auto; border-radius: 3px; }
.foto-costado .wp-block-media-text__media .credito { display: block; margin-top: .45rem; }
@media (min-width: 900px) {
	.wp-block-media-text.foto-costado { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr) !important; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
	.wp-block-media-text.foto-costado.has-media-on-the-right > .wp-block-media-text__media { grid-column: 2; grid-row: 1; }
	.wp-block-media-text.foto-costado:not(.has-media-on-the-right) { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important; }
	.wp-block-media-text.foto-costado:not(.has-media-on-the-right) > .wp-block-media-text__media { grid-column: 1; grid-row: 1; }
	.wp-block-media-text.foto-costado:not(.has-media-on-the-right) > .wp-block-media-text__content { grid-column: 2; }
	.foto-costado .wp-block-media-text__media img { aspect-ratio: 4 / 3; object-fit: cover; }
}

/* Separador con foto: panorámica angosta, con paralaje suave donde se pueda */
.separador-foto { margin: clamp(3rem, 7vw, 6rem) 0 0; overflow: hidden; border-radius: 3px; }
.separador-foto img { width: 100%; aspect-ratio: 16 / 9; max-height: 210px; object-fit: cover; }
@media (min-width: 760px) { .separador-foto img { aspect-ratio: 21 / 6; max-height: 380px; } }
.separador-foto figcaption { margin-top: .5rem; }
.contenido > .separador-foto + .sec-cab, .contenido > .separador-foto + .bloque { border-top: 0; padding-top: 0; margin-top: clamp(2.5rem, 6vw, 4.5rem); }
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.separador-foto img { scale: 1.18; animation: paneo linear both; animation-timeline: view(); }
		@keyframes paneo { from { translate: 0 -7%; } to { translate: 0 7%; } }
	}
}
/* Estilo "Entera (sin recorte)": la foto se ve completa, con su proporción y sin paralaje. */
.separador-foto.is-style-entera img { aspect-ratio: auto; height: auto; max-height: none; object-fit: fill; scale: none; translate: none; animation: none; }

/* Foto chica con epígrafe: flota a la derecha del texto */
.foto-chica { float: right; width: min(42%, 300px); margin: .3rem 0 1rem 1.4rem !important; }
.foto-chica img { width: 100%; height: auto; border-radius: 3px; }
.foto-chica figcaption { font-size: .78rem; line-height: 1.4; color: var(--gris); margin-top: .5rem; }
.foto-chica figcaption .credito { display: block; margin-top: .2rem; }
@media (max-width: 599px) { .foto-chica { width: 42%; max-width: 160px; margin-left: 1rem !important; } }
.prosa::after, .contenido::after { content: ""; display: table; clear: both; }

/* ---------- convocatorias ----------
   Tarjetas con borde fino y una barra a la izquierda del color del estado:
   violeta abierta, ocre próxima, gris cerrada. El estado sigue escrito en la etiqueta. */
.convs { display: grid; gap: clamp(1rem, 2.4vw, 1.6rem); }
.conv {
	--estado: #b8b8b8;
	position: relative; display: grid; gap: 1rem; background: var(--papel);
	border: 1px solid var(--linea); border-radius: 6px;
	padding: clamp(1.3rem, 3vw, 2rem) clamp(1.2rem, 3vw, 2rem) clamp(1.3rem, 3vw, 2rem) calc(clamp(1.2rem, 3vw, 2rem) + 6px);
	transition: border-color .3s var(--curva), box-shadow .3s var(--curva), transform .3s var(--curva);
}
.conv::before { content: ""; position: absolute; left: -1px; top: -1px; bottom: -1px; width: 6px; border-radius: 6px 0 0 6px; background: var(--estado); }
.conv--abierta { --estado: var(--jacinto); }
.conv--proxima { --estado: var(--limo); }
@media (min-width: 880px) { .conv { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 3rem; align-items: start; } }
.conv h3 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 300; }
.conv-estado { margin: 0 0 .7rem; display: flex; flex-wrap: wrap; gap: .4rem .8rem; align-items: center; }
.conv-desc { margin: .8rem 0 0; max-width: 56ch; color: var(--texto-2); }
.conv-desc > :first-child { margin-top: 0; }
.conv-desc > :last-child { margin-bottom: 0; }
.conv-acciones { margin: 1.2rem 0 0; display: flex; gap: .7rem 1.2rem; flex-wrap: wrap; align-items: center; }
.conv .info { display: grid; gap: .55rem; font-size: .92rem; margin: 0; background: var(--gris-claro); border-radius: 4px; padding: 1rem 1.1rem; }
.conv .info div { display: flex; gap: .8rem; border-bottom: 1px dotted #cfcfcf; padding-bottom: .5rem; }
.conv .info div:last-child { border-bottom: 0; padding-bottom: 0; }
.conv .info dt { color: var(--gris); width: 8.5rem; flex: none; }
.conv .info dd { margin: 0; }
@media (hover: hover) {
	.conv:hover { border-color: var(--estado); box-shadow: 0 14px 32px -22px rgba(0, 0, 0, .45); }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.conv:hover { transform: translateY(-2px); }
}

/* ---------- sedes ---------- */
.mapa-sedes { height: clamp(320px, 60vh, 560px); border-top: 1px solid var(--tinta); border-bottom: 1px solid var(--linea); background: var(--gris-claro); z-index: 0; }
.mapa-sedes .leaflet-container, .mapa-sedes.leaflet-container { font-family: var(--fuente); }
.pin-sede { border-radius: 50%; border: 3px solid #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, .55); }
.leaflet-marker-icon.pin-sede:focus-visible { outline: 2px solid var(--jacinto); outline-offset: 2px; }
.leaflet-popup-content { font-size: .9rem; line-height: 1.4; margin: 12px 16px; }
.leaflet-popup-content b { display: block; font-size: 1rem; font-weight: 500; margin-bottom: .2rem; }
.leaflet-popup-content a { color: var(--jacinto); }
.mapa-nota { font-size: .8rem; color: var(--gris); margin: .6rem 0 0; }
/* Directorio: fichas con foto a la izquierda y un filete del color del territorio (Sedes → Territorios). */
.directorio-leyenda { list-style: none; margin: 0 0 1.6rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; font-size: .88rem; color: var(--gris); }
.directorio-leyenda li { display: inline-flex; align-items: center; gap: .45em; }
.icono { width: 1.35em; height: 1.35em; flex: none; }
.ley-zona .icono, .sede-zonas .icono { color: var(--limo); }
.ley-espacio .icono, .sede-espacio .icono { color: var(--tinta); }
.directorio { display: grid; border-top: 1px solid var(--tinta); }
.sede-ficha {
	--territorio: var(--limo);
	display: grid; gap: 1rem; padding: 1.2rem 0 1.4rem 1rem;
	border-bottom: 1px solid var(--linea); border-left: 3px solid var(--territorio);
}
@media (min-width: 760px) { .sede-ficha { grid-template-columns: minmax(200px, 320px) minmax(0, 1fr); gap: clamp(1.4rem, 3vw, 2.4rem); padding: 1.6rem 0 1.6rem 1.5rem; } }
.sede-foto { aspect-ratio: 4 / 3; overflow: hidden; border-radius: 4px; background: var(--gris-claro); }
.sede-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Sin foto: curvas de nivel sobre negro y el isotipo. */
.sede-foto--vacia { display: grid; place-items: center; background: var(--tinta) url(../img/curvas.webp) center / cover; color: #fff; }
.sede-foto--vacia svg { width: 32%; height: auto; opacity: .85; }
.sede-datos { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.sede-datos > * { margin: 0; }
.sede-num { font-size: .9rem; color: var(--gris); }
.sede-tipo { font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); }
.sede-ficha h3 { font-size: clamp(1.25rem, 2.2vw, 1.6rem); font-weight: 400; }
.sede-dir { font-size: .92rem; color: var(--gris); }
.sede-desc { font-size: .92rem; color: var(--texto-2); max-width: 56ch; }
.sede-desc > * { margin: 0 0 .5em; }
.sede-zonas { list-style: none; padding: 0; margin-top: .5rem !important; display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; font-size: .92rem; }
.sede-zonas li { display: inline-flex; align-items: center; gap: .4em; }
.sede-pie { margin-top: auto !important; padding-top: .8rem; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.4rem; font-size: .92rem; }
.sede-espacio { margin: 0 0 0 auto; display: inline-flex; gap: .4rem; font-size: 1.1rem; }
.sede-ficha:target, .conv:target, .act:target, .colab:target, .faq details:target { background: linear-gradient(90deg, rgba(168, 58, 206, .07), transparent 70%); }

/* ---------- programa ---------- */
.filtros { display: grid; gap: 1rem; padding: 1.6rem 0; border-bottom: 1px solid var(--linea); }
.figrupo { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; border: 0; margin: 0; padding: 0; min-width: 0; }
.figrupo legend { float: left; font-size: .8rem; color: var(--gris); width: 6.2rem; padding: 0; margin-right: .45rem; }
.chip { font: inherit; font-size: .84rem; cursor: pointer; background: none; color: var(--gris); border: 1px solid var(--linea); border-radius: 999px; padding: .34rem .8rem; min-height: 32px; }
.chip:hover { border-color: var(--tinta); color: var(--tinta); }
.chip[aria-pressed="true"] { background: var(--tinta); border-color: var(--tinta); color: var(--papel); }
.chip.rio[aria-pressed="true"] { background: var(--limo); border-color: var(--limo); }
.chip.acc[aria-pressed="true"] { background: var(--jacinto); border-color: var(--jacinto); }
.cuenta-res { font-size: .85rem; color: var(--gris); padding: 1rem 0; margin: 0; }
.act { display: grid; gap: .6rem; padding: 1.3rem 0 1.3rem 2rem; border-bottom: 1px solid var(--linea); position: relative; }
@media (min-width: 880px) { .act { grid-template-columns: 6.6rem minmax(0, 2.2fr) minmax(0, 1.1fr) auto; gap: 1.5rem; align-items: baseline; padding-left: 2.4rem; } }
/* Línea de tiempo: eje vertical ocre y un punto por actividad. */
.act::before { content: ""; position: absolute; left: .45rem; top: 0; bottom: 0; width: 1px; background: rgba(115, 72, 0, .32); }
.act::after {
	content: ""; position: absolute; left: .45rem; top: 1.85rem; width: .8rem; height: .8rem; translate: -50% 0;
	border-radius: 50%; background: var(--papel); border: 2px solid var(--limo);
	transition: background-color .25s var(--curva), border-color .25s var(--curva), scale .25s var(--curva);
}
.dia .act:last-child::before { bottom: auto; height: 2.2rem; }
.act .hora { white-space: nowrap; font-size: clamp(1.35rem, 2.4vw, 1.75rem); font-weight: 200; line-height: 1.1; color: var(--limo); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.act .hora > span[aria-hidden] { display: block; font-size: .55em; font-weight: 400; letter-spacing: 0; margin-top: .2rem; }
.act h3 { font-size: 1.15rem; font-weight: 400; letter-spacing: -.01em; }
.act .desc { font-size: .92rem; color: #3d3d3d; margin: .3rem 0 0; max-width: 58ch; }
.act .desc > * { margin: 0 0 .5em; }
.act .desc > :last-child { margin-bottom: 0; }
.act .sede { font-size: .88rem; color: var(--gris); }
.act .sede a { color: inherit; }
.act-acciones { margin-top: .8rem; }
.act-acciones .cta { padding: .45rem 1rem; font-size: .88rem; }
@media (hover: hover) {
	.act:hover::after { background: var(--jacinto); border-color: var(--jacinto); }
	.act:hover h3 { color: var(--jacinto-osc); }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .act:hover::after { scale: 1.3; } }
.dia-cab { padding: 2.8rem 0 .9rem; border-bottom: 1px solid var(--tinta); display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.dia-cab h2 { font-size: clamp(1.7rem, 3.6vw, 2.6rem); font-weight: 200; letter-spacing: -.025em; }
.dia-cab .n { font-size: .85rem; color: var(--gris); }
.dia-cab .n:last-child { margin-left: auto; }
.vacio { padding: 3rem 0; color: var(--gris); border-bottom: 1px solid var(--linea); margin: 0; }

/* ---------- blog ---------- */
.posts { display: grid; gap: 0; border-top: 1px solid var(--tinta); }
.post { border-bottom: 1px solid var(--linea); padding: clamp(1.3rem, 3vw, 2rem) 0; display: grid; gap: .6rem; }
@media (min-width: 880px) { .post { grid-template-columns: 8rem minmax(0, 1fr); gap: 2.5rem; align-items: baseline; } }
.posts--compacto .post { grid-template-columns: none; }
.post h3 { font-size: clamp(1.3rem, 2.4vw, 1.75rem); font-weight: 300; letter-spacing: -.015em; }
.post h3 a { text-decoration: none; }
.post h3 a:hover { color: var(--jacinto); }
.post .bajada { margin: .6rem 0 0; color: #3d3d3d; max-width: 62ch; }
.post-img { margin-bottom: .8rem; max-width: 420px; }
/* Listado del blog (no la portada): tarjeta con miniatura y fecha en bloque grande. */
.post--tarjeta { gap: 1rem; padding: clamp(1.4rem, 3vw, 2.2rem) 0; }
@media (min-width: 760px) { .posts .post--tarjeta { grid-template-columns: minmax(200px, 300px) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; } }
.post-media { display: block; position: relative; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 4px; background: #f7f0e3; }
@media (min-width: 760px) { .post-media { aspect-ratio: 4 / 3; } }
.post-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--curva); }
.post-curvas::before { content: ""; position: absolute; inset: 0; background: url("../img/curvas.webp") center / cover no-repeat; filter: invert(1); opacity: .3; }
.post-meta { display: flex; flex-wrap: wrap; gap: .3rem 1rem; align-items: baseline; margin-bottom: .6rem; }
.post-fecha { display: inline-flex; align-items: baseline; gap: .45rem; color: var(--limo); }
.post-fecha .dia { font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 200; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.post-fecha .mes { font-size: .74rem; text-transform: uppercase; letter-spacing: .12em; }
.post--tarjeta h3 a { transition: color .25s var(--curva); }
@media (hover: hover) { .post--tarjeta:hover h3 a { color: var(--jacinto); } }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .post--tarjeta:hover .post-media img { transform: scale(1.05); } }
.articulo { max-width: 64ch; }
.articulo-img { margin: 0 0 2.4rem; }
.articulo-img img { width: 100%; }
.articulo > h2 { font-size: clamp(1.15rem, 2vw, 1.4rem); font-weight: 500; letter-spacing: 0; margin: 2.2rem 0 .7rem; }
.paginacion { display: flex; flex-wrap: wrap; gap: .5rem; padding-top: 2rem; }
.paginacion .page-numbers { display: inline-block; min-width: 2.4rem; text-align: center; padding: .4rem .8rem; border: 1px solid var(--linea); border-radius: 999px; text-decoration: none; color: var(--gris); }
.paginacion .page-numbers.current { background: var(--tinta); border-color: var(--tinta); color: var(--papel); }
.paginacion a.page-numbers:hover { border-color: var(--tinta); color: var(--tinta); }

/* ---------- colaboradores ----------
   Tarjetas en grilla con borde y fondo muy claro; el logo pasa de gris a color al
   pasar el mouse (en pantallas táctiles se ve siempre en color). */
.colabs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
@media (min-width: 640px) { .colabs { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .9rem; } }
.colab {
	border: 1px solid var(--linea); border-radius: 6px; background: #fafafa;
	transition: border-color .3s var(--curva), background-color .3s var(--curva), box-shadow .3s var(--curva);
}
/* El contenido va dentro del link si la institución tiene sitio, o directo en la tarjeta si no. */
.colab > a, .colab:not(:has(> a)) { display: grid; gap: .8rem; justify-items: center; align-content: center; text-align: center; min-height: 160px; height: 100%; padding: 1.2rem 1rem; text-decoration: none; }
.colab-logo { height: 64px; display: flex; align-items: center; justify-content: center; }
.colab-logo img { max-height: 64px; max-width: 160px; width: auto; object-fit: contain; mix-blend-mode: multiply; transition: filter .4s var(--curva), opacity .4s var(--curva); } /* Un fondo blanco del PNG desaparece. */
.colab h3 { font-size: .95rem; font-weight: 400; letter-spacing: 0; line-height: 1.3; }
.colab-rol + .colab-rol { margin-top: clamp(2.5rem, 5vw, 4rem); }
.rotulo-n { display: inline-block; min-width: 1.6em; margin-left: .4rem; padding: .1em .45em; border-radius: 999px; background: var(--gris-claro); color: var(--gris); font-size: .9em; text-align: center; font-variant-numeric: tabular-nums; }
@media (hover: hover) {
	.colab-logo img { filter: grayscale(1); opacity: .8; }
	.colab:hover { border-color: var(--tinta); background: var(--papel); box-shadow: 0 12px 28px -22px rgba(0, 0, 0, .45); }
	.colab:hover .colab-logo img { filter: none; opacity: 1; }
	.colab:hover h3 { color: var(--jacinto-osc); }
}

/* ---------- faq ----------
   Numeración grande y liviana en violeta; la pregunta abierta toma un fondo violeta
   muy suave con un filete a la izquierda (no depende del mouse). */
.faq { border-top: 1px solid var(--tinta); max-width: 80ch; counter-reset: preg; }
.faq + .rotulo { margin-top: 3rem; }
.faq details { border-bottom: 1px solid var(--linea); counter-increment: preg; transition: background-color .3s var(--curva), box-shadow .3s var(--curva); }
.faq summary {
	list-style: none; cursor: pointer; position: relative;
	padding: 1.25rem 2.8rem 1.25rem 3.4rem; font-size: clamp(1.02rem, 1.8vw, 1.22rem); font-weight: 400;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before {
	content: counter(preg, decimal-leading-zero); position: absolute; left: .2rem; top: 50%; translate: 0 -50%;
	font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 200; line-height: 1; color: var(--jacinto);
	font-variant-numeric: tabular-nums; transition: font-weight .3s var(--curva);
}
.faq summary::after { content: "+"; position: absolute; right: .8rem; top: 50%; translate: 0 -50%; font-size: 1.4rem; font-weight: 200; color: var(--gris); line-height: 1; }
.faq details[open] summary::after { content: "–"; }
.faq details[open] { background: #f8f1fb; box-shadow: inset 3px 0 var(--jacinto); }
.faq details[open] summary { color: var(--jacinto-osc); }
.faq details[open] summary::before { font-weight: 500; }
.faq .resp { padding: 0 1.4rem 1.5rem 3.4rem; max-width: 66ch; color: var(--texto-2); }
.faq .resp > * { margin: 0 0 .9em; }
.faq .resp > :last-child { margin: 0; }
@media (hover: hover) { .faq summary:hover::before { font-weight: 500; } }
@media (max-width: 599px) {
	.faq summary { padding-left: 2.8rem; }
	.faq .resp { padding-left: 2.8rem; padding-right: 1rem; }
}

/* ---------- bloque de contacto ---------- */
.razones { margin: 0; padding: 0; list-style: none; counter-reset: r; display: grid; gap: .6rem; max-width: 54ch; }
.razones li { counter-increment: r; position: relative; padding-left: 2rem; }
.razones li::before { content: counter(r, decimal-leading-zero); position: absolute; left: 0; top: .15em; font-size: .78rem; color: var(--jacinto); font-variant-numeric: tabular-nums; }
.contacto {
	position: relative; isolation: isolate; overflow: hidden;
	background: var(--tinta); color: var(--papel); border-radius: 4px;
	padding: clamp(1.8rem, 5vw, 4rem); display: grid; gap: 1.6rem;
}
.contacto::before {
	content: ""; position: absolute; inset: 0; z-index: -1; opacity: .12;
	background: url("../img/curvas.webp") center / cover no-repeat;
}
.contacto .razones li::before { color: var(--jacinto-claro); }
.contacto .contacto-texto, .contacto .razones { color: rgba(255, 255, 255, .86); }
.contacto .cta { background: var(--jacinto); border-color: var(--jacinto); color: #fff; }
.contacto .cta:hover { background: var(--papel); border-color: var(--papel); color: var(--tinta); }
@media (min-width: 840px) { .contacto { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 3rem; } }
.contacto h2 { margin-bottom: .8rem; font-size: clamp(1.7rem, 3.4vw, 2.6rem); font-weight: 200; letter-spacing: -.025em; }
.contacto-texto { margin: 0 0 1rem; max-width: 52ch; }
.sec--contacto { border-bottom: 0; }
.blog-titulo { margin-bottom: 1rem; }
.blog-bajada { margin-bottom: 1.6rem; }

/* ---------- pie ---------- */
.pie { position: relative; background: var(--tinta); color: #c9c9c9; padding: clamp(2.6rem, 5vw, 4rem) 0 2rem; font-size: .92rem; }
.pie::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, var(--jacinto), var(--limo-claro) 60%, transparent); }
.pie a { transition: color .2s; }
.pie-indice a:hover, .pie-redes a:hover { color: var(--jacinto-claro); }
.pie a { color: #e9e9e9; }
.pie-grid { display: grid; gap: 2.2rem; }
@media (min-width: 840px) { .pie-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); } }
.pie h2 { font-size: .85rem; font-weight: 500; color: #9a9a9a; margin-bottom: .9rem; letter-spacing: 0; line-height: 1.3; }
.pie ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.pie-texto { margin: 0 0 .8rem; max-width: 36ch; }
.pie-redes { display: flex !important; flex-wrap: wrap; gap: .45rem 1.2rem !important; margin-top: 1rem !important; }
.pie-organizan, .pie-legal { background: linear-gradient(#2a2a2a, #2a2a2a) center top / calc(100% - 2 * var(--gut)) 1px no-repeat; } /* línea alineada con el contenido */
.pie-organizan { margin-top: 2.6rem; padding-top: 1.6rem; }
.pie .pie-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 1.6rem clamp(2rem, 4vw, 3.4rem); }
.pie-logos img { height: 32px; width: auto; max-width: 200px; object-fit: contain; filter: grayscale(1) invert(1); mix-blend-mode: screen; } /* Logo oscuro sobre blanco o transparente: queda blanco y el fondo se funde con el negro. */
.pie-logos a:hover img { opacity: .75; }
@media (max-width: 560px) { .pie-logos img { height: 25px; } }
.pie .marca { color: #fff; font-size: 15px; margin-bottom: 1.1rem; }
.pie-legal { margin-top: 1.8rem; padding-top: 1.3rem; display: flex; flex-wrap: wrap; gap: .6rem 2rem; color: #8a8a8a; font-size: .84rem; }
.pie-licencia { display: inline-flex; align-items: center; gap: .5em; }
.pie-licencia svg { width: 1.35em; height: 1.35em; flex: none; }
.pie .pie-licencia a { color: inherit; text-decoration: underline; text-decoration-color: #5a5a5a; }
.pie .pie-licencia a:hover { color: #e9e9e9; }

/* ---------- 404 / búsqueda ---------- */
.buscador { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1.6rem; }
.buscador input[type=search] { font: inherit; padding: .6rem 1rem; border: 1px solid var(--tinta); border-radius: 999px; min-width: min(100%, 320px); }
.buscador button { font: inherit; }

/* ---------- franja de fotos (portada) ---------- */
.fotos { border-bottom: 0; padding-bottom: clamp(2rem, 5vw, 4rem); }
.fotos-titulo { margin-bottom: clamp(1.4rem, 3vw, 2.4rem); max-width: 18ch; }
.fotos-grid { list-style: none; margin: 0; padding: 0; }
.foto figure { margin: 0; position: relative; height: 100%; overflow: hidden; background: var(--gris-claro); border-radius: 3px; }
.foto picture { display: contents; } /* Sin caja propia: la imagen se comporta igual que sin <picture>. */
.foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--curva); }
.foto figcaption {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 2.2rem .9rem .7rem;
	background: linear-gradient(0deg, rgba(0, 0, 0, .78), transparent);
	color: var(--papel); font-size: .8rem; line-height: 1.35; display: grid; gap: .1rem;
}
.foto .credito { color: rgba(255, 255, 255, .8); font-size: .72rem; }
/* Celular y tablet: carrusel que se desliza de costado (scroll-snap, sin JS). */
@media (max-width: 899px) {
	.fotos-grid {
		display: grid; grid-auto-flow: column; grid-auto-columns: min(82%, 420px); gap: .7rem;
		overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
		margin: 0 calc(var(--gut) * -1); padding: 0 var(--gut) .6rem; scroll-padding: 0 var(--gut);
		scrollbar-width: thin;
	}
	.foto { scroll-snap-align: start; aspect-ratio: 4 / 5; }
}
/* Escritorio: mosaico de 12 columnas; cada foto ocupa un tamaño distinto según su lugar. */
@media (min-width: 900px) {
	.fotos-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: clamp(150px, 17vw, 250px); grid-auto-flow: dense; gap: clamp(.6rem, 1vw, 1rem); }
	.foto { grid-column: span 4; }
	.foto:nth-child(6n+1) { grid-column: span 7; grid-row: span 2; }
	.foto:nth-child(6n+2), .foto:nth-child(6n+3) { grid-column: span 5; }
	.foto:nth-child(6n+4) { grid-column: span 4; grid-row: span 2; }
	.foto:nth-child(6n+5), .foto:nth-child(6n) { grid-column: span 8; }
	.fotos-grid--1 .foto:nth-child(n), .fotos-grid--2 .foto:nth-child(n) { grid-column: span 6; grid-row: span 2; }
	.fotos-grid--3 .foto:nth-child(n) { grid-column: span 4; grid-row: span 2; }
	.fotos-grid--4 .foto:nth-child(4) { grid-column: span 12; }
	.fotos-grid--7 .foto:nth-child(7) { grid-column: span 12; }
	.fotos-grid--8 .foto:nth-child(7), .fotos-grid--8 .foto:nth-child(8) { grid-column: span 6; }
	.foto:hover img { transform: scale(1.045); }
}

/* ---------- aparición al hacer scroll ----------
   .revelar se pone en <html> desde el <head> solo si el navegador puede y no se pidió
   menos movimiento. Sin JS, todo se ve desde el principio.
   Además de lo marcado con .revela (portada), aparecen solos el contenido de las páginas
   y los ítems de cada listado interior, escalonados (bienal.js calcula --retraso). */
.revelar .revela { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--curva), transform .9s var(--curva); transition-delay: calc(var(--i, 0) * 70ms); }
.revelar .revela.visto { opacity: 1; transform: none; }
/* Contenido e ítems de listados: con una animación (no transición), así al terminar
   cada tarjeta recupera sus propias transiciones para el efecto al pasar el mouse. */
.revelar :is(.contenido > :not(.filas, .bienal-cauces-zonas), .contenido > .filas > .fila, .cauces > .cauce, .zonas > .zona, .convs > .conv, .sede-ficha, .act, .faq > details, .colab, .posts:not(.posts--compacto) > .post):not(.visto) { opacity: 0; }
.revelar :is(.contenido > :not(.filas, .bienal-cauces-zonas), .contenido > .filas > .fila, .cauces > .cauce, .zonas > .zona, .convs > .conv, .sede-ficha, .act, .faq > details, .colab, .posts:not(.posts--compacto) > .post).visto { animation: revela-item .8s var(--curva) var(--retraso, 0ms) backwards; }
@keyframes revela-item { from { opacity: 0; transform: translateY(26px); } }
.revelar .foto.revela { transform: none; clip-path: inset(18% 0 0 0); transition-property: opacity, clip-path; }
.revelar .foto.revela.visto { clip-path: inset(0); }

/* Transición suave entre páginas (Chrome, Edge, Safari 18+); los demás navegan como siempre. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: .25s var(--curva-sale) both vt-sale; }
::view-transition-new(root) { animation: .45s var(--curva) both vt-entra; }
@keyframes vt-sale { to { opacity: 0; } }
@keyframes vt-entra { from { opacity: 0; transform: translateY(12px); } }
@media (prefers-reduced-motion: reduce) {
	::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media print {
	.bar, .menu, .pie, .filtros, .mapa-sedes, .hero-fondo, .hero-velo, .hero .carto, .hero-iso { display: none !important; }
	.hero { background: none; color: var(--tinta); min-height: 0; }
}

/* estilos de bloque propios */
.is-style-bajada { font-size: clamp(1.12rem, 1.65vw, 1.4rem); line-height: 1.5; font-weight: 300; }
.has-small-font-size { font-size: .85rem; }
.has-large-font-size { font-size: clamp(1.12rem, 1.65vw, 1.4rem); line-height: 1.5; font-weight: 300; }

/* Mosaicos de OpenStreetMap en grises, a tono con el blanco y negro del sitio. */
.mapa-sedes .leaflet-tile-pane { filter: grayscale(1) contrast(.92) brightness(1.06); }
.rotulo + .colabs { border-top: 0; }
