
/* =========================================================
   HIDE OLD BRIDGE FOOTER
   ========================================================= */

body.home footer:not(.vlftr){
    display:none !important;
}



/* =========================================================
   NEW FOOTER
   ========================================================= */

body.home .vlftr{

    --vf-cyan:#58C3D9;
    --vf-blue:#176B87;

    position:relative;

    z-index:5;

    overflow:hidden;

    isolation:isolate;

    color:#fff;

    font-family:
        'Montserrat',
        Arial,
        sans-serif;

    background:

        radial-gradient(
            circle at 14% 25%,
            rgba(88,195,217,.09),
            transparent 25%
        ),

        radial-gradient(
            circle at 87% 82%,
            rgba(23,107,135,.12),
            transparent 27%
        ),

        linear-gradient(
            118deg,
            #061720 0%,
            #09232E 48%,
            #0B2B38 72%,
            #061820 100%
        );
}



/* =========================================================
   TOP SIGNAL
   ========================================================= */

body.home .vlftr-top-line{

    position:absolute;

    z-index:5;

    left:0;
    right:0;
    top:0;

    height:1px;

    overflow:hidden;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(88,195,217,.16) 20%,
            rgba(88,195,217,.24) 50%,
            rgba(88,195,217,.16) 80%,
            transparent
        );
}


body.home .vlftr-signal{

    position:absolute;

    left:-120px;
    top:0;

    width:110px;
    height:1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #58C3D9
        );

    filter:
        drop-shadow(
            0 0 5px
            rgba(88,195,217,.70)
        );

    animation:
        vlftrSignal
        7s
        ease-in-out
        infinite;
}


body.home .vlftr-signal::after{

    content:"";

    position:absolute;

    right:-2px;
    top:50%;

    width:5px;
    height:5px;

    transform:
        translateY(-50%);

    border-radius:50%;

    background:
        #8DECF6;

    box-shadow:
        0 0 0 6px
        rgba(88,195,217,.05),
        0 0 18px
        rgba(88,195,217,.65);
}



/* =========================================================
   BACKGROUND
   ========================================================= */

body.home .vlftr-bg{

    position:absolute;

    inset:0;

    z-index:0;

    pointer-events:none;
}


body.home .vlftr-grid{

    position:absolute;

    inset:0;

    opacity:.18;

    background-image:

        linear-gradient(
            rgba(126,204,218,.05) 1px,
            transparent 1px
        ),

        linear-gradient(
            90deg,
            rgba(126,204,218,.05) 1px,
            transparent 1px
        );

    background-size:
        78px 78px;

    -webkit-mask-image:
        linear-gradient(
            to bottom,
            #000,
            transparent 95%
        );

    mask-image:
        linear-gradient(
            to bottom,
            #000,
            transparent 95%
        );
}


body.home .vlftr-glow{

    position:absolute;

    border-radius:50%;

    filter:
        blur(75px);
}


body.home .vlftr-glow-a{

    width:320px;
    height:320px;

    left:-170px;
    top:-150px;

    background:
        rgba(88,195,217,.09);
}


body.home .vlftr-glow-b{

    width:330px;
    height:330px;

    right:-180px;
    bottom:-180px;

    background:
        rgba(23,107,135,.12);
}



/* =========================================================
   SHELL
   ========================================================= */

body.home .vlftr-shell{

    position:relative;

    z-index:2;

    width:
        min(
            1400px,
            calc(100% - 64px)
        );

    margin:
        0 auto;
}



/* =========================================================
   MAIN
   ========================================================= */

body.home .vlftr-main{

    min-height:205px;

    padding:
        43px 0 37px;

    display:grid;

    grid-template-columns:
        minmax(300px,1fr)
        auto;

    gap:
        70px;

    align-items:center;
}



/* BRAND */

body.home .vlftr-brand{

    width:
        min(
            470px,
            100%
        );
}


body.home .vlftr-logo{

    display:inline-flex;

    align-items:center;

    text-decoration:none !important;
}


