body{
    font-family: 'Roboto', sans-serif;
    font-size:16px;
    color:#191919;
    background:#ebebeb;
    position:relative;
    padding:0;
    margin:0;
}
.main-container{
    width:100%;
    max-width: 1280px;
    margin:0 auto;
    background:#fff;
    box-shadow:0 0 35px rgba(0,0,0,0.15);
}
.container{
    width:100%;
    padding:0 40px;
}
@media screen and (max-width:1279px){
    .main-container{
        max-width: 1024px;
    }    
    .container{
        padding:0 30px;
    }
}

@media screen and (max-width:1023px){
    .main-container{
        max-width: 768px;
    }      
    .container{
        padding:0 20px;
    }    
}

@media screen and (max-width:767px){
    .container{
        padding:0 10px;
    }    
}


header{
    height:100px;
    display:flex;
    justify-content: space-between;
    align-items: center;
}
a{
    color:#3378b0;
    font-weight:bold;
}
h2, h3, h4{
    text-align:center;
    text-transform:uppercase;
    font-weight:bold;
}
.btn{
    padding:12px 20px;
    font-size: 15px;
    font-weight:normal;
    text-transform:uppercase;
    color:#fff;
    border-radius:10px;
    text-decoration:none;
    transition:all 0.3s ease;
}
.btn.btn-big{
    font-size:20px;
    font-weight:bold;
    padding:14px 33px;
}
.btn-green{
    background:#4c895c;
    box-shadow: 0 2px #24402b;
}
.btn-green:hover{
    background:#629c6c;
}
.btn-green:active{
    background:#4c895c;
}
.btn-read-more{
    width:164px;
    display:flex;
    justify-content: space-between;
    align-items: center;
    text-transform:none;
    background:#4c895c;
    font-size:15px;
    font-weight:bold;
    padding:8px 16px 7px;
}
.btn-read-more:hover{
    background:#629c6c;
}
.btn-read-more:active{
    background:#4c895c;
}
.btn-read-more>img{
    transition:all 0.3s ease;
    transition:transform 0.3s 0.2s ease ;
}
.btn-read-more._active>img{
    transform:rotate(180deg);
}
.btn-red{
    background:#c83c3c;
    box-shadow: 0 2px #300707;
}
.btn-red:hover{
    background:#ce4b4b;
}
.btn-red:active{
    background:#c83c3c;
}
.btn-blue{
    background:#253351;
}
.btn-blue:hover{
    background:#384869;
}
.btn-blue:active{
    background:#253351;
}
.mark{
    color:#fff;
    padding:0 10px;
}
.mark-green{
    background:#4c895c;
}
.mark-red{
    background:#c83c3c;
}
.text-red{
    color:#c83c3c;
    font-weight:bold;
}
.noscroll {
    overflow: hidden;
    width: 100%;
    height: 100%;
}



.logo{
    padding:4px 10px 0 0;
}
.slogan{
    font-size:15px;
    line-height:22px;
    font-weight:bold;
    color:#316d9d;
    padding:0 12px;
}
.contacts{
    display:flex;
    justify-content: space-between;
    padding:0 0 0 12px;
}
header .phone a, header .email a{
    display:flex;
    align-items: center;
    text-decoration:none;
    color:#191919;
}
header .phone a{
    font-size:18px;
    font-weight:bold;
    margin-right: 38px;
}
header .email a{
    font-size:15px;
    font-weight:normal;
}
header .phone a img, header .email a img{
    margin-right:10px;
}
.callme-small{
    display:none;
    justify-content: center;
    align-items: center;
    width:36px;
    height:36px;
}
.burger-container{
    position:relative;
}
.burger-menu{
    display:none;
    position:absolute;
    z-index:1;
    top:0;
    right:0;
    width:340px;
    padding:22px 30px 54px;
    background: #fff;
    box-shadow: 0px 5px 14px rgba(0,0,0,0.45);
}
.burger-menu .contacts{
    padding:0 0 32px 0;
    font-size:18px;
    line-height:50px;
    letter-spacing:0.3px;
}
.burger-menu .contacts .phone a{
    font-size:20px;
}
.burger-menu .contacts .email a{
    font-size:18px;
}
.burger-btn{
    display:none;
    position:relative;
    width:36px;
    height:36px;
    justify-content: center;
    align-items: center;
    z-index:2;
}
.burger-icon{
    width:18px;
    height:2px;
    background:#fff;
    transition: transform 400ms cubic-bezier(0.23, 1, 0.32, 1);
}
.burger-icon::before, .burger-icon::after{
    content:'';
    display:block;
    position:absolute;
    width:18px;
    height:2px;
    background: #fff;
    transition: transform 400ms cubic-bezier(0.23, 1, 0.32, 1);
}
.burger-icon::before{
    margin-top:-8px;
}
.burger-icon::after{
    margin-top:8px;
}

