/*-------------------
    Global styles
-------------------*/
:root
{
    --bg: #f5f5f5;
    --bg_light: #fff;
    --bg_dark: #131313;
    --bg_grey: #f0f0f0;
    --cont_padding: 24px;
    --cont_padding_double: calc(var(--cont_padding) * 2);
    --cont_padding_half: calc(var(--cont_padding) * .5);
    --content_width: 1290px;
    --sidebar_width: 370px;
    --scroll_width: 17px;
    --custom_scroll_width: 10px;
    --custom_scroll_height: 10px;
    --custom_scroll_border_radius: 0;
    --custom_scroll_scrollbar_color: var(--bg);
    --custom_scroll_scrollbar_thumb_color: var(--primary_color);
    --primary_color: #007fff;
    --primary_strong_color: #0760b9;
    --dark_color: #242424;
    --light_color: #fff;
    --grey_color: #828282;
    --gradient_primary: linear-gradient(96deg, var(--primary_color) 0%, var(--primary_strong_color) 100%);
    --gradient_dark: linear-gradient(114deg, #262626 0%, #121212 100%);
    --border_color: #e3e3e3;
    --font_size_xl: 20px;
    --font_size_l: 18px;
    --font_size: 16px;
    --font_size_s: 14px;
    --font_size_xs: 12px;
    --font_size_xxs: 10px;
    --font_size_title_l: 66px;
    --font_size_title: 40px;
    --font_size_title_s: 25px;
    --font_family_primary: 'Inter', 'Arial', sans-serif;
    --font_family_secondary: 'Manrope', 'Arial', sans-serif;
    --block_head_offset: 40px;
    --block_padding_l: 50px;
    --block_padding: 40px;
    --block_padding_s: 30px;
    --outside_gap_l: 110px;
    --outside_gap: 90px;
    --outside_gap_s: 80px;
    --outside_gap_xs: 70px;
    --outside_gap_xxs: 60px;
    --inner_gap_l: 25px;
    --inner_gap: 20px;
    --inner_gap_s: 15px;
    --inner_gap_xs: 10px;
    --inner_gap_xxs: 5px;
    --clip_path_corner_top_left: polygon(var(--block_padding) 0%, 100% 0%, 100% 100%, 0% 100%, 0% var(--block_padding));
    --clip_path_corner_top_left_small: polygon(var(--inner_gap) 0%, 100% 0%, 100% 100%, 0% 100%, 0% var(--inner_gap));
    --clip_path_corner_top_right: polygon(0% 0%, calc(100% - var(--block_padding)) 0%, 100% var(--block_padding), 100% 100%, 0% 100%);
    --clip_path_corner_top_right_small: polygon(0% 0%, calc(100% - var(--inner_gap)) 0%, 100% var(--inner_gap), 100% 100%, 0% 100%);
    --clip_path_corner_botton_right: polygon(0% 0%, 100% 0%, 100% calc(100% - var(--block_padding)), calc(100% - var(--block_padding)) 100%, 0% 100%);
    --clip_path_double_corners: polygon(var(--block_padding) 0%, 100% 0%, 100% calc(100% - var(--block_padding)), calc(100% - var(--block_padding)) 100%, 0% 100%, 0% var(--block_padding));
    --clip_path_double_corners_small: polygon(var(--inner_gap) 0%, 100% 0%, 100% calc(100% - var(--inner_gap)), calc(100% - var(--inner_gap)) 100%, 0% 100%, 0% var(--inner_gap));
    --zero_px: calc(0 * 1px);
}


::selection
{
    color: var(--light_color);
    background: var(--primary_color);
}

::-moz-selection
{
    color: var(--light_color);
    background: var(--primary_color);
}


html
{
    height: 100%;
    min-height: -moz-available;
    min-height: -webkit-fill-available;
    min-height:         fill-available;

    scrollbar-gutter: stable;
}


body
{
    height: 100%;
    min-height: -moz-available;
    min-height: -webkit-fill-available;
    min-height:         fill-available;

    font-family: var(--font_family_primary);
    font-size: var(--font_size);
    font-weight: 400;
    line-height: normal;

    color: var(--dark_color);


    &.lock
    {
        overflow: clip;
    }
}


button
{
    display: inline-block;

    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;

    cursor: pointer;
    vertical-align: top;

    color: inherit;
    border: none;
    background: none;
}


.wrap
{
    position: relative;

    display: flex;
    overflow: clip;
    flex-direction: column;

    min-height: 100%;

    background: var(--bg);


    & > .main
    {
        position: relative;

        display: flex;
        flex: 1 0 auto;
        flex-direction: column;
    }
}


.cont
{
    width: 100%;
    max-width: calc(var(--content_width) + var(--cont_padding_double));
    margin-inline: auto;
    padding-inline: var(--cont_padding);
}


.content_row > .cont.row
{
    display: flex;
    align-content: stretch;
    align-items: stretch;
    flex-wrap: wrap;
    justify-content: space-between;

    padding-inline: calc(var(--cont_padding) + var(--block_padding));


    .content
    {
        position: relative;

        display: flex;
        flex-direction: column;
        gap: var(--outside_gap_s);

        width: calc(100% - var(--sidebar_width) - 140px);
    }
}


.block
{
    margin-bottom: var(--outside_gap);


    &.no_m
    {
        margin-bottom: 0;
    }


    &.l_m
    {
        margin-bottom: var(--outside_gap_l);
    }


    &.s_m
    {
        margin-bottom: var(--outside_gap_s);
    }


    &.xs_m
    {
        margin-bottom: var(--outside_gap_xs);
    }


    &.xxs_m
    {
        margin-bottom: var(--outside_gap_xxs);
    }


    &.border_bottom
    {
        padding-bottom: var(--outside_gap_s);

        border-bottom: 1px solid #e6e6e6;
    }


    &.bg_dark
    {
        padding-block: var(--outside_gap_xs);

        color: var(--light_color);
        background: var(--bg_dark);
    }


    &.bg_dark + &.bg_dark
    {
        padding-top: 0;
    }
}


img.cover,
video.cover
{
    display: block;

    width: 100%;
    height: 100%;

    border-radius: inherit;

    object-fit: cover;
}



/*-------------------
    Custom scroll
-------------------*/
@media (hover: hover)
{
    html ::-webkit-scrollbar
    {
        width: var(--custom_scroll_width);
        height: var(--custom_scroll_height);

        border-radius: var(--custom_scroll_border_radius);
        background-color: var(--bg);
    }


    html ::-webkit-scrollbar-thumb
    {
        border-radius: var(--custom_scroll_border_radius);
        background-color: var(--custom_scroll_scrollbar_thumb_color);
    }
}



/*--------------
    Grid row
--------------*/
.grid_row
{
    display: flex;
    align-content: stretch;
    align-items: stretch;
    flex-wrap: wrap;
    justify-content: flex-start;

    margin-bottom: calc(var(--gap_y) * -1);
    margin-left: calc(var(--gap_x) * -1);

    --items_per_line: 3;
    --gap_x: var(--inner_gap);
    --gap_y: var(--inner_gap);


    &.centered
    {
        justify-content: center;
    }


    & > *
    {
        width: calc(100% / var(--items_per_line) * var(--width_multiplier, 1) - var(--gap_x));
        margin-bottom: var(--gap_y);
        margin-left: var(--gap_x);
    }
}



/*----------
    Tabs
----------*/
.tab_content
{
    display: none;

    opacity: 0;


    &.active
    {
        display: flex;

        transition: opacity .35s linear, display .35s allow-discrete;

        opacity: 1;


        @starting-style
        {
            opacity: 0;
        }
    }
}



/*----------------
    Pagination
----------------*/
.pagination
{
    display: flex;
    align-content: center;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--inner_gap_xs);

    margin-top: var(--outside_gap_xxs);


    a,
    .sep
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: center;

        width: 54px;

        font-size: var(--font_size_s);
        font-weight: 500;
        line-height: calc(100% + 6px);

        transition: .2s linear;
        text-decoration: none;

        opacity: .3;
        color: currentColor;

        aspect-ratio: 1 / 1;


        @media (hover: hover) and (pointer: fine)
        {
            &:hover
            {
                opacity: 1;
                color: var(--primary_color);
            }
        }


        &.active
        {
            opacity: 1;
            background: var(--light_color);
        }


        &.prev,
        &.next
        {
            transition: transform .3s linear;

            opacity: 1;
            color: var(--light_color);
            background: var(--primary_color);


            .icon
            {
                display: block;

                width: 11px;

                aspect-ratio: 1 / 1;
            }


            @media (hover: hover) and (pointer: fine)
            {
                &:hover
                {
                    transform: scale(1.1);
                }
            }
        }


        &.prev
        {
            .icon
            {
                transform: scale(-1, 1);
            }
        }


        &.disabled
        {
            pointer-events: none;

            color: #c0cad4;
            background: #f1f2f4;
        }
    }


    .sep
    {
        pointer-events: none;
    }
}