body.home .vlftr-logo img{

    display:block;

    width:auto;

    height:
        clamp(
            43px,
            4vw,
            58px
        );

    max-width:
        230px;

    object-fit:contain;

    object-position:left center;

    filter:
        drop-shadow(
            0 8px 20px
            rgba(0,0,0,.18)
        );
}


body.home .vlftr-logo-fallback{

    display:flex;

    flex-direction:column;

    line-height:.88;
}


body.home .vlftr-logo-fallback strong{

    color:#fff;

    font-size:27px;

    font-weight:800;

    letter-spacing:-.05em;
}


body.home .vlftr-logo-fallback span{

    margin-top:6px;

    color:#58C3D9;

    font-size:9px;

    font-weight:650;

    letter-spacing:.28em;
}


body.home .vlftr-brand p{

    width:
        min(
            430px,
            100%
        );

    margin:
        19px 0 0 !important;

    color:
        rgba(211,229,233,.54) !important;

    font-size:
        10px !important;

    line-height:
        1.65 !important;

    font-weight:
        450 !important;
}



/* =========================================================
   CONTACTS
   ========================================================= */

body.home .vlftr-contacts{

    display:flex;

    align-items:center;

    gap:12px;
}


body.home .vlftr-contact{

    min-width:205px;

    padding:
        17px 19px;

    display:flex;

    flex-direction:column;

    gap:7px;

    border:
        1px solid
        rgba(167,220,230,.08);

    border-radius:
        17px;

    text-decoration:none !important;

    background:
        rgba(255,255,255,.022);

    transition:
        transform .28s ease,
        border-color .28s ease,
        background .28s ease;
}


body.home .vlftr-contact small{

    color:
        rgba(116,203,218,.50);

    font-size:
        7px;

    line-height:1;

    font-weight:720;

    letter-spacing:.17em;
}


body.home .vlftr-contact span{

    color:
        rgba(241,248,249,.87);

    font-size:
        11px;

    line-height:1;

    font-weight:580;
}


body.home .vlftr-contact:hover{

    transform:
        translateY(-2px);

    border-color:
        rgba(88,195,217,.18);

    background:
        rgba(88,195,217,.035);
}



/* =========================================================
   BOTTOM
   ========================================================= */

body.home .vlftr-bottom{

    min-height:69px;

    display:grid;

    grid-template-columns:
        1fr auto auto;

    gap:30px;

    align-items:center;

    border-top:
        1px solid
        rgba(172,220,229,.075);
}


body.home .vlftr-copy,
body.home .vlftr-policy{

    color:
        rgba(203,222,226,.38);

    font-size:
        8px;

    line-height:1.4;

    font-weight:500;
}


body.home .vlftr-policy{

    text-decoration:none !important;

    transition:
        color .25s ease;
}


body.home .vlftr-policy:hover{

    color:
        rgba(222,240,244,.72);
}



/* UP */

body.home .vlftr-up{

    display:flex;

    align-items:center;

    gap:10px;

    color:
        rgba(222,239,243,.53);

    text-decoration:none !important;

    font-size:
        8px;

    font-weight:600;

    transition:
        color .25s ease;
}


body.home .vlftr-up i{

    width:34px;
    height:34px;

    display:grid;

    place-items:center;

    border:
        1px solid
        rgba(141,218,231,.11);

    border-radius:50%;

    background:
        rgba(255,255,255,.025);

    transition:
        transform .28s ease,
        background .28s ease,
        border-color .28s ease;
}


body.home .vlftr-up svg{

    width:14px;
    height:14px;

    fill:none;

    stroke:currentColor;

    stroke-width:1.7;

    stroke-linecap:round;

    stroke-linejoin:round;
}


body.home .vlftr-up:hover{

    color:#8DECF6;
}


body.home .vlftr-up:hover i{

    transform:
        translateY(-3px);

    background:
        rgba(88,195,217,.055);

    border-color:
        rgba(88,195,217,.22);
}



/* =========================================================
   ANIMATION
   ========================================================= */