.burger-btn._active .burger-icon{
    background: rgba(255, 255, 255, 0);
}
.burger-btn._active .burger-icon::before{
    margin-top:0;
    transform: rotate(405deg);
}
.burger-btn._active .burger-icon::after{
    margin-top:0;
    transform: rotate(-405deg);
}
.burger-btn._active ~.burger-menu{
    display:block;
}

.banner{
    background:url(../img/banner-bg.webp) center no-repeat;
    background-size: cover;
    color:#fff;    
    display:flex;
    flex-direction:column;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap:wrap;
    height:503px;
    padding-top:30px;
    padding-bottom:30px;
}
.banner-title{
    order:1;
    width:50%;
    font-size:22px;
    font-weight:normal;
    margin-top:17px;
}
h1{
    font-size:66px;
    letter-spacing:1px;
    margin:4px 0 17px;
    position:relative;
    text-shadow: #191b21 3px 3px 0;
}
.banner-img{
    order:3;    
    width:50%;
    height:100%;
    display:flex;
    justify-content: center;
    align-items: center;
}
.banner-text{
    order:2;
    width:50%;
    font-size:39px;
    line-height:60px;
    font-weight:bold;
}
.banner-text>div{
    margin-bottom:28px;
}
.banner-text .mark{
    padding: 2px 10px 7px;
}




h2{
    font-size:26px;
    line-height:34px;
    margin:3px 0 1px;
    position:relative;
}
h2.border-green::after{
    content:'';
    position:absolute;
    bottom:-5px;
    left:50%;
    width:150px;
    height:3px;
    background:#4c895c;
    transform:translateX(-75px);
}
h3{
    font-size:18px;
}
.advantages{
    padding-top:30px;
    padding-bottom:0px;
}

.adv-list{
    display:flex;
    justify-content: space-between;
    padding:40px 0 41px;
    border-bottom:1px solid #d9d9d9;
}
.adv-item{
    width:270px;
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align:center;
    background:#f2f2f2;
    font-size:16px;
    line-height:22px;
    padding:26px 10px 24px;
}
.adv-item img{
    height:47px;
}
.adv-item > b{
    margin:16px 0 7px;
    font-size:18px;
}

.p-start{
    padding-top:30px;
    padding-bottom:20px;       
}
.p-short{
    text-align:center;
    max-width:1016px;
    margin:25px auto 17px;
    line-height:22px;
}
.p-spec{
    margin:0 auto;
    max-width: 390px;
}
.p-spec .mark{
    padding:0 6px;
}
.p-spec>div{
    display:flex;
    justify-content: space-between;
    font-size:18px;
    font-weight:bold;
    line-height:28px;
    margin:14px 0 13px;
}
.p-detail{
    display:flex;
    justify-content: space-between;
    align-items: center;
    background:#23304c;
    color:#fff;
    padding-top:16px;
    padding-bottom:14px; 
}
.p-block1{
    width:50%;
    padding-right:100px;
    margin-right:-10px;
}
.p-block2{
    display:flex;
    justify-content: center;
    align-items: center;
    width:300px;
}
.p-block2 img{
    width:300px;
}
.p-block3{
    padding-left:50px;
    width:50%
}
.p-adv-item{
    display:flex;
    justify-content: flex-start;
    align-items: center;
    font-size:16px;
    font-weight:bold;
    line-height:22px;
}
.p-adv-item img{
    margin:10px 26px 3px 5px;
}
.p-detail ul{
    margin-left:0px;
    list-style-type:'—   ';
    padding-left:28px;
}
.p-detail ul li{
    font-size:16px;
    line-height:24px;
}
.p-block3 h3{
    font-size:16px;
    text-align:left;
    margin-bottom:6px;
}


