/*
Theme Name: Código Civil · Boletín
Theme URI: https://codigo-civil.es/
Author: Juan Antonio García García
Author URI: https://codigo-civil.es/
Description: Tema de bloques editorial para Código Civil, boletín de actualidad de Derecho civil. Portada por secciones (Jurisprudencia, Derecho europeo, Actualidad legislativa, Protección de datos), lectura optimizada de resoluciones y comentarios, índice de entradas con fecha y variación de estilo nocturna.
Requires at least: 6.6
Requires PHP: 8.1
Version: 0.5.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: codigo-civil-boletin
*/

/* Ajustes finos que theme.json no cubre. */

.ccb-kicker {
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Filete superior de las secciones de portada */
.ccb-seccion {
	border-top: 3px solid var(--wp--preset--color--contrast);
}

.ccb-seccion .ccb-seccion__cabecera a {
	text-decoration: none;
}

/* Índice: fecha en columna, titular a la derecha */
.ccb-indice .wp-block-post {
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

.ccb-indice .wp-block-post:last-child {
	border-bottom: 0;
}

.ccb-indice .wp-block-post-date {
	font-variant-numeric: tabular-nums;
	min-width: 5.5em;
}

.ccb-indice .wp-block-post-title a,
.ccb-titulares .wp-block-post-title a,
.ccb-destacado .wp-block-post-title a {
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.25s ease;
}

.ccb-indice .wp-block-post-title a:hover,
.ccb-titulares .wp-block-post-title a:hover,
.ccb-destacado .wp-block-post-title a:hover {
	background-size: 100% 1px;
}

/* Etiquetas de categoría como «píldoras» discretas */
.ccb-categorias a {
	display: inline-block;
	padding: 0.15em 0.6em;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: 999px;
	text-decoration: none;
	margin: 0 0.25em 0.35em 0;
}

.ccb-categorias a:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

.ccb-categorias .wp-block-post-terms__separator {
	display: none;
}

/* Lectura: notas, citas de resoluciones y tablas */
.wp-block-post-content > p:first-of-type::first-letter {
	font-family: var(--wp--preset--font-family--serif);
}

.wp-block-post-content blockquote,
.wp-block-post-content .wp-block-quote {
	font-size: var(--wp--preset--font-size--medium);
}

.wp-block-post-content table {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
}

.wp-block-post-content :where(h2, h3) {
	scroll-margin-top: 6rem;
}

/* Cabecera fija discreta en escritorio */
@media (min-width: 782px) {
	.ccb-cabecera {
		position: sticky;
		top: 0;
		z-index: 20;
		backdrop-filter: saturate(1.4) blur(6px);
	}

	body.admin-bar .ccb-cabecera {
		top: 32px;
	}
}

/* Barra de secciones con desplazamiento horizontal en móvil */
.ccb-secciones {
	overflow-x: auto;
	scrollbar-width: none;
	white-space: nowrap;
}

.ccb-secciones::-webkit-scrollbar {
	display: none;
}

.ccb-secciones a {
	text-decoration: none;
	padding: 0.65rem 0;
	border-bottom: 2px solid transparent;
	display: inline-block;
}

.ccb-secciones a:hover,
.ccb-secciones a[aria-current="page"] {
	border-bottom-color: var(--wp--preset--color--accent);
}

@media (prefers-reduced-motion: reduce) {
	* {
		transition: none !important;
	}
}

/* Navegación y títulos de sección en tinta; el rojo queda para el subrayado activo */
.ccb-secciones a,
.ccb-seccion__cabecera h2 a,
.wp-block-post-navigation-link a {
	color: var(--wp--preset--color--contrast);
}

.wp-block-post-navigation-link a {
	text-decoration: none;
}

.wp-block-post-navigation-link a:hover,
.ccb-seccion__cabecera h2 a:hover {
	color: var(--wp--preset--color--accent);
}

@media (max-width: 781px) {
	/* Columna «Lo último» apilada: sin filete lateral */
	.ccb-lateral {
		border-left: 0 !important;
		padding-left: 0 !important;
		border-top: 3px solid var(--wp--preset--color--contrast);
		padding-top: var(--wp--preset--spacing--20);
	}
}

@media (max-width: 600px) {
	/* Cabecera compacta en móvil: la búsqueda queda en el pie y en /?s= */
	.ccb-cabecera .wp-block-search,
	.ccb-cabecera .ccb-kicker {
		display: none;
	}
}

/* Las categorías del sitio están en minúscula: mayúscula inicial en el título de la sección */
.wp-block-query-title::first-letter {
	text-transform: uppercase;
}

/* Más leídas: número de orden en lacre */
.ccb-ranking .ccb-ranking__n {
	min-width: 1.1em;
	margin: 0;
	font-variant-numeric: lining-nums;
}

.ccb-ranking .wp-block-post-title a {
	color: var(--wp--preset--color--contrast);
}

/* ===== Color ===== */

/* Banda «En portada» en terracota */
.ccb-hero {
	--ccb-sobre: var(--wp--preset--color--hero-text);
}

.ccb-hero .wp-block-post-title a,
.ccb-hero .ccb-ranking .wp-block-post-title a {
	color: var(--ccb-sobre);
}

.ccb-hero .ccb-kicker,
.ccb-hero .ccb-ranking__n {
	color: var(--ccb-sobre) !important;
	opacity: 0.85;
}

.ccb-hero .wp-block-post-excerpt,
.ccb-hero .wp-block-post-date,
.ccb-hero .has-muted-color {
	color: color-mix(in srgb, var(--ccb-sobre) 80%, transparent) !important;
}

.ccb-hero .wp-block-post-excerpt__more-link {
	color: var(--ccb-sobre);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.ccb-hero .ccb-categorias a {
	color: var(--ccb-sobre);
	border-color: color-mix(in srgb, var(--ccb-sobre) 45%, transparent);
}

.ccb-hero .ccb-categorias a:hover {
	background: var(--ccb-sobre);
	color: var(--wp--preset--color--hero);
}

.ccb-hero .ccb-lateral {
	border-left-color: color-mix(in srgb, var(--ccb-sobre) 30%, transparent) !important;
}

.ccb-hero .ccb-indice .wp-block-post {
	border-bottom-color: color-mix(in srgb, var(--ccb-sobre) 22%, transparent);
}

@media (max-width: 781px) {
	.ccb-hero .ccb-lateral {
		border-top-color: color-mix(in srgb, var(--ccb-sobre) 45%, transparent);
	}
}

/* Color propio de cada sección: filete y título */
.ccb-color-accent { --ccb-sec: var(--wp--preset--color--accent); }
.ccb-color-olivo { --ccb-sec: var(--wp--preset--color--olivo); }
.ccb-color-pizarra-azul { --ccb-sec: var(--wp--preset--color--pizarra-azul); }
.ccb-color-ocre { --ccb-sec: var(--wp--preset--color--ocre); }

.ccb-seccion[class*="ccb-color-"] {
	border-top-color: var(--ccb-sec);
}

.ccb-seccion[class*="ccb-color-"] .ccb-seccion__cabecera h2 a,
.ccb-seccion[class*="ccb-color-"] .ccb-kicker,
.ccb-seccion[class*="ccb-color-"] .ccb-seccion__cabecera p a {
	color: var(--ccb-sec) !important;
}

.ccb-hero .ccb-lateral p a {
	color: var(--ccb-sobre);
}
