/*
 * Resumen de temporada del Tour y palmarés (diseño A, el de la cabecera de
 * un Open): fondo oscuro, cabecera con marca de agua, y filas con las cartas
 * del podio, cada una del color del club de quien la ocupa.
 *
 * Plantillas: templates/tour.php, templates/palmares.php y
 * template-parts/podio/*.php.
 *
 * @version 0.20.0
 *
 * Changelog
 * 0.18.0 — Primera versión.
 * 0.20.0 — Calendario de los Opens por jugar (.lfc-cal, .lfc-proximo,
 *          .lfc-hoja, .lfc-bandera).
 */

.lfc-podios__oscuro {
	background: var(--lfc-color-navy-profundo);
	color: var(--lfc-color-blanco);
	overflow: hidden;
}

.lfc-podios__dentro {
	position: relative;
	max-width: var(--lfc-container-interior);
	margin: 0 auto;
	padding: var(--lfc-space-4) var(--lfc-gutter-interior) var(--lfc-space-8);
}

.lfc .lfc-volver--claro { color: var(--lfc-color-verde-claro); }
.lfc .lfc-volver--claro:hover { color: var(--lfc-color-blanco); }

.lfc-podios__vacio,
.lfc-podios__nota {
	margin: var(--lfc-space-4) 0 0;
	color: var(--lfc-color-claro-suave);
	font-size: var(--lfc-text-md);
}

/* Solo para lectores de pantalla (el tema no tenía la clase de WordPress). */
.lfc-podios .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* --- Cabecera ------------------------------------------------------------ */

.lfc-podio-cabecera {
	position: relative;
	padding: var(--lfc-space-6) 0 var(--lfc-space-6);
	display: flex;
	flex-direction: column;
	gap: var(--lfc-space-2);
}

.lfc-podio-cabecera__marca {
	position: absolute;
	right: 0;
	top: -1rem;
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	font-size: clamp(9rem, 22vw, 18.75rem);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 2px rgba(255, 255, 255, 0.08);
	pointer-events: none;
	user-select: none;
}

.lfc-podio-cabecera__antetitulo {
	position: relative;
	font-family: var(--lfc-fuente-mono);
	font-size: var(--lfc-text-sm);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--lfc-color-verde-claro);
}

.lfc-podio-cabecera__titulo {
	position: relative;
	margin: 0;
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	font-size: clamp(3rem, 8vw, 7rem);
	line-height: 0.88;
	text-transform: uppercase;
	color: var(--lfc-color-blanco);
}

.lfc-podio-cabecera__datos {
	position: relative;
	margin-top: var(--lfc-space-1);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--lfc-space-15) var(--lfc-space-35);
	font-size: var(--lfc-text-lg);
	color: var(--lfc-color-claro-suave);
}

.lfc-podio-cabecera__dato {
	display: inline-flex;
	align-items: center;
	gap: var(--lfc-space-1);
}

.lfc-podio-cabecera__icono { color: var(--lfc-color-verde-claro); flex: none; }

.lfc-podio-cabecera__pestanas {
	display: inline-flex;
	flex-wrap: wrap;
	gap: var(--lfc-space-1);
}

.lfc .lfc-podio-cabecera__pestana {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.25rem 0.875rem;
	border: 1.5px solid rgba(255, 255, 255, 0.28);
	border-radius: var(--lfc-radius);
	font-family: var(--lfc-fuente-titulos);
	font-weight: 700;
	font-size: var(--lfc-text-lg);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
}

.lfc .lfc-podio-cabecera__pestana:hover { border-color: var(--lfc-color-blanco); color: var(--lfc-color-blanco); }

.lfc .lfc-podio-cabecera__pestana[aria-current="page"] {
	background: var(--lfc-color-blanco);
	border-color: var(--lfc-color-blanco);
	color: var(--lfc-color-navy-profundo);
}

