/* Flex Nav Menu v1.0.0
 * All colors and sizes are CSS custom properties on .fnm, so the settings page,
 * the Elementor widget and your own CSS can override them. */

.fnm {
	--fnm-bg: transparent;
	--fnm-link: #1f2937;
	--fnm-link-hover: #2563eb;
	--fnm-link-hover-bg: transparent;
	--fnm-link-active: #2563eb;
	--fnm-sub-bg: #ffffff;
	--fnm-sub-link: #1f2937;
	--fnm-sub-link-hover: #2563eb;
	--fnm-sub-hover-bg: #f3f4f6;
	--fnm-btn-bg: #2563eb;
	--fnm-btn-text: #ffffff;
	--fnm-badge-bg: #ef4444;
	--fnm-badge-text: #ffffff;
	--fnm-toggle: #1f2937;
	--fnm-toggle-size: 24px;
	--fnm-mobile-bg: #ffffff;
	--fnm-mobile-link: var(--fnm-link);
	--fnm-overlay: rgba(0, 0, 0, 0.45);
	--fnm-font-size: 16px;
	--fnm-font-weight: 500;
	--fnm-gap: 4px;
	--fnm-pad-y: 10px;
	--fnm-pad-x: 14px;
	--fnm-sub-width: 220px;
	--fnm-radius: 8px;
	--fnm-shadow: 0 10px 30px rgba(15, 23, 42, 0.12), 0 2px 6px rgba(15, 23, 42, 0.06);
	--fnm-z: 9990;

	position: relative;
	display: block;
	width: 100%;
	background: var(--fnm-bg);
	font-size: var(--fnm-font-size);
	line-height: 1.3;
}

.fnm *,
.fnm *::before,
.fnm *::after {
	box-sizing: border-box;
}

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

.fnm li {
	margin: 0;
	padding: 0;
}

.fnm li::before,
.fnm li::marker {
	content: none;
}

.fnm button {
	font: inherit;
	line-height: 1;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
	min-height: 0;
}

/* ---------- Top level ---------- */

.fnm__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--fnm-gap);
}

.fnm--align-center .fnm__list { justify-content: center; }
.fnm--align-right .fnm__list { justify-content: flex-end; }
.fnm--align-justify .fnm__list { justify-content: space-between; }

.fnm__item {
	position: relative;
}

.fnm__row {
	display: flex;
	align-items: center;
}

.fnm .fnm__link {
	display: flex;
	align-items: center;
	gap: 0.45em;
	flex: 1 1 auto;
	padding: var(--fnm-pad-y) var(--fnm-pad-x);
	color: var(--fnm-link);
	font-weight: var(--fnm-font-weight);
	text-decoration: none;
	border-radius: calc(var(--fnm-radius) - 2px);
	transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.fnm .fnm__link:hover,
.fnm .fnm__link:focus-visible {
	color: var(--fnm-link-hover);
	background-color: var(--fnm-link-hover-bg);
	text-decoration: none;
}

.fnm .fnm__link:focus-visible,
.fnm button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.fnm__item--current > .fnm__row > .fnm__link,
.fnm__item--current-ancestor > .fnm__row > .fnm__link {
	color: var(--fnm-link-active);
}

.fnm__text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.fnm__desc {
	margin-top: 2px;
	font-size: 0.8em;
	font-weight: 400;
	opacity: 0.7;
	white-space: normal;
}

.fnm__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1em;
	line-height: 1;
}

.fnm__icon.dashicons {
	width: 1.1em;
	height: 1.1em;
	font-size: 1.1em;
}

.fnm__icon--img {
	width: 1.25em;
	height: 1.25em;
	object-fit: contain;
}

.fnm__badge {
	flex: 0 0 auto;
	padding: 0.2em 0.55em;
	border-radius: 999px;
	background: var(--fnm-badge-bg);
	color: var(--fnm-badge-text);
	font-size: 0.68em;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

/* Sub-menu toggle (chevron) */
.fnm .fnm__sub-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	margin: 0 0 0 calc(var(--fnm-pad-x) * -0.6);
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: transparent;
	color: var(--fnm-link);
	cursor: pointer;
}

.fnm .fnm__sub-toggle:hover {
	background: transparent;
	color: var(--fnm-link-hover);
}

