/*
Theme Name:        CCV GeneratePress Child
Theme URI:         https://catedracantabriavivienda.es/
Description:       GeneratePress child theme for Cátedra Cantabria Vivienda.
Author:            Viacore
Author URI:        https://viacoreit.com/
Template:          generatepress
Version:           0.12.4
Requires at least: 7.1
Requires PHP:      8.1
Text Domain:       ccv
Domain Path:       /languages
License:           GPL-2.0-or-later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
*/

/*
 * Índice
 * 0. Fuentes
 * 1. Tokens
 * 2. Base: tipografía, foco y enlaces
 * 3. Componentes pintados por código (BEM, prefijo ccv-)
 *
 * Lo que se monta con bloques se estiliza con Global Styles de GenerateBlocks.
 * Aquí solo va lo que pinta el código. Nada de hexadecimales sueltos:
 * los colores salen de la paleta global de GeneratePress.
 */

/* 0. Fuentes --------------------------------------------------------------- */

/*
 * Alojadas en el tema (licencia OFL en assets/fonts/OFL.txt) con font-display: swap.
 * El fonts.css de GeneratePress no se carga en el front (inc/performance.php).
 * Las de respaldo ajustan Arial para que el cambio de fuente no mueva la maqueta.
 */
@font-face {
	font-display: swap;
	font-family: Barlow;
	font-style: normal;
	font-weight: 400;
	src: url(assets/fonts/barlow-400.woff2) format("woff2");
}

@font-face {
	font-display: swap;
	font-family: Barlow;
	font-style: normal;
	font-weight: 600;
	src: url(assets/fonts/barlow-600.woff2) format("woff2");
}

@font-face {
	font-display: swap;
	font-family: Barlow;
	font-style: normal;
	font-weight: 700;
	src: url(assets/fonts/barlow-700.woff2) format("woff2");
}

@font-face {
	font-display: swap;
	font-family: "Barlow Semi Condensed";
	font-style: normal;
	font-weight: 700;
	src: url(assets/fonts/barlow-semi-condensed-700.woff2) format("woff2");
}

@font-face {
	font-family: "Barlow Fallback";
	src: local("Arial");
	size-adjust: 94%;
}

@font-face {
	font-family: "Barlow Semi Condensed Fallback";
	src: local("Arial Narrow"), local("Arial");
	size-adjust: 86%;
}

/* 1. Tokens ---------------------------------------------------------------- */

