/*
 * Mr Mounir Hakimi — component styles.
 * Tokens mirror the Elementor Global Colours and the Figma dev specs (frames 02–07).
 * Layout lives in Elementor; this file styles the shortcode components and the
 * states Elementor cannot set natively (hover lift, focus rings, arrows, accordion).
 */

:root {
	--navy: #212752;
	--navy-hover: #181c40;
	--navy-pressed: #10132e;
	--teal: #00859c;
	--teal-text: #006e82;
	--teal-tint: #e6f3f5;
	--teal-light: #bfe0e6;
	--ink: #141833;
	--muted: #5a6275;
	--line: #dce2ea;
	--surface: #f3f5f8;
	--white: #fff;
	--on-navy: #c9d0e6;
	--star: #f4c04e;
	--error: #b42318;
	--success: #2e7d5b;
	--r-btn: 8px;
	--r-card: 16px;
	--r-img: 20px;
	--ease: cubic-bezier(0.2, 0, 0, 1);
	--shadow-card: 0 16px 40px rgba(20, 24, 51, 0.14);
	--shadow-float: 0 12px 32px rgba(20, 26, 51, 0.12);
	--font-head: "Sora", system-ui, sans-serif;
	--font-body: "Manrope", system-ui, sans-serif;
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-family: var(--font-body);
	color: var(--ink);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--teal);
	outline-offset: 2px;
	border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

