/*
 * Site footer.
 *
 * Dark ground, so every colour here is an on-dark token. This is also where
 * the link colour has to be stated explicitly: theme.json paints links with
 * `primary`, which is near-black in the monochrome palette, and inheriting it
 * on a #0A0A0A ground rendered the whole footer at a 1.05:1 contrast ratio.
 */

.site-footer {
	padding-block: var(--wp--custom--section--padding-tight) var(--wp--preset--spacing--10);
}

.site-footer__inner {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--16);
}

/* --- Top: brand + link columns ---------------------------------------- */

.site-footer__top {
	display: grid;
	/* The brand block earns more room than a list of links. */
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 2.6fr);
	gap: var(--wp--preset--spacing--16);
	align-items: start;
}

@media (max-width: 1100px) {
	.site-footer__top {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--12);
	}
}

.site-footer__brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--4);
	max-width: 40ch;
}

.site-footer__logo {
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 800;
	letter-spacing: -0.03em;
	text-decoration: none;
	color: var(--wp--preset--color--base);
	transition: opacity var(--wp--custom--duration--fast) var(--wp--custom--ease--out);
}

.site-footer__logo:hover {
	opacity: 0.7;
	color: var(--wp--preset--color--base);
}

.site-footer__tagline {
	margin: 0;
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.6;
	color: var(--wp--preset--color--on-dark-muted);
}

.site-footer__contact {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--2);
	min-height: 44px;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	text-decoration: none;
	color: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--wp--custom--border--on-dark);
	transition: border-color var(--wp--custom--duration--fast) var(--wp--custom--ease--out);
}

.site-footer__contact:hover {
	border-bottom-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--base);
}

.site-footer__contact .btn-arrow {
	transition: transform var(--wp--custom--duration--fast) var(--wp--custom--ease--out);
}

.site-footer__contact:hover .btn-arrow {
	transform: translateX(4px);
}

/* --- Link columns ------------------------------------------------------ */

.site-footer__nav {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--8);
}

@media (max-width: 600px) {
	.site-footer__nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--6);
	}
}

.site-footer__heading {
	margin: 0 0 var(--wp--preset--spacing--4);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--on-dark-muted);
}

.site-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}

.site-footer__list a {
	display: flex;
	align-items: center;
	min-height: 40px;
	font-size: var(--wp--preset--font-size--sm);
	text-decoration: none;
	/* Explicit: see the file header. */
	color: rgba(255, 255, 255, 0.72);
	transition: color var(--wp--custom--duration--fast) var(--wp--custom--ease--out);
}

.site-footer__list a:hover,
.site-footer__list a:focus-visible {
	color: var(--wp--preset--color--base);
}

/* --- Bottom bar --------------------------------------------------------- */

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--4) var(--wp--preset--spacing--8);
	padding-top: var(--wp--preset--spacing--8);
	border-top: 1px solid var(--wp--custom--border--on-dark);
}

.site-footer__copy {
	margin: 0;
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--on-dark-muted);
	font-variant-numeric: tabular-nums;
}

/* Payment methods as wordmarks, not imitation card logos. */
.site-footer__pay {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--2);
}

.site-footer__pay li {
	padding: 5px 10px;
	border: 1px solid var(--wp--custom--border--on-dark);
	border-radius: var(--wp--custom--radius--sm);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--on-dark-muted);
}

.site-footer__legal {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--2) var(--wp--preset--spacing--5);
}

.site-footer__legal a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	font-size: var(--wp--preset--font-size--xs);
	text-decoration: none;
	color: rgba(255, 255, 255, 0.62);
	transition: color var(--wp--custom--duration--fast) var(--wp--custom--ease--out);
}

.site-footer__legal a:hover,
.site-footer__legal a:focus-visible {
	color: var(--wp--preset--color--base);
}

@media (max-width: 781px) {
	.site-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
	}

	/* The wordmark is a link home; give it a thumb-sized box like the rest. */
	.site-footer__logo {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}
