/* ==========================================================================
   GIAC — Header & navigation (every page)
   Consolidates: Customizer "Additional CSS", WPCode 136 [Desktop] Navigation,
   162 [Mobile] Navigation, 2173 (style part). Dead rules removed (the old
   menu-item-127 "More" id, the Contact page-id hack, commented-out blocks) and
   fragile auto-generated selectors replaced with stable ones.

   Mobile burger sits LEFT, logo centered — set in Customizer > Header builder,
   and locked in below with a 3-column grid so it can't drift.
   ========================================================================== */

/* ---------- 1. Shared header chrome ---------- */

.header {
	box-shadow: var(--giac-shadow-sm) !important;
}

/* ---------- 2. Desktop menu + Join / Account buttons ---------- */

ul#nv-primary-navigation-main li:not(:last-child) {
	padding-top: 10px;
	transition: all 300ms ease-in-out;
}

ul#nv-primary-navigation-main li a:not(:last-child) {
	transition: all 300ms ease-in-out;
}

#nv-primary-navigation-main :is(.join-btn, .account-btn) {
	display: flex !important;
	align-items: center !important;
}

ul#nv-primary-navigation-main li:is(.join-btn, .account-btn) {
	padding-top: 0 !important;
	align-items: center !important;
}

#nv-primary-navigation-main :is(.join-btn, .account-btn) a {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	position: relative;
	top: 2px; /* optical match to text links */
	box-sizing: border-box !important;
	height: auto !important;
	min-height: 0 !important;
	min-width: 118px !important;
	padding: 14px 18px !important;
	background: #fff !important;
	color: #b20906 !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	letter-spacing: 2px !important;
	text-transform: uppercase !important;
	border: 1px solid #d9c5b2 !important;
	border-radius: 8px !important;
	transition: all 300ms ease-in-out;
}

#nv-primary-navigation-main :is(.join-btn, .account-btn) a:hover {
	border: 1px solid #7b2d38 !important;
}

ul#nv-primary-navigation-main li.join-btn {
	margin-right: 0 !important;
}

ul#nv-primary-navigation-main li.account-btn {
	margin-left: 0 !important;
}

/* ---------- 3. Desktop dropdown ("More") ---------- */

@media (min-width: 960px) {
	nav[data-show-on="desktop"] .nav-menu-primary .menu-item-has-children > .sub-menu {
		left: 50%;
		right: auto;
		min-width: 220px;
		margin-top: 12px;
		padding: 10px;
		overflow: hidden;
		background: rgba(250, 250, 248, 0.98);
		border: 1px solid rgba(217, 197, 178, 0.8);
		border-radius: 16px;
		box-shadow: var(--giac-shadow-lg);
		transform: translate(-50%, 8px);
		transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease;
	}

	nav[data-show-on="desktop"] .nav-menu-primary .menu-item-has-children > .sub-menu.dropdown-open,
	nav[data-show-on="desktop"] .nav-menu-primary .menu-item-has-children:hover > .sub-menu,
	nav[data-show-on="desktop"] .nav-menu-primary .menu-item-has-children:focus-within > .sub-menu {
		transform: translate(-50%, 0);
	}

	nav[data-show-on="desktop"] #nv-primary-navigation-main .sub-menu > li.menu-item {
		margin: 0;
		padding: 0;
		border-bottom: 1px solid rgba(44, 48, 46, 0.11);
	}

	nav[data-show-on="desktop"] #nv-primary-navigation-main .sub-menu > li.menu-item:last-child {
		border-bottom: 0;
	}

	nav[data-show-on="desktop"] .nav-menu-primary .sub-menu > li.menu-item > .wrap {
		min-height: 0;
		margin: 0;
		padding: 0;
	}

	nav[data-show-on="desktop"] .nav-menu-primary .sub-menu > li > .wrap > a {
		display: flex;
		align-items: center;
		width: 100%;
		min-height: 48px;
		margin: 0;
		padding: 0 14px;
		color: var(--giac-maroon-light);
		border-radius: 10px;
		font-family: var(--giac-sans);
		font-size: 13px;
		font-weight: 500;
		letter-spacing: 1.1px;
		line-height: 1.2;
		text-transform: uppercase;
		transition: background-color 160ms ease, color 160ms ease;
	}

	nav[data-show-on="desktop"] .nav-menu-primary .sub-menu > li > .wrap > a::after {
		content: "→";
		margin-left: auto;
		opacity: 0.42;
		transform: translateX(-3px);
		transition: opacity 160ms ease, transform 160ms ease;
	}

	nav[data-show-on="desktop"] .nav-menu-primary .sub-menu > li > .wrap > a:hover,
	nav[data-show-on="desktop"] .nav-menu-primary .sub-menu > li > .wrap > a:focus {
		background: rgba(140, 36, 36, 0.08);
		color: #6f1c1c;
	}

	nav[data-show-on="desktop"] .nav-menu-primary .sub-menu > li > .wrap > a:hover::after,
	nav[data-show-on="desktop"] .nav-menu-primary .sub-menu > li > .wrap > a:focus::after {
		opacity: 1;
		transform: translateX(0);
	}

	#header-grid #nv-primary-navigation-main .sub-menu {
		transition: opacity 0.22s ease, visibility 0.22s ease, transform 0.22s var(--giac-ease);
	}
}

