/**
 * Estilos de CeltaStats Core (Partidos, Jugadores, Equipo, Noticias, home).
 *
 * Lenguaje visual: referencia de ESTILO (no de marca) en sitios de clubes de
 * fútbol grandes — tipografía condensada/gruesa en mayúsculas para titulares,
 * navegación oscura de alto contraste, tarjetas con jerarquía clara, mucho
 * espacio en blanco entre secciones.
 *
 * Paleta: azul celeste + blanco de la camiseta del Celta de Vigo. --dsc-navy
 * es el MISMO celeste, solo más oscuro (no un tono distinto de "azul marino"
 * como en Deporstats) — se usa en fondos oscuros (nav, tablas, footer) y
 * como color de texto, siempre dentro de la misma familia de azul del club.
 * El rojo ya existente como --dsc-danger cubre el tercer color de club — de
 * momento solo en su uso semántico (alertas), pendiente decidir si se
 * quiere también como acento decorativo puntual.
 *
 * Tipografía: Oswald (titulares, ver DSC_Assets) + Inter (cuerpo).
 *
 * Los tokens viven en :root (no en .dsc-wrap) a propósito: así también
 * pueden usarlos elementos fuera de nuestro propio contenido, como la
 * cabecera del tema (Astra), para que el sitio se vea como un único
 * lenguaje visual y no como "plugin + tema" sin relación entre sí.
 */

:root {
	--dsc-primary: #0099d8;
	--dsc-primary-dark: #006b9e;
	/* Mismo azul celeste que --dsc-primary, pero más oscuro — no el navy sin
	   relación de Deporstats. Se usa en fondos oscuros (tablas, footer,
	   tarjetas KPI) y como color de texto sobre blanco; tiene que ser lo
	   bastante oscuro para mantener buen contraste en los dos casos (el
	   celeste "puro" de --dsc-primary no llega a 4.5:1 en ninguno de los
	   dos usos). */
	--dsc-navy: #006b9e;
	--dsc-silver: #9aa4ae;
	--dsc-silver-bg: #eef0f3;
	--dsc-border: #e2e2e2;
	--dsc-bg-alt: #f7f8fa;
	--dsc-text-muted: #666;
	--dsc-success: #1e8e3e;
	--dsc-warning: #b26a00;
	--dsc-danger: #b3261e;

	--dsc-font-heading: 'Oswald', 'Arial Narrow', sans-serif;
	--dsc-font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Tipografía global: aplicamos Inter al cuerpo del sitio entero (no solo a
   nuestro contenido) para que no se note la costura entre tema y plugin. */
body {
	font-family: var(--dsc-font-body);
}

h1,
h2,
h3,
h4,
.dsc-title {
	font-family: var(--dsc-font-heading);
}

/* Cabecera del sitio (Astra) en azul marino de alto contraste. Selectores
   tomados del HTML real que genera Astra, no adivinados. .ast-mobile-header-content
   es el panel desplegable del menú en móvil — es un hermano de
   .ast-primary-header-bar, no un hijo, así que sin esto se queda con el
   fondo blanco por defecto y el texto del menú (forzado a blanco más abajo)
   queda invisible: bug real, encontrado el 15/08/2026. */
/* CeltaStats usa el azul celeste (no el navy) como fondo de nav — junto a
   la cabecera Oswald y la insignia "CS", es lo que distingue el look de
   Deporstats a simple vista sin salirse del mismo lenguaje de componentes. */
.site-header,
.ast-primary-header-bar,
.ast-mobile-header-content {
	background-color: var(--dsc-primary) !important;
	border-color: var(--dsc-primary) !important;
	border-top: 4px solid var(--dsc-danger);
}

/* Astra le da a cada enlace del menú (y a su <ul>) un fondo blanco propio
   como parte de su estilo "submenu-with-border", que en móvil se aplica a
   todo el menú apilado, no solo a submenús reales. Ese blanco pinta por
   encima del navy de arriba — sin esto, texto blanco sobre fondo blanco.
   Encontrado y confirmado el 15/08/2026 inspeccionando el estilo computado
   real en producción. */
.ast-mobile-header-content .main-header-menu,
.ast-mobile-header-content .main-header-menu a.menu-link {
	background-color: transparent !important;
}

.site-branding .site-title a {
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #fff !important;
}

/* El logo "CS" se subió como imagen cuadrada de 512×512 (natural, sin recorte)
   — sin esto se pinta a su tamaño real y ocupa toda la cabecera. Se limita a
   la altura habitual de un logo de nav. */
.custom-logo-link img.custom-logo {
	height: 40px;
	width: 40px;
	object-fit: contain;
}

.main-header-menu a.menu-link {
	font-family: var(--dsc-font-heading);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: rgba(255, 255, 255, 0.85) !important;
}

.main-header-menu a.menu-link:hover,
.main-header-menu li.current-menu-item > a.menu-link {
	color: #fff !important;
}

/* Astra pinta el panel de un submenú (.sub-menu) en blanco por defecto
   (#fff en escritorio, #f9f9f9 en el desplegable móvil) mientras el texto
   de .menu-link de aquí arriba lo fuerza a casi blanco — blanco sobre
   blanco, ilegible. No se había visto hasta ahora porque ningún ítem del
   menú había tenido hijos (submenú real) hasta añadir "Historia" con las
   3 eras debajo. Confirmado con el CSS real de Astra en producción
   (.sub-menu{background:#fff}), no adivinado. Se le da el mismo navy que
   el resto de la navegación en vez de solo tocar el color del texto, para
   que el desplegable quede integrado visualmente. */
.main-header-menu .sub-menu {
	background-color: var(--dsc-primary-dark) !important;
	border-color: var(--dsc-primary-dark) !important;
}

.main-header-menu .sub-menu a.menu-link {
	color: rgba(255, 255, 255, 0.85) !important;
}

.main-header-menu .sub-menu a.menu-link:hover,
.main-header-menu .sub-menu li.current-menu-item > a.menu-link {
	color: #fff !important;
}

/* En las páginas propias (Inicio, Equipo) quitamos el título genérico que
   pinta el tema encima de nuestro contenido — la primera sección (noticia
   destacada) ya hace de cabecera visual de la página. */
body.page-id-34 .entry-header,
body.page-id-35 .entry-header {
	display: none;
}

/* ---------------------------------------------------------------------- */

.dsc-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: 1100px;
	margin-top: 3.5rem;
	margin-right: auto;
	margin-bottom: 3.5rem;
	margin-left: auto;
	padding-right: 20px;
	padding-left: 20px;
}

.dsc-wrap:first-child {
	margin-top: 2.5rem;
}

