﻿@font-face {
    font-family: 'Wix Madefor Display';
    src: url('../fonts/WixMadeforDisplay-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Wix Madefor Display';
    src: url('../fonts/WixMadeforDisplay-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Wix Madefor Display';
    src: url('../fonts/WixMadeforDisplay-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Wix Madefor Display';
    src: url('../fonts/WixMadeforDisplay-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root{
    --txt-1: #2B3033;
    --txt-2: #474C50;
    --blue-1: #005AE0;
    --blue-2: #3B91C2;
    --grey: #9AA2A7;
    --main-background: #fff;
    --main-font: "Wix Madefor Display", sans-serif;
    --main-font-size: 14px;
    --main-line-height: 115%;
    --letter-spacing: -0.6px;
    --main-font-weight: 400;
}
* {
    line-height: var(--main-line-height);
}
body{
	margin: 0;
	padding: 0;
	font-family: var(--main-font);
	background: var(--main-background);
	color: var(--txt-1);
	font-size: var(--main-font-size);
	line-height: var(--main-line-height);
	font-weight: var(--main-font-weight);
}
ul{
	margin: 0;
	list-style: none;
	padding: 0;
}
h1,h2,h3{
	margin: 0;
	display: block;
	padding: 0;
}
p{
	margin: 0;
}
article, aside, footer, header, hgroup, main, nav, section {
    display: block;
}
section{
	display: block;
}
*,
*:before,
*:after{
	box-sizing: border-box;
}
svg,
img{
    display: block;
	max-width: 100%;
	height: auto;
}
a{
    color: inherit;
    text-underline-offset: 3px;
    text-decoration: underline;
    transition: all 0.3s;
}
a:hover{
    text-decoration-color: transparent;
}

.container{
    max-width: 1460px;
    margin: 0 auto;
    width: 100%;
    padding: 0 20px;
}
.header-line-wrap{
    background: linear-gradient(90deg, #23282B 0%, #2D3F4A 50%, #23282B 100%);
}
.header-line{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px;
    padding: 16px 0;
}
.header-line__email,
.header-nav a{
    color: #CCD7DF;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 115%;
    letter-spacing: -0.48px;
    text-decoration: none;
}
.header-nav ul{
    display: flex;
    align-items: center;
    gap: 40px;
    flex-wrap: wrap;
}
.header-line__email{
    display: flex;
    align-items: center;
    gap: 10px;
}
.header-line a:hover{
    color: white;
}
.hero{
    position: relative;
    margin-bottom: 90px;
}
.hero:before{
    content: '';
    display: block;
    position: absolute;
    left: 50%;
    width: 100%;
    height: calc(100% - 50px);
    top: 50px;
    z-index: -1;
    max-width: 1920px;
    transform: translateX(-50%);
    border-radius: 0 0 30px 30px;
}
.hero-business:before{
    background: url(../img/hero-min.webp) no-repeat center;
    background-size: cover;
}
.hero-house:before{
    background: url(../img/hero-house.webp) no-repeat center;
    background-size: cover;
}
.hero-flat:before{
    background: url(../img/hero-flat.webp) no-repeat center;
    background-size: cover;
}
.hero-office:before{
    background: url(../img/hero-office.webp) no-repeat center;
    background-size: cover;
}
.hero-entrance:before{
    background: url(../img/hero-entrance.webp) no-repeat center;
    background-size: cover;
}
.header-main{
    padding: 30px 0 0;
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: center;
    flex-wrap: wrap;
}
.header-main__left{
    display: flex;
    align-items: center;
    gap: 39px;
}
.header-main__slogan{
    color: var(--txt-1);
    font-size: 17px;
    font-weight: 600;
    line-height: var(--main-line-height);
    letter-spacing: -0.51px;
    max-width: 396px;
}
.header-main__right{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 30px;
}
.header-social{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}
.header-social a{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    overflow: hidden;
}
.tg{
    background: #3EB7F2;
}
.wts{
    background: #06B664;
}
.header-social a:hover{
    background-color: var(--txt-1);
}
.header-main__phone{
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: 100px;
    background: white;
    text-decoration: none;
    min-height: 50px;
    padding: 5px 20px;
    color: var(--txt-1);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.6px;
}
.header-main__phone svg{
    color: #3B91C2;
    transition: all 0.3s;
}
.header-main__phone:hover{
    background-color: var(--txt-1);
    color: white;
}
.header-main__phone:hover svg{
    color: white;
}
.hero__region{
    display: flex;
    align-items: center;
    gap: 15px;
    color: #6A8B9D;
    font-size: 35px;
    font-weight: 500;
    letter-spacing: -1.05px;
}
.hero__title{
    padding: 15px 0 25px;
    color: var(--txt-1);
    font-size: 48px;
    font-weight: 700;
    line-height: var(--main-line-height);
    letter-spacing: -1.44px;
    max-width: 760px;
}
.hero__title span{
    color: var(--blue-1);
}
.hero__desc{
    color: var(--txt-2);
    font-size: 20px;
    letter-spacing: -0.6px;
}
.hero__price{
    padding-top: 62px;
    color: var(--txt-2);
    font-size: 22px;
    font-weight: 500;
    letter-spacing: -0.6px;
    line-height: var(--main-line-height);
}
.hero__price b{
    font-weight: 600;
    color: var(--txt-1);
}
.hero-options{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    padding: 19px 0 30px;
}
.hero-options__item{
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 15px;
    min-height: 44px;
    border-radius: 100px;
    background: white;
    cursor: default;
    color: var(--txt-1);
    font-size: 20px;
    font-weight: 700;
    line-height: var(--main-line-height);
    letter-spacing: var(--letter-spacing);
}
.btn:before{
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(215.07% 70.71% at 100% 50%, #003C94 0%, rgba(0, 90, 224, 0.00) 100%), radial-gradient(215.07% 70.71% at 0% 50%, #35ABEE 0%, rgba(59, 145, 194, 0.00) 100%), #004CBD;
    opacity: 0;
    transition: all 0.3s;
}
.btn{
    position: relative;
    color: white;
    font-family: var(--main-font);
    font-size: 17px;
    font-weight: 700;
    line-height: inherit;
    letter-spacing: -0.51px;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 70px;
    padding: 5px 35px;
    gap: 10px;
    border: none;
    border-radius: 100px;
    background: radial-gradient(215.81% 111.8% at 100% 100%, #003C94 0%, rgba(0, 90, 224, 0.00) 100%), radial-gradient(215.81% 111.8% at 0% 0%, #35ABEE 0%, rgba(59, 145, 194, 0.00) 100%), #005AE0;
    cursor: pointer;
    overflow: hidden;
    outline: none;
    user-select: none;
    text-decoration: none;
    width: fit-content;
    width: -moz-fit-content;
    transition: all 0.3s;
}
.btn svg{
    transition: all 0.3s;
    position: relative;
}
.btn:hover svg{
    transform: rotate(45deg);
}
.btn-def{
    background: var(--blue-1);
    min-height: 60px;
}
.btn-def:before{
    background: #004CBD;
}
.btn-def svg{
    opacity: 0;
}
.btn-def:hover svg{
    opacity: 1;
}
.btn-def span{
    padding-left: 22px;
    transition: all 0.3s;
}
.btn-def:hover span{
    padding-left: 0px;
}
.btn span{
    position: relative;
}
.btn:hover:before{
    opacity: 1;
}
.btn-full{
    max-width: 100%;
    width: 100%;
}
.hero-bottom{
    display: flex;
    justify-content: space-between;
    max-width: 1002px;
    width: 100%;
    padding-top: 75px;
}
.hero-content{
    padding: 104px 0 102px;
    max-width: 1002px;
}
.hero-info{
    display: flex;
    border-radius: 30px;
    background: white;
    padding: 30px 30px;
    gap: 33px;
}
.hero-info__item{
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 12px;
    font-size: 18px;
    color: var(--txt-2);
    letter-spacing: -0.54px;
}
.hero-info__icon{
    position: relative;
    top: 5px;
}
.hero-info__item b{
    font-weight: 500;
    color: var(--txt-1);
}
.hero-num{
    padding: 24px 30px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.hero-num::before{
    content: '';
    display: block;
    position: absolute;
    border: 1px solid rgba(255, 255, 255, 0.50);
    background: rgba(106, 139, 157, 0.50);
    backdrop-filter: blur(10px);
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border-radius: 30px;
    z-index: 1;
}
.hero-num::after{
    content: '';
    display: block;
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.50);
    width: 45px;
    height: 45px;
    right: 0;
    top: 0;
    transform: translate(40%, -30%) scale(0);
    z-index: -1;
    transition: all 1s;
}
.hero-num._active::after{
    transform: translate(40%, -30%) scale(1.5);
}
.hero-num__icon{
    position: absolute;
    background-color: white;
    border-radius: 50%;
    width: 45px;
    height: 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    right: 0;
    top: 0;
    transform: translate(40%, -30%) rotate(180deg);
    opacity: 0;
    z-index: 1;
    transition: all 1s;
}
.hero-num._active .hero-num__icon{
    transform: translate(40%, -30%) rotate(0deg);
    opacity: 1;
}
.hero-num__title{
    position: relative;
    z-index: 1;
    color: white;
    font-size: 30px;
    font-weight: 700;
    letter-spacing: -0.9px;
}
.hero-num__desc{
    position: relative;
    z-index: 1;
    color: white;
    font-size: 17px;
    letter-spacing: -0.51px;
}
.header-line__contacts,
.header-line__top,
.mob-m,
.hero-mob{
    display: none;
}
.cookie {
    position: fixed;
    top: 100%;
    left: 50%;
    transform: translate(-50%, -100%);
    max-width: 630px;
    width: calc(100% - 40px);
    background-color: white;
    border-radius: 20px;
    padding: 12px;
    z-index: 9;
    opacity: 0;
    pointer-events: none;
    box-shadow: 0 0 34px rgba(25, 25, 25, .25);
    transition: all 0.3s;
}
.cookie.active {
    opacity: 1;
    pointer-events: unset;
    top: calc(100% - 20px);
}
.cookie-content {
    color: #303030;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px;
    grid-gap: 16px;
    align-items: center;
    font-size: 16px;
    line-height: normal;
}
.cookie-content a:hover{
    color: var(--color-orange);
}
.btn.cookie__btn{
    min-height: 20px;
    padding: 12px;
    width: 100%;
}

@media all and (max-width: 1420px){
    .hero-house:before{
        background-position-x: 45%;
    }
}

@media all and (max-width: 1200px){
    .btn-def{
        font-size: 15px;
    }
    .header-line__email, .header-nav a{
        font-size: 14px;
    }
    .header-nav ul{
        gap: 15px;
    }
    .header-line{
        padding: 12px 0;
    }
    .header-main__logo{
        max-width: 150px;
    }
    .header-main__left{
        gap: 20px;
    }
    .header-main__slogan{
        font-size: 14px;
        max-width: 195px;
    }
    .header-social a{
        width: 45px;
        height: 45px;
    }
    .header-main__phone{
        min-height: 45px;
        font-size: 16px;
    }
    .hero{
        border-radius: 0 0 30px 30px;
        background: #E8F0F5;
        margin-bottom: 40px;
    }
    .hero:before{
        display: none;
    }
    .header-main__right{
        gap: 15px;
    }
    .hero__region{
        font-size: 25px;
    }
    .hero-content{
        padding: 50px 0 30px;
    }
    .hero__title{
        font-size: 45px;
        padding: 15px 0 20px;
    }
    .hero__price{
        padding-top: 45px;
        font-size: 20px;
    }
    .hero-options__item{
        font-size: 18px;
    }
    .hero-mob{
        display: block;
        position: relative;
        padding-top: 50px;
    }
    .hero-img{
        border-radius: 30px;
        overflow: hidden;
    }
    .hero-img img{
        display: block;
        width: 100%;
    }
    .hero-mob .hero-num{
        display: flex;
        position: absolute;
        left: 30px;
        bottom: 30px;
    }
    .hero-bottom{
        padding-top: 20px;
        width: 100%;
        max-width: 100%;
    }
    .hero-num{
        display: none;
    }
    .hero-num::after{
        z-index: 0;
    }
    .hero-info{
        width: 100%;
        justify-content: space-around;
        gap: 12px;
    }
}

@media all and (max-width: 767px){
    .header-main__slogan{
        display: none;
    }
    .header-main__logo{
        max-width: 123px;
    }
    .header-social a{
        width: 35px;
        height: 35px;
    }
    .header-social a svg{
        max-width: 17px;
    }
    .header-main__phone{
        display: none;
    }
    .over-bg {
		z-index: 99;
		position: fixed;
		bottom: 0;
		background: rgb(0 0 0 / 36%);
		right: 0;
		top: 0;
		display: block;
		left: 0;
	}
    .mob-m{
        width: 40px;
        height: 35px;
        display: block;
        border: none;
        padding: 0;
        margin: 0;
        cursor: pointer;
        background: none;
    }
    .header-main__right{
        gap: 30px;
    }
    .header-line-wrap{
        position: fixed;
        right: 0;
        transition: all 0.3s;
        border-radius: 30px 0 0 30px;
        background: white;
        top: 0;
        height: 100%;
        overflow: hidden;
        overflow-y: auto;
        z-index: 999;
        max-width: 300px;
        width: 100%;
        transform: scale(0);
        transform-origin: top right;
    }
    .open-m .header-line-wrap{
        transform: scale(1);
    }
    .header-line>.header-line__email{
        display: none;
    }
    .header-nav{
        border-top: 1px solid #CCD7DF;
        border-bottom: 1px solid #CCD7DF;
        padding: 25px 0;
        width: 100%;
    }
    .header-nav a{
        color: var(--txt-1);
        font-size: 16px;
    }
    .header-nav ul{
        gap: 18px;
        flex-direction: column;
        align-items: flex-start;
    }
    .header-line__logo{
        max-width: 148px;
    }
    .header-line__top{
        display: flex;
        flex-direction: column;
        gap: 15px;
        position: relative;
    }
    .header-nav a:hover{
        color: var(--blue-1);
    }
    .header-line__slogan{
        color: var(--txt-1);
        font-size: 16px;
        font-weight: 600;
        letter-spacing: -0.48px;
    }
    .header__close{
        position: absolute;
        top: 5px;
        right: 0;
        cursor: pointer;
        color: #CCD7DF;
        transition: all 0.3s;
    }
    .header__close:hover{
        color: #D8523F;
    }
    .header-line__contacts{
        display: flex;
        flex-direction: column;
        gap: 18px;
        width: 100%;
    }
    .header-line__orders a{
        display: flex;
        gap: 7px;
        align-items: center;
        text-decoration: none;
        font-size: 14px;
        font-weight: 500;
    }
    .header-line__orders a span{
        color: var(--txt-1);
    }
    .header-line__orders .header-line__phone{
        font-size: 16px;
        font-weight: 700;
    }
    .header-line__orders a svg{
        color: var(--blue-2);
    }
    .header-line__orders{
        display: flex;
        flex-direction: column;
        gap: 15px;
    }
    .header-line__contacts .header-social a{
        width: 45px;
        height: 45px;
    }
    .header-line__contacts .header-social a svg{
        max-width: 22px;
    }
    .header-line__btn{
        width: 100%;
        margin-top: 40px;
    }
    .hero__region{
        font-size: clamp(20px, 3vw, 25px);
        gap: 10px;
    }
    .hero__region svg{
        max-width: clamp(12px, 2.5vw, 20px);
    }
    .hero__title{
        font-size: clamp(30px, 5.8vw, 45px);
        padding: 10px 0 10px;
    }
    .header-main{
        padding: 28px 0 12px;
    }
    .hero-content{
        padding: 15px 0 20px;
    }
    .hero__desc{
        font-size: clamp(16px, 2.6vw, 20px);
    }
    .hero__price{
        padding-top: 28px;
        font-size: clamp(17px, 2.6vw, 20px);
    }
    .hero-options{
        padding: 15px 0 20px;
    }
    .hero-options__item{
        font-size: 17px;
        min-height: 38px;
        padding: 0 13px;
    }
    .hero-content .btn{
        width: 100%;
    }
    .hero-mob{
        padding-top: 35px;
    }
    .hero-img{
        height: 330px;
    }
    .hero-img img{
        height: 100%;
        object-fit: cover;
        object-position: top center;
    }
    .hero-mob .hero-num{
        left: 20px;
        bottom: 20px;
        padding: 20px;
    }
    .hero-num::before{
        border-radius: 20px;
    }
    .hero-num::after,
    .hero-num__icon{
        width: 35px;
        height: 35px;
    }
    .hero-num__icon svg{
        max-width: 17px;
    }
    .hero-num__title{
        font-size: clamp(25px, 3.9vw, 30px);
    }
    .solutions-item__desc,
    .solutions-item__desc ul,
    .hero-info__item,
    .btn,
    .hero-num__desc{
        font-size: clamp(15px, 2.2vw, 17px);
    }
    .hero-info{
        flex-direction: column;
        padding: 20px;
    }
    .hero-info__desc br{
        display: none;
    }
    .btn{
        min-height: 65px;
    }
    .cookie-content {
        display: flex;
        flex-direction: column;
        font-size: 14px;
    }
    .cookie.active {
        top: calc(100% - 10px);
        width: calc(100% - 30px);
    }
}