/* ---------- 4. Mobile header row: burger left, logo dead-center ---------- */

.navbar-toggle {
	border-color: #d9c5b2 !important;
}

#header-grid nav[data-show-on="mobile"] .navbar-toggle .bars {
	color: #d9c5b2 !important;
}

@media (max-width: 959px) {
	#header-grid nav[data-show-on="mobile"] .row--wrapper {
		display: grid !important;
		grid-template-columns: 1fr auto 1fr;
		align-items: center;
	}

	#header-grid nav[data-show-on="mobile"] .hfg-slot.left {
		grid-column: 1;
		grid-row: 1;
		justify-self: start;
		justify-content: flex-start !important;
	}

	#header-grid nav[data-show-on="mobile"] .hfg-slot.center {
		grid-column: 2;
		grid-row: 1;
		justify-self: center;
		justify-content: center !important;
	}

	#header-grid nav[data-show-on="mobile"] .hfg-slot.right {
		grid-column: 3;
		grid-row: 1;
		justify-self: end;
	}

	/* Burger goes left even if the Customizer still has it in the right slot
	   (so the live site can switch over before the header builder is touched). */
	#header-grid nav[data-show-on="mobile"] .hfg-slot:has(.builder-item--nav-icon) {
		grid-column: 1;
		justify-self: start;
		justify-content: flex-start !important;
	}

	#header-grid nav[data-show-on="mobile"] .hfg-slot.left:not(:has(.builder-item--nav-icon)) {
		grid-column: 3;
		justify-self: end;
	}
}

/* ---------- 5. Mobile burger panel: drops down under the header ---------- */

