@charset "UTF-8";
/**
 * GenieBuilder — site parts: Site Logo, Site Menu, Header Actions, Account
 * Menu, Footer Menu, Social Links, Compliance Strip, and Genie Theme's
 * prebuilt header and footer built from them (GB_Site_Parts).
 *
 * Flexbox only. Every colour and size is a custom property on the part's
 * root, so an element's style panel or a kit changes it in one place.
 */

/* ── Shared ─────────────────────────────────────────────────────────────── */

.mlsg-gb-logo,
.mlsg-gb-menu,
.mlsg-gb-actions,
.mlsg-gb-account,
.mlsg-gb-footer-menu,
.mlsg-gb-social,
.mlsg-gb-compliance {
	--mlsg-gb-site-text: var(--mlsg-gb-color-text);
	--mlsg-gb-site-muted: var(--mlsg-gb-color-muted);
	--mlsg-gb-site-accent: var(--mlsg-gb-color-primary);
	--mlsg-gb-site-surface: var(--mlsg-gb-color-surface);
	--mlsg-gb-site-border: var(--mlsg-gb-color-border);
	box-sizing: border-box;
}

.mlsg-gb-site-note {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--mlsg-gb-color-muted);
}

.mlsg-gb-account .screen-reader-text,
.mlsg-gb-hdr-search .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* ── Site Logo ──────────────────────────────────────────────────────────── */

.mlsg-gb-logo {
	--mlsg-gb-logo-h: 3rem;
	display: inline-flex;
	align-items: center;
	gap: var(--mlsg-gb-space-sm);
	color: var(--mlsg-gb-site-text);
	text-decoration: none;
	font-weight: 700;
	font-size: 1.25rem;
	line-height: 1.2;
}

.mlsg-gb-logo__img {
	display: block;
	height: var(--mlsg-gb-logo-h);
	width: auto;
	max-width: 100%;
}

.mlsg-gb-logo:focus-visible {
	outline: 2px solid var(--mlsg-gb-site-accent);
	outline-offset: 4px;
}

/* ── Site Menu ──────────────────────────────────────────────────────────── */

.mlsg-gb-menu {
	--mlsg-gb-menu-gap: 0.25rem;
	--mlsg-gb-menu-link: var(--mlsg-gb-site-text);
	--mlsg-gb-menu-link-hover: var(--mlsg-gb-site-accent);
	--mlsg-gb-menu-drop-bg: var(--mlsg-gb-site-surface);
	--mlsg-gb-menu-speed: 0.25s;
	position: relative;
	display: flex;
	align-items: center;
	min-width: 0;
}

.mlsg-gb-menu ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* One line, always. When the links no longer fit, mlsg-gb-site.js turns
   the menu into its Menu button (is-compact) rather than let them wrap. */
.mlsg-gb-menu__list {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: var(--mlsg-gb-menu-gap);
}

.mlsg-gb-menu__list > li > a {
	white-space: nowrap;
}

.mlsg-gb-menu li {
	position: relative;
}

.mlsg-gb-menu a {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.625rem 0.75rem;
	color: var(--mlsg-gb-menu-link);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	border-radius: var(--mlsg-gb-radius-badge);
}

.mlsg-gb-menu a:hover,
.mlsg-gb-menu a:focus-visible,
.mlsg-gb-menu .current-menu-item > a,
.mlsg-gb-menu .current-menu-ancestor > a {
	color: var(--mlsg-gb-menu-link-hover);
}

.mlsg-gb-menu a:focus-visible {
	outline: 2px solid var(--mlsg-gb-site-accent);
	outline-offset: 2px;
}

.mlsg-gb-menu .menu-item-has-children > a::after {
	content: "";
	width: 0.4em;
	height: 0.4em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-0.15em) rotate(45deg);
}

/* Drop-downs: open on hover, and on keyboard focus anywhere inside. */
.mlsg-gb-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1000;
	display: flex;
	flex-direction: column;
	min-width: 14rem;
	padding: var(--mlsg-gb-space-sm);
	background: var(--mlsg-gb-menu-drop-bg);
	border: 1px solid var(--mlsg-gb-site-border);
	border-radius: var(--mlsg-gb-radius-card);
	box-shadow: var(--mlsg-gb-shadow-menu);
	visibility: hidden;
	opacity: 0;
	transform: translateY(0.375rem);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0s linear 0.15s;
}

.mlsg-gb-menu .sub-menu .sub-menu {
	top: 0;
	left: 100%;
}

.mlsg-gb-menu li:hover > .sub-menu,
.mlsg-gb-menu li:focus-within > .sub-menu {
	visibility: visible;
	opacity: 1;
	transform: none;
	transition: opacity 0.15s ease, transform 0.15s ease;
}

.mlsg-gb-menu .sub-menu a {
	font-weight: 500;
}

.mlsg-gb-menu__toggle {
	display: none;
	align-items: center;
	gap: var(--mlsg-gb-space-sm);
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
	color: var(--mlsg-gb-site-text);
	background: transparent;
	border: 1px solid var(--mlsg-gb-site-border);
	border-radius: var(--mlsg-gb-radius-badge);
	font: inherit;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
}

.mlsg-gb-menu__toggle:focus-visible {
	outline: 2px solid var(--mlsg-gb-site-accent);
	outline-offset: 2px;
}

/* The three bars fold into a cross while the menu is open. */
.mlsg-gb-menu__bars {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 1.375rem;
	height: 1rem;
}

.mlsg-gb-menu__bars > span {
	display: block;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	transform-origin: center;
	transition: transform var(--mlsg-gb-menu-speed) ease, opacity var(--mlsg-gb-menu-speed) ease;
}

.mlsg-gb-menu.is-open .mlsg-gb-menu__bars > span:nth-child(1) {
	transform: translateY(0.4375rem) rotate(45deg);
}

.mlsg-gb-menu.is-open .mlsg-gb-menu__bars > span:nth-child(2) {
	opacity: 0;
	transform: scaleX(0);
}

.mlsg-gb-menu.is-open .mlsg-gb-menu__bars > span:nth-child(3) {
	transform: translateY(-0.4375rem) rotate(-45deg);
}

/* Compact: one Menu button, the links in a full-width panel below the
   header that slides open, drop-downs shown in place. */
.mlsg-gb-menu.is-compact {
	position: static;
}

.mlsg-gb-menu.is-compact .mlsg-gb-menu__toggle {
	display: inline-flex;
}

.mlsg-gb-menu.is-compact .mlsg-gb-menu__panel {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 1000;
	display: flex;
	flex-direction: column;
	max-height: calc(100vh - 5rem);
	overflow-y: auto;
	padding: var(--mlsg-gb-space-md);
	background: var(--mlsg-gb-menu-drop-bg);
	border-top: 1px solid var(--mlsg-gb-site-border);
	box-shadow: var(--mlsg-gb-shadow-menu);
	visibility: hidden;
	opacity: 0;
	transform: translateY(-0.5rem);
	transition: opacity var(--mlsg-gb-menu-speed) ease, transform var(--mlsg-gb-menu-speed) ease, visibility 0s linear var(--mlsg-gb-menu-speed);
}

.mlsg-gb-menu.is-compact.is-open .mlsg-gb-menu__panel {
	visibility: visible;
	opacity: 1;
	transform: none;
	transition: opacity var(--mlsg-gb-menu-speed) ease, transform var(--mlsg-gb-menu-speed) ease;
}

.mlsg-gb-menu.is-compact .mlsg-gb-menu__list {
	flex-direction: column;
	align-items: stretch;
	width: 100%;
}

.mlsg-gb-menu.is-compact a {
	min-height: 2.75rem;
	white-space: normal;
}

.mlsg-gb-menu.is-compact .menu-item-has-children > a::after {
	display: none;
}

.mlsg-gb-menu.is-compact .sub-menu,
.mlsg-gb-menu.is-compact .sub-menu .sub-menu {
	position: static;
	min-width: 0;
	padding: 0 0 0 var(--mlsg-gb-space-md);
	background: transparent;
	border: 0;
	box-shadow: none;
	visibility: inherit;
	opacity: 1;
	transform: none;
	transition: none;
}

/* Before the script has measured (data-mlsg-gb-fit is set as it starts),
   small screens begin with the button so the links never flash in a row. */
