/* =====================================================================
 * START: assets/css/nahse-mobile-menu.css  (NAHSE DFW Mobile Menu v1.1.1)
 * ---------------------------------------------------------------------
 * TO-DO
 *  1. Upload to /wp-content/themes/Avada-Child-Theme/assets/css/
 *  2. No breakpoint in this file. The PHP adds one small inline rule
 *     using Avada's Medium Screen breakpoint: the mobile header shows
 *     at or below it, and the header + menu are removed above it.
 * ---------------------------------------------------------------------
 * v1.1.1
 *  - Logos are never recolored, filtered or altered in any state.
 * v1.1.0
 *  - Mobile header styles (.nahse-mmh): transparent over the hero,
 *    frosted white with the blue logo after scroll / while open.
 * v1.0.1 audit
 *  - A closed drawer can never catch taps (pointer-events, visibility,
 *    inert, not just opacity).
 * ---------------------------------------------------------------------
 * Every rule is scoped to .nahse-mm / .nahse-mmh / .nahse-mm-toggle and
 * resets the properties Avada styles globally so nothing leaks in.
 * ===================================================================== */

.nahse-mm,
.nahse-mmh,
.nahse-mm-toggle {
	--nahse-mm-navy: #0a1433;
	--nahse-mm-blue: #003194;
	--nahse-mm-ink2: #4a5373;
	--nahse-mm-mute: #9aa3bd;
	--nahse-mm-line: #eceef4;
	--nahse-mm-tint: #eef1fb;
	--nahse-mm-warm: #f6f5f2;
	--nahse-mm-font: 'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--nahse-mm-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Toggle button ---------------------------------------- */
.nahse-mm-toggle {
	--nahse-mm-tg: #ffffff;
	--nahse-mm-tg-solid: #0a1433;
	all: unset;
	box-sizing: border-box;
	position: relative;
	z-index: 2;
	width: 40px;
	height: 40px;
	min-width: 40px;
	margin: 0;
	padding: 0;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .4);
	border-color: color-mix(in srgb, var(--nahse-mm-tg) 40%, transparent);
	background: none;
	color: var(--nahse-mm-tg);
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: color .3s, border-color .3s;
	vertical-align: middle;
}
.nahse-mm-toggle.is-solid,
html.nahse-mm-open .nahse-mm-toggle {
	color: var(--nahse-mm-tg-solid);
	border-color: rgba(10, 20, 51, .15);
	border-color: color-mix(in srgb, var(--nahse-mm-tg-solid) 15%, transparent);
}
.nahse-mm-toggle:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}
.nahse-mm-toggle__bar {
	display: block;
	width: 16px;
	height: 1.5px;
	margin: 0;
	padding: 0;
	border-radius: 1px;
	background: currentColor;
	transition: transform .25s var(--nahse-mm-ease);
}
.nahse-mm-toggle[aria-expanded="true"] .nahse-mm-toggle__bar--top {
	transform: translateY(2.75px) rotate(45deg);
}
.nahse-mm-toggle[aria-expanded="true"] .nahse-mm-toggle__bar--bot {
	transform: translateY(-2.75px) rotate(-45deg);
}

/* ---------- Mobile header (printed by the PHP) -------------------- */
/* Hidden by default; the inline rule from the PHP shows it at or below
 * Avada's Medium Screen breakpoint. Desktop can never get a second
 * header, even if the inline rule were stripped by an optimizer. */
.nahse-mmh {
	display: none;
	box-sizing: border-box;
	position: fixed;
	top: var(--nahse-mmh-top, 0px);
	right: 0;
	left: 0;
	z-index: 99980;
	margin: 0;
	padding: 0;
	padding-top: env(safe-area-inset-top, 0px);
	background: rgba(255, 255, 255, 0);
	box-shadow: none;
	color: #fff;
	font-family: var(--nahse-mm-font);
	transition: background-color .3s, box-shadow .3s;
}
.nahse-mmh__bar {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	max-width: 1375px;
	height: 88px;
	margin: 0 auto;
	padding: 0 24px;
}
.nahse-mmh .nahse-mmh__logo {
	position: relative;
	display: flex;
	align-items: center;
	flex: none;
	height: 54px;
	max-width: calc(100vw - 112px);
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	text-decoration: none;
	box-shadow: none;
}
.nahse-mmh .nahse-mmh__img {
	display: block;
	width: auto;
	height: 54px;
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	object-fit: contain;
	object-position: left center;
	transition: opacity .3s;
}
.nahse-mmh .nahse-mmh__img--dark {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}
.nahse-mmh .nahse-mmh__text {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2;
	color: inherit;
}

