/*
Theme Name: Diario de Badajoz — Kadence Child
Theme URI: https://diariobadajoz.com/
Description: Tema hijo de Kadence para diariobadajoz.com. Sistema editorial "Rail": densidad de broadsheet sobre el pliegue, aire de revista por debajo. Rejilla de filetes, didona para titulares, grotesca para cubiertas, monoespaciada para datos. Portada en bloques nativos, publicidad sin salto de maquetacion y capa GEO. Requiere el tema Kadence.
Author: Antonio Diaz — antoniodiaz.pro
Author URI: https://antoniodiaz.pro/
Template: kadence
Version: 2.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: diariobadajoz
Tags: news, blog, editorial, one-column, two-columns, right-sidebar, custom-colors, custom-menu, block-patterns
*/

/* =========================================================
   SISTEMA "RAÍL"

   Densidad arriba, aire abajo. La primera pantalla es una
   rejilla de periódico con filetes verticales; a partir de
   ahí las secciones respiran como una revista.

   La firma del diseño es el RAÍL CRONOLÓGICO: un filete
   vertical continuo del que cuelgan las horas en
   monoespaciada. Un diario es un día que se acumula; el
   raíl lo hace visible.
   ========================================================= */

:root {
	/* --- Papel y tinta --- */
	--db-paper:        #ffffff;
	--db-wash:         #f5f3ef;
	--db-ink:          #12100e;
	--db-body:         #26231f;
	--db-muted:        #736d64;
	--db-rule:         #d8d4cd;
	--db-rule-strong:  #12100e;

	/* --- Tres señales, tres funciones. Nunca se mezclan. --- */
	--db-signal:       #cf2e17;
	--db-signal-dark:  #a02411;
	--db-data:         #1740c4;
	--db-mark:         #f0c33c;

	/* --- Tipografía --- */
	--db-display: "Bodoni Moda", "Bodoni MT", Didot, Georgia, serif;
	--db-grotesk: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--db-serif:   "Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;
	--db-mono:    ui-monospace, SFMono-Regular, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;

	/* --- Escala: salto brutal entre titular y texto --- */
	--db-size-micro: 0.6875rem;
	--db-size-meta:  0.75rem;
	--db-size-small: clamp(0.85rem, 0.83rem + 0.1vw, 0.9rem);
	--db-size-body:  clamp(1.0625rem, 1.03rem + 0.18vw, 1.15rem);
	--db-size-deck:  clamp(1.05rem, 0.98rem + 0.34vw, 1.25rem);
	--db-size-card:  clamp(1.15rem, 1.02rem + 0.6vw, 1.45rem);
	--db-size-sect:  clamp(1.35rem, 1.15rem + 1vw, 1.9rem);
	--db-size-lead:  clamp(2.3rem, 1.5rem + 3.6vw, 4.6rem);

	/* --- Ritmo --- */
	--db-1: 0.375rem;
	--db-2: 0.75rem;
	--db-3: 1.25rem;
	--db-4: 2.25rem;
	--db-5: 3.75rem;
	--db-6: 6rem;

	/* --- Medidas --- */
	--db-measure: 38rem;
	--db-gutter:  1.75rem;

	--db-hair: 1px solid var(--db-rule);
	--db-transition: 160ms cubic-bezier(0.2, 0, 0.2, 1);
}

@media (min-width: 1200px) {
	:root { --db-gutter: 2.25rem; }
}

/* Modo noche: papel de tinta, no gris azulado */
html.db-dark {
	--db-paper:       #100f0d;
	--db-wash:        #1a1815;
	--db-ink:         #f4f1ea;
	--db-body:        #ddd8cf;
	--db-muted:       #928b80;
	--db-rule:        #332f2a;
	--db-rule-strong: #f4f1ea;
	--db-signal:      #ff6a4d;
	--db-data:        #8aa8ff;
	--db-mark:        #d8ab2e;
	color-scheme: dark;
}

/* =========================================================
   BASE
   ========================================================= */

html body {
	font-family: var(--db-serif);
	font-size: var(--db-size-body);
	line-height: 1.6;
	color: var(--db-body);
	background-color: var(--db-paper);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--db-ink);
	letter-spacing: -0.011em;
	line-height: 1.1;
	text-wrap: balance;
	margin-block: 0;
}