@media (max-width: 64em) {
	.mlsg-gb-menu:not([data-mlsg-gb-fit]) .mlsg-gb-menu__toggle {
		display: inline-flex;
	}

	/* A menu that is always the button (is-compact from the start) keeps its panel. */
	.mlsg-gb-menu:not([data-mlsg-gb-fit]):not(.is-compact) .mlsg-gb-menu__panel {
		display: none;
	}
}

/* ── Header Actions ─────────────────────────────────────────────────────── */

.mlsg-gb-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--mlsg-gb-space-md);
}

.mlsg-gb-actions__phone {
	display: inline-flex;
	align-items: center;
	gap: var(--mlsg-gb-space-sm);
	min-height: 2.75rem;
	color: var(--mlsg-gb-site-text);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.mlsg-gb-actions__phone i {
	color: var(--mlsg-gb-site-accent);
}

.mlsg-gb-actions__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.625rem 1.25rem;
	color: var(--mlsg-gb-color-on-brand);
	background: var(--mlsg-gb-site-accent);
	border: 1px solid var(--mlsg-gb-site-accent);
	border-radius: var(--mlsg-gb-radius-badge);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.mlsg-gb-actions__phone:hover,
.mlsg-gb-actions__phone:focus-visible {
	color: var(--mlsg-gb-site-accent);
}

.mlsg-gb-actions__button:hover,
.mlsg-gb-actions__button:focus-visible {
	filter: brightness(0.92);
}

.mlsg-gb-actions a:focus-visible {
	outline: 2px solid var(--mlsg-gb-site-accent);
	outline-offset: 2px;
}

/* ── Account Menu ───────────────────────────────────────────────────────── */

.mlsg-gb-account {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--mlsg-gb-space-sm);
}

.mlsg-gb-account__sign-in,
.mlsg-gb-account__register,
.mlsg-gb-account__toggle {
	display: inline-flex;
	align-items: center;
	gap: var(--mlsg-gb-space-sm);
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
	color: var(--mlsg-gb-site-text);
	background: transparent;
	border: 1px solid transparent;
	border-radius: var(--mlsg-gb-radius-badge);
	font: inherit;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
}

.mlsg-gb-account__register {
	border-color: var(--mlsg-gb-site-border);
}

.mlsg-gb-account__sign-in i,
.mlsg-gb-account__toggle > i:first-child {
	font-size: 1.375rem;
	color: var(--mlsg-gb-site-accent);
}

.mlsg-gb-account__sign-in:hover,
.mlsg-gb-account__register:hover,
.mlsg-gb-account__toggle:hover {
	color: var(--mlsg-gb-site-accent);
}

.mlsg-gb-account a:focus-visible,
.mlsg-gb-account__toggle:focus-visible {
	outline: 2px solid var(--mlsg-gb-site-accent);
	outline-offset: 2px;
}

.mlsg-gb-account__avatar {
	display: block;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	object-fit: cover;
}

.mlsg-gb-account__caret {
	font-size: 0.75rem;
	transition: transform 0.15s ease;
}

.mlsg-gb-account.is-open .mlsg-gb-account__caret {
	transform: rotate(180deg);
}

.mlsg-gb-account__menu {
	position: absolute;
	top: calc(100% + 0.375rem);
	right: 0;
	z-index: 1001;
	display: none;
	flex-direction: column;
	min-width: 13rem;
	margin: 0;
	padding: var(--mlsg-gb-space-sm);
	list-style: none;
	background: var(--mlsg-gb-site-surface);
	border: 1px solid var(--mlsg-gb-site-border);
	border-radius: var(--mlsg-gb-radius-card);
	box-shadow: var(--mlsg-gb-shadow-menu);
}

.mlsg-gb-account.is-open .mlsg-gb-account__menu {
	display: flex;
}

.mlsg-gb-account__link {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
	color: var(--mlsg-gb-site-text);
	font-size: 1rem;
	text-decoration: none;
	border-radius: var(--mlsg-gb-radius-badge);
}

.mlsg-gb-account__link i {
	width: 1.25em;
	color: var(--mlsg-gb-site-muted);
	text-align: center;
}

.mlsg-gb-account__link:hover,
.mlsg-gb-account__link:focus-visible {
	color: var(--mlsg-gb-site-accent);
	background: var(--mlsg-gb-color-placeholder);
}

/* ── Footer Menu ────────────────────────────────────────────────────────── */

.mlsg-gb-footer-menu {
	--mlsg-gb-footer-menu-link: var(--mlsg-gb-site-text);
}

.mlsg-gb-footer-menu__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mlsg-gb-space-sm) var(--mlsg-gb-space-lg);
	margin: 0;
	padding: 0;
	list-style: none;
}

.mlsg-gb-footer-menu a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	color: var(--mlsg-gb-footer-menu-link);
	font-size: 1rem;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.mlsg-gb-footer-menu a:hover,
.mlsg-gb-footer-menu a:focus-visible {
	text-decoration-thickness: 2px;
}

/* ── Social Links ───────────────────────────────────────────────────────── */

.mlsg-gb-social {
	--mlsg-gb-social-size: 2.75rem;
	display: flex;
	flex-wrap: wrap;
	gap: var(--mlsg-gb-space-sm);
	margin: 0;
	padding: 0;
	list-style: none;
}

.mlsg-gb-social__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--mlsg-gb-social-size);
	height: var(--mlsg-gb-social-size);
	color: var(--mlsg-gb-site-text);
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 1.125rem;
	text-decoration: none;
}

.mlsg-gb-social__link:hover,
.mlsg-gb-social__link:focus-visible {
	color: var(--mlsg-gb-site-accent);
}

.mlsg-gb-social__link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* ── Compliance Strip ───────────────────────────────────────────────────── */

.mlsg-gb-compliance {
	display: flex;
	flex-direction: column;
	gap: var(--mlsg-gb-space-xs);
	color: var(--mlsg-gb-site-text);
	font-size: 0.9375rem;
	line-height: 1.5;
}

.mlsg-gb-compliance__line {
	margin: 0;
}

.mlsg-gb-compliance__eho {
	display: inline-flex;
	align-items: center;
	gap: var(--mlsg-gb-space-sm);
	color: inherit;
}

/* ── Site-wide link colours (Elementor kits) ─────────────────────────────
   An Elementor kit colours every link on the page (.elementor-kit-N a,
   and :hover), which matched the part's own rules in strength and won by
   loading later: the menu read in the kit's colour over a dark photo. In
   the theme's header and footer the parts keep their own colours. */
.mlsg-gb-site-header .mlsg-gb-menu a,
.mlsg-gb-site-header .mlsg-gb-menu a:visited {
	color: var(--mlsg-gb-menu-link);
}

.mlsg-gb-site-header .mlsg-gb-menu a:hover,
.mlsg-gb-site-header .mlsg-gb-menu a:focus-visible,
.mlsg-gb-site-header .mlsg-gb-menu .current-menu-item > a,
.mlsg-gb-site-header .mlsg-gb-menu .current-menu-ancestor > a {
	color: var(--mlsg-gb-menu-link-hover);
}

.mlsg-gb-site-header .mlsg-gb-account a.mlsg-gb-account__sign-in,
.mlsg-gb-site-header .mlsg-gb-account a.mlsg-gb-account__register,
.mlsg-gb-site-header .mlsg-gb-account a.mlsg-gb-account__link,
.mlsg-gb-site-header .mlsg-gb-actions a.mlsg-gb-actions__phone,
.mlsg-gb-site-header .mlsg-gb-social a.mlsg-gb-social__link,
.mlsg-gb-site-footer .mlsg-gb-social a.mlsg-gb-social__link,
.mlsg-gb-site-footer a.mlsg-gb-site-footer__line {
	color: var(--mlsg-gb-site-text);
}

.mlsg-gb-site-header .mlsg-gb-account a.mlsg-gb-account__sign-in:hover,
.mlsg-gb-site-header .mlsg-gb-account a.mlsg-gb-account__link:hover,
.mlsg-gb-site-header .mlsg-gb-actions a.mlsg-gb-actions__phone:hover,
.mlsg-gb-site-header .mlsg-gb-social a.mlsg-gb-social__link:hover,
.mlsg-gb-site-footer .mlsg-gb-social a.mlsg-gb-social__link:hover {
	color: var(--mlsg-gb-site-accent);
}

/* The button; its outline and coloured-row versions below match this. */
.mlsg-gb-site-header .mlsg-gb-actions a.mlsg-gb-actions__button,
.mlsg-gb-site-header .mlsg-gb-actions a.mlsg-gb-actions__button:hover {
	color: var(--mlsg-gb-color-on-brand);
}

