/* Monopoli House — components
   No 100vw hacks. Relies on WordPress alignfull/alignwide mechanism. */

/* ===========================================================================
   NAVIGATION — sticky header
   =========================================================================== */
.mh-nav {
	position: sticky; top: 0; z-index: 100;
	background: color-mix(in oklab, var(--mh-bone) 92%, transparent);
	-webkit-backdrop-filter: saturate(180%) blur(12px);
	backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid transparent;
	transition: border-color 240ms var(--mh-ease), background 240ms var(--mh-ease);
}
.mh-nav.is-scrolled {
	border-bottom-color: var(--mh-line);
	background: color-mix(in oklab, var(--mh-bone) 98%, transparent);
}

.mh-nav__bar {
	display: flex; align-items: center; justify-content: space-between;
	gap: 1.5rem;
	max-width: 1440px; margin: 0 auto;
	padding: 1.125rem 2rem;
	min-height: var(--mh-nav-h);
}

.mh-nav__brand {
	display: inline-flex; align-items: center; gap: 0.625rem;
	font-family: var(--mh-serif); font-style: italic; font-weight: 500;
	font-size: 1.5rem; line-height: 1; color: var(--mh-ink);
	text-decoration: none; white-space: nowrap; letter-spacing: -0.005em;
}
.mh-nav__brand:hover { color: var(--mh-sea); }
.mh-nav__logo {
	width: 40px; height: 40px;
	display: block; object-fit: cover;
	border-radius: 50%;
	box-shadow: 0 1px 2px rgba(14,31,45,0.06), 0 4px 12px rgba(14,31,45,0.04);
	flex-shrink: 0;
}
@media (max-width: 899px) {
	.mh-nav__logo { width: 34px; height: 34px; }
	.mh-nav__brand { gap: 0.5rem; }
}

.mh-nav__links {
	display: flex; align-items: center; gap: 2rem;
	margin: 0; padding: 0; list-style: none;
}
.mh-nav__links a {
	font-family: var(--mh-sans); font-size: 0.9375rem; font-weight: 400;
	color: var(--mh-ink); text-decoration: none;
	transition: color 200ms var(--mh-ease);
}
.mh-nav__links a:hover { color: var(--mh-sea); }
.mh-nav__links a.is-current { color: var(--mh-sea); }

.mh-nav__right { display: flex; align-items: center; gap: 1.25rem; }
.mh-nav__lang {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.15em; color: var(--mh-mute); text-transform: uppercase;
}
.mh-nav__lang a { color: inherit; text-decoration: none; }
.mh-nav__lang a:hover, .mh-nav__lang a.is-current { color: var(--mh-sea); }

.mh-nav__cta {
	background: var(--mh-sea); color: var(--mh-paper);
	font-family: var(--mh-sans); font-weight: 500; font-size: 0.9375rem;
	padding: 0.625rem 1.25rem; border-radius: var(--mh-r-pill);
	text-decoration: none; transition: background 200ms var(--mh-ease);
	white-space: nowrap;
}
.mh-nav__cta:hover { background: var(--mh-sea-2); color: var(--mh-paper); }

/* Hamburger button — hidden by default, shown on mobile */
.mh-nav__toggle {
	display: none;
	background: none; border: none; padding: 0.5rem; cursor: pointer;
	color: var(--mh-ink);
	width: 44px; height: 44px;
	align-items: center; justify-content: center;
}
.mh-nav__toggle svg { width: 24px; height: 24px; }

@media (max-width: 899px) {
	.mh-nav__bar { padding: 0.75rem 1.25rem; gap: 0.75rem; }
	.mh-nav__brand { font-size: 1.25rem; }
	.mh-nav__links { display: none; }
	.mh-nav__lang { display: none; }
	.mh-nav__toggle { display: inline-flex; }
	/* When the toggle is active, show mobile drawer */
	.mh-nav.is-open .mh-nav__drawer { transform: translateY(0); }
}
@media (min-width: 900px) {
	.mh-nav__toggle { display: none; }
	.mh-nav__drawer { display: none; }
}

/* Mobile drawer slides down from below the bar */
.mh-nav__drawer {
	position: fixed;
	top: var(--mh-nav-h); left: 0; right: 0;
	background: var(--mh-bone);
	border-top: 1px solid var(--mh-line);
	transform: translateY(-120%);
	transition: transform 280ms var(--mh-ease);
	box-shadow: 0 24px 48px rgba(14,31,45,0.12);
	padding: 1rem 1.25rem 1.5rem;
	max-height: calc(100vh - var(--mh-nav-h));
	overflow-y: auto;
}
.mh-nav__drawer ul {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-direction: column; gap: 0;
}
.mh-nav__drawer a {
	display: block;
	font-family: var(--mh-serif); font-size: 1.5rem; font-weight: 500;
	color: var(--mh-ink); text-decoration: none;
	padding: 0.875rem 0;
	border-bottom: 1px solid var(--mh-line-2);
}
.mh-nav__drawer a:hover, .mh-nav__drawer a.is-current { color: var(--mh-sea); }
.mh-nav__drawer .mh-nav__lang-mobile {
	font-family: var(--mh-mono); font-size: 0.75rem; color: var(--mh-mute);
	letter-spacing: 0.15em; text-transform: uppercase;
	margin-top: 1.25rem; display: flex; gap: 1rem;
}

/* ===========================================================================
   GENERIC SECTION HELPERS
   Sections inherit width from WP alignfull/alignwide; no 100vw tricks.
   The inner column is constrained by max-width.
   =========================================================================== */
.mh-sec {
	padding-top: clamp(2.5rem, 4.5vw, 4rem);
	padding-bottom: clamp(2.5rem, 4.5vw, 4rem);
}
.mh-sec--tight { padding-top: clamp(1.75rem, 3vw, 2.5rem); padding-bottom: clamp(1.75rem, 3vw, 2.5rem); }
.mh-sec--bone  { background: var(--mh-bone); }
.mh-sec--paper { background: var(--mh-paper); }
.mh-sec--sky   { background: var(--mh-sky-2); }
.mh-sec--ink   { background: var(--mh-ink); color: var(--mh-bone); }

/* Centred max-width inner column for content inside any alignfull section. */
.mh-container {
	max-width: 1440px;
	margin-left: auto; margin-right: auto;
	padding-left: 2rem; padding-right: 2rem;
}
.mh-container--narrow { max-width: 820px; }
@media (max-width: 599px) { .mh-container { padding-left: 1.25rem; padding-right: 1.25rem; } }

/* ===========================================================================
   HERO — Home (type-led, 50/50 split per spec §5.1)
   =========================================================================== */
