/* =============================================================================
   Nyshia — Header
   Everything is scoped to .nys-scope. Resets use :where() so a plain
   class+tag selector from the theme can never out-specify a component rule.
   No @keyframes anywhere: optimisation plugins strip them silently.
   ========================================================================== */

.nys-scope {
	--nys-bar-w: 85%;
	--nys-bar-max: 1632px;
	--nys-bar-h: 140px;
	--nys-bar-h-scrolled: 96px;

	--nys-offset: 50px;
	--nys-offset-scrolled: 16px;
	--nys-z: 9999;

	--nys-pad-l: 46.5px;
	--nys-pad-r: 46px;
	--nys-gap-l: 120px;
	--nys-gap-r: 100px;
	--nys-gap-min: 10px;
	--nys-logo-gap: 24px;
	--nys-menu-nudge: 0px;

	--nys-logo-w: 184px;
	--nys-logo-h: 184px;
	--nys-logo-w-scrolled: 126px;
	--nys-logo-h-scrolled: 126px;

	--nys-blur: 18px;
	--nys-sat: 165%;
	--nys-blur-scrolled: 18px;

	--nys-ink: #171717;
	--nys-ink-hover: #0e0e0e;
	--nys-accent: #7ac143;

	--nys-fs: 20px;

	--nys-ul-w: 100%;
	--nys-ul-h: 2px;
	--nys-ul-offset: 10px;
	--nys-ul-radius: 2px;

	--nys-speed: 0.35s;
	--nys-ease: cubic-bezier(0.22, 0.61, 0.36, 1);

	--nys-sub-bg: #f7f7f7;
	--nys-sub-border: #e5e5e5;
	--nys-sub-row-border: #e9e9e9;
	--nys-sub-color: #333333;
	--nys-sub-hover-bg: rgba(0, 0, 0, 0.05);
	--nys-sub-hover-color: #171717;
	--nys-sub-width: 320px;
	--nys-sub-gap: 18px;
	--nys-sub-fs: 17px;
	--nys-sub-x: 0px;
	--nys-caret-size: 8px;
	--nys-caret-weight: 2px;
	--nys-caret-gap: 10px;
	--nys-panel-gap: 26px;
}

:where(.nys-scope) *,
:where(.nys-scope) *::before,
:where(.nys-scope) *::after {
	box-sizing: border-box;
}

:where(.nys-scope) ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

:where(.nys-scope) li {
	margin: 0;
	padding: 0;
	list-style: none;
}

:where(.nys-scope) a {
	text-decoration: none;
	box-shadow: none;
}

:where(.nys-scope) img {
	max-width: 100%;
	height: auto;
	display: block;
}

/* -----------------------------------------------------------------------------
   Shell
   -------------------------------------------------------------------------- */

.nys-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: var(--nys-z);
	padding-top: var(--nys-offset);
	pointer-events: none;
	transition: padding-top var(--nys-speed) var(--nys-ease);
}

.nys-header.is-scrolled {
	padding-top: var(--nys-offset-scrolled);
}

.nys-header--sticky {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
}

.nys-header--static {
	position: relative;
	top: auto;
}

/* Inside the Elementor canvas the bar must sit in flow so it never covers
   the editing panel or swallows clicks on other elements. */
.nys-header--editor {
	position: relative !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	z-index: 1 !important;
}

/* -----------------------------------------------------------------------------
   Bar
   -------------------------------------------------------------------------- */

.nys-bar {
	position: relative;
	z-index: 2;
	overflow: visible; /* the logo badge is meant to break out of this box */
	width: var(--nys-bar-w);
	max-width: var(--nys-bar-max);
	height: var(--nys-bar-h);
	margin: 0 auto;
	pointer-events: auto;

	border: 1px solid #d7d7d7;
	border-radius: 16px;
	background-color: rgba(240, 240, 240, 0.3);
	-webkit-backdrop-filter: blur(var(--nys-blur)) saturate(var(--nys-sat));
	backdrop-filter: blur(var(--nys-blur)) saturate(var(--nys-sat));
	box-shadow: 0 10px 40px rgba(23, 23, 23, 0.08);

	transition: height var(--nys-speed) var(--nys-ease),
		background-color var(--nys-speed) var(--nys-ease),
		border-color var(--nys-speed) var(--nys-ease),
		box-shadow var(--nys-speed) var(--nys-ease),
		-webkit-backdrop-filter var(--nys-speed) var(--nys-ease),
		backdrop-filter var(--nys-speed) var(--nys-ease);
}