.mlsg-gb-site-footer .mlsg-gb-footer-menu a,
.mlsg-gb-site-footer .mlsg-gb-footer-menu a:hover {
	color: var(--mlsg-gb-footer-menu-link);
}

.mlsg-gb-site-footer .mlsg-gb-compliance a.mlsg-gb-compliance__eho {
	color: inherit;
}

/* ── Prebuilt header (Genie Theme) ──────────────────────────────────────── */

/* The header stays above everything a page lays out, including sections
   given their own stacking order in a page builder, and under pop-ups,
   modals and lightboxes (which start at 9999). */
.mlsg-gb-site-header {
	--mlsg-gb-site-header-bg: var(--mlsg-gb-color-surface);
	--mlsg-gb-site-header-z: 9000;
	position: sticky;
	top: 0;
	z-index: var(--mlsg-gb-site-header-z);
	background: var(--mlsg-gb-site-header-bg);
	border-bottom: 1px solid var(--mlsg-gb-color-border);
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.admin-bar .mlsg-gb-site-header {
	top: var(--wp-admin--admin-bar--height, 0px);
}

.mlsg-gb-site-header--static {
	position: relative;
	top: auto;
}

/* A header that does not stick sits in the page's flow, so it must not be
   pushed down by the admin bar's height as well — that left a gap above it
   and slid it over the top of the page for signed-in users. */
.admin-bar .mlsg-gb-site-header--static {
	top: auto;
}

/* Rows: up to three, each with items on the left, in the centre and on
   the right (GB_Site_Parts::header()). */
.mlsg-gb-site-header__row + .mlsg-gb-site-header__row {
	border-top: 1px solid var(--mlsg-gb-color-border);
}

.mlsg-gb-site-header__inner {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--mlsg-gb-space-lg);
	max-width: var(--mlsg-gb-site-width, 80rem);
	margin: 0 auto;
	padding: 0.75rem var(--mlsg-gb-space-md);
}

.mlsg-gb-site-header__row--top .mlsg-gb-site-header__inner,
.mlsg-gb-site-header__row--bottom .mlsg-gb-site-header__inner {
	padding-top: 0.375rem;
	padding-bottom: 0.375rem;
}

.mlsg-gb-site-header--full .mlsg-gb-site-header__inner {
	max-width: none;
	padding-left: var(--mlsg-gb-space-lg);
	padding-right: var(--mlsg-gb-space-lg);
}

.mlsg-gb-site-header__slot {
	display: flex;
	align-items: center;
	gap: var(--mlsg-gb-space-sm);
	min-width: 0;
}

/* With nothing in the centre, the left items take their room and the
   right items line up at the far edge. */
.mlsg-gb-site-header__slot--left {
	flex: 0 1 auto;
	justify-content: flex-start;
}

.mlsg-gb-site-header__slot--right {
	flex: 1 1 auto;
	justify-content: flex-end;
}

/* With something in the centre, the sides share the rest equally so the
   centre stays in the middle of the row. */
.mlsg-gb-site-header__inner--centred > .mlsg-gb-site-header__slot--left,
.mlsg-gb-site-header__inner--centred > .mlsg-gb-site-header__slot--right {
	flex: 1 1 0;
}

.mlsg-gb-site-header__slot--center {
	flex: 0 1 auto;
	justify-content: center;
}

/* The slot holding the menu takes the room the links need. */
.mlsg-gb-site-header__slot--grow {
	flex: 1 1 auto;
}

.mlsg-gb-site-header .mlsg-gb-menu {
	flex: 1 1 auto;
	min-width: 0;
}

.mlsg-gb-site-header__slot--left .mlsg-gb-menu { justify-content: flex-start; }
.mlsg-gb-site-header__slot--center .mlsg-gb-menu { justify-content: center; }
.mlsg-gb-site-header__slot--right .mlsg-gb-menu { justify-content: flex-end; }

.mlsg-gb-site-header .mlsg-gb-menu.is-compact {
	flex: 0 0 auto;
}

/* One arrangement each for Desktop (1025px and wider), Tablet (768–1024px)
   and Mobile (767px and narrower). */
.mlsg-gb-site-header__device--tablet,
.mlsg-gb-site-header__device--mobile {
	display: none;
}

@media (max-width: 64em) {
	.mlsg-gb-site-header__device--desktop { display: none; }
	.mlsg-gb-site-header__device--tablet { display: block; }
}

@media (max-width: 47.9375em) {
	.mlsg-gb-site-header__device--tablet { display: none; }
	.mlsg-gb-site-header__device--mobile { display: block; }
}

