/**
 * Thameside block header — always-on hamburger + Navigation overlay modelled on Thameside offcanvas.
 *
 * Submenus collapse until the parent item is activated (toggle `aria-expanded="true"` — core + openSubmenusOnClick).
 *
 * @package Thameside_Blocks
 */

.thameside-site-header {
	box-sizing: border-box;
	position: relative;
	width: 100%;
	z-index: 1;
	background-color: var(--thameside-primary, #041c49);
	transition:
		background-color 0.6s cubic-bezier(0.645, 0.045, 0.355, 1),
		border-color 0.6s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.thameside-site-header__inner {
	width: 100%;
	max-width: 100%;
	gap: 1rem;
	flex-wrap: nowrap !important;
	align-items: center !important;
}

.thameside-site-header__brand,
.thameside-site-header .wp-block-site-logo {
	flex-shrink: 0;
	min-width: 0;
}

.thameside-site-header .wp-block-site-logo img {
	width: 184px;
	height: auto;
	display: block;
}

/* Prevent header from creating horizontal page scroll. */
.thameside-site-header,
.site-header-area {
	max-width: 100vw;
	overflow-x: clip;
}

/* Mobile safety: ensure the hamburger never gets pushed off-canvas. */
@media (max-width: 480px) {
	.thameside-site-header {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}

	.thameside-site-header__inner {
		gap: 0.75rem;
	}

	.thameside-site-header .wp-block-site-logo img {
		width: 150px;
	}

	.thameside-site-header .thameside-primary-nav {
		flex: 0 0 auto;
	}
}

.thameside-site-header .thameside-primary-nav {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	justify-content: flex-end !important;
	align-items: center;
	position: relative;
}

/* Emergency proxy toggle (only displays if core button is hidden). */
.thameside-site-header .thameside-hamburger-proxy {
	min-width: 44px;
	min-height: 44px;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 0;
	border-radius: 0;
	background: none;
	border: none;
	outline: none;
	box-shadow: none;
	color: #ffffff;
	cursor: pointer;
	position: relative;
	z-index: 1000003;
}

.thameside-site-header .thameside-hamburger-proxy svg {
	width: 30px;
	height: 28px;
	fill: currentColor;
	pointer-events: none;
}

/* ---- Hamburger toggle (Thameside: plain button + icon, minimal chrome) ---- */
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container-open {
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	display: inline-flex !important;
	padding: 0;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	color: #ffffff !important;
	cursor: pointer;
	position: relative;
	z-index: 1000002;
}

/* If anything causes the button to be visually lost, pin it top-right on smaller screens. */
@media (max-width: 1199px) {
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container-open {
		position: absolute;
		right: 0;
		top: 50%;
		transform: translateY(-50%);
		background: none !important;
		border: none !important;
		padding: 0 !important;
		border-radius: 0 !important;
		outline: none !important;
	}
}

/* On mobile/tablet the navigation should not lay out the full menu inline — only the hamburger. */
@media (max-width: 1199px) {
	.thameside-site-header .thameside-primary-nav {
		flex: 0 0 auto;
	}

	/* Hide list only while overlay is CLOSED. */
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-page-list {
		display: none !important;
	}
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container-open svg {
	width: 30px !important;
	height: 28px !important;
	fill: currentColor !important;
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container-open:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.9);
	outline-offset: 4px;
}

/* Overlay + dialog stacking (stay above Vimeo / iframe layers) */
.thameside-site-header .wp-block-navigation .has-child .wp-block-navigation__submenu-container {
	z-index: 2147483001;
}

.wp-block-navigation__responsive-dialog {
	z-index: 2147483002;
}

/**
 * -----------------------------------------------------------------------------
 * Responsive overlay menu open — Thameside offcanvas parity
 * Targets: Thameside `_navigation.scss` `.offcanvas` + `.offcanvas__submenu` (simple lists, not card megas).
 * -----------------------------------------------------------------------------
 */

/*
 * Core forces every `.has-child .wp-block-navigation__submenu-container` inside an open overlay to
 * `height:auto`, `opacity:1`, `visibility:visible` — flattening the whole tree. Undo that unless the
 * direct parent’s submenu toggle reports open (`aria-expanded="true"` immediately before the submenu).
 */

/* Closed by default inside overlay (beats navigation/style.css `.is-menu-open .has-child .submenu`). */
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-pages-list__item.has-child > .wp-block-navigation__submenu-container {
	box-sizing: border-box;
	position: static !important;
	display: none !important;
	height: auto !important;
	max-height: none !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	opacity: 0 !important;
	visibility: hidden !important;
	border: none !important;
	grid-template-columns: unset !important;
	gap: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* Open submenu for this branch only — toggle is always a sibling before the `<ul>` in core markup. */
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item.has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-pages-list__item.has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item.has-child > button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-pages-list__item.has-child > button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100% !important;
	height: auto !important;
	overflow: visible !important;
	opacity: 1 !important;
	visibility: visible !important;
	margin: 0 !important;
	padding: 1rem 0 0.75rem clamp(1.25rem, 4vw, 2.25rem) !important;
	border: none !important;
	border-inline-start: 1px solid rgba(255, 255, 255, 0.12) !important;
	background: transparent !important;
	gap: 0 !important;
	list-style: none !important;
}

/* Ensure primary surface + white type (beats Core default overlay white/black). */
.thameside-site-header .thameside-primary-nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open.has-background,
.thameside-site-header .thameside-primary-nav.wp-block-navigation.has-background .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--thameside-primary, #041c49) !important;
	border: none !important;
	color: #ffffff !important;
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open.has-text-color {
	color: #ffffff !important;
}

/* Close button: make visible across all templates/devices. */
.site-header-area .wp-block-navigation__responsive-container-close {
	color: #ffffff !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	cursor: pointer;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

.site-header-area .wp-block-navigation__responsive-container-close svg,
.site-header-area .wp-block-navigation__responsive-container-close svg path {
	fill: currentColor !important;
	stroke: currentColor !important;
	width: 30px !important;
	height: 30px !important;
	display: block;
}

/* When the overlay is open, force the close button to render (some stylesheets hide it). */
.site-header-area
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-close {
	display: inline-flex !important;
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
	padding-top: 0;
}

.site-header-area .wp-block-navigation__responsive-container-close {
	top: clamp(4rem, 10vh, 8rem);
	right: clamp(1rem, 5vw, 3rem);
	z-index: 2147483003;
}

/*
 * Prefer `position: sticky` in the open overlay so the button stays visible even if a transformed
 * ancestor breaks `position: fixed` on some mobile browsers.
 */
.site-header-area
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-dialog {
	display: flex;
	flex-direction: column;
}

.site-header-area
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-close {
	position: sticky !important;
	top: calc(env(safe-area-inset-top, 0px) + 1.25rem) !important;
	right: calc(env(safe-area-inset-right, 0px) + 1.25rem) !important;
	margin-left: auto !important;
	align-self: flex-end;
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	/* Core locks `<html>` scroll; the overlay must be the scroll surface. */
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2147483002;
	/* Override core padding so our content padding is the only source of spacing. */
	padding: 0 !important;
	/* Core sets display:flex; keep it simple + reliable for scrolling. */
	display: block !important;
	height: 100vh;
	height: 100dvh;
	max-height: 100vh;
	max-height: 100dvh;
	overflow: auto !important;
	overflow-x: hidden;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	overscroll-behavior-y: contain;
	touch-action: pan-y;
}

/*
 * Core centers `.wp-block-navigation__responsive-close` with `margin-inline:auto` + `max-width`
 * when the modal is open. On hero pages this can push the menu column “off-screen”.
 * Force full-width, left-aligned layout in our header overlay.
 */
.thameside-site-header
	.thameside-primary-nav
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-close {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box;
	/* Keep dialog scroll within viewport height. */
	min-height: 100%;
}

.thameside-site-header
	.thameside-primary-nav
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-dialog {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
	/*
	 * Make the dialog itself a reliable scroll surface.
	 * Some pages end up swallowing scroll events on the outer container (likely due to
	 * complex hero layers / stacking contexts); scrolling the dialog is more consistent.
	 */
	min-height: 100%;
	max-height: 100vh;
	max-height: 100dvh;
	overflow-y: auto !important;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}

/* Stop layout gap variables from adding extra vertical space. */
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
	gap: 0 !important;
	row-gap: 0 !important;
	--wp--style--block-gap: 0 !important;
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: stretch !important;
	/* Reduce empty top space so main nav starts higher. */
	--thameside-overlay-nav-pad-top: clamp(6.5rem, 12vh, 10rem);
	padding-top: var(--thameside-overlay-nav-pad-top);
	padding-inline: clamp(2rem, 6vw, 6rem);
	padding-bottom: 6rem;
	max-width: var(--thameside-nav-desktop, 1200px);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	overflow: visible;
	gap: 0 !important;
	row-gap: 0 !important;
	/* Allow the content block to be the full width on small screens. */
	width: 100%;
}

/* Mobile/tablet: left-align overlay content and remove centering constraints. */
@media (max-width: 1199px) {
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		align-items: flex-start !important;
		justify-content: flex-start !important;
		width: 100%;
		max-width: none;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-inline: 2rem !important;
	}

	/* Ensure no “centered column” behaviour sneaks in. */
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content > * {
		max-width: 100% !important;
	}

	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
		align-items: flex-start !important;
		justify-content: flex-start !important;
		width: 100%;
	}

	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item {
		align-items: flex-start !important;
	}

	/* Left-align text/content; avoid any implicit centering. */
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-pages-list__item__link {
		text-align: left !important;
		justify-content: flex-start !important;
	}
}

