/* ============================================================
06. START: FOOTER
============================================================ */

footer{
    background:var(--white);
    color:var(--text);
    padding:40px 0 24px;
    border-top:1px solid var(--border);
}

footer a{
    color:var(--primary);
    text-decoration:none;
    transition:color var(--transition-fast);
}

footer a:hover{
    color:var(--accent);
}

/* ---------- FOOTER TOP ---------- */

.footer-top{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:30px;
    margin-bottom:30px;
}

.footer-brand{
    text-align:center;
}

.footer-logo-link{
    display:inline-block;
}

.footer-logo-link img{
    display:block;
    max-width:150px;
    height:auto;
    margin:0 auto 10px;
}

.footer-brand p{
    margin:0;
}

.footer-brand .btn-callback{
    margin-top:15px;
}

.footer-contacts h4,
.footer-links h4,
.footer-map h4,
.footer-apps h4{
    color:var(--text);
    margin:0 0 15px;
    font-size:1.1rem;
}

.footer-contacts p,
.footer-links li,
.footer-map p,
.footer-apps .app-links{
    margin-bottom:8px;
}

.footer-links ul{
    list-style:none;
    padding:0;
    margin:0;
}

.footer-links li a{
    color:var(--primary);
}

/* ---------- MAX ---------- */

.footer-max-desktop{
    display:inline-flex;
    align-items:center;
    justify-content:left;
    text-decoration:none;
}

.footer-max-desktop img{
    display:block;
    width:45px;
    height:45px;
    object-fit:contain;
}

/* ---------- FOOTER MIDDLE ---------- */

.footer-middle{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:30px;
    margin-bottom:30px;
    border-top:1px solid var(--border);
    padding-top:30px;
}

.footer-apps .app-links{
    display:flex;
    gap:15px;
    flex-wrap:wrap;
}

.footer-apps .app-links a{
    color:var(--primary);
}

.footer-apps .app-links img{
    display:block;
    height:40px;
    width:auto;
}

/* ---------- FOOTER BOTTOM ---------- */

.footer-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-top:1px solid var(--border);
    padding-top:20px;
}

.footer-copyright p{
    margin:0;
    font-size:.9rem;
    color:var(--muted);
}

.footer-copyright a{
    margin:0;
    font-size:.9rem;
    text-decoration:none;
}

/* ============================================================
DESKTOP >= 992px
============================================================ */

