.mvm-menu-shell {
	width: 100%;
}

.mvm-menu-shell > ul,
.mvm-menu-shell ul.menu {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Per-menu placement controls must work independently of global body classes. */
.mvm-menu-shell--left > ul,
.mvm-menu-shell--left ul.menu,
ul.mvm-menu-position-left {
	justify-content: flex-start !important;
}

.mvm-menu-shell--right > ul,
.mvm-menu-shell--right ul.menu,
ul.mvm-menu-position-right {
	justify-content: flex-end !important;
}

.mvm-menu-shell--stacked.mvm-menu-shell--left > ul,
.mvm-menu-shell--mobile.mvm-menu-shell--left > ul {
	align-items: flex-start !important;
}

.mvm-menu-shell--stacked.mvm-menu-shell--right > ul,
.mvm-menu-shell--mobile.mvm-menu-shell--right > ul {
	align-items: flex-end !important;
}

.mvm-menu-shell--left .nav-link,
.mvm-menu-shell--left .menu-link,
.mvm-menu-shell--left .menu-item > a {
	text-align: left !important;
	justify-content: flex-start !important;
}

.mvm-menu-shell--right .nav-link,
.mvm-menu-shell--right .menu-link,
.mvm-menu-shell--right .menu-item > a {
	text-align: right !important;
	justify-content: flex-end !important;
}

/* Strong mobile overrides so explicit left/right always wins in stacked mode. */
.mvm-menu-shell--mobile.mvm-menu-shell--left > ul,
.mvm-menu-shell--mobile ul.mvm-menu-position-left {
	align-items: flex-start !important;
}

.mvm-menu-shell--mobile.mvm-menu-shell--right > ul,
.mvm-menu-shell--mobile ul.mvm-menu-position-right {
	align-items: flex-end !important;
}

.mvm-menu-shell--mobile.mvm-menu-shell--left .menu-item,
.mvm-menu-shell--mobile.mvm-menu-shell--right .menu-item,
.mvm-menu-shell--mobile.mvm-menu-shell--left .nav-item,
.mvm-menu-shell--mobile.mvm-menu-shell--right .nav-item {
	width: 100% !important;
}

.mvm-menu-shell--mobile.mvm-menu-shell--left .menu-item > a,
.mvm-menu-shell--mobile.mvm-menu-shell--left .nav-link,
.mvm-menu-shell--mobile.mvm-menu-shell--left .menu-link {
	display: flex !important;
	width: 100% !important;
	justify-content: flex-start !important;
	text-align: left !important;
}

.mvm-menu-shell--mobile.mvm-menu-shell--right .menu-item > a,
.mvm-menu-shell--mobile.mvm-menu-shell--right .nav-link,
.mvm-menu-shell--mobile.mvm-menu-shell--right .menu-link {
	display: flex !important;
	width: 100% !important;
	justify-content: flex-end !important;
	text-align: right !important;
}

/* Desktop forced mode */
body.mvm-nav-mode-desktop .cq-site-header .navbar-collapse,
body.mvm-nav-mode-desktop .cq-site-header .cq-header-collapse {
	display: flex !important;
	visibility: visible !important;
	height: auto !important;
	flex-basis: auto;
	flex-grow: 1;
}

body.mvm-nav-mode-desktop .cq-site-header .cq-navbar-toggler,
body.mvm-nav-mode-desktop .cq-site-header .navbar-toggler {
	display: none !important;
}

body.mvm-nav-mode-desktop .cq-site-header .cq-header-bar-end {
	flex-direction: row !important;
	align-items: center !important;
}

body.mvm-nav-mode-desktop .cq-site-header .mvm-menu-display-desktop,
body.mvm-nav-mode-desktop .cq-site-header .mvm-menu-shell--desktop > ul {
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	width: auto !important;
}

body.mvm-nav-mode-desktop .cq-site-header .mvm-menu-layout-stacked > ul,
body.mvm-nav-mode-desktop .cq-site-header ul.mvm-menu-layout-stacked {
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100% !important;
}

/* Mobile forced mode */
body.mvm-nav-mode-mobile .cq-site-header .cq-header-collapse:not(.show),
body.mvm-nav-mode-mobile .cq-site-header .navbar-collapse:not(.show) {
	display: none !important;
}

body.mvm-nav-mode-mobile .cq-site-header .cq-header-collapse.show,
body.mvm-nav-mode-mobile .cq-site-header .navbar-collapse.show {
	display: flex !important;
	flex-direction: column;
	flex-basis: 100%;
	width: 100%;
}

body.mvm-nav-mode-mobile:not(.mvm-nav-position-left):not(.mvm-nav-position-right) .cq-site-header .cq-header-collapse.show {
	position: static;
	height: auto !important;
	width: 100%;
	padding: 0.75rem 0 0;
	box-shadow: none;
	background: transparent;
}

body.mvm-nav-mode-mobile .cq-site-header .cq-navbar-toggler,
body.mvm-nav-mode-mobile .cq-site-header .navbar-toggler {
	display: inline-flex !important;
}

body.mvm-nav-mode-mobile .cq-site-header .cq-header-bar-end {
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100%;
}

body.mvm-nav-mode-mobile .cq-site-header .mvm-menu-in-header-collapse > ul,
body.mvm-nav-mode-mobile .cq-site-header .mvm-menu-display-mobile {
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100% !important;
}

body.mvm-nav-mode-mobile .cq-site-header .mvm-menu-in-header-collapse .nav-item,
body.mvm-nav-mode-mobile .cq-site-header .mvm-menu-display-mobile .nav-item,
body.mvm-nav-mode-mobile .cq-site-header .mvm-menu-in-header-collapse .menu-item,
body.mvm-nav-mode-mobile .cq-site-header .mvm-menu-display-mobile .menu-item {
	width: 100% !important;
}

body.mvm-nav-mode-mobile .cq-site-header .mvm-menu-in-header-collapse .nav-link,
body.mvm-nav-mode-mobile .cq-site-header .mvm-menu-display-mobile .nav-link {
	display: flex !important;
	align-items: center;
	width: 100%;
	min-height: 2.75rem;
	padding: 0.75rem 0.5rem;
}

body.mvm-nav-mode-mobile .cq-site-header .mvm-menu-layout-horizontal > ul,
body.mvm-nav-mode-mobile .cq-site-header ul.mvm-menu-layout-horizontal {
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center !important;
}

body.mvm-nav-mode-mobile .cq-site-header .mvm-menu-in-header-collapse .dropdown-menu {
	position: static !important;
	float: none;
	width: 100%;
	margin-top: 0;
	border: 0;
	box-shadow: none;
	background: transparent;
	padding-left: 0.75rem;
}

.mvm-menu-shell--stacked > ul,
.mvm-menu-shell ul.mvm-menu-layout-stacked,
.mvm-menu-shell ul.flex-column {
	flex-direction: column !important;
	align-items: stretch !important;
}

.mvm-menu-shell--mobile > ul,
ul.mvm-menu-display-mobile {
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100% !important;
}

.mvm-menu-shell--desktop > ul,
ul.mvm-menu-display-desktop {
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center !important;
}

.mvm-menu-shell--horizontal > ul,
.mvm-menu-shell ul.mvm-menu-layout-horizontal {
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center !important;
}

.cq-header-bottom .mvm-menu-in-header-bottom:not(.mvm-menu-shell--left):not(.mvm-menu-shell--right) > ul,
.cq-header-bottom .mvm-menu-shell--mobile:not(.mvm-menu-shell--left):not(.mvm-menu-shell--right) > ul {
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100%;
}

.cq-header-bottom .mvm-menu-shell--left > ul,
.cq-header-bottom ul.mvm-menu-position-left {
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	width: 100%;
}

.cq-header-bottom .mvm-menu-shell--right > ul,
.cq-header-bottom ul.mvm-menu-position-right {
	flex-direction: column !important;
	align-items: flex-end !important;
	justify-content: flex-end !important;
	width: 100%;
}

.cq-header-bottom .mvm-menu-shell--left .nav-link,
.cq-header-bottom .mvm-menu-shell--left .menu-link,
.cq-header-bottom .mvm-menu-shell--left .menu-item > a {
	justify-content: flex-start !important;
	text-align: left !important;
}

.cq-header-bottom .mvm-menu-shell--right .nav-link,
.cq-header-bottom .mvm-menu-shell--right .menu-link,
.cq-header-bottom .mvm-menu-shell--right .menu-item > a {
	justify-content: flex-end !important;
	text-align: right !important;
}

.cq-header-bottom .mvm-menu-display-desktop > ul,
.cq-header-bottom .mvm-menu-shell--desktop > ul {
	flex-direction: row !important;
	flex-wrap: wrap !important;
}

@media (max-width: 991.98px) {
	body.mvm-nav-mode-desktop .cq-site-header.navbar-expand-lg .navbar-collapse,
	body.mvm-nav-mode-desktop .cq-site-header.navbar-expand-lg .cq-header-collapse {
		display: flex !important;
	}
}

body.mvm-mobile-panel-open::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 1035;
	background: rgba(0, 0, 0, 0.45);
}