/* Tablet and Mobile: the phone number and the account name as icons. */
.mlsg-gb-site-header__device:is(.mlsg-gb-site-header__device--tablet, .mlsg-gb-site-header__device--mobile) .mlsg-gb-actions__phone span,
.mlsg-gb-site-header__device:is(.mlsg-gb-site-header__device--tablet, .mlsg-gb-site-header__device--mobile) .mlsg-gb-account__name {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.mlsg-gb-site-header__device:is(.mlsg-gb-site-header__device--tablet, .mlsg-gb-site-header__device--mobile) .mlsg-gb-site-header__inner {
	gap: var(--mlsg-gb-space-sm);
}

.mlsg-gb-site-header .mlsg-gb-social {
	--mlsg-gb-social-size: 2.25rem;
}

/* Logo height for computers, tablets and phones, chosen in the Customizer
   (custom properties on the header). By screen width, whichever header
   arrangement shows there. */
.mlsg-gb-site-header .mlsg-gb-logo {
	--mlsg-gb-logo-h: var(--mlsg-gb-hdr-logo, 3rem);
}

@media (max-width: 64em) {
	.mlsg-gb-site-header .mlsg-gb-logo {
		--mlsg-gb-logo-h: var(--mlsg-gb-hdr-logo-m, 2.5rem);
	}
}

@media (max-width: 47.9375em) {
	.mlsg-gb-site-header .mlsg-gb-logo {
		--mlsg-gb-logo-h: var(--mlsg-gb-hdr-logo-p, var(--mlsg-gb-hdr-logo-m, 2.5rem));
	}
}

/* Row colours: the brand colour, or dark, with light text. */
.mlsg-gb-site-header__row--brand,
.mlsg-gb-site-header__row--dark {
	--mlsg-gb-site-text: var(--mlsg-gb-color-on-brand);
	--mlsg-gb-site-accent: var(--mlsg-gb-color-on-brand);
	--mlsg-gb-menu-link: var(--mlsg-gb-color-on-brand);
	--mlsg-gb-menu-link-hover: var(--mlsg-gb-color-on-brand);
	color: var(--mlsg-gb-color-on-brand);
}

.mlsg-gb-site-header__row--brand { background: var(--mlsg-gb-color-primary); }
.mlsg-gb-site-header__row--dark { background: var(--mlsg-gb-color-text); }

.mlsg-gb-site-header__row--brand .mlsg-gb-menu,
.mlsg-gb-site-header__row--brand .mlsg-gb-actions,
.mlsg-gb-site-header__row--brand .mlsg-gb-account,
.mlsg-gb-site-header__row--brand .mlsg-gb-social,
.mlsg-gb-site-header__row--brand .mlsg-gb-hdr-search,
.mlsg-gb-site-header__row--dark .mlsg-gb-menu,
.mlsg-gb-site-header__row--dark .mlsg-gb-actions,
.mlsg-gb-site-header__row--dark .mlsg-gb-account,
.mlsg-gb-site-header__row--dark .mlsg-gb-social,
.mlsg-gb-site-header__row--dark .mlsg-gb-hdr-search {
	--mlsg-gb-site-text: var(--mlsg-gb-color-on-brand);
	--mlsg-gb-site-accent: var(--mlsg-gb-color-on-brand);
	--mlsg-gb-menu-link: var(--mlsg-gb-color-on-brand);
	--mlsg-gb-menu-link-hover: var(--mlsg-gb-color-on-brand);
}

/* Drop-downs and the open menu keep their light surface and dark text. */
.mlsg-gb-site-header__row--brand .mlsg-gb-menu .sub-menu,
.mlsg-gb-site-header__row--brand .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel,
.mlsg-gb-site-header__row--brand .mlsg-gb-account__menu,
.mlsg-gb-site-header__row--dark .mlsg-gb-menu .sub-menu,
.mlsg-gb-site-header__row--dark .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel,
.mlsg-gb-site-header__row--dark .mlsg-gb-account__menu {
	--mlsg-gb-site-text: var(--mlsg-gb-color-text);
	--mlsg-gb-site-accent: var(--mlsg-gb-color-primary);
	--mlsg-gb-menu-link: var(--mlsg-gb-color-text);
	--mlsg-gb-menu-link-hover: var(--mlsg-gb-color-primary);
}

/* A brand-coloured row: its button turns light so it still stands out. */
.mlsg-gb-site-header__row--brand .mlsg-gb-actions a.mlsg-gb-actions__button,
.mlsg-gb-site-header__row--brand .mlsg-gb-actions a.mlsg-gb-actions__button:hover,
.mlsg-gb-site-header__row--dark .mlsg-gb-actions a.mlsg-gb-actions__button,
.mlsg-gb-site-header__row--dark .mlsg-gb-actions a.mlsg-gb-actions__button:hover {
	background: var(--mlsg-gb-color-on-brand);
	border-color: var(--mlsg-gb-color-on-brand);
	color: var(--mlsg-gb-color-primary);
}

/* Outline button. */
.mlsg-gb-site-header--button-outline .mlsg-gb-actions a.mlsg-gb-actions__button,
.mlsg-gb-site-header--button-outline .mlsg-gb-actions a.mlsg-gb-actions__button:hover {
	background: transparent;
	color: var(--mlsg-gb-site-accent);
}

/* The phone number or the account name as an icon only, on computers too. */
.mlsg-gb-site-header--phone-icon .mlsg-gb-actions__phone span,
.mlsg-gb-site-header--account-icon .mlsg-gb-account__name {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.mlsg-gb-site-header--upper .mlsg-gb-menu__list > li > a {
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

/* Over the page's first section until it scrolls (mlsg-gb-site.js sets
   is-scrolled): no background, light text, the logo for dark backgrounds.
   Drop-downs and the open menu keep their own light surface and dark text. */
.mlsg-gb-site-header--transparent {
	position: fixed;
	left: 0;
	right: 0;
}

.mlsg-gb-site-header--transparent.mlsg-gb-site-header--static {
	position: absolute;
}

.mlsg-gb-site-header--transparent:not(.is-scrolled) {
	--mlsg-gb-site-header-bg: transparent;
	border-bottom-color: transparent;
}

.mlsg-gb-site-header--transparent:not(.is-scrolled) .mlsg-gb-menu,
.mlsg-gb-site-header--transparent:not(.is-scrolled) .mlsg-gb-actions,
.mlsg-gb-site-header--transparent:not(.is-scrolled) .mlsg-gb-account,
.mlsg-gb-site-header--transparent:not(.is-scrolled) .mlsg-gb-social,
.mlsg-gb-site-header--transparent:not(.is-scrolled) .mlsg-gb-hdr-search {
	--mlsg-gb-site-text: var(--mlsg-gb-color-on-brand);
	--mlsg-gb-site-accent: var(--mlsg-gb-color-on-brand);
	--mlsg-gb-site-border: var(--mlsg-gb-color-on-brand);
}

.mlsg-gb-site-header--transparent:not(.is-scrolled) .mlsg-gb-menu .sub-menu,
.mlsg-gb-site-header--transparent:not(.is-scrolled) .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel,
.mlsg-gb-site-header--transparent:not(.is-scrolled) .mlsg-gb-account__menu {
	--mlsg-gb-site-text: var(--mlsg-gb-color-text);
	--mlsg-gb-site-accent: var(--mlsg-gb-color-primary);
	--mlsg-gb-menu-link: var(--mlsg-gb-color-text);
	--mlsg-gb-menu-link-hover: var(--mlsg-gb-color-primary);
}

.mlsg-gb-logo__img--dark,
.mlsg-gb-site-header--transparent:not(.is-scrolled) .mlsg-gb-logo__img--light {
	display: none;
}

.mlsg-gb-site-header--transparent:not(.is-scrolled) .mlsg-gb-logo__img--dark {
	display: block;
}

/* Short of room, the phone number and the account name become icons
   before the menu turns into its button (mlsg-gb-site.js sets is-tight);
   small screens start that way. */
.mlsg-gb-site-header.is-tight .mlsg-gb-actions__phone span,
.mlsg-gb-site-header.is-tight .mlsg-gb-account__name {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* ── Elementor headers (mlsg-gb-site.js, fitElementorHeaders) ───────────
   A Nav Menu beside an off-canvas menu icon: the links while they fit on
   one line, the icon when they would not — at any screen width, in place
   of Elementor's fixed breakpoints. Applies only once the script has
   marked the row (mlsg-gb-fit). */

.elementor .mlsg-gb-fit > .elementor-element.mlsg-gb-fit__nav,
.elementor .mlsg-gb-fit.is-compact > .elementor-element.mlsg-gb-fit__burger {
	display: block;
}

.elementor .mlsg-gb-fit > .elementor-element.mlsg-gb-fit__burger,
.elementor .mlsg-gb-fit.is-compact > .elementor-element.mlsg-gb-fit__nav {
	display: none;
}

.elementor .mlsg-gb-fit > .elementor-element.mlsg-gb-fit__nav .elementor-nav-menu--main > ul {
	flex-wrap: nowrap;
}

/* The row of links stands in for the Nav Menu's own phone toggle. */
.elementor .mlsg-gb-fit > .elementor-element.mlsg-gb-fit__nav .elementor-nav-menu--main {
	display: flex;
}

.elementor .mlsg-gb-fit > .elementor-element.mlsg-gb-fit__nav .elementor-menu-toggle,
.elementor .mlsg-gb-fit > .elementor-element.mlsg-gb-fit__nav .elementor-nav-menu--dropdown {
	display: none;
}

/* ── Prebuilt footer (Genie Theme) ──────────────────────────────────────── */

.mlsg-gb-site-footer {
	--mlsg-gb-site-footer-bg: var(--mlsg-gb-color-text);
	--mlsg-gb-site-footer-text: var(--mlsg-gb-color-on-brand);
	background: var(--mlsg-gb-site-footer-bg);
	color: var(--mlsg-gb-site-footer-text);
}

.mlsg-gb-site-footer__inner {
	display: flex;
	flex-direction: column;
	gap: var(--mlsg-gb-space-lg);
	max-width: var(--mlsg-gb-site-width, 80rem);
	margin: 0 auto;
	padding: 3rem var(--mlsg-gb-space-md);
}

.mlsg-gb-site-footer__top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--mlsg-gb-space-lg);
}

.mlsg-gb-site-footer .mlsg-gb-logo,
.mlsg-gb-site-footer .mlsg-gb-social,
.mlsg-gb-site-footer .mlsg-gb-footer-menu,
.mlsg-gb-site-footer .mlsg-gb-compliance {
	--mlsg-gb-site-text: var(--mlsg-gb-site-footer-text);
	--mlsg-gb-site-accent: var(--mlsg-gb-site-footer-text);
}

.mlsg-gb-site-footer .mlsg-gb-compliance {
	padding-top: var(--mlsg-gb-space-lg);
	border-top: 1px solid currentColor;
}

.mlsg-gb-site-footer--full .mlsg-gb-site-footer__inner {
	max-width: none;
	padding-left: var(--mlsg-gb-space-lg);
	padding-right: var(--mlsg-gb-space-lg);
}

.mlsg-gb-site-footer--light {
	--mlsg-gb-site-footer-bg: var(--mlsg-gb-color-surface);
	--mlsg-gb-site-footer-text: var(--mlsg-gb-color-text);
	border-top: 1px solid var(--mlsg-gb-color-border);
}

/* Columns: side by side while each has room, one above another on phones. */
.mlsg-gb-site-footer__cols {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mlsg-gb-space-lg) 3rem;
}

.mlsg-gb-site-footer__col {
	display: flex;
	flex: 1 1 14rem;
	flex-direction: column;
	gap: var(--mlsg-gb-space-md);
	min-width: 0;
}

.mlsg-gb-site-footer__col .genie-widget__title {
	margin: 0;
	font-size: 1.125rem;
}

.mlsg-gb-site-footer__col a {
	color: inherit;
}

.mlsg-gb-site-footer__contact {
	display: flex;
	flex-direction: column;
	gap: var(--mlsg-gb-space-xs);
}

.mlsg-gb-site-footer__line {
	display: inline-flex;
	align-items: center;
	gap: var(--mlsg-gb-space-sm);
	min-height: 2.75rem;
	margin: 0;
	font-size: 1rem;
	text-decoration: none;
}

.mlsg-gb-site-footer__legal {
	padding-top: var(--mlsg-gb-space-md);
	border-top: 1px solid currentColor;
}

/* ── Header search ── a box on computers, an icon on tablets and phones. */
.mlsg-gb-hdr-search {
	display: inline-flex;
	align-items: center;
	min-width: 0;
	min-height: 2.75rem;
	margin: 0;
	padding: 0 0.25rem 0 0.875rem;
	border: 1px solid color-mix(in srgb, var(--mlsg-gb-site-text) 30%, transparent);
	border-radius: 999px;
	color: var(--mlsg-gb-site-text);
}

.mlsg-gb-hdr-search__input {
	flex: 1 1 10rem;
	min-width: 6rem;
	padding: 0.5rem 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 0.9375rem;
}

.mlsg-gb-hdr-search__input::placeholder {
	color: inherit;
	opacity: 0.75;
}

.mlsg-gb-hdr-search__input:focus {
	outline: none;
}

.mlsg-gb-hdr-search:focus-within {
	outline: 2px solid var(--mlsg-gb-site-accent);
	outline-offset: 2px;
}

.mlsg-gb-hdr-search__go {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.mlsg-gb-site-header a.mlsg-gb-hdr-search--icon {
	justify-content: center;
	width: 2.75rem;
	padding: 0;
	border: 0;
	color: var(--mlsg-gb-site-text);
	text-decoration: none;
}

/* ── Header options (Genie Theme's Customizer) ─────────────────────────── */

/* Row height. */
.mlsg-gb-site-header--height-compact .mlsg-gb-site-header__inner {
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
}

.mlsg-gb-site-header--height-roomy .mlsg-gb-site-header__inner {
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
}

/* Shrinks once the page scrolls (mlsg-gb-site.js sets is-shrunk and the
   height given up, kept as space below so the page does not move). No
   transition: the space must match the height at once. */
.mlsg-gb-site-header--shrink.is-shrunk {
	margin-bottom: var(--mlsg-gb-hdr-shrunk-by, 0px);
}

.mlsg-gb-site-header--shrink.is-shrunk .mlsg-gb-site-header__row--main .mlsg-gb-site-header__inner {
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
}

.mlsg-gb-site-header--shrink.is-shrunk .mlsg-gb-logo {
	--mlsg-gb-logo-h: calc(var(--mlsg-gb-hdr-logo, 3rem) * 0.75);
}

.mlsg-gb-site-header--shrink.is-shrunk .mlsg-gb-site-header__row--top {
	display: none;
}

@media (max-width: 64em) {
	.mlsg-gb-site-header--shrink.is-shrunk .mlsg-gb-logo {
		--mlsg-gb-logo-h: calc(var(--mlsg-gb-hdr-logo-m, 2.5rem) * 0.8);
	}
}

@media (max-width: 47.9375em) {
	.mlsg-gb-site-header--shrink.is-shrunk .mlsg-gb-logo {
		--mlsg-gb-logo-h: calc(var(--mlsg-gb-hdr-logo-p, var(--mlsg-gb-hdr-logo-m, 2.5rem)) * 0.8);
	}
}

/* A line of text placed in the header. */
.mlsg-gb-hdr-text {
	color: var(--mlsg-gb-site-text, inherit);
	font-size: 0.9375rem;
	line-height: 1.4;
}

.mlsg-gb-hdr-text a {
	color: inherit;
	text-decoration: underline;
}

.mlsg-gb-hdr-text p {
	margin: 0;
}

.mlsg-gb-site-header--no-border {
	border-bottom-color: transparent;
}

.mlsg-gb-site-header--shadow {
	box-shadow: var(--mlsg-gb-shadow-menu);
}

/* Link size. */
.mlsg-gb-site-header--link-size-sm .mlsg-gb-menu__list > li > a {
	font-size: 0.9375rem;
}

.mlsg-gb-site-header--link-size-lg .mlsg-gb-menu__list > li > a {
	font-size: 1.0625rem;
}

/* The Menu button: the three bars only, or the word only; framed or not. */
.mlsg-gb-site-header--burger-icon .mlsg-gb-menu__toggle-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.mlsg-gb-site-header--burger-icon .mlsg-gb-menu__toggle {
	justify-content: center;
	padding: 0.5rem;
}

.mlsg-gb-site-header--burger-text .mlsg-gb-menu__bars {
	display: none;
}

.mlsg-gb-site-header--burger-frame-plain .mlsg-gb-menu__toggle {
	border-color: transparent;
}

/* The close button: only where the menu slides in or fills the screen. */
.mlsg-gb-menu__close {
	display: none;
}

/* The menu slides in from one side, over a dimmed page. */
.mlsg-gb-site-header--panel-right .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel,
.mlsg-gb-site-header--panel-left .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel,
.mlsg-gb-site-header--panel-full .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	bottom: 0;
	max-height: none;
	padding-top: var(--mlsg-gb-space-sm);
	border-top: 0;
}

.mlsg-gb-site-header--panel-right .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel,
.mlsg-gb-site-header--panel-left .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel {
	width: min(20rem, 85vw);
}

/* Closed: no transition, so a menu that turns into its button as the page
   loads never slides across the screen on its way out. Opening slides in. */
.mlsg-gb-site-header--panel-right .mlsg-gb-menu.is-compact:not(.is-open) .mlsg-gb-menu__panel,
.mlsg-gb-site-header--panel-left .mlsg-gb-menu.is-compact:not(.is-open) .mlsg-gb-menu__panel,
.mlsg-gb-site-header--panel-full .mlsg-gb-menu.is-compact:not(.is-open) .mlsg-gb-menu__panel {
	transition: none;
}

.mlsg-gb-site-header--panel-right .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel {
	left: auto;
	right: 0;
	transform: translateX(100%);
}

.mlsg-gb-site-header--panel-left .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel {
	left: 0;
	right: auto;
	transform: translateX(-100%);
}

.mlsg-gb-site-header--panel-right .mlsg-gb-menu.is-compact.is-open .mlsg-gb-menu__panel,
.mlsg-gb-site-header--panel-left .mlsg-gb-menu.is-compact.is-open .mlsg-gb-menu__panel {
	transform: none;
	box-shadow: 0 0 0 100vmax var(--mlsg-gb-color-scrim);
}

/* The menu fills the screen, its links large and centred. */
.mlsg-gb-site-header--panel-full .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel {
	--mlsg-gb-menu-drop-bg: var(--mlsg-gb-color-text);
	--mlsg-gb-menu-link: var(--mlsg-gb-color-on-brand);
	--mlsg-gb-menu-link-hover: var(--mlsg-gb-color-on-brand);
	left: 0;
	right: 0;
	justify-content: center;
	color: var(--mlsg-gb-color-on-brand);
	text-align: center;
}

.mlsg-gb-site-header--panel-full .mlsg-gb-menu.is-compact .mlsg-gb-menu__list {
	align-items: center;
}

.mlsg-gb-site-header--panel-full .mlsg-gb-menu.is-compact .mlsg-gb-menu__list > li > a {
	justify-content: center;
	font-size: 1.5rem;
}

.mlsg-gb-site-header--panel-right .mlsg-gb-menu.is-compact .mlsg-gb-menu__close,
.mlsg-gb-site-header--panel-left .mlsg-gb-menu.is-compact .mlsg-gb-menu__close,
.mlsg-gb-site-header--panel-full .mlsg-gb-menu.is-compact .mlsg-gb-menu__close {
	display: inline-flex;
	align-self: flex-end;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font-size: 1.25rem;
	cursor: pointer;
}

.mlsg-gb-site-header--panel-full .mlsg-gb-menu.is-compact .mlsg-gb-menu__close {
	position: absolute;
	top: var(--mlsg-gb-space-sm);
	right: var(--mlsg-gb-space-sm);
}

.mlsg-gb-menu__close:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Button size. */
.mlsg-gb-site-header--button-size-sm .mlsg-gb-actions__button {
	min-height: 2.25rem;
	padding: 0.375rem 0.875rem;
	font-size: 0.9375rem;
}

.mlsg-gb-site-header--button-size-lg .mlsg-gb-actions__button {
	min-height: 3.25rem;
	padding: 0.75rem 1.5rem;
	font-size: 1.0625rem;
}

/* The phone number on tablets and phones too. */
.mlsg-gb-site-header--phone-text-mobile .mlsg-gb-site-header__device:is(.mlsg-gb-site-header__device--tablet, .mlsg-gb-site-header__device--mobile) .mlsg-gb-actions__phone span {
	position: static;
	width: auto;
	height: auto;
	overflow: visible;
	clip-path: none;
}

/* Social links: style and size, in the header and the footer. */
.mlsg-gb-site-header--social-style-plain .mlsg-gb-social__link,
.mlsg-gb-site-footer--social-style-plain .mlsg-gb-social__link {
	border-color: transparent;
}

.mlsg-gb-site-header--social-style-filled .mlsg-gb-social a.mlsg-gb-social__link,
.mlsg-gb-site-footer--social-style-filled .mlsg-gb-social a.mlsg-gb-social__link {
	background: var(--mlsg-gb-social-fill);
	border-color: var(--mlsg-gb-social-fill);
	color: var(--mlsg-gb-social-icon);
}

.mlsg-gb-site-header--social-style-filled .mlsg-gb-social a.mlsg-gb-social__link:hover,
.mlsg-gb-site-header--social-style-filled .mlsg-gb-social a.mlsg-gb-social__link:focus-visible,
.mlsg-gb-site-footer--social-style-filled .mlsg-gb-social a.mlsg-gb-social__link:hover,
.mlsg-gb-site-footer--social-style-filled .mlsg-gb-social a.mlsg-gb-social__link:focus-visible {
	background: var(--mlsg-gb-social-fill-hover);
	border-color: var(--mlsg-gb-social-fill-hover);
	color: var(--mlsg-gb-social-icon);
}

/* Filled: the circle takes the row's text colour and the icon the row's
   background colour, so it reads on the circle — until Circle color and
   Icon color set them. Every icon (font or uploaded SVG) is drawn in the
   link's colour, so the icon color and its hover reach all of them. */
.mlsg-gb-social {
	--mlsg-gb-social-ink: var(--mlsg-gb-color-surface);
	--mlsg-gb-social-fill: var(--mlsg-gb-site-text);
	--mlsg-gb-social-fill-hover: var(--mlsg-gb-site-accent);
	--mlsg-gb-social-icon: var(--mlsg-gb-social-ink);
}

.mlsg-gb-site-header__row--brand .mlsg-gb-social,
.mlsg-gb-site-header__row--dark .mlsg-gb-social,
.mlsg-gb-site-header--transparent:not(.is-scrolled) .mlsg-gb-social,
.mlsg-gb-site-footer__row:not(.mlsg-gb-site-footer__row--light) .mlsg-gb-social {
	--mlsg-gb-social-ink: var(--mlsg-gb-color-text);
}

.mlsg-gb-site-header--social-size-sm .mlsg-gb-social,
.mlsg-gb-site-footer--social-size-sm .mlsg-gb-social {
	--mlsg-gb-social-size: 2rem;
}

.mlsg-gb-site-header--social-size-lg .mlsg-gb-social,
.mlsg-gb-site-footer--social-size-lg .mlsg-gb-social {
	--mlsg-gb-social-size: 2.75rem;
}

.mlsg-gb-site-header--social-size-sm .mlsg-gb-social__link,
.mlsg-gb-site-footer--social-size-sm .mlsg-gb-social__link {
	font-size: 0.9375rem;
}

.mlsg-gb-site-header--social-size-lg .mlsg-gb-social__link,
.mlsg-gb-site-footer--social-size-lg .mlsg-gb-social__link {
	font-size: 1.25rem;
}

/* Sign In / Account: what shows on computers and on tablets and phones. */
.mlsg-gb-site-header--account-out-icon .mlsg-gb-site-header__device--desktop .mlsg-gb-account__label,
.mlsg-gb-site-header--account-out-mobile-icon .mlsg-gb-site-header__device:is(.mlsg-gb-site-header__device--tablet, .mlsg-gb-site-header__device--mobile) .mlsg-gb-account__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.mlsg-gb-site-header--account-out-text .mlsg-gb-site-header__device--desktop .mlsg-gb-account__sign-in > i {
	display: none;
}

.mlsg-gb-site-header--account-in-mobile-name .mlsg-gb-site-header__device:is(.mlsg-gb-site-header__device--tablet, .mlsg-gb-site-header__device--mobile) .mlsg-gb-account__name {
	position: static;
	width: auto;
	height: auto;
	overflow: visible;
	clip-path: none;
}

.mlsg-gb-site-header--account-caret-desktop .mlsg-gb-site-header__device:is(.mlsg-gb-site-header__device--tablet, .mlsg-gb-site-header__device--mobile) .mlsg-gb-account__caret,
.mlsg-gb-site-header--account-caret-never .mlsg-gb-account__caret {
	display: none;
}

/* ── Footer options ─────────────────────────────────────────────────────── */

.mlsg-gb-site-footer--gap-tight .mlsg-gb-site-footer__inner {
	column-gap: var(--mlsg-gb-space-lg);
}

.mlsg-gb-site-footer--gap-wide .mlsg-gb-site-footer__inner {
	column-gap: 4.5rem;
}

.mlsg-gb-site-footer--align-center .mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__col {
	align-items: center;
	text-align: center;
}

.mlsg-gb-site-footer--align-center .mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__about {
	margin-inline: auto;
}

.mlsg-gb-site-footer--headings-normal .mlsg-gb-site-footer__heading {
	font-size: 1rem;
	letter-spacing: 0;
	text-transform: none;
}

.mlsg-gb-site-footer--headings-hidden .mlsg-gb-site-footer__heading {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.mlsg-gb-site-footer--lines .mlsg-gb-site-footer__row + .mlsg-gb-site-footer__row {
	border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent);
}

/* Back to top: bottom left, clear of a chat button on the right. Shown
   once the page has scrolled (mlsg-gb-site.js adds is-shown). */
.mlsg-gb-to-top {
	position: fixed;
	left: var(--mlsg-gb-space-md);
	bottom: var(--mlsg-gb-space-md);
	z-index: 8000;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--mlsg-gb-color-border);
	border-radius: 50%;
	background: var(--mlsg-gb-color-surface);
	color: var(--mlsg-gb-color-text);
	box-shadow: var(--mlsg-gb-shadow-menu);
	text-decoration: none;
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.2s ease, visibility 0s linear 0.2s;
}

