/* ============================================================
   Clubforce Theme — Global Styles
   ============================================================ */

/*
 * Breakpoints (matching clubforce.com / Foundation CSS):
 *   Mobile only  : max-width: 39.9375em  (≤ 639px)
 *   Tablet+      : min-width: 40em       (≥ 640px)
 *   Desktop+     : min-width: 64em       (≥ 1024px)
 *   XL+          : min-width: 71.875em   (≥ 1150px)
 *   Wide         : max-width: 90rem      (1440px container)
 */

:root {
	--bp-tablet:  40em;       /* 640px  */
	--bp-desktop: 64em;       /* 1024px */
	--bp-xl:      71.875em;   /* 1150px */
	--container-wide: 90rem;  /* 1440px */
	--container-content: 1200px;

	/* Section vertical rhythm — desktop */
	--section-pad: 6.25rem 0;
	/* Overridden at smaller sizes via media queries below */

	/* ── Elementor global variables — keep in sync with brand ──────────────── */
	--e-global-color-primary:   #181075;
	--e-global-color-secondary: #2050ce;
	--e-global-color-text:      #1f2937;
	--e-global-color-accent:    #40ffd3;

	--e-global-typography-primary-font-family:   'Red Hat Display';
	--e-global-typography-primary-font-weight:   700;
	--e-global-typography-secondary-font-family: 'Red Hat Display';
	--e-global-typography-secondary-font-weight: 400;
	--e-global-typography-text-font-family:      'Red Hat Display';
	--e-global-typography-text-font-weight:      400;
	--e-global-typography-accent-font-family:    'Red Hat Display';
	--e-global-typography-accent-font-weight:    500;
}

/* ============================================================
   Hero banner background
   Apply "cf-hero-banner" to any Elementor section/container
   to use the standard hero background image.
   ============================================================ */
