.wp-block-navigation a:where(:not(.wp-element-button)):focus-visible,
.wp-block-navigation .wp-block-navigation-submenu__toggle:focus-visible,
.wp-block-navigation__responsive-container-open:focus-visible,
.wp-block-navigation__responsive-container-close:focus-visible,
.wp-block-navigation-overlay-close:focus-visible {
	outline: 2px solid var(--wp--preset--color--focus);
	outline-offset: 2px;
	/* Inner ring for the double focus indicator, see core--button.css. */
	box-shadow: 0 0 0 2px var(--wp--preset--color--surface);
}
.wp-block-navigation .current-menu-item > a,
.wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content,
.wp-block-navigation .wp-block-navigation-item__content[aria-current="page"] {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.4em;
}
/* Navigation is a link-only context: no underline at rest, a fine one on hover. */
.wp-block-navigation .wp-block-navigation-item__content:hover {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.4em;
}

/*
 * Submenu panel on desktop: a card below its toggle. `:not(.is-menu-open *)` leaves the overlay to core,
 * which lays submenus out inline. Sizes apply only while open, so a closed panel adds no scroll overflow.
 */
.wp-block-navigation .has-child > .wp-block-navigation__submenu-container:not(.is-menu-open *) {
	margin-top: var(--wp--preset--spacing--xs);
	border: 1px solid var(--wp--preset--color--stroke);
	background-color: var(--wp--preset--color--surface);
	box-shadow: var(--wp--preset--shadow--subtle);
}
.wp-block-navigation .has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container:not(.is-menu-open *) {
	gap: var(--wp--preset--spacing--xxs);
	min-width: 18rem;
	padding: var(--wp--preset--spacing--s);
}
/* From six entries on the panel turns into a two-column grid. */
.wp-block-navigation .has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container:has(> :nth-child(6)):not(.is-menu-open *) {
	display: grid;
	grid-template-columns: repeat(2, minmax(16rem, 1fr));
}
.wp-block-navigation .wp-block-navigation__submenu-container:not(.is-menu-open *) > .wp-block-navigation-item {
	align-items: stretch;
}
.wp-block-navigation .wp-block-navigation__submenu-container:not(.is-menu-open *) > .wp-block-navigation-item > .wp-block-navigation-item__content {
	flex-direction: column;
	gap: var(--wp--preset--spacing--xxs);
	padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--s);
	text-decoration: none;
}
.wp-block-navigation .wp-block-navigation__submenu-container:not(.is-menu-open *) > .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
	background-color: var(--wp--preset--color--surface-alt);
}
.wp-block-navigation .wp-block-navigation__submenu-container:not(.is-menu-open *) .wp-block-navigation-item__label {
	font-weight: 500;
}
.wp-block-navigation .wp-block-navigation__submenu-container [aria-current="page"] .wp-block-navigation-item__label {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.4em;
}
.wp-block-navigation .wp-block-navigation__submenu-container:not(.is-menu-open *) .wp-block-navigation-item__description {
	display: block;
	color: var(--wp--preset--color--ink-muted);
	font-size: var(--wp--preset--font-size--meta);
	line-height: 1.4;
}
/* Core flips the chevron when open; animate that only for people who did not ask for less motion. */
@media (prefers-reduced-motion: no-preference) {
	.wp-block-navigation .wp-block-navigation__submenu-icon svg {
		transition: transform 0.2s ease;
	}
}
@media (prefers-reduced-motion: reduce) {
	.wp-block-navigation .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-icon > svg {
		transform: none;
	}
}

/*
 * Overlay menu: a centred column in the middle of the screen, whatever the desktop alignment.
 * The close button sits at the top right of that column, so it stays next to the menu instead of
 * in the far corner (short pointer path, WCAG 2.5.8 spirit). Auto margins centre the column
 * vertically but let a long menu scroll from its top, unlike justify-content: center.
 */
.wp-block-navigation__responsive-container.is-menu-open {
	display: flex;
	flex-direction: column;
}
.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-close {
	width: 100%;
	max-width: 28rem;
	margin-block: auto;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	position: relative;
}
.wp-block-navigation__responsive-container.is-menu-open,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	--navigation-layout-justification-setting: center;
	--navigation-layout-justify: center;
	--navigation-layout-align: center;
	text-align: center;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	align-items: center;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--heading-m);
}
/*
 * Submenus in the overlay: centred groups in a smaller size below their parent.
 * Core keeps every submenu open in the overlay and its toggle at aria-expanded="true", so the toggle does nothing;
 * it stays visible because it carries the parent label. Leitvia Studio makes the groups collapsible for long or
 * nested navigations (data-leitvia-collapsible). See docs/accessibility/known-limitations.md.
 */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
	font-size: var(--wp--preset--font-size--heading-s);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container {
	padding: var(--wp--preset--spacing--xs) 0 0;
}
/* Overlay part (parts/navigation-overlay.html): close button, submenu toggles next to their labels. */
.wp-block-navigation-overlay-close {
	min-width: 2.75rem;
	min-height: 2.75rem;
	color: inherit;
}
.wp-block-navigation__responsive-container .wp-block-navigation__overlay-container .wp-block-navigation-item.has-child {
	flex-flow: row wrap;
	justify-content: center;
}
.wp-block-navigation__overlay-container .has-child > .wp-block-navigation__submenu-container {
	flex-basis: 100%;
}
.wp-block-navigation__overlay-container .wp-block-navigation__submenu-icon {
	width: 1.5rem;
	height: 1.5rem;
}
