/**
 * Shared site layout.
 *
 * Header and footer rules remain intentionally small until those components
 * are migrated in their own steps.
 */

.foredoom-container {
	width: min(calc(100% - (var(--foredoom-gutter) * 2)), var(--foredoom-content-width));
	margin-inline: auto;
}

.foredoom-section {
	padding-block: var(--foredoom-section-space);
}

.site-main {
	min-height: 50vh;
}

.skip-link {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 100000;
	padding: 10px 16px;
	color: var(--foredoom-color-navy);
	background: var(--foredoom-color-white);
	transform: translateY(-200%);
}

.skip-link:focus {
	transform: translateY(0);
}

.error-404 {
	display: grid;
	place-items: center;
	min-height: calc(100vh - 184px);
	padding-block: 140px;
	color: var(--foredoom-color-white);
	background: var(--foredoom-color-navy);
}

.error-404__inner {
	width: 100%;
}

.error-404__code {
	margin: 0 0 20px;
	color: var(--foredoom-color-yellow);
	font-family: var(--foredoom-font-heading);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.error-404__title {
	margin: 0 0 24px;
	color: inherit;
	font-size: clamp(42px, 6vw, 78px);
	line-height: 1.15;
}

.error-404__message {
	margin: 0 0 48px;
	color: rgba(255, 255, 255, 0.75);
	font-size: 17px;
}

.error-404__link {
	display: inline-flex;
	align-items: center;
	min-height: 52px;
	padding-inline: 28px;
	color: var(--foredoom-color-navy);
	font-weight: 700;
	background: var(--foredoom-color-yellow);
}

.error-404__link:hover {
	color: var(--foredoom-color-white);
	background: transparent;
	box-shadow: inset 0 0 0 1px var(--foredoom-color-yellow);
}

@media (max-width: 1024px) {
	.foredoom-section {
		padding-block: var(--foredoom-section-space-tablet);
	}
}

@media (max-width: 767px) {
	:root {
		--foredoom-gutter: 16px;
	}

	.foredoom-section {
		padding-block: var(--foredoom-section-space-mobile);
	}

	.error-404 {
		min-height: calc(100vh - 140px);
		padding-block: 96px;
	}
}
