/* Footer rhythm + grid treatment.
 * The footer sits on the site's pure-white --surface token. Structure comes
 * from the same dark ruled frame used by the site's grid-theme sections.
 * Every grid cell owns the same inset, while dividers run edge to edge through
 * the enclosing frame so the footer reads as one composed system rather than
 * a set of independently spaced blocks. */
.site-footer {
	background-color: var(--surface);
	border-block-start: thin solid var(--mega-media-border);
	padding-block: var(--s-8);
}

.site-footer__grid {
	gap: 0;
	border: thin solid var(--mega-media-border);
}

.site-footer__grid > * {
	padding: var(--s-6);
}

.site-footer__grid > * + * {
	border-block-start: thin solid var(--mega-media-border);
}

/* Keep the newsletter content aligned with the rest of the brand cell, but
 * let its separator escape that inset so the rule closes against both sides
 * of the outer grid frame. */
.site-footer__brand .site-footer__forms {
	position: relative;
	margin-block-start: var(--s-6);
	padding-block-start: var(--s-6);
	border-block-start: 0;
}

.site-footer__brand .site-footer__forms::before {
	content: "";
	position: absolute;
	inset-block-start: 0;
	inset-inline: calc(var(--s-6) * -1);
	border-block-start: thin solid var(--mega-media-border);
}

.site-footer__brand .site-footer__forms > * {
	margin-block-start: 0;
}

.site-footer__bar {
	margin-block-start: 0;
	padding-inline: var(--s-6);
	border: thin solid var(--mega-media-border);
	border-block-start: 0;
}

@media (min-width: 768px) {
	.site-footer__grid > * {
		padding: var(--s-7);
	}

	.site-footer__grid > * + * {
		border-block-start: 0;
		border-inline-start: thin solid var(--mega-media-border);
	}

	.site-footer__brand .site-footer__forms::before {
		inset-inline: calc(var(--s-7) * -1);
	}

	.site-footer__bar {
		padding-inline: var(--s-7);
	}
}
