/*
 * M304 navigation UX.
 * Ownership: global navigation, breadcrumbs, sitemap and footer navigation only.
 */

:root {
	--mh-nav-green: #1f6b45;
	--mh-nav-green-dark: #174c32;
	--mh-nav-green-soft: #e2f1e7;
	--mh-nav-green-pale: #f4f8f5;
	--mh-nav-green-active: #cfe5d7;
	--mh-nav-text: #1f2933;
	--mh-nav-border: #d9e6de;
	--mh-nav-shadow: 0 10px 30px rgba(23, 76, 50, 0.14);
}

/* Desktop keeps the header visible; compact navigation uses a floating button only. */
.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	box-shadow: 0 1px 0 rgba(31, 107, 69, 0.1);
	transition: box-shadow 180ms ease;
}

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

.site-header.mh-header-compact {
	box-shadow: 0 5px 18px rgba(23, 76, 50, 0.14);
}

.site-header .inside-header {
	transition: min-height 180ms ease, padding 180ms ease;
}

/* Clear keyboard focus throughout the global navigation. */
.site-header a:focus-visible,
.site-header button:focus-visible,
.mh-breadcrumb a:focus-visible,
.mh-sitemap a:focus-visible,
.m304-footer-links a:focus-visible {
	outline: 3px solid rgba(31, 107, 69, 0.45);
	outline-offset: 2px;
}

@media (min-width: 1025px) {
	/* The header needs a wider inner container than page content to hold brand and navigation. */
	.site-header .inside-header {
		box-sizing: border-box;
		width: 100%;
		max-width: 1440px;
		padding-right: 16px;
		padding-left: 16px;
	}

	/* Top-level hover is visible without competing with the consultation CTA. */
	.site-header .main-navigation .main-nav > ul > li:not(.menu-item-contact) > a {
		border-radius: 6px 6px 0 0;
		box-shadow: inset 0 0 0 transparent;
		transition: color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
	}

	/* A clear but restrained divider keeps adjacent desktop destinations distinct. */
	.site-header .main-navigation .main-nav > ul > li:not(:first-child):not(.menu-item-contact)::before {
		content: "";
		position: absolute;
		top: 14px;
		bottom: 14px;
		left: 0;
		z-index: 1;
		width: 1px;
		background: #abc6b5;
		pointer-events: none;
	}

	.site-header .main-navigation .main-nav > ul > li:not(.menu-item-contact):hover > a,
	.site-header .main-navigation .main-nav > ul > li:not(.menu-item-contact):focus-within > a,
	.site-header .main-navigation .main-nav > ul > li.sfHover:not(.menu-item-contact) > a {
		color: var(--mh-nav-green-dark);
		background: var(--mh-nav-green-soft);
		box-shadow: inset 0 -3px 0 var(--mh-nav-green);
	}

	.site-header .main-navigation .main-nav > ul > li[class*="current-menu-"]:not(.menu-item-contact) > a,
	.site-header .main-navigation .main-nav > ul > li.current-page-ancestor:not(.menu-item-contact) > a {
		color: var(--mh-nav-green-dark);
		background: var(--mh-nav-green-pale);
		box-shadow: inset 0 -3px 0 var(--mh-nav-green);
	}

	.site-header .main-navigation .main-nav > ul > li[class*="current-menu-"]:not(.menu-item-contact):hover > a,
	.site-header .main-navigation .main-nav > ul > li[class*="current-menu-"]:not(.menu-item-contact):focus-within > a,
	.site-header .main-navigation .main-nav > ul > li.current-page-ancestor:not(.menu-item-contact):hover > a,
	.site-header .main-navigation .main-nav > ul > li.current-page-ancestor:not(.menu-item-contact):focus-within > a {
		background: var(--mh-nav-green-active);
	}

	.site-header .main-navigation .main-nav ul.sub-menu {
		padding: 8px;
		border: 1px solid var(--mh-nav-border);
		border-radius: 0 0 10px 10px;
		box-shadow: var(--mh-nav-shadow);
	}

	.site-header .main-navigation .main-nav ul.sub-menu > li > a {
		padding: 11px 14px;
		border-radius: 6px;
		line-height: 1.45;
		transition: color 140ms ease, background-color 140ms ease, box-shadow 140ms ease;
	}

	.site-header .main-navigation .main-nav ul.sub-menu > li:not(.mh-menu-section-label):hover > a,
	.site-header .main-navigation .main-nav ul.sub-menu > li:not(.mh-menu-section-label):focus-within > a {
		color: var(--mh-nav-green-dark);
		background: var(--mh-nav-green-soft);
		box-shadow: inset 3px 0 0 var(--mh-nav-green);
	}

	/* Two intrinsic-width columns keep the service choices scannable without a wide mega menu. */
	.site-header .main-navigation .main-nav > ul > li.mh-menu-services:hover > .sub-menu,
	.site-header .main-navigation .main-nav > ul > li.mh-menu-services:focus-within > .sub-menu,
	.site-header .main-navigation .main-nav > ul > li.mh-menu-services.sfHover > .sub-menu {
		display: grid;
		grid-template-columns: max-content max-content;
		column-gap: 4px;
		width: max-content;
		max-width: calc(100vw - 40px);
		height: auto;
		max-height: calc(100vh - 110px);
		overflow-x: hidden;
		overflow-y: auto;
		opacity: 1;
		visibility: visible;
	}

	.site-header .main-navigation li.mh-menu-services > .sub-menu > li {
		float: none;
		width: auto;
		min-width: 0;
	}

	.site-header .main-navigation li.mh-menu-services > .sub-menu > li > a {
		white-space: nowrap;
	}

	.site-header .main-navigation li.mh-menu-services > .sub-menu > li.mh-menu-all,
	.site-header .main-navigation li.mh-menu-services > .sub-menu > li.mh-menu-section-label {
		grid-column: 1 / -1;
	}

	.site-header.mh-header-compact .inside-header {
		padding-top: 8px;
		padding-bottom: 8px;
	}
}

