.reshero {
    overflow: hidden;
    height: calc(100vh - 96px);
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    justify-content: center;
    min-height: 500px;
    max-height: 800px;
    background: #F1F1F1;
}
.reshero__img {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    width: 441px;
    height: auto;
    pointer-events: none;
}
.reshero__h1 {
    position: relative;
    z-index: 10;
    color:var(--dark);
    display: flex;
    flex-flow: column nowrap;
    align-items: flex-start;
    justify-content: flex-start;
}
.reshero__descr {
    max-width: 730px;
}




.restechnical {
    padding-top: 12rem;
    padding-bottom: 12rem;
}
.restechnical__grid {
    padding-top: 8rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: auto;
    grid-gap: 4rem 4rem;
}
.restechnical__item {
    display: flex;
    flex-flow: column nowrap;
    align-items: stretch;
    justify-content: flex-start;
}
.restechnical__title {
    align-items: center;
    font-weight: 700;
}
.restechnical__title img{
    display: block;
    height: 48px;
    width: auto;
    flex-shrink: 0;
    margin-right: 2rem;
}
.restechnical__title--empty{
    min-height: 98px;
}
.restechnical__box {
    flex-grow: 1;
    background: #FFFFFF;
    border: 1px solid var(--grey3);
    box-sizing: border-box;
    border-radius: 1rem;
    padding: 5rem 8rem calc(8rem + 45px);
    position: relative;
}
.restechnical__subtitle {
    font-weight: 700;
}
.restechnical__text{
    max-width: 330px;
}
.restechnical__action {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 0 8rem 5rem;
}
.restechnical__action .button {
    display: inline-flex;
    padding-left: 2rem;
    padding-right: 2rem;
    height: 45px;
    margin-right: 2rem;
}



.resvideos {
    background: var(--grey);
    padding: 10rem 0;
}
.resvideos .resicontitle {
    padding-top: 8rem;
}
.resicontitle {
    align-items: center;
}
.resicontitle img{
    height: 4.8rem;
    height: 4.8rem;
    margin-right: 20px;
    flex-shrink: 0;
    display: block;
}
.resvideos .resicontitle img{
    transform:translateY(-5px);
}
.resvideos__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: auto;
    grid-gap: 8rem 3rem;
}
.resvideos__youtube {
    margin-top: 8rem;
    padding-left: 43px;
    background: url(../img/resourses/icon-youtube.svg) left center no-repeat;
    background-size: 32px;
}


.rescourses {
    padding-top: 13rem;
    padding-bottom: 6rem;
}
.rescourses__wrap {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: auto;
    grid-gap: 3rem;
}
.rescourse {
    display: flex;
    flex-flow: column nowrap;
    align-items: stretch;
    justify-content: flex-start;
    border: 1px solid var(--grey3);
    padding: 4rem 5rem 6rem;
}
.rescourse__title {
    font-weight: 400;
    min-height: 7.7rem;
    box-sizing: content-box;
}
.rescourse__pic {
    display: block;
    width: 100%;
    height: 200px;
    object-fit: cover;
}
.rescourse__button {
    margin-top: auto;
    height: 45px;
}
.resourses__bottom{
    text-align: center;
}
.resourses__bottom .button{
    display: inline-flex;
    padding-left: 30px;
    padding-right: 30px;
}



.resbook {
    padding-top: 7rem;
}
.resbook__wrap {
    padding-top: 13rem;
}
.resbook__picwrap {
    max-width: 33%;
    flex-shrink: 0;
}
.resbook__picwrap img{
    display: block;
    width: 100%;
    height: auto;
}
.resbook__content {
    padding-left: 11rem;
}
.resbook__caps {
    line-height: 1.5;
}
.resbook__quote {
    padding-top: 60px;
    background: url(../img/community/b3-quote.svg) left top no-repeat;
    background-size: 53px 40px;
}
.resbook__button {
    display: inline-flex;
    margin-top: 5rem;
    height: 45px;
    padding-left: 20px;
    padding-right: 20px;
}