.mh-home-hero {
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: center;
	padding-top: clamp(2.5rem, 5vw, 5rem);
	padding-bottom: clamp(2.5rem, 5vw, 5rem);
}
.mh-home-hero__text { padding-right: 0; }
.mh-home-hero__eyebrow {
	font-family: var(--mh-mono); font-size: 0.8125rem;
	letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--mh-sea); margin: 0 0 1.5rem;
}
.mh-home-hero__headline {
	font-family: var(--mh-serif); font-style: italic; font-weight: 400;
	font-size: clamp(3.75rem, 9vw, 8rem);
	line-height: 0.95; letter-spacing: -0.025em;
	color: var(--mh-ink); margin: 0;
}
.mh-home-hero__headline em { font-style: italic; color: var(--mh-sea); }
.mh-home-hero__sub {
	font-family: var(--mh-sans);
	font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
	line-height: 1.55; color: var(--mh-mute);
	margin: 1.75rem 0 2.25rem; max-width: 36ch;
}
.mh-home-hero__photo,
figure.mh-home-hero__photo {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: var(--mh-r-md);
	background: var(--mh-sky-2);
	max-height: 760px;
	margin: 0 !important;
	padding: 0 !important;
	display: block;
}
.mh-home-hero__photo > a {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
}
.mh-home-hero__photo img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}
@media (max-width: 899px) {
	.mh-home-hero {
		grid-template-columns: 1fr;
		gap: 1.75rem;
		padding-top: 1.75rem;
		padding-bottom: 2rem;
	}
	.mh-home-hero__photo { aspect-ratio: 4 / 3; order: -1; max-height: 380px; }
	.mh-home-hero__sub { font-size: 1.0625rem; max-width: none; }
	.mh-home-hero__headline { font-size: clamp(3rem, 12vw, 4.5rem); }
}

/* ===========================================================================
   BOOKING SEARCH PILL (in the home hero per spec)
   =========================================================================== */
.mh-search {
	display: flex; flex-wrap: wrap; gap: 0;
	background: var(--mh-paper);
	border: 1px solid var(--mh-line);
	border-radius: var(--mh-r-pill);
	padding: 0.375rem;
	box-shadow: 0 8px 24px rgba(14,31,45,0.06);
	max-width: 100%;
}
.mh-search__field {
	flex: 1 1 0;
	display: flex; flex-direction: column; gap: 0.125rem;
	padding: 0.625rem 0.875rem;
	border-right: 1px solid var(--mh-line);
	min-width: 0;
}
.mh-search__field:last-of-type { border-right: none; }
.mh-search__label {
	font-family: var(--mh-mono); font-size: 0.625rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--mh-mute);
}
.mh-search__value {
	font-family: var(--mh-sans); font-size: 0.9375rem; font-weight: 500;
	color: var(--mh-ink);
}
.mh-search__btn {
	flex: 0 0 auto;
	background: var(--mh-sea); color: var(--mh-paper);
	border: none; border-radius: var(--mh-r-pill);
	padding: 0.625rem 1.125rem;
	font-family: var(--mh-sans); font-weight: 500; font-size: 0.875rem;
	cursor: pointer; text-decoration: none;
	display: inline-flex; align-items: center; gap: 0.375rem;
	transition: background 200ms var(--mh-ease);
}
.mh-search__btn:hover { background: var(--mh-sea-2); color: var(--mh-paper); }
@media (max-width: 759px) {
	.mh-search { flex-direction: column; border-radius: var(--mh-r-md); padding: 0.375rem; gap: 0.25rem; }
	.mh-search__field { border-right: none; border-bottom: 1px solid var(--mh-line-2); padding: 0.75rem 1rem; }
	.mh-search__field:last-of-type { border-bottom: none; }
	.mh-search__btn { width: 100%; justify-content: center; border-radius: var(--mh-r-md); padding: 0.875rem; font-size: 0.9375rem; }
}

/* ===========================================================================
   PROPERTY DUO (Home section B per spec §5.1)
   =========================================================================== */
.mh-duo {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(1.5rem, 2.5vw, 2.5rem);
}
.mh-duo__card {
	display: block;
	color: var(--mh-ink); text-decoration: none;
	transition: transform 280ms var(--mh-ease);
}
.mh-duo__photo,
figure.mh-duo__photo {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: var(--mh-r-md);
	background: var(--mh-sky-2);
	margin: 0 !important;
	padding: 0 !important;
	display: block;
}
.mh-duo__photo > a {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
}
.mh-duo__photo img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	transition: transform 700ms var(--mh-ease);
}
.mh-duo__card:hover .mh-duo__photo img { transform: scale(1.04); }
.mh-duo__body { padding: 1.5rem 0.25rem 0; }
.mh-duo__name {
	font-family: var(--mh-serif); font-weight: 500;
	font-size: clamp(2rem, 3vw, 2.5rem); line-height: 1.05; margin: 0 0 0.625rem;
}
.mh-duo__facts {
	font-family: var(--mh-mono); font-size: 0.75rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0 0 0.875rem;
}
.mh-duo__desc {
	font-family: var(--mh-sans); font-size: 1.0625rem; line-height: 1.5;
	color: var(--mh-ink); margin: 0 0 1.25rem;
}
.mh-duo__arrow {
	font-family: var(--mh-mono); font-size: 0.75rem;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--mh-sea);
}
.mh-duo__arrow::after { content: " →"; }
@media (max-width: 899px) {
	.mh-duo { grid-template-columns: 1fr; gap: 2.5rem; }
}

/* ===========================================================================
   PROMISE BAND (Home section C per spec §5.1)
   =========================================================================== */
.mh-promise {
	text-align: center;
	max-width: 740px;
	margin: 0 auto;
	padding: 0 1.5rem;
}
.mh-promise__title {
	font-family: var(--mh-serif); font-weight: 400;
	font-size: clamp(2.25rem, 5.5vw, 3.75rem);
	line-height: 1.1; margin: 0 0 1.25rem;
}
.mh-promise__body {
	font-family: var(--mh-sans); font-size: 1.0625rem;
	line-height: 1.6; color: var(--mh-mute); margin: 0 auto 1.75rem;
	max-width: 56ch;
}
.mh-promise__wa {
	display: inline-flex; align-items: center; gap: 0.625rem;
	background: var(--mh-paper); color: var(--mh-sea);
	border: 1px solid var(--mh-sea);
	border-radius: var(--mh-r-pill);
	padding: 0.75rem 1.5rem;
	font-family: var(--mh-sans); font-weight: 500; font-size: 0.9375rem;
	text-decoration: none;
	transition: background 200ms var(--mh-ease), color 200ms var(--mh-ease);
}
.mh-promise__wa:hover { background: var(--mh-sea); color: var(--mh-paper); }
.mh-promise__wa svg { width: 18px; height: 18px; fill: currentColor; }

