/* ============================================================
   SITE HEADER
   ============================================================ */
.site-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: var(--z-sticky);
	padding-block: var(--space-4);
	transition: background-color var(--transition-base),
	            backdrop-filter var(--transition-base),
	            padding var(--transition-base),
	            border-color var(--transition-base);
	border-bottom: 1px solid transparent;
}

.site-header.header--scrolled {
	background-color: var(--color-charcoal-90);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	padding-block: var(--space-3);
	border-bottom-color: var(--color-border);
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-6);
}

/* ── Logo ──────────────────────────────────────────────────── */
.site-logo {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	background: transparent;
	border: none;
	box-shadow: none;
}

/* Stacked lockup — image on top, "SASO / PRODUCTIONS" text below */
.logo-lockup,
.logo-lockup--stacked {
	background: transparent;
	border: none;
	box-shadow: none;
}
.logo-lockup--stacked {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-1);
}

/*
 * PNG monogram — gold "CS" on a dark textured square.
 * `mix-blend-mode: screen` drops the dark background (black → transparent)
 * so only the gold mark shows over the dark header/footer — no dark box.
 * No border / box-shadow / background framing it.
 */
.logo-monogram-img {
	height: 55px;
	width: auto;
	display: block;
	border: none;
	background: transparent !important;
	box-shadow: none;
	padding: 0;
	mix-blend-mode: screen;
	image-rendering: -webkit-optimize-contrast; /* crisp on retina */
}

.logo-text {
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1.05;
	text-align: center;
}
.logo-brand {
	font-family: var(--font-sans);
	font-size: var(--text-sm);
	font-weight: 700;
	letter-spacing: 0.18em;
	font-variant-caps: small-caps;
	text-transform: uppercase;
	color: var(--color-cream);
}
.logo-sub {
	font-family: var(--font-sans);
	font-size: 0.625rem;          /* ~10px */
	font-weight: 400;
	letter-spacing: 0.22em;
	font-variant-caps: small-caps;
	text-transform: uppercase;
	color: var(--color-cream);
	opacity: 0.75;
}

/* ── Primary Nav ──────────────────────────────────────────── */
.primary-nav { flex: 1; display: flex; justify-content: center; }
.nav-list {
	display: flex;
	align-items: center;
	gap: var(--space-1);
	flex-wrap: wrap;
}

/*
 * Nav links: full cream (#F4EFE7) so they're clearly legible over the
 * dark hero video.  Gold underline slides in on hover / active.
 */
.nav-link {
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--color-cream);        /* ← was cream-70 (too faint) */
	padding: var(--space-2) var(--space-3);
	border-radius: var(--radius-sm);
	transition: color var(--transition-fast);
	position: relative;
	white-space: nowrap;
}
.nav-link::after {
	content: '';
	position: absolute;
	bottom: 2px; left: var(--space-3); right: var(--space-3);
	height: 1px;
	background: var(--color-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--transition-base);
}
.nav-link:hover,
.nav-link--active { color: var(--color-gold); }   /* gold on hover */
.nav-link:hover::after,
.nav-link--active::after { transform: scaleX(1); }
.nav-link:focus-visible { outline: 2px solid var(--color-gold); outline-offset: 2px; }

/* ── Header controls (lang + hamburger) ───────────────────── */
.header-controls {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	flex-shrink: 0;
}

/* ── Hamburger ─────────────────────────────────────────────── */
.hamburger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 10px;
	cursor: pointer;
}
.hamburger-line {
	display: block;
	width: 22px;
	height: 1.5px;
	background: var(--color-cream);
	border-radius: 2px;
	transition: transform var(--transition-base), opacity var(--transition-base);
	transform-origin: center;
}
.hamburger--open .hamburger-line:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.hamburger--open .hamburger-line:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger--open .hamburger-line:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* ── Mobile nav ────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.hamburger { display: flex; }

	/*
	 * Header must sit ABOVE the full-screen nav panel (z-index 45) so
	 * the logo and the × close button are always visible and clickable.
	 */
	.site-header { z-index: 50; }

	.primary-nav {
		display: none;
		position: fixed;
		inset: 0;
		background: var(--color-charcoal);
		flex-direction: column;
		justify-content: center;
		align-items: center;
		z-index: 45;        /* below header (50) — logo + × always on top */
		padding-top: 90px;  /* clear the fixed header so links aren't obscured */
		border-top: 1px solid var(--color-border);
	}
	.primary-nav.nav--open { display: flex; }

	.nav-list {
		flex-direction: column;
		align-items: center;
		gap: var(--space-2);
	}
	.nav-link {
		font-size: var(--text-base);
		letter-spacing: 0.2em;
		padding: var(--space-3) var(--space-6);
	}
}

/* ── Mobile logo: ~45px mark, stacked text below, hamburger far right ── */
@media (max-width: 768px) {
	.header-inner { align-items: center; }
	.site-logo { justify-content: flex-start; }
	.logo-monogram-img { height: 45px; }
	/* Keep the lockup compact and left-aligned on small screens */
	.logo-lockup--stacked { align-items: center; gap: 2px; }
}