@media (max-width: 959px) {
	#header-grid #header-menu-sidebar a,
	#header-grid #header-menu-sidebar button,
	#header-grid .navbar-toggle {
		-webkit-tap-highlight-color: transparent !important;
	}

	#header-grid #header-menu-sidebar a:focus:not(:focus-visible),
	#header-grid #header-menu-sidebar button:focus:not(:focus-visible),
	#header-grid .navbar-toggle:focus:not(:focus-visible) {
		outline: none !important;
		box-shadow: none !important;
	}

	/* #header-grid is transformed, so these fixed boxes position against the
	   header bar: 100% = just below it. */
	#header-grid .header-menu-sidebar-overlay {
		top: 100% !important;
		bottom: auto !important;
		height: 100vh !important;
		height: 100dvh !important;
		background: rgba(44, 48, 46, 0.22) !important;
		-webkit-backdrop-filter: blur(2px) !important;
		backdrop-filter: blur(2px) !important;
	}

	#header-grid #header-menu-sidebar {
		top: calc(100% + 8px) !important;
		left: 12px !important;
		bottom: auto;
		width: calc(100% - 24px) !important;
		height: auto;
		max-height: calc(100dvh - 140px) !important;
		overflow: hidden;
		border-radius: 24px;
		box-shadow: var(--giac-shadow-lg);
		opacity: 0;
		transform: translateY(-12px) !important;
		clip-path: inset(0 0 100% 0 round 24px);
		transition: transform 0.4s var(--giac-ease), opacity 0.25s ease, clip-path 0.4s var(--giac-ease), visibility 0s linear 0.4s !important;
	}

	body.is-menu-sidebar #header-grid #header-menu-sidebar {
		opacity: 1;
		transform: none !important;
		clip-path: inset(0 0 0 0 round 24px);
		transition: transform 0.4s var(--giac-ease), opacity 0.2s ease, clip-path 0.45s var(--giac-ease), visibility 0s !important;
	}

	#header-grid #header-menu-sidebar-bg {
		display: flex;
		flex-direction: column;
		width: 100%;
		height: auto;
		max-height: calc(100dvh - 140px) !important;
		overflow-y: auto;
		background: #fafaf8;
		border: 1px solid rgba(217, 197, 178, 0.8);
		border-radius: 24px;
	}

	/* The burger in the bar becomes the close button (animates into an X). */
	#header-grid #header-menu-sidebar .close-sidebar-panel {
		display: none !important;
	}

	#header-grid #header-menu-sidebar-inner {
		width: 100%;
		height: auto;
		overflow: visible;
		padding: 12px 18px 18px !important;
	}

	#header-grid .header--row .navbar-toggle .icon-bar {
		transition: transform 0.3s var(--giac-ease), opacity 0.2s ease;
	}

	body.is-menu-sidebar #header-grid .header--row .navbar-toggle .icon-bar:nth-child(1) { transform: rotate(45deg); }
	body.is-menu-sidebar #header-grid .header--row .navbar-toggle .icon-bar:nth-child(2) { opacity: 0; }
	body.is-menu-sidebar #header-grid .header--row .navbar-toggle .icon-bar:nth-child(3) { transform: rotate(-45deg); }

	/* Menu list */
	#header-menu-sidebar .nav-menu-primary,
	#header-menu-sidebar .nav-ul {
		width: 100%;
		margin: 0;
	}

	#header-menu-sidebar .nav-ul > li {
		width: 100%;
		margin: 0;
		padding: 0;
		border-bottom: 1px solid rgba(44, 48, 46, 0.14);
	}

	#header-menu-sidebar .nav-ul > li > .wrap {
		display: flex;
		align-items: center;
		width: 100%;
	}

	#header-menu-sidebar .nav-ul > li > .wrap > a {
		flex: 1;
		align-items: center;
		min-height: 68px;
		margin: 0;
		padding: 0 14px;
		color: var(--giac-maroon-light);
		font-family: var(--giac-sans);
		font-size: 17px;
		font-weight: 500;
		letter-spacing: 1.5px;
		line-height: 1.2;
		text-transform: uppercase;
	}

	#header-grid #header-menu-sidebar .current-menu-item > .wrap > a,
	#header-grid #header-menu-sidebar .current_page_item > .wrap > a,
	#header-grid #header-menu-sidebar a[aria-current="page"] {
		color: var(--giac-orange);
	}

	#header-menu-sidebar .menu-item-has-children > .wrap > .caret-wrap {
		width: 48px;
		height: 68px;
		margin: 0 !important;
		padding: 0 14px;
		color: var(--giac-maroon-light);
		border: 0;
		background: transparent;
	}

	#header-menu-sidebar .sub-menu {
		margin: 0 14px 12px;
		padding: 0;
	}

	#header-menu-sidebar .sub-menu li {
		border-top: 1px solid rgba(44, 48, 46, 0.1);
	}

	#header-menu-sidebar .sub-menu a {
		display: flex;
		align-items: center;
		min-height: 48px;
		padding: 0 8px;
		color: #2c302e;
		font-size: 14px;
		letter-spacing: 1px;
	}

	/* Join (primary) then Account (secondary) */
	#header-grid #nv-primary-navigation-sidebar > :is(.join-btn, .account-btn) {
		width: 100%;
		margin: 0;
		padding: 0;
		border: 0;
	}

	#header-grid #nv-primary-navigation-sidebar > .join-btn { margin-top: 18px; }
	#header-grid #nv-primary-navigation-sidebar > .account-btn { margin-top: 10px; }

	#header-grid #nv-primary-navigation-sidebar > :is(.join-btn, .account-btn) > .wrap {
		width: 100%;
		padding: 0;
	}

	#header-grid #nv-primary-navigation-sidebar > :is(.join-btn, .account-btn) > .wrap > a {
		display: flex;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
		width: 100%;
		min-height: 54px;
		margin: 0;
		padding: 14px 24px;
		border: 1px solid transparent;
		border-radius: 999px;
		font-size: 14px;
		font-weight: 500;
		line-height: 1.4;
		letter-spacing: 1.7px;
		text-transform: uppercase;
		text-decoration: none;
		transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
	}

	#header-grid #nv-primary-navigation-sidebar > .join-btn > .wrap > a {
		background: #761d24;
		color: #fffaf4;
		border-color: #761d24;
		box-shadow: var(--giac-shadow-maroon);
	}

	/* Drawn arrow (not a text glyph) so it sits on the text's centre line */
	#header-grid #nv-primary-navigation-sidebar > .join-btn > .wrap > a::after {
		content: "";
		display: inline-block;
		flex: 0 0 auto;
		width: 18px;
		height: 12px;
		margin-left: 12px;
		background: currentColor;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 6h15.5M11.5 1l5 5-5 5'/%3E%3C/svg%3E") center / contain no-repeat;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 6h15.5M11.5 1l5 5-5 5'/%3E%3C/svg%3E") center / contain no-repeat;
		transition: transform 0.2s ease;
	}

	#header-grid #nv-primary-navigation-sidebar > .account-btn > .wrap > a {
		background: #f5f0e8;
		color: #6c2528;
		border-color: #d3bda1;
		box-shadow: none;
	}

	#header-grid #nv-primary-navigation-sidebar > :is(.join-btn, .account-btn) > .wrap > a:focus-visible {
		outline: 2px solid #a57c37;
		outline-offset: 4px;
	}

	#header-grid #nv-primary-navigation-sidebar > :is(.join-btn, .account-btn) > .wrap > a:active {
		transform: scale(0.985);
	}
}

