:root {
    --font-base: "Roboto", sans-serif;
    --nav-font: var(--font-base);
    --heading-font: var(--font-base);
    --footer-bg: #2f5d50;
    --footer-fg: #ffffff;
    --footer-fg-muted: #ffffff;
    --footer-border: hsla(0, 0%, 100%, .22);
    --footer-accent: #659a2f;
}

/* BASE FOOTER - NOTHING CAN OVERRIDE */
footer.site-footer {
    background: var(--footer-bg) !important;
    color: var(--footer-fg) !important;
    font-family: var(--nav-font) !important;
    font-size: 14px !important;
    padding: 40px 24px 0 !important;
}

/* FORCE ALL TEXT IN FOOTER WHITE */
footer.site-footer * {
    color: var(--footer-fg) !important;
}

footer.site-footer .footer-container {
    align-items: start !important;
    display: grid !important;
    gap: 32px 52px !important;
    grid-template-columns: 1.5fr 1fr 1fr .9fr !important;
    margin: 0 auto !important;
    max-width: 1200px !important;
}

footer.site-footer .footer-links {
    display: contents !important;
}

footer.site-footer .footer-brand-title {
    font-family: var(--heading-font) !important;
    font-size: clamp(24px, 1.8vw, 28px) !important;
    font-weight: 900 !important;
    letter-spacing: .01em !important;
    line-height: 1.2 !important;
    margin: 0 0 14px !important;
}

footer.site-footer .footer-brand address {
    font-size: 14px !important;
    font-style: normal !important;
    line-height: 1.65 !important;
    margin: 0 !important;
}

footer.site-footer .footer-contact h3,
footer.site-footer .footer-nav h3,
footer.site-footer .footer-social h3 {
    border-bottom: 3px solid var(--footer-accent) !important;
    font-family: var(--heading-font) !important;
    font-size: 19px !important;
    font-weight: 900 !important;
    letter-spacing: .03em !important;
    line-height: 1.2 !important;
    margin: 0 0 16px !important;
    padding-bottom: 10px !important;
    text-transform: none !important;
}

footer.site-footer .footer-nav ul,
footer.site-footer .footer-social ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

footer.site-footer .footer-nav li+li,
footer.site-footer .footer-social li+li {
    margin-top: 10px !important;
}

footer.site-footer .footer-contact a,
footer.site-footer .footer-nav a,
footer.site-footer .footer-social a {
    font-size: 14px !important;
    line-height: 1.5 !important;
    text-decoration: none !important;
    text-underline-offset: 3px !important;
    transition: color .15s ease, text-decoration-color .15s ease, outline-color .15s ease !important;
}

footer.site-footer .footer-contact a:hover,
footer.site-footer .footer-nav a:hover,
footer.site-footer .footer-social a:hover {
    text-decoration: underline !important;
    text-decoration-color: var(--footer-accent) !important;
    text-decoration-thickness: 2px !important;
}

footer.site-footer .footer-contact a:focus-visible,
footer.site-footer .footer-nav a:focus-visible,
footer.site-footer .footer-social a:focus-visible {
    border-radius: 4px !important;
    outline: 2px solid var(--footer-accent) !important;
    outline-offset: 3px !important;
}

footer.site-footer .footer-contact p {
    font-size: 14px !important;
    line-height: 1.6 !important;
    margin: 0 0 16px !important;
}

footer.site-footer .footer-contact strong {
    font-weight: 700 !important;
}

footer.site-footer .footer-bottom {
    border-top: 1px solid var(--footer-border) !important;
    font-size: 13px !important;
    margin-top: 32px !important;
    padding: 16px 0 !important;
    text-align: center !important;
}

/* RESPONSIVE */
@media (max-width:980px) {
    footer.site-footer .footer-container {
        gap: 32px 40px !important;
        grid-template-columns: 1fr 1fr !important;
    }

    footer.site-footer .footer-brand {
        grid-column: 1/-1 !important;
        margin-bottom: 8px !important;
    }

    footer.site-footer .footer-contact,
    footer.site-footer .footer-nav,
    footer.site-footer .footer-social {
        align-self: start !important;
    }
}

@media (max-width:560px) {
    footer.site-footer {
        font-size: 14px !important;
        padding: 32px 20px 0 !important;
    }

    footer.site-footer .footer-container {
        gap: 28px !important;
        grid-template-columns: 1fr !important;
    }

    footer.site-footer .footer-brand-title {
        font-size: 22px !important;
        margin-bottom: 12px !important;
    }

    footer.site-footer .footer-contact h3,
    footer.site-footer .footer-nav h3,
    footer.site-footer .footer-social h3 {
        font-size: 18px !important;
        margin-bottom: 14px !important;
        padding-bottom: 8px !important;
    }

    footer.site-footer .footer-bottom {
        font-size: 12px !important;
        padding: 14px 0 !important;
    }
}

@media (prefers-reduced-motion:reduce) {

    footer.site-footer .footer-contact a,
    footer.site-footer .footer-nav a,
    footer.site-footer .footer-social a {
        transition: none !important;
    }
}