/* Astra subraya los enlaces del contenido en páginas normales (Inicio,
   Equipo) con una regla inline más específica que la nuestra
   (.ast-single-post .entry-content a). Nuestros propios componentes
   (tarjetas, listas, tablas) gestionan ellos mismos su color/hover, así
   que desactivamos ese subrayado una sola vez aquí en vez de pelear la
   especificidad componente a componente. */
.dsc-wrap a {
	text-decoration: none !important;
}

.dsc-title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1.75rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	font-size: clamp(1.6rem, 3.2vw, 2.2rem);
	color: var(--dsc-navy);
}

.dsc-title .dsc-icon {
	color: var(--dsc-primary);
}

/* Cabecera de sección "puente" en la home, entre el bloque masculino y el
   femenino: sin ella, "Clasificación"/"Líderes de la temporada" se repetirían
   con el mismo título justo debajo de la versión masculina, sin indicar a
   qué equipo pertenecen. */
.dsc-section-heading {
	padding-top: 1.5rem;
	border-top: 1px solid var(--dsc-border);
}

.dsc-section-heading .dsc-title {
	margin-bottom: 0;
}

.dsc-section-heading-sub {
	display: block;
	margin-top: 0.35rem;
	font-family: var(--dsc-font-body);
	font-weight: 500;
	font-size: 0.95rem;
	text-transform: none;
	letter-spacing: normal;
	color: var(--dsc-text-muted);
}

.dsc-icon {
	flex-shrink: 0;
	vertical-align: -3px;
}

.dsc-back-link {
	margin-bottom: 1rem;
}

.dsc-back-link a {
	text-decoration: none;
}

.dsc-breadcrumbs {
	margin-bottom: 1rem;
	font-size: 0.85rem;
	color: var(--dsc-text-muted);
}

.dsc-breadcrumbs a {
	color: var(--dsc-text-muted);
	text-decoration: none;
}

.dsc-breadcrumbs a:hover {
	color: var(--dsc-primary);
	text-decoration: underline;
}

.dsc-breadcrumbs-sep {
	margin: 0 0.4em;
}

.dsc-breadcrumbs-actual {
	color: var(--dsc-navy);
	font-weight: 600;
}

/* Tablas (listado de jugadores y de partidos) */

.dsc-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--dsc-border);
	border-radius: 14px;
}

.dsc-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.dsc-table th,
.dsc-table td {
	padding: 0.65rem 0.9rem;
	text-align: left;
	border-bottom: 1px solid var(--dsc-border);
	white-space: nowrap;
}

.dsc-table thead th {
	background: var(--dsc-navy);
	color: #fff;
	font-family: var(--dsc-font-heading);
	font-weight: 700;
	text-transform: uppercase;
	font-size: 0.78rem;
	letter-spacing: 0.05em;
}

/* .dsc-table-wrap solo recorta con overflow-x (overflow-y se deja visible
   a propósito para no cortar tooltips/focus), así que su border-radius no
   recorta las esquinas de la tabla por sí solo — hay que redondear las
   celdas de las esquinas a mano para que coincida con el marco. */
.dsc-table thead th:first-child {
	border-top-left-radius: 13px;
}

.dsc-table thead th:last-child {
	border-top-right-radius: 13px;
}

.dsc-table tbody tr:last-child td:first-child {
	border-bottom-left-radius: 13px;
}

.dsc-table tbody tr:last-child td:last-child {
	border-bottom-right-radius: 13px;
}

.dsc-table tbody tr:last-child td {
	border-bottom: none;
}

.dsc-table tbody tr:hover {
	background: var(--dsc-bg-alt);
}

.dsc-table .dsc-col-num {
	text-align: center;
}

.dsc-table .dsc-col-condicion {
	text-align: center;
	color: var(--dsc-text-muted);
}

.dsc-table a {
	text-decoration: none;
	font-weight: 600;
	color: var(--dsc-primary);
}

.dsc-table .dsc-col-foto {
	width: 1%;
	padding-right: 0.5rem;
}

.dsc-jugador-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--dsc-silver-bg);
	color: var(--dsc-silver);
	border: 2px solid var(--dsc-border);
}

.dsc-jugador-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dsc-table a:hover {
	color: var(--dsc-primary-dark);
}

/* Estados de partido (badges) */

.dsc-badge {
	display: inline-block;
	padding: 0.2rem 0.6rem;
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 600;
	background: var(--dsc-bg-alt);
	color: var(--dsc-text-muted);
}

.dsc-badge-jugado {
	background: rgba(30, 142, 62, 0.12);
	color: var(--dsc-success);
}

.dsc-badge-programado {
	background: rgba(0, 83, 159, 0.1);
	color: var(--dsc-primary);
}

.dsc-badge-aplazado {
	background: rgba(178, 106, 0, 0.12);
	color: var(--dsc-warning);
}

/* Ficha de jugador */

.dsc-jugador-header {
	display: flex;
	align-items: center;
	gap: 1.75rem;
	margin-bottom: 2rem;
	padding: 2.25rem 2rem;
	flex-wrap: wrap;
	background: var(--dsc-navy);
	border-radius: 14px;
}

/* Avatar: foto real si hay, o un icono de camiseta como marcador de
   posición cuando el jugador todavía no tiene foto subida. Referencia de
   estilo: ficha de jugador de MadridStats (foto circular con anillo +
   dorsal como insignia superpuesta), adaptada a nuestra paleta propia. */
.dsc-jugador-foto {
	/* Sin overflow:hidden aquí a propósito: la insignia del dorsal es hija
	   de este contenedor y necesita poder sobresalir del círculo de la
	   foto. El recorte circular vive en .dsc-jugador-foto-circulo (hijo). */
	position: relative;
	flex-shrink: 0;
	width: 152px;
	height: 152px;
}

.dsc-jugador-foto-circulo {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	border: 3px solid var(--dsc-silver);
	color: rgba(255, 255, 255, 0.6);
}

.dsc-jugador-foto-circulo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Insignia del dorsal, superpuesta sobre el borde inferior derecho de la
   foto (mismo patrón visual que el número/bandera de MadridStats). El
   borde usa el navy de la cabecera para que parezca "recortada" sobre la
   foto en vez de flotar encima sin relación. */
.dsc-jugador-dorsal-badge {
	position: absolute;
	bottom: -2px;
	right: -2px;
	min-width: 40px;
	height: 40px;
	padding: 0 0.35rem;
	border-radius: 50%;
	background: var(--dsc-primary);
	border: 3px solid var(--dsc-navy);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	font-size: 1.05rem;
	color: #fff;
	line-height: 1;
}

.dsc-jugador-nombre {
	margin: 0.15rem 0 0.3rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	color: #fff;
}