@media (max-width: 959px) and (hover: hover) {
	#header-grid #nv-primary-navigation-sidebar > .join-btn > .wrap > a:hover { background: #5e141b; border-color: #5e141b; box-shadow: var(--giac-shadow-maroon), 0 16px 16px rgba(92, 17, 25, 0.05); }
	#header-grid #nv-primary-navigation-sidebar > .join-btn > .wrap > a:hover::after { transform: translateX(3px); }
	#header-grid #nv-primary-navigation-sidebar > .account-btn > .wrap > a:hover { background: #ece2d4; border-color: #b89769; color: #551b20; }
}

@media (max-width: 959px) and (prefers-reduced-motion: reduce) {
	#header-grid #header-menu-sidebar,
	body.is-menu-sidebar #header-grid #header-menu-sidebar {
		transition: opacity 0.2s ease, visibility 0s !important;
		transform: none !important;
		clip-path: none;
	}

	#header-grid #nv-primary-navigation-sidebar > :is(.join-btn, .account-btn) > .wrap > a,
	#header-grid #nv-primary-navigation-sidebar > .join-btn > .wrap > a::after {
		transition: none;
		transform: none;
	}
}

/* ---------- 6. Smooth sub-menus inside the burger panel (header.js) ---------- */

#header-grid .header-menu-sidebar .sub-menu.giac-smooth-submenu {
	display: block !important;
	height: 0;
	min-height: 0;
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	transition: height 0.3s var(--giac-ease), opacity 0.22s ease, visibility 0s linear 0.3s;
}

#header-grid .header-menu-sidebar .sub-menu.giac-smooth-submenu.dropdown-open {
	height: var(--giac-submenu-height, 0px);
	opacity: 1;
	visibility: visible;
	transition: height 0.3s var(--giac-ease), opacity 0.22s ease, visibility 0s;
}

@media (prefers-reduced-motion: reduce) {
	#header-grid .header-menu-sidebar .sub-menu.giac-smooth-submenu,
	#header-grid #nv-primary-navigation-main .sub-menu {
		transition: none;
	}
}

/* ---------- 7. Desktop burger panel (Cherry pages, before the nav docks) ----------
   Fills the hero's copy column; rows get thumbnail + serif title + tagline. */

#header-menu-sidebar .giac-row__thumb,
#header-menu-sidebar .giac-row__sub,
#header-menu-sidebar .giac-row__arrow,
#header-menu-sidebar .giac-panel-tag {
	display: none;
}

#header-menu-sidebar .giac-row__text,
#header-menu-sidebar .giac-row__title {
	display: inline;
}