.cf-hero-banner {
	background-image: url('../images/hero-banner.jpg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: #ffffff;
}

.cf-hero-banner h1,
.cf-hero-banner h2,
.cf-hero-banner h3,
.cf-hero-banner h4,
.cf-hero-banner h5,
.cf-hero-banner h6,
.cf-hero-banner p,
.cf-hero-banner a,
.cf-hero-banner li,
.cf-hero-banner span {
	color: #ffffff;
}

/* ============================================================
   Elementor container helper
   Apply the CSS class "cf-container" to any Elementor container
   to constrain it to the site's content width (1200px).
   In Elementor: select the container → Advanced → CSS Classes → cf-container
   ============================================================ */
.cf-container {
	max-width: var(--container-content);
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

@media (min-width: 64em) {
	.cf-container {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

/* ============================================================
   cf-chevron-bottom — V-shaped section bottom edge
   Apply to an Elementor section/container via Advanced → CSS Classes.
   The section's background is clipped into a downward-pointing V.
   Extra padding-bottom is added automatically so content stays clear
   of the cut. Depth: 48px mobile → 80px desktop.
   ============================================================ */
.cf-chevron-bottom {
	clip-path: polygon(
		0 0,
		100% 0,
		100% calc(100% - 48px),
		50% 100%,
		0 calc(100% - 48px)
	);
	padding-bottom: 48px !important;
}

@media (min-width: 64em) {
	.cf-chevron-bottom {
		clip-path: polygon(
			0 0,
			100% 0,
			100% calc(100% - 80px),
			50% 100%,
			0 calc(100% - 80px)
		);
		padding-bottom: 80px !important;
	}
}

/* ============================================================
   cf-chevron-top — V-shaped section top edge
   Apply to an Elementor section/container via Advanced → CSS Classes.
   The section's background is clipped with an upward-pointing V at
   the top — visually cuts into the section from above.
   Extra padding-top is added automatically so content stays clear
   of the cut. Depth: 48px mobile → 80px desktop.
   ============================================================ */
.cf-chevron-top {
	clip-path: polygon(
		0 0,
		50% 48px,
		100% 0,
		100% 100%,
		0 100%
	);
	padding-top: 48px !important;
}

@media (min-width: 64em) {
	.cf-chevron-top {
		clip-path: polygon(
			0 0,
			50% 80px,
			100% 0,
			100% 100%,
			0 100%
		);
		padding-top: 80px !important;
	}
}

/* ============================================================
   Container
   ============================================================ */
.wide-container,
.wp-block-group.alignfull > .wp-block-group__inner-container,
.wp-block-cover.alignfull > .wp-block-cover__inner-container {
	max-width: var(--container-wide);
	margin-inline: auto;
	padding-inline: 1rem;
}

@media (min-width: 40em) {
	.wide-container,
	.wp-block-group.alignfull > .wp-block-group__inner-container,
	.wp-block-cover.alignfull > .wp-block-cover__inner-container {
		padding-inline: 1.5rem;
	}
}

@media (min-width: 64em) {
	.wide-container,
	.wp-block-group.alignfull > .wp-block-group__inner-container,
	.wp-block-cover.alignfull > .wp-block-cover__inner-container {
		padding-inline: 2rem;
	}
}

/* ============================================================
   Section spacing — matches clubforce.com wrapper-section scale
   ============================================================ */
.wp-block-group.is-layout-constrained,
.wp-block-group.is-layout-flow {
	padding-block: 6.25rem;
}

@media (max-width: 63.9375em) {
	.wp-block-group.is-layout-constrained,
	.wp-block-group.is-layout-flow {
		padding-block: 4rem;
		padding-inline: 1rem;
	}
}

@media (max-width: 39.9375em) {
	.wp-block-group.is-layout-constrained,
	.wp-block-group.is-layout-flow {
		padding-block: 2rem;
		padding-inline: 1rem;
	}
}

/* Don't apply section padding to structural elements */
.site-header .wp-block-group,
.site-header,
header.wp-block-template-part,
header.wp-block-template-part > .wp-block-group,
.site-footer .wp-block-group,
.site-footer,
footer.wp-block-template-part,
footer.wp-block-template-part > .wp-block-group,
.wp-block-query .wp-block-group,
.wp-block-post-template .wp-block-group,
main.wp-block-group {
	padding-block: 0;
	padding-inline: 0;
}

/* Page content area: no padding or block-gap margin so Elementor uses the full vertical space */
main.wp-block-group,
.wp-block-post-content {
	padding: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* ============================================================
   Columns — responsive stacking
   ============================================================ */

/* Stack columns on mobile */
@media (max-width: 39.9375em) {
	.wp-block-columns:not(.is-not-stacked-on-mobile) {
		flex-direction: column;
	}

	.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}
}

/* ============================================================
   Typography — fluid scale across breakpoints
   ============================================================ */
h2 {
	font-size: 2.3em;
}

/* Allow h1 and h2 to fill their container on mobile and tablet —
   overrides any max-width from WordPress constrained-layout or Elementor */
@media (max-width: 63.9375em) {
	h1, h2,
	.wp-block-heading,
	.elementor-widget-heading .elementor-heading-title {
		max-width: 100% !important;
		width: 100% !important;
		box-sizing: border-box;
	}
}

@media (max-width: 39.9375em) {
	h2 {
		font-size: 2.3em !important;
	}

	h3 {
		font-size: var(--wp--preset--font-size--2xl) !important;
	}
}

/* ============================================================
   Base */
*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img,
video {
	max-width: 100%;
	height: auto;
}

/* ============================================================
   Skip Link
   ============================================================ */
.skip-link {
	position: absolute;
	top: -40px;
	left: 0;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
	padding: 8px 16px;
	z-index: 9999;
	text-decoration: none;
	transition: top 0.2s;
}

.skip-link:focus {
	top: 0;
}

/* ============================================================
   Site Header
   ============================================================ */

/* The outer wp-block-template-part wrapper is what has scrollable space above it,
   so sticky must live here — not on the inner .site-header which is bounded by it. */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 1000;
}

.site-header {
	width: 100%;
}

/* Top utility bar */
.header-topbar {
	background: var(--wp--preset--color--lavender);
	margin-block-start: 0 !important;
	overflow: visible; /* must stay visible so lang-switcher dropdown extends below */
	max-height: 200px;
	transition: max-height 0.25s ease, padding-top 0.25s ease, padding-bottom 0.25s ease;
}

/* Collapse topbar when page is scrolled — JS adds this class */
.site-header.is-scrolled .header-topbar {
	overflow: hidden; /* clip content during/after collapse */
	max-height: 0;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.header-topbar .wp-block-navigation a {
	color: var(--wp--preset--color--navy);
	font-size: var(--wp--preset--font-size--xs);
	transition: color 0.15s;
}

.header-topbar .wp-block-navigation a:hover {
	color: var(--wp--preset--color--blue);
}

/* Main white bar */
.header-main {
	background: #ffffff;
	border-bottom: 1px solid var(--wp--preset--color--border);
	box-shadow: 0 1px 6px rgba(0, 0, 0, 0.07);
	position: relative; /* positioning context for all dropdowns */
}

/* Ensure the WP blocks wrapper never clips or offsets the sticky header */
.wp-site-blocks {
	overflow: visible !important;
	padding-top: 0 !important;
	padding-right: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 0 !important;
}

/* Kill any whitespace below the footer */
html, body {
	margin: 0;
	padding: 0;
}

.wp-site-blocks > :last-child,
footer.wp-block-template-part,
.site-footer {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Hide lavender topbar and demo button on mobile */
@media (max-width: 63.9375em) {
	.header-topbar {
		display: none !important;
	}

	/* Hide primary nav links — they live in the custom mobile overlay */
	.header-primary-nav {
		display: none !important;
	}

	/* Move demo button into mobile overlay instead */
	.header-demo-btn {
		display: none !important;
	}

	/* Show the custom burger; hide on desktop */
	.cf-burger {
		display: flex !important;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		padding: 0;
		background: none;
		border: none;
		cursor: pointer;
		color: var(--wp--preset--color--navy);
		flex-shrink: 0;
	}
}

@media (min-width: 64em) {
	.cf-burger {
		display: none !important;
	}
}

/* ── Mobile full-screen overlay ────────────────────────────────────────────── */
.cf-mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 99999;
	background: var(--wp--preset--color--navy);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	transform: translateX(100%);
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
	            visibility 0s linear 0.3s;
	visibility: hidden;
}

.cf-mobile-menu.is-open {
	transform: translateX(0);
	visibility: visible;
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
	            visibility 0s linear 0s;
}

body.cf-menu-open {
	overflow: hidden;
}

.cf-mobile-menu__inner {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: 0 1.5rem 2.5rem;
}

/* ── Overlay header: logo + close ── */
.cf-mobile-menu__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 0 1rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	margin-bottom: 0.5rem;
}

.cf-mobile-menu__logo {
	height: 32px;
	width: auto;
}

.cf-mobile-menu__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: rgba(255, 255, 255, 0.1);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	color: #ffffff;
	transition: background 0.15s;
	flex-shrink: 0;
}

.cf-mobile-menu__close:hover,
.cf-mobile-menu__close:focus-visible {
	background: rgba(255, 255, 255, 0.2);
	outline: none;
}

/* ── Primary nav list ── */
.cf-mobile-menu__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cf-mobile-menu__item {
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.cf-mobile-menu__row {
	display: flex;
	align-items: center;
}

.cf-mobile-menu__link {
	display: block;
	flex: 1;
	padding: 0.9rem 0;
	color: #ffffff !important;
	text-decoration: none !important;
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.3;
	transition: color 0.15s;
}

.cf-mobile-menu__link:hover,
.cf-mobile-menu__link:focus-visible {
	color: var(--wp--preset--color--cyan) !important;
	outline: none;
}

/* Sub-menu expand toggle */
.cf-mobile-menu__toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: none;
	border: none;
	cursor: pointer;
	color: rgba(255, 255, 255, 0.6);
	flex-shrink: 0;
	transition: transform 0.2s ease, color 0.15s;
}

.cf-mobile-menu__item.is-open > .cf-mobile-menu__row .cf-mobile-menu__toggle {
	transform: rotate(180deg);
	color: var(--wp--preset--color--cyan);
}

/* Sub-list (accordion) */
.cf-mobile-menu__sub-list {
	list-style: none;
	margin: 0;
	padding: 0 0 0.25rem 0.75rem;
	display: none;
}

.cf-mobile-menu__item.is-open > .cf-mobile-menu__sub-list {
	display: block;
}

.cf-mobile-menu__sub-link {
	display: block;
	padding: 0.6rem 0;
	color: rgba(255, 255, 255, 0.7) !important;
	text-decoration: none !important;
	font-size: 0.95rem;
	font-weight: 500;
	transition: color 0.15s;
}

.cf-mobile-menu__sub-link:hover {
	color: #ffffff !important;
}

/* ── Utility links at bottom ── */
.cf-mobile-menu__utility {
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
}

.cf-mobile-menu__utility-link {
	color: rgba(255, 255, 255, 0.6) !important;
	text-decoration: none !important;
	font-size: 0.875rem;
	font-weight: 500;
	transition: color 0.15s;
}

.cf-mobile-menu__utility-link:hover {
	color: #ffffff !important;
}

/* ── Language picker row ── */
.cf-mobile-menu__lang {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding-top: 1.25rem;
	margin-top: 1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.cf-mobile-menu__lang-opt {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.35rem 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 20px;
	color: rgba(255, 255, 255, 0.65) !important;
	text-decoration: none !important;
	font-size: 0.85rem;
	font-weight: 600;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.cf-mobile-menu__lang-opt:hover {
	background: rgba(255, 255, 255, 0.1);
	color: #ffffff !important;
	border-color: rgba(255, 255, 255, 0.45);
}

.cf-mobile-menu__lang-opt.is-active {
	background: rgba(255, 255, 255, 0.15);
	color: #ffffff !important;
	border-color: rgba(255, 255, 255, 0.4);
}

.cf-mobile-menu__lang-opt .lang-switcher__flag {
	line-height: 1;
}

/* ── Demo CTA in mobile overlay ── */
.cf-mobile-menu__demo {
	margin-top: auto;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.cf-mobile-menu__demo-btn {
	display: inline-flex;
	align-items: center;
	padding: 12px 20px;
	border-radius: 6px;
	background: var(--wp--preset--color--cyan, #40ffd3);
	color: var(--wp--preset--color--navy, #181075) !important;
	font-weight: 800;
	font-size: 0.9375rem;
	text-decoration: none !important;
	transition: background 0.15s;
}

.cf-mobile-menu__demo-btn:hover {
	background: #1ae8ba;
	color: var(--wp--preset--color--navy, #181075) !important;
}

/* Restore header inline padding on sub-desktop viewports (zeroed by the structural reset above) */
@media (max-width: 63.9375em) {
	.header-main {
		padding-inline: 1.5rem !important;
	}
}

/* Tighten header padding further on mobile */
@media (max-width: 39.9375em) {
	.site-header .wp-block-group[style*="padding"] {
		padding-top: var(--wp--preset--spacing--3) !important;
		padding-bottom: var(--wp--preset--spacing--3) !important;
	}

	.header-main {
		padding-inline: 1rem !important;
	}

	.wp-block-site-logo img {
		max-width: 120px;
	}
}

/* ============================================================
   Header Navigation — primary + utility (white header context)
   ============================================================ */

/* Spacing between top-level primary nav items */
.header-primary-nav .wp-block-navigation__container {
	gap: var(--wp--preset--spacing--5);
}

/* All nav links in the header are dark by default */
.site-header .wp-block-navigation a,
.header-primary-nav a,
.header-utility-nav a {
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	transition: color 0.15s;
}

/* Primary nav top-level links — prominent sizing */
.header-primary-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--md);
	font-weight: 800;
	color: var(--wp--preset--color--navy);
	letter-spacing: -0.01em;
}

.site-header .wp-block-navigation a:hover,
.header-primary-nav a:hover,
.header-utility-nav a:hover {
	color: var(--wp--preset--color--blue);
}

.site-header .wp-block-navigation .wp-block-navigation-item.current-menu-item > a {
	color: var(--wp--preset--color--blue);
	font-weight: 600;
}

/* Extend the hover zone downward on each top-level item so the mouse
   has a safe bridge to reach the dropdown without losing hover state */
.site-header .wp-block-navigation .wp-block-navigation-item.has-child::after {
	content: '';
	position: absolute;
	bottom: -20px;
	left: 0;
	right: 0;
	height: 20px;
}

/* Dropdown menus */
.site-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	box-shadow: 0 8px 32px rgba(24, 16, 117, 0.14);
	min-width: 200px;
	top: 100%;
	padding: 8px 0 6px;
}

/* Standard dropdown (non-mega): flex wrapper, centred on trigger */
.header-primary-nav .wp-block-navigation-item.has-child:not(.has-mega-menu) > .wp-block-navigation__submenu-container {
	left: 50%;
	right: auto;
	transform: translateX(-50%);
	width: max-content;
	max-width: 90vw;
	min-width: 280px;
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start;
	gap: 24px;
	padding: 16px;
	margin-top: 8px;
}

/* When a featured column is present, keep the panel white and paint
   the right portion lavender via a pseudo-element. This decouples the
   lavender zone from the featured column's margin, allowing a clear white
   gap between the regular columns and the lavender section. */
.header-primary-nav .wp-block-navigation-item.has-child:not(.has-mega-menu) > .wp-block-navigation__submenu-container:has(.submenu-featured) {
	background: #ffffff !important;
}

.header-primary-nav .wp-block-navigation-item.has-child:not(.has-mega-menu) > .wp-block-navigation__submenu-container:has(.submenu-featured)::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: calc(300px + 34px);
	background: var(--wp--preset--color--lavender);
	border-radius: 0 15px 15px 0;
	z-index: 0;
	pointer-events: none;
}

/* Regular items: CSS grid flowing max 3 per column.
   width: max-content is required so the flex parent can measure the grid's
   intrinsic size — without it, the background card won't expand to fit. */
.submenu-regular {
	display: grid;
	grid-template-rows: repeat(3, auto);
	grid-auto-flow: column;
	grid-auto-columns: 300px;
	width: max-content;
	row-gap: 2px;
	column-gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-shrink: 0;
}

/* Featured items: the panel ::after pseudo-element provides the lavender background */
.submenu-featured {
	display: flex !important;
	flex-direction: column !important;
	flex-shrink: 0;
	width: 300px;
	gap: 2px;
	list-style: none;
	margin: 0;
	padding: 0 0 0 16px;
	position: relative;
	z-index: 1;
}

.submenu-regular {
	position: relative;
	z-index: 1;
}

/* When a featured column is present and there are more than 6 regular items,
   expand to 4 rows so a third column is not created, keeping the panel narrower */
.wp-block-navigation__submenu-container:has( .submenu-featured ) .submenu-regular:has( > li:nth-child(7) ) {
	grid-template-rows: repeat( 4, auto );
}

.site-header .wp-block-navigation .wp-block-navigation__submenu-container a {
	color: var(--wp--preset--color--navy);
	display: block;
	padding: 9px 18px;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 400;
	border-radius: 6px;
}


.site-header .wp-block-navigation .wp-block-navigation__submenu-container a:hover {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--blue);
}

/* ============================================================
   Mega Menu
   ─────────────────────────────────────────────────────────────
   Usage (Appearance → Menus → Screen Options → CSS Classes):
     has-mega-menu          default 3-column grid
     has-mega-menu mega-menu-2col   force 2 columns
   ============================================================ */

/* Nav and container are static; regular has-child items stay relative so the
   dropdown and hover bridge position directly below the trigger with no gap */
.header-primary-nav.wp-block-navigation,
.header-primary-nav .wp-block-navigation__container,
.header-primary-nav .wp-block-navigation-item.has-mega-menu {
	position: static;
}

.header-primary-nav .wp-block-navigation-item.has-child:not(.has-mega-menu) {
	position: relative;
}

/* Active/open state — pill covers text + arrow together.
   Padding lives on the li so both sides are equal. */
.header-primary-nav .wp-block-navigation-item.has-child {
	border-radius: 8px;
	padding: 6px 12px;
	transition: background 0.15s;
}

.header-primary-nav .wp-block-navigation-item.has-child:hover {
	background: var(--wp--preset--color--lavender);
}

.header-primary-nav .wp-block-navigation-item.has-child > .wp-block-navigation-item__content {
	padding: 0 !important;
	border-radius: 0;
	background: transparent !important;
	transition: none;
}

.header-primary-nav .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-icon {
	padding: 0;
	margin-left: 4px;
}

/* Arrow rotation — down by default, up when submenu is open */
.header-primary-nav .wp-block-navigation-item.has-child .wp-block-navigation__submenu-icon svg {
	transition: transform 0.2s ease;
}

.header-primary-nav .wp-block-navigation-item.has-child:hover .wp-block-navigation__submenu-icon svg {
	transform: rotate(180deg);
}

/* ── Panel ── */
.header-primary-nav .wp-block-navigation-item.has-mega-menu > .wp-block-navigation__submenu-container {
	left: 0;
	right: 0;
	width: 100%;
	min-width: 0;
	top: 100%;
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--4);
	padding: var(--wp--preset--spacing--8);
	border-radius: 0 0 16px 16px;
	border-top: 3px solid var(--wp--preset--color--blue);
	box-shadow: 0 24px 56px rgba(24, 16, 117, 0.18);
}

/* 2-column variant */
.header-primary-nav .wp-block-navigation-item.has-mega-menu.mega-menu-2col > .wp-block-navigation__submenu-container {
	grid-template-columns: repeat(2, 1fr);
}

/* ── Column-heading items (no enhanced class, may have children) ── */
.header-primary-nav .wp-block-navigation-item.has-mega-menu > .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.menu-item--enhanced) > .wp-block-navigation-item__content {
	font-weight: 700;
	font-size: var(--wp--preset--font-size--xs);
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--wp--preset--color--blue) !important;
	padding: 0 0 var(--wp--preset--spacing--3) 0 !important;
	border-bottom: 1px solid var(--wp--preset--color--border);
	margin-bottom: var(--wp--preset--spacing--3);
	display: block;
	background: none;
	border-radius: 0;
}