@keyframes vlftrSignal{

    0%{
        left:-120px;
        opacity:0;
    }

    10%{
        opacity:1;
    }

    88%{
        opacity:1;
    }

    100%{
        left:calc(100% + 20px);
        opacity:0;
    }

}



/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:900px){

    body.home .vlftr-main{

        grid-template-columns:
            1fr;

        gap:31px;

        padding:
            39px 0 33px;
    }


    body.home .vlftr-contacts{

        width:100%;
    }


    body.home .vlftr-contact{

        flex:1;

        min-width:0;
    }

}



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

@media(max-width:600px){

    body.home .vlftr-shell{

        width:
            calc(100% - 28px);
    }


    body.home .vlftr-main{

        padding:
            36px 0 30px;
    }


    body.home .vlftr-contacts{

        flex-direction:column;

        align-items:stretch;
    }


    body.home .vlftr-contact{

        width:100%;
    }


    body.home .vlftr-bottom{

        grid-template-columns:
            1fr auto;

        gap:
            14px 18px;

        padding:
            20px 0;
    }


    body.home .vlftr-policy{

        grid-column:
            1 / -1;

        grid-row:2;
    }


    body.home .vlftr-up{

        grid-column:2;

        grid-row:1;

        justify-self:end;
    }


    body.home .vlftr-up>span{

        display:none;
    }

}



/* REDUCED MOTION */

@media(prefers-reduced-motion:reduce){

    body.home .vlftr-signal{

        animation:none !important;
    }

}


/* =========================================================
   FOOTER FIX — COMPACT + LIGHT BEHIND LOGO
   ========================================================= */

/* сам footer чуть компактнее */
body.home .vlftr-main{
    min-height:150px !important;
    padding:30px 0 24px !important;
    align-items:flex-start !important;
}

body.home .vlftr-brand{
    position:relative !important;
    width:min(520px,100%) !important;
    padding:8px 0 10px !important;
}

/* мягкий просвет за логотипом */
body.home .vlftr-brand::before{
    content:"";
    position:absolute;
    z-index:0;

    left:-18px;
    top:-8px;

    width:290px;
    height:120px;

    border-radius:999px;

    background:
        radial-gradient(
            ellipse at 28% 48%,
            rgba(165,231,244,.22) 0%,
            rgba(88,195,217,.16) 28%,
            rgba(88,195,217,.08) 48%,
            rgba(88,195,217,0) 74%
        );

    filter:blur(18px);
    pointer-events:none;
}

/* лёгкое стекло под логотипом */
body.home .vlftr-logo{
    position:relative !important;
    z-index:2 !important;

    padding:10px 16px 10px 14px !important;
    border-radius:20px !important;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.06) 0%,
            rgba(255,255,255,.02) 100%
        ) !important;

    border:1px solid rgba(141,218,231,.08) !important;

    box-shadow:
        0 12px 30px rgba(0,0,0,.12),
        inset 0 1px 0 rgba(255,255,255,.05) !important;
}

/* сам логотип чуть контрастнее */
body.home .vlftr-logo img{
    position:relative !important;
    z-index:3 !important;

    max-width:260px !important;
    height:62px !important;
    object-fit:contain !important;
    object-position:left center !important;

    filter:
        drop-shadow(0 8px 22px rgba(0,0,0,.22))
        drop-shadow(0 0 18px rgba(88,195,217,.10))
        brightness(1.03) !important;
}

/* текст под логотипом чуть заметнее */
body.home .vlftr-brand p{
    position:relative !important;
    z-index:2 !important;

    margin:14px 0 0 !important;
    color:rgba(220,236,240,.62) !important;
    font-size:11px !important;
    line-height:1.6 !important;
}

/* контакты чуть ближе и компактнее */
body.home .vlftr-contacts{
    gap:10px !important;
    margin-top:2px !important;
}

body.home .vlftr-contact{
    min-width:190px !important;
    padding:15px 17px !important;
}

/* нижнюю часть тоже компактнее */
body.home .vlftr-bottom{
    min-height:58px !important;
    padding:16px 0 14px !important;
}

