/* ==========================================================================
   MHB Batam theme – mobile-first.
   Legacy look (navy sidebar, grey title bar, blue tiles, contact footer),
   fluid layout: no fixed page width, content scales from 320px to 4K.
   Breakpoints:  ≥600 small tablet · ≥782 columns side by side (core) · ≥1024 sidebar layout · ≥1600 large
   ========================================================================== */

:root {
	--mhb-navy: var(--wp--preset--color--primary, #034694);
	--mhb-blue: var(--wp--preset--color--secondary, #4485b7);
	--mhb-accent: var(--wp--preset--color--accent, #0a70b9);
	--mhb-accent-light: var(--wp--preset--color--accent-light, #2789cf);
	--mhb-gray: var(--wp--preset--color--light-gray, #dcddde);
	--mhb-sidebar-w: 240px;
	--mhb-top-h: 72px;                 /* mobile header height */
	--mhb-gutter: clamp(1rem, 4vw, 3rem);
	--mhb-section-pad: clamp(1.75rem, 5vw, 4rem);
	--mhb-ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:lang(ja) body, body:lang(ja) {
	font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, "Helvetica Neue", Arial, sans-serif;
	line-height: 1.8;
}
img { max-width: 100%; height: auto; }
:where(a) { text-underline-offset: .15em; }
:focus-visible { outline: 3px solid var(--mhb-accent-light); outline-offset: 2px; }
.wp-site-blocks { padding: 0; min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.wp-site-blocks > .mhb-shell, .wp-site-blocks > .wp-block-group:first-child { flex: 1 0 auto; }
.wp-site-blocks > * + * { margin-block-start: 0; }   /* shell + footer butt together */

/* ---------- Shell ---------------------------------------------------------- */
.mhb-shell { margin: 0; }
.mhb-main { min-width: 0; margin: 0; }
.mhb-main > * { margin-block: 0; }

/* ---------- Header / sidebar (mobile: sticky top bar) ---------------------- */
.mhb-sidebar {
	position: sticky;
	top: 0;
	z-index: 100;
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-areas: "brand nav" "lang lang";
	align-items: center;
	background: #fff;
	box-shadow: 0 1px 0 rgba(0, 0, 0, .06), 0 4px 16px rgba(3, 70, 148, .08);
	margin: 0;
}
.admin-bar .mhb-sidebar { top: var(--wp-admin--admin-bar--height, 0); }
.mhb-sidebar > * { margin: 0 !important; }
.mhb-brand { grid-area: brand; padding: .65rem var(--mhb-gutter); min-height: calc(var(--mhb-top-h) - 1.3rem); display: flex; align-items: center; }
.mhb-logo { display: inline-flex; line-height: 0; }
.mhb-logo__portrait { display: none; }
.mhb-logo__landscape { width: clamp(190px, 55vw, 280px); height: auto; }

/* Navigation: hamburger + navy overlay below 1024px */
.mhb-nav { grid-area: nav; padding-inline-end: var(--mhb-gutter); }
.mhb-nav .wp-block-navigation__responsive-container-open {
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 6px;
	background: var(--mhb-navy);
	color: #fff;
}
.mhb-nav .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }
.mhb-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: clamp(1.25rem, 6vw, 2.5rem);
	background: var(--mhb-navy) !important;
	color: #fff !important;
	animation: mhb-fade .2s var(--mhb-ease);
}
@keyframes mhb-fade { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.mhb-nav .is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; }
.mhb-nav .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 32px; height: 32px; }
.mhb-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3.5rem;
	align-items: stretch !important;
}
.mhb-nav .is-menu-open .wp-block-navigation__container {
	width: 100%;
	gap: 0 !important;
	align-items: stretch !important;
}
.mhb-nav .is-menu-open .wp-block-navigation-item {
	width: 100%;
	align-items: stretch !important;
	border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.mhb-nav .is-menu-open .wp-block-navigation-item__content {
	display: block;
	padding: .9rem .25rem !important;
	font-size: 1.125rem;
	color: #fff;
	text-decoration: none;
}
.mhb-nav .is-menu-open .wp-block-navigation__submenu-container {
	padding: 0 0 .6rem 1rem !important;
	gap: 0 !important;
	background: transparent !important;
}
.mhb-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; }
.mhb-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: .45rem .25rem !important;
	font-size: 1rem;
	opacity: .85;
}
.mhb-nav .is-menu-open .wp-block-navigation__submenu-icon { display: none; }
.mhb-nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content,
.mhb-nav .is-menu-open .current-menu-ancestor > .wp-block-navigation-item__content { color: #9fd0ff; opacity: 1; }

/* Core switches to the desktop menu at 600px – keep the hamburger until 1024px. */
@media (min-width: 600px) and (max-width: 1023.98px) {
	.mhb-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.mhb-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* Language switcher (mobile: thin navy strip under the header) */
.mhb-sidebar .wp-block-html, .mhb-sidebar > .mhb-lang { grid-area: lang; }
.mhb-lang { background: var(--mhb-navy); }
.mhb-lang ul { display: flex; justify-content: flex-end; gap: .25rem 1.25rem; margin: 0; padding: .35rem var(--mhb-gutter); list-style: none; }
.mhb-lang a { color: #fff; font-size: .8125rem; text-decoration: none; opacity: .9; }
.mhb-lang a:hover, .mhb-lang a:focus-visible { opacity: 1; text-decoration: underline; }

/* ---------- Title bar ------------------------------------------------------ */
.mhb-titlebar {
	display: flex;
	align-items: center;
	min-height: clamp(84px, 14vw, 132px);
	padding: 1rem var(--mhb-gutter) !important;
	margin: 0 !important;
}
.mhb-titlebar .wp-block-post-title, .mhb-titlebar h1 {
	margin: 0;
	font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem);
	font-weight: 400;
	color: #000;
	letter-spacing: .01em;
}

/* ---------- Page content --------------------------------------------------- */
.mhb-content > * { margin-block: 0 !important; }
.mhb-content :where(p) { margin-block: 0 0 1em; }
.mhb-content :where(p:last-child) { margin-bottom: 0; }

/* Single-column sections (groups) */
.mhb-content > .wp-block-group,
.mhb-section {
	padding: var(--mhb-section-pad) var(--mhb-gutter);
}
.mhb-content > .wp-block-group > * { margin-block: 0 0 1rem; }
.mhb-content > .wp-block-group > :last-child { margin-bottom: 0; }

/* Columns = legacy "panels": edge to edge, no gaps */
.mhb-content .wp-block-columns {
	gap: 0 !important;
	margin: 0 !important;
	align-items: stretch !important;
}
.mhb-content > .wp-block-group:has(+ .wp-block-columns) { padding-bottom: clamp(.5rem, 2vw, 1.25rem); }
.mhb-content .wp-block-column {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	padding: var(--mhb-section-pad) var(--mhb-gutter);
	min-width: 0;
}
.mhb-content .wp-block-column > * { margin-block: 0 0 1rem; }
.mhb-content .wp-block-column > :last-child { margin-bottom: 0; }

/* Media panels: image/map fills the panel */
.mhb-content .wp-block-column.is-media { padding: 0; justify-content: stretch; }
.mhb-content .is-media > .wp-block-image,
.mhb-content .is-media > .wp-block-html { flex: 1; margin: 0 !important; display: flex; }
.mhb-content .is-media > .wp-block-image img {
	width: 100%;
	height: 100%;
	min-height: 220px;
	object-fit: cover;
	display: block;
}
.mhb-map { display: block; width: 100%; min-height: 300px; height: 100%; border: 0; }

/* Coloured panels: content vertically centred, white text */
.mhb-content .wp-block-column.has-background { justify-content: center; }
.mhb-content .has-primary-background-color,
.mhb-content .has-secondary-background-color,
.mhb-content .has-accent-background-color { color: #fff; }
.mhb-content .has-primary-background-color a,
.mhb-content .has-secondary-background-color a { color: #fff; }

/* Images inside text panels */
.mhb-content .wp-block-image { margin-inline: auto; }
.mhb-content .wp-block-image img { border-radius: 2px; }
.mhb-icon { max-width: 64px; }
.mhb-icon img { width: 64px; }

/* Navigation tiles (4 coloured panels with icon + link): 2×2 on phones */
.mhb-content .wp-block-columns:has(> .wp-block-column:nth-child(4):last-child) { flex-wrap: wrap !important; }
.mhb-content .wp-block-columns:has(> .wp-block-column:nth-child(4):last-child) > .wp-block-column {
	flex-basis: 50% !important;
	padding: clamp(1.5rem, 5vw, 2.75rem) clamp(.75rem, 2vw, 1.5rem);
	text-align: center;
	transition: filter .2s var(--mhb-ease);
}
.mhb-content .wp-block-columns:has(> .wp-block-column:nth-child(4):last-child) > .wp-block-column:hover { filter: brightness(1.12); }
.mhb-content .wp-block-columns:has(> .wp-block-column:nth-child(4):last-child) a { text-decoration: none; }
.mhb-content .wp-block-columns:has(> .wp-block-column:nth-child(4):last-child) .wp-block-heading { font-size: clamp(1rem, .9rem + .8vw, 1.3rem) !important; line-height: 1.35; }

/* 2×2 tiles: make the colours a checkerboard instead of stripes */
@media (max-width: 1023.98px) {
	.mhb-content .wp-block-columns:has(> .wp-block-column:nth-child(4):last-child) > .has-secondary-background-color:nth-child(3) { background-color: var(--mhb-navy) !important; }
	.mhb-content .wp-block-columns:has(> .wp-block-column:nth-child(4):last-child) > .has-primary-background-color:nth-child(4) { background-color: var(--mhb-blue) !important; }
}

/* Headings */
.mhb-content .is-bold { font-weight: 600; }
.mhb-content .wp-block-heading { overflow-wrap: break-word; hyphens: auto; }

/* Company info table */
.wp-block-table.is-style-mhb-info { margin: 0; }
.wp-block-table.is-style-mhb-info table { border-collapse: collapse; width: 100%; font-size: .875rem; line-height: 1.55; color: inherit; border-top: 1px solid var(--mhb-gray); }
.wp-block-table.is-style-mhb-info td { padding: .6rem 0; border: 0; border-bottom: 1px solid var(--mhb-gray); }
.wp-block-table.is-style-mhb-info strong { display: inline-block; font-weight: 600; opacity: .9; }

/* Call-to-action button (e.g. "Inquiry Form") */
.mhb-cta .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	padding: .95rem 1.75rem;
	font-size: 1.0625rem;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(3, 70, 148, .22);
	transition: background-color .15s var(--mhb-ease), transform .15s var(--mhb-ease);
}
.mhb-cta .wp-block-button__link::after { content: "→"; font-size: 1.2em; line-height: 1; transition: transform .15s var(--mhb-ease); }
.mhb-cta .wp-block-button__link:hover { transform: translateY(-1px); }
.mhb-cta .wp-block-button__link:hover::after { transform: translateX(3px); }

/* Lists */
.mhb-content .wp-block-list { padding-inline-start: 1.25em; }

/* ---------- Home hero ------------------------------------------------------ */
.mhb-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: clamp(420px, 78svh, 980px);
	padding: var(--mhb-section-pad) var(--mhb-gutter) clamp(2.5rem, 9vw, 6rem) !important;
	background-color: var(--mhb-navy);
	background-size: cover !important;
	background-position: 60% 50% !important;
}
.mhb-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgba(3, 70, 148, .85) 0%, rgba(3, 70, 148, .35) 45%, rgba(3, 70, 148, 0) 75%);
}
.mhb-hero > * { max-width: 40ch; margin: 0 !important; text-shadow: 0 2px 12px rgba(0, 0, 0, .35); }
.mhb-hero > * + * { margin-top: .5rem !important; }
@media (max-width: 781.98px) { .mhb-hero br { display: none; } }
.mhb-hero .has-x-large-font-size { font-size: clamp(1.05rem, .9rem + .9vw, 1.6rem) !important; opacity: .95; }
.mhb-hero .has-huge-font-size { font-size: clamp(1.75rem, 1.1rem + 3vw, 3.25rem) !important; line-height: 1.2; }

/* ---------- Footer --------------------------------------------------------- */
.mhb-footer { margin: 0; border-top: 5px solid #fff; }
.mhb-footer > * { margin: 0 !important; }
.mhb-footer-contact { display: flex; flex-direction: column; padding: 0 !important; }
.mhb-footer-contact > * { margin: 0 !important; }
.mhb-footer-label {
	background: var(--mhb-navy);
	color: #fff;
	text-align: center;
	padding: .8rem 1rem;
	font-size: .9375rem;
}
.mhb-footer-email, .mhb-footer-phone {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	padding: .75rem var(--mhb-gutter) .75rem calc(var(--mhb-gutter) + 2rem);
	background-repeat: no-repeat;
	background-position: var(--mhb-gutter) center;
	background-size: 1.35rem;
}
.mhb-footer-email { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23034694' d='M2 5h20v14H2zm2 2v.5l8 5 8-5V7zm16 2.9-8 5-8-5V17h16z'/%3E%3C/svg%3E"); }
.mhb-footer-phone { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23034694' d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); padding-bottom: 1.25rem; }
.mhb-footer-email a, .mhb-footer-phone a {
	display: inline-block;
	white-space: nowrap;
	padding: .35rem 1rem;
	border: 1px solid #000;
	color: #000;
	font-weight: 600;
	font-size: .875rem;
	line-height: 1.3;
	text-decoration: none;
	transition: background-color .15s var(--mhb-ease), color .15s var(--mhb-ease);
}
.mhb-footer-email a:hover, .mhb-footer-phone a:hover,
.mhb-footer-email a:focus-visible, .mhb-footer-phone a:focus-visible { background: var(--mhb-navy); border-color: var(--mhb-navy); color: #fff; }
.mhb-footer-bottom {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	padding: 1.5rem var(--mhb-gutter) 1.25rem !important;
	background: #fff;
	text-align: center;
}
.mhb-footer-bottom > * { margin: 0 !important; }
.mhb-logo--footer img { width: clamp(220px, 60vw, 300px); height: auto; }
.mhb-copyright { font-size: .8125rem; color: #444; }

@media (min-width: 1024px) {
	.mhb-footer-contact { flex-direction: row; align-items: stretch; min-height: 62px; }
	.mhb-footer-label {
		display: flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		min-width: 230px;
		padding: .75rem 2.75rem .75rem 1.5rem;
		clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 0 100%);
	}
	.mhb-footer-email, .mhb-footer-phone { padding: .75rem 1.5rem .75rem 3.5rem; background-position: 1.5rem center; }
}

/* ---------- Desktop: sidebar layout (≥1024px) ----------------------------- */
@media (min-width: 1024px) {
	:root { --mhb-top-h: 200px; }

	.mhb-shell {
		display: grid;
		grid-template-columns: var(--mhb-sidebar-w) minmax(0, 1fr);
		align-items: start;
	}

	.mhb-sidebar {
		top: 0;
		height: 100vh;
		height: 100dvh;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		background: var(--mhb-navy);
		box-shadow: none;
		overflow: visible;
	}
	.admin-bar .mhb-sidebar { top: var(--wp-admin--admin-bar--height, 32px); height: calc(100dvh - var(--wp-admin--admin-bar--height, 32px)); }

	.mhb-brand {
		height: var(--mhb-top-h);
		min-height: 0;
		justify-content: center;
		background: #fff;
		padding: 1.25rem;
	}
	.mhb-logo__portrait { display: block; width: 100%; max-width: 190px; height: auto; }
	.mhb-logo__landscape { display: none; }

	/* vertical menu */
	.mhb-sidebar > .mhb-nav { width: 100%; padding: 0; position: static; }
	.mhb-nav .wp-block-navigation__responsive-container-open { display: none !important; }
	.mhb-nav .wp-block-navigation__responsive-container,
	.mhb-nav .wp-block-navigation__responsive-container-content { width: 100%; }
	.mhb-nav,
	.mhb-nav .wp-block-navigation__responsive-container,
	.mhb-nav .wp-block-navigation__responsive-dialog,
	.mhb-nav .wp-block-navigation__responsive-close,
	.mhb-nav .wp-block-navigation__responsive-container-content,
	.mhb-nav .wp-block-navigation__container,
	.mhb-nav .wp-block-navigation-item { position: static !important; }
	.mhb-nav .wp-block-navigation__container { width: 100%; gap: 0 !important; align-items: stretch !important; }
	.mhb-nav .wp-block-navigation-item { width: 100%; align-items: stretch !important; }
	.mhb-sidebar .mhb-nav .wp-block-navigation-item__content {
		display: block;
		width: 100%;
		padding: .7rem 1.25rem !important;
		color: #fff;
		font-size: 1rem;
		text-align: center;
		text-decoration: none;
		transition: background-color .15s var(--mhb-ease);
	}
	.mhb-nav .wp-block-navigation-item__content:hover,
	.mhb-nav .wp-block-navigation-item:focus-within > .wp-block-navigation-item__content,
	.mhb-nav .has-child:hover > .wp-block-navigation-item__content { background: var(--mhb-accent); color: #fff; }
	.mhb-nav .current-menu-item > .wp-block-navigation-item__content,
	.mhb-nav .current-menu-ancestor > .wp-block-navigation-item__content { background: var(--mhb-blue); }

	/* caret → points right, like the legacy menu (link + caret share one grid cell) */
	.mhb-nav li.has-child { position: static !important; display: grid !important; grid-template-columns: 1fr; }
	.mhb-nav li.has-child > .wp-block-navigation-item__content { grid-area: 1 / 1; }
	.mhb-nav .wp-block-navigation__submenu-icon {
		grid-area: 1 / 1;
		justify-self: end;
		align-self: center;
		position: static;
		margin: 0 1rem 0 0;
		color: #fff;
		transform: rotate(-90deg);
		pointer-events: none;
	}

	/* flyout: full-height second column next to the sidebar (legacy behaviour) */
	.mhb-nav .wp-block-navigation__submenu-container {
		position: absolute !important;
		top: 0 !important;
		left: 100% !important;
		bottom: 0;
		width: 240px !important;
		min-width: 240px !important;
		height: 100% !important;
		padding: var(--mhb-top-h) 0 0 !important;
		border: 0 !important;
		background: var(--mhb-accent) !important;
		box-shadow: 8px 0 24px rgba(0, 0, 0, .12);
		display: flex;
		flex-direction: column;
		visibility: hidden;
		opacity: 0;
		transform: translateX(-8px);
		transition: opacity .18s var(--mhb-ease), transform .18s var(--mhb-ease), visibility 0s linear .18s;
	}
	.mhb-nav .has-child:hover > .wp-block-navigation__submenu-container,
	.mhb-nav .has-child:focus-within > .wp-block-navigation__submenu-container {
		visibility: visible;
		opacity: 1;
		transform: none;
		transition-delay: 0s;
	}
	.mhb-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .6rem 1.25rem !important; font-size: .9375rem; }
	.mhb-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--mhb-accent-light); }
	.mhb-nav .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content { background: var(--mhb-accent-light); }

	/* language links under the menu */
	.mhb-lang { background: transparent; margin-top: 1rem; }
	.mhb-lang ul { flex-direction: column; align-items: stretch; gap: 0; padding: 0; border-top: 1px solid rgba(255, 255, 255, .15); }
	.mhb-lang a { display: block; padding: .5rem 1rem; text-align: center; font-size: .8125rem; }
	.mhb-lang a:hover { background: var(--mhb-accent-light); text-decoration: none; }

	.mhb-titlebar { min-height: var(--mhb-top-h); padding-inline: clamp(1.5rem, 3vw, 3rem) !important; }

	.mhb-content .wp-block-columns:has(> .wp-block-column:nth-child(4):last-child) { flex-wrap: nowrap !important; }
	.mhb-content .wp-block-columns:has(> .wp-block-column:nth-child(4):last-child) > .wp-block-column { flex-basis: 0 !important; flex-grow: 1; }

	.mhb-hero { min-height: max(560px, 100dvh); justify-content: center; }
	.mhb-hero::before { background: linear-gradient(90deg, rgba(3, 70, 148, .8) 0%, rgba(3, 70, 148, .35) 45%, rgba(3, 70, 148, 0) 75%); }
	.admin-bar .mhb-hero { min-height: max(560px, calc(100dvh - 32px)); }
}

/* ---------- Desktop flyout usability (fix: submenu closed while moving the mouse to it) ----------
   1. Every top-level item is exactly --mhb-item-h tall and full width (WP 7.0's layout CSS could shrink them).
   2. Each flyout starts at the height of its parent item, so the pointer moves straight across and never
      passes over another menu item.
   3. Closing is delayed (.4 s) and opening waits .15 s, so a diagonal move that brushes another parent item
      still reaches the flyout it started from. */
@media (min-width: 1024px) {
	:root { --mhb-item-h: 3rem; }
	.mhb-sidebar .mhb-nav.wp-block-navigation,
	.mhb-sidebar .mhb-nav .wp-block-navigation__responsive-container,
	.mhb-sidebar .mhb-nav .wp-block-navigation__responsive-container-content,
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container {
		align-items: stretch !important;
		width: 100% !important;
		max-width: none !important;
		padding: 0 !important;
		margin: 0 !important;
	}
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li { width: 100% !important; align-self: stretch !important; }
	.mhb-sidebar .mhb-nav .wp-block-navigation-item__content {
		display: flex !important;
		align-items: center;
		justify-content: center;
		min-height: var(--mhb-item-h);
		padding-top: .35rem !important;
		padding-bottom: .35rem !important;
		line-height: 1.25;
	}
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li.has-child > .wp-block-navigation-item__content { padding-right: 2.25rem !important; padding-left: 2.25rem !important; }
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li:nth-child(1) > .wp-block-navigation__submenu-container { padding-top: calc(var(--mhb-top-h) + 0 * var(--mhb-item-h)) !important; }
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li:nth-child(2) > .wp-block-navigation__submenu-container { padding-top: calc(var(--mhb-top-h) + 1 * var(--mhb-item-h)) !important; }
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li:nth-child(3) > .wp-block-navigation__submenu-container { padding-top: calc(var(--mhb-top-h) + 2 * var(--mhb-item-h)) !important; }
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li:nth-child(4) > .wp-block-navigation__submenu-container { padding-top: calc(var(--mhb-top-h) + 3 * var(--mhb-item-h)) !important; }
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li:nth-child(5) > .wp-block-navigation__submenu-container { padding-top: calc(var(--mhb-top-h) + 4 * var(--mhb-item-h)) !important; }
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li:nth-child(6) > .wp-block-navigation__submenu-container { padding-top: calc(var(--mhb-top-h) + 5 * var(--mhb-item-h)) !important; }
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li:nth-child(7) > .wp-block-navigation__submenu-container { padding-top: calc(var(--mhb-top-h) + 6 * var(--mhb-item-h)) !important; }
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li:nth-child(8) > .wp-block-navigation__submenu-container { padding-top: calc(var(--mhb-top-h) + 7 * var(--mhb-item-h)) !important; }
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li:nth-child(9) > .wp-block-navigation__submenu-container { padding-top: calc(var(--mhb-top-h) + 8 * var(--mhb-item-h)) !important; }
	.mhb-sidebar .mhb-nav ul.wp-block-navigation__container > li:nth-child(10) > .wp-block-navigation__submenu-container { padding-top: calc(var(--mhb-top-h) + 9 * var(--mhb-item-h)) !important; }
	.mhb-sidebar .mhb-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { justify-content: flex-start; padding-left: 1.5rem !important; }
	/* close with a short delay; open immediately */
	.mhb-sidebar .mhb-nav .wp-block-navigation__submenu-container {
		transition: opacity .15s var(--mhb-ease) .25s, transform .15s var(--mhb-ease) .25s, visibility 0s linear .4s !important;
	}
	.mhb-sidebar .mhb-nav .has-child:hover > .wp-block-navigation__submenu-container,
	.mhb-sidebar .mhb-nav .has-child:focus-within > .wp-block-navigation__submenu-container {
		/* small "hover intent" delay: passing over another parent item on the way doesn't swap the flyout */
		transition: opacity .15s var(--mhb-ease) .15s, transform .15s var(--mhb-ease) .15s, visibility 0s linear .15s !important;
	}
	/* keyboard users: no delay */
	.mhb-sidebar .mhb-nav .has-child:focus-within > .wp-block-navigation__submenu-container { transition-delay: 0s !important; }
	/* keep the parent highlighted while its flyout is open */
	.mhb-sidebar .mhb-nav .has-child:hover > .wp-block-navigation-item__content { background: var(--mhb-accent); }
}

/* With assets/js/nav-flyout.js loaded, the script decides which flyout is open (class .mhb-open). */
@media (min-width: 1024px) {
	.mhb-flyout-js .mhb-sidebar .mhb-nav .has-child:not(.mhb-open):not(:focus-within) > .wp-block-navigation__submenu-container {
		visibility: hidden !important;
		opacity: 0 !important;
		transform: translateX(-8px) !important;
		transition: opacity .12s var(--mhb-ease), transform .12s var(--mhb-ease), visibility 0s linear .12s !important; /* the script already waited */
	}
	.mhb-flyout-js .mhb-sidebar .mhb-nav .has-child.mhb-open > .wp-block-navigation__submenu-container {
		visibility: visible !important;
		opacity: 1 !important;
		transform: none !important;
		transition: opacity .15s var(--mhb-ease), transform .15s var(--mhb-ease), visibility 0s !important;
	}
	.mhb-flyout-js .mhb-sidebar .mhb-nav .has-child:hover:not(.mhb-open) > .wp-block-navigation-item__content { background: transparent; }
	.mhb-flyout-js .mhb-sidebar .mhb-nav .has-child.mhb-open > .wp-block-navigation-item__content { background: var(--mhb-accent); }
}

@media (min-width: 1600px) {
	:root { --mhb-sidebar-w: 260px; }
}

/* ---------- Inquiry form -------------------------------------------------- */
.mhb-inquiry { max-width: 820px; margin-inline: 0 auto !important; }
.mhb-content .wp-block-group:has(.mhb-inquiry) > * { max-width: 820px; margin-inline: 0 auto !important; }
.mhb-form { display: grid; gap: 1.1rem 1.25rem; grid-template-columns: 1fr; margin-top: 1.5rem; }
.mhb-form > p { margin: 0 !important; }
.mhb-field { display: flex; flex-direction: column; gap: .35rem; }
.mhb-field label { font-weight: 600; font-size: .9375rem; }
.mhb-req { color: #c62828; }
.mhb-field input, .mhb-field textarea {
	width: 100%;
	padding: .75rem .85rem;
	font: inherit;
	font-size: 1rem;              /* ≥16px: no zoom-on-focus on iOS */
	color: #111;
	background: #fff;
	border: 1px solid #b9bcc2;
	border-radius: 4px;
	transition: border-color .15s var(--mhb-ease), box-shadow .15s var(--mhb-ease);
}
.mhb-field textarea { resize: vertical; min-height: 9rem; }
.mhb-field input:focus, .mhb-field textarea:focus { outline: none; border-color: var(--mhb-navy); box-shadow: 0 0 0 3px rgba(39, 137, 207, .3); }
.mhb-field.has-error input, .mhb-field.has-error textarea { border-color: #c62828; }
.mhb-error { color: #c62828; font-size: .8125rem; }
.mhb-privacy { font-size: .8125rem; color: #555; }
.mhb-submit { justify-self: start; }
.mhb-submit button { border: 0; cursor: pointer; font: inherit; }
.mhb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.mhb-notice { padding: 1rem 1.25rem; border-radius: 4px; border-left: 4px solid; margin: 1rem 0 0; }
.mhb-notice--ok { background: #e8f3ec; border-color: #2e7d32; color: #1b4d20; }
.mhb-notice--warn { background: #fff6e0; border-color: #e0a100; color: #5c4300; }
.mhb-notice--error { background: #fdecea; border-color: #c62828; color: #6d1b1b; }
@media (min-width: 600px) {
	.mhb-form { grid-template-columns: 1fr 1fr; }
	.mhb-field--message, .mhb-privacy, .mhb-submit { grid-column: 1 / -1; }
}
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }

/* ---------- Click-to-load map ---------------------------------------------- */
.mhb-map-consent {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 1.5rem;
	text-align: center;
	color: #fff;
	background:
		linear-gradient(rgba(3, 70, 148, .82), rgba(3, 70, 148, .82)),
		repeating-linear-gradient(45deg, #2a5f9e 0 2px, transparent 2px 22px),
		var(--mhb-blue);
}
.mhb-map-consent__inner { display: flex; flex-direction: column; align-items: center; gap: .65rem; max-width: 36ch; }
.mhb-map-consent__btn {
	padding: .7rem 1.4rem;
	font: inherit;
	font-weight: 600;
	color: var(--mhb-navy);
	background: #fff;
	border: 0;
	border-radius: 4px;
	cursor: pointer;
}
.mhb-map-consent__btn:hover { background: #e9f2fb; }
.mhb-map-consent__link { color: #fff !important; font-size: .875rem; }
.mhb-map-consent small { font-size: .75rem; opacity: .85; line-height: 1.4; }

/* ---------- Editor tweaks -------------------------------------------------- */
.editor-styles-wrapper .mhb-sidebar { position: relative; }