/*---------------
    Accordion
---------------*/
.accordion_item
{
    border: 1px solid #2d2d2d;


    .head
    {
        position: relative;

        padding-block: var(--inner_gap_l);
        padding-inline: var(--block_padding_s) calc(70px + var(--block_padding_s));

        cursor: pointer;


        .title
        {
            line-height: 143.75%;

            transition: opacity .2s linear;

            opacity: .5;
        }


        .icon
        {
            position: absolute;
            top: -1px;
            right: -1px;
            bottom: -1px;

            display: flex;
            align-content: center;
            align-items: center;
            flex-wrap: wrap;
            justify-content: center;

            width: 70px;

            transition: .2s linear;

            border-left: 1px solid #2d2d2d;
            background: rgba(45, 45, 45, .15);


            svg
            {
                display: block;

                width: 20px;

                transition: transform .2s linear;

                aspect-ratio: 1 / 1;
            }
        }


        @media (hover: hover) and (pointer: fine)
        {
            &:hover
            {
                .title
                {
                    opacity: 1;
                }


                .icon
                {
                    background: rgba(45, 45, 45, .5);
                }
            }
        }
    }


    .data
    {
        display: none;

        padding-block: var(--inner_gap) var(--block_padding_s);
        padding-inline: var(--block_padding_s);

        border-top: 1px solid #2d2d2d;


        .text_block
        {
            width: 569px;
            max-width: 100%;

            opacity: .7;
        }
    }


    &.active
    {
        .head
        {
            .title
            {
                opacity: 1;
            }


            .icon
            {
                color: var(--dark_color);
                background: var(--bg_light);


                svg
                {
                    transform: rotate(135deg);
                }
            }
        }
    }
}


.accordion_item + .accordion_item
{
    margin-top: -1px;
}



