/*-----------
    Fonts
-----------*/
@font-face
{
    font-family: 'ProximaNova';
    font-weight: normal;
    font-style: normal;

    font-display: swap;
    src: url('../fonts2/ProximaNova-Regular.woff2') format('woff2'),
    url('../fonts2/ProximaNova-Regular.woff') format('woff'),
    url('../fonts2/ProximaNova-Regular.ttf') format('truetype');
}

@font-face
{
    font-family: 'ProximaNova';
    font-weight: 600;
    font-style: normal;

    font-display: swap;
    src: url('../fonts2/ProximaNova-Semibold.woff2') format('woff2'),
    url('../fonts2/ProximaNova-Semibold.woff') format('woff'),
    url('../fonts2/ProximaNova-Semibold.ttf') format('truetype');
}



/*------------------
    Reset styles
------------------*/
*
{
    box-sizing: border-box;
    margin: 0;
    padding: 0;

    scroll-margin-top: var(--cont_padding);
}

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

html
{
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
        -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

body
{
    margin: 0;

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

img
{
    border-style: none;
}

textarea
{
    overflow: auto;
}

input,
textarea,
input:active,
textarea:active,
button
{
    margin: 0;

    -webkit-border-radius: 0;
            border-radius: 0;
         outline: none transparent !important;
    box-shadow: none;

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

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button
{
    margin: 0;

    -webkit-appearance: none;
}

input[type=number]
{
    -moz-appearance: textfield;
}

:focus
{
    outline: 0;
}

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


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



/*-------------------
    Global styles
-------------------*/
:root
{
    --bg: #fff;
    --bg_dark: #0f2c30;
    --content_width: 1840px;
    --cont_padding: 40px;
    --scroll_width: 17px;
    --accent_color: #64be98;
    --text_color: #0f2c30;
    --font_size: 16px;
    --font_size_title: 140px;
    --font_family: 'ProximaNova', 'Arial', sans-serif;
    --block_offset: 100px;
}


::selection
{
    color: #fff;
    background: var(--accent_color);
}

::-moz-selection
{
    color: #fff;
    background: var(--accent_color);
}



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


html.custom_scroll ::-webkit-scrollbar
{
    width: 10px;
    height: 10px;

    background-color: var(--bg);
}


html.custom_scroll ::-webkit-scrollbar-thumb
{
    background-color: var(--accent_color);
}


body
{
    font-family: var(--font_family);
    font-size: var(--font_size);
    font-weight: 400;
    line-height: normal;

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

    color: var(--text_color);
}


body.lock
{
    overflow: hidden;
}


button
{
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;

    display: inline-block;

    cursor: pointer;
    vertical-align: top;

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


.wrap
{
    position: relative;
    z-index: 9;

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

    min-height: 100%;

    background: var(--bg);
}


.wrap > .main
{
    position: relative;

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


.cont
{
    width: 100%;
    max-width: calc(var(--content_width) + var(--cont_padding) * 2);

    margin-inline: auto;
    padding-inline: var(--cont_padding);
}


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



.block
{
    margin-bottom: var(--block_offset);
}



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

    display: none;

    width: 100%;
    height: 100%;

    opacity: .65;
    background: var(--bg_dark);
}



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

    width: 100%;

    color: #fff;
    background: var(--bg_dark);

    padding-block: var(--cont_padding);
}


header.absolute
{
    position: absolute;

    background: none;
}



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

    display: block;

    width: 100%;
    height: 100%;
}


header .bg img
{
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}



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

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



header .mob_menu_btn
{
    display: none;
    align-content: center;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;

    width: 24px;
    height: 40px;
    margin-right: var(--cont_padding);

    color: currentColor;
}


header .mob_menu_btn span
{
    position: relative;

    display: block;

    width: 100%;
    height: 2px;

    background: currentColor;
}


header .mob_menu_btn span:before,
header .mob_menu_btn span:after
{
    position: absolute;
    top: -8px;
    left: 0;

    display: block;

    width: 100%;
    height: 100%;

    content: '';

    background: currentColor;
}


header .mob_menu_btn span:after
{
    top: 8px;
}



header .logo
{
    font-size: 32.667px;
    font-weight: 600;
    line-height: 110%;

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

    text-decoration: none;

    color: #f3f6fd;

    gap: 24px;
}


header .logo img
{
    display: block;

    width: 81px;
    height: 81px;
}


header .logo span
{
    display: block;

    color: var(--accent_color);
}



header .menu
{
    position: relative;

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

    margin-right: auto;
    margin-left: 136px;

    gap: 40px;
}


header .menu .close_btn
{
    position: absolute;
    top: calc(var(--cont_padding) * 2);
    left: var(--cont_padding);

    display: none;

    width: 24px;
    height: 24px;
}


header .menu .close_btn:before,
header .menu .close_btn:after
{
    position: absolute;
    top: 0;
    left: 0;

    display: block;

    width: 100%;
    height: 2px;

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

    background: currentColor;
}


header .menu .close_btn:after
{
    transform: rotate(-45deg);
}


header .menu_item > a
{
    line-height: 150%;

    display: block;

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

    color: currentColor;
}


header .menu_item > a:hover,
header .menu_item > a.active
{
    color: var(--accent_color);
}



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

    margin-left: auto;

    gap: 10px;
}


header .btns .btn
{
    line-height: 150%;

    display: block;

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

    color: var(--text_color);
    border-radius: 0 10px 0 0;
    background: var(--accent_color);

    padding-block: calc(var(--cont_padding) / 2);
    padding-inline: var(--cont_padding);
    transition: 0.3s;
    border: 1px solid transparent;
}

header .btns .btn:hover{
	color:#CFDA64;
	border-color:#CFDA64;
	background: transparent;
}


header .btns .btn.white
{
    background: #fff;
}


header .btns .btn.white:hover{
	color:#CFDA64;
	border-color:#CFDA64;
	background: transparent;
}


/*----------------
    Page title
----------------*/
.page_title
{
    font-size: var(--font_size_title);
    font-weight: 400;
    line-height: 90%;

    display: block;
}



/*----------------
    Typography
----------------*/
.text_block
{
    line-height: 150%;
}


.text_block > *
{
    margin-bottom: 20px;
}


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

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


.text_block .big
{
    font-size: calc(var(--font_size) + 2px);
}


.text_block img
{
    display: block;

    max-width: 100%;
}



/*-------------------
    First section
-------------------*/
.first_section
{
    position: relative;

    background: var(--bg_dark);
}


.first_section .image
{
    position: absolute;
    z-index: 2;
    top: 0;
    /*right: 0;*/

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

    height: 100%;
}


.first_section .image img
{
    display: block;

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


.first_section .bg
{
    position: absolute;
    z-index: 1;

    display: block;

    inset: 0;
}


.first_section .bg img
{
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


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

    display: flex;
    flex-direction: column;

    min-height: 100vh;

    padding-block: calc(var(--block_offset) * 2) var(--block_offset);
    gap: 80px;
}


.first_section .title
{
    font-size: var(--font_size_title);
    font-weight: 400;
    line-height: 110%;

    color: #f3f6fd;
}


.first_section .items
{
    line-height: 150%;

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

    color: #fff;

    gap: 28px;
}


.first_section .items > *
{
    position: relative;

    width: 206px;
    max-width: 100%;
    padding-top: 43px;
}


.first_section .items > *:before
{
    position: absolute;
    top: 0;
    left: 0;

    display: block;

    width: 13px;
    height: 13px;

    content: '';

    border-radius: 0 5px 0 0;
    background: #cfda64;
}


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

    gap: 10px;
}


.first_section .btns .btn
{
    line-height: 150%;

    display: block;

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

    color: var(--text_color);
    border-radius: 0 10px 0 0;
    background: var(--accent_color);

    padding-block: calc(var(--cont_padding) / 2);
    padding-inline: var(--cont_padding);
    transition: 0.3s;
    border:1px solid transparent;
}

.first_section .btns .btn:hover{
	color:#CFDA64;
	border-color:#CFDA64;
	background: transparent;
}


.first_section .btns .btn.white
{
    background: #fff;
}

.first_section .btns .btn.white:hover{
	color:#CFDA64;
	border-color:#CFDA64;
	background: transparent;
}



/*--------------
    Services
--------------*/
.services
{
    background: #f3f6fd;

    padding-block: var(--block_offset);
}


.services .block_title
{
    font-size: var(--font_size_title);
    font-weight: 400;
    line-height: 110%;

    margin-bottom: -30px;

    opacity: .1;
}


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

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

    margin-bottom: -28px;
    margin-left: -28px;
}


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


