.site-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding: var(--space-4) var(--space-4);
	font-family: var(--font-serif);
	z-index: 20;
}

.site-header__logo {
	font-size: 1.25rem;
	font-weight: 500;
	color: var(--color-heading);
	letter-spacing: 0.02em;
	text-decoration: none;
	line-height: 1.1;
	white-space: nowrap;
}

.site-header__logo:hover {
	text-decoration: none;
	opacity: 0.7;
}

.site-header__nav {
	flex: 1;
	display: flex;
	justify-content: center;
}

.site-header__nav ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--space-4) var(--space-5);
}

.site-header__nav-link {
	font-size: 0.9375rem;
	font-weight: 400;
	color: inherit;
	text-decoration: none;
	letter-spacing: 0.01em;
}

.site-header__nav-link:hover,
.site-header__nav-link:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.site-header__cta {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-4);
	background-color: var(--color-heading);
	color: var(--color-bg-light);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}

.site-header__cta:hover,
.site-header__cta:focus-visible {
	text-decoration: none;
	opacity: 0.8;
}

.site-header__cta-arrow {
	display: block;
	flex-shrink: 0;
}

.header-solid .site-header {
	position: relative;
	color: var(--color-heading);
}

.header-overlay .site-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	color: var(--color-bg-light);
}

.header-overlay .site-header__logo {
	color: var(--color-bg-light);
}

.header-overlay .site-header__cta {
	background-color: var(--color-bg-light);
	color: var(--color-heading);
}

@media (max-width: 768px) {
	.site-header {
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.site-header__nav {
		order: 3;
		flex-basis: 100%;
		justify-content: flex-start;
	}

	.site-header__nav ul {
		justify-content: flex-start;
		gap: var(--space-3) var(--space-4);
	}
}