/*------------
    Header
------------*/
header
{
    position: relative;
    z-index: 10;
    top: 0;
    left: 0;

    width: 100%;


    &.absolute
    {
        position: absolute;
    }


    &.light
    {
        &:before
        {
            background: rgba(255, 255, 255, .2);
        }


        .logo
        {
            border-color: rgba(255, 255, 255, .2);
        }


        .menu
        {
            .item
            {
                & > a
                {
                    opacity: .6;
                    color: var(--light_color);


                    &.hovered
                    {
                        opacity: 1;
                    }
                }
            }
        }


        .messengers
        {
            a
            {
                color: var(--light_color);
                background: rgba(255, 255, 255, .10);

                backdrop-filter: blur(15.90px);
            }
        }


        .phone
        {
            color: var(--light_color);


            .icon
            {
                opacity: .3;
                color: var(--light_color);
            }
        }
    }


    &:before
    {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;

        display: block;

        width: 1440px;
        max-width: 100%;
        height: 1px;
        margin-inline: auto;

        content: '';
        pointer-events: none;

        background: var(--border_color);
    }


    .cont
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: var(--inner_gap_l);
    }


    .logo
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: flex-start;

        height: 80px;
        padding-block: var(--inner_gap_s);
        padding-inline: var(--inner_gap) var(--block_padding);

        text-decoration: none;

        color: currentColor;
        border-right: 1px solid var(--border_color);


        img
        {
            display: block;

            width: 121px;
            height: 26px;
        }
    }


    .menu
    {
        position: relative;

        display: flex;
        align-content: flex-start;
        align-items: flex-start;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: var(--block_padding);

        margin-inline: var(--inner_gap_s) auto;


        .item
        {
            & > a
            {
                position: relative;

                display: flex;
                align-content: center;
                align-items: center;
                flex-wrap: wrap;
                justify-content: center;
                gap: var(--inner_gap_xxs);

                height: 80px;

                font-size: var(--font_size_xs);
                font-weight: 500;

                transition: .2s linear;
                text-decoration: none;

                opacity: .6;
                color: currentColor;


                &.sub_link:after
                {
                    position: absolute;
                    right: 0;
                    bottom: 0;
                    left: 0;

                    display: none;

                    width: 10px;
                    height: 5px;
                    margin-inline: auto;

                    content: '';
                    transition: opacity .2s linear, display .2s allow-discrete;
                    pointer-events: none;

                    opacity: 0;
                    border-bottom: 5px solid var(--bg_light);
                    border-inline: 5px solid transparent;
                }


                .arr
                {
                    display: block;

                    width: 6px;

                    aspect-ratio: 1 / .666;
                }


                .current-menu-item &
                {
                    opacity: 1;
                    color: var(--primary_color);
                }
            }


            @media (hover: hover) and (pointer: fine)
            {
                &:hover
                {
                    & > a
                    {
                        opacity: 1;


                        &:after
                        {
                            display: block;

                            opacity: 1;


                            @starting-style
                            {
                                opacity: 0;
                            }
                        }
                    }


                    .sub
                    {
                        display: block;

                        opacity: 1;


                        @starting-style
                        {
                            opacity: 0;
                        }
                    }
                }
            }


            .hovered
            {
                opacity: 1;


                &:after
                {
                    display: block;

                    opacity: 1;


                    @starting-style
                    {
                        opacity: 0;
                    }
                }


                & + .sub
                {
                    display: block;

                    opacity: 1;


                    @starting-style
                    {
                        opacity: 0;
                    }
                }
            }
        }


        .sub
        {
            position: absolute;
            z-index: 5;
            top: 100%;
            left: -40px;

            display: none;

            width: fit-content;
            padding: var(--inner_gap_xs);

            transition: opacity .2s linear, display .2s allow-discrete;

            opacity: 0;
            background: var(--bg_light);


            .row
            {
                display: flex;
                align-content: stretch;
                align-items: stretch;
                flex-wrap: nowrap;
                justify-content: flex-start;
                gap: var(--inner_gap_xs);
            }


            .section
            {
                display: flex;
                flex-direction: column;
                gap: var(--inner_gap_s);

                padding-block: var(--inner_gap_s);
                padding-inline: var(--inner_gap);

                background: #f4f8fc;
            }


            .title
            {
                font-size: var(--font_size_xs);
                font-weight: 500;
                line-height: 125%;

                color: #9eafbe;


                a
                {
                    display: flex;
                    align-content: center;
                    align-items: center;
                    flex-wrap: wrap;
                    justify-content: flex-start;
                    gap: var(--inner_gap_xxs);

                    width: fit-content;

                    transition: color .2s linear;
                    text-decoration: none;

                    color: currentColor;




                    .icon
                    {
                        display: block;

                        width: 6px;

                        aspect-ratio: 1 / 1;
                    }


                    @media (hover: hover) and (pointer: fine)
                    {
                        &:hover
                        {
                            color: var(--primary_color);
                        }
                    }
                }
            }


            .items
            {
                display: flex;
                flex-direction: column;
                gap: var(--inner_gap_s);

                font-size: var(--font_size_xs);
                font-weight: 500;
                line-height: 125%;


                &.columns
                {
                    display: block;
                    column-gap: var(--inner_gap);

                    column-count: 2;


                    & > *
                    {
                        transform: translateZ(0);

                        --webkit-column-break-inside: avoid;
                        page-break-inside: avoid;
                        break-inside: avoid;
                    }


                    & > * + *
                    {
                        margin-top: var(--inner_gap_s);
                    }
                }


                a
                {
                    display: inline-block;

                    transition: color .2s linear;
                    vertical-align: top;
                    white-space: nowrap;
                    text-decoration: none;

                    color: currentColor;

                     &.current-menu-item{
                    	color: var(--primary_color);
                    }


                    @media (hover: hover) and (pointer: fine)
                    {
                        &:hover
                        {
                            color: var(--primary_color);
                        }
                    }
                }
            }


            .bottom
            {
                display: flex;
                align-content: center;
                align-items: center;
                flex-wrap: wrap;
                justify-content: space-between;
                gap: var(--inner_gap);

                margin-top: var(--inner_gap_l);
                padding-block: 0 var(--inner_gap);
                padding-inline: var(--inner_gap);


                .label
                {
                    width: calc(100% - 160px - var(--inner_gap));

                    font-size: var(--font_size_xs);
                    line-height: 125%;

                    opacity: .5;
                }


                .link
                {
                    display: flex;
                    align-content: center;
                    align-items: center;
                    flex-wrap: wrap;
                    justify-content: center;
                    gap: var(--inner_gap_xxs);

                    width: 160px;
                    max-width: 100%;
                    height: 37px;

                    font-size: var(--font_size_xs);
                    font-weight: 600;

                    transition: .2s linear;
                    text-decoration: none;

                    color: currentColor;
                    border: 1px solid #d1dfec;


                    .icon
                    {
                        display: block;

                        width: 5px;

                        transition: color .2s linear;
                        transform: translateY(1px);

                        color: var(--primary_color);

                        aspect-ratio: 1 / 1.5;
                    }


                    @media (hover: hover) and (pointer: fine)
                    {
                        &:hover
                        {
                            color: var(--light_color);
                            border-color: var(--primary_color);
                            background: var(--primary_color);


                            .icon
                            {
                                color: var(--light_color);
                            }
                        }
                    }
                }
            }
        }
    }


    .messengers
    {
        display: flex;
        align-content: flex-start;
        align-items: flex-start;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: var(--inner_gap_xxs);


        a
        {
            display: flex;
            align-content: center;
            align-items: center;
            flex-wrap: wrap;
            justify-content: center;

            width: 36px;

            transition: .2s linear;
            text-decoration: none;

            color: #c8c8c8;
            background: rgba(0, 0, 0, .03);

            aspect-ratio: 1 / 1;


            .icon
            {
                display: block;


                .vk_link &
                {
                    width: 18px;
                    height: 10px;
                }


                .max_link &
                {
                    width: 14px;
                    height: 14px;
                }


                .tg_link &
                {
                    width: 16px;
                    height: 13px;
                }

                .whatsapp_link &
                {
                    width: 16px;
                    height: 16px;
                }
            }


            @media (hover: hover) and (pointer: fine)
            {
                &:hover
                {
                    color: var(--dark_color);
                    background: var(--light_color);
                }
            }
        }
    }


    .phone
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: var(--inner_gap_xs);


        .icon
        {
            display: block;

            width: 20px;

            color: #aac0d6;

            aspect-ratio: 1 / 1;
        }


        a
        {
            font-size: var(--font_size_xs);
            font-weight: 700;

            transition: color .2s linear;
            white-space: nowrap;
            text-decoration: none;

            color: currentColor;


            @media (hover: hover) and (pointer: fine)
            {
                &:hover
                {
                    color: var(--primary_color);
                }
            }
        }


        .callback_btn
        {
            display: block;

            margin-top: 1px;
            margin-left: auto;

            font-size: 9px;
            font-weight: 600;

            transition: color .2s linear;

            color: var(--primary_color);
            border-bottom: 1px solid;


            @media (hover: hover) and (pointer: fine)
            {
                &:hover
                {
                    color: #4ea6ff;
                }
            }
        }
    }


    .btn
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--inner_gap_xxs);

        height: 50px;
        padding-inline: var(--block_padding_s);

        font-size: var(--font_size_xs);
        font-weight: 600;

        transition: transform .3s linear;

        color: var(--light_color);
        background: var(--gradient_primary);


        .icon
        {
            display: block;

            width: 5px;

            transform: translateY(2px);

            aspect-ratio: 1 / 1.5;
        }


        @media (hover: hover) and (pointer: fine)
        {
            &:hover
            {
                transform: scale(1.1);
            }
        }
    }
}



/*-----------------
    Mob. header
-----------------*/
.mob_header
{
    z-index: 10;
    top: 0;
    left: 0;

    display: none;

    width: 100%;

    border-bottom: 1px solid var(--border_color);


    &.absolute
    {
        position: absolute;
    }


    &.light
    {
        border-color: rgba(255, 255, 255, .2);


        .phone_link
        {
            color: rgba(255, 255, 255, .5);
            background: rgba(255, 255, 255, .10);

            backdrop-filter: blur(8.3px);
        }
    }


    .cont
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: space-between;

        padding: 0;


        & > *
        {
            z-index: 9;
        }
    }


    .logo
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: flex-start;

        height: 60px;
        margin-right: auto;
        padding-inline: var(--cont_padding);

        text-decoration: none;

        color: currentColor;


        img
        {
            display: block;

            width: 121px;
            height: 26px;
        }
    }


    .phone_link
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: center;

        width: 60px;

        text-decoration: none;

        color: rgba(156, 156, 156, .5);
        background: rgba(0, 0, 0, .03);

        aspect-ratio: 1 / 1;


        .icon
        {
            display: block;

            width: 24px;

            aspect-ratio: 1 / 1;
        }
    }



    .mob_menu_btn
    {
        z-index: 10;

        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: center;

        width: 60px;

        color: var(--light_color);
        background: var(--gradient_primary);

        aspect-ratio: 1 / 1;


        span
        {
            position: relative;

            display: block;

            width: 24px;
            height: 2px;

            transition: background .2s linear;

            background: currentColor;


            &:before,
            &:after
            {
                position: absolute;
                top: -8px;
                left: 0;

                display: block;

                width: 100%;
                height: 100%;

                content: '';
                transition: .2s linear;

                background: currentColor;
            }


            &:after
            {
                top: 8px;
            }
        }


        &.active
        {
            span
            {
                background: transparent;


                &:before
                {
                    top: 0;

                    transform: rotate(-45deg);
                }


                &:after
                {
                    top: 0;

                    transform: rotate(45deg);
                }
            }
        }
    }
}