.nys-header--shrink.is-scrolled .nys-bar {
	height: var(--nys-bar-h-scrolled);
}

.nys-header.is-scrolled .nys-bar {
	-webkit-backdrop-filter: blur(var(--nys-blur-scrolled)) saturate(var(--nys-sat));
	backdrop-filter: blur(var(--nys-blur-scrolled)) saturate(var(--nys-sat));
}

/* Safari <9 / Firefox with backdrop-filter disabled: fall back to a solid
   frosted panel instead of an unreadable transparent strip. */
@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))) {
	.nys-bar {
		background-color: rgba(246, 246, 246, 0.94);
	}
}

/* -----------------------------------------------------------------------------
   Menus
   -------------------------------------------------------------------------- */

/* Each menu is boxed into the space beside the logo, and the spacing between
   items lives in shrinkable spacer elements rather than in `gap`. A `gap` is a
   fixed length, so with long labels the items simply slid under the logo. A
   flex spacer with `flex: 0 1 <design gap>` sits at the design value whenever
   there is room and gives space back when there isn't, which makes the layout
   independent of how long the client's menu labels are. */
.nys-menu {
	position: absolute;
	top: 50%;
	display: flex;
	align-items: center;
	margin-top: var(--nys-menu-nudge);
	transform: translateY(-50%);
}

/* Spacers absorb pressure first (huge shrink factor); only once they are at
   their floor do the labels themselves start to truncate. A clipped label with
   an ellipsis tells the client their menu text is too long — sliding it under
   the logo told them nothing. */
.nys-menu > li {
	flex: 0 1 auto;
	min-width: 0;
}

.nys-menu > .nys-gap {
	flex: 0 999 var(--nys-gap-l);
	min-width: var(--nys-gap-min, 10px);
}

.nys-menu--right > .nys-gap {
	flex-basis: var(--nys-gap-r);
}

.nys-menu--left {
	left: var(--nys-pad-l);
	right: calc(50% + (var(--nys-logo-reserve, 0px) / 2) + var(--nys-logo-clear, 0px));
	justify-content: flex-start;
}

.nys-menu--right {
	left: calc(50% + (var(--nys-logo-reserve, 0px) / 2) + var(--nys-logo-clear, 0px));
	right: var(--nys-pad-r);
	justify-content: flex-end;
}

/* Only reserve the centre column when a logo is actually sitting there. */
.nys-header--centre-logo {
	--nys-logo-reserve: var(--nys-logo-w);
	--nys-logo-clear: var(--nys-logo-gap, 24px);
}

.nys-link {
	position: relative;
	display: inline-block;
	font-family: inherit;
	font-size: var(--nys-fs, 20px);
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
	text-transform: capitalize;
	max-width: 100%;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--nys-ink);
	transition: color 0.25s var(--nys-ease), opacity 0.25s var(--nys-ease);
}

.nys-link {
	padding-bottom: calc(var(--nys-ul-offset) + var(--nys-ul-h));
	margin-bottom: calc(-1 * (var(--nys-ul-offset) + var(--nys-ul-h)));
}

/* 1px of slack on bar links. The spacers take almost all of the shrink, but
   the items still give up a fraction of a pixel, and text-overflow fires on
   any overflow at all — so a label that fits was getting an ellipsis. */
.nys-menu .nys-link {
	max-width: calc(100% + 1px);
}

.nys-link::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: var(--nys-ul-w);
	height: var(--nys-ul-h);
	border-radius: var(--nys-ul-radius);
	background-color: var(--nys-accent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.3s var(--nys-ease), opacity 0.3s var(--nys-ease);
}

