:root {
	--tm-header-height: 72px;
	--tm-admin-offset: var(--wp-admin--admin-bar--height, 0px);
	--tm-header-obstruction: calc(var(--tm-header-height) + var(--tm-admin-offset));
}
html { scroll-padding-top: calc(var(--tm-header-obstruction) + 16px); }
body :where(a, button, input, select, textarea, [tabindex], [id]) { scroll-margin-top: 16px; }
.site-header {
	position: sticky;
	top: var(--tm-admin-offset);
	z-index: 1000;
	border-bottom: 1px solid var(--wp--preset--color--separator);
	background: var(--wp--preset--color--background);
	transition: border-color 180ms ease;
}
.site-header.is-scrolled { border-color: var(--wp--preset--color--control-border); }
.header-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 0 24px; min-height: calc(var(--tm-header-height) - 1px); }
.site-branding {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	max-width: 100%;
	padding-block: 10px;
	color: var(--wp--preset--color--text);
	text-decoration: none;
}
.site-branding:hover { color: var(--wp--preset--color--action); }
.site-symbol { flex: 0 0 auto; width: auto; height: 40px; max-width: 48px; object-fit: contain; }
.site-identity { display: flex; flex-direction: column; min-width: 0; }
.site-name { font-size: 18px; font-weight: 700; line-height: 24px; overflow-wrap: anywhere; }
.site-description { font-size: 13px; font-weight: 400; line-height: 20px; color: var(--wp--preset--color--muted); overflow-wrap: anywhere; }
.header-menu-toggle, .submenu-toggle { display: none; }
.header-nav-panel { width: 100%; padding-block: 8px 24px; }
.primary-menu, .primary-menu .sub-menu { list-style: none; margin: 0; padding: 0; }
.primary-menu li { position: relative; min-width: 0; }
.menu-item-row { display: flex; align-items: center; min-width: 0; }
.menu-item-row > a, .menu-label {
	display: flex;
	align-items: center;
	min-width: 0;
	min-height: 56px;
	padding-block: 12px;
	color: var(--wp--preset--color--text);
	font-size: 16px;
	font-weight: 600;
	line-height: 24px;
	text-decoration: none;
	overflow-wrap: anywhere;
}
.primary-menu .sub-menu { padding-inline-start: 16px; }
.sub-menu .menu-item-row > a { min-height: 48px; font-weight: 400; }
.menu-item-row > a:hover, .menu-item-row > a:active { color: var(--wp--preset--color--action); }
.primary-menu :is(.current-menu-item, .current-menu-ancestor, .current-menu-parent) > .menu-item-row > :is(a, button),
.primary-menu [aria-current="page"] { color: var(--wp--preset--color--action); text-decoration: underline; text-underline-offset: 6px; }
.sub-menu .current-menu-item > .menu-item-row { border-inline-start: 2px solid var(--wp--preset--color--action); background: var(--wp--preset--color--section); }

.site-header :is(a, button) { transition: color 180ms ease, background-color 180ms ease; }
.site-header [hidden] { display: none !important; }

/* A CTA is one ordinary top-level menu link; order stays under menu control. */
.primary-menu > .menu-item-cta { margin-block: 16px 0; }
.primary-menu > .menu-item-cta > .menu-item-row > a {
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 12px 24px;
	border: 1px solid transparent;
	border-radius: var(--wp--custom--radius--control);
	background: var(--wp--preset--color--action);
	color: var(--wp--preset--color--background);
	text-align: center;
}
.primary-menu > .menu-item-cta > .menu-item-row > a:hover { background: var(--wp--preset--color--action-hover); }
.primary-menu > .menu-item-cta > .menu-item-row > a:active { background: var(--wp--preset--color--action-pressed); }
.nav-enhanced .primary-menu > .menu-item-cta { border-bottom: 0; }

