/*
 * Cromo del sitio, calcado del mockup consolidado.
 *
 * Este archivo es una traducción literal de `assets/site.css` del mockup para
 * las partes que el mockup arma a mano y no salen del design system: la barra
 * superior, el encabezado con su menú, el pie y el directorio de clubes.
 *
 * Se escribe aparte, y no dentro de blocks.css, por una razón práctica: cuando
 * haya que volver a comparar contra el mockup, esto se lee al lado del original
 * y se ve si algo se desvió. Mezclado con el resto, esa comparación no se puede
 * hacer.
 *
 * Los nombres de clase son los del mockup (.brand, .nm, .submenu, .crow…) pero
 * viven bajo `.fgpc-mk`, que es el envoltorio que ponen los widgets. Sin ese
 * ámbito, `.nm` o `.link` chocarían con el tema y con el plugin viejo.
 */

/* ------------------------------------------------------------ contenedor -- */

.fgpc-mk .wrap { max-width: 1200px; margin: 0 auto; padding: 0 44px; }

/* -------------------------------------------------------------- topbar --- */

.fgpc-mk .topbar {
	border-bottom: 1px solid var(--fgpc-line);
	font-size: 12.5px;
	color: var(--fgpc-ink2);
	background: var(--fgpc-ivory);
}
.fgpc-mk .topbar .wrap { display: flex; justify-content: flex-end; align-items: center; height: 38px; }
/* El clima queda pegado a la izquierda y empuja las redes al otro extremo, sin
   tocar el `justify-content` que ya estaba: si el bloque no está, la barra se
   ve exactamente como antes. */
.fgpc-mk .topbar .fgpc-tiempo--compacto { margin-right: auto; }
.fgpc-mk .topbar .fgpc-tiempo__boton { color: var(--fgpc-ink2); padding-left: 0; }
@media (max-width: 560px) { .fgpc-mk .topbar .fgpc-tiempo__ciudad { display: none; } }
.fgpc-mk .topbar .social i { font-size: 15px; margin-left: 14px; color: var(--fgpc-pine); cursor: pointer; }
.fgpc-mk .topbar .social a { color: inherit; text-decoration: none; }
.fgpc-mk .topbar .social a:hover { opacity: .7; }

/* ------------------------------------------------------------ encabezado -- */

.fgpc-mk .fgpc-hd {
	border-bottom: 1px solid var(--fgpc-line);
	background: var(--fgpc-ivory);
	position: sticky;
	top: 0;
	z-index: 60;
}
.fgpc-mk .fgpc-hd .wrap { display: flex; align-items: center; justify-content: space-between; height: 92px; }

.fgpc-mk .brand { display: flex; align-items: center; gap: 13px; text-decoration: none; }
.fgpc-mk .brand .esc { width: 60px; height: 60px; flex: 0 0 auto; }
.fgpc-mk .brand .nm {
	font-weight: 800; font-size: 27px; line-height: 1;
	color: var(--fgpc-ink); letter-spacing: .01em; display: block;
}
.fgpc-mk .brand-tag {
	display: block; font-size: 10px; font-weight: 600; letter-spacing: .12em;
	text-transform: uppercase; color: var(--fgpc-ink2); margin-top: 2px; line-height: 1.2;
}

.fgpc-mk .navtoggle {
	display: none; background: none; border: 0; cursor: pointer;
	color: var(--fgpc-ink); padding: 6px; line-height: 0;
}
.fgpc-mk .navtoggle i { font-size: 30px; }

.fgpc-mk .fgpc-hd nav {
	display: flex; align-items: center; gap: 20px;
	font-size: 13px; font-weight: 500; color: var(--fgpc-ink);
}
.fgpc-mk nav .item { position: relative; }
.fgpc-mk nav .item > a {
	display: inline-flex; align-items: center; gap: 5px;
	padding: 34px 0; white-space: nowrap; transition: color .2s;
	color: inherit; text-decoration: none;
}
.fgpc-mk nav .item > a .ca { font-size: 14px; opacity: .55; transition: transform .25s; }
.fgpc-mk nav .item > a:hover { color: var(--fgpc-gold); }
.fgpc-mk nav .item.active > a { color: var(--fgpc-pine); }