:root {

	/* Espaciado (escala en rem) */
	--ccv-space-3xs: 0.25rem;
	--ccv-space-2xs: 0.5rem;
	--ccv-space-xs: 0.75rem;
	--ccv-space-s: 1rem;
	--ccv-space-m: 1.5rem;
	--ccv-space-l: 2rem;
	--ccv-space-xl: 3rem;
	--ccv-space-2xl: 4rem;
	--ccv-space-3xl: 6rem;

	/* Ritmo vertical entre secciones */
	--ccv-space-section: 7rem;

	/* Objetivos táctiles (WCAG 2.2: 24 px mínimo, 44 px en botones) */
	--ccv-space-target-min: 24px;
	--ccv-space-target-button: 44px;

	/*
	 * Tamaños de maquetación. El margen lateral (gutter) coincide con el
	 * de la cabecera de GeneratePress (40 px; 16 px en móvil) y el contenedor
	 * con su ancho útil (1200 − 2 × 40), para que todo arranque en la misma línea.
	 */
	--ccv-size-container: 70rem;
	--ccv-size-prose: 46rem;
	--ccv-gutter: 2.5rem;

	/*
	 * Escala tipográfica: 8 pasos. Ningún componente usa tamaños sueltos.
	 * xs pie de mapa y copyright · s fechas, meta y pie · base cuerpo ·
	 * m lead y h3 · l h2 interior · xl h2 de portada y h1 de página ·
	 * 2xl fecha y título del congreso · display solo el h1 de la portada.
	 */
	--ccv-text-xs: 0.8125rem;
	--ccv-text-s: 0.9375rem;
	--ccv-text-base: 1.125rem;
	--ccv-text-m: clamp(1.25rem, 1vw + 1rem, 1.5rem);
	--ccv-text-l: clamp(1.5rem, 1.5vw + 1rem, 1.875rem);
	--ccv-text-xl: clamp(1.75rem, 2vw + 1rem, 2.75rem);
	--ccv-text-2xl: clamp(2.5rem, 4vw + 1rem, 4rem);
	--ccv-text-display: clamp(3rem, 6vw + 1rem, 6.5rem);
	--ccv-font-body: "Barlow", "Barlow Fallback", sans-serif;
	--ccv-font-heading: "Barlow Semi Condensed", "Barlow Semi Condensed Fallback", sans-serif;

	/* Profundidad: sombras teñidas de verde, no grises (la textura del mapa la define inc/templates.php) */
	--ccv-shadow-s: 0 2px 8px color-mix(in srgb, var(--accent) 10%, transparent);
	--ccv-shadow-m: 0 12px 32px color-mix(in srgb, var(--accent) 18%, transparent);

	/* Radios (s = botones y controles; m = tarjetas e imágenes) */
	--ccv-radius-s: 0.5rem;
	--ccv-radius-m: 0.5rem;
	--ccv-radius-l: 1rem;
	--ccv-radius-pill: 999px;

	/*
	 * Colores semánticos sobre la paleta global de GeneratePress.
	 * accent = verde Cátedra · accent-2 = rojo accesible (texto y botones)
	 * accent-3 = rojo SANFI (solo bordes y líneas de 3 px o más; nunca texto)
	 * accent-4 = morado del cartel: queda en la paleta, pero no se usa en la interfaz
	 *            (regla de dos acentos: verde = Cátedra, rojo = Congreso)
	 * accent-5 = verde de bandas (héroe, cabeceras, pie, barra del congreso):
	 *            más claro y cálido que el del logo para no pesar tanto
	 * accent-6 = salvia: superficies de realce y hover de filas
	 * Paleta «cálida» (D) aprobada el 29/10/2026: ver docs/conventions.md.
	 */
	--ccv-color-text: var(--contrast);
	--ccv-color-text-muted: var(--contrast-2);
	--ccv-color-border: var(--contrast-3);
	--ccv-color-surface: var(--base);
	--ccv-color-surface-strong: var(--base);
	--ccv-color-background: var(--base-3);
	--ccv-color-primary: var(--accent);
	--ccv-color-secondary: var(--accent-2);
	--ccv-color-decor: var(--accent-3);
	--ccv-color-on-primary: var(--base-3);
	--ccv-color-link: var(--accent);
	--ccv-color-band: var(--accent-5);

	/* Salvia (superficies de realce y hover de filas) y rojo de hover */
	--ccv-color-primary-tint: var(--accent-6);
	--ccv-color-secondary-strong: color-mix(in srgb, var(--accent-2) 82%, var(--contrast));

	/*
	 * Velo de las cabeceras con foto: opaco detrás del texto (86 %), casi
	 * transparente en el resto (22 %) para que la foto se reconozca.
	 * Los Global Styles de .ccv-hero lo usan en un degradado lateral.
	 */
	--ccv-color-overlay-strong: color-mix(in srgb, var(--ccv-color-band) 86%, transparent);
	--ccv-color-overlay-weak: color-mix(in srgb, var(--ccv-color-band) 22%, transparent);

	/* Color de realce: verde en la Cátedra, rojo en el congreso */
	--ccv-color-highlight: var(--ccv-color-primary);

	/* Foco: doble anillo (interior claro + exterior verde, 13,9:1) */
	--ccv-focus-width: 3px;
	--ccv-focus-offset: 2px;
	--ccv-focus-color: var(--accent);
	--ccv-focus-color-inner: var(--base-3);
}

/* Identidad del congreso: solo en /congreso/ y sus páginas hijas */
.ccv-congress {
	--ccv-color-highlight: var(--accent-2);
	--ccv-color-day-1: var(--ccv-color-band);
	--ccv-color-day-2: var(--accent-2);
	--ccv-color-day-2-decor: var(--accent-3);

	/* Titular negro y «Vivienda» en rojo, como en el cartel */
	--ccv-hero-title-color: var(--ccv-color-text);
}

@media (max-width: 768px) {

	:root {
		--ccv-gutter: 1rem;
		--ccv-space-section: 4.5rem;
	}
}

/* 2. Base: tipografía, foco y enlaces --------------------------------------- */

body,
button,
input,
select,
textarea {
	font-family: var(--ccv-font-body);
}