.lfc-podio-cabecera__cuantas {
	font-family: var(--lfc-fuente-mono);
	font-weight: 400;
	font-size: var(--lfc-text-xs);
	letter-spacing: 0;
	opacity: 0.7;
}

.lfc-podio-cabecera__temporada {
	display: inline-flex;
	gap: var(--lfc-space-1);
}

.lfc-podio-cabecera__temporada select {
	height: 2.25rem;
	padding: 0 var(--lfc-space-15);
	border: 1.5px solid rgba(255, 255, 255, 0.28);
	border-radius: var(--lfc-radius);
	background: var(--lfc-color-navy);
	color: var(--lfc-color-blanco);
	font: inherit;
	font-size: var(--lfc-text-md);
}

.lfc-podio-cabecera__temporada .lfc-boton { height: 2.25rem; padding: 0 var(--lfc-space-2); }

/* Con JavaScript, la temporada cambia al elegirla (assets/js/competicion.js). */
.lfc-js .lfc-podio-cabecera__temporada [data-lfc-temporada-boton] { display: none; }

/* --- Campeón del Tour ---------------------------------------------------- */

.lfc .lfc-podios__campeon {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--lfc-space-15);
	margin-bottom: var(--lfc-space-4);
	padding: var(--lfc-space-15) var(--lfc-space-2);
	border: 1.5px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--lfc-radius);
	color: var(--lfc-color-blanco);
	text-decoration: none;
}

.lfc .lfc-podios__campeon:hover { border-color: var(--lfc-color-verde-claro); }

.lfc-podios__campeon-rotulo {
	font-family: var(--lfc-fuente-mono);
	font-size: var(--lfc-text-xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
}

.lfc-podios__campeon-nombre {
	font-family: var(--lfc-fuente-titulos);
	font-weight: 700;
	font-size: var(--lfc-titulo-xs);
	text-transform: uppercase;
}

/* --- Fila: la prueba y su podio -------------------------------------------- */

.lfc-podio-fila {
	display: grid;
	grid-template-columns: 15.625rem minmax(0, 1fr);
	gap: var(--lfc-space-3);
	align-items: end;
	padding: var(--lfc-space-35) 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.lfc-podio-fila__info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.625rem;
	padding-bottom: 0.375rem;
}

.lfc-podio-fila__escudo {
	width: 3.25rem;
	height: 3.25rem;
	object-fit: contain;
	filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.35));
}

.lfc-podio-fila__escudo.lfc-escudo--vacio {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--lfc-color-blanco);
	color: var(--lfc-color-navy);
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
}

.lfc-podio-fila__antetitulo {
	font-family: var(--lfc-fuente-mono);
	font-size: var(--lfc-text-xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--lfc-color-verde-claro);
}

.lfc-podio-fila__titulo {
	margin: 0;
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	font-size: 2.375rem;
	line-height: 0.92;
	text-transform: uppercase;
}

.lfc .lfc-podio-fila__titulo a { color: inherit; text-decoration: none; }
.lfc .lfc-podio-fila__titulo a:hover { color: var(--lfc-color-verde-claro); }

.lfc-podio-fila__enlaces {
	font-family: var(--lfc-fuente-mono);
	font-size: var(--lfc-text-xs);
	color: rgba(255, 255, 255, 0.6);
}

.lfc .lfc-podio-fila__enlaces a { color: var(--lfc-color-verde-claro); text-decoration: none; }
.lfc .lfc-podio-fila__enlaces a:hover { color: var(--lfc-color-blanco); }

.lfc-podio-fila__cartas {
	display: grid;
	grid-template-columns: 1.3fr 1.1fr 1fr 1fr;
	gap: 0.875rem;
	align-items: end;
}

.lfc-podio-fila__vacio {
	margin: 0;
	padding: var(--lfc-space-3);
	border: 1.5px dashed rgba(255, 255, 255, 0.16);
	border-radius: var(--lfc-radius);
	color: rgba(255, 255, 255, 0.6);
}