/* Contact + socials aside (shown only when overlay is open). */
.thameside-site-header .thameside-offcanvas-aside {
	display: none;
}

/* JS moves `.thameside-offcanvas-aside` inside the overlay content; show it only when menu is open. */
.thameside-site-header
	.thameside-primary-nav
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-content
	.thameside-offcanvas-aside {
	display: block;
}

/* Typography + spacing parity for the aside content. */
.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__contact-title {
	margin: 0 0 1.25rem;
	color: #ffffff;
	font-family: var(--wp--preset--font-family--heading), "DM Serif Display", serif;
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.2;
}

.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__contact-title--follow {
	margin-top: 3rem;
}

.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__address,
.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__line {
	margin: 0 0 1rem;
	color: rgba(255, 255, 255, 0.7);
	font-family:
		system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		sans-serif;
	font-size: 1.35rem;
	line-height: 1.45;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
	white-space: normal;
}

.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__line a,
.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__address a {
	color: rgba(255, 255, 255, 0.9);
	text-decoration: none;
	overflow-wrap: anywhere;
	word-break: break-word;
	white-space: normal;
}

/* Address often contains nested `<p>`; ensure wrappers also wrap. */
.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__address :where(p, span, a) {
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
	white-space: normal;
}

/* Defensive: prevent any nowrap rules from leaking into the contact panel on some templates. */
.thameside-site-header .thameside-offcanvas-aside,
.thameside-site-header .thameside-offcanvas-aside :where(*),
.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__contact {
	min-width: 0;
	max-width: 100%;
	white-space: normal !important;
	text-wrap: wrap;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.thameside-site-header .thameside-offcanvas-aside {
	overflow-x: hidden;
}

.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__line a:hover,
.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__line a:focus-visible {
	color: #ffffff;
}

.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__social {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: flex;
	gap: 1.25rem;
	align-items: center;
}

.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}