/* Compact desktop navigation before the narrowest full-menu treatment. */
@media (min-width: 1181px) and (max-width: 1360px) {
	.site-header .inside-header {
		column-gap: 12px;
	}

	.site-header .site-branding .main-title {
		font-size: 22px !important;
	}

	.site-header .main-navigation .main-nav > ul > li > a {
		padding-right: 7px !important;
		padding-left: 7px !important;
		font-size: 14px !important;
	}

	.site-header .main-navigation .main-nav > ul > li.menu-item-has-children > a {
		padding-right: 0 !important;
	}

	.site-header .main-navigation .main-nav > ul > li.menu-item-has-children > a .dropdown-menu-toggle {
		padding-right: 5px !important;
		padding-left: 5px !important;
	}

	.site-header .main-navigation .main-nav > ul > li.menu-item-contact > a {
		margin-left: 5px !important;
		padding-right: 13px !important;
		padding-left: 13px !important;
	}
}

/* 1025-1180px still shows the complete navigation with tighter, readable spacing. */
@media (min-width: 1025px) and (max-width: 1180px) {
	.site-header .inside-header {
		column-gap: 8px !important;
		padding-right: 12px !important;
		padding-left: 12px !important;
	}

	.site-header .site-branding .main-title {
		font-size: 17px !important;
		letter-spacing: -0.015em;
		white-space: nowrap;
	}

	.site-header .main-navigation .main-nav > ul > li > a {
		padding-right: 5px !important;
		padding-left: 5px !important;
		font-size: 13px !important;
	}

	.site-header .main-navigation .main-nav > ul > li.menu-item-has-children > a {
		padding-right: 0 !important;
	}

	.site-header .main-navigation .main-nav > ul > li.menu-item-has-children > a .dropdown-menu-toggle {
		padding-right: 4px !important;
		padding-left: 4px !important;
	}

	.site-header .main-navigation .main-nav > ul > li.menu-item-contact > a {
		margin-left: 4px !important;
		padding-right: 10px !important;
		padding-left: 10px !important;
	}
}