body {
	font-size: var(--ccv-text-base);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--ccv-font-heading);
	letter-spacing: -0.01em;
	line-height: 1.05;
}

h1 {
	font-size: var(--ccv-text-xl);
}

h2 {
	font-size: var(--ccv-text-l);
}

/* h3 en Barlow 600, como los antetítulos */
h3 {
	font-family: var(--ccv-font-body);
	font-size: var(--ccv-text-m);
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.25;
}

h4 {
	font-size: var(--ccv-text-base);
}

/* Margen al saltar a un ancla o al tabular, para no quedar bajo las barras fijas */
html {
	scroll-padding-top: 4.5rem;
	scroll-padding-bottom: 5rem;
}

:where(h1, h2, h3, h4) {
	color: var(--ccv-color-primary);
}

:focus-visible {
	outline: var(--ccv-focus-width) solid var(--ccv-focus-color);
	outline-offset: var(--ccv-focus-offset);
	box-shadow: 0 0 0 var(--ccv-focus-offset) var(--ccv-focus-color-inner);
}

:where(.entry-content, .ccv-prose) a:where(:not([class])) {
	color: var(--ccv-color-link);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* Enlace visitado definido: que el morado del lema no se confunda con uno */
a:visited {
	color: var(--ccv-color-link);
}

/* Titulares de la Cátedra en frase normal; el congreso mantiene las mayúsculas del cartel */
body:not(.ccv-congress) .ccv-hero__title {
	letter-spacing: -0.02em;
	line-height: 1;
	text-transform: none;
}

/* 3. Componentes pintados por código --------------------------------------- */

/*
 * Cabecera (0.12.4): la navegación de GeneratePress hace de cabecera
 * («Navigation as Header» de GP Premium, Menú Plus) con el logo dentro, y es
 * fija con «ocultar al bajar»: se esconde al desplazarse hacia abajo y
 * reaparece al subir. Todo es configuración de Personalizar; no hay script
 * propio. La fila institucional (.ccv-top-bar) va encima, estática.
 * En el congreso la fija es la barra verde (inc/congress.php quita la fijación).
 */
.main-navigation {
	border-bottom: 1px solid var(--ccv-color-surface-strong);
}

.main-navigation .inside-navigation {
	padding-right: var(--ccv-gutter);
	padding-left: var(--ccv-gutter);
}

/* Logo en el menú: 60 px de alto de línea con 8 px de aire (GP pone 10 px) */
.main-navigation .navigation-branding img,
.main-navigation .sticky-navigation-logo img {
	width: auto;
	padding: 0.5rem 0;
}

/* Al fijarse, GP pone una sombra gris; la nuestra es la teñida (is_stuck es clase de GP) */
/* stylelint-disable-next-line selector-class-pattern */
.sticky-enabled .main-navigation.is_stuck {
	box-shadow: var(--ccv-shadow-s);
}

/* «Congreso 2026» junto al botón de menú, solo en móvil.
   Con .main-navigation para ganar a «.main-navigation .menu-bar-items a» de GP. */
.main-navigation .menu-bar-items .ccv-header-cta {
	display: none;
}

@media (max-width: 768px) {

	.main-navigation .menu-bar-items .ccv-header-cta {
		display: inline-flex;
		align-items: center;
		min-height: var(--ccv-space-target-button);
		margin-right: var(--ccv-space-xs);
		padding: 0 var(--ccv-space-xs);
		border-radius: var(--ccv-radius-s);
		background-color: var(--ccv-color-primary);
		color: var(--ccv-color-on-primary);
		font-weight: 600;
		text-decoration: none;
	}

	.main-navigation .menu-bar-items .ccv-header-cta:hover {
		background-color: var(--ccv-color-band);
		color: var(--ccv-color-on-primary);
	}

	.main-navigation .menu-toggle {
		min-height: var(--ccv-space-target-button);
		padding: 0 var(--ccv-space-s);
		border: 2px solid var(--ccv-color-primary);
		border-radius: var(--ccv-radius-s);
		background-color: transparent;
		color: var(--ccv-color-primary);
		line-height: calc(var(--ccv-space-target-button) - 4px);
	}

	.ccv-top-bar__text {
		display: none;
	}
}

/*
 * Superficie oscura: el pie y la sección oscura de cada página (verde de
 * bandas con la textura del mapa). Los tokens semánticos se invierten para
 * que lo que haya dentro (texto, enlaces, bordes, hover de filas) salga claro
 * sin reglas propias. Los bloques la usan como clase ccv-section--dark; el
 * listado de noticias se la pone a la noticia destacada (inc/listings.php).
 */
.ccv-footer,
.ccv-section--dark {
	background-color: var(--ccv-color-band);
	background-image: var(--ccv-texture-map, none);
	background-position: right -4rem bottom -6rem;
	background-repeat: no-repeat;
	background-size: min(56rem, 120%) auto;
	color: var(--ccv-color-on-primary);

	--ccv-focus-color: var(--ccv-color-on-primary);
	--ccv-focus-color-inner: var(--ccv-color-band);
}

.ccv-section--dark {
	--ccv-color-text: var(--ccv-color-on-primary);
	--ccv-color-text-muted: color-mix(in srgb, var(--ccv-color-on-primary) 78%, var(--ccv-color-band));
	--ccv-color-border: color-mix(in srgb, var(--ccv-color-on-primary) 30%, transparent);
	--ccv-color-primary: var(--ccv-color-on-primary);
	--ccv-color-link: var(--ccv-color-on-primary);
	--ccv-color-primary-tint: color-mix(in srgb, var(--ccv-color-on-primary) 10%, transparent);
	--ccv-color-highlight: var(--ccv-color-on-primary);
}

.ccv-section--dark :is(h2, h3, a) {
	color: var(--ccv-color-on-primary);
}

/* Pie (inc/templates.php: ccv_render_footer) */

.ccv-footer a {
	color: var(--ccv-color-on-primary);
}

.ccv-footer__bottom {
	width: calc(100% - 2 * var(--ccv-gutter));
	max-width: var(--ccv-size-container);
	margin: 0 auto;
	padding: var(--ccv-space-m) 0;
	border-top: 1px solid color-mix(in srgb, var(--ccv-color-on-primary) 20%, transparent);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--ccv-space-2xs) var(--ccv-space-m);
}