/*---------------
    Mob. menu
---------------*/
.mob_menu
{
    position: fixed;
    z-index: 20;
    top: 0;
    left: 0;

    display: none;

    width: 100%;
    height: 100%;
    min-height: -moz-available;
    min-height: -webkit-fill-available;
    min-height:         fill-available;
    padding-top: 60px;

    transition: opacity .3s linear, display .3s allow-discrete;

    opacity: 0;
    background: rgba(36, 36, 36, .80);


    &.show
    {
        display: block;

        opacity: 1;


        @starting-style
        {
            opacity: 0;
        }
    }


    .scroll
    {
        display: flex;
        overflow: auto;
        flex-direction: column;
        gap: var(--block_padding);

        width: 367px;
        max-width: 100%;
        height: 100%;
        min-height: -moz-available;
        min-height: -webkit-fill-available;
        min-height:         fill-available;
        margin-left: auto;
        padding-block: var(--cont_padding);
        padding-block: 46px var(--block_padding_s);
        padding-inline: var(--block_padding_s);

        background: var(--bg);

        overscroll-behavior-y: contain;
    }


    .menu
    {
        display: flex;
        align-content: flex-start;
        align-items: flex-start;
        flex-wrap: wrap;
        justify-content: flex-start;
        column-gap: 55px;
        row-gap: var(--inner_gap_l);

        font-size: 15px;
        font-weight: 500;
        line-height: 120%;


        a
        {
            display: inline-block;

            vertical-align: top;
            text-decoration: none;

            color: currentColor;
        }
    }


    .soulutions_btn
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: space-between;

        width: 100%;
        height: 60px;
        padding-inline: var(--block_padding_s);

        font-size: 15px;
        font-weight: 500;
        line-height: 120%;

        text-align: left;

        background: rgba(0, 127, 255, .05);


        .icon
        {
            display: block;

            width: 8px;

            transition: transform .2s linear;

            color: var(--primary_color);

            aspect-ratio: 1 / .75;
        }


        &.active
        {
            background: rgba(0, 127, 255, .1);


            .icon
            {
                transform: rotate(180deg);
            }
        }
    }


    .soulutions_items
    {
        display: none;

        background: rgba(0, 127, 255, .05);


        .section
        {
            display: flex;
            flex-direction: column;
            gap: var(--inner_gap_s);

            padding: var(--block_padding_s);
        }


        .section + .section
        {
            border-top: 1px solid #e0e6eb;
        }


        .title
        {
            font-size: var(--font_size_xs);
            font-weight: 500;
            line-height: 125%;

            color: #9eafbe;


            a
            {
                display: flex;
                align-content: center;
                align-items: center;
                flex-wrap: wrap;
                justify-content: flex-start;
                gap: var(--inner_gap_xxs);

                width: fit-content;

                text-decoration: none;

                color: currentColor;


                .icon
                {
                    display: block;

                    width: 6px;

                    aspect-ratio: 1 / 1;
                }
            }
        }


        .items
        {
            display: flex;
            flex-direction: column;
            gap: var(--inner_gap_s);

            font-size: var(--font_size_xs);
            font-weight: 500;
            line-height: 125%;


            a
            {
                display: inline-block;

                vertical-align: top;
               /* white-space: nowrap;*/
                text-decoration: none;

                color: currentColor;
            }
        }
    }


    .soulutions_bottom
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-direction: column;
        gap: var(--inner_gap_s);

        padding: var(--block_padding_s);

        border-top: 1px solid #e0e6eb;


        .label
        {
            font-size: var(--font_size_xs);
            line-height: 125%;

            opacity: .5;
        }


        .link
        {
            display: flex;
            align-content: center;
            align-items: center;
            flex-wrap: wrap;
            justify-content: center;
            gap: var(--inner_gap_xxs);

            width: 100%;
            height: 55px;

            font-size: var(--font_size_xs);
            font-weight: 600;

            text-decoration: none;

            color: currentColor;
            border: 1px solid #d1dfec;


            .icon
            {
                display: block;

                width: 5px;

                transform: translateY(1px);

                color: var(--primary_color);

                aspect-ratio: 1 / 1.5;
            }
        }
    }


    .bottom
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-direction: column;
        gap: var(--inner_gap_l);

        margin-top: auto;
    }


    .messengers
    {
        width: 100%;


        .grid_row
        {
            --gap_x: 3px;
            --gap_y: 3px;
        }


        a
        {
            display: flex;
            align-content: center;
            align-items: center;
            flex-wrap: wrap;
            justify-content: center;

            height: 50px;

            text-decoration: none;

            color: #c8c8c8;
            background: rgba(0, 0, 0, .03);


            .icon
            {
                display: block;


                .vk_link &
                {
                    width: 18px;
                    height: 10px;
                }


                .max_link &
                {
                    width: 14px;
                    height: 14px;
                }


                .tg_link &
                {
                    width: 16px;
                    height: 13px;
                }

                .whatsapp_link &
                {
                    width: 16px;
                    height: 16px;
                }
            }
        }
    }


    .phone
    {
        display: flex;
        align-content: flex-start;
        align-items: flex-start;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: var(--inner_gap_xs);


        .icon
        {
            display: block;

            width: 20px;

            color: #aac0d6;

            aspect-ratio: 1 / 1;
        }


        a
        {
            font-weight: 700;

            white-space: nowrap;
            text-decoration: none;

            color: currentColor;
        }


        .callback_btn
        {
            display: block;

            margin-inline: auto;
            margin-top: var(--inner_gap_xxs);

            font-size: var(--font_size_xs);
            font-weight: 600;

            color: var(--primary_color);
            border-bottom: 1px solid;
        }
    }


    .btn
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--inner_gap_xxs);

        width: 100%;
        height: 55px;
        padding-inline: var(--block_padding_s);

        font-size: var(--font_size_xs);
        font-weight: 600;

        color: var(--light_color);
        background: var(--gradient_primary);


        .icon
        {
            display: block;

            width: 5px;

            transform: translateY(2px);

            aspect-ratio: 1 / 1.5;
        }
    }
}



/*---------------
    Page head
---------------*/
.page_head
{
    margin-bottom: var(--block_padding);
    padding-top: var(--outside_gap_xxs);


    .cont
    {
        display: flex;
        flex-direction: column;
        gap: var(--block_padding_s);
    }


    .breadcrumbs
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: flex-start;
        column-gap: var(--inner_gap_xs);
        row-gap: var(--inner_gap_xxs);

        padding-inline: var(--block_padding);

        font-size: var(--font_size_xs);


        a
        {
            transition: opacity .2s linear;
            text-decoration: none;

            opacity: .3;
            color: currentColor;


            @media (hover: hover) and (pointer: fine)
            {
                &:hover
                {
                    opacity: 1;
                }
            }
        }


        .sep
        {
            opacity: .3;
        }


        .current
        {
            opacity: .8;
        }
    }


    .row
    {
        display: flex;
        align-content: flex-start;
        align-items: flex-start;
        flex-wrap: wrap;
        justify-content: space-between;

        padding-inline: var(--block_padding);


        .page_title
        {
            width: 668px;
            max-width: calc(100% - 420px - var(--outside_gap_xxs));
            padding-inline: 0;
        }

        .col
        {
            display: flex;
            flex-direction: column;
            gap: var(--inner_gap);

            width: 420px;
        }


        .page_desc
        {
            padding-inline: 0;


            &.s_w
            {
                width: 354px;
            }
        }
    }


    .page_title
    {
        padding-inline: var(--block_padding);

        font-size: var(--font_size_title);
        font-weight: 400;
        line-height: calc(100% + 11px);


        &.xl_size
        {
            font-size: var(--font_size_title_l);
        }
    }


    .page_desc
    {
        display: flex;
        flex-direction: column;
        gap: var(--inner_gap_s);

        max-width: 100%;
    }


    .btns
    {
        display: flex;
        align-content: flex-start;
        align-items: flex-start;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: var(--inner_gap);


        .btn
        {
            display: flex;
            align-content: center;
            align-items: center;
            flex-wrap: wrap;
            justify-content: center;
            gap: var(--inner_gap_xxs);

            width: calc(50% - var(--inner_gap) / 2);
            height: 60px;
            padding-inline: var(--block_padding_s);

            font-size: var(--font_size_xs);
            font-weight: 600;

            text-align: center;
            text-decoration: none;

            color: currentColor;


            &.primary
            {
                transition: transform .2s linear;

                color: var(--light_color);
                background: var(--gradient_primary);

                clip-path: var(--clip_path_double_corners_small);


                @media (hover: hover) and (pointer: fine)
                {
                    &:hover
                    {
                        transform: scale(1.1);
                    }
                }
            }


            &.outlined
            {
                border: 1px solid #d1dfec;
            }


            .icon
            {
                display: block;

                width: 5px;

                transform: translateY(1px);

                aspect-ratio: 1 / 1.5;
            }
        }
    }
}



