/* header.css — Section 6 (HEADER SPECIFICATION) of MASTER_PROJECT.md
 *
 * Values below marked "confirmed" come directly from the spec doc.
 * Values marked "TODO" have no source yet (no Figma access, no assets) —
 * placeholders only, must be corrected once Figma numbers are available.
 */

.site-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 1000; /* TODO: confirm stacking order against popup/mobile menu once those exist */

	background: transparent; /* confirmed: 6.3 Initial State */
	border: none;
	box-shadow: none;
	backdrop-filter: none;

	transition: background-color 250ms ease; /* confirmed: 6.4 */
}

.site-header.is-scrolled {
	/* confirmed: 6.4 Scrolled State — triggers ~80px, only background changes */
	background-color: rgba(3, 3, 5, 0.95); /* #030305 @ 95% opacity */
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between; /* confirmed: logo pushed left, everything else grouped right */
	/* TODO: container max-width, height, and horizontal padding not given — placeholder values below */
	max-width: 1280px;
	margin: 0 auto;
	height: 80px;
	padding: 0 24px;
}

/* Nav + phone + CTA grouped together on the right — fixed from an earlier
 * bug where these 3 were direct children of .site-header__inner and
 * justify-content:space-between spread all 5 items evenly apart instead
 * of grouping them, putting a large gap between the phone number and the
 * CTA button that Figma shows sitting close together. */
.site-header__right {
	display: flex;
	align-items: center;
	gap: 32px; /* TODO: confirm against Figma */
}

.site-header__logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

.site-header__logo-img {
	height: 56px; /* TODO: confirm against Figma — the supplied logo file has generous built-in padding */
	width: auto;
	display: block;
}

.site-header__logo-text {
	/* text fallback, only shown if logo-white.png is missing */
	font-family: var(--font-primary);
	font-weight: 700;
	font-size: 22px;
	color: var(--color-white);
	letter-spacing: 0.02em;
}

.site-header__nav {
	/* confirmed: hidden on mobile, hamburger takes over — breakpoint per Part 9 responsive image spec (768px) */
}

.site-header__nav-list {
	display: flex;
	align-items: center;
	gap: 32px; /* TODO: exact nav item spacing not given */
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header__nav-link {
	font-family: var(--font-primary);
	font-size: 15px; /* TODO: confirm against Figma */
	font-weight: 500; /* TODO: confirm against Figma */
	color: var(--color-white);
	text-decoration: none;
	transition: color 200ms ease; /* confirmed: 6.7 */
}

.site-header__nav-link:hover,
.site-header__nav-link:focus-visible,
.site-header__nav-link.is-active {
	color: var(--color-accent); /* confirmed: 6.7 hover = Accent Blue */
}

/* .site-header__cta uses the shared .btn-primary class (global.css) for
 * its actual look — see header.php. No component-specific override needed. */

.site-header__phone {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-primary);
	font-size: 14px; /* TODO: confirm against Figma */
	color: var(--color-white);
	text-decoration: none;
	white-space: nowrap;
}

.site-header__phone-icon {
	color: var(--color-accent);
}

.site-header__burger {
	display: none; /* shown on mobile via responsive.css */
	width: 32px;
	height: 24px;
	flex-direction: column;
	justify-content: space-between;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
}

.site-header__burger span {
	display: block;
	width: 100%;
	height: 2px;
	background-color: var(--color-white);
	transition: transform 250ms ease, opacity 250ms ease;
}

/* Mobile slide-in menu — confirmed: 6.9, slide from right, 300ms, full height, dark bg */
.mobile-menu {
	position: fixed;
	top: 0;
	right: 0;
	width: 100%;
	max-width: 360px; /* TODO: confirm against Figma */
	height: 100vh;
	background-color: var(--color-bg);
	transform: translateX(100%);
	transition: transform 300ms ease;
	z-index: 1100;
	display: flex;
	flex-direction: column;
	padding: 32px 24px; /* TODO: confirm "comfortable spacing" exact value against Figma */
}

.mobile-menu.is-open {
	transform: translateX(0);
}

.mobile-menu__overlay {
	position: fixed;
	inset: 0;
	background-color: rgba(3, 3, 5, 0.6); /* TODO: confirm overlay darkness against Figma */
	z-index: 1090;
}

.mobile-menu__overlay[hidden] {
	display: none;
}

.mobile-menu__close {
	align-self: flex-end;
	background: none;
	border: none;
	color: var(--color-white);
	font-size: 32px;
	line-height: 1;
	cursor: pointer;
	opacity: 1;
	transform: scale(1);
	transition: opacity 250ms ease, transform 250ms ease; /* confirmed: Icon Hover, 250ms, scale max 1.05 */
}

.mobile-menu__close:hover {
	opacity: 0.8;
	transform: scale(1.05);
}

.mobile-menu__nav-list {
	list-style: none;
	margin: 32px 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 24px; /* TODO: confirm "large touch targets / comfortable spacing" exact value */
}

.mobile-menu__nav-link {
	font-family: var(--font-primary);
	font-size: 20px; /* TODO: confirm against Figma */
	font-weight: 600;
	color: var(--color-white);
	text-decoration: none;
}

.mobile-menu__meta {
	margin-top: auto;
	display: flex;
	flex-direction: column;
	gap: 12px;
	color: var(--color-text-muted);
	font-family: var(--font-primary);
	font-size: 14px;
}

.mobile-menu__phone,
.mobile-menu__telegram {
	color: var(--color-white);
	text-decoration: none;
}

/* Focus states — confirmed: 6.13 Accessibility. Handled by the blanket
 * a:focus-visible/button:focus-visible rule in global.css now. */