/* Header row: hamburger placement (mobile + forced mobile) */
@media (max-width: 991.98px) {
	body.mvm-nav-position-left:not(.mvm-nav-mode-desktop) .cq-site-header .mvm-header-row-left,
	body.mvm-nav-position-left.mvm-nav-mode-mobile .cq-site-header .cq-header-row--logo-left,
	body.mvm-nav-position-left.mvm-nav-mode-mobile .cq-site-header .cq-header-stack--above-nav,
	body.mvm-nav-position-left.mvm-nav-mode-mobile .cq-site-header .cq-header-top-row {
		justify-content: flex-start !important;
	}

	body.mvm-nav-position-left:not(.mvm-nav-mode-desktop) .cq-site-header .cq-navbar-toggler,
	body.mvm-nav-position-left.mvm-nav-mode-mobile .cq-site-header .cq-navbar-toggler {
		order: 0;
		margin-left: 0 !important;
		margin-right: 0.5rem !important;
	}

	body.mvm-nav-position-left:not(.mvm-nav-mode-desktop) .cq-site-header .cq-site-branding,
	body.mvm-nav-position-left.mvm-nav-mode-mobile .cq-site-header .cq-site-branding {
		flex: 0 1 auto;
		max-width: none;
	}

	body.mvm-nav-position-right:not(.mvm-nav-mode-desktop) .cq-site-header .mvm-header-row-right,
	body.mvm-nav-position-right.mvm-nav-mode-mobile .cq-site-header .cq-header-row--logo-left,
	body.mvm-nav-position-right.mvm-nav-mode-mobile .cq-site-header .cq-header-stack--above-nav,
	body.mvm-nav-position-right.mvm-nav-mode-mobile .cq-site-header .cq-header-top-row {
		justify-content: flex-start !important;
	}

	body.mvm-nav-position-right:not(.mvm-nav-mode-desktop) .cq-site-header .cq-navbar-toggler,
	body.mvm-nav-position-right.mvm-nav-mode-mobile .cq-site-header .cq-navbar-toggler,
	body.mvm-nav-position-right:not(.mvm-nav-mode-desktop) .cq-site-header .navbar-toggler,
	body.mvm-nav-position-right.mvm-nav-mode-mobile .cq-site-header .navbar-toggler {
		margin-left: auto !important;
		margin-right: 0 !important;
		order: 2;
	}

	body.mvm-nav-position-left .cq-header-stack--center .cq-header-top-row {
		justify-content: flex-start !important;
	}

	body.mvm-nav-position-left .cq-header-stack--center .cq-navbar-toggler {
		align-self: flex-start !important;
		order: -1;
		margin-right: 0.5rem !important;
	}

	body.mvm-nav-position-right .cq-header-stack--center .cq-header-top-row {
		justify-content: space-between !important;
		width: 100%;
	}

	body.mvm-nav-position-right .cq-header-stack--center .cq-navbar-toggler {
		align-self: flex-end !important;
		margin-left: auto !important;
	}

	/* Open panel link alignment */
	body.mvm-nav-position-left .cq-site-header .cq-header-collapse.show .cq-primary-nav,
	body.mvm-nav-position-left .cq-site-header .cq-header-collapse.show .cq-primary-nav > .navbar-nav,
	body.mvm-nav-position-left .cq-site-header .cq-header-collapse.show .cq-primary-nav .mvm-menu-shell.mvm-menu-location-primary > ul {
		align-items: flex-start !important;
	}

	body.mvm-nav-position-left .cq-site-header .cq-header-collapse.show .cq-primary-nav .mvm-menu-shell.mvm-menu-location-primary .nav-link {
		justify-content: flex-start !important;
		text-align: left;
	}

	body.mvm-nav-position-right .cq-site-header .cq-header-collapse.show .cq-primary-nav,
	body.mvm-nav-position-right .cq-site-header .cq-header-collapse.show .cq-primary-nav > .navbar-nav,
	body.mvm-nav-position-right .cq-site-header .cq-header-collapse.show .cq-primary-nav .mvm-menu-shell.mvm-menu-location-primary > ul {
		align-items: flex-end !important;
	}

	body.mvm-nav-position-right .cq-site-header .cq-header-collapse.show .cq-primary-nav .mvm-menu-shell.mvm-menu-location-primary .nav-link {
		justify-content: flex-end !important;
		text-align: right;
	}
}