/*-------------
    Sidebar
-------------*/
aside
{
    position: relative;
    z-index: 3;

    display: flex;
    flex-direction: column;
    gap: var(--block_padding);

    width: var(--sidebar_width);
    max-width: 100%;


    .anchors
    {
        position: sticky;
        top: var(--inner_gap);

        display: flex;
        flex-direction: column;
        gap: var(--inner_gap);

        padding: var(--block_padding);

        background: var(--bg_light);

        clip-path: var(--clip_path_corner_top_left);


        .title
        {
            font-size: 11px;
            font-weight: 600;
            line-height: 127.273%;

            text-transform: uppercase;

            color: var(--primary_color);
        }


        .items
        {
            display: flex;
            flex-direction: column;
            gap: var(--inner_gap_s);


            .sub
            {
                display: flex;
                flex-direction: column;
                gap: var(--inner_gap_s);

                padding-block: var(--inner_gap_xs) 0;
                padding-left: var(--block_padding_s);
            }


            .btn
            {
                font-size: 13px;
                line-height: 138.462%;

                transition: opacity .2s linear;

                opacity: .4;
                text-align: left;


                @media (hover: hover) and (pointer: fine)
                {
                    &:hover
                    {
                        opacity: 1;
                    }
                }
            }
        }
    }
}



/*----------------
    Block head
----------------*/
.block_head
{
    display: flex;
    flex-direction: column;
    gap: var(--inner_gap_s);

    margin-bottom: var(--block_head_offset);
    padding-inline: var(--block_padding);


    &.center
    {
        align-content: center;
        align-items: center;

        text-align: center;
    }


    &.row
    {
        align-content: center;
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: var(--inner_gap);

        padding-inline: var(--block_padding);


        .desc
        {
            width: 385px;
        }
    }


    .title
    {
        font-family: var(--font_family_secondary);
        font-size: var(--font_size_title);
        font-weight: 400;
        line-height: calc(100% + 6px);


        &.soft
        {
            opacity: .3;
        }


        span
        {
            color: var(--primary_color);
        }
    }


    .logo
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: center;

        width: 170px;
        height: 50px;
        margin-right: auto;

        border: 1px solid #353535;


        img
        {
            display: block;

            max-width: 100%;
            max-height: 100%;
        }
    }


    .desc
    {
        max-width: 100%;

        font-size: var(--font_size_s);
        font-weight: 300;
        line-height: calc(100% + 8px);


        &.border
        {
            padding-left: var(--inner_gap_s);

            border-left: 1px solid var(--primary_color);
        }
    }
}



/*------------------
    Form elements
------------------*/
.form
{
    --form_border_color: #fbfbfb;
    --form_border_color_focus: #fbfbfb;
    --form_error_color: red;
    --form_bg_color: #fbfbfb;
    --form_placeholder_color: rgba(36, 36, 36, .4);
    --form_line_gap: var(--inner_gap_s);
    --form_input_height: 55px;
    --form_input_padding_inline: var(--block_padding_s);


    ::-webkit-input-placeholder
    {
        color: var(--form_placeholder_color);
    }

    :-moz-placeholder
    {
        color: var(--form_placeholder_color);
    }

    ::-moz-placeholder
    {
        opacity: 1;
        color: var(--form_placeholder_color);
    }

    :-ms-input-placeholder
    {
        color: var(--form_placeholder_color);
    }


    .line
    {
        margin-bottom: var(--form_line_gap);
    }


    .field
    {
        position: relative;
    }


    .input
    {
        display: block;

        width: 100%;
        height: var(--form_input_height);
        padding-inline: var(--form_input_padding_inline);

        font-family: var(--font_family_primary);
        font-size: 13px;

        transition: border-color .2s linear;

        color: var(--dark_color);
        border: 1px solid var(--form_border_color);
        border-radius: var(--form_border_radius);
        background: var(--form_bg_color);


        &:-webkit-autofill
        {
            -webkit-box-shadow: inset 0 0 0 calc(var(--form_input_height) / 2) var(--form_bg_color) !important;
        }


        &:focus
        {
            border-color: var(--form_border_color_focus);
        }


        &.error
        {
            border-color: var(--form_error_color);
        }
    }


    .error_text
    {
        margin-top: var(--inner_gap_xxs);

        font-size: var(--font_size_xs);

        color: var(--form_error_color);
    }


    .checkbox
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 8px;

        padding-inline: var(--inner_gap_xs) 0;

        font-size: 11px;
        line-height: 181.818%;

        cursor: pointer;


        input
        {
            display: none;


            &:checked ~ .check
            {
                background: var(--primary_color);


                img
                {
                    opacity: 1;
                }
            }
        }


        .check
        {
            display: flex;
            align-content: center;
            align-items: center;
            flex-wrap: wrap;
            justify-content: center;

            width: 15px;

            transition: background .2s linear;

            background: #f7f7f7;

            aspect-ratio: 1 / 1;


            img
            {
                display: block;

                width: 10px;

                transition: opacity .2s linear;

                opacity: 0;
            }
        }


        span
        {
            max-width: calc(100% - 25px);

            transition: opacity .2s linear;

            /*opacity: .4;*/
        }


        a
        {
            color: var(--primary_color);
        }


        @media (hover: hover) and (pointer: fine)
        {
            &:hover
            {
                span
                {
                    opacity: 1;
                }
            }
        }
    }


    .submit
    {
        padding-top: var(--inner_gap_xxs);
    }


    .submit_btn
    {
        display: flex;
        align-content: center;
        align-items: center;
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--inner_gap_xxs);

        width: 100%;
        height: 60px;
        padding-inline: var(--block_padding);

        font-size: var(--font_size_xs);
        font-weight: 600;

        transition: transform .2s linear;

        color: var(--light_color);
        background: var(--gradient_primary);

        clip-path: var(--clip_path_double_corners_small);


        .icon
        {
            display: block;

            width: 5px;

            transform: translateY(1px);

            aspect-ratio: 1 / 1.5;
        }


        @media (hover: hover) and (pointer: fine)
        {
            &:hover
            {
                transform: scale(1.1);
            }
        }
    }
}