/* Solid: after 40px of scroll, or while the menu is open. */
html.nahse-mm-scrolled .nahse-mmh,
html.nahse-mm-open .nahse-mmh {
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 1px 0 rgba(10, 20, 51, .08);
	color: var(--nahse-mm-navy);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}
html.nahse-mm-open .nahse-mmh {
	background: rgba(255, 255, 255, .98);
}
html.nahse-mm-scrolled .nahse-mmh .nahse-mmh__img--light,
html.nahse-mm-open .nahse-mmh .nahse-mmh__img--light {
	opacity: 0;
}
html.nahse-mm-scrolled .nahse-mmh .nahse-mmh__img--dark,
html.nahse-mm-open .nahse-mmh .nahse-mmh__img--dark {
	opacity: 1;
}
/* No blue logo set: keep showing the white logo exactly as uploaded. */
html.nahse-mm-scrolled .nahse-mmh--no-dark .nahse-mmh__img--light,
html.nahse-mm-open .nahse-mmh--no-dark .nahse-mmh__img--light {
	opacity: 1;
}

@media (max-width: 480px) {
	.nahse-mmh__bar {
		padding: 0 20px;
		gap: 16px;
	}
	.nahse-mmh .nahse-mmh__logo,
	.nahse-mmh .nahse-mmh__img {
		height: 48px;
	}
}

/* ---------- Header goes solid while the drawer is open ------------ */
/* html.nahse-mm-open only exists while the menu is open. */
html.nahse-mm-open .fusion-tb-header {
	background-color: rgba(255, 255, 255, .97) !important;
	box-shadow: 0 1px 0 rgba(10, 20, 51, .08);
	transition: background-color .3s;
}

/* ---------- Optional logo swap (add as CSS Class on Avada elements) --
 * .nahse-mm-hide-when-open  hidden while the menu is open (white logo)
 * .nahse-mm-show-when-open  shown only while the menu is open (blue logo)
 * ------------------------------------------------------------------- */
.nahse-mm-show-when-open {
	display: none !important;
}
html.nahse-mm-open .nahse-mm-show-when-open {
	display: block !important;
}
html.nahse-mm-open .nahse-mm-hide-when-open {
	display: none !important;
}

/* ---------- Drawer ------------------------------------------------ */
.nahse-mm {
	box-sizing: border-box;
	position: fixed;
	top: var(--nahse-mm-top, 88px);
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 99990;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	background: #fff;
	color: var(--nahse-mm-navy);
	border-top: 1px solid var(--nahse-mm-line);
	font-family: var(--nahse-mm-font);
	text-align: left;
	/* Closed / closing: never clickable, never visible to taps. */
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-8px);
	transition: opacity .22s var(--nahse-mm-ease), transform .28s var(--nahse-mm-ease), visibility 0s linear .28s;
}
.nahse-mm[hidden],
.nahse-mm[inert]:not(.is-visible) {
	display: none !important;
	pointer-events: none !important;
}
.nahse-mm.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
	transition: opacity .22s var(--nahse-mm-ease), transform .28s var(--nahse-mm-ease), visibility 0s linear 0s;
}
.nahse-mm *,
.nahse-mm *::before,
.nahse-mm *::after {
	box-sizing: border-box;
}

.nahse-mm a,
.nahse-mm button {
	font-family: var(--nahse-mm-font);
	text-transform: none;
	text-decoration: none;
	text-shadow: none;
	box-shadow: none;
	-webkit-tap-highlight-color: transparent;
}
.nahse-mm a:focus-visible,
.nahse-mm button:focus-visible {
	outline: 2px solid var(--nahse-mm-blue);
	outline-offset: 2px;
}

.nahse-mm__nav {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 8px 24px 24px;
}

/* Top-level rows (link and accordion share the look) */
.nahse-mm .nahse-mm__link,
.nahse-mm .nahse-mm__acc {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: 18px 0;
	border: 0;
	border-bottom: 1px solid var(--nahse-mm-line);
	border-radius: 0;
	background: none;
	color: var(--nahse-mm-navy);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -.02em;
	text-align: left;
	cursor: pointer;
	transition: color .2s;
}
.nahse-mm .nahse-mm__link:hover,
.nahse-mm .nahse-mm__link[aria-current="page"],
.nahse-mm .nahse-mm__acc:hover {
	color: var(--nahse-mm-blue);
	background: none;
}
.nahse-mm .nahse-mm__link-label,
.nahse-mm .nahse-mm__acc-label {
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
	line-height: inherit;
}
.nahse-mm .nahse-mm__arrow {
	flex: none;
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
	color: var(--nahse-mm-mute);
	transition: transform .2s var(--nahse-mm-ease), color .2s;
}
.nahse-mm .nahse-mm__link:hover .nahse-mm__arrow,
.nahse-mm .nahse-mm__link[aria-current="page"] .nahse-mm__arrow {
	color: var(--nahse-mm-blue);
	transform: translateX(3px);
}

