/* menu */
.menu,
.menu *,
.header-toggle,
.header-toggle *{
	box-sizing:border-box;
}

.menu{
	position:fixed;
	right :18rem;
	z-index:300;
	margin:0;
	padding:0;
	color:rgb(var(--b) / 1);
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:
		opacity .3s ease,
		visibility .3s ease,
		transform .3s ease,
		background-color .35s ease,
		border-color .35s ease,
		box-shadow .35s ease,
		backdrop-filter .35s ease,
		color .35s ease;
}

.menu.is-visible,
.menu.is-open{
	opacity:1;
	visibility:visible;
	pointer-events:auto;
}

.menu-root,
.menu-submenu,
#site-search-results{
	margin:0;
	padding:0;
	list-style:none;
}

.menu-root{
	display:flex;
	align-items:stretch;
	width:100%;
}

.menu-root > li{
	position:relative;
	display:flex;
	align-items:center;
	min-width:0;
	margin:0;
	padding:3rem 0 1rem;
	border:0;
	color:inherit;
	cursor:pointer;
	font:inherit;
	line-height:1.15;
	text-decoration:none;
	transition:
		color .2s ease,
		background-color .2s ease;
}

.menu-root > li:hover,
.menu-root > li:focus-visible,
.menu-root > li.is-open{
	color:rgb(var(--n) / 1);
	background:rgb(var(--b) / .08);
	outline:0;
}

.menu-item-label{
	display:block;
}

.menu-group{
	padding:0 !important;
}

.menu-submenu-toggle{
	display:flex;
	align-items:end;
	gap:.6rem;
	width:100%;
	min-height:100%;
	margin:0;
	padding:1rem 1.25rem;
	border:0;
	color:inherit;
	background:none;
	cursor:pointer;
	font:inherit;
	text-align:left;
}

.menu-submenu-toggle::after{
	content:"";
	flex:0 0 auto;
	width:.45rem;
	height:.45rem;
	border-right:1px solid currentColor;
	border-bottom:1px solid currentColor;
	transform-origin:center;
	transform:translateY(-.15rem) rotate(45deg);
	transition:transform .25s ease;
}

.menu-group.is-open > .menu-submenu-toggle::after{
	transform:translateY(.15rem) rotate(225deg);
}

.menu-submenu{
	position:absolute;
	top:100%;
	left:0;
	z-index:2;
	width:min(30rem,82vw);
	max-height:min(65dvh,40rem);
	overflow:auto;
	color:rgb(var(--b) / 1);
	background:rgb(var(--n) / .97);
	border:1px solid rgb(var(--b) / .2);
	border-radius:0 0 .25rem .25rem;
	box-shadow:0 1rem 2rem rgb(var(--n) / .25);
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transform:translateY(-.5rem);
	transition:
		opacity .25s ease,
		visibility .25s ease,
		transform .25s ease;
}

.menu-group.is-open > .menu-submenu{
	opacity:1;
	visibility:visible;
	pointer-events:auto;
	transform:translateY(0);
}

.menu-submenu > li{
	display:block;
	width:100%;
	margin:0;
	padding:1rem 1.25rem;
	border-bottom:1px solid rgb(var(--b) / .12);
	color:inherit;
	cursor:pointer;
}

.menu-submenu > li:last-child{
	border-bottom:0;
}

.menu-submenu > li:not(.menu-submenu-intro):hover,
.menu-submenu > li:not(.menu-submenu-intro):focus-visible{
	color:rgb(var(--c1) / 1);
	background:rgb(var(--b) / .08);
	outline:0;
}

.menu-submenu-intro{
	cursor:default !important;
	font-size:.8rem;
	opacity:.6;
}

.menu-submenu small{
	display:block;
	margin-top:.35rem;
	font-size:.75rem;
	opacity:.6;
}

.menu .language{
	gap:.45rem;
	margin-left:auto;
}

.menu .lang-option{
	display:inline-flex;
	color:inherit;
	cursor:pointer;
	text-decoration:none;
}

.site-search{
	margin-left:auto !important;
}

.menu .language + .site-search{
	margin-left:0 !important;
}

.site-search-toggle{
	position:relative;
	flex:0 0 auto;
	width:1.5rem;
	height:1.5rem;
	margin:0;
	padding:0;
	border:0;
	color:inherit;
	background:none;
	cursor:pointer;
}

.site-search-toggle::before{
	content:"";
	position:absolute;
	left:.15rem;
	top:.15rem;
	width:.8rem;
	height:.8rem;
	border:2px solid currentColor;
	border-radius:50%;
}

.site-search-toggle::after{
	content:"";
	position:absolute;
	right:.12rem;
	bottom:.18rem;
	width:.65rem;
	height:2px;
	background:currentColor;
	transform:rotate(45deg);
	transform-origin:right center;
}

#site-search-input{
	width:0;
	min-width:0;
	margin:0;
	padding:0;
	border:0;
	border-bottom:1px solid currentColor;
	outline:0;
	color:inherit;
	background:transparent;
	font:inherit;
	opacity:0;
	transition:
		width .3s ease,
		opacity .2s ease;
}

.site-search.search-open #site-search-input{
	width:min(18rem,25vw);
	margin-left:.75rem;
	padding:.25rem 0;
	opacity:1;
}