.header-primary-nav .wp-block-navigation-item.has-mega-menu > .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.menu-item--enhanced) > .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--navy) !important;
	background: none;
}

/* Nested links under a column heading */
.header-primary-nav .wp-block-navigation-item.has-mega-menu .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
	position: static;
	background: none;
	border: none;
	box-shadow: none;
	padding: 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.header-primary-nav .wp-block-navigation-item.has-mega-menu .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 400;
	color: var(--wp--preset--color--navy);
	padding: 5px 8px !important;
	border-radius: 4px;
}

.header-primary-nav .wp-block-navigation-item.has-mega-menu .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--blue);
}

/* ── Enhanced items (icon + title + desc) used as grid cards ── */
.header-primary-nav .wp-block-navigation-item.has-mega-menu > .wp-block-navigation__submenu-container > .menu-item--enhanced {
	display: flex;
}

.header-primary-nav .wp-block-navigation-item.has-mega-menu > .wp-block-navigation__submenu-container > .menu-item--enhanced > .wp-block-navigation-item__content {
	display: flex !important;
	flex-direction: row;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--4) !important;
	padding: var(--wp--preset--spacing--5) !important;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	background: #ffffff;
	width: 100%;
	transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}

/* Icon only (no description) — centre the title against the icon */
.header-primary-nav .wp-block-navigation-item.has-mega-menu > .wp-block-navigation__submenu-container > .menu-item--enhanced > .wp-block-navigation-item__content:not(:has(.menu-item__desc)) {
	align-items: center;
}