/* Años sin campeonato. */
.lfc-podio-hueco {
	display: flex;
	align-items: center;
	gap: var(--lfc-space-3);
	margin: var(--lfc-space-35) 0 0;
	padding: 1.125rem var(--lfc-space-3);
	border: 1.5px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--lfc-radius);
}

.lfc-podio-hueco__anio {
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	font-size: 2.375rem;
	line-height: 1;
	color: rgba(255, 255, 255, 0.7);
}

.lfc-podio-hueco__texto {
	font-family: var(--lfc-fuente-titulos);
	font-weight: 700;
	font-size: var(--lfc-titulo-xs);
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
}

/* Al lado de las cartas: quién sube o baja (Superliga). */
.lfc-podio-aparte {
	align-self: stretch;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 0.625rem;
	padding: var(--lfc-space-2) 1.125rem;
	border: 1.5px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--lfc-radius);
}

.lfc-podio-aparte__titulo {
	font-family: var(--lfc-fuente-mono);
	font-size: var(--lfc-text-xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--lfc-color-verde-claro);
}

.lfc-podio-aparte__lista {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}

.lfc-podio-aparte__lista li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--lfc-space-1);
	font-family: var(--lfc-fuente-titulos);
	font-weight: 700;
	font-size: var(--lfc-text-2xl);
	text-transform: uppercase;
}

.lfc-podio-aparte__club {
	font-family: var(--lfc-fuente-texto);
	font-weight: 500;
	font-size: var(--lfc-text-xs);
	text-transform: none;
	color: rgba(255, 255, 255, 0.6);
}

/* --- Carta del podio --------------------------------------------------------- */

.lfc-carta {
	--lfc-carta-alto: 12.25rem;
	--lfc-carta-num: 3.5rem;
	--lfc-carta-nombre: 1.5rem;
	position: relative;
	height: var(--lfc-carta-alto);
	background: var(--lfc-club-fondo, #1C3A60);
	color: var(--lfc-club-texto, var(--lfc-color-blanco));
	clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%);
	overflow: hidden;
	/* El nombre se encoge con la carta (ver .lfc-carta__nombre). */
	container-type: inline-size;
}

.lfc-carta--1 { --lfc-carta-alto: 15.625rem; --lfc-carta-num: 4.75rem; --lfc-carta-nombre: 1.875rem; }
.lfc-carta--2 { --lfc-carta-alto: 13.875rem; --lfc-carta-num: 4rem; --lfc-carta-nombre: 1.625rem; }

/* Rayas finas y la franja del segundo color del club. */
.lfc-carta::before {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.045) 0 2px, transparent 2px 22px);
}

.lfc-carta::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 0.75rem;
	background: var(--lfc-club-franja, transparent);
}

.lfc-carta__silueta {
	position: absolute;
	right: 0.625rem;
	bottom: 0;
	height: 84%;
	width: auto;
	filter: brightness(0) invert(1);
	opacity: 0.15;
}

/* Por equipos: el escudo del club, grande y tenue. */
.lfc-carta--equipo .lfc-carta__silueta {
	filter: none;
	opacity: 0.3;
	height: 70%;
	top: 8%;
	bottom: auto;
	right: 6%;
}

