/*
 * EUROSPACE footer v6.5
 *
 * Desktop:
 *   внутренняя ширина footer = 80% viewport, по центру.
 *
 * Mobile:
 *   компактный accordion.
 */

/* =========================================================
   DESKTOP
   ========================================================= */

@media (min-width: 1181px) {
    .es-footer-v64 .container {
        width: 80% !important;
        max-width: none !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    .es-footer-v64__grid {
        display: grid !important;
        grid-template-columns:
            minmax(0, .86fr)
            minmax(0, 1.02fr)
            minmax(0, .72fr)
            minmax(0, 1.60fr) !important;

        column-gap: clamp(32px, 3vw, 58px) !important;
        row-gap: 0 !important;

        align-items: start !important;
        padding: 28px 0 14px !important;
    }

    .es-footer-v64__section {
        min-width: 0 !important;
    }

    .es-footer-v64__summary {
        padding: 0 !important;
        margin: 0 !important;
    }

    .es-footer-v64__summary-title {
        font-size: clamp(16px, .95vw, 19px) !important;
        line-height: 1.15 !important;
    }

    .es-footer-v64__content {
        margin-top: 16px !important;
        padding: 0 !important;
    }

    .es-footer-v64__links {
        gap: 10px !important;
    }

    .es-footer-v64__links a {
        font-size: clamp(13px, .78vw, 15px) !important;
        line-height: 1.28 !important;
    }

    .es-footer-v64__phone-row {
        grid-template-columns:
            repeat(2, minmax(0, max-content)) !important;
        gap: 12px 22px !important;
        margin-bottom: 14px !important;
    }

    .es-footer-v64__phone {
        font-size: clamp(14px, .88vw, 17px) !important;
    }

    .es-footer-v64__email {
        margin-bottom: 14px !important;
        font-size: clamp(13px, .80vw, 15px) !important;
    }

    .es-footer-v64__addresses {
        gap: 11px !important;
    }

    .es-footer-v64__address {
        grid-template-columns: 20px minmax(0, 1fr) !important;
        gap: 9px !important;
        font-size: clamp(12px, .72vw, 14px) !important;
        line-height: 1.28 !important;
    }

    .es-footer-v64__address svg,
    .es-footer-v64__contact-line img,
    .es-footer-v64__contact-line svg {
        width: 20px !important;
        height: 20px !important;
        flex-basis: 20px !important;
    }

    .es-footer-v64__bottom {
        min-height: 48px !important;
        padding: 8px 0 14px !important;
    }

    .es-footer-v64__socials {
        gap: 18px !important;
    }

    .es-footer-v64__socials a,
    .es-footer-v64__socials svg,
    .es-footer-v64__socials img {
        width: 25px !important;
        height: 25px !important;
    }
}

/* =========================================================
   SMALL DESKTOP / TABLET
   ========================================================= */

@media (min-width: 901px) and (max-width: 1180px) {
    .es-footer-v64 .container {
        width: 88% !important;
        max-width: none !important;
        margin-inline: auto !important;
        padding-inline: 0 !important;
    }

    .es-footer-v64__grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr)) !important;
        gap: 26px 28px !important;
    }

    .es-footer-v64__section--contacts {
        grid-column: 1 / -1 !important;
    }
}

@media (min-width: 641px) and (max-width: 900px) {
    .es-footer-v64 .container {
        width: 94% !important;
        max-width: none !important;
        margin-inline: auto !important;
        padding-inline: 0 !important;
    }

    .es-footer-v64__grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 22px !important;
    }

    .es-footer-v64__section--contacts {
        grid-column: 1 / -1 !important;
    }
}

/* =========================================================
   MOBILE ACCORDION
   ========================================================= */

@media (max-width: 640px) {
    .es-footer-v64 {
        overflow: visible !important;
    }

    .es-footer-v64 .container {
        width: calc(100% - 24px) !important;
        max-width: none !important;
        margin-inline: auto !important;
        padding-inline: 0 !important;
    }

    .es-footer-v64__grid {
        display: block !important;
        padding: 10px 0 2px !important;
    }

    .es-footer-v64__section {
        margin: 0 !important;
        padding: 0 !important;
        border-top: 1px solid rgba(255,255,255,.20) !important;
        scroll-margin-top: 12px;
    }

    .es-footer-v64__section:last-child {
        border-bottom: 1px solid rgba(255,255,255,.20) !important;
    }

    .es-footer-v64__summary {
        min-height: 52px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 14px !important;
        padding: 0 !important;
        margin: 0 !important;
        cursor: pointer !important;
    }

    .es-footer-v64__summary-title {
        font-size: 17px !important;
        line-height: 1.15 !important;
    }

    .es-footer-v64__summary-title--contacts {
        border-bottom: 0 !important;
        padding-bottom: 0 !important;
    }

    .es-footer-v64__summary-icon {
        display: block !important;
        width: 18px !important;
        height: 18px !important;
        flex: 0 0 18px !important;
    }

    .es-footer-v64__content {
        margin: 0 !important;
        padding: 0 0 14px !important;
    }

    /*
     * Содержимое закрытого details не должно участвовать
     * в высоте/overflow страницы даже при конфликте старого CSS.
     */
    .es-footer-v64__section:not([open]) > .es-footer-v64__content {
        display: none !important;
    }

    .es-footer-v64__links {
        gap: 9px !important;
    }

    .es-footer-v64__links a {
        font-size: 14px !important;
        line-height: 1.25 !important;
    }

    .es-footer-v64__phone-row {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        margin-bottom: 12px !important;
    }

    .es-footer-v64__phone {
        font-size: 15px !important;
    }

    .es-footer-v64__email {
        margin-bottom: 12px !important;
        font-size: 14px !important;
    }

    .es-footer-v64__addresses {
        gap: 10px !important;
    }

    .es-footer-v64__address {
        grid-template-columns: 20px minmax(0, 1fr) !important;
        gap: 9px !important;
        font-size: 13px !important;
        line-height: 1.27 !important;
    }

    .es-footer-v64__bottom {
        min-height: 46px !important;
        padding: 10px 0 12px !important;
    }

    .es-footer-v64__socials {
        gap: 18px !important;
    }
}