.header-primary-nav .wp-block-navigation-item.has-mega-menu > .wp-block-navigation__submenu-container > .menu-item--enhanced > .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--blue);
	box-shadow: 0 4px 16px rgba(24, 16, 117, 0.1);
}

/* Larger icon inside mega menu cards */
.header-primary-nav .wp-block-navigation-item.has-mega-menu .menu-item__icon {
	width: 48px;
	height: 48px;
	border-radius: 10px;
	flex-shrink: 0;
}

.header-primary-nav .wp-block-navigation-item.has-mega-menu .menu-item__icon img {
	width: 26px;
	height: 26px;
}

/* Larger title inside mega menu cards */
.header-primary-nav .wp-block-navigation-item.has-mega-menu .menu-item__title {
	font-size: var(--wp--preset--font-size--md);
}

.header-primary-nav .wp-block-navigation-item.has-mega-menu .menu-item__desc {
	font-size: var(--wp--preset--font-size--sm);
	margin-top: 4px;
	white-space: normal;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Hide toggle arrows everywhere in mega menu */
.header-primary-nav .wp-block-navigation-item.has-mega-menu .wp-block-navigation__submenu-icon {
	display: none;
}

/* ============================================================
   Enhanced menu items — icon + title + description
   ============================================================ */

/* The link itself becomes a flex row */
.menu-item--enhanced > .wp-block-navigation-item__content {
	display: flex !important;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 12px !important;
	border-radius: 8px;
	background: transparent;
	transition: background 0.15s;
	text-decoration: none;
}

/* Icon only (no description) — centre the title against the icon */
.menu-item--enhanced > .wp-block-navigation-item__content:not(:has(.menu-item__desc)) {
	align-items: center;
}

.menu-item--enhanced > .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--surface) !important;
}