.nys-link:hover,
.nys-link:focus-visible {
	color: var(--nys-ink-hover);
}

.nys-link:hover::after,
.nys-link:focus-visible::after,
.nys-link.is-active::after {
	transform: scaleX(1);
}

.nys-link.is-active {
	font-weight: 700;
}

/* Underline reveal variants */
.nys-ul--center .nys-link::after {
	transform-origin: center center;
}

.nys-ul--fade .nys-link::after {
	transform: scaleX(1);
	opacity: 0;
}

.nys-ul--fade .nys-link:hover::after,
.nys-ul--fade .nys-link:focus-visible::after,
.nys-ul--fade .nys-link.is-active::after {
	opacity: 1;
}

.nys-ul--none .nys-link::after,
.nys-ul--off .nys-link::after {
	display: none;
}

.nys-ul--off .nys-link.is-active {
	opacity: 1;
}

/* -----------------------------------------------------------------------------
   Dropdown submenu (e.g. "Counseling Services")
   Lives on the bar's own items; the mobile-panel copy is restyled further
   down since it has to sit inline (accordion) instead of floating.
   -------------------------------------------------------------------------- */

.nys-item {
	position: relative;
}

.nys-link--parent {
	cursor: pointer;
}

/* Arrow on the bar's parent items. ::before is free here (::after is the
   underline). Sized off the link's own font so it scales with the text. */
.nys-menu .nys-link--parent {
	padding-right: calc(var(--nys-caret-size) + var(--nys-caret-gap));
}

.nys-menu .nys-link--parent::before {
	content: "";
	position: absolute;
	right: 2px;
	top: 0.5em;
	width: var(--nys-caret-size);
	height: var(--nys-caret-size);
	border-right: var(--nys-caret-weight) solid currentColor;
	border-bottom: var(--nys-caret-weight) solid currentColor;
	transform: translateY(-70%) rotate(45deg);
	transition: transform 0.25s var(--nys-ease);
	pointer-events: none;
}

.nys-menu .nys-item.has-dropdown.nys-dd-open > .nys-link--parent::before,
.nys-menu .nys-item.has-dropdown:focus-within > .nys-link--parent::before {
	transform: translateY(-30%) rotate(-135deg);
}

.nys-caret-hide .nys-menu .nys-link--parent {
	padding-right: 0;
}

.nys-caret-hide .nys-menu .nys-link--parent::before {
	display: none;
}

/* Invisible bridge across the gap between the label and the floating box.
   Without it the pointer leaves the item on its way down and the submenu
   closes before it can be reached. Only present while the item is open. */
.nys-menu .nys-item.has-dropdown::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	height: calc(var(--nys-sub-gap) + 6px);
	display: none;
}

.nys-menu .nys-item.has-dropdown.nys-dd-open::after,
.nys-menu .nys-item.has-dropdown:focus-within::after {
	display: block;
}

.nys-submenu {
	position: absolute;
	top: calc(100% + var(--nys-sub-gap));
	left: 0;
	right: auto;
	margin: 0;
	min-width: var(--nys-sub-width);
	background-color: var(--nys-sub-bg);
	border: 1px solid var(--nys-sub-border);
	border-radius: 10px;
	box-shadow: 0 14px 32px rgba(23, 23, 23, 0.12);
	opacity: 0;
	visibility: hidden;
	transform: translate(var(--nys-sub-x), 8px);
	transition: opacity 0.25s var(--nys-ease), transform 0.25s var(--nys-ease),
		visibility 0.25s var(--nys-ease);
	z-index: 10;
	overflow: hidden;
}

/* Auto alignment: the left menu opens to the right, the right menu opens to
   the left, so the box never runs past the edge of the bar. */
.nys-menu--right .nys-submenu {
	left: auto;
	right: 0;
}

.nys-sub-align-left .nys-menu .nys-submenu {
	left: 0;
	right: auto;
}