@media (min-width: 960px) {
	.header-menu-sidebar-overlay {
		background: transparent !important;
		-webkit-backdrop-filter: none !important;
		backdrop-filter: none !important;
	}

	#header-grid #header-menu-sidebar {
		top: var(--giac-panel-top, 24px) !important;
		left: var(--giac-panel-left, 24px) !important;
		bottom: auto !important;
		width: var(--giac-panel-width, calc(50vw - 48px)) !important;
		max-width: none !important;
		height: var(--giac-panel-height, calc(100vh - 48px)) !important;
		max-height: none !important;
		margin: 0 !important;
		overflow: hidden;
		border-radius: 18px !important;
		box-shadow: var(--giac-shadow-lg) !important;
	}

	#header-grid #header-menu-sidebar,
	#header-grid #header-menu-sidebar-bg {
		background: #fbf9f6 !important;
		border: 0 !important;
	}

	#header-grid #header-menu-sidebar-bg {
		position: relative;
		display: flex !important;
		flex-direction: column !important;
		width: 100%;
		height: 100% !important;
		max-height: none !important;
		overflow-y: auto !important;
		border-radius: 18px !important;
	}

	/* Close button floats top-right */
	#header-grid #header-menu-sidebar .close-sidebar-panel {
		position: absolute !important;
		top: 18px !important;
		right: 18px !important;
		z-index: 2;
		display: flex;
		justify-content: flex-end;
		width: auto !important;
		height: auto !important;
		min-height: 0 !important;
		padding: 0 !important;
	}

	#header-menu-sidebar .close-sidebar-panel .navbar-toggle {
		width: 40px;
		height: 40px;
		padding: 11px;
		background: #fff;
		color: #2c302e;
		border: 1px solid #d9c5b2;
		border-radius: 12px;
	}

	#header-grid #header-menu-sidebar-inner {
		display: flex !important;
		flex: 1 1 auto !important;
		flex-direction: column !important;
		box-sizing: border-box;
		width: 100% !important;
		padding: 64px 36px 24px !important;
	}

	#header-grid #header-menu-sidebar-inner > .builder-item,
	#header-grid #header-menu-sidebar-inner .item--inner,
	#header-grid #header-menu-sidebar-inner .nv-nav-wrap,
	#header-grid #header-menu-sidebar-inner .nav-menu-primary {
		display: flex !important;
		flex: 1 1 auto;
		flex-direction: column;
		width: 100%;
		margin: 0 !important;
		padding: 0 !important;
	}

	/* Links on top, Join + Account side by side at the bottom */
	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar {
		display: grid !important;
		flex: 1 1 auto;
		grid-template-columns: 1.15fr 1fr;
		grid-template-rows: repeat(var(--giac-nav-rows, 5), auto) 1fr;
		column-gap: 14px;
		width: 100%;
		margin: 0 !important;
		padding: 0 !important;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > li {
		grid-column: 1 / -1;
		width: 100%;
		margin: 0;
		padding: 0;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > li > .wrap {
		display: flex;
		align-items: center;
		width: 100%;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > li.giac-row {
		border-bottom: 1px solid rgba(44, 48, 46, 0.1) !important;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > li.giac-row--more {
		border-bottom: 0 !important;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > li.giac-row > .wrap > a {
		display: flex !important;
		flex: 1 1 auto;
		align-items: center;
		gap: 24px;
		min-height: 0 !important;
		padding: clamp(8px, 1.5vh, 16px) 0 !important;
		color: #6e1a22 !important;
		font-weight: 400 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		transition: background-color 0.2s ease;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > li.giac-row.menu-item-has-children > .wrap > .caret-wrap {
		display: none !important;
	}

	#header-menu-sidebar .giac-row__thumb {
		display: grid;
		flex: 0 0 auto;
		grid-auto-flow: column;
		place-items: center;
		gap: 4px;
		width: clamp(52px, 7.5vh, 72px);
		height: clamp(52px, 7.5vh, 72px);
		border-radius: 12px;
		background: #f1e9e1 center / cover no-repeat;
		box-shadow: var(--giac-shadow-xs);
		transition: transform 0.3s var(--giac-ease);
	}

	#header-menu-sidebar .giac-row--more .giac-row__thumb {
		display: flex;
		justify-content: center;
		align-items: center;
		box-shadow: none;
	}

	#header-menu-sidebar .giac-row__thumb i {
		width: 4px;
		height: 4px;
		border-radius: 50%;
		background: var(--giac-maroon-light);
	}

	#header-menu-sidebar .giac-row__text {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		gap: 8px;
		min-width: 0;
	}

	#header-menu-sidebar .giac-row__title {
		display: block;
		font-family: var(--giac-serif-semi);
		font-size: clamp(20px, 3vh, 26px);
		line-height: 1;
		letter-spacing: 3px;
		text-transform: uppercase;
	}

	#header-menu-sidebar .giac-row__sub {
		display: block;
		font-family: var(--giac-sans);
		font-size: 11px;
		font-weight: 500;
		line-height: 1.3;
		letter-spacing: 3.5px;
		text-transform: uppercase;
		color: #6f6a64;
	}

	#header-menu-sidebar .giac-row__arrow {
		display: block;
		flex: 0 0 auto;
		margin-right: 18px;
		color: #6f6a64;
		transition: transform 0.3s var(--giac-ease), color 0.2s ease;
	}

	#header-menu-sidebar .giac-row--gym .giac-row__title { color: #6e1a22; }
	#header-menu-sidebar .giac-row--tennis .giac-row__title { color: #55621f; }
	#header-menu-sidebar .giac-row--pickleball .giac-row__title { color: #c0561f; }
	#header-menu-sidebar .giac-row--pilates .giac-row__title { color: #7b3a30; }
	#header-menu-sidebar .giac-row--more .giac-row__title { color: #3b2a2a; }

	#header-menu-sidebar li.giac-row > .wrap > a:hover .giac-row__arrow { transform: translateX(4px); color: #6e1a22; }
	#header-menu-sidebar li.giac-row > .wrap > a:hover .giac-row__thumb { transform: scale(1.04); }
	#header-menu-sidebar li.giac-row--more > .wrap > a:hover .giac-row__arrow { transform: none; }
	#header-menu-sidebar li.giac-row--more:has(> .sub-menu.dropdown-open) .giac-row__arrow { transform: rotate(90deg); }

	#header-menu-sidebar li.giac-row:is(.current-menu-item, .current_page_item) .giac-row__thumb {
		box-shadow: 0 0 0 2px #fbf9f6, 0 0 0 3px #b89769;
	}

	#header-grid #header-menu-sidebar .current-menu-item > .wrap > a,
	#header-grid #header-menu-sidebar .current_page_item > .wrap > a,
	#header-grid #header-menu-sidebar a[aria-current="page"] {
		font-weight: 600;
	}

	/* "More" sub-menu lines up with the row titles */
	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar .giac-row--more .sub-menu {
		left: auto !important;
		width: auto !important;
		margin: 0 0 0 calc(clamp(52px, 7.5vh, 72px) + 24px) !important;
		padding: 0;
		transform: none !important;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar .giac-row--more .sub-menu.dropdown-open {
		margin-bottom: 10px !important;
	}

	#header-menu-sidebar .sub-menu li {
		border-top: 1px solid rgba(44, 48, 46, 0.1);
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar .giac-row--more .sub-menu a {
		display: flex;
		align-items: center;
		min-height: 44px !important;
		padding: 0 !important;
		font-size: 12px !important;
		letter-spacing: 3px !important;
		color: #3b2a2a !important;
	}

	/* Join the Club + Account, side by side */
	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > :is(.join-btn, .account-btn) {
		grid-column: auto;
		grid-row: -2 / -1;
		align-self: end;
		width: 100%;
		margin: 20px 0 0 !important;
		padding: 0;
		border: 0 !important;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > :is(.join-btn, .account-btn) > .wrap {
		width: 100%;
		padding: 0;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > :is(.join-btn, .account-btn) > .wrap > a {
		display: flex;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
		width: 100%;
		min-height: 58px;
		margin: 0;
		padding: 12px 18px !important;
		border: 1px solid transparent;
		border-radius: 999px;
		font-size: 13px;
		font-weight: 500;
		line-height: 1.4;
		letter-spacing: 3px;
		text-transform: uppercase;
		text-decoration: none;
		white-space: nowrap;
		transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > .join-btn > .wrap > a {
		font-size: 0 !important;
		background: #5e1119 !important;
		border-color: #5e1119 !important;
		color: #fff8f2 !important;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > .join-btn > .wrap > a::before {
		content: attr(data-desktop-label);
		font-size: 13px;
		letter-spacing: 3px;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > .join-btn > .wrap > a::after {
		content: "→";
		margin-left: 12px;
		font-size: 20px !important;
		line-height: 1;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > .account-btn > .wrap > a {
		background: transparent !important;
		border-color: #c4a595 !important;
		color: #6e1a22 !important;
	}

	#header-grid #header-menu-sidebar #nv-primary-navigation-sidebar > .account-btn > .wrap > a:hover {
		background: #f4ece4 !important;
	}

	/* Tagline at the foot of the panel */
	#header-menu-sidebar .giac-panel-tag {
		display: flex;
		align-items: center;
		gap: 24px;
		margin-top: 22px;
		font-family: var(--giac-serif-semi);
		font-size: 11px;
		font-style: italic;
		letter-spacing: 3px;
		text-transform: uppercase;
		white-space: nowrap;
		color: var(--giac-maroon-light);
	}

	#header-menu-sidebar .giac-panel-tag span { word-spacing: 12px; }
	#header-menu-sidebar .giac-panel-tag i { flex: 1 1 auto; height: 1px; background: rgba(140, 36, 36, 0.3); }
}

/* ---------- 8. Mobile burger panel: "More" toggle + sub-menu ----------
   The chevron becomes a circled + (maroon). Open: gold and turned into an x.
   Sub-items sit on a soft cream card, sized to match the main rows. */

@media (max-width: 959px) {
	/* Circled + */
	#header-grid #header-menu-sidebar .menu-item-has-children > .wrap > .caret-wrap {
		position: relative;
		display: flex !important;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		width: 34px !important;
		height: 34px !important;
		min-height: 0 !important;
		margin: 0 14px 0 8px !important;
		padding: 0 !important;
		border: 1.5px solid var(--giac-maroon-light) !important;
		border-radius: 50% !important;
		background: transparent !important;
		box-shadow: none !important;
		color: var(--giac-maroon-light) !important;
		transition: transform 0.35s var(--giac-ease), border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease !important;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .wrap > .caret-wrap .caret {
		display: none !important;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .wrap > .caret-wrap::before,
	#header-grid #header-menu-sidebar .menu-item-has-children > .wrap > .caret-wrap::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 14px;
		height: 1.5px;
		border-radius: 1px;
		background: currentColor;
		transform: translate(-50%, -50%);
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .wrap > .caret-wrap::after {
		transform: translate(-50%, -50%) rotate(90deg);
	}

	/* Open: gold, and the + turns into an x */
	#header-grid #header-menu-sidebar .menu-item-has-children:has(> .sub-menu.dropdown-open) > .wrap > .caret-wrap,
	#header-grid #header-menu-sidebar .menu-item-has-children > .wrap > .caret-wrap[aria-expanded="true"] {
		border-color: var(--giac-gold) !important;
		background: var(--giac-gold-soft) !important;
		color: var(--giac-gold) !important;
		transform: rotate(45deg);
	}

	#header-grid #header-menu-sidebar .menu-item-has-children:has(> .sub-menu.dropdown-open) > .wrap > a,
	#header-grid #header-menu-sidebar .menu-item-has-children:has(> .sub-menu.dropdown-open) > .wrap > a .giac-row__title {
		color: var(--giac-gold) !important;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .wrap > a {
		transition: color 0.25s ease;
	}

	/* Sub-menu card */
	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu {
		margin: 0 !important;
		padding: 0 !important;
		border-radius: 16px;
		background: #f5f0e8;
		box-shadow: inset 0 0 0 1px rgba(217, 197, 178, 0.55);
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu.dropdown-open {
		margin-bottom: 14px !important;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu.giac-smooth-submenu {
		transition: height 0.3s var(--giac-ease), margin-bottom 0.3s var(--giac-ease), opacity 0.22s ease, visibility 0s linear 0.3s;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu.giac-smooth-submenu.dropdown-open {
		transition: height 0.3s var(--giac-ease), margin-bottom 0.3s var(--giac-ease), opacity 0.22s ease, visibility 0s;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu > li {
		margin: 0;
		padding: 0;
		border: 0 !important;
		border-top: 1px solid rgba(217, 197, 178, 0.55) !important;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu > li:first-child {
		border-top: 0 !important;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu > li > .wrap {
		display: flex;
		width: 100%;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu > li > .wrap > a {
		display: flex !important;
		flex: 1;
		align-items: center;
		justify-content: space-between;
		min-height: 56px;
		margin: 0;
		padding: 0 18px 0 20px !important;
		color: var(--giac-maroon-light) !important;
		font-family: var(--giac-sans);
		font-size: 15px !important;
		font-weight: 500;
		letter-spacing: 1.4px !important;
		line-height: 1.2;
		text-transform: uppercase;
		text-decoration: none;
		transition: color 0.2s ease, background-color 0.2s ease;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu > li > .wrap > a::after {
		content: "→";
		flex: 0 0 auto;
		margin-left: 12px;
		color: var(--giac-gold);
		font-size: 17px;
		line-height: 1;
		transition: transform 0.2s ease;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu > li:is(.current-menu-item, .current_page_item) > .wrap > a {
		color: var(--giac-gold) !important;
	}

	/* Items fade up one after another when the card opens */
	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu > li {
		opacity: 0;
		transform: translateY(6px);
		transition: opacity 0.25s ease, transform 0.35s var(--giac-ease);
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu.dropdown-open > li {
		opacity: 1;
		transform: none;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu.dropdown-open > li:nth-child(2) { transition-delay: 0.05s; }
	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu.dropdown-open > li:nth-child(3) { transition-delay: 0.1s; }
	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu.dropdown-open > li:nth-child(4) { transition-delay: 0.15s; }
	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu.dropdown-open > li:nth-child(n+5) { transition-delay: 0.2s; }

	/* No divider line under the "More" row while its card is open */
	#header-grid #header-menu-sidebar .nav-ul > li.menu-item-has-children:has(> .sub-menu.dropdown-open) {
		border-bottom-color: transparent;
	}
}

@media (max-width: 959px) and (hover: hover) {
	#header-grid #header-menu-sidebar .menu-item-has-children > .wrap > .caret-wrap:hover {
		background: rgba(140, 36, 36, 0.06) !important;
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu > li > .wrap > a:hover {
		background: rgba(255, 255, 255, 0.55);
	}

	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu > li > .wrap > a:hover::after {
		transform: translateX(3px);
	}
}

@media (max-width: 959px) and (prefers-reduced-motion: reduce) {
	#header-grid #header-menu-sidebar .menu-item-has-children > .wrap > .caret-wrap,
	#header-grid #header-menu-sidebar .menu-item-has-children > .sub-menu > li {
		transition: none !important;
	}
}

/* ---------- 9. Burger panel: social / contact icons above Join ---------- */

#header-grid #nv-primary-navigation-sidebar > li.giac-social-row {
	display: flex;
	justify-content: center;
	gap: 14px;
	width: 100%;
	margin: 20px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

#header-grid #nv-primary-navigation-sidebar > li.giac-social-row + .join-btn {
	margin-top: 16px !important;
}

#header-grid #nv-primary-navigation-sidebar .giac-social-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid #d3bda1;
	border-radius: 50%;
	background: #f5f0e8;
	box-shadow: var(--giac-shadow-xs);
	color: #6c2528 !important;
	text-decoration: none;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

#header-grid #nv-primary-navigation-sidebar .giac-social-btn svg {
	display: block;
	width: 20px;
	height: 20px;
}

#header-grid #nv-primary-navigation-sidebar .giac-social-btn:active {
	transform: scale(0.94);
}

#header-grid #nv-primary-navigation-sidebar .giac-social-btn:focus-visible {
	outline: 2px solid #a57c37;
	outline-offset: 3px;
}

@media (hover: hover) {
	#header-grid #nv-primary-navigation-sidebar .giac-social-btn:hover {
		background: #ece2d4;
		border-color: #b89769;
		color: #551b20 !important;
	}
}

/* ---------- 10. Desktop header: same width on every page ----------
   Cherry pages run edge to edge; standard pages were boxed at 1170px. Match them. */
@media (min-width: 960px) {
	body:not(.cherry-hero-nav) #header-grid .header--row[data-show-on="desktop"] .container {
		max-width: none !important;
		padding: var(--cherry-desktop-nav-padding, 0 34px 0 26px) !important;
	}

	/* Lighthouse + wordmark read as one logo (was 30px apart). */
	#header-grid .header--row[data-show-on="desktop"] .builder-item:has(> .builder-item--logo) { padding-right: 5px !important; }
	#header-grid .header--row[data-show-on="desktop"] .builder-item:has(> .builder-item--logo_2) { padding-left: 5px !important; }
	#header-grid .header--row[data-show-on="desktop"] .builder-item--logo,
	#header-grid .header--row[data-show-on="desktop"] .builder-item--logo_2 { display: flex; align-items: center; }

	/* Current page inside "More" (Club Info / Contact) */
	nav[data-show-on="desktop"] #nv-primary-navigation-main .sub-menu > li:is(.current-menu-item, .current_page_item, .giac-current) > .wrap > a {
		background: #f4eadc;
		color: #651014;
		font-weight: 600;
		box-shadow: inset 3px 0 0 #a88643;
	}
	nav[data-show-on="desktop"] #nv-primary-navigation-main .sub-menu > li:is(.current-menu-item, .current_page_item, .giac-current) > .wrap > a::after {
		opacity: 1;
		transform: none;
		color: #a88643;
	}
}