/* ===========================================================================
   WALKING-MINUTES GRID (Home section D — "A piedi da casa")
   =========================================================================== */
.mh-walk {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
}
.mh-walk__card {
	display: block;
	text-decoration: none; color: var(--mh-ink);
}
.mh-walk__photo,
figure.mh-walk__photo {
	aspect-ratio: 3 / 4;
	overflow: hidden;
	border-radius: var(--mh-r-md);
	background: var(--mh-sky-2);
	margin: 0 0 1rem !important;
	padding: 0 !important;
	display: block;
}
.mh-walk__photo img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	transition: transform 700ms var(--mh-ease);
}
.mh-walk__card:hover .mh-walk__photo img { transform: scale(1.04); }
.mh-walk__name {
	font-family: var(--mh-serif); font-weight: 500; font-size: 1.5rem;
	line-height: 1.1; margin: 0;
}
.mh-walk__time {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0.25rem 0 0;
}
@media (max-width: 899px) {
	.mh-walk {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
}
@media (max-width: 419px) {
	.mh-walk { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
	.mh-walk__name { font-size: 1.0625rem; }
}

/* ===========================================================================
   REVIEWS (Home section E)
   =========================================================================== */
.mh-reviews {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}
.mh-reviews__card {
	background: var(--mh-paper);
	border: 1px solid var(--mh-line);
	border-radius: var(--mh-r-md);
	padding: 1.75rem;
	display: flex; flex-direction: column; gap: 1rem;
}
.mh-reviews__card { padding: 2rem 1.75rem; }
.mh-reviews__quote {
	font-family: var(--mh-serif); font-style: italic; font-weight: 400;
	font-size: 1.3125rem; line-height: 1.4;
	color: var(--mh-ink); margin: 0;
}
.mh-reviews__quote::before { content: "« "; color: var(--mh-faint); }
.mh-reviews__quote::after { content: " »"; color: var(--mh-faint); }
.mh-reviews__meta {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--mh-mute); margin-top: auto;
}
@media (max-width: 899px) {
	.mh-reviews { grid-template-columns: 1fr; }
}

/* ===========================================================================
   PROPERTY PAGE — title, gallery, content + sticky booking widget
   =========================================================================== */
.mh-prop-title {
	max-width: 1440px; margin: 0 auto; padding: 1.75rem 2rem 1.25rem;
}
.mh-prop-title__crumb {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0 0 1rem;
}
.mh-prop-title__crumb a { color: inherit; text-decoration: none; }
.mh-prop-title__crumb a:hover { color: var(--mh-sea); }
.mh-prop-title__name {
	font-family: var(--mh-serif); font-weight: 400;
	font-size: clamp(2.5rem, 6vw, 4rem);
	line-height: 1; margin: 0 0 0.5rem;
	letter-spacing: -0.015em;
}
.mh-prop-title__sub {
	font-family: var(--mh-sans); font-size: 1.0625rem;
	color: var(--mh-mute); margin: 0 0 0.5rem; max-width: 60ch;
}
.mh-prop-title__facts {
	font-family: var(--mh-mono); font-size: 0.75rem;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0.5rem 0 0;
}
.mh-prop-title__facts > span + span::before {
	content: " · "; color: var(--mh-faint); margin: 0 0.4em;
}

/* GALLERY — 1 large + 4 small per spec §5.2 */
.mh-prop-gallery {
	max-width: 1440px; margin: 0 auto; padding: 0 2rem 2rem;
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 0.5rem;
	aspect-ratio: 21 / 10;
}
.mh-prop-gallery figure,
.mh-prop-gallery .wp-block-image { margin: 0; overflow: hidden; border-radius: var(--mh-r-sm); background: var(--mh-sky-2); }
.mh-prop-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 600ms var(--mh-ease); }
.mh-prop-gallery .wp-block-image { display: block; }
.mh-prop-gallery > .wp-block-image:nth-child(1) { grid-row: 1 / span 2; }
.mh-prop-gallery > .wp-block-image:nth-child(n+2) { grid-row: span 1; }
@media (max-width: 899px) {
	.mh-prop-gallery > .wp-block-image:nth-child(1) { grid-column: 1 / span 2; grid-row: 1; }
	.mh-prop-gallery > .wp-block-image:nth-child(2) { grid-column: 1; grid-row: 2; }
	.mh-prop-gallery > .wp-block-image:nth-child(3) { grid-column: 2; grid-row: 2; }
	.mh-prop-gallery > .wp-block-image:nth-child(4) { grid-column: 1; grid-row: 3; }
	.mh-prop-gallery > .wp-block-image:nth-child(5) { grid-column: 2; grid-row: 3; }
}
.mh-prop-gallery figure:hover img { transform: scale(1.03); }
.mh-prop-gallery > figure:nth-child(1) { grid-row: 1 / span 2; }
.mh-prop-gallery > figure:nth-child(n+2) { grid-row: span 1; }

@media (max-width: 899px) {
	.mh-prop-gallery {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 220px 110px 110px;
		gap: 0.375rem;
		aspect-ratio: auto;
	}
	.mh-prop-gallery > figure:nth-child(1) { grid-column: 1 / span 2; grid-row: 1; }
	.mh-prop-gallery > figure:nth-child(2) { grid-column: 1; grid-row: 2; }
	.mh-prop-gallery > figure:nth-child(3) { grid-column: 2; grid-row: 2; }
	.mh-prop-gallery > figure:nth-child(4) { grid-column: 1; grid-row: 3; }
	.mh-prop-gallery > figure:nth-child(5) { grid-column: 2; grid-row: 3; }
}

/* PROPERTY BODY — two-column with sticky right rail */
.mh-prop-body {
	max-width: 1440px; margin: 0 auto;
	padding: 2rem 2rem 3rem;
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 4rem;
	align-items: start;
}
.mh-prop-content > * + * { margin-top: 2rem; }
.mh-prop-rail { position: sticky; top: calc(var(--mh-nav-h) + 1rem); }
@media (max-width: 1023px) {
	.mh-prop-body { grid-template-columns: 1fr; gap: 2.5rem; padding-bottom: 6rem; }
	.mh-prop-rail { position: static; }
}

/* Narrative block */
.mh-narrative h2 {
	font-family: var(--mh-serif); font-weight: 400;
	font-size: clamp(1.875rem, 4vw, 2.5rem);
	line-height: 1.15; margin: 0 0 1rem;
}
.mh-narrative h2 em { font-style: italic; color: var(--mh-sea); }
.mh-narrative p {
	font-size: 1.0625rem; line-height: 1.7; color: var(--mh-ink);
	margin: 0 0 1rem; max-width: 62ch;
}