.ccv-footer__copy {
	margin: 0;
	font-size: var(--ccv-text-s);
}

.ccv-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ccv-space-m);
	font-size: var(--ccv-text-s);
}

/* Menú de sección (ccv/section-nav) */
.ccv-section-nav {
	border-bottom: 1px solid var(--ccv-color-border);
	background-color: var(--ccv-color-background);
}

.ccv-section-nav__list {
	display: flex;
	gap: var(--ccv-space-l);
	max-width: calc(var(--ccv-size-container) + 2 * var(--ccv-gutter));
	margin: 0 auto;
	padding: 0 var(--ccv-gutter);
	overflow-x: auto;
	list-style: none;
}

.ccv-section-nav__item {
	flex: none;
	margin: 0;
}

.ccv-section-nav__link {
	display: flex;
	align-items: center;
	min-height: var(--ccv-space-target-button);
	padding: 0;
	border-bottom: 3px solid transparent;
	color: var(--ccv-color-text);
	font-size: var(--ccv-text-s);
	font-weight: 600;
	text-decoration: none;
}

.ccv-section-nav__link:hover {
	border-bottom-color: var(--ccv-color-border);
	color: var(--ccv-color-text);
}

.ccv-section-nav__link[aria-current="page"] {
	border-bottom-color: var(--ccv-color-highlight);
	color: var(--ccv-color-highlight);
}

.ccv-section-nav__link:focus-visible {
	outline-offset: calc(var(--ccv-focus-width) * -1);
}