.fnm__sub-toggle svg {
	width: 12px;
	height: 12px;
	transition: transform 0.2s ease;
}

.fnm__item.is-open > .fnm__row > .fnm__sub-toggle svg {
	transform: rotate(180deg);
}

/* ---------- Button-style items ---------- */

.fnm__item--button > .fnm__row > .fnm__link {
	background: var(--fnm-btn-bg);
	color: var(--fnm-btn-text);
	border: 2px solid var(--fnm-btn-bg);
	border-radius: var(--fnm-radius);
	padding-left: calc(var(--fnm-pad-x) + 4px);
	padding-right: calc(var(--fnm-pad-x) + 4px);
}

.fnm__item--button > .fnm__row > .fnm__link:hover,
.fnm__item--button > .fnm__row > .fnm__link:focus-visible {
	background: var(--fnm-btn-bg);
	color: var(--fnm-btn-text);
	filter: brightness(0.92);
}

.fnm__item--button-outline > .fnm__row > .fnm__link {
	background: transparent;
	color: var(--fnm-btn-bg);
}

.fnm__item--button-outline > .fnm__row > .fnm__link:hover,
.fnm__item--button-outline > .fnm__row > .fnm__link:focus-visible {
	background: var(--fnm-btn-bg);
	color: var(--fnm-btn-text);
	filter: none;
}

/* ---------- Desktop dropdowns (horizontal, not collapsed) ---------- */