/* Quick-facts: 2×3 grid per spec */
.mh-facts {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.75rem;
}
.mh-facts__card {
	background: var(--mh-paper);
	border: 1px solid var(--mh-line);
	border-radius: var(--mh-r-md);
	padding: 1.25rem;
}
.mh-facts__label {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0 0 0.5rem;
}
.mh-facts__value {
	font-family: var(--mh-sans); font-weight: 500; font-size: 1rem;
	color: var(--mh-ink); margin: 0;
}
@media (max-width: 599px) {
	.mh-facts { grid-template-columns: 1fr 1fr; }
}

/* FAQ accordion */
.mh-faq h2 {
	font-family: var(--mh-serif); font-weight: 400;
	font-size: clamp(1.875rem, 4vw, 2.5rem);
	margin: 0 0 1.5rem;
}
.mh-faq details {
	border-top: 1px solid var(--mh-line);
	padding: 1.125rem 0;
}
.mh-faq details:last-of-type { border-bottom: 1px solid var(--mh-line); }
.mh-faq summary {
	cursor: pointer; list-style: none;
	font-family: var(--mh-sans); font-weight: 500; font-size: 1.0625rem;
	color: var(--mh-ink);
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.mh-faq summary::-webkit-details-marker { display: none; }
.mh-faq summary::after {
	content: "+"; font-family: var(--mh-mono); font-size: 1.25rem;
	color: var(--mh-sea); transition: transform 240ms var(--mh-ease);
}
.mh-faq details[open] summary::after { content: "−"; }
.mh-faq details p {
	font-size: 1rem; line-height: 1.65; color: var(--mh-mute);
	margin: 0.875rem 0 0; max-width: 62ch;
}

/* BOOKING WIDGET — sticky right rail per spec §5.2 */
.mh-bw {
	background: var(--mh-paper);
	border: 1px solid var(--mh-line);
	border-radius: var(--mh-r-md);
	padding: 1.5rem;
	box-shadow: 0 4px 12px rgba(14,31,45,0.04);
}
.mh-bw__pricerow {
	display: flex; align-items: baseline; gap: 0.5rem;
	margin-bottom: 0.25rem;
}
.mh-bw__from {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--mh-mute);
}
.mh-bw__price {
	font-family: var(--mh-serif); font-weight: 500; font-size: 2rem;
	color: var(--mh-ink);
}
.mh-bw__per {
	font-family: var(--mh-sans); font-size: 0.9375rem; color: var(--mh-mute);
}
.mh-bw__status {
	font-family: var(--mh-sans); font-size: 0.8125rem; color: var(--mh-ok);
	margin: 0 0 1rem;
}
.mh-bw__fields {
	display: flex; flex-direction: column; gap: 0.5rem;
	margin-bottom: 1rem;
}
.mh-bw__field {
	display: flex; gap: 0;
	border: 1px solid var(--mh-line); border-radius: var(--mh-r-sm);
	overflow: hidden;
}
.mh-bw__field > div {
	flex: 1; padding: 0.75rem 1rem;
}
.mh-bw__field > div + div { border-left: 1px solid var(--mh-line); }
.mh-bw__field-label {
	display: block; font-family: var(--mh-mono); font-size: 0.625rem;
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--mh-mute);
	margin-bottom: 0.25rem;
}
.mh-bw__field-value {
	font-family: var(--mh-sans); font-size: 0.875rem; font-weight: 500;
	color: var(--mh-ink);
}
.mh-bw__cta {
	display: block; width: 100%;
	background: var(--mh-sea); color: var(--mh-paper);
	font-family: var(--mh-sans); font-weight: 500; font-size: 1rem;
	padding: 1rem; border-radius: var(--mh-r-pill); text-decoration: none;
	text-align: center; transition: background 200ms var(--mh-ease);
}
.mh-bw__cta:hover { background: var(--mh-sea-2); color: var(--mh-paper); }
.mh-bw__note {
	font-family: var(--mh-sans); font-size: 0.8125rem; color: var(--mh-mute);
	margin: 0.875rem 0 0; line-height: 1.5;
}
.mh-bw__divider {
	border: none; border-top: 1px solid var(--mh-line); margin: 1rem 0;
}
.mh-bw__waline {
	font-family: var(--mh-sans); font-size: 0.875rem; color: var(--mh-sea);
	text-align: center; text-decoration: none; display: block;
	padding-top: 0.25rem;
}
.mh-bw__waline:hover { color: var(--mh-sea-2); }

/* ===========================================================================
   HOME EDITORIAL — manifesto + photo mosaic (between duo and walking)
   =========================================================================== */
.mh-editorial {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: center;
}
.mh-editorial__text { padding-right: 0.5rem; }
.mh-editorial__eyebrow {
	font-family: var(--mh-mono); font-size: 0.75rem;
	letter-spacing: 0.2em; text-transform: uppercase;
	color: var(--mh-sea); margin: 0 0 1rem;
}
.mh-editorial__title {
	font-family: var(--mh-serif); font-weight: 400;
	font-size: clamp(2rem, 4.5vw, 3.25rem); line-height: 1.05;
	letter-spacing: -0.01em; margin: 0 0 1.25rem;
}
.mh-editorial__title em { font-style: italic; color: var(--mh-sea); }
.mh-editorial__body {
	font-family: var(--mh-sans); font-size: 1.0625rem; line-height: 1.6;
	color: var(--mh-ink); margin: 0 0 1rem;
}
.mh-editorial__signature {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--mh-mute);
	margin: 1.5rem 0 0;
}
.mh-editorial__mosaic {
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 0.75rem;
	aspect-ratio: 6 / 5;
}
.mh-editorial__mosaic figure,
.mh-editorial__mosaic .wp-block-image {
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	border-radius: var(--mh-r-md);
	background: var(--mh-sky-2);
	height: 100%;
	display: block;
}
.mh-editorial__mosaic img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	transition: transform 800ms var(--mh-ease);
}
.mh-editorial__mosaic figure:hover img { transform: scale(1.04); }
.mh-editorial__mosaic > figure:nth-child(1),
.mh-editorial__mosaic > .wp-block-image:nth-child(1) { grid-row: 1 / span 2; }
@media (max-width: 899px) {
	.mh-editorial { grid-template-columns: 1fr; gap: 1.5rem; }
	.mh-editorial__mosaic { aspect-ratio: 4 / 3; }
}

/* ===========================================================================
   EXTENDED GALLERY (more photos below the hero gallery on property pages)
   =========================================================================== */
.mh-prop-more {
	max-width: 1440px; margin: 0 auto; padding: 1.5rem 2rem 0;
}
.mh-prop-more__title {
	font-family: var(--mh-mono); font-size: 0.75rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0 0 1rem;
}
.mh-prop-more__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.5rem;
}
.mh-prop-more__grid figure { margin: 0; overflow: hidden; border-radius: var(--mh-r-sm); aspect-ratio: 4/3; }
.mh-prop-more__grid img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 600ms var(--mh-ease); }
.mh-prop-more__grid figure:hover img { transform: scale(1.04); }
@media (max-width: 899px) {
	.mh-prop-more__grid { grid-template-columns: 1fr 1fr; }
}