[hidden] { display: none !important; }
.mh-svg { flex: none; display: inline-block; vertical-align: middle; }
.mh-icon { display: inline-flex; line-height: 0; }
.elementor-widget-shortcode .elementor-shortcode { line-height: inherit; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor p { margin: 0 0 1em; }
.elementor-widget-heading .elementor-heading-title { margin: 0; }

/* ---------- icon tones and tiles ---------- */
.mh-tone-teal { color: var(--teal); }
.mh-tone-teal-text { color: var(--teal-text); }
.mh-tone-navy { color: var(--navy); }
.mh-tone-white { color: #fff; }
.mh-tone-muted { color: var(--muted); }
.mh-tone-star { color: var(--star); }
.mh-tile {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	flex: none;
	border-radius: 10px;
	background: var(--teal-tint);
	color: var(--teal-text);
}
.mh-tile--white { background: #fff; color: var(--navy); }

/* ---------- buttons ---------- */
a.mh-button,
.mh-button,
.mh-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 26px;
	border: 1.5px solid transparent;
	border-radius: var(--r-btn);
	background: var(--navy);
	color: #fff;
	font: 600 15px/1.2 var(--font-body);
	text-decoration: none;
	transition: background-color 150ms var(--ease), color 150ms var(--ease), border-color 150ms var(--ease), box-shadow 150ms var(--ease);
	fill: currentColor;
}
a.mh-button:hover,
.mh-btn .elementor-button:hover {
	background: var(--navy-hover);
	color: #fff;
	box-shadow: 0 8px 20px rgba(33, 39, 82, 0.22);
}
.mh-button:active,
.mh-btn .elementor-button:active { background: var(--navy-pressed); box-shadow: none; }

a.mh-button--outline,
.mh-btn--outline .elementor-button { background: transparent; border-color: var(--navy); color: var(--navy); }
a.mh-button--outline:hover,
.mh-btn--outline .elementor-button:hover { background: var(--navy); border-color: var(--navy); color: #fff; }

a.mh-button--white,
.mh-btn--white .elementor-button { background: #fff; color: var(--navy); }
a.mh-button--white:hover,
.mh-btn--white .elementor-button:hover { background: var(--teal-tint); color: var(--navy); box-shadow: none; }
.mh-button--white:active,
.mh-btn--white .elementor-button:active { background: var(--teal-light); }

.mh-btn--outline-light .elementor-button { background: transparent; border-color: rgba(255, 255, 255, 0.6); color: #fff; }
.mh-btn--outline-light .elementor-button:hover { background: #fff; border-color: #fff; color: var(--navy); box-shadow: none; }

.mh-btn .elementor-button:focus-visible,
.mh-button:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.mh-on-navy .mh-btn .elementor-button:focus-visible,
.mh-side--navy .mh-button:focus-visible,
.mh-card--navy .mh-button:focus-visible { outline-color: #fff; }

.mh-button .mh-svg { transition: transform 150ms var(--ease); }
.mh-button:hover .mh-svg { transform: translateX(3px); }

/* Elementor buttons: icon after the label through a mask, so the label stays a plain text field. */
.mh-btn .elementor-button-content-wrapper { align-items: center; gap: 10px; }
.mh-btn[class*="mh-ico-"] .elementor-button-text::after {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	margin-left: 10px;
	vertical-align: -4px;
	background: currentColor;
	-webkit-mask: var(--mh-ico) center / contain no-repeat;
	mask: var(--mh-ico) center / contain no-repeat;
	transition: transform 150ms var(--ease);
}
.mh-ico-arrow { --mh-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"); }
.mh-ico-phone { --mh-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.mh-ico-pin { --mh-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.1 7-11a7 7 0 1 0-14 0c0 4.9 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.mh-ico-arrow.mh-btn .elementor-button:hover .elementor-button-text::after { transform: translateX(3px); }

/* text link */
a.mh-link,
.mh-link,
.mh-btn--link .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--teal-text);
	font: 600 14px/1.5 var(--font-body);
	text-decoration: none;
	box-shadow: none;
	transition: color 150ms var(--ease), gap 150ms var(--ease);
}
a.mh-link:hover,
.mh-card__link:hover .mh-link,
.mh-btn--link .elementor-button:hover { color: var(--navy); background: none; box-shadow: none; text-decoration: underline; text-underline-offset: 3px; gap: 12px; }
.mh-btn--link[class*="mh-ico-"] .elementor-button-text::after { width: 16px; height: 16px; margin-left: 8px; vertical-align: -3px; }
.mh-on-navy .mh-btn--link .elementor-button { color: #fff; }

/* ---------- small text pieces ---------- */
.mh-eyebrow {
	margin: 0;
	color: var(--teal-text);
	font: 700 12px/1.4 var(--font-body);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.mh-caption { margin: 0; color: var(--muted); font: 500 12px/1.5 var(--font-body); letter-spacing: 0.01em; }
.mh-caption--teal { color: var(--teal-text); text-transform: uppercase; }

.mh-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 0; padding: 0; list-style: none; font: 400 14px/1.6 var(--font-body); }
.mh-crumbs li { color: var(--ink); }
.mh-crumbs li + li::before { content: "/"; margin-right: 8px; color: var(--line); }
nav.mh-crumbs a { color: var(--muted); text-decoration: none; }
.mh-crumbs a:hover { color: var(--teal-text); text-decoration: underline; }

.mh-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.mh-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: 999px;
	background: var(--teal-tint);
	color: var(--teal-text);
	font: 600 13px/1.5 var(--font-body);
}
.mh-chips--grey .mh-chip { background: var(--surface); color: var(--ink); }
.mh-address { display: flex; gap: 8px; align-items: flex-start; margin: 0; color: var(--muted); font: 400 14px/1.6 var(--font-body); }
.mh-address .mh-svg { margin-top: 3px; color: var(--teal); }
.mh-address--lg { font-size: 17px; color: var(--ink); font-weight: 500; }
.mh-actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* ---------- cards ---------- */
.mh-grid { display: grid; gap: 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mh-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mh-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mh-grid--compact { gap: 20px; }
.mh-empty { padding: 24px; border: 1px dashed var(--line); border-radius: var(--r-card); color: var(--muted); }

.mh-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--r-card);
	background: #fff;
	transition: transform 200ms var(--ease), box-shadow 200ms var(--ease);
}
.mh-card__link { display: flex; flex-direction: column; flex: 1; color: inherit; text-decoration: none; }
.mh-card__media { position: relative; aspect-ratio: 400 / 220; overflow: hidden; background: var(--surface); }
.mh-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms var(--ease); }
.mh-card__body { display: flex; flex-direction: column; flex: 1; gap: 12px; align-items: flex-start; padding: 24px 28px 28px; }
.mh-card__title { margin: 0; color: var(--navy); font: 600 20px/1.32 var(--font-head); letter-spacing: -0.006em; transition: color 150ms var(--ease); }
.mh-card__text { margin: 0; color: var(--muted); font: 400 14px/1.6 var(--font-body); }
.mh-card__meta { margin: 0; color: var(--muted); font: 500 12px/1.5 var(--font-body); }
.mh-card__spacer { flex: 1; min-height: 4px; }
.mh-card__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.mh-card--compact .mh-card__media { aspect-ratio: 253 / 150; }
.mh-card--compact .mh-card__title { font-size: 18px; }
.mh-card:has(.mh-card__link:hover),
.mh-card:has(.mh-card__link:focus-visible) { transform: translateY(-2px); box-shadow: var(--shadow-card); }
.mh-card__link:hover .mh-card__media img { transform: scale(1.03); }
.mh-card__link:hover .mh-card__title { color: var(--teal-text); }
.mh-card__link:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; border-radius: var(--r-card); }

.mh-play {
	position: absolute;
	left: 24px;
	bottom: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #fff;
	color: var(--navy);
	box-shadow: var(--shadow-float);
}

.mh-card--location .mh-card__title { font-size: 21px; }
.mh-card--location .mh-card__body { gap: 12px; padding: 24px 28px 28px; }
.mh-card--navy { border-color: var(--navy); background: var(--navy); }
.mh-card--navy .mh-card__body { gap: 16px; padding: 36px; }
.mh-card--navy .mh-card__title { color: #fff; font-size: 24px; }
.mh-card--navy .mh-card__text { color: var(--on-navy); font-size: 16px; line-height: 1.68; }

/* Elementor containers used as cards */
.mh-el-card { transition: transform 200ms var(--ease), box-shadow 200ms var(--ease); }
.mh-el-card:has(a:hover) { transform: translateY(-2px); box-shadow: var(--shadow-card); }

/* horizontal location scroller (Home) */
.mh-scroller {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 340px;
	gap: 24px;
	overflow-x: auto;
	padding: 4px 96px 24px 0;
	margin-right: calc((100vw - 100%) / -2);
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.mh-scroller::-webkit-scrollbar { display: none; }
.mh-scroller > .mh-card { scroll-snap-align: start; }
.mh-scroller .mh-card__media { aspect-ratio: 340 / 200; }
.mh-scroller .mh-card__title { font-size: 20px; }
.mh-scroll-btn, .elementor .mh-scroll-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: #fff;
	color: var(--navy);
	cursor: pointer;
	transition: background-color 150ms var(--ease), color 150ms var(--ease), border-color 150ms var(--ease);
}
.mh-scroll-btn--next, .elementor .mh-scroll-btn--next, .mh-scroll-btn:hover, .elementor .mh-scroll-btn:hover { border-color: var(--navy); background: var(--navy); color: #fff; }
.elementor .mh-scroll-btn--next:hover { background: var(--navy-hover); }
.mh-scroll-btns { display: flex; gap: 12px; }

/* ---------- filter pills ---------- */
.mh-filter { display: flex; flex-wrap: wrap; gap: 10px; }
.mh-pill, .elementor .mh-pill {
	padding: 10px 18px;
	border: 0;
	border-radius: 999px;
	background: var(--surface);
	color: var(--ink);
	font: 600 14px/1.5 var(--font-body);
	cursor: pointer;
	transition: background-color 150ms var(--ease), color 150ms var(--ease);
}
.elementor .mh-pill:hover, .elementor .mh-pill:focus { background: var(--teal-tint); color: var(--teal-text); }
.elementor .mh-pill.is-active { background: var(--navy); color: #fff; }

/* ---------- sidebar cards ---------- */
.mh-side {
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-items: flex-start;
	padding: 28px;
	border: 1px solid var(--line);
	border-radius: var(--r-card);
	background: #fff;
}
.mh-side--soft { border-color: transparent; background: var(--surface); }
.mh-side--navy { border-color: var(--navy); background: var(--navy); }
.mh-side__title { margin: 0; color: var(--navy); font: 600 19px/1.32 var(--font-head); letter-spacing: -0.006em; }
.mh-side__text { margin: 0; color: var(--muted); font: 400 14px/1.6 var(--font-body); }
.mh-side--navy .mh-side__title { color: #fff; }
.mh-side--navy .mh-side__text { color: var(--on-navy); }

.mh-facts { display: flex; flex-direction: column; gap: 16px; width: 100%; margin: 0; }
.mh-facts__row { display: flex; justify-content: space-between; gap: 12px; }
.mh-facts dt { flex: none; color: var(--muted); font: 400 14px/1.6 var(--font-body); }
.mh-facts dd { max-width: 190px; margin: 0; color: var(--ink); font: 600 14px/1.5 var(--font-body); text-align: right; }
.mh-side--stacked .mh-facts__row { flex-direction: column; gap: 2px; }
.mh-side--stacked .mh-facts dt { font: 500 12px/1.5 var(--font-body); letter-spacing: 0.01em; text-transform: uppercase; }
.mh-side--stacked .mh-facts dd { max-width: none; text-align: left; }
.mh-side--stacked { border-color: transparent; background: var(--surface); }

.mh-price { display: flex; justify-content: space-between; align-items: baseline; width: 100%; margin: 0; color: var(--ink); font: 600 14px/1.5 var(--font-body); }
.mh-price strong { color: var(--navy); font: 600 19px/1.32 var(--font-head); }

.mh-leaflet { display: flex; gap: 14px; align-items: center; }
.mh-leaflet__title { margin: 0; color: var(--ink); font: 600 14px/1.5 var(--font-body); }
.mh-leaflet__meta { margin: 4px 0 0; color: var(--muted); font: 500 12px/1.5 var(--font-body); }

.mh-sibs, .mh-toc { display: flex; flex-direction: column; width: 100%; margin: 0; padding: 0; list-style: none; }
.mh-sibs { gap: 14px; }
.mh-sibs li { margin: 0; }
.mh-sibs a, .mh-side .mh-sibs a { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--ink); font: 600 14px/1.5 var(--font-body); text-decoration: none; }
.mh-sibs a:hover { color: var(--teal-text); }
.mh-sibs .mh-svg { color: var(--teal); transition: transform 150ms var(--ease); }
.mh-sibs a:hover .mh-svg { transform: translateX(3px); }
.mh-sibs--thumbs a { justify-content: flex-start; gap: 14px; }
.mh-sibs--thumbs a img { width: 72px; max-width: 72px; height: 56px; flex: 0 0 72px; border-radius: 8px; object-fit: cover; }
.mh-toc { gap: 12px; }
.mh-side .mh-toc a, .mh-toc a { display: block; padding-left: 12px; border-left: 3px solid var(--teal); color: var(--ink); font: 400 14px/1.6 var(--font-body); text-decoration: none; }
.mh-toc a:hover { color: var(--teal-text); }

.mh-author { display: flex; gap: 14px; align-items: center; }
.mh-author img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; object-position: top; }
.mh-author__name { margin: 0; color: var(--ink); font: 600 14px/1.5 var(--font-body); }
.mh-author__meta { margin: 0; color: var(--muted); font: 500 12px/1.5 var(--font-body); }

/* ---------- entry text (Post Content widget) ---------- */
.mh-prose,
.mh-prose .elementor-widget-container { color: var(--muted); font: 400 16px/1.68 var(--font-body); }
.mh-prose h2,
.mh-steps h2,
.mh-related h2 { margin: 48px 0 16px; color: var(--navy); font: 600 24px/1.28 var(--font-head); letter-spacing: -0.012em; scroll-margin-top: 120px; }
.mh-prose h3 { margin: 32px 0 12px; color: var(--navy); font: 600 19px/1.32 var(--font-head); letter-spacing: -0.006em; }
.mh-prose > .elementor-widget-container > :first-child,
.mh-prose > :first-child,
.mh-steps > h2:first-child,
.mh-related > h2:first-child { margin-top: 0; }
.mh-prose p { margin: 0 0 16px; }
.mh-prose a { color: var(--teal-text); text-decoration: underline; text-underline-offset: 3px; }
.mh-prose a:hover { color: var(--navy); }
.mh-prose ul:not(.mh-chips):not(.mh-steps__list), .mh-list { display: flex; flex-direction: column; gap: 12px; margin: 0 0 16px; padding: 0; list-style: none; color: var(--ink); }
.mh-prose ul:not(.mh-chips) > li, .mh-list > li { position: relative; padding-left: 30px; }
.mh-prose ul:not(.mh-chips) > li::before, .mh-list > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	width: 18px;
	height: 18px;
	background: var(--teal);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.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 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.mh-list--pin > li::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.1 7-11a7 7 0 1 0-14 0c0 4.9 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.1 7-11a7 7 0 1 0-14 0c0 4.9 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}
.mh-prose ol:not(.mh-steps__list) { margin: 0 0 16px; padding-left: 22px; color: var(--ink); }
.mh-prose ol:not(.mh-steps__list) li { margin-bottom: 8px; }
.mh-prose img, .mh-prose .wp-block-image img { width: 100%; height: auto; border-radius: var(--r-img); }
.mh-prose figure { margin: 32px 0; }
.mh-prose figcaption { margin-top: 8px; color: var(--muted); font-size: 12px; }
.mh-prose blockquote,
.mh-prose .wp-block-quote {
	margin: 32px 0;
	padding: 28px 32px;
	border: 0;
	border-radius: var(--r-card);
	background: var(--teal-tint);
	color: var(--navy);
	font: 600 22px/1.4 var(--font-head);
	letter-spacing: -0.012em;
}
.mh-prose blockquote p { margin: 0 0 12px; color: inherit; font: inherit; }
.mh-prose blockquote cite { color: var(--teal-text); font: 600 14px/1.5 var(--font-body); font-style: normal; }
.mh-prose .mh-note,
.mh-note { color: var(--muted); font: 400 14px/1.6 var(--font-body); }
.mh-prose .wp-block-columns { gap: 20px; margin: 0 0 16px; }

/* side-by-side comparison (Columns block with the class "mh-compare") */
.mh-compare .wp-block-column {
	padding: 28px;
	border: 1px solid var(--line);
	border-radius: var(--r-card);
	background: #fff;
}
.mh-compare .wp-block-column:last-child { border-color: transparent; background: var(--teal-tint); }
.mh-compare h3 { margin-top: 0; }
.mh-compare ul { margin-bottom: 0 !important; }

/* media beside a list (Media & Text block) */
.mh-prose .wp-block-media-text { gap: 32px; margin: 0 0 16px; }
.mh-prose .wp-block-media-text .wp-block-media-text__content { padding: 0; }

/* numbered step cards (Columns block with the class "mh-numbered") */
.mh-numbered .wp-block-column { padding: 24px; border-radius: var(--r-card); background: var(--surface); }
.mh-numbered .wp-block-column h3 { margin: 0 0 8px; font-size: 18px; }
.mh-numbered .wp-block-column p { margin: 0; font-size: 14px; line-height: 1.6; }
.mh-numbered .wp-block-column p:first-child { margin-bottom: 8px; color: var(--teal); font: 600 19px/1.3 var(--font-head); }

/* ---------- recovery timeline ---------- */
.mh-steps { margin: 48px 0; }
.mh-prose .mh-steps:first-child { margin-top: 0; }
.mh-steps__note { margin: 0 0 20px; color: var(--muted); font: 400 14px/1.6 var(--font-body); }
.mh-steps__list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; }
.mh-steps__list li { display: flex; flex-direction: column; gap: 8px; padding: 20px; border-radius: var(--r-card); background: var(--surface); }
.mh-steps__list li::before { content: none !important; }
.mh-steps__list strong { color: var(--navy); font: 600 18px/1.32 var(--font-head); }
.mh-steps__list span { color: var(--muted); font: 400 14px/1.6 var(--font-body); }
.mh-steps__list li:last-child { background: var(--navy); }
.mh-steps__list li:last-child strong { color: #fff; }
.mh-steps__list li:last-child span { color: var(--on-navy); }

.mh-related { margin-top: 48px; }
.mh-prose .mh-related { margin: 24px 0 48px; }
.mh-prose .mh-card a, .mh-prose a.mh-card__link, .mh-prose a.mh-link, .mh-prose a.mh-button { text-decoration: none; }
.mh-prose .mh-card a { color: inherit; }
.mh-prose .mh-card img { border-radius: 0; height: 100%; }
.elementor-widget-theme-post-excerpt { color: var(--muted); font: 400 18px/1.65 var(--font-body); }
.elementor-widget-theme-post-excerpt p { margin: 0; }

/* ---------- FAQ accordion ---------- */
.mh-faq { border-top: 1px solid var(--line); }
.mh-faq__item { border-bottom: 1px solid var(--line); }
.mh-faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 22px 0;
	color: var(--navy);
	font: 600 19px/1.32 var(--font-head);
	letter-spacing: -0.006em;
	cursor: pointer;
	list-style: none;
	transition: color 150ms var(--ease);
}
.mh-faq__item summary::-webkit-details-marker { display: none; }
.mh-faq__item summary:hover { color: var(--teal-text); }
.mh-faq__item summary .mh-svg { color: var(--teal-text); }
.mh-faq__minus, .mh-faq__item[open] .mh-faq__plus { display: none; }
.mh-faq__item[open] .mh-faq__minus { display: inline-block; }
.mh-faq__answer { max-width: 760px; padding: 0 0 22px; color: var(--muted); font: 400 16px/1.68 var(--font-body); }
.mh-faq__answer p { margin: 0; }

/* native Accordion widget styled like the FAQ component */
.mh-accordion .elementor-accordion { border-top: 1px solid var(--line); }
.mh-accordion .elementor-accordion .elementor-accordion-item { border: 0; border-bottom: 1px solid var(--line); }
.mh-accordion .elementor-accordion .elementor-tab-title {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin: 0;
	padding: 22px 0;
	border: 0;
	color: var(--navy);
	font: 600 19px/1.32 var(--font-head);
	letter-spacing: -0.006em;
	cursor: pointer;
	transition: color 150ms var(--ease);
}
.mh-accordion .elementor-accordion .elementor-tab-title a { flex: 1; color: inherit; text-decoration: none; }
.mh-accordion .elementor-accordion .elementor-tab-title:hover { color: var(--teal-text); }
.mh-accordion .elementor-accordion .elementor-accordion-icon { float: none; width: auto; color: var(--teal-text); font-size: 16px; }
.mh-accordion .elementor-accordion .elementor-accordion-icon svg { fill: var(--teal-text); width: 16px; height: 16px; }
.mh-accordion .elementor-accordion .elementor-tab-content { max-width: 760px; padding: 0 0 22px; border: 0; color: var(--muted); font: 400 16px/1.68 var(--font-body); }
.mh-accordion .elementor-accordion .elementor-tab-content p { margin: 0; }

/* empty field blocks leave no gap */
.elementor-widget-shortcode:has(> .elementor-widget-container > .elementor-shortcode:empty),
.elementor-widget-shortcode:has(> .elementor-shortcode:empty) { display: none; }
.mh-if-faqs:not(:has(.mh-faq__item)) { display: none; }
.mh-maxw-560 { max-width: 560px !important; }
.mh-maxw-600 { max-width: 600px !important; }
.mh-maxw-640 { max-width: 640px !important; }
.mh-maxw-720 { max-width: 720px !important; }
.mh-grow { flex: 1 1 auto; }
.mh-hug.e-con { --width: auto; width: auto; flex: none; }

/* ---------- header ---------- */
header.elementor-location-header { position: sticky; top: 0; z-index: 100; }
.admin-bar header.elementor-location-header { top: 32px; }
.mh-header { transition: box-shadow 200ms var(--ease); }
.mh-header.is-scrolled { box-shadow: 0 6px 24px rgba(20, 24, 51, 0.08); }
.mh-header .mh-logo img { transition: height 200ms var(--ease); }
.mh-header.is-scrolled .mh-logo img { height: 44px; }
.mh-logo { display: inline-flex; line-height: 0; }
.mh-logo img { width: auto; height: 56px; }
.mh-footer .mh-logo img { height: 64px; }

.mh-nav .elementor-nav-menu--main .elementor-item {
	padding: 38px 0 37px;
	color: var(--ink);
	font: 600 15px/1.5 var(--font-body);
	transition: color 150ms var(--ease);
}
.mh-header.is-scrolled .mh-nav .elementor-nav-menu--main .elementor-item { padding: 24px 0 23px; }
.mh-nav .elementor-nav-menu--main .elementor-nav-menu { gap: 34px; flex-wrap: nowrap; justify-content: center; }
.mh-nav .elementor-nav-menu--main .elementor-item { white-space: nowrap; }
.mh-nav .elementor-nav-menu--main .elementor-item:hover,
.mh-nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
.mh-nav .elementor-nav-menu--main .current-menu-ancestor > .elementor-item { color: var(--teal-text); }
.mh-nav .elementor-nav-menu--main .elementor-item::after { content: none !important; }
.mh-nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
.mh-nav .elementor-nav-menu--main .current-menu-ancestor > .elementor-item { box-shadow: inset 0 -3px 0 var(--teal); }
.mh-nav .elementor-menu-toggle { padding: 10px; border-radius: 8px; background: none; color: var(--navy); }
.mh-nav .elementor-nav-menu--dropdown { border-top: 1px solid var(--line); background: #fff; box-shadow: 0 24px 40px rgba(20, 24, 51, 0.12); }
.mh-nav .elementor-nav-menu--dropdown .elementor-item {
	padding: 18px 20px;
	border-bottom: 1px solid var(--line);
	color: var(--navy);
	font: 600 18px/1.3 var(--font-head);
}
.mh-nav .elementor-nav-menu--dropdown .elementor-item:hover,
.mh-nav .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
.mh-nav .elementor-nav-menu--dropdown .current-menu-ancestor > .elementor-item { background: #fff; color: var(--teal-text); }
.mh-header-contact a, .elementor .mh-header-contact a { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font: 600 15px/1.5 var(--font-body); text-decoration: none; }
.mh-header-contact a:hover, .mh-header-contact a[aria-current="page"] { color: var(--teal-text); }
.mh-header-contact .mh-svg { color: var(--teal); }

/* ---------- footer ---------- */
.mh-footer-links ul { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
.elementor .mh-footer-links a, .mh-footer-links a { color: var(--muted); font: 400 14px/1.6 var(--font-body); text-decoration: none; }
.mh-footer-links a:hover { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.mh-footer-map img { width: 100%; height: 180px; border-radius: var(--r-card); object-fit: cover; }
.mh-legal { display: flex; gap: 24px; }
.elementor .mh-legal a, .elementor .mh-powered a { color: var(--muted); font: 400 14px/1.6 var(--font-body); text-decoration: none; }
.mh-powered a { font-weight: 600; }
.mh-legal a:hover, .mh-powered a:hover { color: var(--navy); text-decoration: underline; }

/* mobile sticky action bar */
.mh-actionbar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 90;
	display: none;
	gap: 10px;
	padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--line);
	background: #fff;
	box-shadow: 0 -6px 20px rgba(20, 24, 51, 0.1);
}
.mh-actionbar .mh-button { padding: 0 18px; }
.mh-actionbar .mh-button:last-child { flex: 1; }

/* ---------- misc blocks ---------- */
.mh-badge, .mh-badge.e-con {
	position: absolute;
	top: auto !important;
	right: auto !important;
	left: 20px !important;
	bottom: 20px !important;
	height: auto;
	min-height: 0;
	z-index: 2;
	width: auto !important;
	max-width: calc(100% - 40px);
	padding: 16px 20px;
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--shadow-float);
}
.mh-img-wrap { position: relative; }
.mh-img img, .mh-img-wrap img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mh-stat-divider { border-left: 1px solid rgba(255, 255, 255, 0.18); }
.mh-quote-mark { color: var(--teal); font: 600 64px/0.6 var(--font-head); }
.mh-stars { display: inline-flex; gap: 4px; color: var(--star); }
.mh-table { width: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-card); border-collapse: separate; border-spacing: 0; background: #fff; }
.mh-table th { padding: 20px 32px; background: var(--navy); color: #fff; font: 600 14px/1.5 var(--font-body); text-align: left; }
.mh-table td { padding: 20px 32px; border: 0; color: var(--ink); font: 400 16px/1.68 var(--font-body); }
.mh-table th:last-child, .mh-table td:last-child { text-align: right; }
.mh-table td:last-child { color: var(--navy); font: 600 18px/1.3 var(--font-head); }
.mh-table tbody tr:nth-child(even) td { background: var(--surface); }
.mh-table tbody tr:nth-child(odd) td { background: #fff; }
.mh-timeline-dot { width: 14px; height: 14px; border-radius: 50%; background: var(--navy); }
.mh-404 { color: var(--teal); font: 600 96px/1 var(--font-head); letter-spacing: -0.03em; }

/* ---------- forms (PRO Elements Form widget) ---------- */
.mh-form .elementor-field-group > label,
.mh-form .elementor-field-label { margin-bottom: 8px; color: var(--ink); font: 600 14px/1.5 var(--font-body); }
.mh-form .elementor-field-textual,
.mh-form .elementor-select-wrapper select {
	min-height: 55px;
	padding: 14px 16px;
	border: 1px solid var(--line);
	border-radius: var(--r-btn);
	background-color: #fff;
	color: var(--ink);
	font: 400 15px/1.68 var(--font-body);
	transition: border-color 150ms var(--ease), box-shadow 150ms var(--ease);
}
.mh-form .elementor-field-textual::placeholder { color: var(--muted); opacity: 1; }
.mh-form .elementor-field-textual:hover,
.mh-form .elementor-select-wrapper select:hover { border-color: var(--muted); }
.mh-form .elementor-field-textual:focus,
.mh-form .elementor-select-wrapper select:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(0, 133, 156, 0.22); outline: 0; }
.mh-form textarea.elementor-field-textual { min-height: 110px; resize: vertical; }
.mh-form .elementor-field-group.elementor-error .elementor-field-textual { border-color: var(--error); border-width: 1.5px; }
.mh-form .elementor-message.elementor-message-danger,
.mh-form .elementor-field-group .elementor-message { margin-top: 6px; color: var(--error); font: 500 13px/1.5 var(--font-body); }
.mh-form .elementor-message.elementor-message-success { padding: 18px; border: 1px solid var(--success); border-radius: 12px; background: #edf7f1; color: var(--success); font: 600 14px/1.5 var(--font-body); }
.mh-form .elementor-field-type-radio .elementor-field-subgroup { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; width: 100%; }
.mh-form .elementor-field-type-radio .elementor-field-option { position: relative; display: block; margin: 0; padding: 0; }
.mh-form .elementor-field-type-radio input { position: absolute; opacity: 0; }
.mh-form .elementor-field-type-radio .elementor-field-option label {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 50px;
	padding: 12px 16px;
	border: 1.5px solid var(--line);
	border-radius: var(--r-btn);
	background: #fff;
	color: var(--ink);
	font: 600 15px/1.5 var(--font-body);
	cursor: pointer;
	transition: border-color 150ms var(--ease), background-color 150ms var(--ease);
}
.mh-form .elementor-field-type-radio .elementor-field-option label::before { content: ""; width: 16px; height: 16px; flex: none; border: 1.5px solid var(--muted); border-radius: 50%; }
.mh-form .elementor-field-type-radio .elementor-field-option label:hover { border-color: var(--muted); }
.mh-form .elementor-field-type-radio input:checked + label { border-color: var(--teal); background: var(--teal-tint); }
.mh-form .elementor-field-type-radio input:checked + label::before { border: 5px solid var(--teal); background: #fff; }
.mh-form .elementor-field-type-radio input:focus-visible + label { outline: 2px solid var(--teal); outline-offset: 2px; }
.mh-form .elementor-field-type-acceptance .elementor-field-option { display: flex; gap: 12px; align-items: flex-start; }
.mh-form .elementor-field-type-acceptance input { width: 20px; height: 20px; flex: none; margin: 1px 0 0; accent-color: var(--teal); }
.mh-form .elementor-field-type-acceptance label { color: var(--muted); font: 400 14px/1.6 var(--font-body); }
.mh-form .elementor-field-type-acceptance a { color: var(--teal-text); text-decoration: underline; }
.mh-form .elementor-button {
	min-height: 52px;
	padding: 0 26px;
	border-radius: var(--r-btn);
	background: var(--navy);
	color: #fff;
	font: 600 15px/1.2 var(--font-body);
	transition: background-color 150ms var(--ease), box-shadow 150ms var(--ease);
}
.mh-form .elementor-button:hover { background: var(--navy-hover); box-shadow: 0 8px 20px rgba(33, 39, 82, 0.22); }
.mh-form .elementor-field-group { margin-bottom: 8px; }

/* search box on the FAQs page */
.mh-search { display: flex; align-items: center; gap: 12px; max-width: 560px; padding: 14px 20px; border-radius: 12px; background: var(--surface); color: var(--muted); }
.mh-search input { flex: 1; border: 0; background: none; color: var(--ink); font: 400 16px/1.5 var(--font-body); outline: 0; }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
	.mh-grid, .mh-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mh-steps__list { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mh-scroller { padding-right: 32px; }
	.mh-nav .elementor-nav-menu--main .elementor-nav-menu { gap: 24px; }
}

@media (max-width: 767px) {
	.admin-bar header.elementor-location-header { top: 0; }
	.mh-logo img, .mh-header.is-scrolled .mh-logo img { height: 44px; }
	.mh-footer .mh-logo img { height: 56px; }
	.mh-grid, .mh-grid--2, .mh-grid--4 { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.mh-card__body { padding: 24px; }
	.mh-card--navy .mh-card__body { padding: 28px 24px; }
	.mh-card__actions { flex-direction: column; width: 100%; }
	.mh-card__actions .mh-button { width: 100%; }
	.mh-scroller { grid-auto-columns: 288px; gap: 16px; padding-right: 20px; }
	.mh-scroller .mh-card__actions .mh-button { width: auto; }
	.mh-actions { flex-direction: column; gap: 12px; }
	.mh-actions .mh-button { width: 100%; }
	.mh-btn--full-mobile .elementor-button { width: 100%; }
	.mh-side { padding: 24px; }
	.mh-side .mh-button { width: 100%; }
	.mh-steps__list { grid-template-columns: minmax(0, 1fr); }
	.mh-prose h2, .mh-steps h2, .mh-related h2 { margin-top: 40px; font-size: 21px; }
	.mh-prose h3 { font-size: 18px; }
	.mh-prose blockquote, .mh-prose .wp-block-quote { padding: 24px; font-size: 20px; }
	.mh-faq__item summary { font-size: 18px; gap: 16px; }
	.mh-table th, .mh-table td { padding: 16px 20px; }
	.mh-table td:last-child { font-size: 15px; }
	.mh-form .elementor-field-type-radio .elementor-field-subgroup { grid-template-columns: 1fr; gap: 10px; }
	.mh-form .elementor-button { width: 100%; }
	.mh-legal { gap: 24px; }
	.mh-stat-divider { border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.18); }
	.mh-404 { font-size: 64px; }
	.mh-actionbar { display: flex; }
	body { padding-bottom: 76px; }
	.mh-menu-open { overflow: hidden; }
	.mh-play { left: 50%; bottom: 50%; transform: translate(-50%, 50%); }
}

/* ---------- page pieces (Home and hub pages) ---------- */
.mh-regular .elementor-widget-container, .mh-regular p { font-weight: 400 !important; }
.mh-w-100 { width: 100%; }
.mh-img--top img { object-position: center top; }
.mh-caption--caps { text-transform: uppercase; letter-spacing: 0.08em; }
.mh-proof-wrap { width: 100%; padding-top: 24px; border-top: 1px solid var(--line); }
.mh-proof { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 0; padding: 0; list-style: none; color: var(--ink); font: 600 14px/1.5 var(--font-body); }
.mh-proof li { display: inline-flex; align-items: center; gap: 8px; }
.mh-proof .mh-svg { color: var(--teal); }
.mh-hero-media { position: relative; }
.mh-hero-media > .elementor-widget-shortcode { position: absolute; left: 24px; bottom: 24px; z-index: 2; width: auto; max-width: calc(100% - 48px); }
.mh-hero-card { padding: 20px 22px; border-radius: 14px; background: #fff; box-shadow: var(--shadow-float); }
.mh-hero-card .mh-caption { margin: 0 0 12px; }
.mh-hero-card ul { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; color: var(--ink); font: 600 15px/1.5 var(--font-body); }
.mh-hero-card li { display: flex; align-items: center; gap: 10px; }
.mh-hero-card .mh-svg { color: var(--teal); }
.mh-brands { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 44px; }
.mh-brands img { width: auto; height: 34px; max-width: 110px; object-fit: contain; }
.mh-brands--sm { gap: 16px 28px; }
.mh-logo-pill { display: inline-flex; align-items: center; padding: 10px 14px; border-radius: 8px; background: #fff; line-height: 0; }
.mh-logo-pill img { width: auto; height: 18px; }
.mh-linklist { display: flex; flex-direction: column; width: 100%; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.mh-linklist li { margin: 0; border-bottom: 1px solid var(--line); }
.elementor .mh-linklist a, .mh-linklist a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; color: var(--ink); font: 500 17px/1.5 var(--font-body); text-decoration: none; transition: color 150ms var(--ease); }
.mh-linklist a:hover { color: var(--teal-text); }
.mh-linklist .mh-svg { color: var(--teal); transition: transform 150ms var(--ease); }
.mh-linklist a:hover .mh-svg { transform: translateX(3px); }
.mh-ticks .mh-list { margin: 0; padding: 0; list-style: none; }
.mh-review-text p { font-size: 19px; line-height: 1.6; }
.mh-on-navy .mh-btn--link .elementor-button:hover { color: var(--teal-light); }
.mh-rule-light { border-color: rgba(255, 255, 255, 0.18) !important; }
.mh-bleed-right > .e-con-inner { overflow: visible; }
.mh-bleed-right { overflow: hidden; }
.mh-scroller { margin-right: calc((100vw - 100%) / -2); }
.mh-stat-divider .elementor-heading-title { white-space: nowrap; }
.mh-timeline { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; position: relative; }
.mh-timeline::before { content: ""; position: absolute; top: 6px; left: 0; right: 0; height: 2px; background: var(--line); }
.mh-timeline li { position: relative; display: flex; flex-direction: column; gap: 8px; padding-top: 36px; }
.mh-timeline li::before { content: ""; position: absolute; top: 0; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--navy); box-shadow: 0 0 0 4px #fff; }
.mh-timeline strong { color: var(--navy); font: 600 20px/1.32 var(--font-head); }
.mh-timeline span { color: var(--muted); font: 400 14px/1.6 var(--font-body); }
.mh-rating { display: flex; flex-direction: column; gap: 6px; }
.mh-rating__num { color: var(--navy); font: 600 72px/1 var(--font-head); letter-spacing: -0.03em; }
.mh-bars { display: flex; flex-direction: column; gap: 14px; width: 100%; margin: 0; padding: 0; list-style: none; }
.mh-bars li { display: grid; grid-template-columns: 150px 1fr auto; gap: 14px; align-items: center; color: var(--ink); font: 600 14px/1.5 var(--font-body); }
.mh-bars i { display: block; height: 8px; border-radius: 4px; background: var(--teal-tint); overflow: hidden; }
.mh-bars i b { display: block; height: 100%; border-radius: 4px; background: var(--teal); }
.mh-bars span { color: var(--muted); font-weight: 400; }
.mh-notice { padding: 18px 22px; border: 1px dashed var(--teal); border-radius: 12px; background: var(--teal-tint); color: var(--teal-text); font: 500 14px/1.6 var(--font-body); }
.mh-map-legend { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 0; padding: 0; list-style: none; color: var(--ink); font: 600 14px/1.5 var(--font-body); }
.mh-map-legend li { display: inline-flex; align-items: center; gap: 8px; }
.mh-map-legend .mh-svg { color: var(--teal); }
.mh-legal-body h2 { margin: 40px 0 12px; color: var(--navy); font: 600 24px/1.28 var(--font-head); letter-spacing: -0.012em; }
.mh-legal-body h2:first-child { margin-top: 0; }
.mh-legal-body p { margin: 0 0 16px; color: var(--muted); font: 400 16px/1.68 var(--font-body); }
.mh-legal-body table { width: 100%; margin: 0 0 16px; border-collapse: collapse; font: 400 14px/1.6 var(--font-body); }
.mh-legal-body th, .mh-legal-body td { padding: 12px 14px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.mh-legal-body th { background: var(--surface); color: var(--ink); font-weight: 600; }

@media (max-width: 1024px) {
	.mh-timeline { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 32px; }
	.mh-timeline::before { content: none; }
}
@media (max-width: 767px) {
	.mh-hero-media > .elementor-widget-shortcode { left: 16px; right: 16px; bottom: 16px; max-width: none; }
	.mh-brands { gap: 16px 28px; }
	.mh-brands img { height: 28px; }
	.mh-linklist a { font-size: 16px; padding: 16px 0; }
	.mh-timeline { grid-template-columns: minmax(0, 1fr); row-gap: 0; border-left: 2px solid var(--line); margin-left: 6px; }
	.mh-timeline li { padding: 0 0 24px 24px; }
	.mh-timeline li::before { left: -8px; top: 6px; }
	.mh-rating__num { font-size: 56px; }
	.mh-bars li { grid-template-columns: 1fr auto; }
	.mh-bars i { grid-column: 1 / -1; order: 3; }
	.mh-scroller { margin-right: -20px; }
}

.mh-form .elementor-field-type-radio .elementor-field-subgroup .elementor-field-option label { width: 100%; margin: 0; }
.mh-form .elementor-field-type-radio .elementor-field-subgroup.elementor-subgroup-inline .elementor-field-option { padding-inline-end: 0; }
.mh-form .elementor-field-group.elementor-field-type-select .elementor-select-wrapper { width: 100%; }
.mh-form .elementor-select-wrapper::before { content: none; }
.mh-form .elementor-select-wrapper select {
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
	padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6275' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 18px;
}
.mh-form .elementor-field-group { padding-inline: 8px; }
.mh-form .elementor-form-fields-wrapper { margin-inline: -8px; }
.mh-form .e-form__buttons { margin-top: 8px; }

/* ---------- listings: featured, pagination, compact cards, FAQ search ---------- */
.mh-grid--auto { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.mh-card--compact .mh-card__body { gap: 6px; padding: 20px 24px 24px; }
.mh-featured { display: grid; grid-template-columns: minmax(0, 680fr) minmax(0, 520fr); gap: 48px; align-items: center; }
.mh-featured__media { display: block; overflow: hidden; border-radius: var(--r-img); aspect-ratio: 680 / 420; background: var(--surface); }
.mh-featured__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 500ms var(--ease); }
.mh-featured:hover .mh-featured__media img { transform: scale(1.03); }
.mh-featured__body { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.mh-featured__title { margin: 0; font: 600 42px/1.16 var(--font-head); letter-spacing: -0.024em; }
.elementor .mh-featured__title a, .mh-featured__title a { color: var(--navy); text-decoration: none; }
.mh-featured__title a:hover { color: var(--teal-text); }
.mh-featured__text { margin: 0; color: var(--muted); font: 400 18px/1.65 var(--font-body); }
.mh-featured .mh-caption { margin: 0; }
.mh-pagination { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.elementor .mh-pagination .page-numbers, .mh-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font: 600 14px/1 var(--font-body); text-decoration: none; transition: background-color 150ms var(--ease), color 150ms var(--ease), border-color 150ms var(--ease); }
.mh-pagination a.page-numbers:hover { border-color: var(--navy); color: var(--navy); }
.elementor .mh-pagination .page-numbers.current { border-color: var(--navy); background: var(--navy); color: #fff; }
.mh-search .mh-svg { color: var(--muted); }
.mh-search input::-webkit-search-cancel-button { cursor: pointer; }
.mh-search-empty { margin: 16px 0 0; color: var(--muted); font: 400 16px/1.68 var(--font-body); }
.mh-faq-group[hidden] { display: none !important; }
.mh-img-wrap > .mh-map-legend { position: absolute; top: 24px; left: 24px; z-index: 2; width: auto; }
.mh-map-card { padding: 20px 24px; border-radius: 14px; background: #fff; box-shadow: var(--shadow-float); }
.mh-map-card .mh-caption { margin: 0 0 12px; }
.mh-map-card ul { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; color: var(--ink); font: 600 14px/1.5 var(--font-body); }
.mh-map-card li { display: flex; align-items: center; gap: 10px; }
.mh-map-card li::before { content: ""; width: 10px; height: 10px; flex: none; border-radius: 50%; background: var(--teal); }
.elementor .mh-map-card a, .mh-map-card a { color: inherit; text-decoration: none; }
.mh-map-card a:hover { color: var(--teal-text); }
.mh-review-meta { display: flex; justify-content: space-between; gap: 12px; width: 100%; margin: 0; color: var(--muted); font: 500 12px/1.5 var(--font-body); }
.mh-review-meta strong { color: var(--teal-text); font: 600 14px/1.5 var(--font-body); }
.mh-stars--sm .mh-svg { width: 16px; height: 16px; }

@media (max-width: 1024px) {
	.mh-featured { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}
@media (max-width: 767px) {
	.mh-featured__title { font-size: 28px; letter-spacing: -0.02em; }
	.mh-featured__text { font-size: 16px; }
	.mh-featured .mh-button { width: 100%; }
	.mh-img-wrap > .mh-map-legend { position: static; width: 100%; margin-top: 16px; }
	.mh-map-card { box-shadow: none; border: 1px solid var(--line); }
	.mh-grid--auto { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- reviews page ---------- */
.mh-maxw-900 { max-width: 900px !important; }
.mh-maxw-320 { max-width: 320px !important; }
.mh-btn--block, .mh-btn--block .elementor-button { width: 100%; }
.mh-rating-row { display: flex; align-items: center; gap: 18px; }
.mh-on-navy .mh-rating__num { color: #fff; }
.mh-rating__side { display: flex; flex-direction: column; gap: 6px; color: var(--on-navy); font: 400 14px/1.6 var(--font-body); }
.mh-rating-list { display: flex; flex-direction: column; width: 100%; margin: 0; padding: 0; list-style: none; }
.mh-rating-list li { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid rgba(255, 255, 255, 0.18); color: #fff; font: 600 14px/1.5 var(--font-body); }
.mh-rating-list li span:last-child { color: var(--on-navy); font-weight: 400; }
.mh-review[hidden] { display: none !important; }
.mh-review .elementor-widget-text-editor p { font-size: 18px; line-height: 1.6; }
a.mh-logo-pill:hover { background: var(--teal-tint); }
@media (max-width: 767px) {
	.mh-rating-row { gap: 14px; }
}

.mh-timeline li.is-current::before { background: var(--teal); }

.mh-maxw-760 { max-width: 760px !important; }
.mh-table th, .mh-table td { border: 0 !important; }
.mh-search input, .mh-search input[type="search"] { padding: 0; border: 0 !important; border-radius: 0; background: transparent !important; box-shadow: none !important; }
.mh-form .select-caret-down-wrapper { display: none; }
.mh-form .elementor-select-wrapper select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6275' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important; }

/* ---------- header: Contact link active on the Contact page ---------- */
.mh-header-contact a { position: relative; }
.mh-page-contact .mh-header-contact a, .elementor .mh-page-contact .mh-header-contact a { color: var(--teal-text); }
.mh-page-contact .mh-header-contact a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -38px; height: 3px; background: var(--teal); }
.mh-page-contact .mh-header.is-scrolled .mh-header-contact a::after { bottom: -24px; }
.mh-inline-links a { color: var(--teal-text); text-decoration: underline; text-underline-offset: 3px; }
.mh-inline-links a:hover { color: var(--navy); }

/* ---------- mobile menu sheet (Figma M/Menu 97:832) ---------- */
html.mh-menu-open, html.mh-menu-open body { overflow: hidden; }
html.mh-menu-open .mh-actionbar { display: none; }
#mh-mobile-nav .elementor-menu-toggle { width: 44px; height: 44px; margin: 0; padding: 10px; border-radius: 8px; background: none; color: var(--navy); }
#mh-mobile-nav .elementor-menu-toggle svg { width: 24px; height: 24px; fill: var(--navy); }
#mh-mobile-nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
	position: fixed !important;
	top: var(--mh-header-h, 73px) !important;
	left: 0 !important;
	right: 0 !important;
	width: 100vw !important;
	height: calc(100vh - var(--mh-header-h, 73px));
	height: calc(100dvh - var(--mh-header-h, 73px));
	max-height: none !important;
	margin: 0 !important;
	overflow-y: auto;
	overscroll-behavior: contain;
	border-top: 0;
	background: #fff;
	box-shadow: none;
	transform: none;
}
#mh-mobile-nav .elementor-nav-menu__container > .elementor-nav-menu { display: flex; flex-direction: column; min-height: 100%; margin: 0; padding: 8px 20px 0; }
#mh-mobile-nav .elementor-nav-menu > li { width: 100%; border-bottom: 1px solid var(--line); }
#mh-mobile-nav .elementor-nav-menu > li > a.elementor-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: var(--navy);
	font: 600 20px/1.2 var(--font-head);
	letter-spacing: -0.01em;
	white-space: normal;
}
#mh-mobile-nav .elementor-nav-menu > li > a.elementor-item:hover,
#mh-mobile-nav .elementor-nav-menu > li > a.elementor-item.highlighted,
#mh-mobile-nav .elementor-nav-menu > li.current-menu-item > a.elementor-item,
#mh-mobile-nav .elementor-nav-menu > li.current-menu-ancestor > a.elementor-item { background: none; color: var(--teal-text); }
#mh-mobile-nav .sub-arrow { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin: 0; padding: 0; color: var(--muted); transform: rotate(-90deg); transition: transform 200ms var(--ease), color 150ms var(--ease); }
#mh-mobile-nav .sub-arrow svg { width: 14px; height: 14px; fill: currentColor; }
#mh-mobile-nav a.highlighted .sub-arrow { color: var(--teal); transform: none; }
#mh-mobile-nav ul.sub-menu { position: static; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 0 10px 16px; border: 0; background: none; box-shadow: none; }
#mh-mobile-nav ul.sub-menu > li { border: 0; }
#mh-mobile-nav a.elementor-sub-item { padding: 11px 0; border: 0; background: none; color: var(--ink); font: 500 16px/1.5 var(--font-body); white-space: normal; }
#mh-mobile-nav a.elementor-sub-item:hover,
#mh-mobile-nav li.current-menu-item > a.elementor-sub-item { background: none; color: var(--teal-text); }
#mh-mobile-nav .elementor-nav-menu > li:nth-last-child(2) { margin-bottom: 24px; }
#mh-mobile-nav .elementor-nav-menu > li.mh-menu-actions { display: flex; flex-direction: column; gap: 12px; width: auto; margin: auto -20px 0; padding: 20px 20px 28px; border: 0; background: var(--surface); }
#mh-mobile-nav .mh-menu-actions a.mh-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 52px;
	padding: 0 26px;
	border: 1.5px solid var(--navy);
	border-radius: var(--r-btn);
	background: var(--navy);
	color: #fff;
	font: 600 15px/1.2 var(--font-body);
}
#mh-mobile-nav .mh-menu-actions a.mh-button:hover { background: var(--navy-hover); color: #fff; }
#mh-mobile-nav .mh-menu-actions a.mh-button--outline { background: #fff; color: var(--navy); }
#mh-mobile-nav .mh-menu-actions a.mh-button--outline:hover { background: var(--navy); color: #fff; }
.mh-menu-note { margin: 2px 0 0; color: var(--muted); font: 500 12px/1.5 var(--font-body); text-align: center; }

/* ---------- hero: the clinics card sits under the photo on tablet and mobile (Figma M/Home) ---------- */
@media (max-width: 1024px) {
	.mh-hero-media > .elementor-widget-shortcode { position: static; left: auto; right: auto; bottom: auto; width: 100%; max-width: none; margin-top: 16px; }
	.mh-hero-card { padding: 22px 24px; border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: none; }
}
.mh-header-logo, .mh-header-logo .elementor-widget-container { line-height: 0; }
.mh-logo { display: flex; }

/* ---------- image beside text: the image is never shorter than the text column (tablet and desktop) ---------- */
@media (min-width: 768px) {
	.e-con:has(> .mh-media),
	.e-con:has(> .e-con-inner > .mh-media) { --align-items: stretch; }
	.e-con:has(> .mh-media) > .e-con:not(.mh-media),
	.e-con-inner:has(> .mh-media) > .e-con:not(.mh-media) { --justify-content: center; }
	.mh-media > .elementor-widget-image,
	.mh-media > .elementor-widget-theme-post-featured-image { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; }
	.mh-media > .elementor-widget > .elementor-widget-container,
	.mh-media > .elementor-widget a { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; }
	/* The height set on the image in Elementor is its minimum; it grows when the text beside it is taller. */
	.mh-media > .elementor-widget img { flex: 1 0 auto; }
}

/* ---------- desktop header: mega drop-downs ---------- */
.mh-nav-desktop, .mh-nav-desktop .elementor-widget-container, .mh-nav-desktop .elementor-shortcode { position: static !important; }
.mh-mega__list { display: flex; justify-content: center; gap: 20px; margin: 0; padding: 0; list-style: none; }
.mh-mega__list > li { position: static; margin: 0; }
.elementor .mh-mega__list > li > a, .mh-mega__list > li > a {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 38px 0 37px;
	color: var(--ink);
	font: 600 15px/1.5 var(--font-body);
	text-decoration: none;
	white-space: nowrap;
	transition: color 150ms var(--ease), padding 200ms var(--ease);
}
.mh-header.is-scrolled .mh-mega__list > li > a { padding: 24px 0 23px; }
.mh-mega__list > li > a:hover,
.mh-mega__list > li.is-open > a,
.mh-mega__list > li:focus-within > a,
.elementor .mh-mega__list > li.current-menu-item > a,
.elementor .mh-mega__list > li.current-menu-ancestor > a { color: var(--teal-text); }
.mh-mega__list > li.current-menu-item > a,
.mh-mega__list > li.current-menu-ancestor > a { box-shadow: inset 0 -3px 0 var(--teal); }
.mh-mega__chev { flex: none; width: 12px; height: 12px; color: var(--muted); transition: transform 200ms var(--ease), color 150ms var(--ease); }
.mh-mega__list > li.is-open > a .mh-mega__chev,
.mh-mega__list > li:hover > a .mh-mega__chev,
.mh-mega__list > li:focus-within > a .mh-mega__chev { color: var(--teal); transform: rotate(180deg); }
.mh-mega__panel {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 99;
	border-top: 1px solid var(--line);
	background: #fff;
	box-shadow: 0 28px 48px rgba(20, 24, 51, 0.12);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 160ms var(--ease), transform 160ms var(--ease), visibility 0s linear 160ms;
}
.mh-mega__list > li:hover > .mh-mega__panel,
.mh-mega__list > li:focus-within > .mh-mega__panel,
.mh-mega__list > li.is-open > .mh-mega__panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.mh-mega.is-dismissed .mh-mega__panel { opacity: 0 !important; visibility: hidden !important; }
.mh-mega__inner { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; align-items: stretch; max-width: 1296px; margin: 0 auto; padding: 40px 24px 48px; }
.mh-mega__main { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.mh-mega__main .mh-eyebrow { margin: 0; }
.mh-mega__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 40px; width: 100%; margin: 14px 0 22px; padding: 0; list-style: none; }
.mh-mega__links li { margin: 0; }
.elementor .mh-mega__links a, .mh-mega__links a { display: flex; flex-direction: column; gap: 2px; margin: 0 -14px; padding: 12px 14px; border-radius: 10px; text-decoration: none; white-space: normal; transition: background-color 150ms var(--ease); }
.mh-mega__links a strong { color: var(--navy); font: 600 16px/1.4 var(--font-head); letter-spacing: -0.006em; transition: color 150ms var(--ease); }
.mh-mega__links a span { color: var(--muted); font: 400 14px/1.5 var(--font-body); }
.mh-mega__links a:hover, .mh-mega__links a:focus-visible { background: var(--surface); }
.mh-mega__links a:hover strong { color: var(--teal-text); }
.mh-mega__groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; width: 100%; margin-bottom: 26px; }
.mh-mega__list-plain { display: flex; flex-direction: column; margin: 12px 0 0; padding: 0; list-style: none; }
.mh-mega__list-plain li { margin: 0; }
.elementor .mh-mega__list-plain a, .mh-mega__list-plain a { display: block; padding: 9px 0; color: var(--ink); font: 500 15px/1.5 var(--font-body); text-decoration: none; white-space: normal; transition: color 150ms var(--ease); }
.mh-mega__list-plain a:hover { color: var(--teal-text); }
.elementor .mh-mega__feature, .mh-mega__feature { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--r-card); background: var(--surface); text-decoration: none; white-space: normal; }
.mh-mega__feature img { display: block; width: 100%; height: 190px; object-fit: cover; transition: transform 500ms var(--ease); }
.mh-mega__feature:hover img { transform: scale(1.03); }
.mh-mega__feature-body { display: flex; flex: 1; flex-direction: column; gap: 8px; align-items: flex-start; padding: 22px 24px 24px; }
.mh-mega__feature-body strong { color: var(--navy); font: 600 18px/1.32 var(--font-head); letter-spacing: -0.006em; }
.mh-mega__feature-body > span:not(.mh-link) { color: var(--muted); font: 400 14px/1.6 var(--font-body); }
.mh-mega__feature-body .mh-link { margin-top: 6px; }


/* small laptops (1025–1279): tighten the header so nothing wraps or overflows */
@media (max-width: 1279px) {
	.mh-header .mh-logo img { height: 48px; }
	.mh-mega__list { gap: 18px; }
	.elementor .mh-mega__list > li > a { font-size: 14px; gap: 4px; }
	.mh-header-contact a .mh-header-contact__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.mh-header .mh-btn .elementor-button { padding-inline: 18px; }
	.mh-mega__inner { grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; }
	.mh-page-contact .mh-header-contact a::after { left: -4px; right: -4px; }
}
@media (max-width: 1120px) {
	.mh-header .mh-logo img, .mh-header.is-scrolled .mh-logo img { height: 40px; }
	.mh-mega__list { gap: 12px; }
	.elementor .mh-mega__list > li > a { font-size: 13.5px; }
	.mh-mega__chev { width: 12px; height: 12px; }
	.mh-header .mh-btn .elementor-button { padding-inline: 14px; font-size: 14px; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	#mh-mobile-nav .elementor-nav-menu__container > .elementor-nav-menu { padding-inline: 32px; }
	#mh-mobile-nav .elementor-nav-menu > li.mh-menu-actions { margin-inline: -32px; padding-inline: 32px; }
}

/* ---------- interactive Google Maps (load after consent; the static map is the poster) ---------- */
.mh-map { position: relative; width: 100%; height: 100%; min-height: inherit; overflow: hidden; background: var(--surface); }
.mh-map__poster, .mh-map__poster img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mh-map__gate { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 16px; background: rgba(243, 245, 248, 0.6); text-align: center; }
.mh-map .mh-map__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 18px;
	border: 1.5px solid var(--navy);
	border-radius: var(--r-btn);
	background: #fff;
	box-shadow: var(--shadow-float);
	color: var(--navy);
	font: 600 14px/1.2 var(--font-body);
	cursor: pointer;
	transition: background-color 150ms var(--ease), color 150ms var(--ease);
}
.mh-map .mh-map__btn:hover, .mh-map .mh-map__btn:focus-visible { background: var(--navy); color: #fff; }
.mh-map__note { color: var(--ink); font: 500 12px/1.5 var(--font-body); }
.elementor .mh-map__note a, .mh-map__note a { color: var(--teal-text); text-decoration: underline; text-underline-offset: 2px; }
.mh-map__frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mh-map.is-live .mh-map__poster, .mh-map.is-live .mh-map__gate { display: none; }
.mh-card__media .mh-map { position: absolute; inset: 0; }
.mh-mapall { display: flex; flex-direction: column; gap: 16px; width: 100%; }
.mh-mapall__tabs { display: flex; flex-wrap: wrap; gap: 10px; }
.mh-mapall > .mh-map { height: 560px; border-radius: var(--r-img); }
.mh-mapall--footer > .mh-map { height: 300px; border-radius: var(--r-card); }
.mh-media--map > .elementor-widget-shortcode { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 400px; }
.mh-media--map > .elementor-widget-shortcode > .elementor-widget-container,
.mh-media--map .elementor-shortcode { display: flex; flex: 1 1 auto; flex-direction: column; }
.mh-media--map .mh-map { flex: 1 1 auto; height: auto; min-height: 400px; border-radius: var(--r-img); }
.mh-mega__feature--map .mh-mapall > .mh-map { height: 190px; border-radius: 0; }
.mh-mega__feature--map .mh-map__note { display: none; }

/* ---------- cookie banner ---------- */
.mh-consent {
	position: fixed;
	left: 24px;
	bottom: 24px;
	z-index: 120;
	width: min(420px, calc(100vw - 32px));
	padding: 24px;
	border: 1px solid var(--line);
	border-radius: var(--r-card);
	background: #fff;
	box-shadow: var(--shadow-card);
}
.mh-consent__title { margin: 0 0 8px; color: var(--navy); font: 600 18px/1.32 var(--font-head); letter-spacing: -0.006em; }
.mh-consent__text { margin: 0 0 18px; color: var(--muted); font: 400 14px/1.6 var(--font-body); }
.mh-consent__text a { color: var(--teal-text); text-decoration: underline; text-underline-offset: 3px; }
.mh-consent__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.mh-consent .mh-button, .mh-prose button.mh-button, .mh-legal-body button.mh-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 20px;
	border: 1.5px solid var(--navy);
	border-radius: var(--r-btn);
	background: var(--navy);
	color: #fff;
	font: 600 15px/1.2 var(--font-body);
	cursor: pointer;
}
.mh-consent .mh-button:hover { background: var(--navy-hover); color: #fff; }
.mh-consent .mh-button--outline, .mh-legal-body button.mh-button--outline { background: #fff; color: var(--navy); }
.mh-consent .mh-button--outline:hover, .mh-legal-body button.mh-button--outline:hover { background: var(--navy); color: #fff; }

@media (max-width: 767px) {
	.mh-mapall > .mh-map { height: 380px; }
	.mh-mapall--footer > .mh-map { height: 280px; }
	.mh-media--map > .elementor-widget-shortcode, .mh-media--map .mh-map { min-height: 300px; }
	.mh-consent { left: 16px; right: 16px; bottom: 92px; width: auto; padding: 20px; }
	.mh-consent__actions .mh-button { flex: 1 1 140px; }
}

/* ---------- themed select (assets/js/form-controls.js) ---------- */
.mh-form .mh-select { position: relative; }
.mh-form .mh-select .mh-select__native { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; margin: 0; opacity: 0; pointer-events: none; }
.mh-form .mh-select .mh-select__button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	min-height: 55px;
	margin: 0;
	padding: 14px 16px;
	border: 1px solid var(--line);
	border-radius: var(--r-btn);
	background: #fff;
	color: var(--ink);
	font: 400 15px/1.68 var(--font-body);
	text-align: left;
	text-transform: none;
	letter-spacing: 0;
	cursor: pointer;
	transition: border-color 150ms var(--ease), box-shadow 150ms var(--ease);
}
.mh-form .mh-select .mh-select__button:hover { border-color: var(--muted); background: #fff; color: var(--ink); }
.mh-form .mh-select .mh-select__button:focus-visible,
.mh-form .mh-select.is-open .mh-select__button { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(0, 133, 156, 0.22); outline: 0; }
.mh-form .mh-select.is-invalid .mh-select__button { border: 1.5px solid var(--error); }
.mh-select__value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mh-select__button.is-placeholder .mh-select__value { color: var(--muted); }
.mh-select__chev { flex: none; color: var(--muted); transition: transform 200ms var(--ease), color 150ms var(--ease); }
.mh-select.is-open .mh-select__chev { color: var(--teal); transform: rotate(180deg); }
.mh-form .mh-select__list {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 30;
	max-height: 288px;
	margin: 0;
	padding: 6px;
	overflow-y: auto;
	list-style: none;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: #fff;
	box-shadow: var(--shadow-card);
}
.mh-form .mh-select.is-up .mh-select__list { top: auto; bottom: calc(100% + 6px); }
.mh-form .mh-select__list:focus { outline: 0; }
.mh-form .mh-select__list [role="option"] { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; margin: 0; padding: 10px 12px; border-radius: 8px; color: var(--ink); font: 500 15px/1.4 var(--font-body); cursor: pointer; }
.mh-form .mh-select__list [role="option"].is-active { background: var(--surface); }
.mh-form .mh-select__list:focus-visible [role="option"].is-active { box-shadow: inset 0 0 0 2px var(--teal); }
.mh-form .mh-select__list [role="option"][aria-selected="true"] { color: var(--teal-text); font-weight: 600; }
.mh-select__check { flex: none; visibility: hidden; color: var(--teal); }
[aria-selected="true"] > .mh-select__check { visibility: visible; }

/* ---------- themed date picker (assets/js/form-controls.js) ---------- */
.mh-form .mh-date { position: relative; width: 100%; }
.mh-form .mh-date input.elementor-field-textual { width: 100%; padding-right: 56px; }
.mh-form .mh-date .mh-date__toggle {
	position: absolute;
	top: 50%;
	right: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: var(--muted);
	transform: translateY(-50%);
	cursor: pointer;
	transition: background-color 150ms var(--ease), color 150ms var(--ease);
}
.mh-form .mh-date .mh-date__toggle:hover { background: var(--surface); color: var(--navy); }
.mh-form .mh-date.is-open .mh-date__toggle { color: var(--teal); }
.mh-form .mh-cal {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 30;
	width: 332px;
	padding: 16px;
	border: 1px solid var(--line);
	border-radius: var(--r-card);
	background: #fff;
	box-shadow: var(--shadow-card);
}
.mh-form .mh-date.is-up .mh-cal { top: auto; bottom: calc(100% + 6px); }
.mh-cal__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.mh-cal__title { margin: 0; color: var(--navy); font: 600 16px/1.3 var(--font-head); letter-spacing: -0.005em; }
.mh-form .mh-cal .mh-cal__nav { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: var(--r-btn); background: #fff; color: var(--navy); cursor: pointer; transition: background-color 150ms var(--ease), color 150ms var(--ease), border-color 150ms var(--ease); }
.mh-form .mh-cal .mh-cal__nav:hover:not(:disabled) { border-color: var(--navy); background: var(--navy); color: #fff; }
.mh-form .mh-cal .mh-cal__nav:disabled { opacity: 0.35; cursor: default; }
.mh-cal table, .mh-cal thead, .mh-cal tbody, .mh-cal tr, .mh-cal th, .mh-cal td { margin: 0; border: 0 !important; background: none !important; }
.mh-cal__grid { width: 100%; border-collapse: collapse; table-layout: fixed; }
.mh-cal__grid th { padding: 6px 0 8px; color: var(--muted); font: 600 12px/1 var(--font-body); letter-spacing: 0.04em; text-align: center; }
.mh-cal__grid td { padding: 1px; text-align: center; }
.mh-form .mh-cal .mh-cal__day {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--r-btn);
	background: transparent;
	color: var(--ink);
	font: 500 14px/1 var(--font-body);
	cursor: pointer;
	transition: background-color 150ms var(--ease), color 150ms var(--ease);
}
.mh-form .mh-cal .mh-cal__day.is-outside { color: var(--muted); opacity: 0.6; }
.mh-form .mh-cal .mh-cal__day:hover:not(:disabled) { background: var(--teal-tint); color: var(--teal-text); }
.mh-form .mh-cal .mh-cal__day.is-today { box-shadow: inset 0 0 0 1.5px var(--teal); }
.mh-form .mh-cal .mh-cal__day.is-selected, .mh-form .mh-cal .mh-cal__day.is-selected:hover { background: var(--navy); color: #fff; box-shadow: none; }
.mh-form .mh-cal .mh-cal__day:disabled { color: var(--line); cursor: not-allowed; opacity: 1; }
.mh-form .mh-cal .mh-cal__day:focus-visible { outline: 2px solid var(--teal); outline-offset: 1px; }
.mh-cal__foot { display: flex; justify-content: space-between; margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--line); }
.mh-form .mh-cal .mh-cal__link { margin: 0; padding: 6px 4px; border: 0; background: none; color: var(--muted); font: 600 14px/1.2 var(--font-body); cursor: pointer; }
.mh-form .mh-cal .mh-cal__link--teal { color: var(--teal-text); }
.mh-form .mh-cal .mh-cal__link:hover { background: none; color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 767px) {
	.mh-form .mh-cal { right: 0; width: auto; max-width: 350px; padding: 14px; }
	.mh-form .mh-cal .mh-cal__day { width: 38px; height: 38px; }
}