/* чуть меньше пустоты вокруг всего footer */
body.home .vlftr-shell{
    width:min(1400px,calc(100% - 52px)) !important;
}

/* mobile */
@media(max-width:900px){
    body.home .vlftr-main{
        min-height:0 !important;
        padding:28px 0 22px !important;
        gap:24px !important;
    }

    body.home .vlftr-brand::before{
        width:240px !important;
        height:100px !important;
        left:-10px !important;
        top:-6px !important;
    }
}

@media(max-width:600px){
    body.home .vlftr-shell{
        width:calc(100% - 28px) !important;
    }

    body.home .vlftr-main{
        padding:24px 0 18px !important;
    }

    body.home .vlftr-logo{
        padding:8px 12px !important;
        border-radius:16px !important;
    }

    body.home .vlftr-logo img{
        max-width:220px !important;
        height:52px !important;
    }

    body.home .vlftr-brand p{
        font-size:10px !important;
    }
}


/* =========================================================
   FOOTER FULL CONTENT
   ========================================================= */

body.home .vlftr-content{
    position:relative;

    display:grid;

    grid-template-columns:
        minmax(300px,1.35fr)
        minmax(150px,.65fr)
        minmax(190px,.78fr)
        minmax(210px,.82fr);

    gap:
        clamp(38px,4vw,70px);

    padding:
        52px 0 43px;

    align-items:start;
}


/* =========================================================
   LIGHT LOGO PLATE
   ========================================================= */

body.home .vlftr-brand::before{
    display:none !important;
}

body.home .vlftr-logo{
    position:relative !important;

    min-width:260px;

    min-height:92px;

    padding:
        16px 23px !important;

    display:inline-flex;

    align-items:center;

    justify-content:flex-start;

    overflow:hidden;

    border:
        1px solid
        rgba(255,255,255,.70) !important;

    border-radius:
        22px !important;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.96) 0%,
            rgba(240,247,248,.94) 55%,
            rgba(223,239,242,.91) 100%
        ) !important;

    box-shadow:
        0 20px 45px
        rgba(0,0,0,.18),
        0 6px 16px
        rgba(0,0,0,.10),
        inset 0 1px 0
        rgba(255,255,255,.95) !important;
}

body.home .vlftr-logo::after{
    content:"";

    position:absolute;

    width:160px;
    height:100px;

    left:-30px;
    top:-30px;

    border-radius:50%;

    background:
        rgba(88,195,217,.18);

    filter:blur(30px);

    pointer-events:none;
}

body.home .vlftr-logo img{
    position:relative !important;

    z-index:2 !important;

    display:block;

    width:auto !important;

    height:60px !important;

    max-width:260px !important;

    object-fit:contain !important;

    object-position:left center !important;

    filter:
        drop-shadow(
            0 5px 10px
            rgba(7,28,37,.14)
        ) !important;
}


/* BRAND TEXT */

body.home .vlftr-brand-title{
    width:min(400px,100%);

    margin:
        21px 0 0 !important;

    color:
        rgba(237,247,249,.88) !important;

    font-size:
        12px !important;

    line-height:
        1.55 !important;

    font-weight:
        620 !important;

    letter-spacing:
        -.015em;
}

body.home .vlftr-brand-text{
    width:min(430px,100%);

    margin:
        11px 0 0 !important;

    color:
        rgba(204,225,230,.50) !important;

    font-size:
        9px !important;

    line-height:
        1.7 !important;

    font-weight:
        450 !important;
}


/* =========================================================
   COLUMNS
   ========================================================= */

body.home .vlftr-title{
    margin:
        5px 0 21px;

    color:
        rgba(109,203,219,.68);

    font-size:
        8px;

    line-height:1;

    font-weight:
        720;

    letter-spacing:
        .17em;

    text-transform:
        uppercase;
}


body.home .vlftr-nav{
    display:flex;

    flex-direction:column;

    align-items:flex-start;

    gap:14px;
}