a { color: var(--db-ink); text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
a:hover { color: var(--db-signal); }

:where(a, button, input, select, textarea, summary, details):focus-visible {
	outline: 3px solid var(--db-data);
	outline-offset: 2px;
}

::selection { background: var(--db-mark); color: var(--db-ink); }

img { max-width: 100%; height: auto; }

/* =========================================================
   CORRECCIÓN DE ANCHOS · compatibilidad con Kadence

   La medida de lectura solo debe aplicarse al cuerpo de un
   artículo. Aplicarla a `.entry-content` en general aplasta
   la portada: ese era el fallo de la versión anterior.
   ========================================================= */

.home .entry-content,
.page .entry-content,
.archive .entry-content,
.home .entry-content-wrap,
.page .entry-content-wrap {
	max-width: none;
}

.home .content-container,
.home .content-area,
.home .entry-content-wrap {
	padding-inline: 0;
	background: transparent;
	box-shadow: none;
}

.home .site-container,
.home .content-container { max-width: 100%; }

.home .content-area { margin-block: 0; }

/* =========================================================
   CUERPO DEL ARTÍCULO
   ========================================================= */

.single-post .entry-content > * { max-width: var(--db-measure); }
.single-post .entry-content > .alignwide,
.single-post .entry-content > .alignfull,
.single-post .entry-content > figure,
.single-post .entry-content > .wp-block-image,
.single-post .entry-content > .wp-block-table,
.single-post .entry-content > .db-ad { max-width: none; }

.single-post .entry-title,
.single-post .wp-block-post-title {
	font-family: var(--db-display);
	font-weight: 700;
	font-size: clamp(2rem, 1.4rem + 2.6vw, 3.4rem);
	line-height: 1.04;
	letter-spacing: -0.02em;
	max-width: 20ch;
}

.entry-content > * { margin-block: 0 var(--db-3); }

/* Entradilla del template editorial */
.entry-content > p:first-of-type strong:only-child,
.entry-content > p.db-lead {
	display: block;
	font-family: var(--db-grotesk);
	font-size: var(--db-size-deck);
	font-weight: 500;
	line-height: 1.4;
	color: var(--db-ink);
}

.entry-content h2 {
	font-family: var(--db-grotesk);
	font-weight: 700;
	font-size: var(--db-size-sect);
	letter-spacing: -0.015em;
	margin-top: var(--db-5);
	padding-top: var(--db-2);
	border-top: 2px solid var(--db-rule-strong);
}

.entry-content h3 {
	font-family: var(--db-grotesk);
	font-weight: 600;
	font-size: var(--db-size-card);
	margin-top: var(--db-4);
}

.entry-content p a {
	color: var(--db-data);
	text-decoration: underline;
}
.entry-content p a:hover { color: var(--db-signal); }

.entry-content blockquote {
	border: 0;
	border-left: 3px solid var(--db-signal);
	margin-inline: 0;
	padding-left: var(--db-3);
	font-family: var(--db-display);
	font-size: var(--db-size-deck);
	font-style: normal;
	color: var(--db-ink);
}

.entry-content figcaption,
.wp-element-caption {
	font-family: var(--db-mono);
	font-size: var(--db-size-micro);
	line-height: 1.45;
	color: var(--db-muted);
	border-top: var(--db-hair);
	padding-top: 0.45rem;
	margin-top: 0.5rem;
}

/* Ficha de datos: horarios, precios, fechas. Es lo que citan las IAs. */
.entry-content table {
	border-collapse: collapse;
	width: 100%;
	font-family: var(--db-grotesk);
	font-size: var(--db-size-small);
}
.entry-content th {
	background: var(--db-wash);
	font-family: var(--db-mono);
	font-size: var(--db-size-micro);
	text-transform: uppercase;
	letter-spacing: 0.09em;
	text-align: left;
	font-weight: 600;
}
.entry-content th,
.entry-content td { border: var(--db-hair); padding: 0.55rem 0.7rem; }

/* =========================================================
   VOCABULARIO DE METADATOS
   ========================================================= */

.db-kicker,
.db-label {
	display: inline-block;
	width: fit-content;
	font-family: var(--db-mono);
	font-size: var(--db-size-micro);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1;
	color: var(--db-signal);
	text-decoration: none;
}
.db-label--data { color: var(--db-data); }
.db-label--mark { color: var(--db-ink); background: var(--db-mark); padding: 0.3rem 0.45rem; }

.db-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.35rem 0.85rem;
	font-family: var(--db-mono);
	font-size: var(--db-size-meta);
	letter-spacing: 0.04em;
	color: var(--db-muted);
	margin-block: var(--db-2);
}
.db-meta a { color: var(--db-muted); }
.db-meta a:hover { color: var(--db-signal); }

/* =========================================================
   ACCESIBILIDAD Y MEDIOS
   ========================================================= */

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
}

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

@media print {
	.db-ad, .db-stickybar, .db-progress, .db-newsletter, .db-ticker-core { display: none !important; }
	.single-post .entry-content > * { max-width: none; }
}
