:root {
	--teal: #005E57;
	--teal-deep: #043F3B;
	--ink: #12211F;
	--muted: #3A4744;
	--cream: #F4EFE6;
	--paper: #FBFAF6;
	--line: #D8D2C6;
	--alert: #B3261E;
	--alert-bg: #FDECEA;
	--shadow: 0 18px 40px rgba(4, 31, 28, 0.12);
	--radius: 16px;
	--serif: Inter, "Helvetica Neue", Arial, sans-serif;
	--sans: Inter, "Helvetica Neue", Arial, sans-serif;
	--header: 78px;
}

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

html {
	scroll-behavior: smooth;
	overflow-x: hidden;
	overflow-x: clip;
	overflow-y: auto;
	overflow-y: overlay;
	overscroll-behavior-x: none;
}
html,
body {
	scrollbar-width: none !important;
	scrollbar-color: transparent transparent;
	-ms-overflow-style: none;
	font-weight: 300;
}
html::-webkit-scrollbar,
html::-webkit-scrollbar-track,
html::-webkit-scrollbar-thumb,
html::-webkit-scrollbar-corner,
html::-webkit-scrollbar-button,
body::-webkit-scrollbar,
body::-webkit-scrollbar-track,
body::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-corner,
body::-webkit-scrollbar-button,
*::-webkit-scrollbar,
*::-webkit-scrollbar-track,
*::-webkit-scrollbar-thumb,
*::-webkit-scrollbar-corner,
*::-webkit-scrollbar-button {
	-webkit-appearance: none;
	appearance: none;
	display: none !important;
	width: 0 !important;
	height: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

@supports (-webkit-touch-callout: none) {
	@media (pointer: coarse) {
		html {
			height: 100%;
			overflow: hidden;
		}
		body {
			height: 100%;
			overflow-x: hidden;
			overflow-y: auto;
			-webkit-overflow-scrolling: touch;
			overscroll-behavior-x: none;
		}
	}
}

body {
	margin: 0;
	color: var(--ink);
	background: #fff;
	font-family: var(--sans);
	font-size: 18px;
	line-height: 1.65;
}

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

a { color: var(--teal); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--teal-deep); }

h1, h2, h3, h4 {
	font-family: var(--serif);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--ink);
}

.wrap {
	width: min(1120px, calc(100% - 40px));
	margin-inline: auto;
}

.sr-only, .skip-link:not(:focus) {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.skip-link:focus {
	position: absolute;
	z-index: 100;
	left: 16px;
	top: 16px;
	background: #fff;
	padding: 8px 12px;
}

.btn,
.btn-book,
input.wpcf7-submit,
.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 10px 22px;
	border: 0;
	border-radius: 999px;
	background: #fff;
	color: var(--teal) !important;
	border: 1px solid var(--teal);
	font: 500 16px/1 Inter, sans-serif;
	letter-spacing: 0 !important;
	text-decoration: none;
	cursor: pointer;
}