@media(min-width:992px){

    footer{
        padding:44px 0 24px;
    }

    .footer-top{
        display:grid;
        grid-template-columns:
            minmax(170px,1fr)
            minmax(115px,.65fr)
            minmax(140px,.8fr)
            minmax(215px,1.15fr)
            minmax(225px,1.2fr);
        gap:18px;
        align-items:stretch;
        margin-bottom:28px;
    }

    /* ---------- BRAND ---------- */

    .footer-brand{
        display:flex;
        flex-direction:column;
        align-items:flex-start;
        justify-content:flex-start;
        min-width:0;
        padding:6px 0;
        text-align:left;
    }

    .footer-logo-link img{
        width:170px;
        max-width:100%;
        height:auto;
        margin:0 0 12px;
    }

    .footer-brand p{
        margin:0;
        font-size:14px;
        line-height:1.5;
        color:var(--muted);
    }

    .footer-brand .btn-callback{
        width:160px;
        min-width:0;
        margin-top:16px;
        padding:10px 14px;
    }

    .footer-max-desktop{
        align-self:flex-start;
        justify-content:left;
        width:160px;
        margin-top:10px;
        transition:
            transform var(--transition-fast),
            opacity var(--transition-fast);
    }

    .footer-max-desktop img{
        width:45px;
        height:45px;
    }

    .footer-max-desktop:hover{
        transform:translateY(-2px);
        opacity:.85;
        text-decoration:none;
    }

    /* ---------- LINKS ---------- */

    .footer-links{
        min-width:0;
        padding:8px 0;
    }

    .footer-links h4{
        margin:0 0 14px;
        font-size:17px;
        line-height:1.3;
    }

    .footer-links ul{
        display:flex;
        flex-direction:column;
        gap:8px;
    }

    .footer-links li{
        margin:0;
    }

    .footer-links li a{
        font-size:15px;
        line-height:1.4;
    }

    /* ---------- CONTACTS ---------- */

    .footer-contacts{
        min-width:0;
        padding:18px;
        background:var(--light-bg);
        border:1px solid var(--border);
        border-radius:16px;
    }

    .footer-contacts h4{
        margin:0 0 12px;
        font-size:17px;
        line-height:1.3;
    }

    .footer-contacts p{
        margin:0;
        padding:5px 0;
        font-size:14px;
        line-height:1.45;
    }

    .footer-contacts a{
        font-weight:600;
    }

    .footer-max-mobile{
        display:none;
    }

    /* ---------- MIDDLE ---------- */

    .footer-middle{
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        align-items:center;
        gap:30px;
        margin-bottom:24px;
        padding-top:24px;
    }

    .footer-map p{
        margin:0 0 5px;
        font-size:14px;
        line-height:1.45;
    }

    .footer-apps{
        display:flex;
        justify-content:flex-end;
    }

    .footer-apps .app-links{
        display:flex;
        align-items:center;
        justify-content:flex-end;
        gap:12px;
        margin:0;
        flex-wrap:nowrap;
    }

    .footer-apps .app-links a{
        display:flex;
        align-items:center;
        justify-content:center;
        transition:transform var(--transition-fast);
    }

    .footer-apps .app-links a:hover{
        transform:translateY(-2px);
    }

    .footer-apps .app-links img{
        display:block;
        height:40px;
        width:auto;
    }

    /* ---------- BOTTOM ---------- */

    .footer-bottom{
        display:grid;
        grid-template-columns:1.1fr .45fr 1.7fr 2fr;
        gap:16px;
        align-items:center;
    }

    .footer-bottom .footer-copyright{
        min-width:0;
    }

    .footer-bottom .footer-copyright:nth-child(1){
        text-align:left;
    }

    .footer-bottom .footer-copyright:nth-child(2),
    .footer-bottom .footer-copyright:nth-child(3){
        text-align:center;
    }

    .footer-bottom .footer-copyright:nth-child(4){
        text-align:right;
    }

    .footer-bottom .footer-copyright a{
        font-size:12px;
        line-height:1.4;
    }

}

/* ============================================================
TABLET 768px - 991px
============================================================ */