/* ===========================================================================
   RESERVATION REQUEST FORM (replaces booking widget)
   =========================================================================== */
.mh-rr {
	background: var(--mh-paper);
	border: 1px solid var(--mh-line);
	border-radius: var(--mh-r-md);
	padding: 1.25rem;
	box-shadow: 0 4px 12px rgba(14,31,45,0.04);
}
.mh-rr__title {
	font-family: var(--mh-serif); font-weight: 500;
	font-size: 1.5rem; line-height: 1.15; margin: 0 0 0.375rem;
}
.mh-rr__price {
	display: flex; align-items: baseline; gap: 0.375rem;
	margin: 0.5rem 0 0.25rem;
}
.mh-rr__price-from {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--mh-mute);
}
.mh-rr__price-amount {
	font-family: var(--mh-serif); font-weight: 500; font-size: 1.75rem;
	color: var(--mh-ink);
}
.mh-rr__price-per {
	font-family: var(--mh-sans); font-size: 0.875rem; color: var(--mh-mute);
}
.mh-rr__estimate {
	background: var(--mh-sky-2);
	border-radius: var(--mh-r-sm);
	padding: 0.75rem 0.875rem;
	margin: 0.5rem 0 0.75rem;
}
.mh-rr__estimate-row {
	display: flex; justify-content: space-between; align-items: baseline;
	font-family: var(--mh-sans); font-size: 0.9375rem;
}
.mh-rr__estimate-row span:first-child { color: var(--mh-mute); }
.mh-rr__estimate-row .mh-rr__estimate-value { color: var(--mh-ink); font-weight: 500; }
.mh-rr__estimate-note {
	font-family: var(--mh-mono); font-size: 0.625rem;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0.5rem 0 0;
}
.mh-rr__lead {
	font-family: var(--mh-sans); font-size: 0.875rem; line-height: 1.45;
	color: var(--mh-mute); margin: 0 0 1rem;
}
.mh-rr form { display: flex; flex-direction: column; gap: 0.625rem; }
.mh-rr .mh-rr__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
/* Single range calendar: one full-width field for arrivo → partenza */
.mh-rr__row--dates { display: block !important; }
.mh-rr__row--dates > div { width: 100%; }
.flatpickr-day.mh-cal-blocked { color: #cfc9b9 !important; background: var(--mh-bone) !important; text-decoration: line-through; }
.flatpickr-day.startRange, .flatpickr-day.endRange,
.flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover {
	background: var(--mh-sea) !important; border-color: var(--mh-sea) !important; color: #fff !important; text-decoration: none;
}
.flatpickr-day.inRange {
	background: var(--mh-sky) !important; border-color: var(--mh-sky) !important; color: var(--mh-ink) !important; text-decoration: none;
	box-shadow: -5px 0 0 var(--mh-sky), 5px 0 0 var(--mh-sky) !important;
}
.mh-input-error { border-color: var(--mh-sun) !important; box-shadow: 0 0 0 2px rgba(200,132,92,0.18); }
.mh-rr label {
	display: block;
	font-family: var(--mh-mono); font-size: 0.625rem;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0 0 0.25rem;
}
.mh-rr input, .mh-rr textarea, .mh-rr select {
	width: 100%; box-sizing: border-box;
	padding: 0.625rem 0.75rem;
	border: 1px solid var(--mh-line); border-radius: var(--mh-r-sm);
	background: var(--mh-paper); color: var(--mh-ink);
	font-family: var(--mh-sans); font-size: 0.9375rem;
	transition: border-color 200ms var(--mh-ease);
}
.mh-rr input:focus, .mh-rr textarea:focus, .mh-rr select:focus {
	outline: none; border-color: var(--mh-sea);
}
.mh-rr textarea { min-height: 76px; resize: vertical; font-family: var(--mh-sans); }
.mh-rr__btn {
	background: var(--mh-sea); color: var(--mh-paper);
	font-family: var(--mh-sans); font-weight: 500; font-size: 0.9375rem;
	padding: 0.875rem; border: none; border-radius: var(--mh-r-pill);
	cursor: pointer; transition: background 200ms var(--mh-ease);
	margin-top: 0.375rem;
}
.mh-rr__btn:hover { background: var(--mh-sea-2); }
.mh-rr__note {
	font-family: var(--mh-sans); font-size: 0.75rem; line-height: 1.5;
	color: var(--mh-mute); margin: 0.75rem 0 0; text-align: center;
}
.mh-rr__success {
	background: color-mix(in oklab, var(--mh-ok) 10%, var(--mh-paper));
	border: 1px solid color-mix(in oklab, var(--mh-ok) 40%, transparent);
	border-radius: var(--mh-r-md);
	padding: 1rem 1.25rem; margin: 0 0 1rem;
	font-family: var(--mh-sans); font-size: 0.9375rem; color: var(--mh-ink);
}
.mh-rr__success strong { color: var(--mh-ok); }

/* Adults / kids counters */
.mh-counter-group { display: flex; flex-direction: column; gap: 0.5rem; margin: 0.25rem 0 0.5rem; }
.mh-counter {
	display: flex; align-items: center; justify-content: space-between;
	border: 1px solid var(--mh-line);
	border-radius: var(--mh-r-sm);
	padding: 0.625rem 0.875rem;
	background: var(--mh-paper);
}
.mh-counter__labels { display: flex; flex-direction: column; gap: 2px; }
.mh-counter__name { font-family: var(--mh-sans); font-size: 0.9375rem; font-weight: 500; color: var(--mh-ink); }
.mh-counter__sub {
	font-family: var(--mh-mono); font-size: 0.625rem;
	letter-spacing: 0.12em; text-transform: uppercase; color: var(--mh-mute);
}
.mh-counter__controls { display: flex; align-items: center; gap: 0.5rem; }
.mh-counter__btn {
	width: 32px; height: 32px;
	background: var(--mh-paper); color: var(--mh-sea);
	border: 1px solid var(--mh-line); border-radius: 50%;
	font-family: var(--mh-sans); font-size: 1.125rem; line-height: 1;
	cursor: pointer; transition: background 200ms var(--mh-ease), border-color 200ms var(--mh-ease);
	display: inline-flex; align-items: center; justify-content: center;
	padding: 0;
}
.mh-counter__btn:hover:not(:disabled) { border-color: var(--mh-sea); background: var(--mh-sky-2); }
.mh-counter__btn:disabled { color: var(--mh-faint); cursor: not-allowed; opacity: 0.5; }
.mh-counter__value {
	min-width: 24px; text-align: center;
	font-family: var(--mh-sans); font-size: 1rem; font-weight: 500; color: var(--mh-ink);
}

/* Flatpickr theming — minimal overrides to match the design tokens */
.flatpickr-calendar {
	font-family: var(--mh-sans) !important;
	box-shadow: 0 8px 24px rgba(14,31,45,0.10), 0 16px 48px rgba(14,31,45,0.08) !important;
	border-radius: var(--mh-r-md) !important;
}
.flatpickr-day.selected, .flatpickr-day.selected:hover {
	background: var(--mh-sea) !important; border-color: var(--mh-sea) !important; color: #fff !important;
}
.flatpickr-day.today { border-color: var(--mh-sea) !important; }
.flatpickr-day.disabled, .flatpickr-day.disabled:hover {
	color: #cfc9b9 !important; text-decoration: line-through;
	background: var(--mh-bone) !important;
}

/* Wider page-mode reservation form (used on /prenota/...) */
.mh-rr--page {
	max-width: 540px; margin: 2.5rem auto;
}

/* ===========================================================================
   PHOTO GALLERY PAGE — masonry-ish grid of all photos per house
   =========================================================================== */
.mh-gallery-page {
	max-width: 1440px; margin: 0 auto; padding: 2.5rem 2rem 4rem;
}
.mh-gallery-page__crumb {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0 0 1rem;
}
.mh-gallery-page__crumb a { color: inherit; text-decoration: none; }
.mh-gallery-page__crumb a:hover { color: var(--mh-sea); }
.mh-gallery-page h1 {
	font-family: var(--mh-serif); font-weight: 400;
	font-size: clamp(2.25rem, 5vw, 3.5rem); line-height: 1; margin: 0 0 0.5rem;
}
.mh-gallery-page__lead {
	font-family: var(--mh-sans); font-size: 1.0625rem; color: var(--mh-mute);
	margin: 0 0 2.5rem; max-width: 60ch;
}
.mh-gallery-page__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
}
.mh-gallery-page__grid figure,
.mh-gallery-page__grid .wp-block-image {
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	border-radius: var(--mh-r-sm);
	background: var(--mh-sky-2);
	aspect-ratio: 4/3;
	display: block;
}
.mh-gallery-page__grid img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	transition: transform 700ms var(--mh-ease);
}
.mh-gallery-page__grid figure:hover img,
.mh-gallery-page__grid .wp-block-image:hover img { transform: scale(1.04); }
@media (max-width: 899px) { .mh-gallery-page__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 499px) { .mh-gallery-page__grid { grid-template-columns: 1fr; } }

