/* USER VARIABLES SECTION */

:root {
	--accent: blue;
	--text: #333;
	--regular-text: 16px;
	--lineheight: 1.65;
	--userfont: roboto-st, sans-serif;
	--systemfont: -apple-system, BlinkMacSystemFont, Arial, sans-serif;
}

/* BOOTSTRAP SETTINGS SECTION */

/* gutter 20px (10px + 10px). Comment this code for default gutter start at 1.5rem (24px) wide. */
.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl { --bs-gutter-x: .625rem; }
.row, .row > * { --bs-gutter-x: 1.25rem; }

/* FONTS LOAD SECTION */

@font-face { src: url("../fonts/roboto-regular-webfont.woff2") format("woff2"); font-family: "roboto-st"; font-weight: 400; font-style: normal; }
@font-face { src: url("../fonts/roboto-italic-webfont.woff2") format("woff2"); font-family: "roboto-st"; font-weight: 400; font-style: italic; }
@font-face { src: url("../fonts/roboto-medium-webfont.woff2") format("woff2"); font-family: "roboto-st"; font-weight: 500; font-style: normal; }
@font-face { src: url("../fonts/roboto-bold-webfont.woff2") format("woff2"); font-family: "roboto-st"; font-weight: 700; font-style: normal; }
@font-face { src: url("../fonts/roboto-bolditalic-webfont.woff2") format("woff2"); font-family: "roboto-st"; font-weight: 700; font-style: italic; }

/* GENERAL CSS SETTINGS */