/* Con foto de verdad, la foto (a la derecha, fundida con el color). */
.lfc-carta--foto .lfc-carta__silueta {
	filter: none;
	opacity: 1;
	height: 100%;
	right: 0;
	mask-image: linear-gradient(to right, transparent, #000 40%);
}

.lfc-carta__dentro {
	position: relative;
	z-index: 1;
	height: 100%;
	box-sizing: border-box;
	padding: var(--lfc-space-2) 1.625rem var(--lfc-space-3) 1.875rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.lfc-carta__arriba {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.375rem;
}

.lfc-carta__etiqueta {
	padding: 0.1875rem 0.625rem;
	border-radius: var(--lfc-radius);
	background: rgba(0, 0, 0, 0.22);
	color: var(--lfc-color-blanco);
	font-family: var(--lfc-fuente-titulos);
	font-weight: 700;
	font-size: var(--lfc-text-sm);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.lfc-carta--1 .lfc-carta__etiqueta {
	background: var(--lfc-color-blanco);
	color: var(--lfc-color-navy-profundo);
}

.lfc-carta__pos {
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	font-size: var(--lfc-carta-num);
	line-height: 0.8;
}

.lfc-carta__abajo {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.lfc-carta__pila {
	font-size: var(--lfc-text-xs);
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.lfc .lfc-carta__nombre {
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	/* Como mucho su tamaño; en cartas estrechas, lo que quepa sin partir
	   un apellido («RODRÍGUEZ» entero, no «RODRÍGUE / Z»). */
	font-size: min(var(--lfc-carta-nombre), 14cqi);
	line-height: 0.95;
	text-transform: uppercase;
	color: inherit;
	text-decoration: none;
	overflow-wrap: break-word;
}

.lfc a.lfc-carta__nombre:hover { text-decoration: underline; text-underline-offset: 0.2em; }

/* Parejas: los dos nombres del mismo tamaño. */
.lfc-carta--pareja .lfc-carta__pila {
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	font-size: min(var(--lfc-carta-nombre), 14cqi);
	line-height: 0.95;
	letter-spacing: 0;
}

.lfc-carta__club {
	margin-top: var(--lfc-space-1);
	display: flex;
	align-items: center;
	gap: var(--lfc-space-1);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.lfc-carta__escudo {
	width: 1.75rem;
	height: 1.75rem;
	flex: none;
	object-fit: contain;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35));
}

.lfc-carta__escudo.lfc-escudo--vacio {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--lfc-color-blanco);
	color: var(--lfc-color-navy);
	font-size: 0.5rem;
}

.lfc-carta__dato {
	margin-top: 0.25rem;
	font-family: var(--lfc-fuente-mono);
	font-size: var(--lfc-text-xs);
	opacity: 0.85;
}

/* --- Página de una prueba ------------------------------------------------ */

/* Las cuatro cartas a todo el ancho, más grandes que en el resumen. */
.lfc-prueba-cartas {
	display: grid;
	grid-template-columns: 1.45fr 1.1fr 1fr 1fr;
	gap: 1.125rem;
	align-items: end;
}

.lfc-prueba-cartas .lfc-carta { --lfc-carta-alto: 25rem; --lfc-carta-num: 6.875rem; --lfc-carta-nombre: 2.625rem; }
.lfc-prueba-cartas .lfc-carta--1 { --lfc-carta-alto: 33.75rem; --lfc-carta-num: 9.375rem; --lfc-carta-nombre: 3.75rem; }
.lfc-prueba-cartas .lfc-carta--2 { --lfc-carta-alto: 28.75rem; --lfc-carta-num: 7.5rem; --lfc-carta-nombre: 3rem; }
.lfc-prueba-cartas .lfc-carta__dentro { padding: 1.75rem 2.75rem 2.25rem 3rem; }
.lfc-prueba-cartas .lfc-carta__etiqueta { font-size: var(--lfc-text-base); }
.lfc-prueba-cartas .lfc-carta__pila { font-size: var(--lfc-text-md); }
.lfc-prueba-cartas .lfc-carta__club { font-size: var(--lfc-text-sm); }
.lfc-prueba-cartas .lfc-carta__escudo { width: 2.5rem; height: 2.5rem; }

/* Semifinales, final y campeón (opción C). */
.lfc-final {
	margin-top: var(--lfc-space-6);
	padding: var(--lfc-space-35) var(--lfc-space-4);
	border-radius: var(--lfc-radius);
	background: var(--lfc-color-navy-2);
	display: flex;
	align-items: center;
}

.lfc-final__semis {
	display: flex;
	flex-direction: column;
	gap: var(--lfc-space-25);
	flex: 0 1 18.75rem;
	min-width: 0;
}

.lfc-final__bloque {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
	min-width: 0;
}

.lfc-final__bloque--final { flex: 0 1 20rem; padding-top: 1.125rem; }

.lfc-final__ronda {
	font-family: var(--lfc-fuente-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
}

.lfc-final__ronda--final { color: var(--lfc-color-verde-claro); }

.lfc-final__partido {
	border-radius: var(--lfc-radius);
	background: var(--lfc-color-navy-profundo);
	padding: 0.625rem 0.875rem;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.lfc-final__partido--final {
	border: 1.5px solid var(--lfc-color-verde);
	padding: 0.75rem var(--lfc-space-2);
}

.lfc-final__lado {
	display: flex;
	justify-content: space-between;
	gap: var(--lfc-space-15);
	font-family: var(--lfc-fuente-titulos);
	font-weight: 500;
	font-size: var(--lfc-text-3xl);
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
}

.lfc-final__partido--final .lfc-final__lado { font-size: 1.5rem; }
.lfc-final__lado--gana { font-weight: 700; color: var(--lfc-color-blanco); }
.lfc .lfc-final__lado a { color: inherit; }
.lfc .lfc-final__lado a:hover { color: var(--lfc-color-verde-claro); }
.lfc-final__goles { font-weight: 800; white-space: nowrap; }
.lfc-final__goles small { font-size: 0.75em; opacity: 0.8; }

/* Las líneas que unen semifinales, final y campeón. */
.lfc-final__llave {
	flex: none;
	display: flex;
	align-items: center;
	padding-top: 1.125rem;
}

.lfc-final__llave span:first-child {
	width: 2rem;
	height: 6.5rem;
	border: 2px solid rgba(255, 255, 255, 0.25);
	border-left: none;
	border-radius: 0 var(--lfc-radius) var(--lfc-radius) 0;
}

.lfc-final__llave span:last-child { width: 2rem; height: 2px; background: rgba(255, 255, 255, 0.25); }

.lfc-final__linea { flex: none; width: 2.5rem; height: 2px; margin-top: 1.125rem; background: var(--lfc-color-verde); }

.lfc-final__campeon {
	flex: 1 1 auto;
	margin-top: 1.125rem;
	display: flex;
	align-items: center;
	gap: var(--lfc-space-2);
	padding: var(--lfc-space-2) var(--lfc-space-25);
	border-radius: var(--lfc-radius);
	background: var(--lfc-color-verde-oscuro);
	min-width: 0;
}

.lfc-final__trofeo { width: 2.5rem; height: 2.5rem; flex: none; color: var(--lfc-color-blanco); }

.lfc-final__campeon-texto { display: flex; flex-direction: column; gap: 0.125rem; min-width: 0; }

.lfc-final__campeon-rotulo {
	font-family: var(--lfc-fuente-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.86);
}

.lfc-final__campeon-nombre {
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	font-size: 2.125rem;
	line-height: 1;
	text-transform: uppercase;
}

.lfc .lfc-final__campeon-nombre a,
.lfc .lfc-final__consolacion a { color: inherit; }

.lfc-final__consolacion { margin-top: 0.25rem; font-size: var(--lfc-text-sm); color: rgba(255, 255, 255, 0.86); }

/* --- Calendario de los Opens por jugar -------------------------------------- */

.lfc-podios__seccion {
	margin: var(--lfc-space-8) 0 var(--lfc-space-3);
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	font-size: var(--lfc-titulo-2xl);
	line-height: 1;
	text-transform: uppercase;
}

.lfc-cal { display: flex; flex-direction: column; gap: var(--lfc-space-45); }

/* El próximo Open, en grande y del color de su club. */
.lfc-proximo {
	position: relative;
	min-height: 21.25rem;
	background: var(--lfc-club-fondo, var(--lfc-color-verde-oscuro));
	color: var(--lfc-club-texto, var(--lfc-color-blanco));
	border-bottom: 1.5rem solid var(--lfc-club-franja, transparent);
	clip-path: polygon(3% 0, 100% 0, 97% 100%, 0 100%);
	overflow: hidden;
}

.lfc-proximo::before {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.045) 0 2px, transparent 2px 22px);
}

.lfc-proximo__marca {
	position: absolute;
	right: 7.5rem;
	top: -3.75rem;
	width: 28.75rem;
	height: 28.75rem;
	object-fit: contain;
	opacity: 0.14;
}

.lfc-proximo__dentro {
	position: relative;
	min-height: 21.25rem;
	box-sizing: border-box;
	padding: var(--lfc-space-45) 6rem var(--lfc-space-45) 5.25rem;
	display: flex;
	justify-content: space-between;
	gap: var(--lfc-space-5);
}

.lfc-proximo__texto { display: flex; flex-direction: column; justify-content: space-between; gap: var(--lfc-space-2); min-width: 0; }
.lfc-proximo__arriba { display: flex; flex-wrap: wrap; align-items: center; gap: 0.875rem; }

.lfc-proximo__etiqueta {
	padding: 0.3125rem 0.875rem;
	border-radius: var(--lfc-radius);
	background: var(--lfc-color-blanco);
	color: var(--lfc-color-navy-profundo);
	font-family: var(--lfc-fuente-titulos);
	font-weight: 700;
	font-size: var(--lfc-text-lg);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.lfc-proximo__cuenta { font-family: var(--lfc-fuente-mono); font-size: var(--lfc-text-md); opacity: 0.9; }

.lfc .lfc-proximo__sede {
	display: block;
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	font-size: clamp(3.5rem, 9vw, 7.75rem);
	line-height: 0.85;
	text-transform: uppercase;
	color: inherit;
	overflow-wrap: break-word;
}

.lfc .lfc-proximo__sede:hover { text-decoration: underline; text-underline-offset: 0.08em; }
.lfc-proximo__fecha { margin-top: 0.75rem; font-size: 1.1875rem; font-weight: 500; }
.lfc-proximo__abajo { display: flex; flex-wrap: wrap; align-items: center; gap: 0.625rem; }
.lfc-proximo__plazas { font-family: var(--lfc-fuente-mono); font-size: var(--lfc-text-md); }

.lfc-proximo__lado {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--lfc-space-2);
	flex: none;
}

.lfc-proximo__escudo {
	width: 9.375rem;
	height: 9.375rem;
	object-fit: contain;
	filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.3));
}

.lfc-proximo__bandera { width: 4.5rem; height: auto; }

.lfc .lfc-proximo__boton {
	height: 3.25rem;
	padding: 0 1.75rem;
	background: var(--lfc-color-blanco);
	color: var(--lfc-color-navy-profundo);
	font-family: var(--lfc-fuente-titulos);
	font-size: 1.1875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Lo que se juega en cada Open: lo que no, tachado. */
.lfc-cal-pastillas { display: flex; flex-wrap: wrap; gap: var(--lfc-space-1); }

.lfc-cal-pastilla {
	padding: 0.25rem 0.6875rem;
	border: 1.5px solid rgba(255, 255, 255, 0.4);
	border-radius: var(--lfc-radius);
	font-family: var(--lfc-fuente-titulos);
	font-weight: 700;
	font-size: var(--lfc-text-md);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.lfc-cal-pastilla--no { opacity: 0.4; text-decoration: line-through; }
.lfc-cal-pastillas--claras .lfc-cal-pastilla { border-color: currentColor; }

/* Meses. */
.lfc-cal-mes__cabecera { display: flex; align-items: baseline; gap: var(--lfc-space-2); padding-bottom: 0.625rem; }

.lfc-cal-mes__nombre {
	margin: 0;
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	font-size: 2.75rem;
	line-height: 1;
	text-transform: uppercase;
}

.lfc-cal-mes__anio { font-family: var(--lfc-fuente-mono); font-size: var(--lfc-text-md); color: rgba(255, 255, 255, 0.55); }
.lfc-cal-mes__linea { flex: 1; height: 1px; background: rgba(255, 255, 255, 0.12); }
.lfc-cal-mes__cuantos { font-family: var(--lfc-fuente-mono); font-size: var(--lfc-text-sm); color: var(--lfc-color-verde-claro); }
.lfc-cal-mes__lista { margin: 0; padding: 0; list-style: none; }

.lfc-cal-open {
	display: grid;
	grid-template-columns: 3rem 5.375rem 3.25rem minmax(0, 1fr) 3.375rem minmax(0, 23rem) 11rem;
	align-items: center;
	gap: var(--lfc-space-2);
	min-height: 6rem;
	padding: var(--lfc-space-15) 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.lfc-cal-open--proximo { background: rgba(20, 164, 74, 0.1); }

.lfc-cal-open__num {
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-style: italic;
	font-size: 1.75rem;
	color: rgba(255, 255, 255, 0.45);
}

/* La hoja de calendario (del diseño B). */
.lfc-hoja {
	display: flex;
	flex-direction: column;
	width: 5.375rem;
	border-radius: var(--lfc-radius);
	background: var(--lfc-color-blanco);
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.35);
	overflow: hidden;
	text-align: center;
	transform: rotate(-4deg);
}

.lfc-hoja__mes {
	height: 1.5rem;
	background: #F2A93B;
	color: var(--lfc-color-navy);
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-size: var(--lfc-text-sm);
	line-height: 1.5rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.lfc-hoja__dias {
	padding: 0.375rem 0.25rem 0.625rem;
	font-family: var(--lfc-fuente-titulos);
	font-weight: 800;
	font-size: 1.875rem;
	line-height: 1;
	color: var(--lfc-color-rojo);
}

.lfc-cal-open__escudo { width: 3.25rem; height: 3.25rem; display: flex; align-items: center; justify-content: center; }
.lfc-cal-open__img { width: 3.25rem; height: 3.25rem; object-fit: contain; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.35)); }

.lfc-cal-open__sede { display: flex; flex-direction: column; gap: 0.125rem; min-width: 0; }
.lfc-cal-open__nombre { display: flex; align-items: center; gap: var(--lfc-space-15); }

.lfc .lfc-cal-open__nombre a {
	font-family: var(--lfc-fuente-titulos);
	font-weight: 700;
	font-style: italic;
	font-size: var(--lfc-titulo-lg);
	line-height: 1;
	text-transform: uppercase;
	color: var(--lfc-color-blanco);
	overflow-wrap: break-word;
}

.lfc .lfc-cal-open__nombre a:hover { color: var(--lfc-color-verde-claro); }

.lfc-cal-open__proximo {
	padding: 0.125rem 0.625rem;
	border-radius: var(--lfc-radius);
	background: var(--lfc-color-verde);
	font-family: var(--lfc-fuente-titulos);
	font-weight: 700;
	font-size: var(--lfc-text-sm);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.lfc-cal-open__lugar { font-size: var(--lfc-text-sm); color: rgba(255, 255, 255, 0.6); }
.lfc-bandera { display: block; width: 3.375rem; height: 2.25rem; border-radius: 0.25rem; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.5); }
.lfc-cal-open__plazas { text-align: right; font-family: var(--lfc-fuente-mono); font-size: var(--lfc-text-sm); color: rgba(255, 255, 255, 0.78); }

@media (max-width: 1080px) {
	.lfc-cal-open { grid-template-columns: 2.5rem 5.375rem 3rem minmax(0, 1fr) 3.375rem; }
	.lfc-cal-open__pastillas,
	.lfc-cal-open__plazas { grid-column: 4 / -1; text-align: left; }
}

@media (max-width: 720px) {
	.lfc-proximo { clip-path: none; border-radius: var(--lfc-radius); }
	.lfc-proximo__dentro { flex-direction: column; padding: var(--lfc-space-3) var(--lfc-space-25); }
	.lfc-proximo__lado { flex-direction: row; align-items: center; }
	.lfc-proximo__escudo { width: 4.5rem; height: 4.5rem; }
	.lfc-cal-mes__nombre { font-size: var(--lfc-titulo-lg); }
	.lfc-cal-open { grid-template-columns: 4.5rem minmax(0, 1fr) 2.5rem; gap: var(--lfc-space-15); padding: var(--lfc-space-15) 0.25rem; }
	.lfc-cal-open__num,
	.lfc-cal-open__escudo { display: none; }
	.lfc-hoja { width: 4.5rem; }
	.lfc-hoja__dias { font-size: 1.5rem; }
	.lfc-bandera { width: 2.25rem; height: 1.5rem; }
	.lfc .lfc-cal-open__nombre a { font-size: var(--lfc-titulo-xs); }
	.lfc-cal-open__pastillas,
	.lfc-cal-open__plazas { grid-column: 1 / -1; }
	.lfc-cal-pastilla { font-size: var(--lfc-text-xs); padding: 0.125rem 0.5rem; }
}

/* --- Móvil ------------------------------------------------------------------ */

@media (max-width: 960px) {
	.lfc-podio-fila {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--lfc-space-2);
	}

	.lfc-podio-fila__info {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		column-gap: var(--lfc-space-15);
	}

	.lfc-podio-fila__titulo { font-size: var(--lfc-titulo-lg); flex-basis: 100%; }
}

@media (max-width: 720px) {
	.lfc-podios__dentro { padding-left: var(--lfc-space-2); padding-right: var(--lfc-space-2); }

	.lfc-podio-fila__cartas {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.625rem;
	}

	.lfc-carta { --lfc-carta-alto: 10.5rem; --lfc-carta-num: 2.75rem; --lfc-carta-nombre: 1.25rem; }
	.lfc-carta--1 { --lfc-carta-alto: 12rem; --lfc-carta-num: 3.25rem; --lfc-carta-nombre: 1.375rem; }
	.lfc-carta--2 { --lfc-carta-alto: 12rem; --lfc-carta-num: 3.25rem; --lfc-carta-nombre: 1.375rem; }

	.lfc-carta__dentro { padding: 0.75rem 1rem var(--lfc-space-25) 1.125rem; }
	.lfc-carta__etiqueta { font-size: 0.625rem; padding: 0.125rem 0.375rem; }
	.lfc-carta__club { font-size: 0.5625rem; }
	.lfc-carta__escudo { width: 1.25rem; height: 1.25rem; }

	.lfc-podio-aparte { grid-column: 1 / -1; }

	.lfc-prueba-cartas { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.625rem; }
	.lfc-prueba-cartas .lfc-carta,
	.lfc-prueba-cartas .lfc-carta--1,
	.lfc-prueba-cartas .lfc-carta--2 { --lfc-carta-alto: 13rem; --lfc-carta-num: 3.5rem; --lfc-carta-nombre: 1.5rem; }
	.lfc-prueba-cartas .lfc-carta__dentro { padding: 0.75rem 1rem var(--lfc-space-25) 1.125rem; }
	.lfc-prueba-cartas .lfc-carta__etiqueta { font-size: 0.625rem; }
	.lfc-prueba-cartas .lfc-carta__club { font-size: 0.5625rem; }
	.lfc-prueba-cartas .lfc-carta__escudo { width: 1.25rem; height: 1.25rem; }
}

@media (max-width: 960px) {
	/* El final, en columna: semifinales, final y campeón uno debajo de otro. */
	.lfc-final { flex-direction: column; align-items: stretch; gap: var(--lfc-space-2); padding: var(--lfc-space-25); }
	.lfc-final__semis,
	.lfc-final__bloque--final { flex: none; padding-top: 0; }
	.lfc-final__llave,
	.lfc-final__linea { display: none; }
	.lfc-final__campeon { margin-top: 0; }
}