/* Consigliati — categories with clean text cards (no images) */
.mh-cats { display: flex; flex-direction: column; gap: clamp(2.5rem, 4vw, 4rem); }
.mh-cat__title {
	font-family: var(--mh-serif); font-weight: 500;
	font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.1;
	margin: 0 0 1.25rem;
}
.mh-cat__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.875rem;
}
@media (max-width: 1199px) { .mh-cat__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 899px)  { .mh-cat__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 499px)  { .mh-cat__grid { grid-template-columns: 1fr; } }

.mh-place {
	background: var(--mh-paper);
	border: 1px solid var(--mh-line);
	border-radius: var(--mh-r-md);
	padding: 1.125rem 1.25rem 1.25rem;
	transition: transform 200ms var(--mh-ease), box-shadow 200ms var(--mh-ease), border-color 200ms var(--mh-ease);
	display: flex; flex-direction: column;
	min-height: 130px;
}
.mh-place:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(14,31,45,0.06);
	border-color: var(--mh-sea);
}
.mh-place__name {
	font-family: var(--mh-serif); font-weight: 500;
	font-size: 1.125rem; line-height: 1.2;
	margin: 0 0 0.25rem;
}
.mh-place__zone {
	font-family: var(--mh-mono); font-size: 0.625rem;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0 0 0.875rem;
}
.mh-place__link {
	margin: auto 0 0;
	font-family: var(--mh-sans); font-size: 0.8125rem; font-weight: 500;
}
.mh-place__link a { color: var(--mh-sea); text-decoration: none; border-bottom: 1px solid color-mix(in oklab, var(--mh-sea) 30%, transparent); }
.mh-place__link a:hover { color: var(--mh-sea-2); border-bottom-color: var(--mh-sea-2); }

.mh-gallery-page__cta {
	display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 2.5rem;
}
.mh-gallery-page__cta a {
	background: var(--mh-sea); color: var(--mh-paper);
	padding: 0.875rem 1.75rem; border-radius: var(--mh-r-pill);
	text-decoration: none; font-weight: 500; font-size: 1rem;
}
.mh-gallery-page__cta a + a {
	background: var(--mh-paper); color: var(--mh-sea); border: 1px solid var(--mh-sea);
}

/* "Vedi tutte le foto" link below the 5-photo gallery on property pages */
.mh-prop-gallery__more {
	text-align: center; margin: 0.75rem auto 0; max-width: 1440px;
}
.mh-prop-gallery__more a {
	display: inline-block; padding: 0.625rem 1.5rem;
	background: var(--mh-paper); color: var(--mh-sea);
	border: 1px solid var(--mh-line); border-radius: var(--mh-r-pill);
	font-family: var(--mh-sans); font-size: 0.9375rem; font-weight: 500;
	text-decoration: none; transition: background 200ms var(--mh-ease), border-color 200ms var(--mh-ease);
}
.mh-prop-gallery__more a:hover { background: var(--mh-sky-2); border-color: var(--mh-sea); }

/* ===========================================================================
   PROPERTY MAP
   =========================================================================== */
.mh-prop-map {
	max-width: 1440px; margin: 2.5rem auto 0; padding: 0 2rem;
}
.mh-prop-map__title {
	font-family: var(--mh-mono); font-size: 0.75rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0 0 0.5rem;
}
.mh-prop-map__address {
	font-family: var(--mh-serif); font-weight: 500; font-size: 1.375rem;
	margin: 0 0 1rem;
}
.mh-prop-map iframe {
	width: 100%; aspect-ratio: 21/9; border: 0; display: block;
	border-radius: var(--mh-r-md); background: var(--mh-sky-2);
}

/* ===========================================================================
   UNIFIED /prenota — search form + recommendation cards
   =========================================================================== */