.p-desc{
    padding-top:45px;
    padding-bottom:40px;
    border-bottom:1px solid #c5c5c5;
    font-size:16px;
    line-height:22px;
}
.p-desc-inner{
    background:#f2f2f2;
    padding:15px 40px 37px;
}
.p-desc ol{
    margin-left:9px;
    counter-reset: li;
    list-style-type:none;
}
.p-desc ol li{
    position:relative;
    margin:20px 0 22px;
    height:auto;
    padding-left:12px;
}
.p-desc ol li::before{
    position:absolute;
    top:-9px;
    left:-50px;
    content: counter(li);
    counter-increment: li;
    width:37px;
    height:37px;
    background:#4f8c59;
    display:flex;
    justify-content: center;
    align-items: center;
    color:#fff;
    font-size:18px;
    font-weight:bold;
}
.p-desc ol li.collapse{
    display:none;
    opacity:0;
    transform:scaleY(0);
    transition:all 0.3s ease;
}
.p-desc ol li.collapse._active{
    display:block;
    opacity:1;
    transform:scaleY(1);
}
.p-desc h4{
    font-size:18px;
    margin:10px 0 13px;
    color:#4f8c59;
    text-align:left;
    text-transform:none;
}




.about{
    padding-top:30px;
    padding-bottom:40px;
}

.about-text{
    font-size:16px;
    line-height:22px;
    max-width:1016px;
    text-align: center;
    margin:22px auto 8px;
    padding-bottom:8px;
}


.services{
    display:flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    margin:0;
    padding:11px 0 0;
    margin-bottom:-15px;
}
.service{
    width:374px;
    border:1px solid #d2d2d2;
    padding:25px 25px 20px;
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: 0 0 40px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.15);
    font-size:16px;
    line-height:22px;
    text-align: center;
}
.service img{
    height:45px;
}
.service b{
    font-size:18px;
    margin:18px 0 6px;
}
.requisites{
    display:flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width:1016px;
    margin:0 auto;
    padding:6px 0 16px;
}
.requisites p{
    line-height:24px;
    margin:0;
}
.requisites>div{
    width:48%;
}
.map{
    display:flex;
    height:356px;
    color:#fff;
    font-size:18px;
    line-height:28px;
}
.map-text{
    background:#23304c;
    width:460px;
    padding-top:45px;
    padding-bottom:45px;
}
.map p{
    margin:0 0 5px;
}
.map-inner{
    background:#c83c3c;
    flex-grow: 1;
}
.map-text a{
    color:#fff;
    text-decoration:none;
}
.phone-email{
    margin:23px 0 45px;
}
.phone-email .phone{
    padding-bottom:5px;
}
.phone-email .email a{
    font-weight:normal;
}
.phone-email img{
    margin-top:2px;
    margin-right:20px;
}

footer{
    height:40px;
    background:#fff;
}
@media screen and (max-width:1279px){
    .logo{padding-right:0;}
    .contacts{
        flex-direction:column;
        align-items: flex-start;
        justify-content: center;
    }
    .banner{
        height:426px;
    }
    .banner-title{
        margin-top:9px;
        font-size:18px;
    }
    h1{
        font-size:53px;
    }
    .banner-text{
        font-size:30px;
        line-height:50px;
    }
    .adv-list{
        flex-wrap: wrap;
        padding-bottom:10px;
    }
    .adv-item{
        width: 467px;
        margin-bottom:30px;
        padding-bottom:21px;
    }
    .services{
        margin-bottom:7px;
    }
    .service{
        width:467px;
        margin-bottom:30px;
    }
    .p-detail{
        padding-top:28px;
        padding-bottom:36px;
        align-items: stretch;
    }
    .p-block1{
        padding-right:40px;
        padding-top:0;
        padding-bottom:0;        
        height:100%;
        min-height:524px;
        display:flex;
        flex-direction: column;
        justify-content: space-between;
        align-items: flex-start;
    }
    .p-block2 img{
        width:268px;
    }
    .p-block3{
        padding-top:8px;
    }    
    .p-block3{
        padding-left:45px;
    }
    .p-desc-inner{
        padding-left:30px;
    }
}

