/**
 * Header layout styles
 * Primary nav left, wordmark centred, utility nav right.
 */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--color-background);
	border-bottom: var(--border-width) solid var(--color-border);
}

.site-header__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: var(--space-4);
	max-width: var(--container-2xl);
	margin: 0 auto;
	padding: var(--space-4) var(--space-6);
}

/* --- Wordmark --- */

.site-header__brand {
	justify-self: center;
	font-family: var(--font-heading);
	font-size: var(--text-sm);
	font-weight: var(--weight-semibold);
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--color-heading);
	white-space: nowrap;
}

.site-header__brand a {
	text-decoration: none;
	color: inherit;
}

.site-header__brand img,
.site-header__brand .custom-logo {
	max-height: 1.75rem;
	width: auto;
}

/* --- Navigation --- */

.site-nav__list {
	display: flex;
	align-items: center;
	gap: var(--space-6);
	margin: 0;
}

.site-nav a {
	font-family: var(--font-mono);
	font-size: var(--text-2xs);
	letter-spacing: var(--tracking-wider);
	text-transform: uppercase;
	text-decoration: none;
	color: var(--color-heading);
	white-space: nowrap;
	transition: color var(--transition-fast);
}

.site-nav a:hover {
	color: var(--color-primary-hover);
	text-decoration: underline;
	text-underline-offset: 0.4em;
}

.site-nav .current-menu-item > a {
	text-decoration: underline;
	text-underline-offset: 0.4em;
}

.site-nav--utility .site-nav__list {
	justify-content: flex-end;
}

/* --- Mobile toggle --- */

.site-header__toggle {
	display: none;
	font-family: var(--font-mono);
	font-size: var(--text-2xs);
	letter-spacing: var(--tracking-wider);
	text-transform: uppercase;
	color: var(--color-heading);
	padding: var(--space-1) 0;
}

@media (max-width: 60rem) {
	.site-header__inner {
		padding-inline: var(--space-5);
	}

	.site-header__toggle {
		display: inline-block;
		justify-self: start;
	}

	.site-nav--primary {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		display: none;
		padding: var(--space-5);
		background: var(--color-background);
		border-bottom: var(--border-width) solid var(--color-border);
	}

	.site-nav--primary.is-open {
		display: block;
	}

	.site-nav--primary .site-nav__list {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--space-4);
	}
}

@media (max-width: 40rem) {
	.site-nav--utility .site-nav__list {
		gap: var(--space-4);
	}

	/* Keep the cart visible, drop the rest. */
	.site-nav--utility .menu-item:not(:last-child) {
		display: none;
	}
}