.thameside-site-header .thameside-offcanvas-aside .thameside-offcanvas__social-link svg {
	display: block;
}

/* Mobile/tablet overlay layout: menu first, contact panel below with divider. */
@media (max-width: 1199px) {
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		width: 100%;
		max-width: 100%;
	}

	/* Keep top-level links left-aligned and within viewport. */
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
		width: 100%;
		max-width: 100%;
		align-items: stretch;
	}

	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle),
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item > .wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle),
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item__link,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-submenu__toggle,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item > button.wp-block-navigation-item__content {
		font-size: clamp(2.4rem, 6vw, 3.4rem) !important;
	}

	/* Contact panel becomes a normal block under the list. */
	.thameside-site-header
		.thameside-primary-nav
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content
		.thameside-offcanvas-aside {
		display: block;
		position: static;
		width: 100%;
		max-width: 100%;
		margin-top: 3rem;
		padding-top: 3rem;
		border-top: 1px solid rgba(255, 255, 255, 0.14);
	}
}

/* Typography: DM Serif parity with Thameside offcanvas navbar. */
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	font-family: var(--wp--preset--font-family--heading), "DM Serif Display", serif;
	font-weight: 500;
}

/* Top-level navigation row (classic offcanvas `.navbar-nav > li > a`). */
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item {
	width: 100%;
	padding: 0;
	margin: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:last-child,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item:last-child {
	border-bottom: none;
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle),
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item > .wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle),
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item__link {
	box-sizing: border-box;
	display: flex !important;
	align-items: center;
	width: 100%;
	min-height: 3.75rem;
	padding: 1.5rem 0 !important;
	color: #ffffff !important;
	text-decoration: none !important;
	font-size: clamp(2.85rem, 5.5vw, 4.4rem) !important;
	line-height: 1.1 !important;
	transition: opacity 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

@media (min-width: 1200px) {
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle),
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item > .wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle),
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item__link {
		font-size: 4.4rem !important;
	}
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-submenu__toggle,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item > button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle {
	font-family: inherit !important;
	font-weight: inherit !important;
	justify-content: space-between !important;
	text-align: left !important;
	width: 100%;
	min-height: 3.75rem;
	padding: 1.5rem 0 !important;
	color: #ffffff !important;
	font-size: clamp(2.85rem, 5.5vw, 4.4rem) !important;
	line-height: 1.1 !important;
	background: none !important;
	border-radius: 0 !important;
}