/* JS opts into collapsed navigation only after every handler is ready. */
.nav-enhanced .header-inner { flex-wrap: nowrap; justify-content: space-between; }
.nav-enhanced .menu-label-fallback { display: none; }
.nav-enhanced.has-navigation .site-branding { max-width: calc(100% - 60px); }
.nav-enhanced .header-menu-toggle, .nav-enhanced .submenu-toggle {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 44px;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--wp--preset--color--text);
}
.nav-enhanced .header-menu-toggle { margin-inline-start: auto; }
.nav-enhanced .submenu-toggle:hover { color: var(--wp--preset--color--action); background: transparent; }
.menu-chevron { display: block; width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform 180ms ease; }
[aria-expanded="true"] > .menu-chevron { transform: rotate(225deg); }
.menu-icon, .menu-icon::before, .menu-icon::after { width: 20px; height: 2px; background: currentColor; }
.menu-icon { position: relative; }
.menu-icon::before, .menu-icon::after { position: absolute; left: 0; content: ''; }
.menu-icon::before { top: -6px; }
.menu-icon::after { top: 6px; }
[aria-expanded="true"] > .menu-icon { background: transparent; }
[aria-expanded="true"] > .menu-icon::before { top: 0; transform: rotate(45deg); }
[aria-expanded="true"] > .menu-icon::after { top: 0; transform: rotate(-45deg); }
.nav-enhanced .header-nav-panel {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	max-height: var(--tm-panel-height, calc(100dvh - var(--tm-header-obstruction)));
	padding: 8px var(--wp--custom--layout--gutter) max(24px, env(safe-area-inset-bottom));
	overflow: auto;
	overscroll-behavior: contain;
	background: var(--wp--preset--color--background);
	border-bottom: 1px solid var(--wp--preset--color--separator);
}
.nav-enhanced .primary-menu > li { border-bottom: 1px solid var(--wp--preset--color--separator); }
.nav-enhanced .menu-item-row > a { flex: 1 1 auto; }
.nav-enhanced .sub-menu { padding-inline-start: 16px; }
.nav-enhanced .submenu-label-toggle { flex: 1 1 auto; justify-content: space-between; width: 100%; min-height: 56px; padding-block: 12px; text-align: start; font-size: 16px; line-height: 24px; }
.submenu-label-toggle > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.submenu-label-toggle > .menu-chevron { flex-shrink: 0; margin-inline: 16px; }
.site-header.is-mobile-open { position: fixed; left: 0; right: var(--tm-scrollbar-gap, 0px); }
.header-placeholder { flex-shrink: 0; }
@keyframes tm-menu-reveal { from { opacity: 0; } to { opacity: 1; } }
.nav-enhanced .header-nav-panel, .nav-enhanced .sub-menu { animation: tm-menu-reveal 180ms ease; }

@media (min-width: 1280px) {
	:root { --tm-header-height: 80px; }
	.site-name { font-size: 24px; line-height: 32px; }
	.site-symbol { height: 48px; }
	.header-inner { flex-wrap: nowrap; }
	.site-branding { flex-shrink: 0; padding-block: 8px; }
	.site-header:not(.is-compact) .site-branding { max-width: none; }
	.site-header:not(.is-compact) .header-menu-toggle { display: none; }
	.site-header:not(.is-compact) .header-nav-panel { display: flex; position: static; align-items: center; gap: 24px; width: max-content; max-height: none; margin-inline-start: auto; padding: 0; overflow: visible; border: 0; }
	.site-header:not(.is-compact) .primary-menu { display: flex; align-items: center; gap: 20px; }
	.site-header:not(.is-compact) .primary-menu > li { border: 0; }
	.site-header:not(.is-compact) .primary-menu > li > .menu-item-row { white-space: nowrap; }
	.site-header:not(.is-compact) .menu-item-row > a { flex: initial; min-height: 44px; }
	.site-header:not(.is-compact) .submenu-toggle > .menu-chevron { margin-inline: 8px auto; }
	.site-header:not(.is-compact) .submenu-label-toggle { width: auto; }

	.nav-enhanced:not(.is-compact) .primary-menu > li > .sub-menu {
		position: absolute; top: calc(100% + 8px); left: 0;
		width: max-content; min-width: 240px; max-width: min(320px, calc(100vw - 40px));
		max-height: var(--tm-panel-height, 70dvh); overflow: auto;
		padding: 8px; border: 1px solid var(--wp--preset--color--separator);
		border-radius: var(--wp--custom--radius--control); background: var(--wp--preset--color--background);
	}
	.nav-enhanced:not(.is-compact) .primary-menu > li > .sub-menu.opens-left { right: 0; left: auto; }
	.nav-enhanced:not(.is-compact) .sub-menu .menu-item-row > a { padding: 12px; white-space: normal; }
	.site-header:not(.is-compact) .primary-menu > .menu-item-cta { margin: 0; flex-shrink: 0; }
	.site-header:not(.is-compact) .primary-menu > .menu-item-cta > .menu-item-row > a { min-height: 48px; width: auto; }
	/* Without JS every level remains visible in normal document flow. */
	.site-header:not(.nav-enhanced) .header-inner { flex-wrap: wrap; }
	.site-header:not(.nav-enhanced) .header-nav-panel { width: 100%; align-items: flex-start; flex-wrap: wrap; padding-bottom: 16px; }
	.site-header:not(.nav-enhanced) .primary-menu { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
	.site-header, .site-header :is(a, button), .menu-chevron { transition: none; }
	.nav-enhanced .header-nav-panel, .nav-enhanced .sub-menu { animation: none; }
}
@media (max-width: 600px) {
	.site-header:not(.nav-enhanced) { top: 0; }
}
