/* ==========================================================================
   LUX&GO — Site Footer
   ========================================================================== */

.site-footer {
    width: 100%;
    padding-top: clamp(35px, 3vw, 48px);
    padding-bottom: clamp(25px, 2.2vw, 34px);
    background-color: var(--color-obsidian);
    color: var(--color-white);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

/* Columns ---------------------------------------------------------------- */

.site-footer__main {
    display: grid;
    grid-template-columns: 2.3fr 1.2fr 1.25fr 1.1fr 1.15fr 1px 1.5fr;
    column-gap: clamp(14px, 1.7vw, 36px);
}

.site-footer__brand {
    display: inline-flex;
    font-family: var(--font-heading);
    font-weight: var(--fw-semibold);
    font-size: clamp(1.125rem, 1rem + 0.35vw, 1.375rem);
    letter-spacing: 0.01em;
    color: var(--color-white);
}

/* The same mark as the navbar, at the size the footer has room for. */
.site-footer__brand .lux-mark__rule {
    display: inline-flex;
    align-items: baseline;
    padding: 0.3em 0.62em;
    border: 1.5px solid var(--color-lux-blue);
    border-radius: 2px;
    line-height: 1;
}

.site-footer__brand .lux-mark__word {
    font-family: var(--font-mark);
    font-weight: var(--fw-bold);
    letter-spacing: 0.05em;
}

/* In the logo the ampersand is not Outfit's — Poppins draws the same straight
   leg and flat cut. It is set at about 55% of the cap height, a shade lighter
   than the letters, floats a fifth of the cap height clear of the baseline, and
   is pulled a little tighter than the letters on either side. */
.site-footer__brand .lux-mark__amp {
    display: inline-block;
    font-family: var(--font-mark-amp);
    font-size: 0.54em;
    font-weight: var(--fw-semibold);
    position: relative;
    top: -0.235em;
}

.site-footer__brand:focus-visible {
    outline: 2px solid var(--color-lux-blue);
    outline-offset: 4px;
    border-radius: var(--radius-sm);
}

.site-footer__tagline {
    margin-top: 12px;
    font-family: var(--font-mark);
    font-weight: var(--fw-light);
    font-size: clamp(0.5625rem, 0.53rem + 0.1vw, 0.6875rem);
    letter-spacing: 0.34em;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--color-muted-gray);
}

/* Social marks sit under the brand, as circular outlines. */
.site-footer__socials {
    display: flex;
    gap: 10px;
    margin-top: clamp(16px, 1.4vw, 22px);
}

.site-footer__social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    transition: border-color var(--transition-base);
}

.site-footer__social:hover {
    border-color: var(--color-lux-blue);
}

.site-footer__social:focus-visible {
    outline: 2px solid var(--color-lux-blue);
    outline-offset: 3px;
}

.site-footer__divider {
    background-color: rgba(255, 255, 255, 0.12);
}

.site-footer__heading {
    font-family: var(--font-body);
    font-weight: var(--fw-semibold);
    font-size: clamp(0.625rem, 0.6rem + 0.08vw, 0.75rem);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-off-white);
}

.site-footer__list {
    margin-top: 12px;
}

.site-footer__link {
    font-family: var(--font-body);
    font-weight: var(--fw-regular);
    font-size: clamp(0.6875rem, 0.66rem + 0.08vw, 0.8125rem);
    line-height: 1.8;
    color: var(--color-muted-gray);
    transition: color var(--transition-base);
}

.site-footer__link:hover {
    color: var(--color-white);
}

.site-footer__link:focus-visible {
    outline: 2px solid var(--color-lux-blue);
    outline-offset: 3px;
    border-radius: var(--radius-sm);
}

/* Bottom bar ------------------------------------------------------------------ */

.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: clamp(20px, 1.8vw, 30px);
    padding-top: clamp(14px, 1.2vw, 20px);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    font-family: var(--font-body);
    font-size: clamp(0.625rem, 0.61rem + 0.05vw, 0.6875rem);
    color: var(--color-muted-gray);
}

@media (prefers-reduced-motion: reduce) {
    .site-footer__link,
    .site-footer__social {
        transition: none;
    }
}

/* Tablet and mobile ------------------------------------------------------------- */

/*
   The seven desktop tracks collapse to a two-column register: brand across the
   top, the four link groups paired, then contact across the foot. Desktop rules
   above this line are untouched.
*/
@media (max-width: 1023px) {
    .site-footer__main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: clamp(20px, 4vw, 40px);
        row-gap: clamp(26px, 4vw, 38px);
    }

    .site-footer__brand-col,
    .site-footer__main > :last-child {
        grid-column: 1 / -1;
    }

    .site-footer__col {
        min-width: 0;
    }

    /* The hairline column has no place in a stacked layout. */
    .site-footer__divider {
        display: none;
    }

    .site-footer__link {
        overflow-wrap: anywhere;
    }
}

/* Tablet: the four link groups still fit on one row. */
@media (min-width: 768px) and (max-width: 1023px) {
    .site-footer__main {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Mobile ------------------------------------------------------------------------ */

@media (max-width: 767px) {
    .site-footer__brand {
        font-size: 1.25rem;
    }

    .site-footer__link {
        font-size: 0.875rem;
        line-height: 1.9;
    }

    .site-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }
}
