.site-footer {
    --site-footer-panel-min-height: clamp(28rem, 64svh, 40rem);
    position: relative;
    z-index: 1;
    overflow: hidden;
    background: var(--color-page);
    color: var(--color-text);
}

.site-footer__motion,
.site-footer__inner {
    min-height: var(--site-footer-panel-min-height);
}

.site-footer__motion {
    will-change: transform;
}

.site-footer__inner {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: var(--page-inline);
    padding-block-end: max(var(--page-inline), env(safe-area-inset-bottom));
    background: var(--color-page);
}

.site-footer__top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-lg);
    align-items: start;
}

.site-footer__contact {
    display: grid;
    justify-items: start;
    gap: var(--space-md);
}

.site-footer__prompt {
    font-size: var(--text-section-title);
}

.site-footer__navigation {
    display: grid;
    justify-items: end;
    gap: var(--space-sm);
    text-align: right;
}

.site-footer__navigation-list {
    display: grid;
    justify-items: end;
    gap: var(--space-xs);
}

.site-footer__link {
    color: var(--color-heading);
    text-decoration: none;
}

.site-footer__brand-lockup {
    display: grid;
    justify-items: center;
    margin-top: auto;
    padding-top: clamp(2rem, 6svh, 4rem);
    gap: var(--space-sm);
    text-align: center;
}

.site-footer__brand {
    width: 100%;
    max-width: none;
    color: var(--color-heading);
    text-align: center;
}

.site-footer__credit {
    color: var(--color-graphite);
    line-height: 1.35;
    text-align: center;
}

@media (max-width: 47.9375rem) {
    .site-footer__brand {
        max-width: 100%;
        font-size: clamp(1.875rem, 10.25vw, 5rem);
        line-height: 0.9;
        white-space: nowrap;
    }
}

@media (max-width: 39.9375rem) {
    .site-footer {
        --site-footer-panel-min-height: clamp(27rem, 66svh, 34rem);
    }

    .site-footer__inner {
        padding: var(--space-md);
        padding-block-end: max(var(--space-md), env(safe-area-inset-bottom));
    }

    .site-footer__top {
        gap: var(--space-md);
        align-items: start;
    }

    .site-footer__contact {
        gap: var(--space-sm);
    }

    .site-footer__brand-lockup {
        padding-top: var(--space-lg);
    }
}

@media (max-width: 22.5rem) {
    .site-footer__top {
        gap: var(--space-sm);
    }

    .site-footer__navigation {
        gap: var(--space-xs);
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-footer__motion {
        transform: none;
        will-change: auto;
    }
}
