.footer {
	width: 100%;
	margin-top: auto;
	padding-top: var(--space-xl);
	background-color: var(--color-bg);
}

.footer::before {
	content: "";
	display: block;
	height: 2px;
	background: linear-gradient(
		to right,
		var(--color-bg) 0%,
		var(--color-primary) 50%,
		var(--color-bg) 100%
	);
}

.footer_position-wrapper {
	width: 100%;
	max-width: var(--shell-max-width);
	margin-inline: auto;
	padding-inline: var(--space-lg);
	padding-block: var(--space-xl);
}

.footer_bar {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--space-xl);
	align-items: start;
}

.footer_brand {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
	max-width: 18rem;
}

.footer_brand-tagline {
	font-size: 0.875rem;
	line-height: 1.5;
}

.footer_brand-tagline-lead {
	color: var(--color-text-muted);
	opacity: 0.65;
}

.footer_brand-tagline-emphasis {
	color: var(--color-primary);
}

.footer_columns {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: var(--space-lg);
}

.footer_column-label {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color-text);
}

.footer_link-list {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
	margin-top: var(--space-md);
}

.footer_link {
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--color-text-muted);
	transition: color 150ms ease;
}

.footer_link:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

@media (max-width: 450px) {
	.footer_bar {
		grid-template-columns: 1fr;
		row-gap: var(--space-xl);
	}

	.footer_columns {
		grid-template-columns: 1fr;
		row-gap: var(--space-lg);
	}
}