.mlsg-gb-to-top.is-shown {
	visibility: visible;
	opacity: 1;
	transition: opacity 0.2s ease;
}

.mlsg-gb-site-footer a.mlsg-gb-to-top,
.mlsg-gb-site-footer a.mlsg-gb-to-top:hover {
	color: var(--mlsg-gb-color-text);
}

.mlsg-gb-to-top:focus-visible {
	outline: 2px solid var(--mlsg-gb-color-primary);
	outline-offset: 3px;
}

/* ── Footer builder ── rows of up to four columns, each row its own colours. */
.mlsg-gb-site-footer--built {
	--mlsg-gb-site-footer-bg: transparent;
	display: flex;
	flex-direction: column;
}

.mlsg-gb-site-footer__row {
	--mlsg-gb-site-footer-bg: var(--mlsg-gb-color-text);
	--mlsg-gb-site-footer-text: var(--mlsg-gb-color-on-brand);
	background: var(--mlsg-gb-site-footer-bg);
	color: var(--mlsg-gb-site-footer-text);
}

.mlsg-gb-site-footer__row--light {
	--mlsg-gb-site-footer-bg: var(--mlsg-gb-color-surface);
	--mlsg-gb-site-footer-text: var(--mlsg-gb-color-text);
	border-top: 1px solid var(--mlsg-gb-color-border);
}

