/* ==========================================================================
   Подвал сайта
   Figma: секция «Footer»
          120:526  — десктоп 1440 × 504
          270:3967 — мобильный 375 × 791
          288:5021 — состояния кнопки мессенджера (Default / ховер)
   ========================================================================== */

.footer {
    /* шаг между заголовком колонки и её содержимым:
       на десктопе 24px, в мобильном макете — 16px */
    --footer-title-gap: 24px;

    position: relative;
    /* надпись «ФИНСЕРВИС» на десктопе выходит за нижний край на 16px
       и подрезается — в макете так же */
    overflow: hidden;
    background-color: #141414;
    color: var(--c-white);
}

.footer__inner {
    position: relative;
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 40px var(--container-pad) 16px;
}

/* --------------------------------------------------------------------------
   Крупная надпись-подложка
   Один файл на обе версии: пропорции 1320 × 169 и 343 × 44 совпадают,
   поэтому высота считается из ширины. Заливка — белый градиент
   от 12% прозрачности сверху до нуля снизу (задан внутри SVG)
   -------------------------------------------------------------------------- */

.footer__wordmark {
    position: absolute;
    /* в макете надпись свисает за нижний край подвала на 16px */
    bottom: -16px;
    left: var(--container-pad);
    z-index: 0;
    /* ширина считается явно: у картинки есть собственные пропорции,
       и пары left/right ей для растягивания недостаточно */
    width: calc(100% - 2 * var(--container-pad));
    height: auto;
    pointer-events: none;
}

/* --------------------------------------------------------------------------
   Верхняя часть: логотип и колонки ссылок
   -------------------------------------------------------------------------- */

.footer__main {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.footer__logo {
    display: flex;
    align-items: flex-start;
    gap: 8.229px;
    flex-shrink: 0;
}

.footer__logo-mark {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
}

/* Отступ сверху и шаг между строками взяты из макета:
   название начинается на 1.83px ниже верха знака */
.footer__logo-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding-top: 2px;
}

.footer__logo-name {
    font-size: 29.333px;
    font-weight: 700;
    line-height: normal;
    white-space: nowrap;
    color: #ffffff;
}

.footer__logo-desc {
    font-size: 14.667px;
    font-weight: 400;
    line-height: normal;
    white-space: nowrap;
    color: #ffffff;
}

/* Группа колонок занимает ровно половину контейнера — 648px из макета */
.footer__cols {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    width: 648px;
}

.footer__col {
    display: flex;
    flex-direction: column;
    gap: var(--footer-title-gap);
    flex-shrink: 0;
}

.footer__col--contacts {
    gap: 40px;
    width: 285px;
}

.footer__col-title {
    font-size: 14px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 0.28px;
    text-transform: uppercase;
    opacity: 0.6;
    color: var(--c-white);
}

/* размер шрифта задан и на списке: иначе строка <li> считалась бы
   по базовым 16px и шаг между пунктами оказался бы больше макетного */
.footer__list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: 14px;
}

.footer__link {
    font-size: 14px;
    font-weight: 400;
    line-height: normal;
    overflow-wrap: break-word;
    color: var(--c-white);
    transition: color var(--transition);
}

/* В макете пункт «Объекты» показан красным — это ховер (Red 400) */
.footer__link:hover {
    color: var(--c-red-400);
}

/* Тонкая разделительная линия между брендами и группой «Покрытия» */
.footer__divider {
    width: 100%;
    height: 1px;
    background-color: rgba(255, 255, 255, 0.15);
}

/* Подзаголовок группы внутри колонки — тот же стиль, что и заголовок колонки */
.footer__col-title--sub {
    margin: 0;
}

/* --------------------------------------------------------------------------
   Контакты
   -------------------------------------------------------------------------- */

.footer__group {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--footer-title-gap);
    /* колонка контактов в обоих макетах шириной 285px —
       по ней переносится адрес */
    max-width: 285px;
}

.footer__group--address {
    gap: 16px;
}

