/* SFL Partners & Next live — uses the child theme tokens (--sfl-*) with fallbacks. */

.sfl-live,
.sfl-pmap,
.sfl-plocs,
.sfl-pchips,
.sfl-pgrid,
.sfl-plogos {
	--sflp-navy: var(--sfl-navy, #10284A);
	--sflp-coral: var(--sfl-coral, #F2808C);
	--sflp-coral-h: var(--sfl-coral-h, #EA6E7C);
	--sflp-rose: var(--sfl-rose, #9E3442);
	--sflp-ice: var(--sfl-ice, #E8F2FB);
	--sflp-pink-l: var(--sfl-pink-l, #FDE8EB);
	--sflp-muted: var(--sfl-muted, #4E5A6E);
	--sflp-line: var(--sfl-line, #DCE8F4);
	--sflp-alt: var(--sfl-alt, #F4F8FC);
	--sflp-ondark: var(--sfl-ondark, #B9C6DA);
	--sflp-font-h: var(--sfl-font-h, "Sora", system-ui, sans-serif);
	--sflp-font: var(--sfl-font, "Manrope", system-ui, sans-serif);
	font-family: var(--sflp-font);
	box-sizing: border-box;
}
.sfl-live *, .sfl-pmap *, .sfl-pgrid *, .sfl-plocs *, .sfl-pchips *, .sfl-plogos * { box-sizing: border-box; }

/* ---------------------------------------------------------------------------
 * Next live banner (Figma 358:1220)
 * ------------------------------------------------------------------------- */
.sfl-live {
	background: var(--sflp-navy);
	color: #fff;
	padding: 40px 24px;
}
.sfl-live__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 40px;
}
.sfl-live__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 98px;
	min-height: 134px;
	padding: 14px 8px;
	border-radius: 14px;
	background: rgba(255, 255, 255, .07);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
	text-transform: uppercase;
	line-height: 1;
	text-align: center;
}
.sfl-live__dow { font: 700 13px/18px var(--sflp-font); letter-spacing: .12em; color: var(--sflp-coral); }
.sfl-live__day { font: 700 44px/48px var(--sflp-font-h); color: #fff; margin: 2px 0; }
.sfl-live__mon { font: 700 13px/18px var(--sflp-font); letter-spacing: .12em; color: var(--sflp-ondark); }
.sfl-live__time { font: 700 15px/20px var(--sflp-font); color: #fff; margin-top: 4px; }
.sfl-live__body { max-width: 640px; }
.sfl-live__eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 8px;
	font: 700 13px/20px var(--sflp-font);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--sflp-coral);
}
.sfl-live__dot { width: 9px; height: 9px; border-radius: 50%; background: currentColor; flex: none; }
.sfl-live.is-live .sfl-live__dot { animation: sfl-live-pulse 1.6s ease-in-out infinite; }
@keyframes sfl-live-pulse { 50% { box-shadow: 0 0 0 6px rgba(242, 128, 140, .25); } }
.sfl-live .sfl-live__title {
	margin: 0 0 12px;
	font: 700 32px/40px var(--sflp-font-h);
	letter-spacing: -.01em;
	color: #fff;
}
.sfl-live__text { margin: 0; font-size: 16px; line-height: 26px; color: var(--sflp-ondark); }
.sfl-live__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.sfl-live__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 12px 26px;
	border-radius: 999px;
	font: 700 16px/20px var(--sflp-font);
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.sfl-live .sfl-live__btn--primary { background: var(--sflp-coral); color: var(--sflp-navy); text-decoration: none; }
.sfl-live .sfl-live__btn--primary:hover, .sfl-live .sfl-live__btn--primary:focus-visible { background: var(--sflp-coral-h); color: var(--sflp-navy); }
/* Doubled class beats Elementor's `.elementor a { box-shadow: none }`. */
.sfl-live .sfl-live__btn--ondark { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .85); text-decoration: none; }
.sfl-live .sfl-live__btn--ondark:hover, .sfl-live .sfl-live__btn--ondark:focus-visible { background: rgba(255, 255, 255, .1); color: #fff; }
.sfl-live__btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.sfl-live__btn .sfl-ico { width: 18px; height: 18px; }
.sfl-live-placeholder { margin: 0; padding: 16px 24px; background: #FFF3D6; color: #10284A; font-size: 14px; text-align: center; }

@media (max-width: 1024px) {
	.sfl-live__inner { grid-template-columns: auto minmax(0, 1fr); gap: 24px 32px; }
	.sfl-live__actions { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 767px) {
	.sfl-live { padding: 32px 20px; }
	.sfl-live__inner { grid-template-columns: 1fr; gap: 20px; }
	.sfl-live__date {
		flex-direction: row;
		width: auto;
		min-height: 0;
		justify-self: start;
		gap: 8px;
		padding: 8px 14px;
		border-radius: 999px;
	}
	.sfl-live__day { font-size: 18px; line-height: 20px; margin: 0; }
	.sfl-live__time { margin: 0; }
	.sfl-live .sfl-live__title { font-size: 24px; line-height: 31px; }
	.sfl-live__text { font-size: 15px; line-height: 24px; }
	.sfl-live__actions { flex-direction: column; align-items: stretch; }
	.sfl-live__btn { width: 100%; white-space: normal; text-align: center; }
}

/* ---------------------------------------------------------------------------
 * Map card + pins (Figma 358:1552)
 * ------------------------------------------------------------------------- */
.sfl-pmap {
	position: relative;
	background: #fff;
	border-radius: 20px;
	padding: 32px;
	box-shadow: 0 16px 36px rgba(16, 40, 74, .08);
	overflow: hidden; /* Labels must stay inside the card. */
	width: 100%;
}
.sfl-pmap--sm { padding: 24px; max-width: 420px; margin-left: auto; margin-right: auto; }
.sfl-pmap__canvas { position: relative; width: 100%; aspect-ratio: 600 / 904; }
.sfl-pmap__base { display: block; width: 100%; height: 100%; object-fit: contain; }
.sfl-pmap__pins { list-style: none; margin: 0; padding: 0; }
.sfl-pmap__pin {
	position: absolute;
	width: 0;
	height: 0;
	margin: 0;
	transition: opacity .2s ease;
}
.sfl-pmap__dot {
	position: absolute;
	left: -9px;
	top: -9px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--sflp-coral);
	box-shadow: 0 0 0 3px #fff, 0 2px 6px rgba(16, 40, 74, .3);
}
.sfl-pmap__label {
	position: absolute;
	top: -13px;
	left: 16px;
	display: block;
	max-width: 220px;
	padding: 5px 10px;
	border-radius: 13px;
	background: #fff;
	box-shadow: 0 2px 10px rgba(16, 40, 74, .16);
	font: 500 12px/16px var(--sflp-font);
	color: var(--sflp-navy);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.sfl-pmap__label strong { font-weight: 700; }
.sfl-pmap__pin[data-side="left"] .sfl-pmap__label { left: auto; right: 16px; }
.sfl-pmap__pin[data-side="below"] .sfl-pmap__label { top: 14px; left: auto; right: -40px; }
.sfl-pmap--sm .sfl-pmap__label { font-size: 11px; line-height: 14px; padding: 4px 8px; }
.sfl-pmap__pin.is-dim { opacity: .2; }
.sfl-pmap__note { margin: 12px 0 0; font-size: 12px; color: #9E3442; text-align: center; }

/* ---------------------------------------------------------------------------
 * Location list + filter chips
 * ------------------------------------------------------------------------- */
.sfl-plocs { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sfl-plocs__row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 15px;
	line-height: 24px;
	color: var(--sflp-muted);
	transition: opacity .2s ease;
}
.sfl-plocs__row strong { color: var(--sflp-navy); font-weight: 700; }
.sfl-plocs__row .sfl-ico { width: 20px; height: 20px; margin-top: 2px; color: var(--sflp-navy); }
.sfl-plocs__row.is-dim { opacity: .35; }

.sfl-pchips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.sfl-pchip {
	appearance: none;
	border: 0;
	margin: 0;
	cursor: pointer;
	padding: 9px 16px;
	border-radius: 999px;
	background: #fff;
	box-shadow: inset 0 0 0 1.5px var(--sflp-line);
	font: 600 14px/19px var(--sflp-font);
	color: var(--sflp-navy);
	transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.sfl-pchip:hover { box-shadow: inset 0 0 0 1.5px var(--sflp-navy); background: #fff; color: var(--sflp-navy); }
.sfl-pchip[aria-pressed="true"] { background: var(--sflp-navy); color: #fff; box-shadow: none; }
.sfl-pchip:focus-visible { outline: 2px solid var(--sflp-navy); outline-offset: 2px; }

/* ---------------------------------------------------------------------------
 * Partner cards (Figma 358:1603)
 * ------------------------------------------------------------------------- */
.sfl-pgrid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px 24px;
}
.sfl-pcard {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 24px;
	background: #fff;
	border-radius: 16px;
	box-shadow: inset 0 0 0 1px var(--sflp-line);
}
.sfl-pcard[hidden] { display: none; }
.sfl-pcard__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	height: 96px;
	margin-bottom: 14px;
	padding: 12px 24px;
	border-radius: 12px;
	background: var(--sflp-alt);
}
.sfl-pcard__logo img, .sfl-plogo__img { display: block; max-width: 100%; max-height: 64px; width: auto; height: auto; object-fit: contain; }
.sfl-plogo__wordmark { font: 700 18px/1.2 var(--sflp-font-h); color: var(--sflp-navy); text-align: center; letter-spacing: -.01em; }
.sfl-pcard__label { margin: 0 0 12px; font: 700 12px/15px var(--sflp-font); letter-spacing: .1em; text-transform: uppercase; color: var(--sflp-rose); }
.sfl-pgrid .sfl-pcard__name { margin: 0 0 12px; font: 700 22px/28px var(--sflp-font-h); color: var(--sflp-navy); letter-spacing: -.01em; }
.sfl-pcard__where { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; font-size: 14px; line-height: 20px; color: var(--sflp-muted); }
.sfl-pcard__where .sfl-ico { width: 18px; height: 18px; color: var(--sflp-navy); }
.sfl-pcard__offer { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: 16px; }
.sfl-ppill {
	display: inline-block;
	margin: 0;
	padding: 8px 14px;
	border-radius: 999px;
	font: 600 13px/19px var(--sflp-font);
	color: var(--sflp-navy);
	text-decoration: none;
}
.sfl-ppill--offer { background: var(--sflp-pink-l); }
.sfl-ppill--locked { background: var(--sflp-ice); }
.sfl-pgrid a.sfl-ppill--locked:hover, a.sfl-ppill--locked:focus-visible { background: #d6e7f7; color: var(--sflp-navy); text-decoration: underline; }
.sfl-pcode {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	padding: 6px 6px 6px 14px;
	border-radius: 12px;
	background: var(--sflp-ice);
	box-shadow: inset 0 0 0 1.5px var(--sflp-navy);
}
.sfl-pcode__label { font: 700 11px/14px var(--sflp-font); letter-spacing: .1em; text-transform: uppercase; color: var(--sflp-muted); }
.sfl-pcode__value { font: 700 16px/20px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: var(--sflp-navy); background: none; padding: 0; letter-spacing: .04em; }
.sfl-pcode__copy {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 6px 12px;
	border: 0;
	border-radius: 8px;
	background: var(--sflp-navy);
	color: #fff;
	font: 700 13px/16px var(--sflp-font);
	cursor: pointer;
}
.sfl-pcode__copy:hover, .sfl-pcode__copy:focus-visible { background: #0B1D37; color: #fff; }
.sfl-pcode__copy .sfl-ico { width: 15px; height: 15px; }
.sfl-pcard__note { margin: 0; font-size: 13px; line-height: 19px; color: var(--sflp-muted); }
.sfl-pgrid .sfl-pcard__link { margin-top: auto; font: 700 14px/19px var(--sflp-font); color: var(--sflp-navy); text-decoration: none; }
.sfl-pgrid .sfl-pcard__link:hover, .sfl-pgrid .sfl-pcard__link:focus-visible { color: var(--sflp-navy); text-decoration: underline; }
.sfl-pgrid__empty { margin: 16px 0 0; color: var(--sflp-muted, #4E5A6E); }

@media (max-width: 1024px) {
	.sfl-pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 767px) {
	.sfl-pgrid { grid-template-columns: 1fr; gap: 16px; }
	.sfl-pmap { padding: 20px; border-radius: 16px; }
	.sfl-pmap__label { font-size: 11px; line-height: 14px; padding: 4px 8px; max-width: 170px; }
}

/* ---------------------------------------------------------------------------
 * Logo strip (Home "Club partners")
 * ------------------------------------------------------------------------- */
.sfl-plogos { list-style: none; margin: 8px 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.sfl-plogos__item {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 132px;
	height: 64px;
	padding: 10px 18px;
	border-radius: 12px;
	background: #fff;
	box-shadow: inset 0 0 0 1px var(--sflp-line);
}
.sfl-plogos__item img { max-height: 40px; max-width: 140px; }
.sfl-plogos .sfl-plogo__wordmark { font-size: 15px; }

/* ---------------------------------------------------------------------------
 * Elementor sections created by the setup screen
 * ------------------------------------------------------------------------- */
.sfl-next-live-section { padding: 0 !important; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.sfl-next-live-section > .elementor-widget-shortcode { width: 100%; }
.sfl-next-live-section .elementor-shortcode:empty { display: none; }
.sfl-next-live-section:not(:has(.sfl-live)):not(:has(.sfl-live-placeholder)) { display: none; }

.sfl-partners-become .elementor-heading-title { color: #fff; }
.sfl-partners-become .elementor-widget-text-editor { color: var(--sfl-ondark, #B9C6DA); }
.sfl-partners-smallprint { font-size: 12px; color: var(--sfl-muted, #4E5A6E); }
.sfl-partners-smallprint p { margin: 0; }
#partners { scroll-margin-top: calc(var(--sfl-header-light-h, 90px) + 24px); }