@media(min-width:768px) and (max-width:991px){

    footer{
        padding:34px 0 22px;
    }

    .footer-top{
        display:grid;
        grid-template-columns:repeat(6,minmax(0,1fr));
        gap:22px 18px;
        margin-bottom:26px;
    }

    /* ---------- TOP ROW ---------- */

    .footer-brand{
        grid-column:span 2;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:flex-start;
        min-width:0;
        text-align:center;
    }

    .footer-top>.footer-links{
        grid-column:span 2;
        min-width:0;
    }

    .footer-logo-link img{
        width:160px;
        max-width:100%;
        margin:0 auto 10px;
    }

    .footer-brand p{
        font-size:14px;
        line-height:1.5;
    }

    .footer-brand .btn-callback{
        width:165px;
        margin-top:14px;
    }

    .footer-max-desktop{
        width:165px;
        margin-top:9px;
        justify-content:center;
    }

    .footer-max-desktop img{
        width:45px;
        height:45px;
    }

    /* ---------- LINKS ---------- */

    .footer-links{
        padding:4px 0;
    }

    .footer-links h4{
        margin:0 0 12px;
        font-size:17px;
        line-height:1.3;
    }

    .footer-links ul{
        display:flex;
        flex-direction:column;
        gap:7px;
    }

    .footer-links li{
        margin:0;
    }

    .footer-links li a{
        font-size:14px;
        line-height:1.4;
    }

    /* ---------- CONTACTS ---------- */

    .footer-contacts{
        grid-column:span 3;
        min-width:0;
        padding:18px;
        background:var(--light-bg);
        border:1px solid var(--border);
        border-radius:14px;
    }

    .footer-contacts h4{
        margin:0 0 12px;
        font-size:17px;
        line-height:1.3;
    }

    .footer-contacts p{
        margin:0;
        padding:5px 0;
        font-size:14px;
        line-height:1.45;
    }

    .footer-contacts a{
        font-weight:600;
    }

    /* ---------- MIDDLE ---------- */

    .footer-middle{
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        gap:20px;
        align-items:center;
        margin-bottom:22px;
        padding-top:22px;
    }

    .footer-map p{
        margin:0 0 5px;
        font-size:13px;
        line-height:1.45;
    }

    .footer-apps .app-links{
        display:flex;
        align-items:center;
        justify-content:flex-end;
        gap:8px;
        margin:0;
        flex-wrap:nowrap;
    }

    .footer-apps .app-links img{
        display:block;
        height:34px;
        width:auto;
    }

    /* ---------- BOTTOM ---------- */

    .footer-bottom{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px 24px;
        align-items:start;
    }

    .footer-bottom .footer-copyright{
        min-width:0;
        text-align:left;
    }

    .footer-bottom .footer-copyright a,
    .footer-bottom .footer-copyright p{
        font-size:12px;
        line-height:1.45;
    }

}

/* ============================================================
SMALL TABLET 601px - 767px
============================================================ */

@media(min-width:601px) and (max-width:767px){

    footer{
        padding:30px 0 20px;
    }

    .footer-top{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:18px;
        margin-bottom:24px;
    }

    /* ---------- BRAND ---------- */

    .footer-brand{
        grid-column:1/-1;
        display:flex;
        flex-direction:column;
        align-items:center;
        text-align:center;
        padding-bottom:6px;
    }

    .footer-logo-link img{
        width:160px;
        max-width:100%;
        margin:0 auto 10px;
    }

    .footer-brand p{
        font-size:14px;
        line-height:1.5;
    }

    .footer-brand .btn-callback{
        width:180px;
        margin-top:14px;
    }

    .footer-max-desktop{
        width:180px;
        margin-top:9px;
        justify-content:center;
    }

    .footer-max-desktop img{
        width:45px;
        height:45px;
    }

    /* ---------- LINKS ---------- */

    .footer-links{
        min-width:0;
        padding:8px 12px;
    }

    .footer-links h4{
        margin:0 0 12px;
        font-size:16px;
        line-height:1.3;
    }

    .footer-links ul{
        display:flex;
        flex-direction:column;
        gap:7px;
    }

    .footer-links li{
        margin:0;
    }

    .footer-links li a{
        font-size:14px;
        line-height:1.4;
    }

    /* ---------- CONTACTS ---------- */

    .footer-contacts{
        min-width:0;
        padding:16px;
        background:var(--light-bg);
        border:1px solid var(--border);
        border-radius:14px;
    }

    .footer-contacts h4{
        margin:0 0 12px;
        font-size:17px;
        line-height:1.3;
    }

    .footer-contacts p{
        margin:0;
        padding:5px 0;
        font-size:13px;
        line-height:1.45;
    }

    .footer-contacts a{
        font-weight:600;
    }

    /* ---------- MIDDLE ---------- */

    .footer-middle{
        display:grid;
        grid-template-columns:1fr;
        gap:18px;
        margin-bottom:20px;
        padding-top:20px;
    }

    .footer-map p{
        margin:0 0 5px;
        font-size:13px;
        line-height:1.45;
    }

    .footer-apps .app-links{
        display:flex;
        align-items:center;
        justify-content:center;
        gap:10px;
        margin:0;
        flex-wrap:wrap;
    }

    .footer-apps .app-links img{
        display:block;
        height:36px;
        width:auto;
    }

    /* ---------- BOTTOM ---------- */

    .footer-bottom{
        display:grid;
        grid-template-columns:1fr;
        gap:8px;
        padding-top:16px;
        text-align:center;
    }

    .footer-bottom .footer-copyright{
        min-width:0;
        text-align:center;
    }

    .footer-bottom .footer-copyright a,
    .footer-bottom .footer-copyright p{
        font-size:12px;
        line-height:1.45;
    }

}