.fnm--horizontal:not(.fnm--mobile) .fnm__sub {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: var(--fnm-z);
	min-width: var(--fnm-sub-width);
	padding: 6px;
	background: var(--fnm-sub-bg);
	border-radius: var(--fnm-radius);
	box-shadow: var(--fnm-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s;
}

/* Flyouts for third level and deeper */
.fnm--horizontal:not(.fnm--mobile) .fnm__sub .fnm__sub {
	top: -6px;
	left: 100%;
	margin-left: 4px;
}

.fnm--horizontal:not(.fnm--mobile) .fnm__sub .fnm__sub-toggle svg {
	transform: rotate(-90deg);
}

/* Keep dropdowns on screen (set by script) */
.fnm--horizontal:not(.fnm--mobile) .fnm__sub.fnm__sub--flip {
	left: auto;
	right: 0;
}

.fnm--horizontal:not(.fnm--mobile) .fnm__sub .fnm__sub.fnm__sub--flip {
	right: 100%;
	margin-left: 0;
	margin-right: 4px;
}

.fnm--horizontal:not(.fnm--mobile) .fnm__item.is-open > .fnm__sub,
.fnm--horizontal.fnm--open-hover:not(.fnm--mobile) .fnm__item--has-children:hover > .fnm__sub,
.fnm--horizontal.fnm--open-hover:not(.fnm--mobile) .fnm__item--has-children:focus-within > .fnm__sub {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.fnm--horizontal:not(.fnm--mobile) .fnm__sub .fnm__link {
	color: var(--fnm-sub-link);
	white-space: nowrap;
	padding: 9px 12px;
}

.fnm--horizontal:not(.fnm--mobile) .fnm__sub .fnm__link:hover,
.fnm--horizontal:not(.fnm--mobile) .fnm__sub .fnm__link:focus-visible {
	color: var(--fnm-sub-link-hover);
	background: var(--fnm-sub-hover-bg);
}

.fnm--horizontal:not(.fnm--mobile) .fnm__sub .fnm__item--current > .fnm__row > .fnm__link {
	color: var(--fnm-link-active);
}

.fnm--horizontal:not(.fnm--mobile) .fnm__sub .fnm__sub-toggle {
	color: var(--fnm-sub-link);
	margin-left: 0;
}

/* Hover bridge so the pointer can travel into the dropdown */
.fnm--horizontal.fnm--open-hover:not(.fnm--mobile) .fnm__sub::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -8px;
	height: 8px;
}

/* ---------- Mega menu (columns) ---------- */

.fnm--horizontal:not(.fnm--mobile) .fnm__item--mega > .fnm__sub {
	display: grid;
	gap: 4px 12px;
	padding: 14px;
}

.fnm--horizontal:not(.fnm--mobile) .fnm__item--cols-2 > .fnm__sub { grid-template-columns: repeat(2, minmax(var(--fnm-sub-width), 1fr)); }
.fnm--horizontal:not(.fnm--mobile) .fnm__item--cols-3 > .fnm__sub { grid-template-columns: repeat(3, minmax(var(--fnm-sub-width), 1fr)); }
.fnm--horizontal:not(.fnm--mobile) .fnm__item--cols-4 > .fnm__sub { grid-template-columns: repeat(4, minmax(var(--fnm-sub-width), 1fr)); }

.fnm--horizontal:not(.fnm--mobile) .fnm__item--mega > .fnm__sub > .fnm__item > .fnm__row > .fnm__link {
	font-weight: 700;
}

.fnm--horizontal:not(.fnm--mobile) .fnm__item--mega .fnm__sub .fnm__sub {
	position: static;
	min-width: 0;
	margin: 0;
	padding: 0;
	background: transparent;
	box-shadow: none;
	opacity: 1;
	visibility: visible;
	transform: none;
}

.fnm--horizontal:not(.fnm--mobile) .fnm__item--mega .fnm__sub .fnm__sub::before,
.fnm--horizontal:not(.fnm--mobile) .fnm__item--mega .fnm__sub .fnm__sub-toggle {
	display: none;
}

.fnm--horizontal:not(.fnm--mobile) .fnm__item--mega .fnm__sub .fnm__sub .fnm__link {
	font-weight: 400;
	white-space: normal;
}

/* ---------- Vertical layout (desktop): accordion ---------- */

.fnm--vertical .fnm__list {
	flex-direction: column;
	align-items: stretch;
	flex-wrap: nowrap;
}

.fnm--vertical .fnm__sub,
.fnm--mobile .fnm__sub {
	display: none;
	padding-left: 14px;
}

.fnm--vertical .fnm__item.is-open > .fnm__sub,
.fnm--mobile .fnm__item.is-open > .fnm__sub {
	display: block;
}

.fnm--vertical .fnm__sub .fnm__link {
	color: var(--fnm-sub-link);
}

/* ---------- Mobile toggle ---------- */

.fnm .fnm__toggle {
	display: none;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border: 0;
	border-radius: var(--fnm-radius);
	background: transparent;
	color: var(--fnm-toggle);
	cursor: pointer;
	font-weight: var(--fnm-font-weight);
}

.fnm .fnm__toggle:hover,
.fnm .fnm__toggle:focus {
	background: transparent;
	color: var(--fnm-toggle);
}

.fnm__burger {
	position: relative;
	display: inline-block;
	width: var(--fnm-toggle-size);
	height: calc(var(--fnm-toggle-size) * 0.75);
}

.fnm__burger span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform 0.22s ease, opacity 0.18s ease, top 0.22s ease;
}

.fnm__burger span:nth-child(1) { top: 0; }
.fnm__burger span:nth-child(2) { top: calc(50% - 1px); }
.fnm__burger span:nth-child(3) { top: calc(100% - 2px); }

.fnm--open .fnm__burger span:nth-child(1) { top: calc(50% - 1px); transform: rotate(45deg); }
.fnm--open .fnm__burger span:nth-child(2) { opacity: 0; }
.fnm--open .fnm__burger span:nth-child(3) { top: calc(50% - 1px); transform: rotate(-45deg); }

.fnm .fnm__close,
.fnm .fnm__overlay {
	display: none;
}

/* ---------- Collapsed (mobile) state ---------- */

.fnm--mobile {
	display: flex;
	justify-content: flex-end;
}

.fnm--mobile.fnm--toggle-left { justify-content: flex-start; }
.fnm--mobile.fnm--toggle-center { justify-content: center; }

.fnm--mobile .fnm__toggle {
	display: inline-flex;
}

.fnm--mobile .fnm__list {
	flex-direction: column;
	align-items: stretch;
	flex-wrap: nowrap;
	gap: 0;
}

.fnm--mobile .fnm__item {
	border-bottom: 1px solid rgba(127, 127, 127, 0.15);
}

.fnm--mobile .fnm__sub .fnm__item:last-child,
.fnm--mobile .fnm__item--button {
	border-bottom: 0;
}

