.site-footer {
    --footer-brand: #990000;
    --footer-brand-hover: #730000;
    --footer-text: #777;
    --footer-gap: 24px;
    --frame-color: var(--footer-text);
    --frame-link-color: var(--footer-brand);
    --frame-link-hover-color: var(--footer-brand-hover);
    padding: var(--footer-gap) 0;
    background: #f5f5f5;
    color: var(--footer-text);
    font: 400 18px/1.4 "Helvetica Neue", Helvetica, Verdana, sans-serif;
}

.site-footer-container {
    display: grid;
    gap: var(--footer-gap);
    width: calc(100% - 40px);
    max-width: 1140px;
    margin-inline: auto;
}

.site-footer .frame {
    padding-block: 0;
}

#page-footer.site-footer .frame-container {
    width: auto;
    max-width: none;
    padding-inline: 0;
}

.site-footer a:where(:not(.btn)) {
    color: var(--footer-brand);
    text-decoration: none;
}

.site-footer a:where(:not(.btn)):hover {
    color: var(--footer-brand-hover);
    text-decoration: underline;
}

.site-footer-introduction .textmedia {
    gap: var(--footer-gap);
}

.site-footer-introduction .textmedia-gallery {
    max-width: 261px;
    margin-bottom: 0;
}

.site-footer-introduction picture {
    display: block;
}

.site-footer-introduction img {
    display: block;
    max-width: 100%;
    height: auto;
}

.site-footer-columns {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--footer-gap);
}

.site-footer .frame-header {
    margin-bottom: var(--footer-gap);
}

.site-footer h2 {
    margin: 0;
    font: 600 18px/1.2 "Helvetica Neue", Helvetica, Verdana, sans-serif;
    text-transform: uppercase;
}

.site-footer address {
    font-style: normal;
}

.site-footer ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer li {
    margin: 0;
}

.site-footer-legal {
    font-size: 16px;
}

.site-footer-legal ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px var(--footer-gap);
}

@media (max-width: 991px) {
    .site-footer-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .site-footer-container {
        width: calc(100% - 30px);
    }

    .site-footer-columns {
        grid-template-columns: 1fr;
    }
}