/* Icon box */
.menu-item__icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--lavender);
	border-radius: 8px;
	overflow: hidden;
}

.menu-item__icon img {
	width: 22px;
	height: 22px;
	object-fit: contain;
}

/* Text column */
.menu-item__text {
	display: flex;
	flex-direction: column;
	gap: 3px;
	flex: 1;
	min-width: 0;
}

.menu-item__title {
	font-weight: 600;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--navy);
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.menu-item__desc {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--muted);
	line-height: 1.4;
	white-space: normal;
}

/* When enhanced items appear in a standard dropdown (not mega menu),
   give the container more width to fit the layout */
.site-header .wp-block-navigation .wp-block-navigation__submenu-container:has(.menu-item--enhanced) {
	min-width: 280px;
}

/* ── Featured menu items ── */

/* In mega menus, featured items pin to the last column of the grid */
.header-primary-nav .wp-block-navigation-item.has-mega-menu > .wp-block-navigation__submenu-container .menu-item--featured {
	grid-column: -1 / span 1;
}

/* Featured items inherit the column's lavender background — just darken on hover */
.menu-item--featured > .wp-block-navigation-item__content {
	background: transparent !important;
	border-color: transparent !important;
}

.menu-item--featured > .wp-block-navigation-item__content:hover {
	background: rgba(0, 0, 0, 0.07) !important;
	border-color: transparent !important;
}

/* ============================================================
   Utility nav — Support / Login / Find My Club */
.header-utility-nav .wp-block-navigation__container {
	gap: 4px;
}

.header-utility-nav a,
.header-utility-nav .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--sm) !important;
	color: rgba(24, 16, 117, 0.7) !important;
	padding: 4px 10px !important;
	border-radius: 4px;
}

.header-utility-nav a:hover,
.header-utility-nav .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--navy) !important;
	background: var(--wp--preset--color--surface);
}