.dsc-jugador-meta {
	color: rgba(255, 255, 255, 0.75);
	margin: 0;
	font-family: var(--dsc-font-body);
}

.dsc-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	gap: 1px;
	background: var(--dsc-border);
	border: 1px solid var(--dsc-border);
	border-radius: 14px;
	overflow: hidden;
	margin-bottom: 2rem;
}

.dsc-stat {
	background: #fff;
	padding: 1rem;
	text-align: center;
}

.dsc-stat-value {
	display: block;
	font-family: var(--dsc-font-heading);
	font-size: 1.8rem;
	font-weight: 800;
	color: var(--dsc-primary-dark);
	line-height: 1.2;
}

.dsc-stat-label {
	display: block;
	font-size: 0.78rem;
	color: var(--dsc-text-muted);
	margin-top: 0.2rem;
}

.dsc-jugador-trayectoria {
	margin-bottom: 2rem;
}

/* Ficha de partido */

.dsc-partido-meta {
	color: var(--dsc-text-muted);
	margin-bottom: 1.5rem;
}

.dsc-marcador {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	padding: 2rem 1rem;
	background: var(--dsc-navy);
	border-radius: 14px;
	margin-bottom: 1rem;
	text-align: center;
}

.dsc-marcador-equipo {
	font-family: var(--dsc-font-heading);
	font-size: 1.3rem;
	font-weight: 700;
	text-transform: uppercase;
	color: #fff;
	flex: 1;
}

.dsc-marcador-resultado {
	font-family: var(--dsc-font-heading);
	font-size: 2.2rem;
	font-weight: 800;
	color: #fff;
	min-width: 90px;
}

/* El partido "programado" usa el mismo bloque navy que el resto de
   momentos destacados del sitio — solo cambia el "vs" por el marcador. */
.dsc-marcador-pendiente .dsc-marcador-resultado {
	font-size: 1.3rem;
	color: rgba(255, 255, 255, 0.55);
	font-weight: 700;
	text-transform: uppercase;
}

/* Resumen del equipo ([deporstats_equipo]) */

.dsc-equipo-resumen {
	margin-top: 0;
}

.dsc-posicion {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
	margin-bottom: 1.5rem;
}

.dsc-posicion-num {
	font-family: var(--dsc-font-heading);
	font-size: 2.6rem;
	font-weight: 800;
	color: var(--dsc-navy);
	line-height: 1;
}

.dsc-posicion-label {
	color: var(--dsc-text-muted);
	font-size: 0.9rem;
}

/* Forma reciente (últimos partidos jugados): fila de círculos G/E/P,
   referencia de estilo del bloque "Last 5 matches" de webs de datos
   deportivos, con nuestros colores de resultado ya existentes (los mismos
   de los badges G/E/P de las tablas de temporada, solo en formato círculo
   sólido en vez de pastilla con fondo suave). */
.dsc-forma-reciente {
	margin: 1.5rem 0;
}

.dsc-forma-label {
	display: block;
	margin-bottom: 0.6rem;
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--dsc-text-muted);
}

.dsc-forma-circulos {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.dsc-forma-circulo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	font-size: 0.95rem;
	color: #fff;
	text-decoration: none !important;
	transition: transform 0.15s ease;
}

.dsc-forma-circulo:hover {
	transform: translateY(-3px);
}

.dsc-forma-circulo--g {
	background: var(--dsc-success);
}

.dsc-forma-circulo--e {
	background: var(--dsc-silver);
}

.dsc-forma-circulo--p {
	background: var(--dsc-danger);
}

.dsc-proximo-partido {
	margin-top: 1.5rem;
	padding: 1rem 1.25rem;
	background: var(--dsc-bg-alt);
	border-radius: 14px;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.3rem 0.8rem;
}

.dsc-proximo-label {
	width: 100%;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--dsc-text-muted);
}

.dsc-proximo-rival {
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--dsc-primary-dark);
	text-decoration: none;
}

.dsc-proximo-rival:hover {
	color: var(--dsc-primary);
}

.dsc-proximo-fecha {
	color: var(--dsc-text-muted);
	font-size: 0.9rem;
}

.dsc-proximo-cuenta {
	width: 100%;
	font-family: var(--dsc-font-heading);
	font-weight: 700;
	font-size: 0.85rem;
	color: var(--dsc-primary);
}

.dsc-proximo-vacio {
	color: var(--dsc-text-muted);
}

/* Noticias ([deporstats_noticias]): una destacada + grid de secundarias.
   El feed de riazor.org no trae imágenes (sin <enclosure> ni
   media:thumbnail), así que la destacada usa un bloque de color a toda
   plancha con tipografía grande en vez de una foto. */

.dsc-noticias {
	margin-top: 0;
}

.dsc-noticia-destacada {
	display: block;
	margin-bottom: 1.25rem;
	background: var(--dsc-navy);
	border-radius: 14px;
	text-decoration: none;
	color: #fff;
	transition: box-shadow 0.15s ease;
	overflow: hidden;
}

.dsc-noticia-destacada-body {
	display: block;
	padding: 2.5rem 2rem;
}

.dsc-noticia-destacada:hover {
	box-shadow: 0 10px 30px rgba(0, 82, 122, 0.35);
}

/* Variante con imagen destacada de la entrada (en vez de solo el navy plano):
   la foto va entera arriba, con proporción fija (no recortada al peso del
   texto de cada entrada, que varía) y el texto debajo en su bloque navy de
   siempre — así nunca se recorta la imagen de forma impredecible. */
.dsc-noticia-destacada-img {
	display: block;
	width: 100%;
	aspect-ratio: 1200 / 630;
	background-size: cover;
	background-position: center;
}

.dsc-noticia-destacada .dsc-noticia-fecha {
	color: var(--dsc-silver);
}

.dsc-noticia-destacada .dsc-noticia-titulo {
	color: #fff;
	font-size: clamp(1.6rem, 4vw, 2.4rem);
	max-width: 46rem;
}

.dsc-noticia-destacada .dsc-noticia-resumen {
	color: rgba(255, 255, 255, 0.78);
	max-width: 40rem;
	font-size: 1rem;
}

.dsc-noticia-destacada .dsc-noticia-leer {
	color: #fff;
}

.dsc-noticias-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1.25rem;
}