/* ::placeholder { color: #666; } */
::selection { background-color: var(--accent); color: #fff; }
input, textarea { outline: none; }
input:focus:required:invalid, textarea:focus:required:invalid { border-color: red; }
input:required:valid, textarea:required:valid { border-color: green; }

html {
	scroll-behavior: smooth;
	padding: 0;
	margin: 0;
}
body {
	font-family: var(--userfont);
	font-size: var(--regular-text);
	line-height: var(--lineheight);
	color: var(--text);
	min-width: 320px;
	position: relative;
	overflow-x: hidden;
	margin: 0;
	background-image: url(/images/imgback6.jpg);
	background-repeat: repeat;
	margin-block: 0;
}

/* USER STYLES */
ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
a {
	text-decoration: none;
	color: #333;
}
 .image {
	max-width: 100%;
	margin-bottom: var(--bs-gutter-x);
	border-radius: 4px; 
}
h1 {
	font-size: 2.8rem;
}
h2 {
	font-size: 2rem;
}
h3 {
	font-size: 1.5rem;
}
.accent {
	color: var(--accent);
	font-weight: bold;
}

section {
	min-height: 50vh;
	background-color: rgb(255 255 255 / 50%);
	padding: 50px 100px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.wrapper {
	display: flex;
	max-width: 1200px;
	justify-content: center;
	align-items: center;
}

section:nth-child(2n+1) {
	background-color: #f3f3f396;
}

.nav {
	display: flex;
	justify-content: space-evenly;
	align-items: center;
	position: fixed;
	width: 100%;
	z-index: 1;
	top: 0;
	left: 0;
	right: 0;
	background-color: rgb(255 255 255 / 97%);
	box-shadow: 0px 1px 7px #d9d9d96b;
	font-size: 16px;
	line-height: 14px;
	min-height: 50px;
}
.nav__wrapper {
	display: flex;
	gap: 20px;
	flex-basis: 60%;
	justify-content: space-between;
}
.nav__logo-link {
	flex-basis: 50px;
	align-items: center;
	display: flex;
}
.nav__logo-img{
	width: 210px;
}
.nav__items {
	display: flex;
	justify-content: center;
	gap: 7px;
}
.nav__item {
	display: flex;
}
.nav__link {
	margin: 0px 10px;
	padding: 20px 6px;
	border-bottom: 3px solid transparent;
}
.nav__link:hover {
	color: #2492ff;
	border-bottom: 3px solid #2492ff;
}
.phone {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.phone__items {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.phone__item {
	display: flex;
}
.phone__link {
	display: flex;
  justify-content: space-around;
  align-items: center;
  gap: 5px;
	color: #2492ff;
	font-size: 15px;
}
.phone__icon {
	opacity: 0.9;
	fill: #2492ff;
}
.phone__text {
}
.btn {
	background-color: #2492ff;
	border: none;
	color: #fff;
	padding: 12px 20px;
	border-radius: 50px;
	font-size: 14px;
	text-align: center;
	cursor: pointer;
	transition: all 200ms ease-in-out 0s;
}
.nav__btn {
	align-self: center;
}
.btn--v2 {
	margin: 10px auto;
	background-color: transparent;
	color: #2492ff;
	box-shadow: 0px 0px 0px 1px #2492ff9c;
	padding: 10px;
	max-width: 250px;
	width: 100%;
	display: block;
}
.btn--v2:hover {
	background-color: #2492ff;
	color: #fff;
	box-shadow: initial;
}
.btn:hover{
	background-color: #000000;
	color: #fff;
	box-shadow: 0px 0px 0px 1px #000000;
	transition: all 150ms ease-in-out 0s;
}

.phone-mobile {
	display: none;
	position: absolute;
	top: 12px;
	right: 65px;
}
/* BURGER MENU */

.burger {
	position: absolute;
	top: 15px;
	right: 20px;
	width: 35px;
	height: 20px;
	display: none;
	border: none;
	background-color: transparent;
	padding: 0;
	cursor: pointer;
}
.burger__line {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 100%;
	height: 2px;
	background-color: #2492ff;
	transition: opacity 0.2s ease-in-out;
}
.burger--active .burger__line {
	opacity: 0;
	transition: opacity 0.1s ease-in-out;
}
.burger::before,
.burger::after {
	content: "";
	position: absolute;
	left: 0;
	height: 2px;
	width: 100%;
	background-color: #2492ff;
	transition: transform 0.2s ease-in-out, top 0.2s ease-in-out, bottom 0.2s ease-in-out;
}
.burger::before {
	top: 0;
}
.burger::after {
	bottom: 0;
}
.burger--active::before {
	top: 50%;
	transform: rotate(45deg);
	transition: transform 0.1s ease-in-out, top 0.1s ease-in-out, bottom 0.1s ease-in-out;
}
.burger--active::after {
	top: 50%;
	transform: rotate(-45deg);
	transition: transform 0.1s ease-in-out, top 0.1s ease-in-out, bottom 0.1s ease-in-out;

}

/* Section 1 - HERO */
#hero {
	position: relative;
	background: transparent;
	min-height: 75vh;
	flex-direction: row;
	gap: 50px;
	margin-top: 40px;
}
.hero__header {
	display: flex;
	flex-direction: column;
	flex: 0 1 60%;
	align-self: center;
}
.hero__title {
	font-size: 2.6rem;
	line-height: 3.5rem;
	text-transform: uppercase;
	font-weight: 900;
}
.hero__title span {
	background-color: #333;
	color: #fff;
	padding: 0px 10px;
	white-space: nowrap;
}
.hero__benefefits {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-content: center;
	gap: 40px;
}
.hero__benefit {
	display: flex;
	flex-direction: column;
	gap: 2px;
	border-left: 5px solid #2492ff;
	padding-left: 15px;
}
.hero__benefit-title {
	font-weight: 700;
	color: #2492ff;
	font-size: 18px;
}

/* Форма */
.form {
	display: flex;
	flex-direction: column;
	padding: 35px;
	background-color: rgb(255 255 255 / 95%);
	border-radius: 10px;
	box-shadow: 0px 4px 12px #02182e36;
	gap: 5px;
	flex: 0 1 30%;
	height: 100%;
	width: 100%;
	max-width: 350px;
}
.form label {
	color: #343434;
	display: flex;
	flex-direction: column;
}
.form input, .form textarea {
	outline: none;
	border: 1px solid #d3d3d3;
	border-radius: 20px;
	overflow: hidden;
	min-height: 30px;
	padding-left: 7px;
	font-size: 16px;
	color: #2492ff;
	padding: 5px 15px;
}
.form textarea {
	border-radius: 5px;
	resize: none;
}
.form input::placeholder, .form textarea::placeholder {
  color: rgb(221, 221, 221);
  font-size: 1em;
}
.form__btn {
	margin-top: 15px;
}


.form__send {
	position: fixed;
	z-index: 1000;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #2492ff;
	box-shadow: 0px 0px 38px #11223361;
	color: #ffffff;
	font-size: 2em;
	font-weight: 900;
	max-width: 50%;
	margin: auto;
	max-height: 50%;
	line-height: 50%;
	text-align: center;
	display: flex;
	justify-content: center;
	flex-direction: column;
	border-radius: 10px;
	display: none;
}
.form__visible {
	display: flex;
}

.hero__background-image {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-attachment: fixed;
	z-index: -1;
}
.webp .hero__background-image {
	background: url(/images/bg.webp) no-repeat;
	background-position: left;
	background-size: cover;
}
.no-webp .hero__background-image {
	background: url(/images/bg.jpg) no-repeat;
	background-position: left;
	background-size: cover;
}
.just-validate-error-label {
	font-size: 15px;
}
.form textarea, .form input {
	order: 2;
}

/* SECTION - SERVICE */

#services {
	max-width: 1200px;
	margin: auto;
}
.services {
	display: flex;
    flex-wrap: wrap;
    gap: 50px;
    justify-content: center;
}
.services__item {
	background-color: #f9f9f9;
    flex: 0 1 calc(100% / 4 - 30px * 5 / 4);
    max-width: 250px;
    line-height: 22px;
    font-size: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    justify-content: space-between;
    box-shadow: 0px 0px 0px 1px #2020200f;
    border-radius: 5px;
		min-height: 440px;
		transition: all 250ms ease-out 0.1s;
}
.services__item:hover {
	box-shadow: 0px 9px 11px -8px #00142836, 0px 10px 25px 8px rgb(93 94 94 / 8%);
	transition: all 200ms ease-out 0.1s;
}
.services__img-wrapper {
	flex: 0 0 250px;
	width: 250px;
	position: relative;
	border-radius: 5px 5px 0 0;
	overflow: hidden;
}
.services__img-wrapper:after {
	content: "";
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	position: absolute;
	display: block;
	background-color: rgb(90 38 0 / 15%);
	transition: all 250ms ease-in-out 0s;
}
.services__item:hover .services__img-wrapper:after {
	opacity: 0;
	transition: all 150ms ease-in-out 0s;
}
.services__img {
	object-fit: cover;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: all 250ms ease-out  0.1s;
	filter: saturate(0.7);
}
.services__item:hover .services__img {
	transform: scale(1.1);
	filter: saturate(1);
	transition: all 200ms ease-out 0.1s;
}
.services__title {
	font-size: 16px;
	font-weight: 600;
	line-height: 20px;
	padding: 0px 15px;
	min-height: 40px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.services__desr {
	line-height: 20px;
	padding: 0px 15px;
}
.services__price {
	line-height: 20px;
	padding: 0px 15px;
	font-weight: 600;
	color: #2492ff;
}
.services__btn {
	margin: 10px 15px 15px;
	background-color: transparent;
	color: #2492ff;
	box-shadow: 0px 0px 0px 1px #2492ff9c;
	padding: 10px;
}
.services__item:hover .services__btn {
	background-color: #2492ff;
	color: #fff;
	box-shadow: initial;
}

/* SECTION - PRICE */

#price {
	min-height: 75vh;
}
.subtitle {
	text-align: center;
}

.table {
	width: 100%;
	max-width: 700px;
	background-color: #fff;
	border: none;
	border-spacing: 0;
	margin-bottom: 50px;
}
.table__head {
	background-color: #000000;
	color: #fff;
}
.table__head .table__cell--price {
	background-color:#2492ff;
}
.table__row {
}
.table__body .table__row:hover {
	background-color: #e7ebef;
	box-shadow: 2px 0px 0px 0px #2492ff inset;
	cursor: pointer;
	transition: all 150ms ease-in-out 0s;
}
.table__row:nth-child(2n+1) {
	background-color: #d9d9d926;
}
.table__cell {
	padding: 10px 15px;
}
.table__body {
}
.table__cell-title {
}
.table__cell-descr li {
	display: flex;
	gap: 10px;
}
.table__cell-descr li:after {
	content: "";
	border-bottom: 1px dashed #91c8ff45;
	position: relative;
	top: -6px;
	margin-right: -15px;
	flex-grow: 1;
	transition: border 200ms ease-in-out 0s;
}
.table__body .table__row:hover .table__cell-descr li:after {
	border-bottom: 1px dashed #2492ff78;
	transition: border 150ms ease-in-out 0s;
}
.table__cell-descr {
	padding-left: 20px;
	font-size: 15px;
}
td.table__cell--price {
	color: #2492ff;
	min-width: 130px;
	font-size: 15px;
	transition: color 200ms ease-in-out 0s;
}
.table__body .table__row:hover .table__cell-descr {
	color: #2492ff;
}
.table__cell--price ul {
	margin-top: 28px;
}
/* Адаптив таблицы */
.table-responsive {
	overflow: hidden;
	max-width: 100%;
	overflow-x: auto;
	white-space: nowrap;
}
.table-responsive .table__body .table__row .table__cell:first-child {
	white-space: normal;
	min-width: 300px;
}


/* SECTION - WORKS */

#works .wrapper {
	flex-direction: column;
}

.spotlight-group {
	display: flex;
	flex-wrap: wrap;
	line-height: 0;
	position: relative;
	z-index: 0;
	justify-content: start;
}
.spotlight-group a {
	margin: 0;
	outline: none;
	height: 100%;
	line-height: 0;
}
.spotlight-group a:nth-child(1) {
	box-shadow: rgb(0 0 0 / 80%) 20px -15px 15px -10px;
	z-index: 3;
	filter: contrast(1.3);
	position: relative;
	transform: translate(0px, 40px);
	transition: transform 150ms ease-out 0s;
}
.spotlight-group a:nth-child(1):before {
	position: absolute;
	z-index: 4;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	content: "";
	/* background-color: #00000036; */
}
.spotlight-group a:nth-child(1):after {
	content: "";
	position: absolute;
	z-index: 5;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image: url(/images/zoom-in.svg);
	background-repeat: no-repeat;
	background-position: 60% center;
	transition: transform 150ms ease-out 0s;
	opacity: 0;
}
.spotlight-group a:nth-child(2) {
	box-shadow: rgb(0 0 0 / 80%) 20px -15px 15px -10px;
	z-index: 2;
	position: absolute;
	transform: translate(20px, 20px);
	filter: grayscale(0.5);
	transition: transform 150ms ease-out 0s;
}
.spotlight-group a:nth-child(3) {
	position: absolute;
	filter: grayscale(0.7);
	transform: translate(40px, 0px);
	transition: transform 150ms ease-out 0s;
}
.spotlight-group a:nth-child(1):hover:before {
	background-color: #00000066;
	transition: all 250ms ease-out 0s;
}
.spotlight-group a:nth-child(1):hover:after {
	opacity: 1;
	transition: all 250ms ease-out 0s;
}
.spotlight-group:hover a:nth-child(2) {
	transform: translate(25px, 15px);
	transition: transform 250ms ease-out 0s;
}
.spotlight-group:hover a:nth-child(3) {
	transform: translate(50px, -10px);
	transition: transform 250ms ease-out 0s;
	transition-delay: 0.05s;
}
.spotlight img {
	max-width: 300px;
	margin: 0;
	padding: 0;
}


.works__item {
	display: flex;
	gap: 90px;
}
.works__gallery {
}
.work__description {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.works__title {
	color: #2492ff;
	margin: 0;
}
.works__params {
}
.works__param {
	font-weight: bold;
}
.works__value {
}
.works__review {
	max-width: 250px;
}

/*     ADAPTIVE    */
/* === DESKTOP FIRST === */

/* xl <= Extra extra large (xxl) */
@media (max-width : 1400px) {}

/* lg <= Extra large (xl) */
@media (max-width : 1200px) {

	.nav__wrapper {
		display: none;
		opacity: 0;
		transition: opacity 0.5s ease-in-out;
		max-height: 80vh;
    overflow-y: auto;
	}
	.nav__wrapper.nav__wrapper--visible {
		display: flex;
		opacity: 1;
		transition: opacity 0.5s ease-in-out;
	}
	.nav,
	.nav__wrapper,
	.phone {
		flex-direction: column;
	}
	.phone-mobile {
		display: block; 
	}
	.burger {
		display: block;
	}

	.nav {
		justify-content: space-between;
		gap: 10px;
	
	}

	.phone__items {
		gap: 15px;
	}

	.phone__link {
		font-size: 18px;
	}
	.nav__btn {
		margin-bottom: 25px;
	}
}

/* md <= Large (lg) */
@media (max-width : 992px) {

	#hero .wrapper {
		flex-direction: column;
		gap: 50px;
	}

	section {
		padding: 15px;
	}
}

/* sm <= Medium (md) */
@media (max-width : 768px) {

	.works__item {
		flex-direction: column;
	}

	.works__gallery {
		align-self: center;
		left: -20px;
		position: relative;
	}

	.spotlight-group a:nth-child(1):before {
		background-color: #00000066;
		transition: all 250ms ease-out 0s;
	}

	.spotlight-group a:nth-child(1):after {
		opacity: 1;
		transition: all 250ms ease-out 0s;
	}

}

/* xs <= Small (sm) */
@media (max-width : 576px) {
	.hero__title {
		font-size: 7vw;
		line-height: 8vw;
	}
	.nav__logo-link {
		align-self: flex-start;
		left: 20px;
		position: relative;
	}
	.nav__wrapper {
		width: 100%;
	}
	.nav__items {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
	}
	.nav__item {
		display: flex;
		flex-basis: 100%;
		width: 100%;
	}
	.nav__link {
		flex-basis: 100%;
	}

}

 /* === MOBILE FIRST === */

 /* Custom (xs) */
 @media (min-width : 0) {}

 /* Small (sm) */
 @media (min-width : 576px) {}

 /* Medium (md) */
 @media (min-width : 768px) {}

 /* Large (lg) */
 @media (min-width : 992px) {}

 /* Extra large (xl) */
 @media (min-width : 1200px) {
 	.text {
 		font-size: 18px;
 	}
 }

 /* Extra extra large (xxl) */
 @media (min-width : 1400px) {
 	.text {
 		font-size: 22px;
 	}
 }