.site-footer {
    padding: 3rem 1rem;
    background: var(--color-light-grey);
    color: var(--color-black);
    border-start-start-radius: 25px;
    border-start-end-radius: 25px;
}

.site-footer > .container-xxl {
    --bs-gutter-x: 0;
    max-width: 1664px;
}

.site-footer .newsletter .title {
    text-align: center;
    margin-block-end: 2rem;
}

.site-footer .site-info {
    padding-block-start: 3rem;
    margin-block-start: 5rem;
    border-block-start: 1px solid var(--color-dark-grey);
}

.site-footer .site-info a {
    position: relative;
    padding-block: .25rem;
}

.site-footer .site-info a::after {
    content: "";
    position: absolute;
    width: 100%;
    height: .125rem;
    inset-block-end: 0;
    inset-inline-start: 0;
    background: var(--color-primary);
    transform: scaleX(0);
    transform-origin: 100% 50%;
    transition: transform 350ms cubic-bezier(.24, .28, .63, 1);
}

.site-footer .site-info a:focus {
    outline: none;
}

.site-footer .site-info a:hover::after,
.site-footer .site-info a:focus::after {
    transform: scaleX(1);
    transform-origin: 0 50%;
}

.site-footer .contact-info {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.site-footer .contact-info > * {
    margin: 0;
    color: inherit;
    text-decoration: none;
    padding-block: .25rem;
}

.site-footer .footer-menu {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
    text-align: center;
}

.site-footer .footer-menu a {
    color: var(--color-black);
    text-decoration: none;
}

.site-footer .some-info {
    display: flex;
    justify-content: center;
    gap: 2rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.site-footer .some-item {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    transition: background-color .15s ease-in-out;
}

.site-footer .some-item img {
    width: 1.5rem;
    height: 1.5rem;
}

@media (min-width: 576px) {
    .site-footer .contact-info {
        align-items: flex-start;
    }

    .site-footer .footer-menu {
        display: flex;
        align-items: center;
        margin-inline-end: 2rem;
        margin-block-end: 0;
    }
}

@media (min-width: 992px) {
    .site-footer {
        padding-block: 5rem 3rem;
    }

    .site-footer .site-info {
        padding-inline: 2rem;
    }

    .site-footer .contact-info {
        flex-direction: row;
        gap: 2rem;
    }
}

@media (min-width: 1200px) {
    .site-footer {
        padding-inline: 2rem;
    }

    .site-footer .newsletter .title {
        font-size: 3rem;
        margin-block-end: 4rem;
    }
}

@media (min-width: 1400px) {
    .site-footer {
        padding-inline: 0;
    }

    .site-footer > .container-xxl {
        --bs-gutter-x: 4rem;
    }
}