@media (min-width: 1200px) {
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-submenu__toggle,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-pages-list__item > button.wp-block-navigation-item__content {
		font-size: 4.4rem !important;
	}
}

/* Show submenu Chevron beside parent links (Core hides `.wp-block-navigation__submenu-icon` in overlay). */
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon.wp-block-navigation-submenu__toggle {
	display: inline-flex !important;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	align-self: center;
	margin-inline-start: 1rem !important;
	margin-inline-end: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	background: transparent !important;
	padding: 0.5rem !important;
	transform: rotate(90deg);
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon.wp-block-navigation-submenu__toggle[aria-expanded="true"] {
	transform: rotate(270deg);
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon svg {
	stroke: #ffffff !important;
	width: 24px;
	height: 24px;
}

/* Item descriptions (menus / Navigation Link block). */
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__description {
	font-family: inherit;
	font-weight: 400 !important;
	font-size: clamp(1.05rem, 1.5vw, 1.45rem);
	color: rgba(255, 255, 255, 0.7) !important;
	margin-top: 0.35em;
	line-height: 1.35;
	max-width: 36ch;
	display: block;
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label {
	display: inline;
	width: auto;
	flex: 1 1 auto;
}

/*
 * Expanded submenu lists — Thameside `.offcanvas__submenu`: vertical menu, borders between rows, no cards.
 */
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item.has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container > li,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-pages-list__item.has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container > li,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item.has-child > button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container > li,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-pages-list__item.has-child > button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container > li {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	background: transparent;
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item.has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container > li:last-child,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-pages-list__item.has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container > li:last-child,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item.has-child > button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container > li:last-child,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-pages-list__item.has-child > button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container > li:last-child {
	border-bottom: none;
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container .wp-block-pages-list__item__link {
	display: flex !important;
	align-items: center;
	width: 100%;
	box-sizing: border-box;
	padding: 1rem 0 !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	min-height: 0 !important;
	background: transparent !important;
	color: rgba(255, 255, 255, 0.92) !important;
	font-family: var(--wp--preset--font-family--heading), "DM Serif Display", serif !important;
	font-size: 2rem !important;
	line-height: 1.22 !important;
	font-weight: 400 !important;
	text-decoration: none !important;
	transition: color 0.25s ease;
	justify-content: space-between !important;
}

@media (min-width: 769px) {
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container .wp-block-pages-list__item__link {
		font-size: 2rem !important;
	}
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container .wp-block-pages-list__item__link:hover,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container .wp-block-pages-list__item__link:focus-visible {
	color: #ffffff !important;
}

.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .dropdown-item__description,
.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__description {
	margin-block-start: 0.35rem !important;
	font-family:
		system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		sans-serif !important;
	font-size: 1.35rem !important;
	line-height: 1.35 !important;
	font-weight: 400 !important;
	color: rgba(255, 255, 255, 0.68) !important;
}

/**
 * Desktop enhancement: slide-out right panel for submenus (live Thameside feel).
 * Core submenu markup remains nested; we position the expanded submenu container as a fixed panel.
 */
@media (min-width: 1200px) {
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
		--thameside-offcanvas-aside-width: min(34vw, 420px);
		--thameside-offcanvas-submenu-width: min(38vw, 560px);
	}

	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		display: flex;
		flex-direction: row;
		gap: 6rem;
	}

	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
		flex: 0 0 28%;
		max-width: 28%;
	}

	.thameside-site-header .thameside-offcanvas-aside {
		/* Pin contact panel to far right, independent of submenu panel. */
		display: block;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		width: var(--thameside-offcanvas-aside-width);
		padding: clamp(12rem, 18vh, 16rem) clamp(2rem, 6vw, 6rem) 4rem;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		border-inline-start: 1px solid rgba(255, 255, 255, 0.12);
		background: var(--thameside-primary, #041c49);
	}

	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content
		.wp-block-navigation-item.has-child
		> .wp-block-navigation-submenu__toggle[aria-expanded="true"]
		~ .wp-block-navigation__submenu-container,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content
		.wp-block-pages-list__item.has-child
		> .wp-block-navigation-submenu__toggle[aria-expanded="true"]
		~ .wp-block-navigation__submenu-container,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content
		.wp-block-navigation-item.has-child
		> button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle[aria-expanded="true"]
		~ .wp-block-navigation__submenu-container,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content
		.wp-block-pages-list__item.has-child
		> button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle[aria-expanded="true"]
		~ .wp-block-navigation__submenu-container {
		position: fixed !important;
		/* `--thameside-submenu-panel-top` is set in `header-overlay-contact.js` to the open parent toggle’s viewport Y so the panel lines up with that row (uniform padding alone stays “too high” for lower items). */
		top: var(--thameside-submenu-panel-top, 0) !important;
		right: var(--thameside-offcanvas-aside-width);
		bottom: 0;
		left: auto;
		width: var(--thameside-offcanvas-submenu-width) !important;
		max-width: var(--thameside-offcanvas-submenu-width) !important;
		padding: 0 clamp(2rem, 6vw, 6rem) 4rem !important;
		border-inline-start: 1px solid rgba(255, 255, 255, 0.12) !important;
		background: var(--thameside-primary, #041c49) !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		transform: translateX(0);
	}
}

@media (min-width: 1200px) and (prefers-reduced-motion: no-preference) {
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content
		.wp-block-navigation-item.has-child
		> .wp-block-navigation-submenu__toggle[aria-expanded="true"]
		~ .wp-block-navigation__submenu-container,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content
		.wp-block-pages-list__item.has-child
		> .wp-block-navigation-submenu__toggle[aria-expanded="true"]
		~ .wp-block-navigation__submenu-container,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content
		.wp-block-navigation-item.has-child
		> button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle[aria-expanded="true"]
		~ .wp-block-navigation__submenu-container,
	.thameside-site-header .thameside-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content
		.wp-block-pages-list__item.has-child
		> button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle[aria-expanded="true"]
		~ .wp-block-navigation__submenu-container {
		transition: transform 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
	}
}
