/* ==========================================================================
   Site header — compact premium white bar, grid-centered navigation,
   one strong primary CTA + a smaller secondary CTA, sticky shrink-on-scroll.
   ========================================================================== */

.ns-header {
	position: sticky;
	top: 0;
	z-index: var(--z-header);
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: saturate(140%) blur(8px);
	border-bottom: 1px solid var(--c-border-light);
	transition: height var(--dur-base) var(--ease-standard), box-shadow var(--dur-base) var(--ease-standard);
}
.ns-header.is-scrolled { box-shadow: var(--shadow-soft); }

.ns-header__row {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: var(--space-5);
	height: var(--header-height);
	transition: height var(--dur-base) var(--ease-standard);
	min-width: 0;
}
.ns-header__row > * { min-width: 0; }
.ns-header.is-scrolled .ns-header__row { height: var(--header-height-shrunk); }

.ns-brand {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	font-weight: var(--fw-black);
	font-size: var(--fs-h4);
	color: var(--c-navy-950);
	white-space: nowrap;
	min-width: 0;
}
.ns-brand span:not(.ns-brand__mark) { overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 480px) {
	.ns-brand span:not(.ns-brand__mark) { display: none; }
}
.ns-brand__mark {
	width: 40px; height: 40px;
	border-radius: var(--radius-sm);
	background: var(--c-navy-950);
	color: var(--c-amber-500);
	display: flex; align-items: center; justify-content: center;
	font-weight: var(--fw-black);
	flex-shrink: 0;
	transition: width var(--dur-base), height var(--dur-base);
}
.ns-header.is-scrolled .ns-brand__mark { width: 34px; height: 34px; }

.ns-nav {
	justify-self: center;
}
.ns-nav__list {
	display: flex;
	align-items: center;
	gap: var(--space-6);
}
.ns-nav__list a {
	font-weight: var(--fw-semibold);
	font-size: var(--fs-small);
	color: var(--c-ink-900);
	padding-block: var(--space-2);
	position: relative;
}
.ns-nav__list a::after {
	content: '';
	position: absolute;
	inset-inline: 0;
	bottom: -2px;
	height: 2px;
	background: var(--c-amber-500);
	transform: scaleX(0);
	transition: transform var(--dur-fast) var(--ease-standard);
}
.ns-nav__list a:hover::after,
.ns-nav__list a:focus-visible::after { transform: scaleX(1); }

.ns-header__ctas {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}
.ns-header__ctas .btn--primary { padding-block: var(--space-3); }
.ns-header__ctas .btn--secondary { padding: var(--space-2) var(--space-4); font-size: var(--fs-small); display: inline-flex; align-items: center; gap: var(--space-2); }
.ns-header__ctas .ns-cta-icon { display: none; }
@media (max-width: 600px) {
	.ns-header__ctas .btn span.ns-cta-label--full { display: none; }
	.ns-header__ctas .ns-cta-icon { display: inline; }
	.ns-header__ctas .btn--secondary { padding: var(--space-2) var(--space-3); }
	.ns-header__ctas .btn--primary { padding: var(--space-2) var(--space-4); font-size: var(--fs-small); }
	.ns-header__ctas { gap: var(--space-2); }
	.ns-header__row { gap: var(--space-2); }
}
@media (max-width: 360px) {
	.ns-header__ctas .btn--primary span:not([aria-hidden]) { font-size: 0.8125rem; }
}

.ns-nav-toggle {
	display: none;
	width: 44px; height: 44px;
	align-items: center; justify-content: center;
	border-radius: var(--radius-sm);
}
.ns-nav-toggle span,
.ns-nav-toggle span::before,
.ns-nav-toggle span::after {
	content: '';
	display: block;
	width: 22px; height: 2px;
	background: var(--c-navy-950);
	position: relative;
	transition: transform var(--dur-fast) var(--ease-standard), opacity var(--dur-fast) var(--ease-standard);
}
.ns-nav-toggle span::before { position: absolute; top: -7px; }
.ns-nav-toggle span::after { position: absolute; top: 7px; }
.ns-nav-toggle[aria-expanded="true"] span { background: transparent; }
.ns-nav-toggle[aria-expanded="true"] span::before { transform: translateY(7px) rotate(45deg); }
.ns-nav-toggle[aria-expanded="true"] span::after { transform: translateY(-7px) rotate(-45deg); }

/* ---- Mobile ---- */
@media (max-width: 1024px) {
	.ns-nav { display: none; }
	.ns-nav-toggle { display: inline-flex; }

	.ns-mobile-nav {
		position: fixed;
		inset: 0;
		z-index: var(--z-mobile-nav);
		background: var(--c-navy-950);
		color: var(--c-ink-on-dark);
		display: flex;
		flex-direction: column;
		padding: var(--space-6) var(--container-pad);
		transform: translateX(100%);
		transition: transform var(--dur-base) var(--ease-standard);
	}
	[dir="rtl"] .ns-mobile-nav { transform: translateX(100%); }
	.ns-mobile-nav.is-open { transform: translateX(0); }

	.ns-mobile-nav__close { align-self: flex-end; width: 44px; height: 44px; color: var(--c-ink-on-dark); font-size: 1.5rem; }
	.ns-mobile-nav__list { display: flex; flex-direction: column; gap: var(--space-2); margin-top: var(--space-6); }
	.ns-mobile-nav__list a { display: block; padding: var(--space-4) 0; font-size: var(--fs-h4); font-weight: var(--fw-bold); border-bottom: 1px solid var(--c-border-dark); }
	.ns-mobile-nav__ctas { margin-top: auto; display: flex; flex-direction: column; gap: var(--space-3); padding-top: var(--space-6); }
}

@media (min-width: 1025px) {
	.ns-mobile-nav, .ns-nav-toggle { display: none; }
}

/* ---- Mobile bottom conversion bar ---- */
.ns-mobile-bar {
	display: none;
	position: fixed;
	bottom: 0; inset-inline: 0;
	z-index: var(--z-mobile-bar);
	background: var(--c-navy-950);
	border-top: 1px solid var(--c-border-dark);
	padding: var(--space-2) var(--space-3);
	padding-bottom: max(var(--space-2), env(safe-area-inset-bottom));
}
.ns-mobile-bar__row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--space-2); }
.ns-mobile-bar a {
	display: flex; flex-direction: column; align-items: center; gap: 2px;
	color: var(--c-ink-on-dark);
	font-size: 0.6875rem;
	font-weight: var(--fw-semibold);
	padding-block: var(--space-2);
	border-radius: var(--radius-sm);
}
.ns-mobile-bar a.is-primary { background: var(--c-amber-500); color: var(--c-white); }
@media (max-width: 680px) {
	.ns-mobile-bar { display: block; }
	body { padding-bottom: 64px; }
}