.btn:hover,
.btn-book:hover,
.wpcf7-submit:hover { background: var(--teal); color: #fff !important; }

html.nav-open,
body.nav-open {
	overflow: hidden;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: #fff;
	width: 100%;
}

.site-header__bar {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 0 0 36px;
	min-height: var(--header);
	display: flex;
	align-items: center;
	gap: 24px;
}

.site-logo {
	display: flex;
	align-items: center;
	min-width: 0;
	flex: 0 0 auto;
}

.site-logo__img {
	height: auto;
	width: auto;
	max-height: 60px;
	max-width: 100%;
	object-fit: contain;
	object-position: left center;
}
.site-header__actions { margin-left: auto; display: flex; align-items: center; gap: 12px; }

.btn-book {
	min-height: 52px;
	padding: 17px 42px;
	border-radius: 160px;
	font-weight: 600;
	letter-spacing: 1.6px;
}

.nav-desktop { display: none; }
.nav-toggle {
	width: 92px;
	height: var(--header);
	padding: 0 36px;
	border: 0;
	border-radius: 0;
	background: transparent;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	cursor: pointer;
}
.nav-toggle__lines {
	position: relative;
	display: block;
	width: 20px;
	height: 2px;
	background: #1a1a1a;
	transition: transform 0.2s ease, background 0.2s ease;
}
.nav-toggle__lines::before,
.nav-toggle__lines::after {
	content: "";
	position: absolute;
	left: 0;
	width: 20px;
	height: 2px;
	background: #1a1a1a;
	transition: transform 0.2s ease, top 0.2s ease, opacity 0.2s ease;
}
.nav-toggle__lines::before { top: -6px; }
.nav-toggle__lines::after { top: 6px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__lines {
	background: #1a1a1a;
	transform: rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .nav-toggle__lines::before {
	top: 0;
	transform: rotate(90deg);
}
.nav-toggle[aria-expanded="true"] .nav-toggle__lines::after {
	top: 0;
	opacity: 0;
}

.mega-root {
	display: flex;
	align-items: center;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.mega-root__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 28px 14px;
	color: #1a1a1a;
	text-decoration: none;
	font-weight: 600;
	font-size: 16px;
	transition: color 0.15s ease;
}
.mega-root__link:hover,
.mega-root__item.is-current > .mega-root__link,
.mega-root__link.is-current {
	color: var(--teal);
}
.mega-root__chevron {
	display: inline-block;
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7.4 8.6 12 13.2l4.6-4.6L18 10l-6 6-6-6z'/%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'%3E%3Cpath fill='%23000' d='M7.4 8.6 12 13.2l4.6-4.6L18 10l-6 6-6-6z'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s ease;
}
.mega-root__item.has-mega:hover > .mega-root__link .mega-root__chevron,
.mega-root__item.has-mega:focus-within > .mega-root__link .mega-root__chevron,
.mega-root__item.has-sub:hover > .mega-root__link .mega-root__chevron,
.mega-root__item.has-sub:focus-within > .mega-root__link .mega-root__chevron {
	transform: rotate(180deg);
}

.mega-root__item { position: relative; }
.mega-root__item.is-book { display: none; }

.mega-panel,
.mega-sub {
	display: none;
	position: absolute;
	top: calc(100% - 4px);
	left: 0;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 18px;
	box-shadow: var(--shadow);
	padding: 20px;
	min-width: 220px;
	list-style: none;
	margin: 0;
}

.mega-sub a {
	display: block;
	padding: 6px 0;
	color: var(--muted);
	text-decoration: none;
	font-size: 15px;
	font-weight: 400;
}
.mega-sub a:hover { color: var(--teal); }

.mega-ads {
	display: grid;
	grid-template-columns: 2fr minmax(280px, 1fr);
	min-height: 620px;
}
.mega-ads__feature {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-self: stretch;
	gap: 16px;
	padding: 28px 28px 36px;
	background:
		linear-gradient(180deg, rgba(0, 94, 87, 0.2), rgba(0, 94, 87, 0.92)),
		#005E57;
	color: #fff;
	container-type: size;
}
.mega-ads__photo {
	margin: 0 0 4px;
	align-self: flex-start;
	max-width: 100%;
	border-radius: 16px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.08);
}
.mega-ads__photo img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 40%;
	max-height: 40cqh;
	height: auto;
	object-fit: contain;
	object-position: left top;
}
.mega-ads__badge {
	display: inline-block;
	align-self: flex-start;
	margin: 0;
	padding: 10px 20px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	font: 500 32px / 1 Inter, sans-serif;
}
.mega-ads__lead {
	margin: 0;
	max-width: 22rem;
	color: #fff;
	font: 300 16px / 1.45 Inter, sans-serif;
}
.mega-ads__links {
	list-style: none;
	margin: auto 0 0;
	padding: 0;
}
.mega-ads__links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 7px 0;
	color: #fff;
	text-decoration: none;
	font: 600 16px / 1.3 Inter, sans-serif;
}
.mega-ads__links a:hover { opacity: 0.8; }
.mega-ads__chevron {
	flex: 0 0 auto;
	display: block;
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M8.6 7.4 13.2 12l-4.6 4.6L10 18l6-6-6-6z'/%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'%3E%3Cpath fill='%23000' d='M8.6 7.4 13.2 12l-4.6 4.6L10 18l6-6-6-6z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.mega-ads__cta {
	align-self: stretch;
	margin-top: 8px;
	min-height: 53px;
	padding: 15px 28px;
	background: #fff;
	color: #005E57 !important;
	border-color: #fff;
	font-size: 16px;
	font-weight: 600;
}
.mega-ads__cta:hover {
	background: transparent;
	color: #fff !important;
	border-color: #fff;
}
.mega-ads__main {
	display: flex;
	flex-direction: column;
	gap: 22px;
	padding: 40px 36px 32px;
}
.mega-ads__intro {
	margin: 0;
	padding-bottom: 20px;
	border-bottom: 1px solid #eee;
	color: #1a1a1a;
	font: 500 32px / 1.1 Inter, sans-serif;
	max-width: 40rem;
}
.mega-ads__group {
	padding-bottom: 18px;
	border-bottom: 1px solid #eee;
}
.mega-ads__label {
	margin: 0 0 14px;
	color: #005E57;
	font: 500 15px / 1.2 Inter, sans-serif;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.mega-ads__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px 18px;
}
.mega-ads__item {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	text-decoration: none;
	color: inherit;
}
.mega-ads__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 50px;
	width: 50px;
	height: 50px;
	border-radius: 5px;
	background: rgba(0, 94, 87, 0.1);
	color: #005E57;
}
.mega-ads__svg {
	width: 23px;
	height: 23px;
	display: block;
}
.mega-ads__copy {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.mega-ads__title {
	color: #303133;
	font: 500 15px / 1.2 Inter, sans-serif;
}
.mega-ads__text {
	color: #777;
	font: 300 13px / 1.3 Inter, sans-serif;
}
.mega-ads__item:hover .mega-ads__title { color: #005E57; }
.mega-ads__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px 24px;
	margin-top: auto;
	padding-top: 8px;
}
.mega-ads__book {
	background: #005E57;
	color: #fff !important;
	border-color: #005E57;
	min-height: 53px;
	padding: 15px 36px;
	font-size: 16px;
	font-weight: 600;
}
.mega-ads__book:hover {
	background: #004840;
	border-color: #004840;
}
.mega-ads__note {
	margin: 0;
	color: #777;
	font: 300 14px / 1.4 Inter, sans-serif;
	max-width: 18rem;
}

.nav-mobile {
	display: flex;
	position: fixed;
	inset: 0;
	z-index: 1;
	flex-direction: column;
	justify-content: space-between;
	background: #fff;
	padding: var(--header) 36px 36px;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	transform: translateY(-100%);
	transition: transform 0.5s ease-in-out;
}

.nav-mobile[hidden] {
	display: none;
}

.nav-mobile.is-open {
	transform: translateY(0);
}

.nav-overlay-links {
	display: block;
	list-style: none;
	margin: 36px 0 0;
	padding: 0;
}

.nav-overlay-item {
	padding-bottom: 30px;
}

.nav-overlay-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	color: #005E57;
	font: 600 23px / 1.2 Inter, sans-serif;
	text-align: left;
	cursor: pointer;
}