.fnm--mobile .fnm__link {
	padding: 13px 8px;
	color: var(--fnm-mobile-link);
}

.fnm--mobile .fnm__sub .fnm__link {
	color: var(--fnm-mobile-link);
	font-weight: 400;
}

.fnm--mobile .fnm__sub .fnm__item--current > .fnm__row > .fnm__link {
	color: var(--fnm-link-active);
}

.fnm--mobile .fnm__sub-toggle {
	width: 44px;
	height: 44px;
	margin: 0;
	color: var(--fnm-mobile-link);
}

.fnm--mobile .fnm__item--button {
	margin-top: 12px;
}

.fnm--mobile .fnm__item--button > .fnm__row > .fnm__link {
	justify-content: center;
	padding: 12px 16px;
}

.fnm--mobile .fnm__item--button > .fnm__row > .fnm__link {
	color: var(--fnm-btn-text);
}

.fnm--mobile .fnm__item--button-outline > .fnm__row > .fnm__link {
	color: var(--fnm-btn-bg);
}

/* Device visibility per item */
.fnm--mobile .fnm__item--hide-mobile,
.fnm:not(.fnm--mobile) .fnm__item--hide-desktop {
	display: none;
}

/* Mobile style: dropdown */
.fnm--mobile.fnm--mobile-dropdown .fnm__panel {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	z-index: var(--fnm-z);
	width: max(100%, 280px);
	max-height: calc(100vh - 120px);
	overflow-y: auto;
	padding: 8px 12px;
	background: var(--fnm-mobile-bg);
	border-radius: var(--fnm-radius);
	box-shadow: var(--fnm-shadow);
}

.fnm--mobile.fnm--mobile-dropdown.fnm--toggle-left .fnm__panel {
	right: auto;
	left: 0;
}

.fnm--mobile.fnm--mobile-dropdown.fnm--toggle-center .fnm__panel {
	right: auto;
	left: 50%;
	transform: translateX(-50%);
}

.fnm--mobile.fnm--mobile-dropdown.fnm--open .fnm__panel {
	display: block;
}

/* Mobile style: off-canvas */
.fnm--mobile.fnm--mobile-offcanvas .fnm__panel {
	position: fixed;
	top: 0;
	bottom: 0;
	right: 0;
	z-index: calc(var(--fnm-z) + 1);
	width: min(360px, 86vw);
	padding: 64px 20px 28px;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--fnm-mobile-bg);
	box-shadow: -10px 0 30px rgba(0, 0, 0, 0.15);
	transform: translateX(100%);
	visibility: hidden;
	transition: transform 0.28s ease, visibility 0.28s;
}

.fnm--mobile.fnm--mobile-offcanvas.fnm--side-left .fnm__panel {
	right: auto;
	left: 0;
	transform: translateX(-100%);
	box-shadow: 10px 0 30px rgba(0, 0, 0, 0.15);
}

.fnm--mobile.fnm--mobile-offcanvas.fnm--open .fnm__panel {
	transform: none;
	visibility: visible;
}

.fnm--mobile.fnm--mobile-offcanvas .fnm__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 14px;
	right: 14px;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--fnm-mobile-link);
	cursor: pointer;
}

.fnm--mobile.fnm--mobile-offcanvas.fnm--side-left .fnm__close {
	right: auto;
	left: 14px;
}

.fnm--mobile.fnm--mobile-offcanvas .fnm__overlay {
	display: block;
	position: fixed;
	inset: 0;
	z-index: var(--fnm-z);
	background: var(--fnm-overlay);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.28s ease, visibility 0.28s;
}

.fnm--mobile.fnm--mobile-offcanvas.fnm--open .fnm__overlay {
	opacity: 1;
	visibility: visible;
}

html.fnm-lock,
html.fnm-lock body {
	overflow: hidden;
}

/* Admin bar offset for the off-canvas panel */
.admin-bar .fnm--mobile.fnm--mobile-offcanvas .fnm__panel {
	top: 46px;
}

@media (min-width: 783px) {
	.admin-bar .fnm--mobile.fnm--mobile-offcanvas .fnm__panel {
		top: 32px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fnm *,
	.fnm *::before,
	.fnm *::after {
		transition-duration: 0.01ms !important;
	}
}