/* Icon support for utility nav top-level items */
.header-utility-nav .menu-item--enhanced .wp-block-navigation-item__content {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
}

.header-utility-nav .menu-item--enhanced .menu-item__icon {
	width: 16px;
	height: 16px;
	border-radius: 0;
	background: none;
	flex-shrink: 0;
	display: flex;
	align-items: center;
}

.header-utility-nav .menu-item--enhanced .menu-item__icon img {
	width: 16px;
	height: 16px;
}

.header-utility-nav .menu-item--enhanced .menu-item__text {
	display: inline;
}

.header-utility-nav .menu-item--enhanced .menu-item__title {
	font-size: inherit;
	font-weight: inherit;
}

/* "Request a demo" button */
.header-demo-btn .wp-block-button__link {
	white-space: nowrap;
	background-color: var(--wp--preset--color--cyan) !important;
	color: var(--wp--preset--color--navy) !important;
	font-weight: 800 !important;
}

.header-demo-btn .wp-block-button__link:hover {
	background-color: #1ae8ba !important;
	color: var(--wp--preset--color--navy) !important;
}

/* Mobile hamburger — navy on white header */
.site-header .wp-block-navigation__responsive-container-open,
.site-header .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--navy) !important;
}

/* Mobile overlay */
.site-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--navy);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open a {
	color: var(--wp--preset--color--white);
}

/* Footer navs — never collapse to a hamburger; always show items */
.site-footer .wp-block-navigation__responsive-container-open,
.site-footer .wp-block-navigation__responsive-container-close {
	display: none !important;
}

.site-footer .wp-block-navigation__responsive-container {
	display: block !important;
	position: static !important;
	overflow: visible !important;
	background: transparent !important;
	min-height: 0 !important;
	padding: 0 !important;
}

/* ============================================================
   Language Switcher
   ============================================================ */

/* ── Header variant: compact dropdown ── */
.lang-switcher--header {
	position: relative;
	display: inline-flex;
	align-items: center;
	border-left: 1px solid rgba(24, 16, 117, 0.2);
	padding-left: var(--wp--preset--spacing--4);
}

.lang-switcher__toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: none;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	color: rgba(24, 16, 117, 0.7);
	padding: 4px 10px;
	border-radius: 4px;
	transition: color 0.15s, background 0.15s;
}

.lang-switcher__toggle:hover,
.lang-switcher--header.is-open .lang-switcher__toggle {
	color: var(--wp--preset--color--navy);
	background: var(--wp--preset--color--surface);
}

.lang-switcher__chevron {
	transition: transform 0.2s;
}

.lang-switcher--header.is-open .lang-switcher__chevron {
	transform: rotate(180deg);
}

.lang-switcher__dropdown {
	display: none;
	position: absolute;
	top: calc(100% + 6px);
	right: 0;
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(24, 16, 117, 0.12);
	list-style: none;
	margin: 0;
	padding: 4px;
	min-width: 120px;
	z-index: 1100;
}

.lang-switcher--header.is-open .lang-switcher__dropdown {
	display: block;
}

.lang-switcher__dropdown a {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 6px 12px;
	font-size: var(--wp--preset--font-size--xs);
	font-family: var(--wp--preset--font-family--sans);
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	border-radius: 4px;
	transition: background 0.15s;
}

.lang-switcher__dropdown a:hover {
	background: var(--wp--preset--color--lavender);
}

.lang-switcher__flag {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
}

.lang-switcher__flag img {
	width: 16px;
	height: auto;
	border-radius: 2px;
	display: block;
}

.lang-switcher__toggle .lang-switcher__flag img {
	width: 14px;
}

/* ── Footer variant: flat inline links ── */
.lang-switcher--footer {
	display: flex;
	align-items: center;
	gap: 8px;
}

.lang-switcher--footer .lang-switcher__option {
	font-size: var(--wp--preset--font-size--xs);
	color: rgba(255, 255, 255, 0.55);
	text-decoration: none;
	transition: color 0.15s;
}

.lang-switcher--footer .lang-switcher__option:hover,
.lang-switcher--footer .lang-switcher__option.is-active {
	color: #ffffff;
}

/* ============================================================
   Footer
   ============================================================ */

/* Remove any gap WordPress injects between the two footer sections */
.site-footer {
	display: flex;
	flex-direction: column;
}

.site-footer > .wp-block-group {
	margin-block-start: 0 !important;
}

/* Gradient band */
.footer-main {
	background: linear-gradient(135deg, #191176 50%, #2050ce 100%);
}

/* Darker solid bottom bar */
.footer-bottom {
	background: #0f0b48;
}

/* Footer columns: stack on tablet and below */
@media (max-width: 63.9375em) {
	.footer-main .wp-block-columns {
		flex-direction: column;
	}

	.footer-main .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}

	.footer-logo {
		max-width: 130px;
	}
}

@media (max-width: 39.9375em) {
	.footer-main {
		padding-block: 2.5rem !important;
	}

	.footer-bottom .wp-block-group > .wp-block-group {
		flex-direction: column;
		gap: var(--wp--preset--spacing--3);
		text-align: center;
	}
}

/* All footer nav links white */
.site-footer .wp-block-navigation a {
	color: rgba(255, 255, 255, 0.8);
	text-decoration: none;
	transition: color 0.15s;
}

.site-footer .wp-block-navigation a:hover {
	color: var(--wp--preset--color--white);
}

/* ── Footer logo ── */
.footer-logo {
	display: block;
	max-width: 160px;
	height: auto;
}