body.home .vlftr-nav a{
    position:relative;

    color:
        rgba(225,239,242,.64);

    text-decoration:
        none !important;

    font-size:
        10px;

    line-height:
        1.35;

    font-weight:
        500;

    transition:
        color .25s ease,
        transform .25s ease;
}


body.home .vlftr-nav a::before{
    content:"";

    position:absolute;

    left:-13px;
    top:50%;

    width:4px;
    height:4px;

    transform:
        translateY(-50%)
        scale(0);

    border-radius:50%;

    background:#58C3D9;

    box-shadow:
        0 0 10px
        rgba(88,195,217,.45);

    transition:
        transform .25s ease;
}


body.home .vlftr-nav a:hover{
    color:#fff;

    transform:
        translateX(4px);
}


body.home .vlftr-nav a:hover::before{
    transform:
        translateY(-50%)
        scale(1);
}


/* =========================================================
   CONTACT LIST
   ========================================================= */

body.home .vlftr-contact-list{
    display:flex;

    flex-direction:column;

    align-items:flex-start;

    gap:16px;
}


body.home .vlftr-contact-list a,
body.home .vlftr-location{
    display:flex;

    flex-direction:column;

    gap:5px;

    text-decoration:
        none !important;
}


body.home .vlftr-contact-list small{
    color:
        rgba(95,194,212,.48);

    font-size:
        7px;

    line-height:1;

    font-weight:
        700;

    letter-spacing:
        .12em;
}


body.home .vlftr-contact-list span{
    color:
        rgba(230,241,244,.70);

    font-size:
        10px;

    line-height:
        1.35;

    font-weight:
        540;

    transition:
        color .25s ease;
}


body.home .vlftr-contact-list a:hover span{
    color:#fff;
}


/* больше не используем старую схему main/contacts */

body.home .vlftr-main,
body.home .vlftr-contacts{
    display:none !important;
}


/* =========================================================
   BOTTOM
   ========================================================= */

body.home .vlftr-bottom{
    min-height:68px !important;

    padding:
        17px 0 !important;

    grid-template-columns:
        1fr auto auto !important;

    border-top:
        1px solid
        rgba(166,220,230,.075);
}



/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:1050px){

    body.home .vlftr-content{
        grid-template-columns:
            1.3fr 1fr;

        gap:
            42px 60px;
    }

}



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

@media(max-width:650px){

    body.home .vlftr-content{
        grid-template-columns:
            1fr;

        gap:34px;

        padding:
            38px 0 31px;
    }


    body.home .vlftr-logo{
        min-width:0;

        width:
            min(
                280px,
                100%
            );

        min-height:82px;

        padding:
            13px 18px !important;
    }


    body.home .vlftr-logo img{
        height:
            55px !important;
    }


    body.home .vlftr-title{
        margin-bottom:
            16px;
    }


    body.home .vlftr-bottom{
        grid-template-columns:
            1fr auto !important;

        gap:
            13px 20px;
    }


    body.home .vlftr-policy{
        grid-column:
            1 / -1;
    }

}


/* =========================================================
   FOOTER LOGO - PREMIUM 3D GLASS
   ========================================================= */

body.home .vlftr-brand{
    perspective:1200px !important;
}


/* сама стеклянная плашка */

body.home .vlftr-logo{
    position:relative !important;

    width:max-content !important;
    min-width:0 !important;
    max-width:100% !important;

    min-height:0 !important;

    padding:
        8px 12px !important;

    border-radius:
        16px !important;

    overflow:hidden !important;

    border:
        1px solid
        rgba(255,255,255,.42) !important;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.54) 0%,
            rgba(236,248,250,.34) 42%,
            rgba(194,229,235,.20) 100%
        ) !important;

    -webkit-backdrop-filter:
        blur(22px)
        saturate(160%) !important;

    backdrop-filter:
        blur(22px)
        saturate(160%) !important;

    box-shadow:
        0 22px 45px rgba(0,0,0,.22),
        0 7px 16px rgba(0,0,0,.13),
        inset 0 1px 0 rgba(255,255,255,.80),
        inset 0 -1px 0 rgba(88,195,217,.18) !important;

    transform:
        rotateX(2deg)
        rotateY(-3deg)
        translateZ(0) !important;

    transform-origin:
        center center !important;

    transition:
        transform .45s cubic-bezier(.16,1,.3,1),
        box-shadow .45s ease,
        border-color .45s ease !important;
}