/* ============================================================
MOBILE <= 600px
============================================================ */

@media(max-width:600px){

    footer{
        padding:24px 0 18px;
    }

    footer .container{
        width:100%;
        padding-left:16px;
        padding-right:16px;
        box-sizing:border-box;
    }

    /* ---------- ОСНОВНАЯ СЕТКА ---------- */

    .footer-top{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:12px;
        margin-bottom:12px;
    }

    /* ---------- ЛОГОТИП / БРЕНД ---------- */

    .footer-brand{
        grid-column:1/-1;
        display:flex;
        flex-direction:column;
        align-items:center;
        padding:22px 18px;
        background:#f8f9fa;
        border:1px solid var(--border);
        border-radius:16px;
        text-align:center;
    }

    .footer-logo-link img{
        width:140px;
        max-width:100%;
        height:auto;
        margin:0 auto 10px;
    }

    .footer-brand p{
        margin:0;
        font-size:14px;
        line-height:1.5;
        color:var(--muted);
    }

    /* ---------- КНОПКА ---------- */

    .footer-brand .btn-callback{
        width:100%;
        max-width:280px;
        margin:16px 0 0;
        padding:13px 18px;
        border:none;
        border-radius:10px;
        cursor:pointer;
        font-size:15px;
        font-weight:600;
        line-height:1.2;
        transition:
            transform .2s ease,
            opacity .2s ease;
    }

    .footer-brand .btn-callback:active{
        transform:scale(.98);
    }

    /* ---------- MAX ---------- */

    .footer-max-desktop{
        display:flex;
        align-items:center;
        justify-content:center;
        width:100%;
        max-width:280px;
        margin-top:8px;
    }

    .footer-max-desktop img{
        width:45px;
        height:45px;
    }

    /* ---------- УСЛУГИ / ИНФОРМАЦИЯ ---------- */

    .footer-links{
        padding:18px 14px;
        background:#f8f9fa;
        border:1px solid var(--border);
        border-radius:14px;
        box-sizing:border-box;
    }

    .footer-links h4{
        margin:0 0 12px;
        font-size:15px;
        line-height:1.3;
        font-weight:700;
    }

    .footer-links ul{
        display:flex;
        flex-direction:column;
        gap:8px;
    }

    .footer-links li{
        margin:0;
        padding:0;
    }

    .footer-links li a{
        display:block;
        font-size:13px;
        line-height:1.4;
        color:var(--text);
    }

    /* ---------- КОНТАКТЫ ---------- */

    .footer-contacts{
        grid-column:1/-1;
        padding:20px;
        background:#f8f9fa;
        border:1px solid var(--border);
        border-radius:16px;
        box-sizing:border-box;
    }

    .footer-contacts h4{
        margin:0 0 14px;
        font-size:18px;
        line-height:1.3;
        font-weight:700;
    }

    .footer-contacts p{
        margin:0;
        padding:8px 0;
        border-bottom:1px solid var(--border);
        font-size:14px;
        line-height:1.5;
    }

    .footer-contacts p:last-child{
        padding-bottom:0;
        border-bottom:none;
    }

    .footer-contacts a{
        font-weight:600;
    }

    /* ---------- РЕКВИЗИТЫ / ПРИЛОЖЕНИЯ ---------- */

    .footer-middle{
        display:grid;
        grid-template-columns:1fr;
        gap:12px;
        margin:0 0 18px;
        padding:0;
        border-top:none;
    }

    .footer-map,
    .footer-apps{
        padding:18px 20px;
        background:#f8f9fa;
        border:1px solid var(--border);
        border-radius:16px;
        box-sizing:border-box;
    }

    .footer-map h4,
    .footer-apps h4{
        margin:0 0 12px;
        font-size:16px;
        line-height:1.3;
        font-weight:700;
    }

    .footer-map p{
        margin:0 0 6px;
        font-size:13px;
        line-height:1.5;
    }

    .footer-map p:last-child{
        margin-bottom:0;
    }

    /* ---------- ПРИЛОЖЕНИЯ ---------- */

    .footer-apps .app-links{
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:8px;
        margin:0;
    }

    .footer-apps .app-links a{
        display:flex;
        align-items:center;
        justify-content:center;
        min-width:0;
        min-height:40px;
        padding:5px;
        border:1px solid var(--border);
        border-radius:8px;
        background:var(--white);
        box-sizing:border-box;
    }

    .footer-apps .app-links img{
        display:block;
        width:100%;
        max-width:110px;
        height:auto;
    }

    /* ---------- COPYRIGHT ---------- */

    .footer-bottom{
        display:block;
        padding-top:16px;
        border-top:1px solid var(--border);
        text-align:center;
    }

    .footer-copyright{
        margin-bottom:6px;
    }

    .footer-copyright:last-child{
        margin-bottom:0;
    }

    .footer-copyright p{
        margin:0;
        font-size:11px;
        line-height:1.5;
        color:var(--muted);
    }

    .footer-copyright a{
        font-size:11px;
        line-height:1.5;
        text-decoration:none;
    }

}

