/* Site footer. Figma: Home 1:117, 796px tall at 1920. */

.site-footer {
	margin-top: clamp(60px, 6.25vw, 120px);
	padding-top: clamp(40px, 2.97vw, 57px);
	border-top: 1px solid var(--c-line-3);
}

/* When the last section is dark or full-bleed the footer should sit flush. */
.site-main:has(> .section.is-dark:last-child) + .site-footer { margin-top: 0; }

.site-footer__cols {
	display: grid;
	grid-template-columns: 34.06% 34% 1fr; /* column starts at 16 / 659 / 1301 */
	min-height: clamp(0px, 17.6vw, 338px);
}

.site-footer__heading {
	font-size: var(--fs-body-lg);
	line-height: 1;
	letter-spacing: 0.024em;
	text-transform: uppercase;
}

.site-footer__text {
	margin: clamp(18px, 1.56vw, 30px) 0 0;
	padding: 0;
	list-style: none;
	color: var(--c-ink-2);
	font-size: var(--fs-body-lg);
	font-style: normal;
	line-height: 1.43;
	letter-spacing: -0.023em;
}

.site-footer__text--about { max-width: 25em; }
.site-footer__contact { line-height: 1.62; }
.site-footer__text a:hover { color: var(--c-ink); }

.site-footer__bar {
	display: grid;
	grid-template-columns: 34.06% 34% 1fr;
	align-items: start;
	padding-bottom: clamp(20px, 1.82vw, 35px);
	border-bottom: 1px solid var(--c-line-3);
	font-size: var(--fs-body-lg);
	line-height: 1.1;
	letter-spacing: -0.023em;
}

.site-footer__bar p { margin: 0; }
.site-footer__top { justify-self: start; }
.site-footer__top:hover { opacity: 0.6; }
.site-footer__copy { color: var(--c-ink-2); }

.site-footer__credit span {
	display: block;
	color: var(--c-ink-2);
}

.site-footer__credit a:hover { text-decoration: underline; text-underline-offset: 0.18em; }

/* Giant name: two words pushed to the container edges. main.js shrinks the
   font-size if custom words would overflow. */
.site-footer__wordmark {
	display: flex;
	justify-content: space-between;
	gap: 0.2em;
	margin: clamp(4px, 0.52vw, 10px) 0 0;
	padding-bottom: clamp(14px, 2.08vw, 40px);
	font-size: min(15.625vw, 300px); /* 300 at 1920 */
	line-height: 0.9;
	letter-spacing: 0.006em;
	text-transform: uppercase;
	white-space: nowrap;
	user-select: none;
}

/* Floating button ----------------------------------------------------------- */
.back-to-top {
	position: fixed;
	right: clamp(16px, 1.875vw, 36px);
	bottom: clamp(16px, 1.875vw, 36px);
	z-index: 40;
	display: grid;
	place-items: center;
	width: clamp(48px, 3.33vw, 64px);
	height: clamp(48px, 3.33vw, 64px);
	background: #111111;
	color: #ffffff;
	border-radius: 50%;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity 0.35s var(--ease), transform 0.35s var(--ease), visibility 0.35s;
}

.back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.back-to-top:hover { transform: translateY(-3px); }
.back-to-top .icon { width: 22px; height: 22px; }

@media (max-width: 1024px) {
	.site-footer__cols {
		grid-template-columns: 1fr 1fr;
		gap: 40px 24px;
		min-height: 0;
		margin-bottom: 56px;
	}

	.site-footer__col:first-child { grid-column: 1 / -1; }
	.site-footer__bar { grid-template-columns: 1fr 1fr; gap: 20px 24px; }
	.site-footer__top { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
	.site-footer__cols,
	.site-footer__bar { grid-template-columns: 1fr; }
	.site-footer__cols { gap: 32px; }
}