.mlsg-gb-site-footer__row--brand {
	--mlsg-gb-site-footer-bg: var(--mlsg-gb-color-primary);
}

/* Two rows of the same colour read as one band, divided by a hairline. */
.mlsg-gb-site-footer__row--dark + .mlsg-gb-site-footer__row--dark,
.mlsg-gb-site-footer__row--brand + .mlsg-gb-site-footer__row--brand {
	border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent);
}

.mlsg-gb-site-footer__row--light + .mlsg-gb-site-footer__row--light {
	border-top-color: var(--mlsg-gb-color-border);
}

.mlsg-gb-site-footer--built .mlsg-gb-site-footer__inner {
	flex-direction: row;
	flex-wrap: wrap;
	gap: var(--mlsg-gb-space-lg) 3rem;
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
}

.mlsg-gb-site-footer--built .mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__inner {
	padding-top: 3rem;
	padding-bottom: 3rem;
}

.mlsg-gb-site-footer--built .mlsg-gb-site-footer__col {
	flex: 1 1 0;
	gap: var(--mlsg-gb-space-sm);
}

/* The first of four columns, holding the logo and about text, gets more room. */
.mlsg-gb-site-footer--built .mlsg-gb-site-footer__inner--4 > .mlsg-gb-site-footer__col:first-child {
	flex-grow: 1.4;
}