/* ============================================================
VERY SMALL MOBILE <= 380px
============================================================ */

@media(max-width:380px){

    .footer-top{
        grid-template-columns:1fr;
    }

    .footer-brand,
    .footer-contacts{
        grid-column:auto;
    }

    .footer-apps .app-links{
        grid-template-columns:1fr;
    }

    .footer-apps .app-links img{
        width:auto;
        max-width:135px;
    }

}

/* ============================================================
COOKIE NOTICE
============================================================ */

.cookie-notice{
    position:fixed;
    left:24px;
    bottom:24px;
    z-index:99999;
    width:min(460px,calc(100% - 48px));
    padding:22px;
    background:var(--white);
    border:1px solid var(--border);
    border-radius:16px;
    box-shadow:0 18px 50px rgba(31,63,108,.18);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateX(-20px);
    transition:
        opacity .3s ease,
        transform .3s ease,
        visibility .3s ease;
}

.cookie-notice.is-visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateX(0);
}

.cookie-notice__text{
    margin:0 0 18px;
    font-size:14px;
    line-height:1.6;
    color:var(--text);
}

.cookie-notice__text a{
    color:var(--primary);
    text-decoration:underline;
    text-underline-offset:2px;
}

.cookie-notice__text a:hover{
    color:var(--accent2);
}

.cookie-notice__accept{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:120px;
    padding:10px 20px;
    border:0;
    border-radius:var(--radius-small);
    background:var(--accent);
    color:var(--white);
    font-size:14px;
    line-height:1.2;
    font-weight:600;
    cursor:pointer;
    transition:
        background var(--transition-fast),
        transform var(--transition-fast);
}

.cookie-notice__accept:hover{
    background:var(--accent2);
    transform:translateY(-1px);
}

.cookie-notice__accept:active{
    transform:translateY(0);
}

@media(max-width:600px){

    .cookie-notice{
        left:16px;
        right:16px;
        bottom:16px;
        width:auto;
        padding:18px;
        border-radius:14px;
    }

    .cookie-notice__text{
        margin-bottom:14px;
        font-size:13px;
        line-height:1.55;
    }

    .cookie-notice__accept{
        width:100%;
        padding:12px 18px;
    }

}

/* ============================================================
END: FOOTER
============================================================ */