.mh-unified {
	max-width: 920px; margin: 0 auto; padding: 2.5rem 1.5rem 4rem;
}
.mh-unified__form {
	background: var(--mh-paper);
	border: 1px solid var(--mh-line);
	border-radius: var(--mh-r-md);
	padding: 2rem 2rem 2.25rem;
	margin-bottom: 2rem;
}
.mh-unified__title {
	font-family: var(--mh-serif); font-weight: 400;
	font-size: clamp(1.875rem, 4vw, 2.5rem);
	line-height: 1.1; margin: 0 0 0.5rem;
}
.mh-unified__lead {
	font-family: var(--mh-sans); font-size: 1rem; line-height: 1.55;
	color: var(--mh-mute); margin: 0 0 1.5rem;
}

.mh-unified__results {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem;
}
@media (max-width: 699px) {
	.mh-unified__results { grid-template-columns: 1fr; }
	.mh-unified__form    { padding: 1.5rem; }
}
.mh-unified__card {
	display: block;
	background: var(--mh-paper);
	border: 1px solid var(--mh-line);
	border-radius: var(--mh-r-md);
	padding: 1.5rem 1.5rem 1.75rem;
	color: var(--mh-ink); text-decoration: none;
	transition: transform 200ms var(--mh-ease), box-shadow 200ms var(--mh-ease);
}
.mh-unified__card:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 24px rgba(14,31,45,0.06), 0 16px 48px rgba(14,31,45,0.05);
}
.mh-unified__card--reco {
	background: var(--mh-sky-2);
	border-color: var(--mh-sea);
}
.mh-unified__badge {
	display: inline-block;
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--mh-sea);
	background: var(--mh-paper); border: 1px solid var(--mh-sea);
	border-radius: var(--mh-r-pill);
	padding: 0.25rem 0.625rem;
	margin: 0 0 0.875rem;
}
.mh-unified__house {
	font-family: var(--mh-serif); font-weight: 500;
	font-size: 1.625rem; line-height: 1.1; margin: 0 0 0.5rem;
}
.mh-unified__why {
	font-family: var(--mh-sans); font-size: 0.9375rem; line-height: 1.5;
	color: var(--mh-mute); margin: 0 0 1.25rem;
}
.mh-unified__pricerow {
	display: flex; justify-content: space-between; align-items: baseline;
	border-top: 1px solid var(--mh-line);
	padding-top: 0.875rem;
}
.mh-unified__pricerow span {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--mh-mute);
}
.mh-unified__pricerow strong {
	font-family: var(--mh-serif); font-weight: 500; font-size: 1.5rem; color: var(--mh-ink);
}
.mh-unified__pricesub {
	font-family: var(--mh-sans); font-size: 0.8125rem; color: var(--mh-mute);
	margin: 0.25rem 0 1rem;
}
.mh-unified__cta {
	display: inline-block; color: var(--mh-sea); font-family: var(--mh-mono);
	font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase;
}
.mh-unified__none {
	background: var(--mh-paper); border: 1px solid var(--mh-line);
	border-radius: var(--mh-r-md); padding: 2rem; text-align: center;
	grid-column: 1 / -1;
}
.mh-unified__none h3 {
	font-family: var(--mh-serif); font-weight: 400; font-size: 1.75rem;
	margin: 0.5rem 0 1rem;
}
.mh-unified__none p { font-size: 1rem; color: var(--mh-mute); }

/* ===========================================================================
   ABOUT / CHI SIAMO
   =========================================================================== */
.mh-about {
	max-width: 720px; margin: 0 auto; padding: 0 1.5rem;
}
.mh-about__eyebrow {
	font-family: var(--mh-mono); font-size: 0.75rem;
	letter-spacing: 0.18em; text-transform: uppercase;
	color: var(--mh-sea); margin: 0 0 1rem;
}
.mh-about h1 {
	font-family: var(--mh-serif); font-weight: 400;
	font-size: clamp(2.5rem, 5.5vw, 3.75rem); line-height: 1.05;
	margin: 0 0 1.5rem;
}
.mh-about p {
	font-size: 1.125rem; line-height: 1.7; color: var(--mh-ink);
	margin: 0 0 1rem;
}

/* ===========================================================================
   CONTACT
   =========================================================================== */
.mh-contact-grid {
	display: grid; grid-template-columns: 1fr 1fr 1fr;
	gap: 2rem;
	margin-top: 2.5rem;
}
.mh-contact-grid h4 {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--mh-mute); margin: 0 0 0.5rem;
}
.mh-contact-grid p {
	font-family: var(--mh-sans); font-size: 1rem; line-height: 1.5;
	color: var(--mh-ink); margin: 0;
}
@media (max-width: 699px) {
	.mh-contact-grid { grid-template-columns: 1fr; gap: 1.5rem; }
}
.mh-map {
	width: 100%; aspect-ratio: 21 / 9; border: 0;
	display: block; background: var(--mh-sky-2);
}

/* ===========================================================================
   FOOTER
   =========================================================================== */
.mh-footer {
	background: var(--mh-ink); color: var(--mh-bone);
	padding: clamp(2rem, 4vw, 3rem) 1.5rem 1.25rem;
}
.mh-footer__inner {
	max-width: 1440px; margin: 0 auto;
	display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr;
	gap: 1.75rem;
}
.mh-footer__legal { max-width: 1440px; }
.mh-footer h4 {
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--mh-faint); margin: 0 0 0.75rem;
}
.mh-footer p, .mh-footer a { font-family: var(--mh-sans); font-size: 0.9375rem; line-height: 1.6; color: var(--mh-bone); }
.mh-footer a { text-decoration: none; border-bottom: 1px solid color-mix(in oklab, var(--mh-bone) 25%, transparent); }
.mh-footer a:hover { color: var(--mh-sky); }
.mh-footer__brand {
	font-family: var(--mh-serif); font-style: italic; font-weight: 500;
	font-size: 1.75rem; color: var(--mh-paper); margin: 0 0 0.75rem;
}
.mh-footer__legal {
	max-width: 1240px; margin: 1.75rem auto 0; padding-top: 1rem;
	border-top: 1px solid rgba(247,243,234,0.12);
	font-family: var(--mh-mono); font-size: 0.6875rem;
	letter-spacing: 0.12em; text-transform: uppercase; color: var(--mh-faint);
}
.mh-footer__legal a { color: var(--mh-faint); border-bottom: none; margin-left: 0.75rem; }
.mh-footer__legal a:hover { color: var(--mh-sky); }
.mh-footer__legal--codes { margin-top: 1.5rem; padding-top: 1rem; padding-bottom: 0; border-top: 1px solid rgba(247,243,234,0.12); border-bottom: none; }
.mh-footer__social { display: inline-flex; gap: 0.5rem; margin-left: 0; margin-top: 0.75rem; vertical-align: middle; }
.mh-footer__social a { color: var(--mh-bone); border-bottom: none !important; transition: color 200ms var(--mh-ease), border-color 200ms var(--mh-ease); }
.mh-footer__social a:hover { color: var(--mh-sky); border-color: var(--mh-sky) !important; }
.mh-prop-map__link { font-family: var(--mh-mono); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; margin: 0.75rem 0 0; }
.mh-prop-map__link a { color: var(--mh-sea); text-decoration: none; }
@media (max-width: 899px) {
	.mh-footer__inner { grid-template-columns: 1fr 1fr; gap: 2rem 1.5rem; }
}
@media (max-width: 499px) {
	.mh-footer__inner { grid-template-columns: 1fr; }
}