.nys-sub-align-right .nys-menu .nys-submenu {
	left: auto;
	right: 0;
}

.nys-sub-align-center .nys-menu .nys-submenu {
	left: 50%;
	right: auto;
	--nys-sub-x: -50%;
}

.nys-sublink {
	display: block;
	padding: 16px 24px;
	border-bottom: 1px solid var(--nys-sub-row-border);
	font-size: var(--nys-sub-fs);
	line-height: 1.3;
	white-space: nowrap;
	color: var(--nys-sub-color);
	transition: background-color 0.2s var(--nys-ease), color 0.2s var(--nys-ease);
}

.nys-submenu li:last-child > .nys-sublink {
	border-bottom: none;
}

.nys-sublink:hover,
.nys-sublink:focus-visible,
.nys-sublink.is-active {
	background-color: var(--nys-sub-hover-bg);
	color: var(--nys-sub-hover-color);
}

.nys-scope .nys-sublink:focus-visible {
	outline-offset: -2px;
	border-radius: 0;
}

/* Click-to-open works on every device; hover-to-open is added only where
   the pointer actually supports hover, so a tap never gets stuck "open".
   focus-within covers keyboard users tabbing through the bar. */
.nys-item.has-dropdown.nys-dd-open > .nys-submenu,
.nys-menu .nys-item.has-dropdown:focus-within > .nys-submenu {
	opacity: 1;
	visibility: visible;
	transform: translate(var(--nys-sub-x), 0);
}

@media (hover: hover) {
	.nys-menu .nys-item.has-dropdown:hover > .nys-submenu {
		opacity: 1;
		visibility: visible;
		transform: translate(var(--nys-sub-x), 0);
	}

	.nys-menu .nys-item.has-dropdown:hover::after {
		display: block;
	}

	.nys-menu .nys-item.has-dropdown:hover > .nys-link--parent::before {
		transform: translateY(-30%) rotate(-135deg);
	}
}

/* -----------------------------------------------------------------------------
   Logo
   -------------------------------------------------------------------------- */

.nys-logo {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 3; /* paints over the bar's own border line */
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--nys-logo-w);
	height: var(--nys-logo-h);
	transform: translate(-50%, -50%);
	transition: width var(--nys-speed) var(--nys-ease),
		height var(--nys-speed) var(--nys-ease),
		opacity 0.25s var(--nys-ease);
}

.nys-header--shrink.is-scrolled .nys-logo {
	width: var(--nys-logo-w-scrolled);
	height: var(--nys-logo-h-scrolled);
}

.nys-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.nys-logo:hover {
	opacity: 0.88;
}

.nys-logo-text {
	font-size: 28px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	color: var(--nys-ink);
}

.nys-logo--left {
	left: var(--nys-pad-l);
	transform: translate(0, -50%);
}

.nys-logo--right {
	left: auto;
	right: var(--nys-pad-r);
	transform: translate(0, -50%);
}

/* -----------------------------------------------------------------------------
   CTA
   -------------------------------------------------------------------------- */

.nys-cta {
	position: absolute;
	top: 50%;
	right: var(--nys-pad-r);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 28px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	color: #ffffff;
	background-color: var(--nys-accent);
	transform: translateY(-50%);
	transition: background-color 0.25s var(--nys-ease), color 0.25s var(--nys-ease),
		border-color 0.25s var(--nys-ease), transform 0.25s var(--nys-ease);
}

.nys-cta:hover {
	transform: translateY(-50%) translateY(-2px);
}

.nys-has-cta .nys-menu--right {
	right: calc(var(--nys-pad-r) + var(--nys-cta-space, 200px));
}

/* the spacer is decoration; it must never be read out or focused */
.nys-menu > .nys-gap {
	pointer-events: none;
}

/* The panel copy of the button is a normal block, not an absolute one. */
.nys-panel-cta {
	position: static;
	display: block;
	margin: 12px 24px 20px;
	text-align: center;
	transform: none;
}

.nys-panel-cta:hover {
	transform: none;
}

/* -----------------------------------------------------------------------------
   Burger
   -------------------------------------------------------------------------- */