.nav-overlay-label {
	flex: 1 1 auto;
}

.nav-overlay-link {
	display: block;
	color: #005E57;
	font: 500 16px / 1.3 Inter, sans-serif;
	text-decoration: none;
}

.nav-overlay-item[data-level="0"] .nav-overlay-link {
	font: 600 23px / 1.2 Inter, sans-serif;
}

.nav-overlay-chevron__icon {
	flex: 0 0 auto;
	display: block;
	width: 24px;
	height: 24px;
	background: currentColor;
	color: #005E57;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7.4 8.6 12 13.2l4.6-4.6L18 10l-6 6-6-6z'/%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'%3E%3Cpath fill='%23000' d='M7.4 8.6 12 13.2l4.6-4.6L18 10l-6 6-6-6z'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s ease;
}

.acc-toggle[aria-expanded="true"] .nav-overlay-chevron__icon {
	transform: rotate(180deg);
}

.acc-panel {
	padding: 4px 0 0;
}

.nav-overlay-sub {
	list-style: none;
	margin: 0;
	padding: 8px 0 0 18px;
}

.nav-overlay-item[data-level="1"] .nav-overlay-row {
	font: 600 23px / 1.2 Inter, sans-serif;
}

.nav-overlay-item[data-level="2"] .nav-overlay-link {
	font: 600 23px / 1.2 Inter, sans-serif;
}

.nav-overlay-item[data-level="1"],
.nav-overlay-item[data-level="2"] {
	padding-bottom: 12px;
}

.nav-overlay-item[data-level="2"] .nav-overlay-link {
	padding-left: 4px;
}

.nav-overlay-foot { padding-top: 24px; }