@media (min-width: 992px) {
	body.mvm-nav-mode-mobile .cq-site-header.navbar-expand-lg .navbar-toggler,
	body.mvm-nav-mode-mobile .cq-site-header.navbar-expand-lg .cq-navbar-toggler,
	body.mvm-nav-mode-mobile.cq-header-logo-left .cq-site-header.navbar-expand-lg .navbar-toggler,
	body.mvm-nav-mode-mobile.cq-header-split-nav .cq-site-header.navbar-expand-lg .navbar-toggler {
		display: inline-flex !important;
		visibility: visible !important;
	}

	body.mvm-nav-mode-mobile .cq-site-header.navbar-expand-lg .cq-header-collapse:not(.show),
	body.mvm-nav-mode-mobile .cq-site-header.navbar-expand-lg .navbar-collapse:not(.show),
	body.mvm-nav-mode-mobile.cq-header-logo-left .cq-site-header.navbar-expand-lg .cq-header-collapse:not(.show),
	body.mvm-nav-mode-mobile.cq-header-split-nav .cq-site-header.navbar-expand-lg .cq-header-collapse:not(.show) {
		display: none !important;
		flex: 0 0 auto !important;
		width: 0 !important;
		min-width: 0 !important;
		max-width: 0 !important;
		height: 0 !important;
		overflow: hidden !important;
		padding: 0 !important;
		margin: 0 !important;
		border: 0 !important;
		visibility: hidden !important;
	}

	body.mvm-nav-mode-mobile .cq-site-header.navbar-expand-lg .cq-header-collapse.show,
	body.mvm-nav-mode-mobile.cq-header-logo-left .cq-site-header.navbar-expand-lg .cq-header-collapse.show,
	body.mvm-nav-mode-mobile.cq-header-split-nav .cq-site-header.navbar-expand-lg .cq-header-collapse.show {
		display: flex !important;
		flex-direction: column !important;
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		flex: 1 1 100% !important;
		height: auto !important;
		visibility: visible !important;
		overflow: visible !important;
	}

	/* Forced mobile at desktop width: same hamburger placement */
	body.mvm-nav-position-left.mvm-nav-mode-mobile .cq-site-header .cq-header-row--logo-left,
	body.mvm-nav-position-left.mvm-nav-mode-mobile .cq-site-header .cq-header-stack--above-nav,
	body.mvm-nav-position-left.mvm-nav-mode-mobile .cq-site-header .cq-header-top-row {
		justify-content: flex-start !important;
	}

	body.mvm-nav-position-left.mvm-nav-mode-mobile .cq-site-header .cq-navbar-toggler {
		order: 0;
		margin-left: 0 !important;
		margin-right: 0.5rem !important;
	}

	body.mvm-nav-position-right.mvm-nav-mode-mobile .cq-site-header .cq-navbar-toggler,
	body.mvm-nav-position-right.mvm-nav-mode-mobile .cq-site-header .navbar-toggler {
		margin-left: auto !important;
		margin-right: 0 !important;
	}

	/* Desktop header placement applies only to the primary menu shell. */
	body.mvm-nav-position-left .cq-site-header .cq-primary-nav .mvm-menu-shell.mvm-menu-location-primary > ul {
		justify-content: flex-start !important;
	}

	body.mvm-nav-position-right .cq-site-header .cq-primary-nav .mvm-menu-shell.mvm-menu-location-primary > ul {
		justify-content: flex-end !important;
	}
}