.dsc-noticia-card {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 1.4rem 1.5rem;
	background: #fff;
	border: 1px solid var(--dsc-border);
	border-top: 3px solid var(--dsc-primary);
	border-radius: 14px;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.dsc-noticia-card:hover {
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

.dsc-noticia-fecha {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--dsc-silver);
	font-weight: 600;
}

.dsc-noticia-titulo {
	margin: 0;
	font-family: var(--dsc-font-heading);
	font-weight: 700;
	font-size: 1.2rem;
	line-height: 1.25;
	color: var(--dsc-navy);
}

.dsc-noticia-card:hover .dsc-noticia-titulo {
	color: var(--dsc-primary);
}

.dsc-noticia-resumen {
	margin: 0;
	font-size: 0.9rem;
	color: var(--dsc-text-muted);
	line-height: 1.5;
}

.dsc-noticia-leer {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	margin-top: auto;
	padding-top: 0.5rem;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--dsc-primary);
}

.dsc-noticias-fuente {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	margin-top: 1.5rem;
	font-size: 0.82rem;
	color: var(--dsc-text-muted);
}

.dsc-noticias-error {
	color: var(--dsc-text-muted);
}

/* Líderes de la temporada ([deporstats_lideres]) */

.dsc-lideres {
	margin-top: 0;
}

.dsc-lideres-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
	gap: 1.25rem;
}

/* .dsc-lider-card cambia de "caja con padding fijo" a "contenedor flex sin
   padding propio" (el padding pasa a .dsc-lider-hero/.dsc-lider-tabla) para
   el rediseño de las tarjetas masculinas (30/08/2026, replicado del
   proyecto hermano deporstats). OJO: [deporstats_lideres_f] (femenino,
   deliberadamente inerte — no está enlazado en ninguna página, ver
   CLAUDE.md) sigue usando este mismo nombre de clase con el layout
   antiguo (título + lista, con el padding puesto aquí) — si esa versión
   femenina se reactivase alguna vez, necesitaría este mismo rediseño en
   paralelo, igual que se hizo en el proyecto hermano. */
.dsc-lider-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--dsc-border);
	border-radius: 14px;
	overflow: hidden;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.dsc-lider-card:hover {
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

/* Cabecera "hero": el líder de la estadística en grande, con su cifra como
   protagonista — mismo patrón que las tarjetas de líderes de laliga.com
   (número gigante + etiqueta + rango "1.º" + nombre + foto), con nuestra
   propia paleta en vez de la suya. */
.dsc-lider-hero {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 1.25rem 1.25rem 1rem;
	text-decoration: none;
	color: inherit;
}

.dsc-lider-hero-datos {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.dsc-lider-hero-numero {
	font-family: var(--dsc-font-heading);
	font-size: 3rem;
	line-height: 1;
	font-weight: 700;
	color: var(--dsc-primary);
}

.dsc-lider-hero-label {
	margin-top: 0.15rem;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--dsc-navy);
}

.dsc-lider-hero-rank {
	margin-top: 0.6rem;
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--dsc-primary);
}

/* min-height reserva el espacio de 2 líneas siempre, y -webkit-line-clamp
   corta ahí si hiciera falta una tercera: así un nombre corto y uno largo
   dejan el héroe con la misma altura, sin depender de un alto en px. */
.dsc-lider-hero-nombre {
	font-family: var(--dsc-font-heading);
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--dsc-navy);
	overflow-wrap: anywhere;
	min-height: 2.9rem;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Tarjeta sin ningún jugador todavía con valor > 0 en esa estadística:
   mismo esqueleto que el héroe real, solo con "—" y el texto de aviso en
   vez de un jugador — mide exactamente igual que una tarjeta con datos. */
.dsc-lider-hero--vacio .dsc-lider-hero-numero {
	color: var(--dsc-silver);
}

.dsc-lider-hero-nombre--vacio {
	text-transform: none;
	font-family: var(--dsc-font-body);
	font-size: 0.85rem;
	font-weight: 400;
	color: var(--dsc-text-muted);
	-webkit-line-clamp: 3;
}

.dsc-lider-hero-equipo {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	margin-top: 0.3rem;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--dsc-silver);
}

.dsc-lider-hero-foto {
	position: relative;
	flex: 0 0 auto;
	width: 74px;
	height: 88px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--dsc-silver-bg);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--dsc-silver);
}

.dsc-lider-hero-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
}

/* Acento decorativo en la esquina, mismo recurso visual que laliga.com
   (triángulo superpuesto sobre la foto), en nuestro celeste. */
.dsc-lider-hero-corner {
	position: absolute;
	top: 0;
	right: 0;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 22px 22px 0;
	border-color: transparent var(--dsc-primary) transparent transparent;
	opacity: 0.18;
}

.dsc-lider-card:hover .dsc-lider-hero-nombre {
	color: var(--dsc-primary);
}

/* Mini-tabla de los top 5, debajo del hero — el líder aparece también aquí
   como fila 01, igual que en laliga.com. Siempre 5 filas (reales o
   placeholder), para que todas las tarjetas midan igual. */
.dsc-lider-tabla {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--dsc-border);
}

.dsc-lider-tabla li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.45rem 1.25rem;
}

.dsc-lider-tabla li:nth-child(odd) {
	background: var(--dsc-bg-alt);
}

.dsc-lider-tabla a {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	flex: 1 1 auto;
	text-decoration: none;
	color: inherit;
	min-width: 0;
}

.dsc-lider-tabla-pos {
	flex: 0 0 auto;
	width: 1.3rem;
	font-family: var(--dsc-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--dsc-silver);
}

.dsc-lider-tabla a:hover .dsc-lider-nombre {
	color: var(--dsc-primary);
}

/* Filas placeholder: cuando la estadística todavía no tiene 5 jugadores con
   valor > 0, se completa hasta 5 con estas — mismo layout que una fila real
   pero atenuada, para que se lea como "todavía sin dato", no como una fila
   rota. */
.dsc-lider-tabla-placeholder {
	opacity: 0.4;
}

.dsc-lider-tabla-fila-vacia {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	flex: 1 1 auto;
	min-width: 0;
}

.dsc-jugador-avanzadas {
	margin-bottom: 2rem;
}

.dsc-jugador-avanzadas-nota {
	margin: 0.25rem 0 1.25rem;
	font-size: 0.85rem;
	color: var(--dsc-text-muted);
}

.dsc-jugador-avanzadas .dsc-stats-grid {
	margin-bottom: 0;
}

.dsc-lider-titulo {
	margin: 0 0 0.75rem;
	font-family: var(--dsc-font-heading);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	font-size: 1rem;
	color: var(--dsc-navy);
	padding-bottom: 0.6rem;
	border-bottom: 2px solid var(--dsc-silver-bg);
}

.dsc-lider-lista {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dsc-lider-lista li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.4rem 0;
}

.dsc-lider-lista li + li {
	border-top: 1px solid var(--dsc-border);
}

.dsc-lider-lista a {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	text-decoration: none;
	color: inherit;
	min-width: 0;
}