.services .item
{
    display: flex;
    flex-direction: column;

    padding: 70px;

    text-decoration: none;

    color: currentColor;
    border-radius: 0 50px 0 0;
    background: #fff;

    gap: 30px;
}


.services .item .icon
{
    display: flex;
    align-content: center;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-start;

    height: 80px;
}


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

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


.services .item .name
{
    font-size: 28px;
    font-weight: 600;
    line-height: 130%;

    padding-bottom: 30px;

    border-bottom: 1px solid rgba(15, 44, 48, .1);
}


.services .item .desc
{
    line-height: 150%;

    width: 325px;
    max-width: 100%;
}



/*-------------------
    Contacts info
-------------------*/
.contacts_info
{
    background: #f3f6fd;

    padding-block: var(--block_offset);
}


.contacts_info .cont
{
    align-content: stretch;
    align-items: stretch;
    justify-content: space-between;
}


.contacts_info .data
{
    width: calc(50% - 14px);
}


.contacts_info .page_title
{
    margin-bottom: var(--block_offset);
}


.contacts_info .item
{
    position: relative;

    display: flex;
    flex-direction: column;

    gap: 20px;
}


.contacts_info .item + .item
{
    margin-top: calc(var(--block_offset) / 2);
    padding-top: calc(var(--block_offset) / 2);
}