/* ── ISO certification badge ── */
.footer-iso-wrap {
	margin-top: 1.75rem;
}

.footer-iso-label {
	font-size: var(--wp--preset--font-size--xs);
	color: rgba(255, 255, 255, 0.5);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	margin: 0 0 0.5rem;
}

.footer-iso-badge {
	display: block;
	width: 90px;
	height: auto;
}

/* ── Sitemap nav — sits inside a column, flows as a row of sub-columns ── */
.footer-sitemap-nav.wp-block-navigation {
	width: 100%;
}

.footer-sitemap-nav .wp-block-navigation__container {
	display: flex !important;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--6) var(--wp--preset--spacing--8) !important;
	align-items: flex-start;
	width: 100%;
}

.footer-sitemap-nav .wp-block-navigation-item {
	display: flex;
	flex-direction: column;
	min-width: 130px;
}

/* Column headings (top-level items) */
.footer-sitemap-nav .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-weight: 700;
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--white) !important;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	padding: 0 0 var(--wp--preset--spacing--2) 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
	margin-bottom: var(--wp--preset--spacing--2);
}

/* Sub-items */
.footer-sitemap-nav .wp-block-navigation__submenu-container {
	position: static !important;
	background: transparent !important;
	box-shadow: none !important;
	min-width: 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-direction: column;
	gap: 6px;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

.footer-sitemap-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--sm);
	color: rgba(255, 255, 255, 0.65) !important;
	padding: 0 !important;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	border: none;
	margin: 0;
}

.footer-sitemap-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--white) !important;
}

.footer-sitemap-nav .wp-block-navigation__submenu-icon {
	display: none;
}

/* ── Footer nav columns ─────────────────────────────────────────────────── */

.footer-nav-columns {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
}

.footer-col-heading {
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.5);
	margin: 0 0 0.75rem;
}

.footer-col-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-col-menu li {
	margin-bottom: 0.4rem;
}

.footer-col-menu a {
	color: rgba(255, 255, 255, 0.8);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--sm);
	transition: color 0.15s;
}

.footer-col-menu a:hover {
	color: #ffffff;
}

@media (max-width: 768px) {
	.footer-nav-columns {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.footer-nav-columns {
		grid-template-columns: 1fr;
	}
}

/* ── Social icons ── */
.footer-social-heading {
	margin-bottom: var(--wp--preset--spacing--3);
}

.footer-social.wp-block-social-links {
	display: flex;
	flex-wrap: nowrap;
	gap: 8px !important;
	padding: 0;
	list-style: none;
	margin: 0;
}

@media (max-width: 63.9375em) {
	.footer-social.wp-block-social-links {
		flex-wrap: wrap;
	}
}

.footer-social .wp-block-social-link {
	width: 30px;
	height: 30px;
	flex-shrink: 0;
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.12);
	transition: background 0.15s;
	display: flex;
	align-items: center;
	justify-content: center;
}

.footer-social .wp-block-social-link:hover {
	background: rgba(255, 255, 255, 0.25);
}

.footer-social .wp-block-social-link a {
	padding: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.footer-social .wp-block-social-link svg {
	width: 16px;
	height: 16px;
	fill: #ffffff;
}

/* ── Bottom bar nav ── */
.footer-bottom-nav .wp-block-navigation__container {
	gap: var(--wp--preset--spacing--5) !important;
}

.footer-bottom-nav a {
	color: rgba(255, 255, 255, 0.55) !important;
	font-size: var(--wp--preset--font-size--xs);
}

.footer-bottom-nav a:hover {
	color: var(--wp--preset--color--white) !important;
}

/* ============================================================
   Post Cards
   ============================================================ */
.post-card {
	overflow: hidden;
	transition: box-shadow 0.2s, transform 0.2s;
	background: var(--wp--preset--color--background);
}

.post-card:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
	transform: translateY(-2px);
}

.post-card .wp-block-post-title a {
	text-decoration: none;
	color: var(--wp--preset--color--navy);
}

.post-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--blue);
}

/* ============================================================
   Buttons
   ============================================================ */
.wp-element-button,
.wp-block-button__link {
	font-family: var(--wp--preset--font-family--sans) !important;
	border-radius: 6px !important;
	transition: background-color 0.15s, transform 0.1s;
	cursor: pointer;
}

.wp-element-button:hover,
.wp-block-button__link:hover {
	transform: translateY(-1px);
}

.wp-element-button:active,
.wp-block-button__link:active {
	transform: translateY(0);
}

/* ============================================================
   .demo-btn — cyan CTA button
   ============================================================ */
.demo-btn .wp-block-button__link,
a.demo-btn,
button.demo-btn {
	font-family: var(--wp--preset--font-family--sans) !important;
	background-color: var(--wp--preset--color--cyan) !important;
	color: var(--wp--preset--color--navy) !important;
	font-weight: 800 !important;
	border: 2px solid #40ffd3 !important;
	border-radius: 6px;
}

.demo-btn .wp-block-button__link:hover,
a.demo-btn:hover,
button.demo-btn:hover {
	background-color: #1ae8ba !important;
	color: var(--wp--preset--color--navy) !important;
}

/* ============================================================
   .secondary-btn — white outline button
   ============================================================ */
.secondary-btn .wp-block-button__link,
a.secondary-btn,
button.secondary-btn {
	font-family: var(--wp--preset--font-family--sans) !important;
	background-color: transparent !important;
	color: #ffffff !important;
	border: 2px solid #ffffff !important;
	border-radius: 6px;
	font-weight: 600 !important;
	transition: background-color 0.15s, color 0.15s;
}