/* En móvil: fila desplazable con imán y degradado que indica que hay más */
@media (max-width: 768px) {

	.ccv-section-nav {
		position: relative;
	}

	.ccv-section-nav::after {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: var(--ccv-space-m);
		background: linear-gradient(to right, transparent, var(--ccv-section-nav-bg, var(--ccv-color-background)));
		content: "";
		pointer-events: none;
	}

	.ccv-section-nav__list {
		padding-inline-end: var(--ccv-space-l);
		scroll-padding-inline: var(--ccv-gutter);
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.ccv-section-nav__list::-webkit-scrollbar {
		display: none;
	}

	.ccv-section-nav__item {
		scroll-snap-align: start;
	}
}

/* Menú de sección dentro de la barra del congreso (fondo verde) */
.ccv-congress-bar {
	--ccv-focus-color: var(--ccv-color-on-primary);
	--ccv-focus-color-inner: var(--ccv-color-band);
}

.ccv-congress-bar .ccv-section-nav {
	--ccv-section-nav-bg: var(--ccv-color-primary);
	flex: 1;
	min-width: 0;
	border: 0;
	background-color: transparent;
}

.ccv-congress-bar .ccv-section-nav__list {
	max-width: none;
	margin: 0;
	padding: 0;
}

.ccv-congress-bar .ccv-section-nav__link {
	min-height: 3.5rem;
	color: var(--ccv-color-on-primary);
}

.ccv-congress-bar .ccv-section-nav__link:hover {
	border-bottom-color: var(--ccv-color-on-primary);
	color: var(--ccv-color-on-primary);
}

.ccv-congress-bar .ccv-section-nav__link[aria-current="page"] {
	border-bottom-color: var(--ccv-color-on-primary);
	color: var(--ccv-color-on-primary);
	font-weight: 700;
}

/* Inscripción de la barra: se oculta mientras otro «Inscribirse» está a la vista
   (assets/js/navigation.js) */
.ccv-congress-bar__cta.is-redundant {
	visibility: hidden;
	opacity: 0;
}

/* Hueco para el botón fijo de inscripción en móvil */
@media (max-width: 767px) {

	.ccv-congress .ccv-footer {
		padding-bottom: 5rem;
	}
}

/* Listado de noticias (página de entradas y categorías) */
.ccv-news-listing .site-main {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
	gap: var(--ccv-space-l) var(--ccv-space-m);
	max-width: calc(var(--ccv-size-container) + 2 * var(--ccv-gutter));
	margin: 0 auto;
	padding: 0 var(--ccv-gutter) var(--ccv-space-2xl);
}

.ccv-news-listing .site-main > .ccv-hero {
	grid-column: 1 / -1;
	margin-inline: calc(50% - 50vw);
	margin-bottom: var(--ccv-space-l);
}

.ccv-news-listing .site-main > .paging-navigation {
	grid-column: 1 / -1;
}

.ccv-news-listing article.post {
	position: relative;
	margin: 0;
	border-top: 2px solid var(--ccv-color-primary);
}

.ccv-news-listing article.post .inside-article {
	display: flex;
	flex-direction: column-reverse;
	justify-content: flex-end;
	gap: var(--ccv-space-2xs);
	padding: var(--ccv-space-s) 0 0;
	background-color: transparent;
}

.ccv-news-listing .entry-header {
	display: flex;
	flex-direction: column-reverse;
	gap: var(--ccv-space-2xs);
}

.ccv-news-listing .entry-title {
	margin: 0;
	font-size: var(--ccv-text-m);
	line-height: 1.15;
}

.ccv-news-listing .entry-title a {
	color: var(--ccv-color-primary);
	text-decoration: none;
}

.ccv-news-listing .entry-title a::after {
	position: absolute;
	inset: 0;
	content: "";
}

.ccv-news-listing .entry-title a:hover {
	text-decoration: underline;
}

.ccv-news-listing article.post:focus-within {
	outline: var(--ccv-focus-width) solid var(--ccv-focus-color);
	outline-offset: var(--ccv-focus-offset);
}

.ccv-news-listing .entry-title a:focus-visible {
	outline: none;
	box-shadow: none;
}

/* Imagen destacada en el listado, en la portada y en la noticia */
.ccv-news-listing .post-image,
.ccv-news .wp-block-latest-posts__featured-image,
.single-post .featured-image {
	overflow: hidden;
	margin: 0 0 var(--ccv-space-xs);
	border-radius: var(--ccv-radius-m);
	background-color: var(--ccv-color-primary-tint);
	box-shadow: var(--ccv-shadow-s);
	transition: box-shadow 0.15s ease;
}

.single-post .featured-image {
	margin-bottom: var(--ccv-space-m);
}

.ccv-news-listing .post-image img,
.ccv-news .wp-block-latest-posts__featured-image img,
.single-post .featured-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* En la rejilla invertida (fecha sobre título), la imagen queda arriba */
.ccv-news .wp-block-latest-posts__featured-image {
	order: 1;
}

/* Al pasar por una tarjeta, su imagen gana relieve */
.ccv-news-listing article.post:hover .post-image,
.ccv-news .wp-block-latest-posts li:hover .wp-block-latest-posts__featured-image {
	box-shadow: var(--ccv-shadow-m);
}

/* Sin resumen en el listado: las noticias solo enlazan a sus fuentes */
.ccv-news-listing .entry-summary,
.ccv-news-listing footer.entry-meta {
	display: none;
}

/* Últimas noticias (core/latest-posts dentro de .ccv-news): la primera destacada */
.ccv-news .wp-block-latest-posts {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: var(--ccv-space-l) var(--ccv-space-xl);
	margin: 0;
	padding: 0;
}

.ccv-news .wp-block-latest-posts li {
	position: relative;
	display: flex;
	flex-direction: column-reverse;
	justify-content: flex-end;
	gap: var(--ccv-space-2xs);
	margin: 0;
	padding-top: var(--ccv-space-s);
	border-top: 2px solid var(--ccv-color-primary);
}

.ccv-news .wp-block-latest-posts__post-title {
	color: var(--ccv-color-primary);
	font-family: var(--ccv-font-heading);
	font-size: var(--ccv-text-m);
	font-weight: 700;
	line-height: 1.15;
	text-decoration: none;
}

.ccv-news .wp-block-latest-posts__post-title::after {
	position: absolute;
	inset: 0;
	content: "";
}

.ccv-news .wp-block-latest-posts__post-title:hover {
	color: var(--ccv-color-text);
	text-decoration: underline;
}

.ccv-news .wp-block-latest-posts li:focus-within {
	outline: var(--ccv-focus-width) solid var(--ccv-focus-color);
	outline-offset: var(--ccv-focus-offset);
}

.ccv-news .wp-block-latest-posts__post-title:focus-visible {
	outline: none;
	box-shadow: none;
}

.ccv-news .wp-block-latest-posts__post-date {
	color: var(--ccv-color-text-muted);
	font-size: var(--ccv-text-s);
}

.ccv-news .wp-block-latest-posts li:first-child {
	grid-row: span 2;
}

.ccv-news .wp-block-latest-posts li:first-child .wp-block-latest-posts__post-title {
	font-size: var(--ccv-text-xl);
	line-height: 1.05;
}

@media (max-width: 767px) {

	.ccv-news .wp-block-latest-posts {
		grid-template-columns: minmax(0, 1fr);
	}

	.ccv-news .wp-block-latest-posts li:first-child {
		grid-row: auto;
	}
}

/* Menú principal: «Noticias» activo también dentro de una noticia */
.main-navigation .main-nav ul li[class~="current_page_parent"] > a {
	color: var(--ccv-color-primary);
}

/* Menú principal: «Congreso 2026» como botón (clase de menú ccv-menu-cta) */
.main-navigation .main-nav ul li.ccv-menu-cta > a {
	margin-inline-start: var(--ccv-space-xs);
	padding-inline: var(--ccv-space-s);
	border-radius: var(--ccv-radius-s);
	background-color: var(--ccv-color-primary);
	color: var(--ccv-color-on-primary);
	line-height: var(--ccv-space-target-button);
}

.main-navigation .main-nav ul li.ccv-menu-cta > a:hover,
.main-navigation .main-nav ul li.ccv-menu-cta.current-menu-item > a,
.main-navigation .main-nav ul li.ccv-menu-cta.current-menu-ancestor > a {
	background-color: var(--ccv-color-band);
	color: var(--ccv-color-on-primary);
}

/* Submenús (páginas hijas): solo en el menú móvil; en escritorio está el menú de sección */
@media (min-width: 769px) {

	.main-navigation .main-nav ul ul,
	.main-navigation .dropdown-menu-toggle {
		display: none;
	}

	/* Sin flecha, el enlace recupera el margen derecho del resto (20 px de GeneratePress) */
	.main-navigation .main-nav ul li.menu-item-has-children:not(.ccv-menu-cta) > a {
		padding-right: 20px;
	}
}

/* Panel del menú móvil: sombra, separadores y el botón del congreso aparte */
@media (max-width: 768px) {

	.main-navigation.toggled .main-nav > ul {
		box-shadow: var(--ccv-shadow-m);
	}

	.main-navigation.toggled .main-nav li {
		border-top: 1px solid var(--ccv-color-surface-strong);
	}

	.main-navigation.toggled .main-nav ul ul {
		background-color: var(--ccv-color-surface);
	}

	.main-navigation.toggled .main-nav li.ccv-menu-cta {
		margin-top: var(--ccv-space-s);
		border-top: 0;
	}
}

/* Enlaces a otras webs: icono de salida (se abren en otra ventana: inc/accessibility.php) */
.site-main a[href^="http"]:not([href*="catedracantabriavivienda.es"]):not(:has(img))::after {
	display: inline-block;
	width: 0.8em;
	height: 0.8em;
	margin-left: 0.3em;
	background-color: currentcolor;
	content: "";
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6'/%3E%3Cpath d='M11 13l9 -9'/%3E%3Cpath d='M15 4h5v5'/%3E%3C/svg%3E") center / contain no-repeat;
	vertical-align: -0.05em;
}

/* Cabecera de página de reserva (si falta el patrón sincronizado) */
.ccv-page-header__inner {
	max-width: calc(var(--ccv-size-container) + 2 * var(--ccv-gutter));
	margin: 0 auto;
	padding: var(--ccv-space-xl) var(--ccv-gutter) var(--ccv-space-m);
}

.ccv-page-header__title {
	margin: 0;
}

/* Tras la cabecera de página, la primera sección arranca a media distancia */
.site-main > .ccv-hero--compact + article .entry-content > .ccv-section:first-child,
.site-main > .ccv-page-header + article .entry-content > .ccv-section:first-child {
	padding-top: calc(var(--ccv-space-section) / 2);
}

/* Noticia individual: titular a medida de lectura y vuelta al listado */
.single-post .entry-title {
	max-width: 22ch;
}

.single-post .entry-header .entry-meta {
	margin-top: var(--ccv-space-s);
}

.ccv-back {
	margin: var(--ccv-space-xl) 0 0;
	padding-top: var(--ccv-space-m);
	border-top: 1px solid var(--ccv-color-border);
}

/* El tamaño lo dan los atributos width/height de ccv_icon( …, array( 'size' => n ) ) */
.ccv-icon {
	display: inline-block;
	flex-shrink: 0;
	vertical-align: middle;
}

/* La noticia más reciente, destacada: banda oscura a sangre, foto y título a dos columnas */
.ccv-news-listing article.post.ccv-news-listing__featured {
	grid-column: 1 / -1;
	margin-inline: calc(50% - 50vw);
	margin-bottom: var(--ccv-space-l);
	padding: var(--ccv-space-xl) max(var(--ccv-gutter), calc(50vw - var(--ccv-size-container) / 2));
	border-top: 0;
}

.ccv-news-listing article.post.ccv-news-listing__featured .inside-article {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--ccv-space-l);
	align-items: center;
	padding: 0;
}

