/*
 * VipVize standard WordPress desktop navigation.
 * This file owns all desktop menu layout rules so menu elements do not
 * inherit conflicting flex/block declarations from the global stylesheet.
 */
.site-header {
	overflow: visible;
}

.site-header .header-inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 32px;
}

.site-header .site-branding {
	flex: 0 0 auto;
	min-width: 0;
}

.site-header .site-branding .custom-logo-link,
.site-header .site-branding .brand-text {
	display: inline-flex;
	align-items: center;
}

.site-header .primary-navigation {
	position: static;
	display: block;
	flex: 0 1 auto;
	margin-left: auto;
}

.site-header .primary-navigation .primary-menu,
.site-header .primary-navigation .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header .primary-navigation .primary-menu {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 4px;
}

.site-header .primary-navigation .menu-item {
	position: relative;
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
}

.site-header .primary-navigation .menu-item > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 12px;
	border-radius: 8px;
	color: var(--blue);
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	transition: background-color .18s ease, color .18s ease;
}

.site-header .primary-navigation .menu-item-has-children > a {
	padding-right: 6px;
}

.site-header .primary-navigation .menu-item > a:hover,
.site-header .primary-navigation .menu-item > a:focus-visible,
.site-header .primary-navigation .current-menu-item > a,
.site-header .primary-navigation .current-menu-ancestor > a {
	background: #edf6ff;
	color: var(--blue-2);
	outline: 0;
}

.site-header .primary-navigation .submenu-toggle {
	position: static;
	display: inline-grid;
	place-items: center;
	flex: 0 0 30px;
	width: 30px;
	height: 38px;
	margin: 0 3px 0 -5px;
	padding: 0;
	border: 0;
	border-radius: 7px;
	background: transparent;
	color: var(--blue);
	cursor: pointer;
}

.site-header .primary-navigation .submenu-toggle:hover,
.site-header .primary-navigation .submenu-toggle:focus-visible {
	background: #edf6ff;
	outline: 0;
}

.site-header .primary-navigation .submenu-toggle span {
	display: block;
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translate(-1px, -1px);
	transition: transform .18s ease;
}

.site-header .primary-navigation .submenu-toggle[aria-expanded="true"] span {
	transform: rotate(225deg) translate(-1px, -1px);
}

.site-header .primary-navigation .sub-menu {
	position: absolute;
	z-index: 110;
	top: calc(100% + 8px);
	left: 0;
	display: block;
	width: 240px;
	padding: 8px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 10px;
	box-shadow: 0 16px 38px rgba(15, 76, 129, .16);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.site-header .primary-navigation .sub-menu .menu-item {
	display: flex;
	align-items: center;
	width: 100%;
}

.site-header .primary-navigation .sub-menu .menu-item > a {
	flex: 1 1 auto;
	justify-content: flex-start;
	min-width: 0;
	min-height: 40px;
	padding: 9px 10px;
	font-size: 14px;
	white-space: normal;
}

.site-header .primary-navigation .sub-menu .submenu-toggle {
	position: static;
	flex: 0 0 34px;
	width: 34px;
	height: 36px;
	margin: 0;
}

.site-header .primary-navigation .sub-menu .submenu-toggle span {
	transform: rotate(-45deg);
}

.site-header .primary-navigation .sub-menu .submenu-toggle[aria-expanded="true"] span {
	transform: rotate(135deg);
}

.site-header .primary-navigation .sub-menu .sub-menu {
	top: -8px;
	left: calc(100% + 8px);
}

.site-header .primary-navigation .menu-item-has-children:hover > .sub-menu,
.site-header .primary-navigation .menu-item-has-children:focus-within > .sub-menu,
.site-header .primary-navigation .menu-item-has-children.focus-within > .sub-menu,
.site-header .primary-navigation .menu-item-has-children.submenu-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.site-header .menu-toggle,
.site-header .menu-overlay {
	display: none;
}

@media (max-width: 1080px) and (min-width: 961px) {
	.site-header .header-inner {
		gap: 18px;
	}

	.site-header .primary-navigation .menu-item > a {
		padding-inline: 9px;
		font-size: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-header .primary-navigation .sub-menu,
	.site-header .primary-navigation .menu-item > a,
	.site-header .primary-navigation .submenu-toggle span {
		transition: none;
	}
}