.nav-overlay-meta p {
	margin: 0;
	font: 300 16px / 28px Inter, sans-serif;
	color: #000;
}

.nav-overlay-meta p + p { margin-top: 18px; }

.nav-overlay-meta a {
	color: #005E57;
	text-decoration: none;
}

.nav-mobile .btn-book--solid {
	display: flex;
	width: 100%;
	margin-top: 24px;
	min-height: 56px;
	background: #005E57;
	color: #fff !important;
	border-color: #005E57;
}

.nav-mobile .btn-book--solid:hover {
	background: var(--teal-deep);
	border-color: var(--teal-deep);
	color: #fff !important;
}

.page-hero {
	position: relative;
	overflow: hidden;
	background-color: #005E57;
	color: #fff;
	min-height: 420px;
	display: grid;
	place-items: end start;
}

.page-hero.has-media { background-color: #005E57; }

.page-hero > picture {
	display: contents;
}

.page-hero__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.page-hero__media--mobile {
	display: none;
}

.page-hero video.page-hero__media {
	object-fit: cover;
}

.page-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(4, 31, 28, 0.15), rgba(4, 31, 28, 0.62));
}

.page-hero__content {
	position: relative;
	z-index: 2;
	padding: 48px 0 56px;
	max-width: 46rem;
}

.page-hero h1 {
	color: #fff;
	font-size: clamp(2rem, 5vw, 3.6rem);
	text-shadow: 0 2px 12px rgba(0, 0, 0, .45);
	margin: 0 0 12px;
}

.page-hero__sub {
	color: #fff;
	font-size: 1.15rem;
	margin: 0;
	text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

.section { padding: 72px 0; }
.section + .section { border-top: 1px solid var(--line); }

.prose { max-width: 72ch; }
.prose p { margin: 0 0 1em; }
.intro { margin-bottom: 28px; }

.card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 18px;
}

.card {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 22px;
}

.card h3 { margin: 0 0 8px; font-size: 1.15rem; }
.card p { margin: 0; color: var(--muted); }