#site-search-results{
	position:absolute;
	top:100%;
	right:0;
	z-index:3;
	display:none;
	width:min(30rem,82vw);
	max-height:60dvh;
	overflow:auto;
	color:rgb(var(--b) / 1);
	background:rgb(var(--n) / .98);
	border:1px solid rgb(var(--b) / .2);
	box-shadow:0 1rem 2rem rgb(var(--n) / .25);
}

#site-search-results.active{
	display:block;
}

#site-search-results li{
	padding:1rem 1.25rem;
	border-bottom:1px solid rgb(var(--b) / .12);
	cursor:pointer;
}

#site-search-results strong,
#site-search-results span{
	display:block;
}

#site-search-results span{
	margin-top:.25rem;
	font-size:.75rem;
	opacity:.6;
}

.header-toggle{
	display:none;
}

@media (min-width:768px){
	.menu.menu-over-media{
		color:rgb(var(--b) / 1);
		background:transparent;
		border-color:transparent;
		box-shadow:none;
		backdrop-filter:none;
		-webkit-backdrop-filter:none;
	}

	.menu.menu-over-content{
		color:rgb(var(--n-d) / 1);
		background:rgb(var(--n) / .72);
		backdrop-filter:blur(12px);
		-webkit-backdrop-filter:blur(12px);
	}
}

.sr-only{
	position:absolute !important;
	width:1px !important;
	height:1px !important;
	padding:0 !important;
	margin:-1px !important;
	overflow:hidden !important;
	clip:rect(0,0,0,0) !important;
	white-space:nowrap !important;
	border:0 !important;
}

@media (max-width:767px){
	.menu{
		inset:0;
		z-index:99990;
		width:100%;
		height:100dvh;
		padding:
			calc(5rem + env(safe-area-inset-top))
			5%
			calc(2rem + env(safe-area-inset-bottom));
		overflow-x:hidden;
		overflow-y:auto;
		border:0;
		border-radius:0;
		background:rgb(var(--n) / .98);
		transform:translateX(1.5rem);
	}

	.menu.is-visible{
		opacity:0;
		visibility:hidden;
		pointer-events:none;
	}

	body.menu-open .menu,
	.menu.is-open{
		opacity:1;
		visibility:visible;
		pointer-events:auto;
		transform:translateX(0);
	}

	.menu-root{
		flex-direction:column;
		align-items:stretch;
	}

	.menu-root > li{
		width:100%;
		padding:1rem 0;
		border-bottom:1px solid rgb(var(--b) / .15);
		font-size:1.35rem;
	}

	.menu-group{
		display:block !important;
	}

	.menu-submenu-toggle{
		justify-content:space-between;
		padding:1rem 0;
	}

	.menu-submenu{
		position:relative;
		top:auto;
		left:auto;
		width:100%;
		max-height:0;
		overflow:hidden;
		border:0;
		box-shadow:none;
		transform:none;
		transition:
			max-height .35s ease,
			opacity .25s ease,
			visibility .25s ease;
	}

	.menu-group.is-open > .menu-submenu{
		max-height:70dvh;
		overflow:auto;
	}

	.menu-submenu > li{
		padding:1rem;
		font-size:1rem;
	}

	.menu .language,
	.site-search,
	.menu .language + .site-search{
		margin-left:0 !important;
	}

	.site-search{
		position:relative;
		display:flex;
		flex-direction:column;
		align-items:stretch;
		flex-wrap:wrap;
		padding:1rem 0;
	}

	.site-search-toggle{
		position:absolute;
		top:1.5rem;
		right:.75rem;
		z-index:2;
	}

	#site-search-input,
	.site-search.search-open #site-search-input{
		display:block;
		flex:none;
		width:100%;
		max-width:none;
		height:3rem;
		margin:0;
		padding:.5rem 3.25rem .5rem 1rem;
		border:0;
		border-radius:0;
		color:rgb(var(--n) / 1);
		background:rgb(var(--b) / 1);
		opacity:1;
		-webkit-appearance:none;
		appearance:none;
	}

	#site-search-input::placeholder{
		color:rgb(var(--n) / .55);
		opacity:1;
	}

	#site-search-results{
		position:relative;
		top:auto;
		right:auto;
		width:100%;
		max-height:45dvh;
		margin-top:1rem;
		box-shadow:none;
	}

	.header-toggle{
		position:fixed;
		right:5%;
		bottom:calc(5% + env(safe-area-inset-bottom));
		z-index:99999;
		display:none;
		align-items:center;
		justify-content:center;
		width:3rem;
		height:3rem;
		margin:0;
		padding:0;
		border:1px solid rgb(var(--b) / .3);
		border-radius:50%;
		color:rgb(var(--b) / 1);
		background:rgb(var(--n) / .88);
		box-shadow:0 .5rem 1.5rem rgb(var(--n) / .25);
		cursor:pointer;
		backdrop-filter:blur(.75rem);
		-webkit-backdrop-filter:blur(.75rem);
	}

	.header-toggle.hide-visible,
	body.menu-open .header-toggle,
	.header-toggle.is-open{
		display:flex;
	}

	.header-toggle .btn-close-menu{
		display:none;
	}

	body.menu-open .header-toggle .btn-open-menu,
	.header-toggle.is-open .btn-open-menu{
		display:none;
	}

	body.menu-open .header-toggle .btn-close-menu,
	.header-toggle.is-open .btn-close-menu{
		display:block;
	}
}

@media (prefers-reduced-motion:reduce){
	.menu,
	.menu-submenu,
	.menu-submenu-toggle::after,
	#site-search-input{
		transition:none;
	}
}
