/**
 * 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-55 .entry-header,
body.page-id-59 .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-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, 28, 61, 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(230px, 1fr));
	gap: 1.25rem;
}

.dsc-lider-card {
	padding: 1.4rem 1.5rem;
	background: #fff;
	border: 1px solid var(--dsc-border);
	border-radius: 14px;
	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);
}

.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;
	}
}
