@import url("./menu/config-switchers.css");
@import url("./menu/goto.css");
@import url("./menu/nav.css");
@import url("./menu/search.css");
@import url("./menu/title.css");

/** @define Menu; */

.Menu {
	--bar-size: 2rem;
	--bar-background: var(--color-Menu-background)
		linear-gradient(
			to right,
			var(--color-MenuBar-background) var(--bar-size),
			transparent var(--bar-size)
		);
	--menu-spacing: 0.5rem;
	--outline: 0.1875rem solid var(--color-Text);
	--outline-offset: 0.125rem;

	display: flex;
	background: var(--bar-background);
	grid-area: nav;
	font-size: 0.875em;
	position: relative;
}

.Menu :where(:focus-visible) {
	outline: var(--outline);
}

.Menu-content {
	display: flex;
	flex-direction: column;
}

.Menu-nav {
	flex: 1;
	overflow-y: auto;
}

@media (width <= 40rem) {
	.Menu {
		--toggle-size: 4rem;

		align-items: center;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.Menu-content {
		flex: 0 0 100%;
		block-size: calc(100dvb - var(--toggle-size));
		position: fixed;
		inset-block-start: var(--toggle-size);
		inset-inline: 0;
		background: var(--bar-background);
	}

	.Menu-search {
		position: relative;
	}

	.Menu-toggleMobileMenu {
		display: block;
		block-size: var(--toggle-size);
		padding: 1rem;
		position: relative;
		inline-size: var(--toggle-size);
	}

	.Menu-toggleMobileMenu[aria-expanded="false"] ~ .Menu-content {
		display: none;
	}

	.Menu-toggleMobileMenu::after {
		border: var(--toggle-border);
		border-top-width: var(--toggle-borderWidth);
		border-inline-end-width: var(--toggle-borderWidth);
		content: "";
		display: block;
		font-size: 0.75em;
		block-size: var(--toggle-height);
		position: absolute;
		inset-block-start: 50%;
		inset-inline-start: 50%;
		transition: var(--toggle-transition);
		inline-size: var(--toggle-width);
	}

	.Menu-toggleMobileMenu[aria-expanded="false"]::after {
		transform: var(--toggle-transition-closed);
	}

	.Menu-toggleMobileMenu[aria-expanded="true"]::after {
		transform: var(--toggle-transition-opened);
	}
}

@media (width > 40rem) {
	.Menu {
		flex-direction: column;
		block-size: 100vh;
	}

	.Menu-toggleMobileMenu {
		display: none;
	}

	.Menu-content {
		flex: 1;
		overflow: hidden;
	}
}