.contacts_info .item + .item:before
{
    position: absolute;
    top: 0;
    right: 0;

    display: block;

    width: 100vw;
    height: 1px;

    content: '';
    pointer-events: none;

    opacity: .21;
    background: var(--bg_dark);
}


.contacts_info .item .label
{
    font-size: 28px;
    font-weight: 600;
    line-height: 130%;
}


.contacts_info .item .val
{
    line-height: 150%;
}


.contacts_info .item .val a
{
    white-space: nowrap;

    color: currentColor;

    text-decoration-thickness: 1px;
}


.contacts_info .item .val a.tdn
{
    text-decoration: none;
}


.contacts_info .map
{
    position: relative;

    overflow: hidden;

    width: calc(50% - 14px);

    background: var(--bg_dark);
}



/*----------------
    About info
----------------*/
.about_info
{
    background: #f3f6fd;

    padding-block: var(--block_offset);
}


.about_info .cont
{
    justify-content: space-between;
}


.about_info .data
{
    display: flex;
    flex-direction: column;

    width: 906px;
    max-width: calc(100% - 627px - var(--cont_padding));

    gap: var(--block_offset);
}


.about_info .boss
{
    position: relative;

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

    padding-top: 50px;
}


.about_info .boss:before
{
    position: absolute;
    top: 0;
    right: 0;

    display: block;

    width: 100vw;
    height: 1px;

    content: '';
    pointer-events: none;

    opacity: .21;
    background: currentColor;
}


.about_info .boss .info
{
    display: flex;
    flex-direction: column;

    width: calc(100% - 326px);

    gap: 20px;
}


.about_info .boss .name
{
    font-size: 28px;
    font-weight: 600;
    line-height: 130%;
}


.about_info .boss .image
{
    display: block;

    width: 276px;
    max-width: 100%;

    border-radius: 0 50px 0 0;
}


.about_info .boss .image img
{
    display: block;

    width: 100%;

    border-radius: inherit;
}


.about_info .col_right
{
    display: flex;
    flex-direction: column;

    width: 627px;
    max-width: 100%;

    gap: 50px;
}


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

    padding: 50px;

    border-radius: 0 50px 0 0;
    background: #cfda64;
}


.about_info .message .icon
{
    display: block;

    width: 80px;
    height: 80px;
}


.about_info .message .icon + *
{
    width: calc(100% - 110px);
}



/*----------------
    Advantages
----------------*/
.advantages
{
    position: relative;

    background: var(--accent_color);

    padding-block: var(--block_offset);
}


.advantages:before
{
    position: absolute;
    top: 50%;
    left: 50%;

    display: block;

    width: 150vw;
    height: 1px;
    margin-top: -40px;

    content: '';
    transform: translate(-50%, -50%) rotate(28deg);

    opacity: .3;
    background: #fff;
}


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

    align-content: stretch;
    align-items: stretch;
    justify-content: space-between;
}


.advantages .info
{
    position: relative;

    display: flex;
    flex-direction: column;

    width: calc(50% - 14px);

    color: #fff;

    gap: var(--cont_padding);
}


.advantages .info:before
{
    position: absolute;
    right: 0;
    bottom: 43.167%;

    display: block;

    width: 100vw;
    height: 1px;

    content: '';
    pointer-events: none;

    background: currentColor;
}


.advantages .info > *
{
    position: relative;
    z-index: 3;
}


.advantages .info .image
{
    position: absolute;
    z-index: 1;
    right: -110px;
    bottom: 108px;

    display: block;

    width: 805px;
    height: 497px;

    pointer-events: none;
}


.advantages .info .title
{
    font-size: var(--font_size_title);
    line-height: 90%;
}


.advantages .info .desc
{
    font-size: 28px;
    font-weight: 600;
    line-height: 130%;

    margin-top: auto;

    color: #f3f6fd;
}


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

    display: flex;
    flex-direction: column;

    width: calc(50% - 14px);

    gap: 28px;
}


.advantages .grid .top
{
    display: flex;
    align-content: center;
    align-items: center;
    flex-wrap: wrap;
    justify-content: space-between;

    gap: 28px;
}


.advantages .grid .bottom
{
    display: flex;
    align-content: stretch;
    align-items: stretch;
    flex-wrap: wrap;
    justify-content: space-between;

    gap: 28px;
}