.fgpc-mk .submenu {
	position: absolute; top: 82px; left: -18px; min-width: 248px;
	background: var(--fgpc-paper);
	border-top: 3px solid var(--fgpc-gold);
	box-shadow: 0 18px 40px rgba(22, 41, 31, .16);
	border-radius: 0 0 8px 8px;
	padding: 8px 0;
	opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: .22s; z-index: 70;
}
.fgpc-mk nav .item:hover .submenu,
.fgpc-mk nav .item:focus-within .submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.fgpc-mk nav .item:hover > a .ca,
.fgpc-mk nav .item:focus-within > a .ca { transform: rotate(180deg); }

.fgpc-mk .submenu a {
	display: flex; align-items: center; gap: 11px; padding: 11px 20px;
	font-size: 13.5px; color: var(--fgpc-ink); text-decoration: none;
	transition: background .18s, color .18s;
}
.fgpc-mk .submenu a i { font-size: 17px; color: var(--fgpc-gold); width: 18px; }
.fgpc-mk .submenu a:hover { background: var(--fgpc-ivory); color: var(--fgpc-pine); }
.fgpc-mk .submenu a.lock { color: var(--fgpc-danger); }
.fgpc-mk .submenu a.lock i { color: #B4453B; }

.fgpc-mk nav .cta {
	border: 1.5px solid var(--fgpc-ink); padding: 9px 17px; border-radius: 2px;
	font-size: 12.5px; letter-spacing: .07em; text-transform: uppercase;
	font-weight: 600; transition: .2s; color: inherit; text-decoration: none;
}
.fgpc-mk nav .cta:hover { background: var(--fgpc-ink); color: #fff; }

@media (max-width: 1180px) {
	.fgpc-mk .fgpc-hd nav { gap: 15px; }
	.fgpc-mk .brand .nm { font-size: 24px; }
	.fgpc-mk .brand .esc { width: 54px; height: 54px; }
}

@media (max-width: 1040px) {
	.fgpc-mk .fgpc-hd .wrap { height: 72px; }
	.fgpc-mk .navtoggle { display: block; }
	.fgpc-mk .fgpc-hd nav {
		position: absolute; top: 72px; left: 0; right: 0;
		flex-direction: column; align-items: stretch; gap: 0;
		background: var(--fgpc-ivory);
		border-bottom: 1px solid var(--fgpc-line);
		box-shadow: 0 20px 34px rgba(22, 41, 31, .12);
		padding: 6px 0 12px;
		max-height: calc(100vh - 72px); overflow: auto;
		display: none;
	}
	.fgpc-mk .fgpc-hd.open nav { display: flex; }
	.fgpc-mk nav .item > a { padding: 14px 24px; justify-content: space-between; font-size: 15px; }
	.fgpc-mk .submenu {
		position: static; opacity: 1; visibility: visible; transform: none;
		box-shadow: none; border: 0; border-radius: 0; padding: 0 0 6px;
		min-width: 0; display: none; background: transparent;
	}
	.fgpc-mk nav .item.open .submenu { display: block; }
	.fgpc-mk .submenu a { padding: 10px 24px 10px 36px; }
	.fgpc-mk nav .cta { margin: 10px 24px 4px; text-align: center; }
}

/* ------------------------------------------------------------------ pie -- */

.fgpc-mk .fgpc-ft { background: var(--fgpc-pine-d); color: #B7C4BC; padding: 28px 0 16px; }
.fgpc-mk .fgpc-ft .fcols { display: grid; grid-template-columns: 2fr 1.4fr; gap: 36px; margin-bottom: 18px; }
.fgpc-mk .fgpc-ft .brand .nm { color: #fff; }
.fgpc-mk .fgpc-ft .brand-tag { color: #9DACA3; }
.fgpc-mk .fgpc-ft .esc { background: rgba(255, 255, 255, .9); border-radius: 50%; padding: 3px; }
.fgpc-mk .fgpc-ft p { font-size: 13px; line-height: 1.6; margin-top: 10px; max-width: 300px; color: #9DACA3; }
.fgpc-mk .fgpc-ft h4 {
	color: #fff; font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
	margin: 0 0 10px; font-weight: 600;
}
.fgpc-mk .fgpc-ft .ct { font-size: 13.5px; line-height: 1.8; color: #9DACA3; }
.fgpc-mk .fgpc-ft .ct i { color: var(--fgpc-gold); width: 18px; display: inline-block; }
.fgpc-mk .fgpc-ft .ct a { color: inherit; text-decoration: none; }
.fgpc-mk .fgpc-ft .ct a:hover { color: var(--fgpc-gold); }
.fgpc-mk .fgpc-ft .soc { display: flex; gap: 15px; font-size: 19px; color: var(--fgpc-gold); margin-top: 12px; }
.fgpc-mk .fgpc-ft .soc a { color: inherit; text-decoration: none; }
.fgpc-mk .fgpc-ft .soc a:hover { opacity: .7; }
.fgpc-mk .fgpc-ft .copy {
	border-top: 1px solid rgba(255, 255, 255, .12); padding-top: 20px;
	font-size: 12.5px; color: #7C8B82; letter-spacing: .03em;
	display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px;
}
/* Crédito de desarrollo: una línea aparte, más tenue que el copyright. */
.fgpc-mk .fgpc-ft .credito {
	margin-top: 10px; text-align: right;
	font-size: 12px; color: #63736A; letter-spacing: .03em;
}
.fgpc-mk .fgpc-ft .credito a {
	color: #93A69B; text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, .18); padding-bottom: 1px;
	transition: color .15s ease, border-color .15s ease;
}
.fgpc-mk .fgpc-ft .credito a:hover,
.fgpc-mk .fgpc-ft .credito a:focus-visible { color: #FFF; border-bottom-color: rgba(255, 255, 255, .5); }

@media (max-width: 820px) { .fgpc-mk .fgpc-ft .fcols { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .fgpc-mk .fgpc-ft .credito { text-align: left; } }

/* ----------------------------------------------- directorio de clubes ---- */

.fgpc-mk .dir-filters {
	display: flex; justify-content: space-between; align-items: center;
	gap: 16px; flex-wrap: wrap; margin-bottom: 20px;
}
.fgpc-mk .cat-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.fgpc-mk .cbtn {
	font-size: 12.5px; font-weight: 600; padding: 8px 15px;
	border: 1px solid var(--fgpc-line); border-radius: 30px;
	color: var(--fgpc-ink2); background: var(--fgpc-paper);
	cursor: pointer; transition: .2s; font-family: inherit;
}
.fgpc-mk .cbtn.on { background: var(--fgpc-pine); color: #fff; border-color: var(--fgpc-pine); }

.fgpc-mk .dir-search { position: relative; min-width: 240px; }
.fgpc-mk .dir-search input {
	width: 100%; padding: 11px 14px 11px 38px;
	border: 1px solid var(--fgpc-line); border-radius: 30px;
	font-size: 14px; font-family: inherit; background: var(--fgpc-paper);
	color: var(--fgpc-ink);
}
.fgpc-mk .dir-search input:focus { outline: none; border-color: var(--fgpc-gold); }
.fgpc-mk .dir-search i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--fgpc-ink2); }

/*
 * Dos columnas. Es la diferencia más visible con la versión anterior, que
 * apilaba los 41 clubes en una sola: la lista medía dos pantallas y media.
 */
.fgpc-mk .club-rows { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; }
@media (max-width: 760px) { .fgpc-mk .club-rows { grid-template-columns: 1fr; } }

.fgpc-mk .crow {
	display: grid; grid-template-columns: 1fr auto; align-items: center;
	gap: 16px; padding: 18px 4px; border-bottom: 1px solid var(--fgpc-line);
}
.fgpc-mk .crow .nm { font-weight: 700; font-size: 16px; color: var(--fgpc-ink); }
.fgpc-mk .crow .ci { font-size: 13px; color: var(--fgpc-ink2); display: flex; align-items: center; gap: 6px; }
.fgpc-mk .crow .ci i { color: var(--fgpc-gold); }
.fgpc-mk .crow-contact { display: flex; gap: 14px; margin-top: 5px; flex-wrap: wrap; }
.fgpc-mk .crow-contact .cc {
	font-size: 11.5px; font-weight: 400; color: var(--fgpc-ink2);
	display: flex; align-items: center; gap: 4px; text-decoration: none;
}
.fgpc-mk .crow-contact a.cc:hover { color: var(--fgpc-pine); }
.fgpc-mk .crow-contact i { color: var(--fgpc-gold); font-size: 13px; }
.fgpc-mk a.ci-loc { color: var(--fgpc-ink2); text-decoration: none; display: flex; align-items: center; gap: 6px; }
.fgpc-mk a.ci-loc:hover { color: var(--fgpc-pine); }
.fgpc-mk a.ci-loc i { color: var(--fgpc-gold); }

.fgpc-mk .link {
	font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
	display: inline-flex; align-items: center; gap: 8px;
	border-bottom: 1.5px solid var(--fgpc-gold); padding-bottom: 4px;
	color: var(--fgpc-ink); cursor: pointer; text-decoration: none;
}
.fgpc-mk .link i { transition: transform .3s; }
.fgpc-mk .link:hover i { transform: translateX(5px); }

.fgpc-mk .dir-vacio { color: var(--fgpc-ink2); font-size: 14px; padding: 18px 4px; }

/* ------------------------------------------------- cabecera de página ---- */

.fgpc-mk .page-hero {
	position: relative; min-height: 340px; display: flex; align-items: flex-end;
	overflow: hidden; background: var(--fgpc-pine-d);
}
.fgpc-mk .page-hero::before {
	content: ""; position: absolute; inset: 0;
	background-size: cover; background-position: center; transform: scale(1.05); z-index: 0;
}
.fgpc-mk .page-hero::after {
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(rgba(22, 41, 31, .35), rgba(15, 26, 20, .82));
}
.fgpc-mk .page-hero .wrap { position: relative; z-index: 2; padding-top: 120px; padding-bottom: 46px; }
.fgpc-mk .page-hero .crumb {
	font-size: 12px; letter-spacing: .08em; text-transform: uppercase;
	color: #C7D2CC; margin-bottom: 16px;
}
.fgpc-mk .page-hero .crumb a { color: inherit; text-decoration: none; }
.fgpc-mk .page-hero .crumb a:hover { color: #fff; }
.fgpc-mk .page-hero .eyebrow {
	font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
	color: #E1C98A; display: inline-flex; align-items: center; margin-bottom: 14px;
}
.fgpc-mk .page-hero .eyebrow .r {
	display: inline-block; width: 30px; height: 1.5px; background: currentColor; margin-right: 12px;
}
.fgpc-mk .page-hero h1,
.fgpc-mk .page-hero h2 {
	color: #fff; font-size: 46px; font-weight: 800; letter-spacing: -.02em;
	line-height: 1.1; margin: 0;
}
.fgpc-mk .page-hero p { color: #E6ECE8; font-size: 17px; max-width: 640px; margin: 14px 0 0; }

@media (max-width: 760px) {
	.fgpc-mk .page-hero h1,
	.fgpc-mk .page-hero h2 { font-size: 32px; }
	.fgpc-mk .page-hero .wrap { padding-top: 96px; padding-bottom: 34px; }
}

/* ------------------------------------------------------ índice lateral --- */

.fgpc-mk .side { position: sticky; top: 112px; }
.fgpc-mk .side .side-t {
	font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
	color: var(--fgpc-ink2); font-weight: 600; margin-bottom: 14px;
}
.fgpc-mk .side a {
	display: flex; align-items: center; gap: 10px; padding: 10px 12px;
	font-size: 13.5px; color: var(--fgpc-ink2);
	border-left: 2px solid var(--fgpc-line); transition: .2s; text-decoration: none;
}
.fgpc-mk .side a i { font-size: 17px; color: var(--fgpc-gold); }
.fgpc-mk .side a:hover { color: var(--fgpc-pine); background: var(--fgpc-paper); }
.fgpc-mk .side a.on {
	color: var(--fgpc-pine); font-weight: 600;
	border-left-color: var(--fgpc-gold); background: var(--fgpc-paper);
}

/* ------------------------------------ maquetas de página con columna ----- */

/*
 * La sección que contiene el índice lateral se convierte en la grilla de
 * 250px + resto del mockup.
 *
 * Se selecciona por `:has()` y no por una clase propia porque Elementor no
 * imprime las clases personalizadas de las secciones: quedan guardadas en
 * `_css_classes`, se leen en el dato, y no llegan al HTML. Buscar el índice
 * dentro de la sección es la única marca que sí está en la página.
 *
 * El ancho de la columna es fijo y no un porcentaje: con porcentajes el índice
 * se angosta en las resoluciones intermedias y los títulos de dos palabras se
 * parten.
 */
.elementor-section:has(> .elementor-container aside.side) > .elementor-container {
	display: grid !important;
	grid-template-columns: 250px 1fr;
	gap: 52px;
	align-items: start;
}
.elementor-section:has(> .elementor-container aside.side) > .elementor-container > .elementor-column {
	width: auto !important;
	max-width: none;
}

/*
 * Los bloques de una página larga. Cada bloque empieza con una sección interna
 * que lleva ancla; las secciones de continuación no la llevan. El filete va
 * arriba de cada bloque que tenga otro antes, así no queda una línea suelta al
 * final de la columna.
 */
.elementor-section:has(aside.side) .elementor-inner-section[id] { scroll-margin-top: 110px; }
.elementor-section:has(aside.side) .elementor-inner-section[id] ~ .elementor-inner-section[id] {
	padding-top: 52px;
	margin-top: 52px;
	border-top: 1px solid var(--fgpc-line);
}

@media (max-width: 920px) {
	.elementor-section:has(> .elementor-container aside.side) > .elementor-container {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.elementor-section:has(> .elementor-container aside.side) > .elementor-container > .elementor-column:first-child {
		display: none;
	}
}

/* --------------------------------------------------- ancho de contenido -- */

/*
 * El ancho de contenido —1112px, que es el `.wrap` de 1200 del mockup menos sus
 * 44 de margen a cada lado— se fija en los Ajustes del sitio de Elementor, no
 * acá: es donde alguien lo va a buscar si quiere cambiarlo.
 *
 * Lo que sí va acá es el respiro lateral cuando la ventana es más angosta que
 * el contenido. Sin esto, entre 1112 y 1200 el texto queda pegado al borde.
 */
@media (max-width: 1199px) {
	.elementor-section-boxed > .elementor-container {
		padding-left: 24px;
		padding-right: 24px;
	}
}

/*
 * Las columnas de Elementor traen 10px de relleno propio. En la maqueta con
 * índice eso se come 20 de los 250 de la columna lateral y el índice queda
 * angosto respecto del original.
 */
.elementor-section:has(> .elementor-container aside.side) > .elementor-container > .elementor-column > .elementor-widget-wrap {
	padding: 0;
}

/* El club sin sitio propio: mismo lugar que el «Ver», en gris y sin subrayado. */
.fgpc-mk .crow-sinweb { font-size: 13px; color: var(--fgpc-ink2); }

/* ------------------------------------------- categorías y rankings ------- */

/*
 * Los tres bloques del widget de competencias: categorías, Top y ranking. El
 * separador va acá y no en el CSS de secciones porque los tres viven dentro de
 * un mismo widget: comparten la categoría elegida y partirlos en tres widgets
 * habría obligado a sincronizarlos por JavaScript entre elementos hermanos.
 */
.fgpc-mk .mkblock { scroll-margin-top: 110px; }
.fgpc-mk .mkblock + .mkblock {
	padding-top: 52px;
	margin-top: 52px;
	border-top: 1px solid var(--fgpc-line);
}

.fgpc-mk .eyebrow {
	font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
	color: var(--fgpc-gold); display: inline-flex; align-items: center;
}
.fgpc-mk .eyebrow .r {
	display: inline-block; width: 30px; height: 1.5px;
	background: currentColor; margin-right: 12px;
}
.fgpc-mk .mkblock > .eyebrow { margin-bottom: 12px; }
.fgpc-mk .mk-h2 {
	font-size: 30px; font-weight: 800; letter-spacing: -.015em; line-height: 1.1;
	color: var(--fgpc-ink); margin: 0 0 16px;
}
.fgpc-mk .dyn-label {
	color: var(--fgpc-gold); font-weight: 500; font-size: .68em;
	vertical-align: middle; margin-left: 10px;
}

.fgpc-mk .cat-section-hd {
	font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
	color: var(--fgpc-pine); margin: 16px 0 10px; padding-bottom: 6px;
	border-bottom: 1px solid var(--fgpc-line);
}
.fgpc-mk .cat-section-hd:first-of-type { margin-top: 0; }
.fgpc-mk .cat-group { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.fgpc-mk .cat-group:last-child { margin-bottom: 0; }
.fgpc-mk .cats { display: flex; flex-wrap: wrap; gap: 6px; }
.fgpc-mk .cat-card {
	background: var(--fgpc-paper); border: 1px solid var(--fgpc-line); border-radius: 20px;
	padding: 6px 14px; display: inline-flex; align-items: center; gap: 5px;
	cursor: pointer; font-family: inherit; color: inherit;
	transition: border-color .15s, background .15s, color .15s;
}
.fgpc-mk .cat-card i { font-size: 14px; color: var(--fgpc-gold); }
.fgpc-mk .cat-card .t { font-size: 13px; font-weight: 500; }
.fgpc-mk .cat-card:hover { border-color: var(--fgpc-pine); color: var(--fgpc-pine); }
.fgpc-mk .cat-card:hover i { color: var(--fgpc-pine); }
.fgpc-mk .cat-card.active { background: var(--fgpc-pine); border-color: var(--fgpc-pine); color: #fff; }
.fgpc-mk .cat-card.active i { color: rgba(255, 255, 255, .85); }

.fgpc-mk .rank-panel { display: none; }
.fgpc-mk .rank-panel.on { display: block; }
.fgpc-mk .cat-desc { font-size: 14.5px; color: var(--fgpc-ink2); margin: 0 0 16px; max-width: 66ch; }
.fgpc-mk .rank-vacio { font-size: 14px; color: var(--fgpc-ink2); margin: 0; }

.fgpc-mk .inner-tabs { display: flex; gap: 0; border-bottom: 2px solid var(--fgpc-line); margin-bottom: 16px; }
.fgpc-mk .inner-tab {
	padding: 8px 18px; font-size: 13px; font-weight: 600; cursor: pointer;
	border: 0; border-bottom: 3px solid transparent; background: none;
	color: var(--fgpc-ink2); margin-bottom: -2px; font-family: inherit; transition: .2s;
}
.fgpc-mk .inner-tab.on { color: var(--fgpc-pine); border-bottom-color: var(--fgpc-pine); }
.fgpc-mk .inner-sub { display: none; }
.fgpc-mk .inner-sub.on { display: block; }

/* Top 5: el podio se lee por el color de la fila, no por el número. */
.fgpc-mk .lrow {
	display: flex; align-items: center; gap: 12px; padding: 9px 12px;
	border-radius: 8px; margin-bottom: 4px; background: var(--fgpc-paper);
}
.fgpc-mk .lrow.top1 { background: var(--fgpc-gold); color: #fff; }
.fgpc-mk .lrow.top2 { background: rgba(180, 180, 180, .18); }
.fgpc-mk .lrow.top3 { background: rgba(180, 120, 60, .1); }
.fgpc-mk .lnum {
	font-size: 18px; font-weight: 800; width: 28px; text-align: center; flex-shrink: 0;
	font-family: var(--fgpc-font-display, "Playfair Display", Georgia, serif); color: var(--fgpc-pine);
}
.fgpc-mk .lrow.top1 .lnum { color: #fff; }
.fgpc-mk .lbody { flex: 1; min-width: 0; }
.fgpc-mk .lname { font-weight: 600; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fgpc-mk .lclub { font-size: 11.5px; color: var(--fgpc-ink2); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fgpc-mk .lrow.top1 .lclub { color: rgba(255, 255, 255, .8); }
.fgpc-mk .lpts { font-size: 13px; font-weight: 700; flex-shrink: 0; color: var(--fgpc-pine); }
.fgpc-mk .lrow.top1 .lpts { color: #fff; }

/* Tabla de ranking. El scroll propio no está en el mockup: se agrega porque
   cuatro columnas no entran en un teléfono y la alternativa es achicar la
   letra hasta que no se lea. */
.fgpc-mk .tbl-scroll { overflow-x: auto; }
.fgpc-mk .tbl {
	width: 100%; border-collapse: collapse; font-size: 14px;
	background: var(--fgpc-paper); border: 1px solid var(--fgpc-line);
	border-radius: 10px; overflow: hidden;
}
.fgpc-mk .tbl th {
	background: var(--fgpc-pine); color: #fff; text-align: left; padding: 13px 16px;
	font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600;
}
.fgpc-mk .tbl td { padding: 12px 16px; border-top: 1px solid var(--fgpc-line); }
.fgpc-mk .tbl tr:nth-child(2n) td { background: #FBFAF5; }
.fgpc-mk .tbl .pos {
	font-family: var(--fgpc-font-display, "Playfair Display", Georgia, serif);
	font-weight: 700; color: var(--fgpc-gold);
}
.fgpc-mk .rank-titulo { margin: 26px 0 10px; font-size: 1.05rem; font-weight: 700; }
.fgpc-mk .rank-titulo:first-child { margin-top: 0; }

/* --------------------------------------------- rankings por zona (Regional) */

/* El rótulo de grupo («Circuito Regional 2026 · Caballeros») y el de zona
   («Zona Oeste»), medidos del mockup. Los márgenes de estos dos son los que
   separan las seis tablas apiladas; las tablas no llevan margen propio. */
.fgpc-mk .zgrp {
	font-size: 11px; font-weight: 700; text-transform: uppercase;
	letter-spacing: .07em; color: var(--fgpc-ink2); margin: 22px 0 4px;
}
.fgpc-mk .zgrp:first-child { margin-top: 0; }
.fgpc-mk .zhd {
	font-size: 12px; font-weight: 700; color: var(--fgpc-pine);
	margin: 14px 0 6px; display: flex; align-items: center; gap: 6px;
}
.fgpc-mk .zhd i { color: var(--fgpc-gold); font-size: 14px; }

/* Grilla de líderes por zona: el Top del Regional. */
.fgpc-mk .top10-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 4px; }
.fgpc-mk .top10-col h4 {
	font-size: 13px; font-weight: 700; text-transform: uppercase;
	letter-spacing: .07em; color: var(--fgpc-ink2); margin: 0 0 12px;
	display: flex; align-items: center; gap: 6px;
}
@media (max-width: 700px) { .fgpc-mk .top10-grid { grid-template-columns: 1fr; } }