.site-header .main-navigation li.mh-menu-section-label {
	margin: 0;
	padding: 0;
	pointer-events: none;
}

.site-header .mh-menu-section-label__text {
	display: block;
	margin: 7px 0 3px;
	padding: 9px 12px;
	border-left: 4px solid var(--mh-nav-green);
	color: var(--mh-nav-green-dark);
	background: #dcebe2;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.35;
}

/* Narrow desktop, tablet and mobile share one right-side compact menu. */
@media (max-width: 1024px) {
	body.m304-navigation-ux .site-header {
		position: relative !important;
		top: auto !important;
		z-index: 1000;
		box-shadow: 0 1px 0 rgba(31, 107, 69, 0.1);
	}

	body.m304-navigation-ux .has-inline-mobile-toggle .inside-header {
		display: flex !important;
		align-items: center !important;
		flex-flow: row wrap !important;
		padding: 8px 16px !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle .site-branding {
		flex: 1 1 auto !important;
		min-width: 0 !important;
		max-width: calc(100% - 80px) !important;
		margin-right: auto !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper {
		position: fixed !important;
		top: max(10px, env(safe-area-inset-top)) !important;
		right: max(10px, env(safe-area-inset-right)) !important;
		z-index: 1210 !important;
		display: flex !important;
		flex: 0 0 68px !important;
		align-items: center !important;
		justify-content: center !important;
		width: 68px !important;
		height: 56px !important;
		margin: 0 !important;
		background: transparent !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper .menu-toggle {
		display: inline-flex !important;
		flex-direction: column !important;
		gap: 3px !important;
		align-items: center !important;
		justify-content: center !important;
		width: 68px !important;
		min-width: 68px !important;
		height: 56px !important;
		min-height: 56px !important;
		padding: 0 !important;
		border: 1px solid #c6ddcf !important;
		border-radius: 9px !important;
		color: var(--mh-nav-green-dark) !important;
		background: #e5f2e9 !important;
		box-shadow: 0 4px 14px rgba(23, 76, 50, 0.2) !important;
		line-height: 1 !important;
		transition: color 150ms ease, background-color 150ms ease, box-shadow 150ms ease !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper .menu-toggle:hover,
	body.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper .menu-toggle:focus-visible {
		color: #fff !important;
		background: var(--mh-nav-green) !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper .menu-toggle[aria-expanded="true"] {
		color: #fff !important;
		background: var(--mh-nav-green-dark) !important;
		box-shadow: 0 5px 18px rgba(23, 76, 50, 0.28) !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper .menu-toggle[aria-expanded="true"]::after {
		content: "閉じる";
	}

	body.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper .menu-toggle::after {
		content: "メニュー";
		display: block;
		font-size: 11px;
		font-weight: 700;
		letter-spacing: 0.02em;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper .menu-toggle .gp-icon {
		margin: 0 !important;
		font-size: 20px;
	}

	.site-header #site-navigation > .inside-navigation > .menu-toggle {
		display: none !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle #site-navigation {
		flex: 0 0 0 !important;
		width: 0 !important;
		max-width: 0 !important;
		height: 0 !important;
		min-height: 0 !important;
		margin: 0 !important;
		background: transparent !important;
		overflow: visible !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle #site-navigation.toggled {
		position: fixed !important;
		top: calc(max(10px, env(safe-area-inset-top)) + 64px) !important;
		right: max(10px, env(safe-area-inset-right)) !important;
		left: auto !important;
		z-index: 1200 !important;
		box-sizing: border-box !important;
		width: max-content !important;
		min-width: min(340px, calc(100vw - 24px)) !important;
		max-width: min(430px, calc(100vw - 24px)) !important;
		height: auto !important;
		max-height: calc(100dvh - 86px - env(safe-area-inset-bottom)) !important;
		border: 1px solid var(--mh-nav-border) !important;
		border-radius: 12px !important;
		background: #fff !important;
		box-shadow: 0 14px 38px rgba(20, 61, 41, 0.24) !important;
		overflow: hidden !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle #site-navigation .inside-navigation,
	body.m304-navigation-ux .has-inline-mobile-toggle #site-navigation .main-nav {
		width: 100% !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle #site-navigation .main-nav > ul {
		display: none !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 8px 0 calc(12px + env(safe-area-inset-bottom)) !important;
		background: #fff !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle #site-navigation.toggled .main-nav > ul {
		display: block !important;
		max-height: calc(100dvh - 86px - env(safe-area-inset-bottom));
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}

	.site-header #site-navigation .main-nav > ul > li {
		width: 100%;
		border-bottom: 1px solid #e7eee9;
	}

	.site-header #site-navigation .main-nav > ul > li > a {
		display: flex !important;
		align-items: center;
		justify-content: flex-start;
		min-height: 54px;
		padding: 10px 12px 10px 16px !important;
		color: var(--mh-nav-text);
		font-weight: 700;
		line-height: 1.4;
		background: #fff;
	}

	.site-header #site-navigation .main-nav > ul > li > a:hover,
	.site-header #site-navigation .main-nav > ul > li > a:active,
	.site-header #site-navigation .main-nav > ul > li > a:focus-visible {
		color: var(--mh-nav-green-dark);
		background: var(--mh-nav-green-soft);
	}

	.site-header #site-navigation .main-nav > ul > li[class*="current-menu-"] > a,
	.site-header #site-navigation .main-nav > ul > li.current-page-ancestor > a {
		color: var(--mh-nav-green-dark);
		background: var(--mh-nav-green-pale);
		box-shadow: inset 4px 0 0 var(--mh-nav-green);
	}

	.site-header #site-navigation .main-nav > ul > li[class*="current-menu-"] > a:hover,
	.site-header #site-navigation .main-nav > ul > li[class*="current-menu-"] > a:active,
	.site-header #site-navigation .main-nav > ul > li[class*="current-menu-"] > a:focus-visible,
	.site-header #site-navigation .main-nav > ul > li.current-page-ancestor > a:hover,
	.site-header #site-navigation .main-nav > ul > li.current-page-ancestor > a:active,
	.site-header #site-navigation .main-nav > ul > li.current-page-ancestor > a:focus-visible {
		background: var(--mh-nav-green-active);
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children > a .dropdown-menu-toggle {
		display: inline-grid !important;
		grid-template-columns: 38px 16px;
		flex: 0 0 76px;
		align-items: center;
		justify-content: center;
		align-self: stretch;
		column-gap: 4px;
		min-width: 76px;
		margin: -10px 0 -10px auto;
		padding: 0 6px !important;
		border-left: 1px solid #cfe1d6;
		border-radius: 7px;
		color: var(--mh-nav-green-dark);
		background: var(--mh-nav-green-soft);
		pointer-events: none;
		transition: color 180ms ease, background-color 180ms ease;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children > a .dropdown-menu-toggle::before {
		content: "開く";
		display: block;
		width: 38px;
		font-size: 12px;
		font-weight: 700;
		line-height: 1;
		text-align: center;
		white-space: nowrap;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children > a .dropdown-menu-toggle .gp-icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 16px;
		height: 16px;
		margin: 0 !important;
		font-size: 16px;
		line-height: 1;
		transform-origin: center;
		transition: transform 420ms ease;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children > a .dropdown-menu-toggle .gp-icon svg {
		display: block;
		width: 16px;
		height: 16px;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children.mh-submenu-open > a {
		color: var(--mh-nav-green-dark);
		background: var(--mh-nav-green-pale);
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children.mh-submenu-label-open > a .dropdown-menu-toggle::before {
		content: "閉じる";
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children.mh-submenu-label-open > a .dropdown-menu-toggle .gp-icon {
		transform: rotate(180deg);
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children.mh-submenu-animating > .sub-menu {
		will-change: height, opacity;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children.mh-submenu-opening > .sub-menu > li {
		animation: m304-submenu-row-in 450ms cubic-bezier(0.2, 0.7, 0.2, 1) both;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children.mh-submenu-closing > .sub-menu > li {
		animation: m304-submenu-row-out 320ms ease-in both;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children > .sub-menu {
		display: block !important;
		position: static !important;
		left: auto !important;
		box-sizing: border-box !important;
		width: 100% !important;
		height: 0 !important;
		max-height: none !important;
		padding: 5px 0 8px !important;
		border: 0 !important;
		box-shadow: inset 4px 0 0 #d4e7dc !important;
		background: var(--mh-nav-green-pale) !important;
		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;
		float: none !important;
		overflow: hidden !important;
		transform: none !important;
		transition: height 450ms cubic-bezier(0.2, 0.7, 0.2, 1), opacity 280ms ease !important;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children.mh-submenu-open > .sub-menu {
		display: block !important;
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		overflow: hidden !important;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children.mh-submenu-closing > .sub-menu {
		opacity: 0 !important;
		visibility: visible !important;
		pointer-events: none !important;
		overflow: hidden !important;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children > .sub-menu[hidden] {
		display: none !important;
	}

	.site-header #site-navigation .main-nav ul.sub-menu > li > a {
		display: block !important;
		min-height: 48px;
		padding: 12px 20px 12px 28px !important;
		color: var(--mh-nav-text);
		line-height: 1.45;
		background: transparent !important;
	}

	.site-header #site-navigation .main-nav ul.sub-menu > li > a:hover,
	.site-header #site-navigation .main-nav ul.sub-menu > li > a:active,
	.site-header #site-navigation .main-nav ul.sub-menu > li > a:focus-visible {
		color: var(--mh-nav-green-dark);
		background: var(--mh-nav-green-active) !important;
		box-shadow: inset 4px 0 0 var(--mh-nav-green);
	}

	.site-header #site-navigation .main-nav ul.sub-menu > li[class*="current-menu-"] > a {
		color: var(--mh-nav-green-dark);
		background: #fff !important;
		box-shadow: inset 4px 0 0 var(--mh-nav-green);
	}

	.site-header #site-navigation .main-nav ul.sub-menu > li[class*="current-menu-"] > a:hover,
	.site-header #site-navigation .main-nav ul.sub-menu > li[class*="current-menu-"] > a:active,
	.site-header #site-navigation .main-nav ul.sub-menu > li[class*="current-menu-"] > a:focus-visible {
		background: var(--mh-nav-green-active) !important;
	}

	.site-header #site-navigation .main-nav ul.sub-menu > li.mh-menu-all > a {
		font-weight: 700;
		background: transparent !important;
	}

	.site-header #site-navigation .main-nav ul.sub-menu > li.mh-menu-all > a:hover,
	.site-header #site-navigation .main-nav ul.sub-menu > li.mh-menu-all > a:active,
	.site-header #site-navigation .main-nav ul.sub-menu > li.mh-menu-all > a:focus-visible {
		background: var(--mh-nav-green-active) !important;
	}

	.site-header .mh-menu-section-label__text {
		margin: 8px 12px 4px 20px;
		padding: 9px 12px;
		border-radius: 0 6px 6px 0;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-contact {
		padding: 10px 12px;
		border-bottom: 0;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-contact > a {
		justify-content: center;
		min-height: 50px;
		border-radius: 8px;
		color: #fff;
		background: var(--mh-nav-green);
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-contact > a:hover,
	.site-header #site-navigation .main-nav > ul > li.menu-item-contact > a:focus-visible {
		color: #fff;
		background: var(--mh-nav-green-dark);
	}

	body.admin-bar.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper {
		top: 56px !important;
	}

	body.admin-bar.m304-navigation-ux .has-inline-mobile-toggle #site-navigation.toggled {
		top: 120px !important;
		max-height: calc(100dvh - 132px - env(safe-area-inset-bottom)) !important;
	}
}

@keyframes m304-submenu-row-in {
	from {
		opacity: 0;
		transform: translateY(-8px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes m304-submenu-row-out {
	from {
		opacity: 1;
		transform: translateY(0);
	}

	to {
		opacity: 0;
		transform: translateY(-6px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children > a .dropdown-menu-toggle,
	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children > a .dropdown-menu-toggle .gp-icon,
	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children > .sub-menu {
		transition-duration: 220ms !important;
	}

	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children.mh-submenu-opening > .sub-menu > li,
	.site-header #site-navigation .main-nav > ul > li.menu-item-has-children.mh-submenu-closing > .sub-menu > li {
		animation-duration: 220ms !important;
	}
}

@media (max-width: 370px) {
	body.m304-navigation-ux .has-inline-mobile-toggle .inside-header {
		padding-right: 10px !important;
		padding-left: 12px !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle .site-branding {
		max-width: calc(100% - 76px) !important;
	}

	body.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper,
	body.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper .menu-toggle {
		flex-basis: 64px !important;
		width: 64px !important;
		min-width: 64px !important;
	}
}

@media (min-width: 783px) and (max-width: 1024px) {
	body.admin-bar.m304-navigation-ux .has-inline-mobile-toggle .mobile-menu-control-wrapper {
		top: 42px !important;
	}

	body.admin-bar.m304-navigation-ux .has-inline-mobile-toggle #site-navigation.toggled {
		top: 106px !important;
		max-height: calc(100dvh - 118px - env(safe-area-inset-bottom)) !important;
	}
}

/* Breadcrumbs: compact enough for mobile, clear enough to orient users. */
.mh-breadcrumb {
	box-sizing: border-box;
	width: 100%;
	padding: 10px max(20px, calc((100% - 1200px) / 2 + 20px));
	border-bottom: 1px solid var(--mh-nav-border);
	background: var(--mh-nav-green-pale);
	font-size: 14px;
	line-height: 1.55;
}

.mh-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 2px 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mh-breadcrumb li {
	display: inline-flex;
	align-items: center;
	min-width: 0;
	color: #536158;
}

.mh-breadcrumb li:not(:last-child)::after {
	content: "›";
	margin: 0 9px;
	color: #819087;
}

.mh-breadcrumb a {
	color: var(--mh-nav-green-dark);
	text-underline-offset: 3px;
}

.mh-breadcrumb [aria-current="page"] {
	font-weight: 600;
}

/* User-facing sitemap fixed page. */
.mh-sitemap__lead {
	margin: 0 0 24px;
	font-size: 1.05rem;
}

.mh-sitemap__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.mh-sitemap__section {
	padding: 22px;
	border: 1px solid var(--mh-nav-border);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 4px 16px rgba(23, 76, 50, 0.06);
}

.mh-sitemap__section h2 {
	margin: 0 0 12px;
	color: var(--mh-nav-green-dark);
	font-size: clamp(19px, 2.3vw, 24px);
	line-height: 1.4;
}

.mh-sitemap__section ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.mh-sitemap__section li + li {
	border-top: 1px solid #edf2ef;
}

.mh-sitemap__section a {
	display: flex;
	align-items: center;
	min-height: 46px;
	padding: 8px 2px;
	color: var(--mh-nav-green-dark);
	font-weight: 600;
	text-decoration: none;
}

.mh-sitemap__section a::after {
	content: "→";
	margin-left: auto;
	padding-left: 12px;
}

.mh-sitemap__section a:hover {
	color: var(--mh-nav-green);
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* Footer remains concise; sitemap carries the complete page inventory. */
.m304-footer-links {
	gap: 20px;
}

.m304-footer-links ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.m304-footer-links li + li {
	margin-top: 8px;
}

.m304-footer-links a {
	color: var(--mh-nav-green-dark);
	text-underline-offset: 3px;
}

@media (max-width: 600px) {
	.mh-breadcrumb {
		padding: 9px 16px;
		font-size: 14px;
	}

	.mh-breadcrumb li:not(:last-child)::after {
		margin: 0 6px;
	}

	.mh-sitemap__grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.mh-sitemap__section {
		padding: 18px;
	}

	.m304-footer-links {
		gap: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-header,
	.site-header .inside-header,
	.site-header a,
	.site-header .gp-icon {
		transition: none !important;
	}
}