/* Avatar pequeño en las listas de líderes: mismo componente que la tabla
   de jugadores (.dsc-jugador-avatar), solo con tamaño reducido para caber
   en una fila de ranking en vez de una celda de tabla. Referencia de
   estilo: listas "Top Performers" de MadridStats (foto circular + nombre). */
.dsc-jugador-avatar--sm {
	width: 30px;
	height: 30px;
	border-width: 1px;
}

.dsc-lider-lista a:hover .dsc-lider-nombre {
	color: var(--dsc-primary);
}

.dsc-lider-dorsal {
	flex: 0 0 auto;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--dsc-silver);
}

.dsc-lider-nombre {
	font-size: 0.9rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dsc-lider-valor {
	flex: 0 0 auto;
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	color: var(--dsc-primary-dark);
}

.dsc-lider-vacio {
	margin: 0;
	font-size: 0.85rem;
	color: var(--dsc-text-muted);
}

/* CTA en pastilla al pie de una sección ("Ver plantilla completa →",
   "Ver calendario y resultados →"): mismo patrón que los enlaces "SEE TOP
   PERFORMERS →" / "VIEW FULL TABLE →" de las webs de referencia de datos
   deportivos, con nuestra propia paleta azul en vez de la suya. */
.dsc-cta-row {
	margin-top: 1.75rem;
	text-align: center;
}

.dsc-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.65rem 1.4rem;
	border: 1.5px solid var(--dsc-primary);
	border-radius: 999px;
	font-family: var(--dsc-font-heading);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 0.82rem;
	color: var(--dsc-primary);
	text-decoration: none !important;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.dsc-cta:hover {
	background: var(--dsc-primary);
	color: #fff;
}

.dsc-cta-arrow {
	transition: transform 0.15s ease;
}

.dsc-cta:hover .dsc-cta-arrow {
	transform: translateX(3px);
}

/* Clasificación ([deporstats_clasificacion]) */

.dsc-clasificacion {
	margin-top: 0;
}

.dsc-table-clasificacion .dsc-col-puntos {
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	color: var(--dsc-primary-dark);
}

.dsc-row-deportivo {
	background: var(--dsc-silver-bg);
	box-shadow: inset 3px 0 0 var(--dsc-primary);
}

.dsc-row-deportivo td {
	font-weight: 700;
	color: var(--dsc-primary-dark);
}

.dsc-clasificacion-vacia,
.dsc-clasificacion-nota {
	font-size: 0.85rem;
	color: var(--dsc-text-muted);
}

.dsc-clasificacion-nota {
	margin-top: 0.75rem;
}

/* KPI de salvación ([deporstats_salvacion]) */

.dsc-salvacion {
	margin-top: 0;
}

.dsc-salvacion-kpi {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	padding: 2.75rem 1.5rem;
	background: var(--dsc-navy);
	border-radius: 14px;
	margin-bottom: 1rem;
	text-align: center;
}

.dsc-salvacion-numero {
	font-family: var(--dsc-font-heading);
	font-size: 4.5rem;
	font-weight: 800;
	line-height: 1;
	color: #fff;
}

.dsc-salvacion-numero--ok {
	color: #4ade80;
	font-size: 3rem;
}

.dsc-salvacion-label {
	max-width: 420px;
	font-size: 0.95rem;
	color: rgba(255, 255, 255, 0.75);
}

.dsc-salvacion-detalle {
	margin: 0 0 0.75rem;
	text-align: center;
	font-size: 0.9rem;
	color: var(--dsc-text-muted);
}

.dsc-salvacion-aviso {
	margin: 0;
	padding: 0.7rem 1rem;
	background: var(--dsc-silver-bg);
	border-radius: 14px;
	text-align: center;
	font-size: 0.8rem;
	color: var(--dsc-text-muted);
}

/* Footer del sitio (DSC_Footer, enganchado en astra_footer_before) */

.dsc-site-footer {
	background: var(--dsc-navy);
	color: rgba(255, 255, 255, 0.7);
	margin-top: 2rem;
}

.dsc-site-footer-inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 3rem 20px 2rem;
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 2.5rem;
}

.dsc-footer-logo {
	display: inline-block;
	margin-bottom: 0.75rem;
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	font-size: 1.4rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #fff;
}

.dsc-footer-aviso {
	max-width: 32rem;
	margin: 0;
	font-size: 0.88rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.6);
}

.dsc-footer-aviso strong {
	color: rgba(255, 255, 255, 0.85);
}

.dsc-footer-heading {
	margin: 0 0 0.9rem;
	font-family: var(--dsc-font-heading);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.5);
}

.dsc-footer-lista {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.dsc-footer-lista a {
	color: rgba(255, 255, 255, 0.8);
	text-decoration: none;
	font-size: 0.92rem;
}

.dsc-footer-lista a:hover {
	color: #fff;
	text-decoration: underline;
}

.dsc-site-footer-bottom {
	max-width: 1100px;
	margin: 0 auto;
	padding: 1.25rem 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.dsc-site-footer-bottom p {
	margin: 0;
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.45);
}

@media (max-width: 700px) {
	.dsc-site-footer-inner {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}

@media (max-width: 480px) {
	.dsc-jugador-header {
		flex-direction: column;
		text-align: center;
	}

	.dsc-marcador {
		flex-direction: column;
		gap: 0.5rem;
	}

	.dsc-noticia-destacada {
		padding: 1.75rem 1.25rem;
	}
}

/* ---------------------------------------------------------------------- */
/* Páginas de resumen de temporada (/temporada/{año}/{equipo}/)           */
/* ---------------------------------------------------------------------- */

.dsc-temporada-selector {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1.25rem;
	margin-top: 1.5rem;
}

.dsc-temporada-selector-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	padding: 2.5rem 1.5rem;
	background: var(--dsc-navy);
	color: #fff;
	border-radius: 14px;
	text-align: center;
	transition: transform 0.15s ease;
}

.dsc-temporada-selector-card:not(.dsc-temporada-selector-card--disabled):hover {
	transform: translateY(-3px);
}

.dsc-temporada-selector-card--disabled {
	background: var(--dsc-bg-alt);
	color: var(--dsc-text-muted);
	cursor: default;
}

.dsc-temporada-selector-nombre {
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	font-size: 1.3rem;
	letter-spacing: 0.02em;
}

.dsc-temporada-selector-sub {
	font-size: 0.85rem;
	opacity: 0.75;
}

.dsc-temporada-hero {
	background: var(--dsc-navy);
	color: #fff;
	border-radius: 14px;
	padding: 2rem 2.25rem;
	margin-bottom: 2rem;
}

.dsc-temporada-hero h1 {
	margin: 0 0 0.5rem;
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	color: #fff; /* el tema define su propio color de h1, que gana a la herencia */
}

.dsc-temporada-hero-linea {
	margin: 0;
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.05rem;
}

.dsc-temporada-narrativa {
	max-width: 72ch;
	margin-bottom: 2.5rem;
	line-height: 1.7;
}

.dsc-temporada-narrativa p {
	margin: 0 0 1.1rem;
}

.dsc-temporada-fuente {
	margin-top: -0.75rem;
	margin-bottom: 1.25rem;
	font-size: 0.85rem;
	color: var(--dsc-text-muted);
	font-style: italic;
}

/* KPIs de temporada: tarjetas grandes, estilo dashboard. */

.dsc-kpi-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
	margin-bottom: 2.5rem;
}