.nys-burger {
	position: absolute;
	top: 50%;
	right: 24px;
	display: none;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid #d7d7d7;
	border-radius: 10px;
	background-color: rgba(255, 255, 255, 0.35);
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color 0.25s var(--nys-ease), border-color 0.25s var(--nys-ease);
}

.nys-burger span {
	position: absolute;
	left: 50%;
	width: 20px;
	height: 2px;
	margin-left: -10px;
	border-radius: 2px;
	background-color: var(--nys-ink);
	transition: transform 0.3s var(--nys-ease), opacity 0.2s linear,
		background-color 0.25s var(--nys-ease);
}

.nys-burger span:nth-child(1) {
	top: 34%;
}

.nys-burger span:nth-child(2) {
	top: 50%;
}

.nys-burger span:nth-child(3) {
	top: 66%;
}

.nys-burger[aria-expanded="true"] span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.nys-burger[aria-expanded="true"] span:nth-child(2) {
	opacity: 0;
}

.nys-burger[aria-expanded="true"] span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* -----------------------------------------------------------------------------
   Mobile panel
   -------------------------------------------------------------------------- */

.nys-panel {
	position: relative;
	z-index: 1;
	width: var(--nys-bar-w);
	max-width: var(--nys-bar-max);
	margin: var(--nys-panel-gap) auto 0;
	pointer-events: auto;
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	border: 1px solid transparent;
	border-radius: 16px;
	background-color: rgba(240, 240, 240, 0.55);
	-webkit-backdrop-filter: blur(var(--nys-blur)) saturate(var(--nys-sat));
	backdrop-filter: blur(var(--nys-blur)) saturate(var(--nys-sat));
	transition: max-height 0.38s var(--nys-ease), opacity 0.28s linear,
		border-color 0.28s linear, box-shadow 0.28s linear;
}

/* The open panel is capped to what is left of the screen below the bar and
   scrolls inside itself. A fixed cap either clipped the last items once a
   dropdown was expanded, or pushed the panel off the bottom of the screen. */
.nys-panel.is-open {
	--nys-panel-room: calc(var(--nys-offset) + var(--nys-bar-h) + var(--nys-panel-gap) + 16px);
	max-height: calc(100vh - var(--nys-panel-room));
	max-height: calc(100dvh - var(--nys-panel-room));
	opacity: 1;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	border-color: #d7d7d7;
	box-shadow: 0 14px 44px rgba(23, 23, 23, 0.14);
}

.nys-header.is-scrolled .nys-panel.is-open {
	--nys-panel-room: calc(var(--nys-offset-scrolled) + var(--nys-bar-h) + var(--nys-panel-gap) + 16px);
}

.nys-header--shrink.is-scrolled .nys-panel.is-open {
	--nys-panel-room: calc(var(--nys-offset-scrolled) + var(--nys-bar-h-scrolled) + var(--nys-panel-gap) + 16px);
}

.nys-panel ul {
	padding: 8px 0;
}

.nys-panel li + li {
	border-top: 1px solid rgba(215, 215, 215, 0.7);
}

.nys-panel .nys-link {
	display: block;
	padding: 16px 24px;
	font-size: 18px;
}

.nys-panel .nys-link::after {
	left: 24px;
	bottom: 10px;
	width: 28px;
}

/* Dropdown items inside the mobile panel behave like an inline accordion
   instead of a floating box, with a small chevron so it reads as expandable. */
.nys-panel .nys-link--parent {
	position: relative;
	padding-right: 48px;
}

.nys-panel .nys-link--parent::before {
	content: "";
	position: absolute;
	right: 24px;
	top: 50%;
	width: 8px;
	height: 8px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-65%) rotate(45deg);
	transition: transform 0.25s var(--nys-ease);
	pointer-events: none;
}

.nys-panel .nys-item.has-dropdown.nys-dd-open > .nys-link--parent::before {
	transform: translateY(-35%) rotate(-135deg);
}