/* Plus / minus chip */
.nahse-mm .nahse-mm__acc-icon {
	position: relative;
	flex: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--nahse-mm-tint);
	color: var(--nahse-mm-blue);
}
.nahse-mm .nahse-mm__acc-icon > span {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 13px;
	height: 1.75px;
	margin: -0.875px 0 0 -6.5px;
	border-radius: 1px;
	background: currentColor;
	transition: transform .25s var(--nahse-mm-ease);
}
.nahse-mm .nahse-mm__acc-icon > span:last-child {
	transform: rotate(90deg);
}
.nahse-mm .nahse-mm__acc[aria-expanded="true"] .nahse-mm__acc-icon > span:last-child {
	transform: rotate(0deg);
}

/* Sub links */
.nahse-mm .nahse-mm__sub {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr));
	gap: 4px;
	margin: 0;
	padding: 12px 0 16px;
	border-bottom: 1px solid var(--nahse-mm-line);
}
.nahse-mm .nahse-mm__sub[hidden] {
	display: none;
}
.nahse-mm .nahse-mm__sublink {
	display: block;
	margin: 0;
	padding: 12px 14px;
	border-radius: 12px;
	background: none;
	color: var(--nahse-mm-navy);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: 0;
	transition: background-color .2s, color .2s;
}
.nahse-mm .nahse-mm__sublink:hover {
	background: var(--nahse-mm-warm);
	color: var(--nahse-mm-navy);
}
.nahse-mm .nahse-mm__sublink[aria-current="page"] {
	background: var(--nahse-mm-tint);
	color: var(--nahse-mm-blue);
}

/* Footer block */
.nahse-mm__foot {
	margin-top: auto;
	padding: 24px;
	padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
	display: flex;
	flex-direction: column;
	gap: 20px;
	background: var(--nahse-mm-warm);
}
.nahse-mm .nahse-mm__cta {
	display: block;
	margin: 0;
	padding: 16px;
	border: 0;
	border-radius: 999px;
	background: var(--nahse-mm-blue);
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0;
	text-align: center;
	transition: background-color .2s;
}
.nahse-mm .nahse-mm__cta:hover,
.nahse-mm .nahse-mm__cta:focus-visible {
	background: var(--nahse-mm-navy);
	color: #fff;
}
.nahse-mm__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}
.nahse-mm__org {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--nahse-mm-ink2);
}
.nahse-mm .nahse-mm__org-name {
	font-size: 14px;
	font-weight: 600;
	color: var(--nahse-mm-navy);
}
.nahse-mm .nahse-mm__org-addr {
	font-size: 14px;
	color: var(--nahse-mm-ink2);
}
.nahse-mm__social {
	display: flex;
	gap: 8px;
}
.nahse-mm .nahse-mm__social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border-radius: 50%;
	border: 1px solid #dde1ec;
	background: none;
	color: var(--nahse-mm-navy);
	transition: background-color .2s, color .2s, border-color .2s;
}
.nahse-mm .nahse-mm__social-link:hover {
	background: var(--nahse-mm-blue);
	border-color: var(--nahse-mm-blue);
	color: #fff;
}
.nahse-mm .nahse-mm__social-link svg {
	display: block;
	width: 18px;
	height: 18px;
	margin: 0;
	border: 0;
}

/* ---------- Small phones ------------------------------------------ */
@media (max-width: 480px) {
	.nahse-mm__nav {
		padding: 4px 20px 20px;
	}
	.nahse-mm .nahse-mm__link,
	.nahse-mm .nahse-mm__acc {
		padding: 16px 0;
		font-size: 23px;
	}
	.nahse-mm__foot {
		padding: 20px;
		padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	}
}

/* ---------- Reduced motion ---------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.nahse-mm,
	.nahse-mm *,
	.nahse-mmh,
	.nahse-mmh *,
	.nahse-mm-toggle,
	.nahse-mm-toggle__bar {
		transition: none !important;
	}
	.nahse-mm {
		transform: none;
	}
}

/* ---------- Print: never print the drawer ------------------------- */
@media print {
	.nahse-mm,
	.nahse-mmh,
	.nahse-mm-toggle {
		display: none !important;
	}
}
/* =====================================================================
 * END: assets/css/nahse-mobile-menu.css
 * ===================================================================== */