/* ===========================================================================
   Generic helpers
   =========================================================================== */
.mh-section-head {
	margin-bottom: 1.75rem;
}
.mh-section-head h2 {
	font-family: var(--mh-serif); font-weight: 400;
	font-size: clamp(2.25rem, 5vw, 3.5rem); line-height: 1.05;
	margin: 0; letter-spacing: -0.01em;
}
.mh-section-head h2 em { font-style: italic; color: var(--mh-sea); }
.mh-section-head .mh-eyebrow { margin-bottom: 0.5rem; }
.mh-section-head__row {
	display: flex; align-items: baseline; justify-content: space-between; gap: 1.5rem;
	flex-wrap: wrap;
}
.mh-section-head__link {
	font-family: var(--mh-mono); font-size: 0.75rem;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--mh-sea); text-decoration: none;
}
.mh-section-head__link::after { content: " →"; }

/* Reveal-on-scroll */
.mh-reveal { opacity: 0; transform: translateY(12px); transition: opacity 600ms var(--mh-ease), transform 600ms var(--mh-ease); }
.mh-reveal.is-visible { opacity: 1; transform: translateY(0); }

/* ===========================================================================
   GTRANSLATE — pin the floating switcher to bottom-left, out of the way
   of the lightbox close button (top-right) and the WhatsApp pill (bottom-right).
   Targets the standard GTranslate floating widget classes.
   =========================================================================== */
.gt_float_switcher,
.gtranslate_wrapper,
.gt-current-lang,
#gt_float_wrapper {
	position: fixed !important;
	left: 1rem !important;
	bottom: 1rem !important;
	top: auto !important;
	right: auto !important;
	z-index: 9999;
}
/* When the gallery lightbox is open, hide the language switcher
   so it doesn't sit on top of the close button or any modal chrome. */
html.mh-lightbox-open .gt_float_switcher,
html.mh-lightbox-open .gtranslate_wrapper,
html.mh-lightbox-open #gt_float_wrapper,
html.mh-lightbox-open [class*="gt_"],
html.mh-lightbox-open [class*="gtranslate"] {
	display: none !important;
}
@media (max-width: 600px) {
	.gt_float_switcher,
	.gtranslate_wrapper,
	#gt_float_wrapper {
		left: 0.75rem !important;
		bottom: max(0.75rem, env(safe-area-inset-bottom)) !important;
	}
}

/* ===========================================================================
   PHOTOSWIPE — fullscreen gallery viewer, branded
   Loaded via CDN; we retheme it to our palette and add a backdrop blur.
   =========================================================================== */
.mh-prop-gallery img,
.mh-gallery-page__grid img { cursor: zoom-in; }

.pswp {
	--pswp-bg: #0E1F2D;
	--pswp-placeholder-bg: #1F4C6B;
	--pswp-root-z-index: 100000;
	--pswp-icon-color: #F7F3EA;
	--pswp-icon-color-secondary: rgba(247, 243, 234, 0.65);
	--pswp-icon-stroke-color: rgba(14, 31, 45, 0.65);
	--pswp-icon-stroke-width: 1.4px;
	font-family: var(--mh-sans);
}
/* Transparent ink wash + frosted glass blur of the page underneath. */
.pswp__bg {
	opacity: 0.82 !important;
	backdrop-filter: blur(22px) saturate(140%);
	-webkit-backdrop-filter: blur(22px) saturate(140%);
}
.pswp__button { transition: opacity 200ms var(--mh-ease); }

/* Arrow + close share the same pill style */
.pswp__button--arrow { width: 60px; height: 100px; }
.pswp__button--arrow .pswp__icn,
.pswp__button--close .pswp__icn {
	background: rgba(247, 243, 234, 0.14);
	border: 1px solid rgba(247, 243, 234, 0.30);
	border-radius: 999px;
	padding: 11px; width: 46px; height: 46px;
	top: 50%; left: 50%; transform: translate(-50%, -50%);
	transition: background 200ms ease, border-color 200ms ease;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.pswp__button--arrow:hover .pswp__icn,
.pswp__button--close:hover .pswp__icn {
	background: rgba(247, 243, 234, 0.26);
	border-color: rgba(247, 243, 234, 0.55);
}

/* Close button — always visible, generous tap target */
.pswp__button--close {
	width: 64px !important; height: 64px !important;
	opacity: 1 !important; margin-right: 0.25rem;
}

.pswp__counter {
	font-family: var(--mh-mono); font-size: 0.75rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: rgba(247, 243, 234, 0.85);
	background: rgba(14, 31, 45, 0.55);
	backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
	padding: 0.45rem 0.85rem;
	border-radius: 999px; margin: 0.5rem 0 0 0.85rem;
	min-width: auto; opacity: 1;
}
.pswp__top-bar { padding-top: 0.5rem; }
.pswp__caption {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 1;
	padding: 1rem 1.25rem 1.25rem;
	background: linear-gradient(to top, rgba(14, 31, 45, 0.75), rgba(14, 31, 45, 0));
	color: rgba(247, 243, 234, 0.95);
	font-family: var(--mh-sans); font-size: 0.9375rem; line-height: 1.5;
	text-align: center; pointer-events: none;
}
.pswp__caption:empty { display: none; }

/* ---------- Mobile: no arrows (swipe only), bigger close, calmer chrome ---------- */
@media (max-width: 768px) {
	.pswp__button--arrow { display: none !important; }
	.pswp__button--close {
		position: fixed !important;
		top: max(0.5rem, env(safe-area-inset-top));
		right: max(0.5rem, env(safe-area-inset-right));
		width: 56px !important; height: 56px !important;
		z-index: 100001;
	}
	.pswp__button--close .pswp__icn {
		width: 44px; height: 44px; padding: 10px;
		background: rgba(247, 243, 234, 0.18);
		border-color: rgba(247, 243, 234, 0.40);
	}
	.pswp__counter {
		font-size: 0.6875rem; padding: 0.35rem 0.7rem;
		margin: max(0.65rem, env(safe-area-inset-top)) 0 0 0.85rem;
	}
	.pswp__caption {
		font-size: 0.875rem;
		padding: 0.75rem 1rem calc(0.9rem + env(safe-area-inset-bottom));
	}
	.pswp__bg { opacity: 0.88 !important; }
}