/* верхний стеклянный блик */

body.home .vlftr-logo::before{
    content:"" !important;

    position:absolute !important;

    left:7% !important;
    right:7% !important;
    top:0 !important;

    height:42% !important;

    border-radius:
        14px 14px 50% 50% !important;

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.52) 0%,
            rgba(255,255,255,.13) 58%,
            transparent 100%
        ) !important;

    opacity:.78 !important;

    pointer-events:none !important;
}


/* мягкая глубина внутри стекла */

body.home .vlftr-logo::after{
    content:"" !important;

    position:absolute !important;

    width:110px !important;
    height:70px !important;

    left:-28px !important;
    bottom:-30px !important;

    border-radius:50% !important;

    background:
        rgba(88,195,217,.20) !important;

    filter:
        blur(24px) !important;

    pointer-events:none !important;
}


/* сам логотип */

body.home .vlftr-logo img{
    position:relative !important;

    z-index:3 !important;

    width:auto !important;

    height:54px !important;

    max-width:235px !important;

    object-fit:contain !important;

    filter:
        drop-shadow(
            0 5px 8px
            rgba(7,28,37,.18)
        )
        brightness(1.04) !important;
}


/* немного объёма при наведении */

body.home .vlftr-logo:hover{
    transform:
        rotateX(0deg)
        rotateY(-1deg)
        translateY(-3px)
        translateZ(8px) !important;

    border-color:
        rgba(255,255,255,.60) !important;

    box-shadow:
        0 28px 55px rgba(0,0,0,.25),
        0 9px 20px rgba(0,0,0,.14),
        inset 0 1px 0 rgba(255,255,255,.92),
        inset 0 -1px 0 rgba(88,195,217,.24) !important;
}


/* MOBILE */

@media(max-width:650px){

    body.home .vlftr-logo{
        width:max-content !important;

        padding:
            7px 10px !important;

        border-radius:
            14px !important;
    }

    body.home .vlftr-logo img{
        height:48px !important;
        max-width:210px !important;
    }

}


/* =========================================================
   FIX: ELEMENTOR POPUP MUST NOT APPEAR BELOW FOOTER
   ========================================================= */

/* Сам шаблон popup не должен лежать обычным блоком под сайтом */
body.home .elementor-location-popup[data-elementor-id="1614"]{
    display:none !important;
}

/* Когда Elementor реально открывает popup - показываем его */
body.home .elementor-popup-modal
.elementor-location-popup[data-elementor-id="1614"]{
    display:block !important;
}


/* =========================================================
   REMOVE OLD BRIDGE BACK-TO-TOP BUTTON
   У нас уже есть собственная кнопка "Наверх" в footer
   ========================================================= */

body.home #back_to_top,
body.home .back_to_top{
    display:none !important;
}



/* =========================================================
   VOSTOK FINAL BOTTOM GAP FIX
   ========================================================= */

/*
 * Старый Content Bottom Bridge.
 * На новой главной он пустой и не используется.
 */
body.home .content_bottom{
    display:none !important;
    height:0 !important;
    min-height:0 !important;
    max-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    overflow:hidden !important;
}


/*
 * Старый Elementor popup 1614 не должен участвовать
 * в обычном потоке страницы.
 */
body.home div[data-elementor-type="popup"][data-elementor-id="1614"]{
    display:none !important;
    position:absolute !important;
    width:0 !important;
    height:0 !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:0 !important;
    max-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    overflow:hidden !important;
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
}


/*
 * Никакого дополнительного пространства после нового footer.
 */
body.home #vostok-footer{
    margin-bottom:0 !important;
}