/*----------------
    Typography
----------------*/
.text_block
{
    font-size: 13px;
    line-height: 184.615%;


    &.pad_inline
    {
        padding-inline: var(--block_padding);
    }


    & > *
    {
        margin-bottom: var(--inner_gap_s);


        .l_offset &
        {
            margin-bottom: var(--inner_gap_l);
        }
    }


    & > :last-child
    {
        margin-bottom: 0 !important;
    }

    & > :first-child
    {
        margin-top: 0 !important;
    }


    hr
    {
        display: block;

        width: 100%;
        height: 1px;
        margin-block: var(--block_padding);

        border: none;
        background: #e6e6e6;
    }


    h1
    {
        margin-bottom: var(--inner_gap);

        font-size: 35px;
        font-weight: 400;
        line-height: 117.143%;
    }

    h2
    {
        margin-bottom: var(--inner_gap);

        font-size: 25px;
        font-weight: 400;
        line-height: 120%;
    }

    h3
    {
        margin-bottom: var(--inner_gap_xs);

        font-size: 20px;
        font-weight: 400;
        line-height: 150%;
    }

    h4
    {
        margin-bottom: var(--inner_gap_xs);

        font-size: 17px;
        font-weight: 400;
        line-height: 141.176%;
    }


    * + h2,
    * + h3,
    * + h4
    {
        margin-top: var(--block_padding);
    }


    h1 + *,
    h2 + *,
    h3 + *,
    h4 + *
    {
        margin-top: 0 !important;
    }


    img
    {
        display: block;

        max-width: 100%;
    }


    .image_slider
    {
        margin-block: var(--block_padding_s) var(--outside_gap_xxs);


        .swiper
        {
            padding-bottom: var(--block_padding_s);

            --spaceBetween: var(--inner_gap_xs);
            --slidesPerView: 1;


            &:not(.swiper-initialized)
            {
                .swiper-wrapper
                {
                    gap: var(--spaceBetween);
                }
            }
        }


        .image
        {
            display: block;

            margin: 0;

            text-decoration: none;

            color: currentColor;
        }


        .thumb
        {
            display: block;

            background: var(--bg_grey);

            aspect-ratio: 1 / .543;


            img
            {
                min-height: 320px;
            }
        }
    }


    .images
    {
        display: flex;
        align-content: flex-start;
        align-items: flex-start;
        flex-wrap: nowrap;
        justify-content: flex-start;
        gap: var(--inner_gap);

        margin-block: var(--block_padding);


        .image
        {
            display: block;

            width: 100%;
            margin: 0;

            text-decoration: none;

            color: currentColor;
        }


        .thumb
        {
            &,
            img
            {
                display: block;

                width: 100%;
            }
        }
    }


    ul
    {
        display: flex;
        flex-direction: column;
        gap: var(--inner_gap_s);

        font-size: 13px;
        line-height: 123.077%;


        ul,
        ol
        {
            margin-top: var(--inner_gap_s);
        }


        & > li
        {
            position: relative;

            display: block;
            overflow: hidden;

            padding-left: var(--inner_gap_s);

            list-style-type: none;


            &:before
            {
                position: absolute;
                top: .5lh;
                left: 1px;

                display: block;

                width: 6px;

                content: '';
                transform: translateY(-50%) rotate(45deg);

                background: var(--primary_color);

                aspect-ratio: 1 / 1;
            }
        }
    }


    ol
    {
        display: flex;
        flex-direction: column;
        gap: var(--inner_gap_s);

        counter-reset: li;


        ul,
        ol
        {
            margin-top: var(--inner_gap_s);
        }


        & > li
        {
            position: relative;

            display: block;
            overflow: hidden;

            padding-left: 23px;

            list-style-type: none;


            &:before
            {
                position: absolute;
                top: 3px;
                left: 0;

                width: 16px;

                font-size: 11px;
                font-weight: 600;
                line-height: 16px;

                content: counter(li);
                counter-increment: li;
                text-align: center;

                color: var(--light_color);
                background: var(--primary_color);

                aspect-ratio: 1 / 1;
            }
        }
    }


    b,
    strong
    {
        font-weight: 600;
    }


    a
    {
        transition: color .2s linear;

        color: currentColor;

        text-decoration-thickness: 1px;


        @media (hover: hover) and (pointer: fine)
        {
            &:hover
            {
                text-decoration: none;

                color: var(--primary_color);
            }
        }
    }
}



/*------------
    Footer
------------*/
footer
{
    position: relative;

    overflow: hidden;

    padding-block: var(--block_padding_l);

    color: var(--light_color);
    background: var(--gradient_dark);


    .cont
    {
        position: relative;
        z-index: 3;

        display: flex;
        align-content: stretch;
        align-items: stretch;
        flex-wrap: wrap;
        justify-content: space-between;
    }


    .col
    {
        display: flex;
        flex-direction: column;
        gap: var(--inner_gap_xs);
    }


    .logo
    {
        display: block;

        text-decoration: none;

        color: currentColor;


        img
        {
            display: block;

            width: 98px;
            height: 21px;
        }
    }


    .copyright
    {
        font-size: var(--font_size_xxs);

        opacity: .6;
    }


    .links
    {
        display: flex;
        flex-direction: column;
        gap: var(--inner_gap_s);

        margin-top: auto;

        font-size: var(--font_size_xxs);


        a
        {
            transition: opacity .2s linear;

            opacity: .6;
            color: currentColor;

            text-decoration-line: underline;
            text-decoration-style: solid;
            text-decoration-skip-ink: none;
            text-decoration-thickness: auto;
            text-underline-offset: auto;
            text-underline-position: from-font;


            @media (hover: hover) and (pointer: fine)
            {
                &:hover
                {
                    opacity: 1;
                }
            }
        }
    }


    .menu
    {
        display: flex;
        flex-direction: column;
        gap: var(--inner_gap_s);


        .title
        {
            font-size: var(--font_size_xxs);
            font-weight: 500;

            opacity: .2;
        }


        .items
        {
            display: flex;
            flex-direction: column;
            gap: var(--inner_gap_s);

            font-size: var(--font_size_xxs);
            font-weight: 500;


            a
            {
                display: inline-block;

                transition: .2s linear;
                vertical-align: top;
                text-decoration: none;

                opacity: .6;
                color: currentColor;


                .icon
                {
                    display: inline-block;

                    width: 4px;

                    transform: translateY(1px);
                    transform: translateY(1px);
                    vertical-align: middle;

                    aspect-ratio: 1 / 1.5;
                }


                @media (hover: hover) and (pointer: fine)
                {
                    &:hover
                    {
                        opacity: 1;
                        color: var(--primary_color);
                    }
                }
            }
        }
    }


    .contacts
    {
        display: flex;
        flex-direction: column;
        gap: var(--inner_gap_s);


        .title
        {
            font-size: var(--font_size_xxs);
            font-weight: 500;

            opacity: .2;
        }


        .item
        {
            display: flex;
            align-content: flex-start;
            align-items: flex-start;
            flex-wrap: wrap;
            justify-content: space-between;
            gap: var(--inner_gap_xxs);

            font-size: var(--font_size_xxs);
            line-height: 160%;


            .label
            {
                width: 50px;

                opacity: .2;
            }


            .val
            {
                width: calc(100% - 55px);

                font-weight: 500;

                
                &:not(:has(a)) {
                    opacity: .6;
                }

                a
                {
                    white-space: nowrap;
                    text-decoration: none;

                    color: currentColor;
                    transition: .2s linear;
                    opacity: .6;

                    @media (hover: hover) and (pointer: fine)
                    {
                        &:hover
                        {
                            opacity: 1;
                            color: var(--primary_color);
                        }
                    }
                }
            }
        }


        .messengers
        {
            display: flex;
            align-content: flex-start;
            align-items: flex-start;
            flex-wrap: wrap;
            justify-content: flex-start;
            gap: var(--inner_gap_xs);

            margin-top: var(--inner_gap_xxs);


            a
            {
                display: flex;
                align-content: center;
                align-items: center;
                flex-wrap: wrap;
                justify-content: center;

                width: 35px;

                transition: .2s linear;
                text-decoration: none;

                color: rgba(255,255,255, .3);
                background: rgba(255,255,255, .02);

                aspect-ratio: 1 / 1;


                .icon
                {
                    display: block;


                    .vk_link &
                    {
                        width: 18px;
                        height: 10px;
                    }


                    .max_link &
                    {
                        width: 14px;
                        height: 14px;
                    }


                    .tg_link &
                    {
                        width: 16px;
                        height: 13px;
                    }

                    .whatsapp_link &
                    {
                        width: 16px;
                        height: 16px;
                    }
                }


                @media (hover: hover) and (pointer: fine)
                {
                    &:hover
                    {
                        color: var(--light_color);
                        background: rgba(255,255,255, .05);
                    }
                }
            }
        }


        .creator
        {
            margin-top: auto;

            font-size: var(--font_size_xxs);

            transition: color .2s linear;

            color: rgba(255,255,255, .2);


            a
            {
                transition: color .2s linear;

                color: currentColor;

                text-decoration-line: underline;
                text-decoration-style: solid;
                text-decoration-skip-ink: none;
                text-decoration-thickness: auto;
                text-underline-offset: auto;
                text-underline-position: from-font;
            }


            @media (hover: hover) and (pointer: fine)
            {
                &:hover
                {
                    color: var(--light_color);


                    a
                    {
                        color: var(--primary_color);
                    }
                }
            }
        }
    }


    .bg
    {
        position: absolute;
        z-index: 1;
        top: 0;
        left: 50%;

        width: 553px;
        height: 647px;

        transform: translate(-857px, -172px);
        pointer-events: none;

        opacity: .2;

        mix-blend-mode: color-dodge;
    }


    .bg2
    {
        position: absolute;
        z-index: 1;
        top: 0;
        right: 50%;

        width: 553px;
        height: 647px;

        transform: translate(847px, -4px) scale(-1, 1);
        pointer-events: none;

        opacity: .2;

        mix-blend-mode: color-dodge;
    }
}