.nys-panel .nys-submenu {
	position: static;
	opacity: 1;
	visibility: visible;
	transform: none;
	width: 100%;
	min-width: 0;
	margin-top: 0;
	border: none;
	border-radius: 0;
	box-shadow: none;
	background-color: rgba(0, 0, 0, 0.02);
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s var(--nys-ease);
}

.nys-panel .nys-item.has-dropdown.nys-dd-open > .nys-submenu {
	max-height: 800px;
}

.nys-panel .nys-sublink {
	padding: 14px 24px 14px 40px;
	font-size: var(--nys-panel-sub-fs, 16px);
	white-space: normal;
	border-bottom-color: rgba(215, 215, 215, 0.7);
}

/* The panel's generic "li + li" divider is for the top-level list only —
   the submenu draws its own row dividers via .nys-sublink already. */
.nys-panel .nys-submenu li + li {
	border-top: none;
}

/* -----------------------------------------------------------------------------
   Focus
   -------------------------------------------------------------------------- */

.nys-scope a:focus-visible,
.nys-scope button:focus-visible {
	outline: 2px solid var(--nys-accent);
	outline-offset: 6px;
	border-radius: 3px;
}

/* -----------------------------------------------------------------------------
   Colour schemes (prefix_class: nys-scheme-). !important is required because
   these presets have to beat the individual colour controls when chosen.
   -------------------------------------------------------------------------- */

.nys-scheme-light .nys-bar {
	background-color: rgba(240, 240, 240, 0.3) !important;
	border-color: #d7d7d7 !important;
}

.nys-scheme-frost .nys-bar {
	background-color: rgba(255, 255, 255, 0.55) !important;
	border-color: rgba(255, 255, 255, 0.75) !important;
	--nys-blur: 28px !important;
	--nys-blur-scrolled: 28px !important;
}

.nys-scheme-dark .nys-bar {
	background-color: rgba(18, 18, 18, 0.38) !important;
	border-color: rgba(255, 255, 255, 0.18) !important;
}

.nys-scheme-dark .nys-link,
.nys-scheme-dark .nys-logo-text,
.nys-scheme-ink .nys-link,
.nys-scheme-ink .nys-logo-text {
	color: #ffffff !important;
}

.nys-scheme-dark .nys-burger span,
.nys-scheme-ink .nys-burger span {
	background-color: #ffffff !important;
}

.nys-scheme-solid .nys-bar {
	background-color: #ffffff !important;
	border-color: #e8e8e8 !important;
	--nys-blur: 0px !important;
	--nys-blur-scrolled: 0px !important;
}

.nys-scheme-ink .nys-bar {
	background-color: #171717 !important;
	border-color: #2a2a2a !important;
	--nys-blur: 0px !important;
	--nys-blur-scrolled: 0px !important;
}

.nys-scheme-clear .nys-bar {
	background-color: transparent !important;
	border-color: transparent !important;
	box-shadow: none !important;
	--nys-blur: 0px !important;
	--nys-blur-scrolled: 0px !important;
}

/* -----------------------------------------------------------------------------
   Default mobile switch. Each widget also prints its own breakpoint pair
   inline, which loads later and therefore wins when it differs from 1024.
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
	.nys-menu {
		display: none;
	}

	.nys-burger {
		display: block;
	}

	.nys-logo {
		left: var(--nys-pad-l);
		width: var(--nys-logo-w-mobile, 115px);
		height: var(--nys-logo-h-mobile, 115px);
		transform: translate(0, -50%);
	}

	.nys-logo--mobile-center {
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.nys-cta {
		display: none;
	}
}

/* Reduced motion: slow everything down rather than stopping it, so the header
   never appears frozen mid-transition. */
@media (prefers-reduced-motion: reduce) {
	.nys-scope .nys-header,
	.nys-scope .nys-bar,
	.nys-scope .nys-logo,
	.nys-scope .nys-link,
	.nys-scope .nys-link::after,
	.nys-scope .nys-panel,
	.nys-scope .nys-burger span {
		transition-duration: 0.6s !important;
	}
}