.advantages .grid .col
{
    display: flex;
    flex-direction: column;

    width: 401px;
    max-width: 100%;

    gap: 28px;
}


.advantages .grid .item
{
    display: flex;
    flex-direction: column;

    padding: 50px;

    border-radius: 0 50px 0 0;
    background: #f3f6fd;

    gap: 20px;
}


.advantages .grid .item1
{
    width: 251px;
    max-width: 100%;
}


.advantages .grid .item2
{
    width: calc(100% - 279px);

    color: #fff;
    background: #024941;
}


.advantages .grid .item3
{
    width: calc(100% - 429px);

    color: #fff;
    background: #024941;
}


.advantages .grid .item5
{
    background: #cfda64;
}


.advantages .grid .item .icon
{
    display: flex;
    align-content: center;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-start;

    height: 80px;
}


.advantages .grid .item3 .icon
{
    height: 200px;
    margin-bottom: auto;
}


.advantages .grid .item .icon img
{
    display: block;

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


.advantages .grid .item .name
{
    font-weight: 700;
    line-height: 150%;
}


.advantages .grid .item .desc
{
    line-height: 150%;
}



/*------------------
    Bottom links
------------------*/
.bottom_links
{
    position: relative;

    color: #fff;
    background: var(--bg_dark);

    padding-block: var(--block_offset);
}


.bottom_links.overflow
{
    overflow: hidden;
}


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

    display: block;

    width: 100%;
    height: 100%;
}


.bottom_links .bg img
{
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


.bottom_links:before
{
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;

    display: block;

    width: 1193px;
    height: 1193px;

    content: '';
    transform: translate(-50%, -50%);
    pointer-events: none;

    opacity: .3;
    border: 1px solid #fff;
    border-radius: 50%;
}


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


.bottom_links .row
{
    align-content: stretch;
    align-items: stretch;

    margin-bottom: -28px;
    margin-left: -28px;
}


.bottom_links .row > *
{
    width: calc(33.333% - 28px);
    margin-bottom: 28px;
    margin-left: 28px;
}


.bottom_links .item
{
    font-size: 28px;
    font-weight: 600;
    line-height: 130%;

    display: flex;
    flex-direction: column;

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

    color: #f3f6fd;

    gap: 50px;
    transition: 0.3s;
}

.bottom_links .item:hover{
	color:#CFDA64;
}

.bottom_links .item svg *{
	transition: 0.3s;
}
.bottom_links .item:hover svg * {
	stroke:#CFDA64;
}


.bottom_links .item .icon
{
    display: flex;
    align-content: center;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;

    height: 80px;
}


.bottom_links .item .icon img
{
    display: block;

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



/*------------
    Footer
------------*/
footer
{
    position: relative;
    z-index: 5;

    padding-block: var(--block_offset);
}


footer .row
{
    align-content: stretch;
    align-items: stretch;

    margin-bottom: -28px;
    margin-left: -28px;
}


footer .row > *
{
    width: calc(33.333% - 28px);
    margin-bottom: 28px;
    margin-left: 28px;
}



footer .col
{
    display: flex;
    align-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-start;

    gap: var(--cont_padding);
}



footer .logo
{
    font-size: 32.667px;
    font-weight: 600;
    line-height: 110%;

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

    width: 100%;

    text-decoration: none;

    gap: 24px;
}


footer .logo img
{
    display: block;

    width: 81px;
    height: 81px;
}


footer .logo span
{
    display: block;

    color: var(--accent_color);
}



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

    width: 100%;

    gap: 20px;
}


footer .btns .btn
{
    line-height: 150%;

    display: block;

    padding: 12px 24px;

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

    color: #fff;
    border-radius: 0 10px 0 0;
    background: #024941;
    transition: 0.3s;
    border:1px solid transparent ;
}


footer .btns .btn.white
{
    color: var(--text_color);
    background: #f3f6fd;
}

footer .btns .btn:hover{
	color:#64BE98;
	border-color:#64BE98;
	background: transparent;
}



footer .copyright
{
    font-size: 12px;
    line-height: 150%;

    width: 301px;
    max-width: 100%;
}



footer .links
{
    display: flex;
    flex-direction: column;

    gap: 20px;
}


footer .links .title
{
    font-weight: 700;
    line-height: 150%;
}


footer .links .items
{
    line-height: 150%;

    display: flex;
    flex-direction: column;

    gap: 20px;
}


footer .links .items a
{
    display: inline-block;

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

    color: currentColor;
}


footer .links .items a:hover,
footer .links .items a.active
{
    color: var(--accent_color);
}

.page.text_block h1 {
    text-align: center;
    margin-bottom: 30px;
}

.page.text_block {
    margin-top: 20px;
}