*
{
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

*:before,
*:after
{
    box-sizing: border-box;
}

img
{
    border: none;
}

textarea
{
    overflow: auto;
}

input,
textarea,
input:active,
textarea:active
{
    -webkit-border-radius: 0;
            border-radius: 0;
         outline: none transparent !important;
    box-shadow: none;

    -webkit-appearance: none;
            appearance: none;
    -moz-outline: none !important;
}

input[type=submit],
button[type=submit],
input[type=reset],
button[type=reset]
{
    -webkit-border-radius: 0;

    -webkit-appearance: none;
}

:focus
{
    outline: none;
}

:hover,
:active
{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    -webkit-touch-callout: none;
}


::-ms-clear
{
    display: none;
}


::selection
{
    color: #fff;

    background: #0883b7;
}

::-moz-selection
{
    color: #fff;

    background: #0883b7;
}


html:not(.touch_enable) ::-webkit-scrollbar
{
    width: 10px;
    height: 10px;

    background-color: #ccc;
}

html:not(.touch_enable) ::-webkit-scrollbar-thumb
{
    background-color: #0883b7;
}

html:not(.touch_enable)
{
    scrollbar-color: #0883b7 #ccc;
    scrollbar-width: thin;
}



/*---------------
    Main styles
---------------*/
:root
{
    --bg: #fff;
    --scroll_width: 17px;
    --text_color: #4d4d4d;
    --font_size: 16px;
    --font_size_title: 34px;
    --font_family: 'Roboto', 'Arial', sans-serif;
}



.clear
{
    clear: both;
}

.left
{
    float: left;
}

.right
{
    float: right;
}



html
{
    height: 100%;

    background: var(--bg);

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
        -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}


body
{
    color: var(--text_color);
    font-family: var(--font_family);
    font-size: var(--font_size);

    height: 100%;

    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;

    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
    -webkit-overflow-scrolling: touch;
    text-rendering: optimizeLegibility;
    text-decoration-skip: objects;
    -webkit-touch-callout: none;
}

body.lock
{
    position: fixed;

    overflow: hidden;

    width: 100%;
    height: 100%;
}


.wrap
{
    position: relative;

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

    min-width: 360px;
    min-height: 100%;
}


.main
{
    flex: 1 0 auto;
}


.cont
{
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px;
}


.compensate-for-scrollbar
{
    margin-right: var(--scroll_width) !important;
}


.lozad
{
    transition: opacity .5s linear;

    opacity: 0;
}

.lozad.loaded
{
    opacity: 1;
}


.flex
{
    display: flex;

    justify-content: flex-start;
    align-items: flex-start;
    align-content: flex-start;
    flex-wrap: wrap;
}



.block_head
{
    display: flex;

    width: 100%;
    margin-bottom: 43px;

    justify-content: flex-start;
    align-items: center;
    align-content: center;
    flex-wrap: wrap;
}

.block_head.center
{
    text-align: center;

    justify-content: center;
}

.block_head .title
{
    font-size: var(--font_size_title);
    font-weight: normal;
    line-height: 40px;

    position: relative;

    padding-top: 23px;
}

.block_head .title:before
{
    position: absolute;
    top: 0;
    right: 0;
    left: 0;

    width: 114px;
    height: 4px;
    margin: auto;

    content: '';

    border-radius: 2px;
    background: #f44c32;
}



.form
{
    --form_border_color: #fff;
    --form_focus_color: #fff;
    --form_error_color: red;
    --form_success_color: green;
    --form_border_radius: 30px;
    --form_bg_color: #fff;
    --form_placeholder_color: #9d9d9d;
}


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

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

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


.form .line
{
    margin-bottom: 20px;
}

.form .field
{
    position: relative;
}


.form .input
{
    color: var(--text_color);
    font: var(--font_size) var(--font_family);

    display: block;

    width: 100%;
    height: 60px;
    padding: 0 32px;

    -webkit-user-select: text;
       -moz-user-select: text;
        -ms-user-select: text;
            user-select: text;
    transition: .2s linear;

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

    -webkit-touch-callout: text;
}


.form .input:-webkit-autofill
{
    -webkit-box-shadow: inset 0 0 0 50px var(--form_bg_color) !important;
}


.form .input:focus
{
    border-color: var(--form_focus_color);
}

.form .success
{
    border-color: var(--form_success_color);
}

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


.form .submit_btn
{
    color: #fff;
    font-family: var(--font_family);
    font-size: 18px;
    font-weight: 700;
    line-height: 54px;

    display: inline-block;

    height: 60px;
    padding: 0 40px;

    cursor: pointer;

    border: 2px solid rgba(255,203,203,.56);
    border-radius: 30px;
    background:    -moz-linear-gradient(-45deg,  #f53131 71%, #f46f34 100%);
    background: -webkit-linear-gradient(-45deg,  #f53131 71%,#f46f34 100%);
    background:         linear-gradient(135deg,  #f53131 71%,#f46f34 100%);
    box-shadow: 0 5px 10px rgba(0,0,0,.16);
}



.overlay
{
    position: fixed;
    z-index: 100;
    top: 0;
    left: 0;

    display: none;

    width: 100%;
    height: 100%;

    opacity: .65;
    background: #000;
}


.supports_error
{
    font-family: 'Arial', sans-serif;
    font-size: 20px;
    line-height: 30px;

    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;

    display: none;

    width: 100%;
    height: 100%;
    padding: 20px;

    text-align: center;

    background: #fff;

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

.supports_error.show
{
    display: flex;
}



/*---------------
   Header
---------------*/
header
{
    color: #fff;

    position: absolute;
    z-index: 99;
    top: 0;
    left: 0;

    width: 100%;
    padding: 40px 0;
}


header .cont.flex
{
    justify-content: space-between;
    align-items: center;
    align-content: center;
}



header .logo img
{
    display: block;

    max-width: 100%;
    margin: 0 auto;
}


header .slogan
{
    font-size: 12px;
    line-height: 16px;

    margin-right: auto;
    margin-left: 56px;
    padding-left: 21px;

    border-left: 1px solid;
}


header .phone
{
    font-size: 24px;
    font-weight: 700;

    margin-left: auto;
}

header .phone a
{
    color: #fff;

    display: inline-block;

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


header .callback_link
{
    color: #535353;
    font-family: var(--font_family);
    font-size: 14px;
    font-weight: 500;
    line-height: 35px;

    height: 35px;
    margin-left: 19px;
    padding: 0 22px;

    cursor: pointer;

    border: none;
    border-radius: 18px;
    background: #fff;
}



/*---------------
   Main section
---------------*/
.owl-carousel,
.owl-carousel .slide:first-child
{
    display: block;
}

.owl-carousel .slide
{
    display: none;
}

.owl-carousel .owl-stage
{
    white-space: nowrap;
}

.owl-carousel .owl-item
{
    display: inline-block;
    float: none;

    vertical-align: top;
    white-space: normal;
}

.owl-carousel .slide .lozad
{
    transition: .2s linear;
}



.first_section
{
    position: relative;

    overflow: hidden;

    background: #ddd;
}


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

    width: 1705px;
    height: 100%;
    margin-left: -1030px;

    background-repeat: no-repeat;
    background-position: 100% 50%;
    background-size: cover;
}


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

    width: 1175px;
    height: 100%;
    margin-right: -960px;

    background-repeat: no-repeat;
    background-position: 100% 50%;
    background-size: cover;
}


.first_section .cont
{
    position: relative;
    z-index: 5;

    min-height: 724px;
    padding-top: 200px;
    padding-bottom: 120px;
}


.first_section .info
{
    color: #fff;
}


.first_section .title
{
    font-size: 40px;
    font-weight: 700;
    line-height: 55px;

    text-transform: uppercase;
}

.first_section .title b,
.first_section .title strong
{
    font-weight: 900;
}


.first_section .desc
{
    font-size: 18px;
    line-height: 26px;

    width: 408px;
    max-width: 100%;
    margin-top: 25px;
}


.first_section .link
{
    color: #fff;
    font-family: var(--font_family);
    font-size: 18px;
    font-weight: 700;
    line-height: 54px;

    display: inline-block;

    height: 60px;
    margin-top: 40px;
    padding: 0 30px;

    cursor: pointer;

    border: 2px solid rgba(255,203,203,.56);
    border-radius: 30px;
    background:    -moz-linear-gradient(-45deg,  #f53131 71%, #f46f34 100%);
    background: -webkit-linear-gradient(-45deg,  #f53131 71%,#f46f34 100%);
    background:         linear-gradient(135deg,  #f53131 71%,#f46f34 100%);
    box-shadow: 0 5px 10px rgba(0,0,0,.16);
}


.first_section .pluses
{
    font-weight: 700;
    line-height: 21px;

    display: flex;

    margin-top: 50px;

    justify-content: flex-start;
    align-items: flex-start;
    align-content: flex-start;
    flex-wrap: wrap;
}

.first_section .pluses > *
{
    display: flex;

    justify-content: flex-start;
    align-items: center;
    align-content: center;
    flex-wrap: wrap;
}

.first_section .pluses > * + *
{
    margin-left: 60px;
}

.first_section .pluses .val
{
    font-size: 46px;

    margin-right: 12px;

    white-space: nowrap;
}

.first_section .pluses .val small
{
    font-size: 33px;
}



.stats
{
    margin-top: -63px;
}

.stats .data
{
    position: relative;
    z-index: 9;

    display: flex;

    padding: 35px 64px 35px 48px;

    border-left: 16px solid #36a7ff;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 6px 25px rgba(0,0,0,.16);

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

.stats .data:before
{
    position: absolute;
    top: -12px;
    left: 89px;

    display: block;

    width: 27px;
    height: 27px;

    content: '';
    transform: rotate(-45deg);

    border-radius: 3px;
    background: #fff;
}


.stats .block_title
{
    font-size: 34px;
    font-weight: 700;
    line-height: 40px;
}

.stats .block_title span
{
    position: relative;
    top: -3px;

    display: inline-block;

    width: 8px;
    height: 27px;
    margin-right: 8px;

    vertical-align: middle;

    background: #f53931;
}


.stats .flex
{
    line-height: 21px;

    margin-bottom: -20px;
    margin-left: -34px;
}

.stats .flex > *
{
    position: relative;

    min-height: 38px;
    margin-bottom: 20px;
    margin-left: 34px;
    padding-left: 62px;
}

.stats .flex > *:before
{
    position: absolute;
    top: 0;
    left: 0;

    display: block;

    width: 38px;
    height: 38px;

    content: '';

    border-radius: 50%;
    background: #f44c32 url(../images/ic_check.svg) 50% no-repeat;
}



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

    padding: 55px 0 100px;

    background: url(../images/bg_services.png) 50% -20px no-repeat;
}

.services:before
{
    position: absolute;
    z-index: -1;
    bottom: -183px;
    left: 50%;

    display: block;

    width: 882px;
    height: 590px;
    margin-left: -320px;

    content: '';
    pointer-events: none;

    background: url(../images/bg_advantages.png) 0 0 no-repeat;
}


.services .flex
{
    margin-bottom: -31px;
    margin-left: -31px;

    align-items: stretch;
    align-content: stretch;
}

.services .flex > *
{
    width: calc(33.333% - 31px);
    margin-bottom: 31px;
    margin-left: 31px;
}


.services .service
{
    position: relative;

    overflow: hidden;

    padding: 48px 40px 68px;

    border-radius: 20px;
    background: #fff;
    box-shadow: 0 6px 25px rgba(0,0,0,.16);
}


.services .service .icon
{
    position: absolute;
    z-index: 3;
    top: -30px;
    right: -30px;

    display: flex;

    width: 183px;
    height: 183px;
    padding: 15px 15px 0 0;

    pointer-events: none;

    border-radius: 50%;
    background: #0d93ab;

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

.services .service .icon:before
{
    position: absolute;
    z-index: -1;
    top: -27px;
    right: -18px;

    display: block;

    width: 227px;
    height: 227px;

    content: '';

    opacity: .16;
    border-radius: 50%;
    background: #0d93ab;
}

.services .service .icon img
{
    display: block;

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


.services .service .name
{
    font-size: 24px;
    font-weight: 700;
    line-height: 29px;

    position: relative;

    margin-bottom: 30px;
}

.services .service .name:before
{
    position: absolute;
    top: 1px;
    left: -40px;

    display: block;

    width: 16px;
    height: 27px;

    content: '';

    background: #f53931;
}


.services .service .features > *
{
    line-height: 21px;

    position: relative;

    padding-left: 18px;
}

.services .service .features > * + *
{
    margin-top: 12px;
}

.services .service .features > *:before
{
    position: absolute;
    top: 6px;
    left: 0;

    display: block;

    width: 8px;
    height: 8px;

    content: '';

    border: 3px solid #007cd7;
    border-radius: 50%;
    background: #fff;
}


.services .link
{
    margin-top: 46px;

    text-align: center;
}

.services .link button
{
    color: #fff;
    font-family: var(--font_family);
    font-size: 18px;
    font-weight: 700;
    line-height: 54px;

    display: inline-block;

    height: 60px;
    padding: 0 40px;

    cursor: pointer;

    border: 2px solid rgba(255,203,203,.56);
    border-radius: 30px;
    background:    -moz-linear-gradient(-45deg,  #f53131 71%, #f46f34 100%);
    background: -webkit-linear-gradient(-45deg,  #f53131 71%,#f46f34 100%);
    background:         linear-gradient(135deg,  #f53131 71%,#f46f34 100%);
    box-shadow: 0 5px 10px rgba(0,0,0,.16);
}



.projects
{
    padding: 80px 0 97px;

    background: rgba(212,233,248,.71) url(../images/bg_projects.png) 50% 104px no-repeat;
}

.projects .cont
{
    position: relative;
    z-index: 5;
}


.projects .slider
{
    padding-bottom: 71px;
}

.projects .owl-stage-outer
{
    overflow: visible !important;
}

.projects .owl-item
{
    visibility: hidden;

    transition: .2s linear;
    pointer-events: none;

    opacity: 0;
}

.projects .owl-item.active
{
    visibility: visible;

    pointer-events: auto;

    opacity: 1;
}


.projects .grid
{
    display: grid;

    grid-gap: 15px;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: auto;
}

.projects .grid > *
{
    padding-bottom: 261px;
}

.projects .grid > *.big_height
{
    grid-row: 1 / 3;
}

.projects .grid > *.big_height.left
{
    grid-column: 1 / 2;
}

.projects .grid > *.big_height.right
{
    grid-column: 2 / 3;
}

.projects .grid > *.big_width
{
    grid-column: 1 / 3;
}


.projects .project
{
    color: #fff;
    font-size: 18px;
    line-height: 19px;

    position: relative;

    overflow: hidden;

    text-decoration: none;

    border-radius: 15px;
    background: #ddd;
    box-shadow: 0 6px 25px rgba(0,0,0,.26);
}

.projects .project:after
{
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;

    display: block;

    width: 100%;
    height: 100%;

    content: '';
}

.projects .project.circle:before
{
    position: absolute;
    z-index: 3;
    top: calc(100% - 197px);
    right: calc(100% - 252px);

    display: block;

    width: 394px;
    height: 394px;

    content: '';

    opacity: .96;
    border-radius: 50%;
}

.projects .project.big_height.circle:before,
.projects .project.big_width.circle:before
{
    top: calc(100% - 247px);
    right: calc(100% - 264px);
}

.projects .project.circle_color1:before
{
    background: #279ef5;
}

.projects .project.circle_color2:before
{
    background: #1fb17a;
}

.projects .project.color1:after
{
    opacity: .36;
    background: #057cd3;
}

.projects .project.color2:after
{
    opacity: .53;
    background: #1c774a;
}

.projects .project.color3:after
{
    opacity: .58;
    background: #212472;
}

.projects .project.color4:after
{
    opacity: .50;
    background: #1f2629;
}

.projects .project.color5:after
{
    opacity: .41;
    background: #152d91;
}

.projects .project img
{
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    border-radius: 16px;
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}

.projects .project .info
{
    position: absolute;
    z-index: 5;
    bottom: 0;
    left: 0;

    width: 100%;
    padding: 32px;
}

.projects .project .info:before
{
    position: absolute;
    top: 0;
    left: 32px;

    display: block;

    width: 25px;
    height: 25px;

    content: '';

    border: 7px solid #fff;
    border-radius: 50%;
}

.projects .project .name
{
    font-size: 24px;
    font-weight: 700;
    line-height: 40px;
}



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

    padding: 60px 0 70px;
}

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

    display: block;

    width: 882px;
    height: 590px;
    margin-left: -765px;

    content: '';
    pointer-events: none;

    background: url(../images/bg_advantages.png) 0 0 no-repeat;
}

.advantages:after
{
    position: absolute;
    z-index: -2;
    top: 0;
    left: 50%;

    display: block;

    width: 882px;
    height: 590px;
    margin-left: -1530px;

    content: '';
    pointer-events: none;

    background: url(../images/bg_advantages.png) 0 0 no-repeat;
}


.advantages .items
{
    position: relative;
    z-index: 3;

    display: flex;

    margin-top: 70px;

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

.advantages .items:before
{
    color: #fff;
    font-size: 185px;
    font-weight: 900;
    line-height: 207px;

    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    display: block;

    width: 207px;
    height: 207px;
    margin: auto;

    content: '!';
    text-align: center;
    pointer-events: none;

    border-radius: 50%;
    background: #21af7a;
    box-shadow: 0 0 0 25px rgba(30,172,118,.18);
}

.advantages .col
{
    width: calc(50% - 160px);
}

.advantages .item
{
    font-size: 20px;
    line-height: 26px;

    position: relative;

    padding-left: 62px;
}

.advantages .item + .item
{
    margin-top: 20px;
}

.advantages .item:before
{
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;

    display: block;

    width: 28px;
    height: 28px;
    margin: auto;

    content: '';

    border-radius: 50%;
    background: #f44c32 url(../images/ic_check.svg) 50%/15px auto no-repeat;
}


.advantages .alignright .item
{
    padding-right: 62px;
    padding-left: 0;

    text-align: right;
}

.advantages .alignright .item:before
{
    right: 0;
    left: auto;
}



.order_block
{
    position: relative;
    z-index: 5;

    margin-bottom: -140px;
}

.order_block .data
{
    padding: 42px 79px 55px;

    border-radius: 20px;
    background: #ceebff;
    box-shadow: 0 6px 25px rgba(0,0,0,.16);
}

.order_block .block_head
{
    margin-bottom: 30px;
}

.order_block .block_head .title
{
    padding: 0;
}

.order_block .block_head .title:before
{
    display: none;
}


.order_block .form
{
    display: flex;

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

.order_block .form .line
{
    width: calc((100% - 318px) / 2);
    margin-bottom: 0;
}

.order_block .form .submit
{
    width: 270px;
    margin-left: 12px;
}

.order_block .form .submit_btn
{
    width: 100%;
    padding: 0 20px;
}



/*---------------
   Footer
---------------*/
footer
{
    color: #fff;
    line-height: 21px;

    position: relative;
    z-index: 3;

    overflow: hidden;

    padding: 180px 0 40px;

    background: #0883b7;

    flex: 0 0 auto;
}

footer:before
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 50%;

    display: block;

    width: 882px;
    height: 590px;
    margin-left: -1110px;

    content: '';
    pointer-events: none;

    background: url(../images/bg_footer.png) 0 0 no-repeat;
}


footer .cont.flex
{
    justify-content: space-between;
    align-items: center;
    align-content: center;
}



footer .col_left
{
    margin-right: auto;
}


footer .logo img
{
    display: block;

    height: 27px;
}



footer .links
{
    margin-left: 90px;
}

footer .links > *
{
    color: #fff;
    font-family: var(--font_family);
    font-size: var(--font_size);
    line-height: 21px;

    display: inline-block;

    cursor: pointer;
    vertical-align: top;
    text-decoration: underline;

    border: none;
    background: none;
}

footer .links > * + *
{
    margin-left: 28px;
}

footer .links > *:hover
{
    text-decoration: none;
}



footer .creator
{
    margin-left: 90px;
}

footer .creator a
{
    color: #fff;
    line-height: 21px;

    display: flex;

    min-height: 39px;
    padding-right: 65px;

    text-decoration: none;

    background: url(../images/creator_logo.svg) 100% 50% no-repeat;

    justify-content: flex-start;
    align-items: center;
    align-content: center;
    flex-wrap: wrap;
}



/*---------------
   PopUp
---------------*/
.modal
{
    display: none;
    visibility: visible !important;

    width: 575px;
    max-width: 100%;
    padding: 42px 93px 53px;

    border-radius: 20px;
    background: #ceebff;
    box-shadow: 0 6px 25px rgba(0,0,0,.16);
}

.modal_title
{
    font-size: var(--font_size_title);
    line-height: 40px;

    text-align: center;
}

.modal_desc
{
    color: #9d9d9d;
    line-height: 21px;

    margin: 12px -18px 0;

    text-align: center;
}

.modal_data
{
    margin-top: 20px;
}

.modal .form .submit
{
    display: flex;

    padding-top: 22px;

    justify-content: center;
    align-items: flex-start;
    align-content: flex-start;
    flex-wrap: wrap;
}


.modal .or_call
{
    color: #000;
    line-height: 21px;

    margin-top: 20px;

    text-align: center;
}

.modal .or_call a
{
    color: #000;

    display: inline-block;

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