.card--post a { color: inherit; text-decoration: none; display: grid; gap: 10px; }
.card--post img { border-radius: 10px; aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.card__meta { font-size: 13px; color: var(--muted); margin: 0; }

.step-list { display: grid; gap: 20px; }
.step { display: grid; grid-template-columns: 56px 1fr; gap: 16px; align-items: start; }
.step__num {
	font-family: var(--serif);
	font-size: 1.4rem;
	color: var(--teal);
}

.cta-band {
	background: var(--teal);
	color: #fff;
	border-radius: 24px;
	padding: 48px 40px;
	text-align: center;
}

.cta-band h2,
.cta-band p { color: #fff; }
.cta-band .prose p { color: #fff; }
.cta-band .cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-top: 24px;
}
.cta-band .btn {
	background: #fff;
	color: var(--teal) !important;
	border-color: #fff;
}
.cta-band .btn-ghost {
	background: transparent;
	color: #fff !important;
	border: 1px solid #fff;
}

.related-list { display: flex; flex-wrap: wrap; gap: 10px; }
.related-list a {
	background: var(--cream);
	padding: 10px 14px;
	border-radius: 999px;
	text-decoration: none;
	color: var(--ink);
}

.faq-item {
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 4px 16px;
	margin-bottom: 10px;
	background: #fff;
}
.faq-item summary { cursor: pointer; font-weight: 600; padding: 12px 0; }
.faq-item__body { color: var(--muted); }

.form-panel {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: 28px;
}

.wpcf7 form label {
	display: block;
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0;
}

.wpcf7 .wpcf7-form-control-wrap { display: block; margin-bottom: 16px; }

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	width: 100%;
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 12px 14px;
	font: 300 16px/1.4 var(--sans);
	background: var(--paper);
}

.newsletter {
	background: var(--teal-deep);
	color: #fff;
	padding: 56px 0;
}

.newsletter h2,
.newsletter p { color: #fff; }

.newsletter__inner {
	display: grid;
	gap: 28px;
}

.contact-grid {
	display: grid;
	gap: 32px;
}

.contact-map {
	width: 100%;
	min-height: 360px;
	border: 0;
	border-radius: 20px;
}

.hours-list li { padding: 4px 0; }

.hcfn-legal-disclaimer,
.hcfn-testimonial-disclaimer,
.hcfn-form-disclaimer,
.hcfn-emergency-disclaimer { letter-spacing: 0 !important; }

.hcfn-legal-disclaimer {
	font-size: 13px;
	line-height: 1.55;
	color: #3A4744;
	max-width: 72ch;
}

.hcfn-testimonial-disclaimer,
.hcfn-form-disclaimer,
.hcfn-emergency-disclaimer {
	font-size: 16px;
	line-height: 1.6;
	color: #12211F;
	max-width: 72ch;
}

.hcfn-emergency-disclaimer {
	background: #FDECEA;
	border-left: 4px solid #B3261E;
	padding: 16px 18px;
	border-radius: 8px;
}

.video-stories {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 28px;
}

.video-story {
	display: grid;
	gap: 0;
	overflow: hidden;
	border-radius: 20px;
	background: var(--teal);
	color: #fff;
}

.video-story__media {
	position: relative;
	min-height: 280px;
	background: #043F3B;
}

.video-story__media picture {
	display: contents;
}

.video-story__media img {
	width: 100%;
	height: 100%;
	max-height: none;
	min-height: 280px;
	object-fit: cover;
	display: block;
}

.video-story__watch {
	position: absolute;
	left: 20px;
	bottom: 20px;
	z-index: 2;
	margin: 0;
	background: #fff;
	color: var(--teal) !important;
	border-color: #fff;
}

.video-story__watch:hover {
	background: transparent;
	color: #fff !important;
	border-color: #fff;
}

.video-story__copy {
	padding: 32px 28px;
	display: grid;
	align-content: space-between;
	gap: 20px;
	min-height: 280px;
}

.video-story__copy h3,
.video-story__copy p,
.video-story__copy blockquote {
	color: #fff;
	margin: 0;
}

.video-story__condition {
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.8;
	margin-top: 6px;
}

.video-story__copy blockquote p {
	font-size: 1.05rem;
	line-height: 1.55;
}

.video-story__meta h3 {
	font-size: 1.15rem;
}

.section-cards--quotes .intro,
.section-cards--videos + .section-cards .intro {
	max-width: 54ch;
	margin-bottom: 28px;
}

.testimonial-grid {
	display: grid;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.testimonial-grid .card--quote {
	background: #f7f5f1;
	border: 0;
	border-radius: 16px;
	padding: 24px 28px;
	box-shadow: none;
}

.testimonial-grid blockquote {
	margin: 0 0 16px;
}

.testimonial-grid blockquote p {
	margin: 0;
	color: var(--ink);
	line-height: 1.6;
}

.testimonial-grid cite {
	font-style: normal;
	font-weight: 600;
	color: var(--teal);
}

.hartman-lightbox {
	position: fixed;
	inset: 0;
	z-index: 120;
	background: rgba(4, 18, 16, 0.86);
	display: grid;
	place-items: center;
	padding: 20px;
}

.hartman-lightbox[hidden] { display: none; }

body.lightbox-open { overflow: hidden; }

.hartman-lightbox__frame {
	width: min(1100px, 100%);
	aspect-ratio: 16 / 9;
	background: #000;
}

.hartman-lightbox__video {
	width: 100%;
	height: 100%;
	border: 0;
	background: #000;
	object-fit: contain;
	display: block;
}

.hartman-lightbox__close {
	position: absolute;
	top: 18px;
	right: 22px;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: #fff;
	font-size: 28px;
	cursor: pointer;
}

@media (min-width: 768px) {
	.video-story {
		grid-template-columns: 1fr 1fr;
		min-height: 360px;
	}

	.video-story:nth-child(even) .video-story__media { order: 2; }

	.video-story__media img { max-height: none; }
}

.site-footer {
	background: #F0F0F0;
	color: #000;
	padding: 40px 0;
	font-family: Inter, sans-serif;
	font-size: 16px;
	font-weight: 300;
	letter-spacing: 0;
	line-height: 1.2;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

@media (min-width: 768px) {
	.site-footer { padding: 72px 0; }
}

.site-footer .wrap {
	width: min(1200px, 100%);
	padding: 0 20px;
}

.site-footer a {
	color: #000;
	text-decoration: none;
	font-family: inherit;
	font-size: 16px;
	font-weight: 300;
	letter-spacing: 0;
	line-height: 1.2;
}

.site-footer a:hover { color: var(--teal); }

.site-logo--footer .site-logo__img {
	filter: none;
	height: 58px;
	width: auto;
	max-width: 301px;
}

.footer-grid {
	display: grid;
	gap: 32px;
}

.footer-brand,
.footer-col {
	padding-left: 0;
}

.footer-meta__row {
	display: grid;
	grid-template-columns: 21px 1fr;
	column-gap: 13.5px;
	margin-top: 36px;
	align-items: start;
}

.footer-meta__row--pin { grid-template-columns: 16px 1fr; }

.footer-meta__icon { display: block; width: 21px; height: auto; }
.footer-meta__row--pin .footer-meta__icon { width: 16px; }

.footer-meta p,
.footer-meta a {
	margin: -3px;
	font-size: 16px;
	line-height: 28px;
	letter-spacing: 0;
	color: #000;
}

.footer-menus {
	display: grid;
	gap: 32px;
}

.footer-col__title {
	display: flex;
	font-family: Inter, sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--teal);
	margin: 0;
}

.footer-col ul {
	display: grid;
	gap: 18px;
	margin: 0;
	padding: 18px 0 0;
	list-style: none;
}

.footer-col li {
	margin: 0;
	font-size: 16px;
	line-height: 1.2;
	letter-spacing: 0;
}

.footer-col a {
	display: flex;
	padding: 0;
	line-height: 1.2;
}

.footer-col nav + nav { margin-top: 36px; }

.footer-legal {
	margin: 48px 0 0;
	padding-top: 28px;
	border-top: 1px solid rgba(0, 0, 0, 0.12);
	max-width: none;
}

.scroll-top {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 50;
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 2px;
	background: var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 14l6-6 6 6'/%3E%3C/svg%3E") center / 16px no-repeat;
	cursor: pointer;
}

.scroll-top:hover { background-color: var(--teal-deep); }

body.nav-open .site-header { z-index: 60; }
body.nav-open .scroll-top { display: none !important; }

.post-grid-wrap { padding: 56px 0 80px; }
.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; list-style: none; margin: 0; padding: 0; }


.admin-bar .site-header { top: 32px; }

.pum-container .calendly-inline-widget { min-width: 0 !important; width: 100%; }

@media (min-width: 960px) {
	.site-header__bar { padding: 0 36px; }
	.nav-desktop { display: block; margin-left: auto; }
	.site-header__actions { margin-left: 0; }
	.mega-root__item.has-mega { position: static; }
	.mega-panel--ads {
		top: 100%;
		left: 0;
		right: 0;
		transform: none;
		min-width: 0;
		width: 100%;
		padding: 0;
		border: 0;
		border-radius: 0 0 27px 27px;
		overflow: hidden;
		box-shadow: 0 24px 48px rgba(0, 0, 0, .12);
	}
	.nav-toggle,
	.nav-mobile { display: none !important; }

	.page-hero { min-height: 70vh; }

	.newsletter__inner,
	.contact-grid {
		grid-template-columns: 1.1fr 1fr;
	}

	.footer-grid {
		grid-template-columns: 4fr 8fr;
		align-items: start;
		gap: 0;
		width: calc(100% + 20px);
		margin-left: -20px;
	}

	.footer-brand,
	.footer-col {
		padding-left: 20px;
	}

	.footer-menus {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0;
	}

	.footer-col:first-child nav {
		max-width: 85%;
		margin-inline: auto;
	}

	.mega-root__item.has-mega:hover .mega-panel,
	.mega-root__item.has-mega:focus-within .mega-panel,
	.mega-root__item.has-sub:hover .mega-sub,
	.mega-root__item.has-sub:focus-within .mega-sub {
		display: block;
	}

	.mega-root__item.has-mega.is-closed .mega-panel,
	.mega-root__item.has-sub.is-closed .mega-sub {
		display: none;
	}
}

@media (max-width: 959px) {
	.hcfn-hero,
	.page-hero {
		aspect-ratio: 1 / 1;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
	}

	.page-hero__media--desktop:not(.is-only) {
		display: none;
	}

	.page-hero__media--mobile {
		display: block;
	}

	.page-hero video.page-hero__media--mobile {
		display: block;
	}

	.page-hero__content { padding: 24px 0 28px; }
	.page-hero h1 { font-size: clamp(1.6rem, 7vw, 2.2rem); }
	.section { padding: 48px 0; }
	.site-header__actions .btn-book { display: none; }
	.site-logo__img { max-height: 45px; }
}