.ccv-news-listing article.post.ccv-news-listing__featured .entry-header {
	order: 2;
}

.ccv-news-listing article.post.ccv-news-listing__featured .entry-title {
	font-size: var(--ccv-text-xl);
	line-height: 1.05;
}

/* GeneratePress pinta la fecha con --contrast-2; sobre la superficie oscura va con el token invertido */
.ccv-news-listing article.post.ccv-news-listing__featured .entry-meta {
	color: var(--ccv-color-text-muted);
}

.ccv-news-listing article.post.ccv-news-listing__featured .post-image {
	margin: 0;
	box-shadow: var(--ccv-shadow-m);
}

.ccv-news-listing article.post.ccv-news-listing__featured .post-image img {
	aspect-ratio: 4 / 3;
}

@media (min-width: 769px) {

	.ccv-news-listing article.post.ccv-news-listing__featured {
		padding-block: var(--ccv-space-section);
	}
}

@media (max-width: 768px) {

	.ccv-news-listing article.post.ccv-news-listing__featured .inside-article {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* 4. Movimiento ------------------------------------------------------------- */

@keyframes ccv-rise {

	from {
		opacity: 0;
		transform: translateY(0.3em);
	}
}

@media (prefers-reduced-motion: no-preference) {

	@view-transition {
		navigation: auto;
	}

	.ccv-congress-bar {
		view-transition-name: ccv-congress-bar;
	}

	.ccv-congress-bar__cta {
		transition: opacity 0.2s ease, visibility 0.2s;
	}

	.ccv-hero:not(.ccv-hero--compact) .ccv-hero__title {
		animation: ccv-rise 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both;
	}
}
