.mfsm-root,
.mfsm-mobile-header,
.mfsm-header-spacer,
.mfsm-overlay {
	display: none;
}

@media (max-width: 2000px) {
	.mfsm-mobile-header {
		align-items: center;
		background: var(--mfsm-header-bg);
		border-bottom: var(--mfsm-header-border-width) solid var(--mfsm-header-border-color);
		box-shadow: var(--mfsm-header-shadow);
		box-sizing: border-box;
		height: var(--mfsm-header-height);
		justify-content: center;
		left: 0;
		padding: 0 var(--mfsm-header-padding);
		right: 0;
		transition: background-color var(--mfsm-duration) ease, color var(--mfsm-duration) ease;
		width: 100%;
		z-index: var(--mfsm-z-index);
	}

	.mfsm-position-fixed .mfsm-mobile-header {
		position: fixed;
		top: 0;
	}

	.mfsm-position-sticky .mfsm-mobile-header {
		position: sticky;
		top: 0;
	}

	.mfsm-position-relative .mfsm-mobile-header {
		position: relative;
	}

	.mfsm-header-spacer {
		height: var(--mfsm-header-height);
	}

	.mfsm-root .mfsm-mobile-header .mfsm-toggle {
		align-items: center;
		appearance: none;
		-webkit-appearance: none;
		background-color: var(--mfsm-button-bg) !important;
		background-image: none !important;
		border: 0 !important;
		border-radius: var(--mfsm-button-radius);
		box-shadow: none;
		cursor: pointer;
		display: inline-flex;
		height: var(--mfsm-button-size);
		justify-content: center;
		left: var(--mfsm-button-left);
		margin: 0;
		padding: 0;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		color: var(--mfsm-icon-color) !important;
		transition: background-color 180ms ease, color 180ms ease;
		width: var(--mfsm-button-size);
		z-index: 2;
	}

	.mfsm-root .mfsm-mobile-header .mfsm-toggle:hover,
	.mfsm-root .mfsm-mobile-header .mfsm-toggle:focus,
	.mfsm-root .mfsm-mobile-header .mfsm-toggle:active {
		background-color: var(--mfsm-button-hover-bg) !important;
		color: var(--mfsm-icon-hover-color) !important;
	}

	.mfsm-toggle:focus-visible,
	.mfsm-brand:focus-visible,
	.mfsm-nav a:focus-visible,
	.mfsm-submenu-toggle:focus-visible {
		outline: 2px solid var(--mfsm-menu-hover-color);
		outline-offset: 3px;
	}

	.mfsm-root .mfsm-toggle__lines {
		color: inherit !important;
		display: flex;
		flex-direction: column;
		gap: var(--mfsm-icon-gap);
		width: var(--mfsm-icon-width);
	}

	.mfsm-root .mfsm-toggle__line {
		background-color: currentColor !important;
		color: inherit !important;
		border-radius: 999px;
		display: block;
		height: var(--mfsm-icon-thickness);
		transform-origin: center;
		transition: opacity var(--mfsm-duration) ease, transform var(--mfsm-duration) ease, background-color var(--mfsm-duration) ease;
		width: 100%;
	}

	.mfsm-brand {
		align-items: center;
		color: var(--mfsm-logo-color);
		display: inline-flex;
		font-family: var(--mfsm-logo-font-family);
		font-size: var(--mfsm-logo-font-size);
		font-weight: var(--mfsm-logo-font-weight);
		gap: 10px;
		left: 50%;
		letter-spacing: var(--mfsm-logo-letter-spacing);
		line-height: 1;
		max-width: min(var(--mfsm-logo-max-width), calc(100% - (var(--mfsm-button-size) * 2) - 40px));
		position: absolute;
		text-decoration: none;
		transform: translateX(-50%);
		white-space: nowrap;
		z-index: 1;
	}

	.mfsm-brand:hover,
	.mfsm-brand:focus {
		color: var(--mfsm-logo-color);
		text-decoration: none;
	}

	.mfsm-brand__image {
		display: block;
		height: auto;
		max-height: var(--mfsm-logo-max-height);
		max-width: 100%;
		object-fit: contain;
		width: auto;
	}

	.mfsm-brand__text {
		display: block;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.mfsm-overlay {
		background: var(--mfsm-overlay-bg);
		box-sizing: border-box;
		height: 100dvh;
		inset: 0;
		opacity: 0;
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
		pointer-events: none;
		position: fixed;
		transition: opacity var(--mfsm-duration) ease, visibility 0s linear var(--mfsm-duration);
		visibility: hidden;
		width: 100%;
		z-index: calc(var(--mfsm-z-index) - 1);
	}

	.mfsm-overlay__inner {
		box-sizing: border-box;
		margin: 0 auto;
		max-width: var(--mfsm-overlay-content-width);
		min-height: 100%;
		padding: calc(var(--mfsm-header-height) + var(--mfsm-overlay-padding-top)) var(--mfsm-overlay-padding-horizontal) 56px;
		transition: transform var(--mfsm-duration) cubic-bezier(.22,.61,.36,1), opacity var(--mfsm-duration) ease;
		width: 100%;
	}

	.mfsm-root[data-animation="slide-left"] .mfsm-overlay__inner {
		transform: translateX(-36px);
	}

	.mfsm-root[data-animation="slide-top"] .mfsm-overlay__inner {
		transform: translateY(-36px);
	}

	.mfsm-root[data-animation="scale"] .mfsm-overlay__inner {
		opacity: .5;
		transform: scale(.96);
	}

	.mfsm-menu-open .mfsm-mobile-header {
		background: var(--mfsm-header-open-bg);
	}

	.mfsm-menu-open .mfsm-brand,
	.mfsm-menu-open .mfsm-brand:hover,
	.mfsm-menu-open .mfsm-brand:focus {
		color: var(--mfsm-logo-open-color);
	}

	.mfsm-root.mfsm-menu-open .mfsm-mobile-header .mfsm-toggle {
		background-color: var(--mfsm-button-open-bg) !important;
		color: var(--mfsm-icon-open-color) !important;
	}

	.mfsm-root.mfsm-menu-open .mfsm-mobile-header .mfsm-toggle:hover,
	.mfsm-root.mfsm-menu-open .mfsm-mobile-header .mfsm-toggle:focus,
	.mfsm-root.mfsm-menu-open .mfsm-mobile-header .mfsm-toggle:active {
		background-color: var(--mfsm-button-open-hover-bg) !important;
		color: var(--mfsm-icon-open-hover-color) !important;
	}

	.mfsm-menu-open .mfsm-toggle__line:nth-child(1) {
		transform: translateY(calc(var(--mfsm-icon-gap) + var(--mfsm-icon-thickness))) rotate(45deg);
	}

	.mfsm-menu-open .mfsm-toggle__line:nth-child(2) {
		opacity: 0;
		transform: scaleX(0);
	}

	.mfsm-menu-open .mfsm-toggle__line:nth-child(3) {
		transform: translateY(calc((var(--mfsm-icon-gap) + var(--mfsm-icon-thickness)) * -1)) rotate(-45deg);
	}

	.mfsm-menu-open .mfsm-overlay {
		opacity: 1;
		pointer-events: auto;
		transition-delay: 0s;
		visibility: visible;
	}

	.mfsm-menu-open .mfsm-overlay__inner {
		opacity: 1;
		transform: none;
	}

	html.mfsm-scroll-locked,
	html.mfsm-scroll-locked body {
		overflow: hidden !important;
	}

	.mfsm-nav,
	.mfsm-nav ul,
	.mfsm-nav li {
		box-sizing: border-box;
	}

	.mfsm-nav {
		font-family: var(--mfsm-menu-font-family);
		text-align: var(--mfsm-menu-align);
	}

	.mfsm-nav ul {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.mfsm-nav .mfsm-menu,
	.mfsm-nav .mfsm-page-menu > ul {
		display: flex;
		flex-direction: column;
		gap: var(--mfsm-menu-item-gap);
	}

	.mfsm-nav li {
		border-bottom: var(--mfsm-menu-separator-width) solid var(--mfsm-menu-separator-color);
		margin: 0;
		padding: 0;
		position: relative;
	}

	/*
	 * High-specificity link rules prevent theme styles (including :visited,
	 * :focus and dropdown-specific selectors) from overriding MFSM colors.
	 */
	.mfsm-root .mfsm-overlay .mfsm-nav a,
	.mfsm-root .mfsm-overlay .mfsm-nav a:link,
	.mfsm-root .mfsm-overlay .mfsm-nav a:visited,
	.mfsm-root .mfsm-overlay .mfsm-nav .sub-menu a,
	.mfsm-root .mfsm-overlay .mfsm-nav .sub-menu a:link,
	.mfsm-root .mfsm-overlay .mfsm-nav .sub-menu a:visited,
	.mfsm-root .mfsm-overlay .mfsm-nav .children a,
	.mfsm-root .mfsm-overlay .mfsm-nav .children a:link,
	.mfsm-root .mfsm-overlay .mfsm-nav .children a:visited {
		color: var(--mfsm-menu-color) !important;
		display: block;
		font-size: var(--mfsm-menu-font-size);
		font-weight: var(--mfsm-menu-font-weight);
		line-height: var(--mfsm-menu-line-height);
		padding: .28em 0;
		text-decoration: none !important;
		transition: color 180ms ease, transform 180ms ease;
	}

	.mfsm-root .mfsm-overlay .mfsm-nav a:hover,
	.mfsm-root .mfsm-overlay .mfsm-nav a:focus,
	.mfsm-root .mfsm-overlay .mfsm-nav a:focus-visible,
	.mfsm-root .mfsm-overlay .mfsm-nav a:active,
	.mfsm-root .mfsm-overlay .mfsm-nav .sub-menu a:hover,
	.mfsm-root .mfsm-overlay .mfsm-nav .sub-menu a:focus,
	.mfsm-root .mfsm-overlay .mfsm-nav .sub-menu a:focus-visible,
	.mfsm-root .mfsm-overlay .mfsm-nav .sub-menu a:active,
	.mfsm-root .mfsm-overlay .mfsm-nav .children a:hover,
	.mfsm-root .mfsm-overlay .mfsm-nav .children a:focus,
	.mfsm-root .mfsm-overlay .mfsm-nav .children a:focus-visible,
	.mfsm-root .mfsm-overlay .mfsm-nav .children a:active {
		color: var(--mfsm-menu-hover-color) !important;
		text-decoration: none !important;
	}

	.mfsm-root .mfsm-overlay .mfsm-nav .current-menu-item > a,
	.mfsm-root .mfsm-overlay .mfsm-nav .current-menu-ancestor > a,
	.mfsm-root .mfsm-overlay .mfsm-nav .current_page_item > a,
	.mfsm-root .mfsm-overlay .mfsm-nav .current_page_ancestor > a,
	.mfsm-root .mfsm-overlay .mfsm-nav .sub-menu .current-menu-item > a,
	.mfsm-root .mfsm-overlay .mfsm-nav .sub-menu .current_page_item > a,
	.mfsm-root .mfsm-overlay .mfsm-nav .children .current-menu-item > a,
	.mfsm-root .mfsm-overlay .mfsm-nav .children .current_page_item > a {
		color: var(--mfsm-menu-active-color) !important;
	}

	.mfsm-nav .menu-item-has-children > a,
	.mfsm-nav .page_item_has_children > a {
		padding-inline-end: 48px;
	}

	.mfsm-root .mfsm-overlay .mfsm-submenu-toggle {
		align-items: center;
		appearance: none;
		-webkit-appearance: none;
		background: transparent !important;
		background-image: none !important;
		border: 0 !important;
		border-radius: 50%;
		box-shadow: none !important;
		color: var(--mfsm-menu-color) !important;
		cursor: pointer;
		display: inline-flex;
		height: 40px;
		justify-content: center;
		padding: 0;
		position: absolute;
		right: 0;
		top: calc((var(--mfsm-menu-font-size) * var(--mfsm-menu-line-height) * .28) / 2);
		width: 40px;
	}

	.mfsm-root[data-align="right"] .mfsm-submenu-toggle {
		left: 0;
		right: auto;
	}

	.mfsm-root .mfsm-overlay .mfsm-submenu-toggle:hover,
	.mfsm-root .mfsm-overlay .mfsm-submenu-toggle:focus,
	.mfsm-root .mfsm-overlay .mfsm-submenu-toggle:focus-visible,
	.mfsm-root .mfsm-overlay .mfsm-submenu-toggle:active {
		background: transparent !important;
		box-shadow: none !important;
		color: var(--mfsm-menu-hover-color) !important;
	}


	.mfsm-submenu-toggle::before,
	.mfsm-submenu-toggle::after {
		background: currentColor;
		content: "";
		height: 2px;
		position: absolute;
		transition: transform 180ms ease;
		width: 14px;
	}

	.mfsm-submenu-toggle::after {
		transform: rotate(90deg);
	}

	.mfsm-submenu-toggle[aria-expanded="true"]::after {
		transform: rotate(0deg);
	}

	.mfsm-nav .sub-menu,
	.mfsm-nav .children {
		padding-inline-start: var(--mfsm-submenu-indent);
	}

	.mfsm-root .mfsm-overlay .mfsm-nav .sub-menu a,
	.mfsm-root .mfsm-overlay .mfsm-nav .children a {
		font-size: var(--mfsm-submenu-font-size) !important;
		font-weight: 400;
	}

	.mfsm-nav .sub-menu[hidden],
	.mfsm-nav .children[hidden] {
		display: none !important;
	}

	body.admin-bar .mfsm-position-fixed .mfsm-mobile-header,
	body.admin-bar .mfsm-position-sticky .mfsm-mobile-header {
		top: 32px;
	}

	body.admin-bar .mfsm-overlay {
		top: 32px;
		height: calc(100dvh - 32px);
	}
}

@media (max-width: 782px) {
	body.admin-bar .mfsm-position-fixed .mfsm-mobile-header,
	body.admin-bar .mfsm-position-sticky .mfsm-mobile-header {
		top: 46px;
	}

	body.admin-bar .mfsm-overlay {
		top: 46px;
		height: calc(100dvh - 46px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.mfsm-mobile-header,
	.mfsm-toggle__line,
	.mfsm-overlay,
	.mfsm-overlay__inner,
	.mfsm-nav a {
		transition-duration: 1ms !important;
	}
}