.secondary-btn .wp-block-button__link:hover,
a.secondary-btn:hover,
button.secondary-btn:hover {
	background-color: #ffffff !important;
	color: var(--wp--preset--color--navy) !important;
}

/* ============================================================
   Pagination
   ============================================================ */
.wp-block-query-pagination {
	margin-top: var(--wp--preset--spacing--8);
}

.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination-numbers a,
.wp-block-query-pagination-previous a,
.wp-block-query-pagination-next a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 8px;
	border-radius: 6px;
	text-decoration: none;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	color: var(--wp--preset--color--foreground);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	transition: background 0.15s, color 0.15s;
}

.wp-block-query-pagination .page-numbers.current,
.wp-block-query-pagination-numbers .current {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--navy);
}

.wp-block-query-pagination .page-numbers:hover:not(.current),
.wp-block-query-pagination-numbers a:hover,
.wp-block-query-pagination-previous a:hover,
.wp-block-query-pagination-next a:hover {
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--blue);
}

/* ============================================================
   Search Form
   ============================================================ */
.wp-block-search__inside-wrapper {
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 8px;
	overflow: hidden;
}

.wp-block-search__input {
	border: none !important;
	padding: 12px 16px !important;
	font-family: var(--wp--preset--font-family--sans);
}

.wp-block-search__button {
	background: var(--wp--preset--color--navy) !important;
	color: var(--wp--preset--color--white) !important;
	border: none !important;
	padding: 12px 20px !important;
	font-weight: 600 !important;
	cursor: pointer;
	transition: background 0.15s;
}

.wp-block-search__button:hover {
	background: var(--wp--preset--color--blue) !important;
}

/* ============================================================
   Content Styles
   ============================================================ */
.wp-block-post-content {
	max-width: 100%;
}

.wp-block-post-content > * + * {
	margin-top: var(--wp--preset--spacing--5);
}

.wp-block-post-content blockquote,
.wp-block-quote {
	border-left: 4px solid var(--wp--preset--color--blue);
	padding-left: var(--wp--preset--spacing--5);
	margin-left: 0;
	font-style: italic;
	color: var(--wp--preset--color--muted);
}

.wp-block-post-content pre,
.wp-block-code {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
	padding: var(--wp--preset--spacing--4);
	overflow-x: auto;
	font-size: var(--wp--preset--font-size--sm);
}

.wp-block-post-content table {
	width: 100%;
	border-collapse: collapse;
}

.wp-block-post-content th,
.wp-block-post-content td {
	border: 1px solid var(--wp--preset--color--border);
	padding: var(--wp--preset--spacing--3) var(--wp--preset--spacing--4);
	text-align: left;
}

.wp-block-post-content th {
	background: var(--wp--preset--color--surface);
	font-weight: 600;
}

/* ============================================================
   Site Footer
   ============================================================ */
.site-footer .wp-block-navigation a {
	color: rgba(255, 255, 255, 0.75);
	font-size: var(--wp--preset--font-size--sm);
}

.site-footer .wp-block-navigation a:hover {
	color: var(--wp--preset--color--white);
}

/* ============================================================
   Elementor — font inheritance
   The Elementor Text Editor widget defaults to Roboto unless the
   global font is set in Site Settings. This rule ensures it always
   inherits the theme font without requiring per-widget overrides.
   ============================================================ */
.elementor-widget-text-editor {
	font-family: var(--wp--preset--font-family--sans);
}

/* ============================================================
   cf-checklist — icon bullet list helper
   Apply the CSS class "cf-checklist" to any Elementor Text Editor
   widget via Advanced → CSS Classes. Any <ul> inside the editor
   will use the teal check-circle icon as a bullet that scales
   automatically with the surrounding font size.
   ============================================================ */
.cf-checklist ul {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}

.cf-checklist ul li {
	display: flex;
	align-items: flex-start;
	gap: 0.55em;
	margin-bottom: 0.45em;
	padding-left: 0;
}

.cf-checklist ul li::before {
	content: '';
	flex-shrink: 0;
	display: block;
	width: 1.25em;
	height: 1.25em;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%2340ffd3'%3E%3Cpath d='m421-288 294-294-55-54-239 239-121-121-54 54 175 176Zm58.54 224q-85.18 0-161.02-33.02t-132.16-89.34q-56.32-56.32-89.34-132.29T64-480q0-86.27 33.08-162.15 33.08-75.88 89.68-132.47 56.61-56.59 132.22-88.99Q394.59-896 479.56-896q86.33 0 162.51 32.39 76.18 32.4 132.56 89Q831-718 863.5-641.96q32.5 76.04 32.5 162.5 0 85.46-32.39 160.8-32.4 75.34-88.99 131.92Q718.03-130.16 642-97.08 565.98-64 479.54-64Z'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	margin-top: 0.1em;
}

/* ── Landing page header contact info + CTA ──────────────────────────────── */

.landing-header-contact {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.2rem;
}


.landing-header-contact__item {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	font-size: var(--wp--preset--font-size--sm);
	text-decoration: none;
	transition: color 0.15s;
}

.landing-header-contact__icon {
	width: 0.9rem;
	height: 0.9rem;
	flex-shrink: 0;
}

.landing-header-contact__email {
	font-weight: 600;
	color: var(--wp--preset--color--navy);
}

.landing-header-contact__phone {
	color: var(--wp--preset--color--muted);
}

.landing-header-contact__item:hover {
	color: var(--wp--preset--color--blue);
}

/* ============================================================
   Utility
   ============================================================ */
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}