.footer__contacts {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.footer__phone {
    font-size: 32px;
    font-weight: 700;
    line-height: normal;
    white-space: nowrap;
    color: var(--c-white);
    transition: color var(--transition);
}

.footer__email {
    font-size: 16px;
    font-weight: 400;
    line-height: normal;
    color: var(--c-white);
    transition: color var(--transition);
}

.footer__phone:hover,
.footer__email:hover {
    color: var(--c-red-400);
}

.footer__address {
    font-size: 16px;
    font-weight: 400;
    line-height: normal;
    color: var(--c-white);
}

/* Режим работы: показывается в подвале только если заполнен в админке.
   Оформлен как остальные строки контактов */
.footer__hours {
    margin: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: normal;
    color: var(--c-white);
}

.footer__messengers {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.footer-messenger {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    height: 40px;
    padding: 0 16px 0 12px;
    border-radius: var(--radius-sm);
    background-color: rgba(255, 255, 255, 0.12);
    font-size: 16px;
    font-weight: 700;
    line-height: normal;
    white-space: nowrap;
    color: var(--c-white);
    transition: color var(--transition);
}

/* В состоянии Variant2 (288:5022) у кнопки краснеют и текст, и значок.
   Значок здесь не картинка, а маска: одна и та же иконка перекрашивается
   цветом фона, поэтому второй файл под ховер не нужен */
.footer-messenger__icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    background-color: var(--c-white);
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    transition: background-color var(--transition);
}

.footer-messenger__icon--telegram {
    -webkit-mask-image: url("../../icons/telegram-24.svg");
    mask-image: url("../../icons/telegram-24.svg");
}

.footer-messenger__icon--max {
    -webkit-mask-image: url("../../icons/max-24.svg");
    mask-image: url("../../icons/max-24.svg");
}

.footer-messenger:hover {
    color: var(--c-red-400);
}

.footer-messenger:hover .footer-messenger__icon {
    background-color: var(--c-red-400);
}

/* --------------------------------------------------------------------------
   Нижняя строка
   158px — свободное поле между колонками и копирайтом, в нём и лежит
   надпись-подложка. Высота подвала в макете за счёт него ровно 504px
   -------------------------------------------------------------------------- */

.footer__bottom {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 158px;
}

.footer__copy {
    font-size: 14px;
    font-weight: 400;
    line-height: normal;
    opacity: 0.6;
    color: var(--c-white);
}

.footer__legal {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-shrink: 0;
    width: 648px;
}

.footer__legal-link {
    font-size: 16px;
    font-weight: 700;
    line-height: normal;
    opacity: 0.6;
    color: var(--c-white);
    transition: opacity var(--transition);
}

.footer__legal-link:hover {
    opacity: 1;
}

/* --------------------------------------------------------------------------
   Планшет
   Логотип с описанием занимает 509px, колонки — 648px: вместе они
   перестают помещаться в контейнер уже около 1200px, поэтому логотип
   переносится на свою строку
   -------------------------------------------------------------------------- */

@media (max-width: 1279px) {
    .footer__main {
        flex-wrap: wrap;
        gap: 40px;
    }

    .footer__logo {
        flex-basis: 100%;
    }

    .footer__cols {
        width: 100%;
    }

    .footer__legal {
        justify-content: flex-end;
        gap: 40px;
        width: auto;
    }

    /* логотип переехал на свою строку, подвал стал выше —
       свободного поля под надписью-подложкой нужно меньше */
    .footer__bottom {
        margin-top: 96px;
    }
}

/* Ниже 1200px копирайт и ссылки на документы перестают помещаться
   в одну строку */
@media (max-width: 1199px) {
    .footer__bottom {
        flex-wrap: wrap;
        row-gap: 24px;
    }

    /* ссылки на документы поднимаются над копирайтом — как в мобильном макете */
    .footer__legal {
        order: -1;
        justify-content: flex-start;
        flex-basis: 100%;
    }
}

/* --------------------------------------------------------------------------
   Мобильная версия — 375 × 791
   Между колонками и контактами, а также перед нижним блоком
   в макете проходят линии white 20%
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {
    .footer {
        --footer-title-gap: 16px;
    }

    .footer__inner {
        padding-bottom: 64px;
    }

    /* в мобильном макете надпись стоит ровно по нижнему краю */
    .footer__wordmark {
        bottom: 0;
    }

    .footer__main {
        flex-direction: column;
        align-items: stretch;
        gap: 32px;
    }

    .footer__logo {
        gap: 5.143px;
    }

    .footer__logo-mark {
        width: 40px;
        height: 40px;
    }

    .footer__logo-text {
        gap: 2px;
        padding-top: 1px;
    }

    .footer__logo-name {
        font-size: 18.333px;
    }

    .footer__logo-desc {
        font-size: 9.167px;
    }

    .footer__cols {
        flex-wrap: wrap;
        gap: 24px 0;
    }

    .footer__col {
        flex: 0 0 50%;
    }

    .footer__col--contacts {
        flex: 0 0 100%;
        width: auto;
        padding-top: 24px;
        border-top: 1px solid rgba(255, 255, 255, 0.2);
    }

    .footer__phone {
        font-size: 24px;
    }

    .footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
        margin-top: 24px;
        padding-top: 24px;
        border-top: 1px solid rgba(255, 255, 255, 0.2);
    }

    .footer__legal {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        flex-basis: auto;
    }
}