.dsc-kpi-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.3rem;
	padding: 1.75rem 1.25rem;
	background: #fff;
	border: 1px solid var(--dsc-border);
	border-radius: 14px;
	text-align: center;
}

.dsc-kpi-card--navy {
	background: var(--dsc-navy);
	border-color: var(--dsc-navy);
	color: #fff;
}

.dsc-kpi-card--navy .dsc-kpi-label {
	color: rgba(255, 255, 255, 0.75);
}

.dsc-kpi-card--navy .dsc-kpi-sub {
	color: rgba(255, 255, 255, 0.6);
}

.dsc-kpi-card-foto {
	color: var(--dsc-silver);
	margin-bottom: 0.25rem;
}

.dsc-kpi-valor {
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	font-size: 2.4rem;
	line-height: 1;
	color: var(--dsc-primary);
}

.dsc-kpi-card--navy .dsc-kpi-valor {
	color: #fff;
}

.dsc-kpi-label {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--dsc-text-muted);
}

.dsc-kpi-sub {
	font-size: 0.9rem;
	color: var(--dsc-navy);
	font-weight: 600;
}

.dsc-kpi-card--lista {
	align-items: stretch;
	text-align: left;
}

.dsc-kpi-mini-lista {
	list-style: none;
	margin: 0.75rem 0 0;
	padding: 0;
	counter-reset: dsc-kpi-contador;
}

.dsc-kpi-mini-lista li {
	display: flex;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.4rem 0;
	border-bottom: 1px solid var(--dsc-border);
	font-size: 0.9rem;
}

.dsc-kpi-mini-lista li:last-child {
	border-bottom: none;
}

.dsc-kpi-mini-lista li::before {
	counter-increment: dsc-kpi-contador;
	content: counter(dsc-kpi-contador) '. ';
	font-weight: 700;
	color: var(--dsc-primary);
}

.dsc-kpi-mini-lista li span {
	color: var(--dsc-text-muted);
	white-space: nowrap;
}

/* Tabla ordenable (jugadores de la temporada) */

.dsc-th-ordenable {
	cursor: pointer;
	user-select: none;
	position: relative;
}

.dsc-th-ordenable:hover {
	background: var(--dsc-primary-dark);
}

.dsc-th-ordenable::after {
	content: '↕';
	margin-left: 0.4em;
	opacity: 0.5;
	font-size: 0.85em;
}

.dsc-th-ordenable[data-orden='asc']::after {
	content: '↑';
	opacity: 1;
}

.dsc-th-ordenable[data-orden='desc']::after {
	content: '↓';
	opacity: 1;
}

/* Badges de resultado (G/E/P) en la tabla de partidos de temporada */

.dsc-badge-resultado-g {
	background: rgba(30, 142, 62, 0.12);
	color: var(--dsc-success);
}

.dsc-badge-resultado-e {
	background: var(--dsc-silver-bg);
	color: var(--dsc-text-muted);
}

.dsc-badge-resultado-p {
	background: rgba(179, 38, 30, 0.1);
	color: var(--dsc-danger);
}

@media (max-width: 480px) {
	.dsc-temporada-hero {
		padding: 1.5rem;
	}
}

/* ---------------------------------------------------------------------- */
/* Rediseño de portada estilo onpaperanalytic.com (04/09/2026, portado del */
/* proyecto hermano deporstats) — resumen de equipo, contexto de liga,     */
/* jugador destacado, carrusel de entradas y líderes en fila única.        */
/* ---------------------------------------------------------------------- */

/* Resumen compacto de equipo en portada ([deporstats_resumen_home]): tarjeta
   oscura, mismo lenguaje que .dsc-jugador-destacado/.dsc-proximo-partido
   (referencia visual: tarjeta "THIS SEASON" de onpaperanalytic.com).
   .dsc-stats-grid, .dsc-stat, .dsc-forma-reciente y .dsc-proximo-partido se
   reutilizan tal cual (mismo componente que en la ficha de equipo y de jugador) — aquí
   solo se sobrescriben sus colores, siempre con el ancestro
   ".dsc-resumen-home" delante, para no tocar esos componentes en el resto
   del sitio. */
.dsc-resumen-home {
	background: linear-gradient(160deg, #0078ad 0%, #006b9e 50%, #00527a 100%);
	border-radius: 16px;
	padding: 2rem;
	margin-top: 0;
	margin-bottom: 2rem;
}

.dsc-resumen-home-titulo {
	margin-bottom: 1rem;
}

.dsc-resumen-home .dsc-stats-grid {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.12);
}

.dsc-resumen-home .dsc-stat {
	background: transparent;
}

.dsc-resumen-home .dsc-stat-value {
	color: #fff;
}

.dsc-resumen-home .dsc-stat-label {
	color: rgba(255, 255, 255, 0.6);
}

.dsc-resumen-home .dsc-forma-label {
	color: rgba(255, 255, 255, 0.6);
}

.dsc-resumen-home .dsc-proximo-partido {
	background: rgba(255, 255, 255, 0.08);
}

.dsc-resumen-home .dsc-proximo-label {
	color: rgba(255, 255, 255, 0.6);
}

.dsc-resumen-home .dsc-proximo-rival {
	color: #fff;
}

.dsc-resumen-home .dsc-proximo-fecha {
	color: rgba(255, 255, 255, 0.7);
}

.dsc-resumen-home-ultimo {
	margin: 1rem 0 0;
	font-size: 0.92rem;
	color: rgba(255, 255, 255, 0.75);
}

.dsc-resumen-home-ultimo a {
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}


/* Contexto de liga ([deporstats_contexto_liga]) — mismo lenguaje visual
   oscuro que el resumen de arriba (referencia: "What the numbers say" /
   "Against the rest of the division" de onpaperanalytic.com), adaptado a
   nuestra paleta: azul royal en vez de dorado para los puestos top-3. */