@media screen and (max-width:1023px){
    .btn.btn-big{
        font-size:18px;
        padding:11px 33px;
    }
    header{
        height:80px;
    }
    .slogan{
        display:none;
    }
    header>.callme{
        display:none;
    }
    .burger-btn{
        display:flex;
    }
    h1{
        font-size:42px;
        margin:9px 0 8px;
    } 
    .banner{
        height:350px;
    }
    .banner-title {
        margin-top: 2px;
    }
    .banner-text{
        font-size:24px;
        line-height:40px;
    }
    .banner-text>div{
        margin-bottom: 23px;
    }
    .adv-item{
        width:354px;
        margin-bottom:25px;
    }
    .p-detail{
        flex-wrap:wrap;
    }
    .p-block1{
        padding:0;
        min-height:440px;
    }
    .p-block2{
        width:50%;
    }
    .p-block3{
        width:100%;
        display:flex;
        padding:11px 0 0 0;
        align-items: center;
    }  
    .p-block3>*{width:50%;padding-left:10px;}
    .p-adv-item img{
        margin:9px 26px -2px 5px;
    }
    .p-detail ul{
        padding-left:32px;
    }
    .p-desc{
        padding-top:43px;
        padding-bottom:42px;
    }
    .p-desc-inner{
        padding:7px 20px 35px;
    }
    .p-desc ol{
        margin-bottom:30px;
    }
    .services{
        padding-top:12px;
        margin-bottom:14px;
    }
    .service{
        width:354px;
        padding: 25px 15px 20px;
        margin-bottom:20px;
    }
    .map-text{
        width:50%;
    }
}

@media screen and (max-width:767px){
    body{
        font-size:15px;
    }
    .btn.btn-big{
        font-size:16px;
        padding:11px 30px;
    }    
    header{
        height:62px;
    } 
    .logo img{
        width:221px;
    }
    header>.contacts{
        display:none;
    }
    .callme-small{
        display:flex;
    }
    .banner{
        flex-wrap: wrap;
        height:unset;
        text-align:center;
        padding-top:14px;
    }
    .banner>*{
        width:100%;
    }
    .banner-img{
        padding:0 19px;
        order:2; 
    }
    .banner-text{
        padding-top:10px;
        order:3;
        font-size:20px;
        line-height:30px;        
    }
    .banner-text>div{
        margin-bottom:19px;
    }
    h1{
        font-size:38px;
    }
    h2{
        margin:0;
        font-size:18px;
        line-height:24px;
    }  
    h2.border-green::after{
        bottom:-7px;
    }   
    .advantages{
        padding-top:25px;
    }     
    .adv-list{
        padding-top:27px;
        padding-bottom:20px;
    }
    .adv-item{
        width:100%;
        margin-bottom:10px;
        font-size:15px;
        line-height:20px;
        padding-top:19px;
        padding-bottom:19px;        
    }
    .adv-item img{
        height:39px;
    }   
    .p-adv-item{
        font-size:15px;
        line-height:20px;
    } 
    .p-adv-item img{
        width:74px;
        height:74px;
        margin-left:10px;
        margin-right:16px;
    }
    .adv-item > b{
        font-size:16px;
        margin-top:11px;
        margin-bottom:5px;        
    }
    .p-start{
        padding-top:25px;
    }    
    .p-short{
        margin-top:13px;
        margin-bottom:0px;
        font-size:15px;
        line-height:20px;
    }
    .p-spec{
        margin-top:-7px;
    }
    .p-spec>div{
        font-size:15px;
        line-height:24px;
    }
    .p-detail{
        padding:18px 10px 20px;
    }
    .p-detail>*{
        width:100%;
    }
    .p-block1{
        min-height:370px;
    }
    .p-block2{
        padding-top:7px;
    }
    .p-block2 img{
        width:215px;
    }
    .p-block3{
        flex-wrap: wrap;
    }
    .p-block3>*{
        width:100%;
    }
    .p-desc, .p-desc h4{
        font-size:15px;
        line-height:20px;
    }
    .p-desc-inner{
        padding:7px 10px 35px;
    }
    .about-text{
        font-size:15px;
        line-height:20px;       
    }
    .service{
        width:100%;
        font-size:15px;
        line-height:20px;
    }
    .requisites, .map{
        flex-wrap: wrap;
    }
    .requisites>div, .map>div{
        width:100%;
    }
    .requisites p{
        font-size:15px;
        line-height:20px;
    }
    .map{
        height:auto;
    }
    .map-inner{
        height:354px;
    }
}