/* Top and bottom rows: items sit in a line, the last column to the right. */
.mlsg-gb-site-footer__row--top .mlsg-gb-site-footer__col,
.mlsg-gb-site-footer__row--bottom .mlsg-gb-site-footer__col {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	column-gap: var(--mlsg-gb-space-lg);
}

.mlsg-gb-site-footer__row--top .mlsg-gb-site-footer__col:last-child:not(:first-child),
.mlsg-gb-site-footer__row--bottom .mlsg-gb-site-footer__col:last-child:not(:first-child) {
	justify-content: flex-end;
}

.mlsg-gb-site-footer__row--top .mlsg-gb-site-footer__inner--1 .mlsg-gb-site-footer__col,
.mlsg-gb-site-footer__row--bottom .mlsg-gb-site-footer__inner--1 .mlsg-gb-site-footer__col {
	justify-content: space-between;
}

.mlsg-gb-site-footer--built .mlsg-gb-site-footer__row .mlsg-gb-compliance {
	padding-top: 0;
	border-top: 0;
}

.mlsg-gb-site-footer--built .mlsg-gb-logo {
	--mlsg-gb-logo-h: var(--mlsg-gb-ftr-logo, 2.75rem);
}

@media (max-width: 64em) {
	.mlsg-gb-site-footer--built .mlsg-gb-logo {
		--mlsg-gb-logo-h: var(--mlsg-gb-ftr-logo-t, var(--mlsg-gb-ftr-logo, 2.75rem));
	}
}

@media (max-width: 47.9375em) {
	.mlsg-gb-site-footer--built .mlsg-gb-logo {
		--mlsg-gb-logo-h: var(--mlsg-gb-ftr-logo-p, var(--mlsg-gb-ftr-logo, 2.75rem));
	}
}

.mlsg-gb-site-footer__row .mlsg-gb-logo,
.mlsg-gb-site-footer__row .mlsg-gb-social,
.mlsg-gb-site-footer__row .mlsg-gb-footer-menu,
.mlsg-gb-site-footer__row .mlsg-gb-compliance {
	--mlsg-gb-site-text: var(--mlsg-gb-site-footer-text);
	--mlsg-gb-site-accent: var(--mlsg-gb-site-footer-text);
}