.rescontacts {
    padding-top: 13rem;
    padding-bottom: 10rem;
}
.rescontacts__wrap{
    padding-top: 7rem;
}






@media (max-width:1199px) {
    .reshero{
        height: calc(100vh - 80px);
    }
    .reshero__img{
        width: 35%;
    }
    .reshero__h1{
        font-size: 6rem;
        line-height: 1.25;
    }
    .reshero__descr{
        max-width: 50%;
    }
    .restechnical__box{
        padding-left: 5rem;
        padding-right: 5rem;
    }
    .restechnical__title{
        padding-bottom: 3rem;
    }
    .restechnical__title .h4{
        font-size: 2.6rem;
        white-space: nowrap;
    }
    .rescourse{
        padding-left: 2rem;
        padding-right: 2rem;
    }
    .rescourse__pic{
        height: auto;
    }
    .resbook__content{
        padding-left: 5rem;
    }
    .resbook__quote br{
        display: none;
    }
    .restechnical__action{
        padding-left: 5rem;
        padding-right: 5rem;
    }
}







@media (max-width:992px) {
    .reshero{
        height: auto;
        padding: 13rem 0;
        min-height: auto;
    }
    .reshero__img{
        width: auto;
        height: 100%;
    }
    .reshero__h1{
        font-size: 4rem;
    }
    .restechnical__grid{
        grid-template-columns: 1fr;
    }
    .restechnical__title--empty{
        display: none;
    }
    .resvideos__grid{
        grid-template-columns: 1fr 1fr;
    }
}


@media (max-width:767px) {
    .reshero{
        padding: 7rem 0 7rem;
    }
    .reshero__img{
        display: none;
    }
    .reshero__descr{
        max-width: none;
    }
    .resicontitle{
        font-size: 2.8rem;
        align-items: flex-start;
    }
    .restechnical{
        padding-top: 7rem;
        padding-bottom: 7rem;
    }
    .restechnical__title img{
        height: 3rem;
    }
    .restechnical__title{
        padding-bottom: 2rem;
    }
    .restechnical__title .h4{
        font-size: 2.3rem;
    }
    .restechnical__grid{
        grid-gap: 4rem;
        padding-top: 4rem;
    }
    .restechnical__box{
        padding-left: 2rem;
        padding-right: 2rem;
    }
    .restechnical__action{
        padding-left: 2rem;
        padding-right: 2rem;
        padding-bottom: 3rem;
    }

    .resvideos{
        padding-top: 7rem;
        padding-bottom: 7rem;
    }
    .resvideos .resicontitle{
        padding-top: 3rem;
        font-size: 2.3rem;
    }
    .resvideos__grid{
        grid-template-columns: 1fr;
        grid-gap: 4rem;
    }
    .resvideos__youtube{
        margin-top: 5rem;
        background-position-y: 0;
    }

    .rescourses{
        padding-top: 7rem;
    }
    .resourses__bottom{
        padding-top: 3rem;
    }

    .rescourses br,
    .resbook br{
        display: none;
    }
    .resicontitle img{
        height: 4rem;
        margin-right: 15px;
    }
    .rescourses__wrap{
        grid-template-columns: 1fr;
    }
    .rescourse__title{
        min-height: auto;
    }
    .rescourse{
        padding: 3rem 2rem;
    }
    .resbook{
        padding-top: 2rem;
    }
    .resbook__wrap{
        flex-flow: column nowrap;
        align-items: stretch;
    }
    .resbook__picwrap{
        max-width: 60%;
        padding-bottom: 4rem;
    }
    .resbook__content{
        padding-left: 0;
    }
    .resbook__caps{
        padding-bottom: 3rem;
    }
    .rescontacts__wrap{
        padding-top: 3rem;
    }
    .faqblock__title{
        padding-left: 0;
        padding-right: 0;
    }
    .rescontacts{
        padding-top: 7rem;
        padding-bottom: 2rem;
    }
    .restechnical__box{
        padding-top: 2rem;
        padding-bottom: calc(6rem + 45px);
    }
}