/* MODAL FORM */

.popup_mask{
    display:none;
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(0,0,0,0.5);
}
.popup_mask._active{
    display:block;
    z-index:999;    
}
.modal_form {
    width: 90%;
    max-width: 560px;
    justify-content: center;
    align-items: center;
    text-align: left;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 100%;
    max-height: 100%;
    overflow: hidden;
    display: none;
    line-height: 1.5;
}
.modal_form._active {
    display: flex;
    z-index: 1000;
    overflow: auto;
}
.modal_form .modal_wrapper {
    position: relative;
    z-index: 2000;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}
.modal_content_wrapper{
    width:100%;
    height:auto;
    margin:0;
    padding:0;
    background: #fff;
    position:relative;
    z-index: 1002;
}
.modal_form .close-btn {
    position:absolute;
    width: 38px;
    height: 38px;
    background-color: #e7e7e7;
    opacity: 1;
    top:0;
    right:0;
    border:0;
    cursor:pointer;
}
.close-btn:before, .close-btn:after{
    content: '';
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    margin: auto;
    width: 13px;
    height: 2px;
    background-color: #303030;
}
.close-btn:before {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}
.close-btn:after {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
.modal_form h2 {
    width: 100%;
    text-transform: uppercase;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 21px;
}
.modal_form_content, .modal_form_success, .modal_form_error {
    display: flex;
    flex-wrap: wrap;
    padding: 31px 40px 35px;
    font-size: 14px;
    color: #303030;
}
.modal_form .desc {
    margin-bottom: 10px;
}
.modal_form .red {
    color: #e12024;
}
.field1, .field4, .field5 {
    width: 100%;
}
.field2 {
    width: 50%;
    padding-right: 10px;
}
.field3 {
    width: 50%;
    padding-left: 10px;
}
.modal_form_content .button_row {
    width: 100%;
    text-align: center;
    margin-top: 18px;
    padding: 4px 0 3px;
}
.modal_form_content input, .modal_form_content textarea {
    outline: none !important;
}
.modal_form_content .checkbox-group {
    padding: 4px 0;
}
.modal_form_content .checkbox-group label {
    box-sizing: content-box;
    height: 20px;
    height: auto;
    position: relative;
}
.modal_form_content .field input[type='text'] {
    height: 38px;
    width: 100%;
    border: 1px solid #d3d3d3 !important;
    background-color: #f8f8f8;
    box-shadow: 0px 1px 3px #e0e0e0 inset;
    padding: 0 10px;
}
.modal_form_content .field input[type=checkbox]{
    display:none;
}
.modal_form_content .field textarea {
    width: 100%;
    height: 112px;
    border: 1px solid #d3d3d3 !important;
    background-color: #f8f8f8;
    box-shadow: 0px 1px 3px #e0e0e0 inset;
    padding: 8px 10px;
}
.modal_form_content .field .error {
    margin-top: 0px;
    font-size: 11px;
    color: #e12024;
    opacity: 0;
}

.modal_form_content .param-text {
    display: block;
    width: 100%;
    white-space: normal;
    padding-left: 20px;
}
.modal_form_content .check {
    position: absolute;
    top: 1px;
    left: -3px;
    width: 18px;
    height: 18px;
    border: 1px solid #c5c5c5;
    background-color: #fff;
}
.modal_form_content input[type="checkbox"]:checked + label.bx-filter-param-label .check {
    border-color: #4c895c;
    background-color: #4c895c;
}
.modal_form_content .check svg path {
    fill: none;
    stroke: var(--add_color);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 71px;
    stroke-dashoffset: 71px;
    transition: all 0.6s ease;
}
.modal_form_content .check svg polyline {
    fill: none;
    stroke: #ffffff;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 18px;
    stroke-dashoffset: 18px;
    transition: all 0.3s ease;
}
.modal_form_content input[type="checkbox"]:checked + label.bx-filter-param-label .check svg polyline {
    stroke-dashoffset: 0;
}
.modal_form_content .field.error input, .modal_form_content .field.error textarea {
    border-color: #e12024 !important;
}
.modal_form_content .field.error .error{
	opacity: 1;
}

@media screen and (max-width:767px){
    .field2, .field3 {
        width: 100%;
        padding: 0;
    }
}