.mlsg-gb-site-footer__heading {
	margin: 0 0 var(--mlsg-gb-space-xs);
	color: inherit;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.mlsg-gb-site-footer__about {
	max-width: 24rem;
	margin: 0;
	font-size: 1rem;
	line-height: 1.6;
}

.mlsg-gb-site-footer__menu {
	display: flex;
	flex-direction: column;
}

.mlsg-gb-site-footer__list {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mlsg-gb-site-footer__list li {
	margin: 0;
}

.mlsg-gb-site-footer .mlsg-gb-site-footer__list a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	color: var(--mlsg-gb-site-footer-text);
	font-size: 1rem;
	text-decoration: none;
}

.mlsg-gb-site-footer .mlsg-gb-site-footer__list a:hover,
.mlsg-gb-site-footer .mlsg-gb-site-footer__list a:focus-visible {
	text-decoration: underline;
}

.mlsg-gb-site-footer__item {
	display: flex;
	flex-direction: column;
	gap: var(--mlsg-gb-space-sm);
	min-width: 0;
}

/* Tablets: the first of three or four columns takes the full width; the
   rest share the line below. Empty columns give up their space. */
@media (max-width: 64em) {
	.mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__inner--3 > .mlsg-gb-site-footer__col:first-child,
	.mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__inner--4 > .mlsg-gb-site-footer__col:first-child {
		flex: 1 1 100%;
	}

	.mlsg-gb-site-footer--built .mlsg-gb-site-footer__col:empty {
		display: none;
	}
}

/* Mobile: one column; centred if the site chose it. */
@media (max-width: 47.9375em) {
	.mlsg-gb-site-footer--built .mlsg-gb-site-footer__inner {
		gap: var(--mlsg-gb-space-lg) var(--mlsg-gb-space-md);
	}

	.mlsg-gb-site-footer--built .mlsg-gb-site-footer__col,
	.mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__inner > .mlsg-gb-site-footer__col {
		flex: 1 1 100%;
	}

	/* A column holding only a menu sits beside the next one like it,
	   unless the site chose how many columns go to a line. */
	.mlsg-gb-site-footer:not(.mlsg-gb-site-footer--cols-m-1, .mlsg-gb-site-footer--cols-m-2) .mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__inner > .mlsg-gb-site-footer__col:has(> .mlsg-gb-site-footer__item:only-child > .mlsg-gb-site-footer__menu) {
		flex: 1 1 40%;
	}

	.mlsg-gb-site-footer__row--top .mlsg-gb-site-footer__col:last-child:not(:first-child),
	.mlsg-gb-site-footer__row--bottom .mlsg-gb-site-footer__col:last-child:not(:first-child) {
		justify-content: flex-start;
	}

	.mlsg-gb-site-footer--stack-center .mlsg-gb-site-footer__col,
	.mlsg-gb-site-footer--stack-center .mlsg-gb-site-footer__row--top .mlsg-gb-site-footer__col:last-child,
	.mlsg-gb-site-footer--stack-center .mlsg-gb-site-footer__row--bottom .mlsg-gb-site-footer__col:last-child {
		align-items: center;
		justify-content: center;
		text-align: center;
	}

	.mlsg-gb-site-footer--stack-center .mlsg-gb-site-footer__about {
		margin-inline: auto;
	}
}

/* No footer chosen: the required lines, slim. */
.mlsg-gb-site-footer--minimum .mlsg-gb-site-footer__inner {
	padding-top: var(--mlsg-gb-space-md);
	padding-bottom: var(--mlsg-gb-space-md);
}

.mlsg-gb-site-footer--minimum .mlsg-gb-compliance {
	padding-top: 0;
	border-top: 0;
}

@media (prefers-reduced-motion: reduce) {
	.mlsg-gb-to-top,
	.mlsg-gb-menu .sub-menu,
	.mlsg-gb-menu__bars > span,
	.mlsg-gb-menu.is-compact .mlsg-gb-menu__panel,
	.mlsg-gb-menu.is-compact.is-open .mlsg-gb-menu__panel,
	.mlsg-gb-account__caret {
		transition: none;
	}
}

/* ── Colors chosen in Genie Theme's Customizer ─────────────────────────────
   Each chosen color arrives as a custom property on the header or footer
   (--mlsg-gb-hc-* / --mlsg-gb-fc-*) with a class saying it is set; these
   rules apply it ahead of the row colors. Last in the file so they win ties. */

.mlsg-gb-site-header.mlsg-gb-site-header--c-bg-top .mlsg-gb-site-header__row--top { background: var(--mlsg-gb-hc-bg-top); }
.mlsg-gb-site-header.mlsg-gb-site-header--c-bg-main .mlsg-gb-site-header__row--main { background: var(--mlsg-gb-hc-bg-main); }
.mlsg-gb-site-header.mlsg-gb-site-header--c-bg-bottom .mlsg-gb-site-header__row--bottom { background: var(--mlsg-gb-hc-bg-bottom); }

.mlsg-gb-site-header.mlsg-gb-site-header--c-logo-name .mlsg-gb-logo {
	--mlsg-gb-site-text: var(--mlsg-gb-hc-logo-name);
	color: var(--mlsg-gb-hc-logo-name);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-menu-link .mlsg-gb-menu {
	--mlsg-gb-menu-link: var(--mlsg-gb-hc-menu-link);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-menu-hover .mlsg-gb-menu {
	--mlsg-gb-menu-link-hover: var(--mlsg-gb-hc-menu-hover);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-menu-button .mlsg-gb-menu__toggle {
	--mlsg-gb-site-text: var(--mlsg-gb-hc-menu-button);
	color: var(--mlsg-gb-hc-menu-button);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-panel-bg .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel,
.mlsg-gb-site-header.mlsg-gb-site-header--c-panel-bg .mlsg-gb-menu .sub-menu {
	--mlsg-gb-menu-drop-bg: var(--mlsg-gb-hc-panel-bg);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-panel-link .mlsg-gb-menu.is-compact .mlsg-gb-menu__panel,
.mlsg-gb-site-header.mlsg-gb-site-header--c-panel-link .mlsg-gb-menu .sub-menu {
	--mlsg-gb-menu-link: var(--mlsg-gb-hc-panel-link);
	--mlsg-gb-menu-link-hover: var(--mlsg-gb-hc-panel-link);
	color: var(--mlsg-gb-hc-panel-link);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-phone .mlsg-gb-actions__phone {
	--mlsg-gb-site-text: var(--mlsg-gb-hc-phone);
	--mlsg-gb-site-accent: var(--mlsg-gb-hc-phone);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-button-bg .mlsg-gb-actions a.mlsg-gb-actions__button {
	background: var(--mlsg-gb-hc-button-bg);
	border-color: var(--mlsg-gb-hc-button-bg);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-button-text .mlsg-gb-actions a.mlsg-gb-actions__button,
.mlsg-gb-site-header.mlsg-gb-site-header--c-button-text .mlsg-gb-actions a.mlsg-gb-actions__button:hover {
	color: var(--mlsg-gb-hc-button-text);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-account .mlsg-gb-account {
	--mlsg-gb-site-text: var(--mlsg-gb-hc-account);
	--mlsg-gb-site-accent: var(--mlsg-gb-hc-account);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-social:not(.mlsg-gb-site-header--social-style-filled) .mlsg-gb-social {
	--mlsg-gb-site-text: var(--mlsg-gb-hc-social);
	--mlsg-gb-site-accent: var(--mlsg-gb-hc-social);
}

/* Filled: Icon color is the icon, Circle color the circle. */
.mlsg-gb-site-header.mlsg-gb-site-header--c-social.mlsg-gb-site-header--social-style-filled .mlsg-gb-social {
	--mlsg-gb-social-icon: var(--mlsg-gb-hc-social);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-social-bg .mlsg-gb-social {
	--mlsg-gb-social-fill: var(--mlsg-gb-hc-social-bg);
	--mlsg-gb-social-fill-hover: var(--mlsg-gb-hc-social-bg);
}

.mlsg-gb-site-header.mlsg-gb-site-header--c-search .mlsg-gb-hdr-search {
	--mlsg-gb-site-text: var(--mlsg-gb-hc-search);
	--mlsg-gb-site-accent: var(--mlsg-gb-hc-search);
}

.mlsg-gb-site-footer.mlsg-gb-site-footer--c-bg-top .mlsg-gb-site-footer__row--top { --mlsg-gb-site-footer-bg: var(--mlsg-gb-fc-bg-top); }
.mlsg-gb-site-footer.mlsg-gb-site-footer--c-bg-main .mlsg-gb-site-footer__row--main { --mlsg-gb-site-footer-bg: var(--mlsg-gb-fc-bg-main); }
.mlsg-gb-site-footer.mlsg-gb-site-footer--c-bg-bottom .mlsg-gb-site-footer__row--bottom { --mlsg-gb-site-footer-bg: var(--mlsg-gb-fc-bg-bottom); }

.mlsg-gb-site-footer.mlsg-gb-site-footer--c-text .mlsg-gb-site-footer__row {
	--mlsg-gb-site-footer-text: var(--mlsg-gb-fc-text);
}

.mlsg-gb-site-footer.mlsg-gb-site-footer--c-heading .mlsg-gb-site-footer__heading {
	color: var(--mlsg-gb-fc-heading);
}

.mlsg-gb-site-footer.mlsg-gb-site-footer--c-link .mlsg-gb-site-footer__row .mlsg-gb-site-footer__list a,
.mlsg-gb-site-footer.mlsg-gb-site-footer--c-link .mlsg-gb-site-footer__row .mlsg-gb-footer-menu a,
.mlsg-gb-site-footer.mlsg-gb-site-footer--c-link .mlsg-gb-site-footer__row a.mlsg-gb-site-footer__line,
.mlsg-gb-site-footer.mlsg-gb-site-footer--c-link .mlsg-gb-site-footer__row .mlsg-gb-compliance a {
	color: var(--mlsg-gb-fc-link);
}

.mlsg-gb-site-footer.mlsg-gb-site-footer--c-link-hover .mlsg-gb-site-footer__row .mlsg-gb-site-footer__list a:hover,
.mlsg-gb-site-footer.mlsg-gb-site-footer--c-link-hover .mlsg-gb-site-footer__row .mlsg-gb-footer-menu a:hover,
.mlsg-gb-site-footer.mlsg-gb-site-footer--c-link-hover .mlsg-gb-site-footer__row a.mlsg-gb-site-footer__line:hover,
.mlsg-gb-site-footer.mlsg-gb-site-footer--c-link-hover .mlsg-gb-site-footer__row .mlsg-gb-compliance a:hover {
	color: var(--mlsg-gb-fc-link-hover);
}

.mlsg-gb-site-footer.mlsg-gb-site-footer--c-social:not(.mlsg-gb-site-footer--social-style-filled) .mlsg-gb-site-footer__row .mlsg-gb-social {
	--mlsg-gb-site-text: var(--mlsg-gb-fc-social);
	--mlsg-gb-site-accent: var(--mlsg-gb-fc-social);
}

.mlsg-gb-site-footer.mlsg-gb-site-footer--c-social.mlsg-gb-site-footer--social-style-filled .mlsg-gb-site-footer__row .mlsg-gb-social {
	--mlsg-gb-social-icon: var(--mlsg-gb-fc-social);
}

.mlsg-gb-site-footer.mlsg-gb-site-footer--c-social-bg .mlsg-gb-site-footer__row .mlsg-gb-social {
	--mlsg-gb-social-fill: var(--mlsg-gb-fc-social-bg);
	--mlsg-gb-social-fill-hover: var(--mlsg-gb-fc-social-bg);
}

/* A social link shown with an image of the site's own. */
.mlsg-gb-social__img {
	display: block;
	width: 1.1em;
	height: 1.1em;
	object-fit: contain;
}

/* An SVG of the site's own, drawn in the icon's color (GB_Contact::icon_html()). */
.mlsg-gb-social__mask {
	display: block;
	width: 1.1em;
	height: 1.1em;
	background-color: currentColor;
	-webkit-mask: var(--mlsg-social-icon) center / contain no-repeat;
	mask: var(--mlsg-social-icon) center / contain no-repeat;
}


/* Each header item sits in its own box (GB_Site_Parts::header()), so it can
   be placed and styled on its own. The box is the flex item in its slot. */
.mlsg-gb-site-header__item {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	min-width: 0;
}

/* The menu's box takes the room its links need, as the menu itself did. */
.mlsg-gb-site-header__item--menu {
	flex: 1 1 auto;
}

.mlsg-gb-site-header__item--menu:has( > .mlsg-gb-menu.is-compact ) {
	flex: 0 0 auto;
}

.mlsg-gb-site-header__slot--left > .mlsg-gb-site-header__item--menu { justify-content: flex-start; }
.mlsg-gb-site-header__slot--center > .mlsg-gb-site-header__item--menu { justify-content: center; }
.mlsg-gb-site-header__slot--right > .mlsg-gb-site-header__item--menu { justify-content: flex-end; }

/* The footer's main row: columns to a line on Tablet and on Mobile. */
@media (min-width: 48em) and (max-width: 64em) {
	.mlsg-gb-site-footer--cols-t-1 .mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__inner > .mlsg-gb-site-footer__col { flex: 1 1 100%; }
	.mlsg-gb-site-footer--cols-t-2 .mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__inner > .mlsg-gb-site-footer__col { flex: 1 1 calc((100% - 3rem) / 2); }
	.mlsg-gb-site-footer--cols-t-3 .mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__inner > .mlsg-gb-site-footer__col { flex: 1 1 calc((100% - 6rem) / 3); }
	.mlsg-gb-site-footer--cols-t-4 .mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__inner > .mlsg-gb-site-footer__col { flex: 1 1 calc((100% - 9rem) / 4); }
}

@media (max-width: 47.9375em) {
	.mlsg-gb-site-footer--cols-m-1 .mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__inner > .mlsg-gb-site-footer__col { flex: 1 1 100%; }
	.mlsg-gb-site-footer--cols-m-2 .mlsg-gb-site-footer__row--main .mlsg-gb-site-footer__inner > .mlsg-gb-site-footer__col { flex: 1 1 calc((100% - var(--mlsg-gb-space-md)) / 2); }
}