.dsc-contexto-liga {
	background: linear-gradient(160deg, #0078ad 0%, #006b9e 50%, #00527a 100%);
	border-radius: 16px;
	padding: 2rem;
	margin-bottom: 2rem;
}

.dsc-contexto-liga .dsc-title {
	color: #fff;
}

.dsc-contexto-liga-intro {
	margin: 0.5rem 0 1.5rem;
	max-width: 42rem;
	font-size: 0.92rem;
	color: rgba(255, 255, 255, 0.65);
}

.dsc-contexto-liga-destacados {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
	margin-bottom: 2rem;
}

.dsc-contexto-liga-card {
	background: rgba(255, 255, 255, 0.06);
	border-radius: 12px;
	padding: 1.25rem;
}

.dsc-contexto-liga-card-label {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	font-family: var(--dsc-font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--dsc-silver);
}

.dsc-contexto-liga-card-titulo {
	margin: 0.6rem 0 0.3rem;
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	font-size: 1.15rem;
	color: #fff;
}

.dsc-contexto-liga-card-cifra {
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	font-size: 2rem;
	color: #fff;
}

.dsc-contexto-liga-card-cifra span {
	font-size: 1rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.5);
}

.dsc-contexto-liga-card-detalle {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.55);
}

.dsc-contexto-liga-barras {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.dsc-contexto-liga-fila-cabecera {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 0.4rem;
	gap: 0.75rem;
}

.dsc-contexto-liga-fila-label {
	font-weight: 600;
	color: #fff;
}

.dsc-contexto-liga-fila-rank {
	flex-shrink: 0;
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	color: rgba(255, 255, 255, 0.55);
}

.dsc-contexto-liga-fila-rank span {
	font-weight: 400;
	font-size: 0.85rem;
}

.dsc-contexto-liga-fila-rank--top {
	color: #fff;
}

.dsc-contexto-liga-barra {
	height: 6px;
	border-radius: 3px;
	background: rgba(255, 255, 255, 0.12);
	overflow: hidden;
}

.dsc-contexto-liga-barra-relleno {
	height: 100%;
	border-radius: 3px;
	background: var(--dsc-silver);
}

.dsc-contexto-liga-barra-relleno--top {
	background: #fff;
}

.dsc-contexto-liga-fila-valor {
	display: block;
	margin-top: 0.3rem;
	text-align: right;
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.5);
}

.dsc-contexto-liga-nota {
	margin: 2rem 0 0;
	font-size: 0.78rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.45);
}

.dsc-resumen-home-ultimo a:hover {
	color: var(--dsc-primary);
}


/* Jugador destacado de portada ([deporstats_jugador_destacado]) — elección
   manual en Ajustes → Equipo, ver class-dsc-settings.php. */
.dsc-jugador-destacado {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	padding: 1.1rem 1.4rem;
	background: var(--dsc-navy);
	border-radius: 14px;
	text-decoration: none;
	color: #fff;
	transition: box-shadow 0.15s ease;
}

.dsc-jugador-destacado:hover {
	box-shadow: 0 10px 30px rgba(0, 82, 122, 0.35);
}

.dsc-jugador-destacado-foto {
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.08);
	border: 2px solid var(--dsc-silver);
	color: rgba(255, 255, 255, 0.6);
}

.dsc-jugador-destacado-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dsc-jugador-destacado-datos {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.dsc-jugador-destacado-label {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	font-family: var(--dsc-font-heading);
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--dsc-silver);
}

.dsc-jugador-destacado-nombre {
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	font-size: 1.3rem;
	color: #fff;
}

.dsc-jugador-destacado-contexto {
	font-size: 0.88rem;
	color: rgba(255, 255, 255, 0.75);
}

.dsc-jugador-destacado-arrow {
	flex-shrink: 0;
	color: rgba(255, 255, 255, 0.6);
}

.dsc-proximo-vacio {
	color: var(--dsc-text-muted);
}

.dsc-equipo-intro {
	margin-bottom: 1.5rem;
}

.dsc-equipo-intro p {
	max-width: 72ch;
	line-height: 1.6;
	margin: 0;
}

.dsc-season-stats {
	margin-top: 1.5rem;
}


/* Carrusel de [deporstats_entradas] en la portada: mismas tarjetas de
   siempre (dsc-noticia-destacada / dsc-noticia-card), el único cambio es el
   contenedor — flex + overflow-x + scroll-snap, CSS puro. El feed de
   riazor.org ([deporstats_noticias]) sigue usando esas mismas clases en su
   grid normal en otras páginas, así que todo esto va con el selector
   descendiente ".dsc-noticias-carrusel", nunca sobre las clases base. */
.dsc-noticias-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

.dsc-noticias-nav {
	display: flex;
	gap: 0.5rem;
}

.dsc-noticias-nav-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid var(--dsc-border);
	background: #fff;
	color: var(--dsc-navy);
	cursor: pointer;
	padding: 0;
}

.dsc-noticias-nav-btn:hover {
	background: var(--dsc-bg-alt);
}

.dsc-noticias-nav-btn--prev svg {
	transform: rotate(180deg);
}

.dsc-noticias-carrusel {
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	margin-top: 1.5rem;
	padding-bottom: 0.5rem;
	/* Scrollbar oculta pero el scroll (rueda, trackpad, flechas) sigue
	   funcionando igual — los botones prev/next son un atajo, no la única
	   forma de moverse. */
	scrollbar-width: none;
}

.dsc-noticias-carrusel::-webkit-scrollbar {
	display: none;
}

.dsc-noticias-carrusel > * {
	flex: 0 0 auto;
	scroll-snap-align: start;
}

.dsc-noticias-carrusel .dsc-noticia-destacada {
	width: min(480px, 85vw);
	margin-bottom: 0;
}

.dsc-noticias-carrusel .dsc-noticia-card {
	width: min(280px, 80vw);
}

.dsc-noticias-fuente {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	margin-top: 1.5rem;
	font-size: 0.82rem;
	color: var(--dsc-text-muted);
}

.dsc-noticias-error {
	color: var(--dsc-text-muted);
}


/* Variante "fila única" (portada, [deporstats_lideres]): una fila por
   estadística con solo el líder — foto a la izquierda, nombre y "Posición ·
   Nacionalidad" en el medio, cifra a la derecha (referencia: "Who's driving
   it" de onpaperanalytic.com). Mismo lenguaje oscuro que
   .dsc-resumen-home/.dsc-contexto-liga para que la portada se lea como un
   único bloque, no como tarjetas blancas sueltas. La variante acordeón de
   arriba (con top-5) sigue viva para [deporstats_lideres_f]. */