/*-----------
    PopUp
-----------*/
.modal
{
    /*z-index: 100;

    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;

    transition: opacity .3s linear, display .3s allow-discrete;
    pointer-events: none;

    opacity: 0;
    border: none;
    outline: none;
    background: transparent;*/

    position: fixed;
    inset: 0;
    box-sizing: border-box;
    margin: 0;
    padding: 0;

    width: 100%;
    max-width: 100%;
    height: 100dvh;          /* фолбэк: height: 100vh; height: -webkit-fill-available; */
    max-height: none;        /* перебиваем UA max-height */

    z-index: 100;
    border: none;
    outline: none;
    background: transparent;
    pointer-events: none;
    opacity: 0;
    transition: opacity .3s linear, display .3s allow-discrete;


    .wrapper
    {
        /*position: absolute;

        display: flex;
        overflow-x: clip;
        overflow-y: auto;
        flex-direction: column;

        width: 100%;
        height: 100%;
        padding-block: var(--outside_gap_xs);
        padding-inline: var(--inner_gap);

        pointer-events: auto;

        overscroll-behavior-y: contain;*/

        position: absolute;
        inset: 0;

        display: flex;
        flex-direction: column;
        justify-content: safe center;   /* ← вместо margin: auto у .inner */

        box-sizing: border-box;
        height: 100%;
        padding-block: var(--outside_gap_xs);
        padding-inline: var(--inner_gap);

        overflow-x: hidden;              /* было clip */
        overflow-y: auto;
        overscroll-behavior-y: contain;
        -webkit-overflow-scrolling: touch;

        pointer-events: auto;
    }


    .inner
    {
        margin-inline: auto;
        flex: 0 0 auto; /*если что убрать*/

        position: relative;
        z-index: 3;

        display: flex;
        flex-direction: column;

        width: 410px;
        max-width: 100%;
        /*margin: auto;*/
        padding-block: var(--outside_gap_xs) var(--block_padding);
        padding-inline: var(--block_padding);


        & > *
        {
            position: relative;
            z-index: 3;
        }


        &:before
        {
            position: absolute;
            z-index: 1;
            inset: 0;

            display: block;

            content: '';
            pointer-events: none;

            background: var(--bg_light);

            clip-path: var(--clip_path_double_corners);
        }


        .close_btn
        {
            position: absolute;
            z-index: 5;
            top: var(--inner_gap_xs);
            right: var(--inner_gap_xs);

            display: flex;
            align-content: center;
            align-items: center;
            flex-wrap: wrap;
            justify-content: center;

            width: 50px;

            transition: color .3s linear;

            color: rgba(0, 0, 0, .2);
            background: rgba(246, 246, 246, .8);

            aspect-ratio: 1 / 1;


            .icon
            {
                display: block;

                width: 14px;

                aspect-ratio: 1 / 1;
            }


            @media (hover: hover) and (pointer: fine)
            {
                &:hover
                {
                    color: rgba(0, 0, 0, .5);
                }
            }
        }
    }


    .modal_title
    {
        font-family: var(--font_family_secondary);
        font-size: 25px;
        font-weight: 400;
        line-height: 116%;

        text-align: center;
    }


    .modal_desc
    {
        width: 258px;
        max-width: 100%;
        margin-inline: auto;
        margin-top: var(--inner_gap_s);

        font-size: var(--font_size_xs);
        font-weight: 300;
        line-height: 166.667%;

        text-align: center;
    }


    .form
    {
        margin-top: var(--inner_gap_l);
    }


    .phone
    {
        display: flex;
        flex-direction: column;
        gap: var(--inner_gap_xxs);

        margin-top: var(--inner_gap);
        padding: var(--inner_gap_s);

        text-align: center;

        background: rgba(0, 127, 255, .05);


        .label
        {
            font-size: 10px;
            line-height: 170%;
        }


        .val
        {
            font-size: var(--font_size_xl);
            line-height: 17px;

            color: var(--primary_color);


            a
            {
                white-space: nowrap;
                text-decoration: none;

                color: currentColor;
            }
        }
    }


    &::backdrop
    {
        background: rgba(0, 0, 0, .50);

        backdrop-filter: blur(25px);
    }


    &[open]
    {
        opacity: 1;


        @starting-style
        {
            opacity: 0;
        }
    }
}



@media print,
(max-width: 1439px)
{
    /*-------------------
        Global styles
    -------------------*/
    :root
    {
        --sidebar_width: 360px;
    }


    .content_row > .cont.row
    {
        padding-inline: calc(var(--cont_padding));


        .content
        {
            width: calc(100% - var(--sidebar_width) - var(--outside_gap_s));
        }
    }



    /*------------
        Header
    ------------*/
    header
    {
        .logo
        {
            padding-inline: 0 var(--block_padding);
        }


        .menu
        {
            gap: var(--block_padding_s);
        }
    }



    /*---------------
        Page head
    ---------------*/
    .page_head
    {
        padding-top: var(--block_padding);


        .cont
        {
            gap: var(--inner_gap_l);
        }


        .row,
        .breadcrumbs,
        .page_title
        {
            padding-inline: 0;
        }
    }



    /*----------------
        Typography
    ----------------*/
    .text_block
    {
        &.pad_inline
        {
            padding-inline: 0;
        }


        & > *
        {
            .l_offset &
            {
                margin-bottom: var(--inner_gap);
            }
        }
    }
}