.dsc-lideres {
	background: linear-gradient(160deg, #0078ad 0%, #006b9e 50%, #00527a 100%);
	border-radius: 16px;
	padding: 2rem;
}

.dsc-lideres .dsc-title {
	color: #fff;
}

.dsc-lideres-lista {
	display: flex;
	flex-direction: column;
}

.dsc-lideres-fila {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.dsc-lideres-fila:first-child {
	border-top: none;
}

.dsc-lideres-fila-titulo {
	display: block;
	padding-top: 1.1rem;
	font-family: var(--dsc-font-heading);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--dsc-silver);
}

.dsc-lideres-fila-jugador {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 0.75rem 0 1.1rem;
	text-decoration: none;
	color: inherit;
}

.dsc-lideres-fila-jugador .dsc-jugador-avatar {
	flex-shrink: 0;
	width: 46px;
	height: 46px;
}

.dsc-lideres-fila-datos {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.dsc-lideres-fila-nombre {
	font-family: var(--dsc-font-heading);
	font-weight: 700;
	font-size: 1.05rem;
	color: #fff;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dsc-lideres-fila-subtitulo {
	margin-top: 0.15rem;
	font-size: 0.82rem;
	color: rgba(255, 255, 255, 0.55);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dsc-lideres-fila-valor {
	flex-shrink: 0;
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	font-size: 1.4rem;
	color: #fff;
}

.dsc-lideres-fila-jugador:hover .dsc-lideres-fila-nombre {
	text-decoration: underline;
}

.dsc-lider-summary {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.9rem 1.25rem;
	cursor: pointer;
	list-style: none;
	font-family: var(--dsc-font-heading);
}

.dsc-lider-summary::-webkit-details-marker {
	display: none;
}

.dsc-lider-summary-titulo {
	font-weight: 700;
	font-size: 1rem;
	color: var(--dsc-navy);
	white-space: nowrap;
}

.dsc-lider-summary-lider {
	flex: 1;
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.5rem;
	font-family: var(--dsc-font-body);
	font-size: 0.88rem;
	color: var(--dsc-text-muted);
}

.dsc-lider-summary-lider--vacio {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dsc-lider-summary-lider .dsc-jugador-avatar {
	flex-shrink: 0;
}

.dsc-lider-summary-nombre {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--dsc-navy);
	font-weight: 600;
}

.dsc-lider-summary-valor {
	flex-shrink: 0;
	font-family: var(--dsc-font-heading);
	font-weight: 800;
	color: var(--dsc-primary-dark);
}

.dsc-lider-summary-icono {
	flex-shrink: 0;
	display: flex;
	color: var(--dsc-silver);
	transition: transform 0.15s ease;
}

.dsc-lider-card[open] .dsc-lider-summary-icono {
	transform: rotate(90deg);
}

.dsc-lider-card[open] .dsc-lider-summary {
	border-bottom: 1px solid var(--dsc-border);
}

.dsc-lider-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--dsc-border);
	border-radius: 14px;
	overflow: hidden;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.dsc-lider-card:hover {
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

/* ------------------------------------------------------------------ */
/* Página fantasy (/fantasy-celta/, [deporstats_fantasy], v0.6.0)     */
/* ------------------------------------------------------------------ */

.dsc-fantasy-intro p {
	font-size: 1.05rem;
	line-height: 1.65;
}

.dsc-fantasy-actualizado {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	padding: 0.3rem 0.8rem;
	border-radius: 999px;
	background: var(--dsc-bg-alt);
	color: var(--dsc-text-muted);
	font-size: 0.85rem;
	font-weight: 600;
}

.dsc-fantasy-actualizado .dsc-icon {
	color: var(--dsc-primary);
}

.dsc-fantasy-bloque {
	margin-top: 2.75rem;
}

/* Siete H2 seguidos: algo más pequeños que el .dsc-title de las secciones
   de la home, para que la página no se lea como una lista de carteles. */
.dsc-fantasy .dsc-fantasy-h2 {
	margin-bottom: 1rem;
	font-size: clamp(1.4rem, 2.6vw, 1.85rem);
}

.dsc-fantasy .dsc-fantasy-h3 {
	margin: 1.75rem 0 0.6rem;
	font-family: var(--dsc-font-heading);
	font-weight: 700;
	font-size: 1.25rem;
	text-transform: uppercase;
	color: var(--dsc-navy);
}

.dsc-fantasy-bloque > p {
	line-height: 1.65;
}

/* Motivo y fuente pueden ser frases: en esta tabla sí se parten. */
.dsc-table-fantasy td {
	white-space: normal;
}

.dsc-table-fantasy td:first-child {
	white-space: nowrap;
	font-weight: 600;
}

.dsc-badge-fantasy-baja,
.dsc-badge-fantasy-sancionado {
	background: rgba(179, 38, 30, 0.12);
	color: var(--dsc-danger);
}

.dsc-badge-fantasy-duda {
	background: rgba(178, 106, 0, 0.12);
	color: var(--dsc-warning);
}

.dsc-fantasy-etiqueta {
	margin: -0.25rem 0 0.75rem;
}

.dsc-badge-indicador {
	background: rgba(0, 153, 216, 0.12);
	/* --dsc-navy y no --dsc-primary: el celeste puro no llega a 4.5:1 como texto. */
	color: var(--dsc-navy);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.dsc-fantasy-once {
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
	border: 1px solid var(--dsc-border);
	border-radius: 14px;
	overflow: hidden;
}

.dsc-fantasy-once li {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.75rem;
	margin: 0;
	padding: 0.7rem 1rem;
	border-bottom: 1px solid var(--dsc-border);
}

.dsc-fantasy-once li:last-child {
	border-bottom: none;
}

.dsc-fantasy-once-linea {
	flex: 0 0 9.5rem;
	font-family: var(--dsc-font-heading);
	font-weight: 700;
	text-transform: uppercase;
	color: var(--dsc-navy);
}

.dsc-fantasy-dudas {
	margin: 0 0 1rem 1.2rem;
}

.dsc-fantasy-nota {
	margin-top: 0.6rem;
	font-size: 0.85rem;
	color: var(--dsc-text-muted);
}

.dsc-fantasy-aviso {
	margin-top: 3rem;
	padding-top: 1rem;
	border-top: 1px solid var(--dsc-border);
	font-size: 0.85rem;
	color: var(--dsc-text-muted);
}

@media (max-width: 600px) {
	.dsc-fantasy-once-linea {
		flex-basis: 100%;
	}

	/* Motivo y fuente: sin ancho mínimo se parten palabra a palabra y cada
	   fila de la tabla de bajas pasa de 300px de alto. */
	.dsc-table-fantasy-bajas td:nth-child(4),
	.dsc-table-fantasy-bajas td:nth-child(5) {
		min-width: 14rem;
	}
}