@media print,
(max-width: 1279px)
{
    /*-------------------
        Global styles
    -------------------*/
    :root
    {
        --sidebar_width: 300px;
        --custom_scroll_width: 5px;
        --custom_scroll_height: 5px;
        --font_size_title_l: 45px;
        --font_size_title: 35px;
        --font_size_title_s: 20px;
    }



    .content_row > .cont.row
    {
        .content
        {
            width: calc(100% - var(--sidebar_width) - var(--block_padding));
        }
    }



    .swiper-button-next,
    .swiper-button-prev
    {
        --swiper-navigation-size: 48px;
    }


    .swiper-pagination
    {
        gap: var(--inner_gap_s);


        .swiper-pagination-bullet
        {
            --swiper-pagination-bullet-width: 40px;
        }
    }



    .block
    {
        &.border_bottom
        {
            padding-bottom: var(--outside_gap_xxs);
        }
    }



    /*---------------
        Accordion
    ---------------*/
    .accordion_item
    {
        .head
        {
            padding-block: var(--inner_gap);
            padding-inline: var(--block_padding_s) calc(64px + var(--block_padding_s));


            .icon
            {
                width: 64px;
            }
        }
    }



    /*----------------
        Pagination
    ----------------*/
    .pagination
    {
        margin-top: var(--block_padding);


        a,
        .sep
        {
            width: 48px;
        }
    }



    /*------------
        Header
    ------------*/
    header
    {
        display: none;
    }



    /*-----------------
        Mob. header
    -----------------*/
    .mob_header
    {
        display: block;
    }



    /*---------------
        Page head
    ---------------*/
    .page_head
    {
        .row
        {
            .page_title
            {
                max-width: calc(100% - 400px - var(--block_padding));
            }


            .col
            {
                width: 400px;
            }
        }


        .btns
        {
            .btn
            {
                padding-inline: var(--inner_gap_l);
            }
        }
    }



    /*-------------
        Sidebar
    -------------*/
    aside
    {
        .anchors
        {
            padding: var(--inner_gap_l);

            clip-path: var(--clip_path_corner_top_left_small);
        }
    }



    /*----------------
        Typography
    ----------------*/
    .text_block
    {
        h1
        {
            font-size: 30px;
        }

        h2
        {
            font-size: 22px;
        }

        h3
        {
            font-size: 18px;
        }

        h4
        {
            font-size: 16px;
        }


        .image_slider
        {
            .swiper
            {
                padding-bottom: var(--inner_gap_l);
            }
        }
    }



    /*------------
        Footer
    ------------*/
    footer
    {
        .col
        {
            width: 160px;
            max-width: 100%;
        }
    }
}



@media print,
(max-width: 1023px)
{
    /*-------------------
        Global styles
    -------------------*/
    :root
    {
        --sidebar_width: 100%;
    }



    .content_row > .cont.row
    {
        .content
        {
            width: 100%;
        }
    }



    /*---------------
        Page head
    ---------------*/
    .page_head
    {
        .row
        {
            gap: var(--inner_gap);


            .page_title
            {
                width: 100%;
                max-width: 100%;
            }


            .col
            {
                width: 100%;
            }
        }
    }



    /*----------------
        Block head
    ----------------*/
    .block_head
    {
        &.row
        {
            .desc
            {
                width: 280px;
            }
        }
    }



    /*-------------
        Sidebar
    -------------*/
    aside
    {
        &.mob_hide
        {
            display: none;
        }
    }



    /*------------
        Footer
    ------------*/
    footer
    {
        .col
        {
            width: calc(33.333% - var(--inner_gap));
        }


        .menu
        {
            order: 2;

            width: calc(33.333% - var(--inner_gap));
            margin-top: var(--block_padding);
        }


        .contacts
        {
            width: calc(66.666% - var(--inner_gap_xs));
        }
    }
}



@media (max-width: 767px)
{
    /*-------------------
        Global styles
    -------------------*/
    :root
    {
        --font_size_title_l: 35px;
        --font_size_title: 30px;
        --font_size_title_s: 16px;
        --block_head_offset: 30px;
        --clip_path_corner_top_left: polygon(var(--block_padding_s) 0%, 100% 0%, 100% 100%, 0% 100%, 0% var(--block_padding_s));
        --clip_path_corner_top_left_small: polygon(var(--inner_gap_s) 0%, 100% 0%, 100% 100%, 0% 100%, 0% var(--inner_gap_s));
        --clip_path_corner_top_right: polygon(0% 0%, calc(100% - var(--block_padding_s)) 0%, 100% var(--block_padding_s), 100% 100%, 0% 100%);
        --clip_path_corner_top_right_small: polygon(0% 0%, calc(100% - var(--inner_gap_s)) 0%, 100% var(--inner_gap_s), 100% 100%, 0% 100%);
        --clip_path_corner_botton_right: polygon(0% 0%, 100% 0%, 100% calc(100% - var(--block_padding_s)), calc(100% - var(--block_padding_s)) 100%, 0% 100%);
        --clip_path_double_corners: polygon(var(--block_padding_s) 0%, 100% 0%, 100% calc(100% - var(--block_padding_s)), calc(100% - var(--block_padding_s)) 100%, 0% 100%, 0% var(--block_padding_s));
        --clip_path_double_corners_small: polygon(var(--inner_gap_s) 0%, 100% 0%, 100% calc(100% - var(--inner_gap_s)), calc(100% - var(--inner_gap_s)) 100%, 0% 100%, 0% var(--inner_gap_s));
    }



    /*---------------
        Accordion
    ---------------*/
    .accordion_item
    {
        .head
        {
            padding-block: var(--inner_gap_s);
            padding-inline: var(--inner_gap) calc(60px + var(--inner_gap));


            .title
            {
                font-size: var(--font_size_s);
            }


            .icon
            {
                width: 60px;
            }
        }


        .data
        {
            padding-block: var(--inner_gap);
            padding-inline: var(--inner_gap);
        }
    }



    /*----------------
        Pagination
    ----------------*/
    .pagination
    {
        justify-content: space-between;
        column-gap: var(--inner_gap_xxs);

        grid-row: var(--inner_gap_s);


        .mob_hide
        {
            display: none;
        }


        a,
        .sep
        {
            width: 52px;
        }


        a.prev,
        a.next
        {
            order: 2;

            width: calc(50% - 7px);
            height: 52px;
            margin: 0;

            aspect-ratio: auto;
        }
    }



    /*---------------
        Page head
    ---------------*/
    .page_head
    {
        margin-bottom: var(--block_padding_s);


        .cont
        {
            gap: var(--inner_gap_s);
        }


        .btns
        {
            gap: var(--inner_gap_s);


            .btn
            {
                width: 100%;
            }
        }
    }



    /*----------------
        Block head
    ----------------*/
    .block_head
    {
        &,
        &.row
        {
            padding-inline: 0;
        }


        &.row
        {
            .desc
            {
                width: 100%;
            }
        }


        .swiper-controls
        {
            display: none;
        }
    }



    /*----------------
        Typography
    ----------------*/
    .text_block
    {
        * + h2,
        * + h3,
        * + h4
        {
            margin-top: var(--block_padding_s);
        }


        hr
        {
            margin-block: var(--block_padding_s);
        }


        .image_slider
        {
            .swiper
            {
                overflow: visible;
            }


            .swiper-button-next,
            .swiper-button-prev
            {
                display: none;
            }
        }


        .images
        {
            flex-wrap: wrap;
            gap: var(--inner_gap_s);

            margin-block: var(--block_padding_s);
        }
    }



    /*------------
        Footer
    ------------*/
    footer
    {
        --font_size_xxs: 9px;


        .col
        {
            width: 100%;
        }


        .links
        {
            margin-top: var(--inner_gap_xs);
        }


        .menu,
        .contacts
        {
            order: 0;

            width: calc(50% - var(--inner_gap_xs));
            margin-top: var(--block_padding_s);
        }
    }



    /*-----------
        PopUp
    -----------*/
    .modal
    {
        .inner
        {
            width: 345px;
            padding-block: var(--block_padding) var(--block_padding_s);
            padding-inline: var(--block_padding_s);


            &:before
            {
                clip-path: var(--clip_path_corner_top_left);
            }


            .close_btn
            {
                position: fixed;
                top: 0;
                right: 0;

                color: rgba(255, 255, 255, .8);
                background: rgba(255, 255, 255, .1);
            }
        }
    }
}
