@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');
:root{
	--light-fill: #fcfcf9;
	--white: #fff;
	--white-800: rgba(255, 255, 255, 0.8);
	--white-200: rgba(255, 255, 255, 0.2);
	--white-100: rgba(255, 255, 255, 0.1);
	--white-50: rgba(255, 255, 255, 0.05);
	--black: #121212;
	--black-800: rgba(18, 18, 18, 0.8);
	--black-600: rgba(18, 18, 18, 0.6);
	--black-480: rgba(18, 18, 18, 0.48);
	--black-400: rgba(18, 18, 18, 0.4);
	--black-200: rgba(18, 18, 18, 0.2);
	--grey: #eee;
	--grey-400: rgba(238, 238, 238, 0.4);
	--blue: #273751;
	--yellow: #fcbf02;

	--font-family: "Roboto", sans-serif;

	--h1: max(44px, 96rem);
	--h2: max(32px, 60rem);
	--h3: max(24px, 32rem);
	--h4: max(20px, 24rem);

	--text: max(16px, 20rem);
	--add: max(20px, 32rem);
	--button: max(18px, 20rem);
	--link: max(16px, 18rem);
	--caption: max(28px, 60rem);
	--big: max(40px, 80rem);

	--radius: max(12px, 20rem);

    --fast: cubic-bezier(0.2, 1, 0.3, 1);
	--slow: cubic-bezier(0.0, 0.0, 0.58, 1.0);
}
::selection {
	color: var(--white);
	background-color: var(--blue);
}
.footer-bottom ::selection,
.footer-banner ::selection,
.hero ::selection,
.num ::selection {
	color: var(--black);
	background-color: var(--white);
}
/************************* reset *************************/
html{
	height: 100%;
	margin: 0;
	padding: 0;width: 100%;
	background: var(--light-fill);
	font-size: 0.0625vw;
	scrollbar-gutter: stable;
}
body{
	height: 100%;
	width: 100%;
	position: relative;
	margin: 0;
	padding: 0;
	color: var(--black);
	font-weight: 400;
	font-size: var(--text);
	line-height: 125%;
	letter-spacing: -0.04em;
	font-family: var(--font-family), Arial, Helvetica, sans-serif;
	min-width: 320px;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6, p, ul, li, a, span, div, input, textarea, select, form, fieldset, button, dl, dd, dt, figure, figcaption, blockquote, caption, aside, section {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	box-sizing: border-box;
}
img {
	margin: 0;
	padding: 0;
	border-style: none;
	vertical-align: bottom;
}
input, textarea, select, button {
	font-weight: 400;
	font-family: var(--font-family), Arial, Helvetica, sans-serif;
	vertical-align:middle;
	border: 0;
	outline: 0;
	background: none;
}
a:hover {text-decoration: none;}
ul li {list-style: none;}
/************************* common styles *************************/
.holder {
	padding: 0 max(16px, 20rem);
}
h1, .h1 {
	display: block;
	font-weight: 400;
	font-size: var(--h1);
	line-height: 90%;
	letter-spacing: -0.06em;
}
h2, .h2 {
	display: block;
	font-weight: 400;
	font-size: var(--h2);
	line-height: 100%;
	letter-spacing: -0.06em;
}
h3, .h3 {
	display: block;
	font-weight: 400;
	font-size: var(--h3);
	line-height: 100%;
	letter-spacing: -0.05em;
}
h4, .h4 {
	display: block;
	font-weight: 400;
	font-size: var(--h4);
	line-height: 110%;
	letter-spacing: -0.04em;
}
.additional {
	display: block;
	font-weight: 400;
	font-size: var(--add);
	line-height: 100%;
	letter-spacing: -0.05em;
}
.caption {
	display: block;
	font-weight: 400;
	font-size: var(--caption);
	line-height: 90%;
	letter-spacing: -0.06em;
}
.big {
	display: block;
	font-weight: 400;
	font-size: var(--big);
	line-height: 90%;
	letter-spacing: -0.06em;
}
a {transition: all 0.4s ease-in-out;}
p {margin: 0 0 max(21px, 25rem);}
p:last-child {margin: 0;}
p a, .article li a, .policy li a {color: var(--black-800);}
.center {text-align: center;}
.upper {text-transform: uppercase;}
.button-holder {text-align: center;}
.button {
	position: relative;
	display: inline-block;
	padding: max(16px, 16rem) max(36px, 36rem);
	color: var(--white);
	font-size: var(--button);
	line-height: 100%;
	letter-spacing: -0.04em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	background: var(--blue);
	border: 1px solid var(--blue);
	border-radius: 100px;
	transition: all .45s ease-in-out;
}
.button:hover {
	color: var(--black);
	background: transparent;
}
/************************* form-block *************************/
.wpcf7-form-control-wrap input {
	display: block;
	width: 100%;
	height: max(54px, 60rem);
	padding: 0 max(24px, 30rem);
	margin: 0 0 max(10px, 10rem);
	font-size: var(--text);
	line-height: 125%;
	letter-spacing: -0.04em;
	color: var(--black);
	background: var(--grey-400);
	border: 1px solid var(--grey);
	border-radius: max(10px, 10rem);
	transition: all 0.4s ease-in-out;
}
.wpcf7-form-control-wrap textarea {
	display: block;
	width: 100%;
	height: max(100px, 120rem);
	padding: max(16px, 16rem);
	margin: 0 0 max(10px, 10rem);
	font-size: var(--text);
	line-height: 125%;
	letter-spacing: -0.04em;
	resize: vertical;
	color: var(--black);
	background: var(--grey-400);
	border: 1px solid var(--grey);
	border-radius: max(10px, 10rem);
	transition: all 0.4s ease-in-out;
}
.wpcf7-form-control-wrap input:hover,
.wpcf7-form-control-wrap textarea:hover,
.wpcf7-form-control-wrap input:focus,
.wpcf7-form-control-wrap textarea:focus {
	border: 1px solid var(--black-200);
}
.wpcf7-form-control-wrap.error input,
.wpcf7-form-control-wrap.error textarea {
	border-color: #e02424;
}
.inactive {
	opacity: 0.4;
	pointer-events: none;
}
::-webkit-input-placeholder {color: var(--black-400);}
:-moz-placeholder {color: var(--black-400); opacity: 1;}
::-moz-placeholder {color: var(--black-400); opacity: 1;}
:-ms-input-placeholder {color: var(--black-400);}
.error-msg {
	display: none;
	margin: 0 0 max(10px, 10rem);
	font-size: var(--link);
	line-height: 100%;
	letter-spacing: -0.04em;
	color: #e02424;
}
.error .error-msg {
	display: block;
}
.input-box {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.input-box .wpcf7-form-control-wrap {
	width: calc(50% - max(5px, 5rem));
}
.form-button {
	padding: max(14px, 14rem) 0 0;
}
.check-item {
	position: relative;
	margin: 0 0 max(20px, 24rem);
	padding: max(4px, 4rem) 0 0;
}
.wpcf7-form-control-wrap .check-input {
	position: absolute;
	left: 0;
	width: 1px;
	height: 1px;
	opacity: 0;
}
.check-label {
	display: block;
	padding: 0 0 0 max(35px, 35rem);
	font-size: var(--text);
	line-height: 120%;
	letter-spacing: -0.03em;
	color: var(--black-600);
	cursor: pointer;
}
.check-label a {color: var(--black-600);}
.check-label::before {
	position: absolute;
	top: max(2px, 2rem);
	left: 0;
	display: block;
	content: '';
	width: max(20px, 20rem);
	height: max(20px, 20rem);
	box-sizing: border-box;
	background: transparent;
	border: 1px solid var(--black-200);
	border-radius: 2px;
	transition: all 0.4s ease-in-out;
}
.check-label:hover::before {
	border-color: var(--blue);
}
.check-input:checked + .check-label::before {
	background: var(--blue) url(../images/checkbox.svg) 50% 50%;
	background-size: contain;
}
/************************* wrapper *************************/
#wrapper {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100dvh;
	padding: max(100px, 170rem) 0 0;
}
/************************* header *************************/
.header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 300;
	padding: max(16px, 30rem) 0 0;
	transition: all 0.4s ease-in-out;
}
.header-hide {
	transform: translateY(-100%);
}
.header-block {
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
	height: max(64px, 100rem);
	padding: 0 max(12px, 20rem);
}
.header-block::before {
	position: absolute;
	inset: 0;
	content: '';
	backdrop-filter: blur(30px);
	background: var(--grey-400);
	border-radius: max(200px, 200rem);
}
.header-logo {
	position: relative;
	z-index: 550;
}
.header-logo img {
	display: block;
	width: max(40px, 60rem);
}
.logo-white {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}
.header-nav {
	position: relative;
	display: flex;
	align-items: center;
	gap: max(20px, 36rem);
}
.header-nav-list {
	display: flex;
	gap: max(20px, 36rem);
}
.header-nav-list > li {
	position: relative;
}
.header-nav-list > li > a {
	position: relative;
	display: flex;
	font-size: var(--link);
	line-height: 100%;
	letter-spacing: -0.04em;
	color: var(--black);
	text-decoration: none;
}
.nav-parent {
	align-items: center;
	gap: max(6px, 6rem);
}
.nav-parent::after {
	display: block;
	content: '';
	width: max(9px, 9rem);
	height: max(8px, 8rem);
	background: url(../images/nav-arrow.svg) 50% 50% no-repeat;
	background-size: contain;
	transition: all 0.4s ease-in-out;
}
.header-nav-list > li > a::before {
	position: absolute;
	left: 0;
	bottom: -2px;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--black);
	transform: scale3d(0, 1, 1);
    transform-origin: 100% 50%;
    transition: transform 0.5s var(--fast);
}
.header-nav-list > li > a:hover::before {
	transform: scale3d(1, 1, 1);
	transform-origin: 0% 50%;
	transition-timing-function: ease-out;
}
.header-nav-list > li:hover > a::before,
.header-nav-list > li > a.active::before {
	transform: scale3d(1, 1, 1);
}

.header-nav-list > li:hover .subnav {
	opacity: 1;
	visibility: visible;
}
.subnav {
	position: absolute;
	top: 100%;
	left: min(-24px, -24rem);
	margin-top: max(20px, 40rem);
	backdrop-filter: blur(30px);
	background: var(--grey-400);
	padding: max(24px, 24rem);
	border-radius: 0 0 max(20px, 24rem) max(20px, 24rem);
	opacity: 0;
	visibility: hidden;
    transition: all 0.4s cubic-bezier(0.65, 0.07, 0.075, 0.95);
}
.subnav::before {
	position: absolute;
	left: 0;
	right: 0;
	top: min(-20px, -40rem);
	height: max(20px, 40rem);
	content: '';
}
.subnav ul {
	display: flex;
	flex-direction: column;
	gap: max(12px, 16rem);
}
.subnav li {
	font-size: var(--link);
	line-height: 100%;
	letter-spacing: -0.04em;
}
.subnav a {
	position: relative;
	color: var(--black);
	text-decoration: none;
	white-space: nowrap;
}
.subnav a::before {
	position: absolute;
	left: 0;
	bottom: -2px;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--black);
	transform: scale3d(0, 1, 1);
    transform-origin: 100% 50%;
    transition: transform 0.5s var(--fast);
}
.subnav a:hover::before {
	transform: scale3d(1, 1, 1);
	transform-origin: 0% 50%;
	transition-timing-function: ease-out;
}

.main-page:not(.lock) .header:not(.header-fixed) .header-block::before {
	background: var(--white-100);
}
.main-page .header:not(.header-fixed) {
	padding-left: max(16px, 20rem);
	padding-right: max(16px, 20rem);
}
.main-page:not(.lock) .header:not(.header-fixed) .logo-white {
	opacity: 1;
}
.main-page:not(.lock) .header:not(.header-fixed) .logo-default {
	opacity: 0;
}
.main-page:not(.lock) .header:not(.header-fixed) .mob-nav-block:after,
.main-page:not(.lock) .header:not(.header-fixed) .mob-nav-block:before {
    background: var(--white);
}

@media screen and (min-width: 1024px) {
	.main-page .header:not(.header-fixed) .header-nav-list a {
		color: var(--white);
	}
	.main-page .header:not(.header-fixed) .nav-parent::after {
		background: url(../images/nav-arrow-white.svg) 50% 50% no-repeat;
		background-size: contain;
	}
	.main-page .header:not(.header-fixed) .header-nav-list a::before {
		background: var(--white);
	}
	.main-page .header:not(.header-fixed) .header-button .button {
		color: var(--black);
		background-color: var(--white);
		border-color: var(--white);
	}
	.main-page .header:not(.header-fixed) .header-button .button:hover {
		color: var(--white);
		background-color: transparent;
	}
	.main-page .header:not(.header-fixed) .subnav {
		background: var(--white-100);
	}
}

.mob-nav-icon {
	display: none;
	position: relative;
	z-index: 550;
	width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
}
.mob-nav-block {
    position: relative;
	display: block;
    width: 22px;
    height: 2px;
    margin: 4px 0;
	transition: all .3s linear;
}
.mob-nav-block:after {
    content: "";
    position: absolute;
    top: -4px;
    left: 0;
    width: 22px;
    height: 2px;
    background: var(--blue);
	transition: all .3s linear;
}
.mob-nav-block:before {
    content: "";
    position: absolute;
    top: 4px;
	left: 0;
    width: 22px;
    height: 2px;
    background: var(--blue);
	transition: all .3s linear;
}
.mob-nav-icon.active .mob-nav-block {
    background: none;
}
.mob-nav-icon.active .mob-nav-block:before {
    top: 0;
    transform: rotate(45deg);
}
.mob-nav-icon.active .mob-nav-block:after {
    top: 0;
    transform: rotate(-45deg);
}
.cookies {
	position: fixed;
	left: max(18px, 40rem);
	right: max(18px, 40rem);
	bottom: max(18px, 30rem);
	z-index: 700;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: max(20px, 20rem) max(16px, 20rem);
	background: var(--light-fill);
	border: 1px solid var(--black-200);
	border-radius: 100px;
}
/************************* banner *************************/
.hero {
	position: relative;
	overflow: hidden;
	margin: min(-100px, -170rem) 0 max(80px, 140rem);
	padding: max(10px, 10rem) max(10px, 20rem);
}
.hero-main {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: calc(100dvh - max(20px, 20rem));
	border-radius: var(--radius);
}
.hero-bg {
	position: absolute;
	inset: 0;
}
.hero-bg video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hero-bg::before {
	position: absolute;
	inset: 0;
	content: '';
	z-index: 10;
	background: rgba(0, 0, 0, 0.2);
}
.hero-block {
	position: relative;
	z-index: 20;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: max(24px, 32rem);
	color: var(--white);
	text-align: center;
}
.hero-block h4 {
	max-width: max(380px, 540rem);
}
.hero-button {
	position: absolute;
	inset: 0;
	top: auto;
	z-index: 20;
	padding: max(20px, 40rem) max(12px, 20rem);
	text-align: center;
}
.hero-button .button {
	color: var(--black);
	background-color: var(--white);
	border-color: var(--white);
}
.hero-button .button:hover {
	color: var(--white);
	background-color: transparent;
}

/************************* main-about *************************/
.main-about .title-block {
	margin: 0 0 max(24px, 70rem);
}
.box-video {
	overflow: hidden;
	aspect-ratio: 1/1.26;
	width: max(320px, 374rem);
	border-radius: var(--radius);
}
.box-video video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.main-about .box-text {
	margin: 0 0 max(24px, 32rem);
}
.main-about .box-col .button {
	margin: auto 0 0;
}
.main-about .box-col .caption {
    max-width: none;
}

/************************* section *************************/
.section {
	margin: 0 0 max(80px, 140rem);
}
.title {
	margin: 0 0 max(54px, 72rem);
	max-width: max(540px, 1120rem);
}
.subtitle {
	display: inline-block;
	vertical-align: top;
	margin: 0 0 max(20px, 48rem);
	padding: max(7px, 9rem) max(15px, 19rem);
	font-size: var(--text);
	line-height: 100%;
	letter-spacing: -0.04em;
	border: 1px solid var(--black-200);
	border-radius: 40px;
}
.subtitle:last-child {margin: 0;}
.title-block {
	display: flex;
	justify-content: space-between;
	margin: 0 0 max(28px, 44rem);
}
.title-col {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: max(20px, 36rem);
	width: calc(50% - max(10px, 10rem));
}
.title-text {
	max-width: max(460px, 570rem);
	color: var(--black-800);
}

/************************* breadcrumbs *************************/
.breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: max(6px, 6rem);
	padding: 0 max(16px, 20rem);
	margin: 0 0 max(44px, 56rem);
	max-width: 100%;
}
.breadcrumbs li {
	display: flex;
	align-items: flex-start;
	gap: max(6px, 6rem);
	padding: 0;
	margin: 0;
	font-size: var(--link);
	line-height: 100%;
	letter-spacing: -0.03em;
	color: var(--black-600);
	list-style: none;
	white-space: nowrap;
}
.breadcrumbs li::before {
	display: block;
	content: '/';
	color: var(--black-600);
}
.breadcrumbs li:first-child::before {display: none;}
.breadcrumbs a {
	position: relative;
	color: var(--black);
	text-decoration: none;
}
.breadcrumbs a::before {
	position: absolute;
	left: 0;
	bottom: -2px;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--black);
	transform: scale3d(0, 1, 1);
    transform-origin: 100% 50%;
    transition: transform 0.5s var(--fast);
}
.breadcrumbs a:hover::before {
	transform: scale3d(1, 1, 1);
	transform-origin: 0% 50%;
	transition-timing-function: ease-out;
}

/************************* team *************************/
.team-block {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: max(32px, 40rem) max(20px, 20rem);
	margin: 0 0 max(32px, 48rem);
}
.team-block:last-child {margin: 0;}
.team-item {
	color: var(--black);
	text-decoration: none;
}
.team-photo {
	overflow: hidden;
	aspect-ratio: 0.975/1;
	margin: 0 0 max(20px, 28rem);
	border-radius: var(--radius);
}
.team-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: all 0.4s ease-in-out;
}
a.team-item:hover .team-photo img {
	transform: scale(1.1);
}
.team-nophoto {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--grey);
}
.team-nophoto img {
	width: max(140px, 200rem);
	height: max(140px, 200rem);
	object-fit: unset;
}
.team-item h3 {
	margin: 0 0 max(12px, 20rem);
}
.team-status {
	color: var(--black-800);
}

/************************* bio *************************/
.bio {
	display: flex;
	justify-content: space-between;
}
.bio-col {
	width: calc(50% - max(10px, 10rem));
}
.bio-photo {
	position: sticky;
	top: max(100px, 165rem);
	max-width: max(480px, 638rem);
	aspect-ratio: 0.975/1;
	overflow: hidden;
	border-radius: var(--radius);
}
.bio-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.bio-content {
	max-width: max(510px, 635rem);
}
.bio-content .bio-photo {
	display: none;
	margin: 0 0 58px;
}
.bio-content h1 {
	margin: 0 0 max(20px, 36rem);
}
.bio-status {
	margin: 0 0 max(40px, 60rem);
	color: var(--black-800);
}
.bio-text {
	color: var(--black-800);
}

/************************* res *************************/
.res-block {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: max(32px, 40rem) max(20px, 20rem);
}
.res-item {
	color: var(--black);
	text-decoration: none;
}
.res-img {
	overflow: hidden;
	aspect-ratio: 1.71/1;
	margin: 0 0 max(16px, 32rem);
	border-radius: var(--radius);
}
.res-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: all 0.4s ease-in-out;
}
.res-item:hover .res-img img {
	transform: scale(1.1);
}

/************************* procedure *************************/
.procedure-block {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: max(24px, 40rem) max(20px, 20rem);
}
.procedure-item {
	position: relative;
	padding: max(23px, 39rem);
	color: var(--black);
	text-decoration: none;
	background: var(--grey-400);
	border: 1px solid var(--grey);
	border-radius: var(--radius);
}
.procedure-item::before,
.procedure-item::after {
	position: absolute;
	top: max(23px, 39rem);
	right: max(23px, 39rem);
	content: '';
	width: max(20px, 20rem);
	height: max(20px, 20rem);
	transition: all 0.4s ease-in-out;
	opacity: 0;
}
.procedure-item::before {
	background: url(../images/arrow-link.svg) 50% 50% no-repeat;
	background-size: contain;
}
.procedure-item::after {
	background: url(../images/arrow-link-white.svg) 50% 50% no-repeat;
	background-size: contain;
}
.procedure-img {
	overflow: hidden;
	width: max(150px, 190rem);
	aspect-ratio: 1.36/1;
	margin: 0 0 max(28px, 36rem);
	border-radius: max(12px, 12rem);
}
.procedure-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: all 0.4s ease-in-out;
}
.procedure-item:hover .procedure-img img {
	transform: scale(1.1);
}
.procedure-item:hover::before {
	opacity: 1;
}
.procedure-item h3 {
	margin: 0 0 max(16px, 20rem);
}
.procedure-text {
	color: var(--black-800);
}
.procedure-item .button {
	display: none;
	width: 100%;
}

/************************* category *************************/
.category-block {
	display: flex;
	flex-direction: column;
	margin: 0 min(-16px, -20rem);
	counter-reset: cat;
}
.category-item {
	position: relative;
	display: flex;
	justify-content: space-between;
	padding: max(24px, 32rem) max(12px, 32rem);
}
.category-item::before {
	position: absolute;
    right: max(12px, 32rem);
    top: max(26px, 30rem);
    color: var(--black-600);
    counter-increment: cat;
    content: counter(cat, decimal-leading-zero);
}
.category-side {
	width: calc(50% - max(10px, 10rem));
}
.category-img {
	overflow: hidden;
	max-width: max(400px, 475rem);
	height: max(220px, 240rem);
	border-radius: var(--radius);
}
.category-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: all 0.4s ease-in-out;
}
.category-item:hover .category-img img {
	transform: scale(1.1);
}
.category-content {
	display: flex;
	flex-direction: column;
	width: calc(50% - max(10px, 10rem));
}
.category-content .category-img {
	display: none;
}
.category-content h3 {
	margin: 0 0 max(12px, 28rem);
	padding-right: 30px;
}
.category-text {
	max-width: max(280px, 320rem);
	margin: 0 0 max(24px, 24rem);
	color: var(--black-800);
}
.category-content .button {
	margin: auto auto 0 0;
}

/************************* serv *************************/
.serv-block {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: max(24px, 40rem) max(20px, 20rem);
	counter-reset: serv;
}
.serv-item {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: max(20px, 24rem);
	min-height: max(230px, 350rem);
	padding: max(24px, 40rem);
	color: var(--black);
	text-decoration: none;
	background: var(--grey-400);
	border: 1px solid var(--grey);
	border-radius: var(--radius);
}
.serv-item:hover {
	color: var(--white);
	background: var(--blue);
	border-color: var(--blue);
}
.serv-item:hover::before,
.serv-item:hover .serv-text {
	color: var(--white-800);
}
.serv-item::before {
	color: var(--black-480);
    counter-increment: serv;
    content: counter(serv, decimal-leading-zero);
	transition: all 0.4s ease-in-out;
}
.serv-content {
	margin: auto 0 0;
}
.serv-content::before,
.serv-content::after {
	position: absolute;
	top: max(23px, 39rem);
	right: max(23px, 39rem);
	content: '';
	width: max(20px, 20rem);
	height: max(20px, 20rem);
	transition: all 0.4s ease-in-out;
	opacity: 0;
}
.serv-content::before {
	background: url(../images/arrow-link.svg) 50% 50% no-repeat;
	background-size: contain;
}
.serv-content::after {
	background: url(../images/arrow-link-white.svg) 50% 50% no-repeat;
	background-size: contain;
}
.serv-item:hover .serv-content::after {
	opacity: 1;
}
.serv-content h4 {
	margin: 0 0 max(16px, 20rem);
}
.serv-text {
	max-width: max(300px, 360rem);
	color: var(--black-800);
	transition: all 0.4s ease-in-out;
}
.serv-item .button {
	display: none;
	width: 100%;
}

/************************* conditions *************************/
.cond-block {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: max(24px, 40rem) max(20px, 20rem);
	counter-reset: serv;
}
.cond-item {
	display: flex;
	flex-direction: column;
	gap: max(20px, 24rem);
	min-height: max(230px, 350rem);
	padding: max(24px, 40rem);
	color: var(--black);
	text-decoration: none;
	background: var(--grey-400);
	border: 1px solid var(--grey);
	border-radius: var(--radius);
}
.cond-img {
	width: max(160px, 220rem);
	height: max(130px, 180rem);
	margin: 0 auto max(28px, 44rem);
}
.cond-img img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: all 0.4s ease-in-out;
}
.cond-item:hover .cond-img img {
	transform: scale(1.1);
}
.cond-item .button {
	display: none;
}

/************************* box *************************/
.box {
	display: flex;
	justify-content: space-between;
	margin: 0 0 max(32px, 48rem);
}
.box:last-child {margin: 0;}
.box-col {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: calc(50% - max(10px, 10rem));
}
.box-col .additional {
	max-width: max(436px, 680rem);
	margin: 0 0 max(20px, 20rem);
}
.box-col .additional:last-child {
	margin: 0;
}
.box-text {
	max-width: max(405px, 505rem);
	color: var(--black-800);
}
.box-img-min {
	margin: auto 0 0;
	overflow: hidden;
	width: max(360px, 375rem);
	aspect-ratio: 1.8/1;
	border-radius: var(--radius);
}
.box-img-min img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.box-img-hidden {
	display: none;
}
.box-img {
	overflow: hidden;
	aspect-ratio: 1.8/1;
	margin-top: max(32px, 48rem);
	border-radius: var(--radius);
}
.box-img:first-child {margin-top: 0;}
.box-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.box-col .caption {
	max-width: max(340px, 650rem);
	margin: 0 0 max(20px, 36rem);
}
.box-2 .box-text {
	margin-top: auto;
}
.box-2 .box-col .caption {
	max-width: max(280px, 520rem);
}
.box-2 .box-img {
    aspect-ratio: 1.63 / 1;
}

/************************* banner *************************/
.banner {
	overflow: hidden;
	height: max(200px, 600rem);
	border-radius: var(--radius);
}
.banner-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/************************* info *************************/
.info {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: max(24px, 40rem) max(20px, 20rem);
}
.info-item {
	padding: max(24px, 40rem);
	background: var(--grey-400);
	border: 1px solid var(--grey);
	border-radius: var(--radius);
}
.info-item h3 {
	margin: 0 0 max(16px, 20rem);
}
.info-text {
	max-width: max(440px, 540rem);
	margin: 0 0 max(32px, 40rem);
	color: var(--black-800);
}
.info-list {
	display: flex;
	flex-direction: column;
	gap: max(12px, 12rem);
	max-width: max(440px, 580rem);
	color: var(--black-800);
}
.info-list li {
	position: relative;
	padding: 0 0 0 max(14px, 16rem);
}
.info-list li::before {
	position: absolute;
	top: max(7px, 9rem);
	left: 0;
	content: '';
	width: max(6px, 6rem);
	height: max(6px, 6rem);
	background: var(--blue);
	border-radius: 50%;
}

/************************* bottom *************************/
.bottom {
	position: relative;
}
.bottom-bg {
	position: absolute;
	inset: 0;
	overflow: hidden;
}
.bottom-bg::before {
	position: absolute;
	inset: 0;
	bottom: auto;
	z-index: 10;
	content: '';
	height: max(20px, 40rem);
	background: var(--light-fill);
	border-radius: 0 0 max(80px, 80rem) max(80px, 80rem);
}
.bottom-bg::after {
	position: absolute;
	inset: 0;
	top: auto;
	z-index: 10;
	content: '';
	height: max(20px, 40rem);
	background: var(--blue);
	border-radius: max(80px, 80rem) max(80px, 80rem) 0 0;
}
.bottom-bg-wrap {
	position: absolute;
	inset: 0;
	overflow: hidden;
	display: block;
}
.bottom-bg-wrap::before {
	position: absolute;
	inset: 0;
	content: '';
	background: linear-gradient(270deg, rgba(0, 0, 0, 0.55) -11.34%, rgba(0, 0, 0, 0) 105.19%);
}
.bottom-bg-wrap::after {
	position: absolute;
	inset: 0;
	content: '';
	background: rgba(0, 0, 0, 0.35);
}
.bottom-bg-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.bottom-block {
	position: relative;
	z-index: 50;
	display: flex;
	justify-content: flex-end;
	min-height: max(480px, 800rem);
	padding: max(120px, 200rem) 0;
}
.bottom-col {
	width: calc(50% - max(10px, 10rem));
}
.bottom-block .subtitle {
    margin: 0 0 max(16px, 36rem);
}
.bottom-block .additional {
	max-width: max(360px, 510rem);
	margin: 0 0 max(20px, 36rem);
}
.bottom-block-text {
	max-width: max(400px, 500rem);
	margin: 0 0 max(32px, 40rem);
}
.bottom-block-text:last-child {margin: 0;}
.bottom-list {
	display: flex;
	flex-direction: column;
	gap: max(12px, 12rem);
	max-width: max(480px, 590rem);
}
.bottom-list li {
	position: relative;
	padding: 0 0 0 max(14px, 16rem);
}
.bottom-list li::before {
	position: absolute;
	top: max(7px, 9rem);
	left: 0;
	content: '';
	width: max(6px, 6rem);
	height: max(6px, 6rem);
	background: var(--blue);
	border-radius: 50%;
}
.bottom-reverse .bottom-block {
	justify-content: flex-start;
}
.bottom-reverse .bottom-bg-wrap::before {
	background: linear-gradient(90deg, rgba(0, 0, 0, 0.55) -11.34%, rgba(0, 0, 0, 0) 105.19%);
}
.bottom-main .bottom-block {
	justify-content: center;
}
.bottom-main .bottom-bg-wrap::before {
	display: none;
}
.bottom-main .bottom-bg-wrap::after {
	background: rgba(0, 0, 0, 0.1);
}
.bottom-bg-wrap video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.bottom-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	max-width: max(440px, 692rem);
	padding: max(40px, 80rem);
	backdrop-filter: blur(40px);
	background: var(--white-100);
	border-radius: var(--radius);
}
.bottom-card h2 {
	max-width: max(300px, 500rem);
	margin: 0 0 max(20px, 28rem);
}
.bottom-card .bottom-block-text {
	max-width: max(340px, 440rem);
}
@media screen and (min-width: 768px) {
	.bottom-block {
		color: var(--white);
	}
	.bottom-block .subtitle {
		backdrop-filter: blur(20px);
		background: var(--white-50);
		border: 1px solid var(--white-200);
	}
	.bottom-block .button {
		color: var(--black);
		background-color: var(--white);
		border-color: var(--white);
	}
	.bottom-block .button:hover {
		color: var(--white);
		background-color: transparent;
	}
	.bottom-card {
		backdrop-filter: blur(40px);
		background: var(--white-100);
		border-radius: var(--radius);
	}
	.bottom-list li::before {
		background: var(--white);
	}
}

/************************* care *************************/
.care {
	display: flex;
	flex-direction: column;
	gap: max(60px, 140rem);
}
.care-item {
	display: flex;
	justify-content: space-between;
}
.care-col {
	width: calc(50% - max(10px, 10rem));
}
.care-col:last-child .subtitle {display: none;}
.care-col .subtitle {
	margin: 0 0 max(32px, 60rem);
}
.care-text {
	margin: 0 0 max(24px, 32rem);
	max-width: max(400px, 500rem);
	color: var(--black-800);
}
.care-img {
	overflow: hidden;
	position: relative;
	aspect-ratio: 1.715/1;
	margin: 0 0 max(20px, 28rem);
	border-radius: var(--radius);
}
.care-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.video-cover {
	position: absolute;
	inset: 0;
	z-index: 5;
}
.video-cover::before {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate3d(-50%, -50%, 0);
	content: '';
	width: max(32px, 60rem);
	height: max(32px, 60rem);
	backdrop-filter: blur(10px);
	background: var(--black-200) url(../images/play.svg) 50% 50% no-repeat;
	background-size: max(12px, 20rem);
	border: 1px solid var(--white-800);
	border-radius: 50%;
}
.video-popup {
	position: fixed;
	inset: 0;
	z-index: 5000;
	display: none;
}
.popup-mask {
	position: absolute;
	inset: 0;
	background: var(--blue);
}
.popup-close {
	position: absolute;
	top: max(24px, 32rem);
	right: max(24px, 32rem);
	z-index: 10;
	width: max(32px, 40rem);
	height: max(32px, 40rem);
	background: url(../images/close.svg) 50% 50% no-repeat;
	background-size: contain;
}
.popup-block {
	position: absolute;
	inset: 0;
	display: flex;
	justify-content: center;
	align-items: center;
}
.popup-wrap {
	position: relative;
	z-index: 10;
	overflow: hidden;
	max-width: max(480px, 950rem);
	width: 100%;
	aspect-ratio: 1.73/1;
	border-radius: var(--radius);
}
.popup-iframe {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
}

/************************* review-list *************************/
.review-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: max(32px, 40rem) max(20px, 20rem);
	margin: 0 0 max(32px, 48rem);
}
.review-list:last-child {margin: 0;}
.review-item {
	padding: max(23px, 39rem);
	background: var(--grey-400);
	border: 1px solid var(--grey);
	border-radius: var(--radius);
}
.review-top {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	margin: 0 0 max(32px, 48rem);
}
.review-author h4 {
	margin: 0 0 max(16px, 16rem);
}
.rating {
	display: flex;
}
.star {
	width: max(20px, 24rem);
	height: max(20px, 24rem);
	background: url(../images/star.svg) 50% 50% no-repeat;
	background-size: max(16px, 19rem);
}
.review-date {
	color: var(--black-600);
}
.review-text {
	color: var(--black-800);
}

/************************* pagination *************************/
.pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: max(16px, 20rem);
}
.pagination-list {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: max(10px, 12rem);
}
.pagination-link {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: max(36px, 44rem);
	height: max(36px, 44rem);
	color: var(--black-400);
	text-decoration: none;
	border: 1px solid var(--black-200);
	border-radius: max(4px, 4rem);
}
.pagination-link:hover {
	color: var(--blue);
	border-color: var(--blue);
}
.pagination-link.active {
	color: var(--white);
	background-color: var(--blue);
	border-color: var(--blue);
}
.pagination-arrow {
	position: relative;
	width: max(14px, 14rem);
	height: max(14px, 14rem);
	background: url(../images/pag-arrow.svg) 50% 50% no-repeat;
	background-size: contain;
	opacity: 0.4;
}
.pagination-arrow:hover {opacity: 1;}
.pagination-prev {
	transform: scale(-1, 1);
}

/************************* contact *************************/
.video-section {
	display: flex;
	justify-content: space-between;
}
.video-side {
	width: calc(50% - min(10px, 10rem));
	padding-right: max(20px, 20rem);
}
.video-content {
	width: calc(50% - min(10px, 10rem));
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: max(28px, 32rem);
}
.video-slide-item {
	overflow: hidden;
	position: relative;
	aspect-ratio: 1.67/1;
	border-radius: var(--radius);
}
.video-slide-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.text-slide .additional {
	max-width: max(320px, 470rem);
}
.video-controls {
	display: flex;
	gap: max(12px, 24rem);
}
.slick-arrow {
	position: relative;
	width: max(28px, 40rem);
	height: max(28px, 40rem);
	font-size: 0;
	cursor: pointer;
	border: 1px solid var(--blue);
	border-radius: 50%;
	transition: all 0.4s ease-in-out;
}
.slick-arrow::before, .slick-arrow::after {
	position: absolute;
	inset: 0;
	content: '';
	transition: all 0.4s ease-in-out;
}
.slick-arrow::before {
	background: url(../images/slider-arrow.svg) 50% 50% no-repeat;
	background-size: max(14px, 20rem);
}
.slick-arrow::after {
	background: url(../images/slider-arrow-white.svg) 50% 50% no-repeat;
	background-size: max(14px, 20rem);
	opacity: 0;
}
.slick-arrow:hover {
	background-color: var(--blue);
}
.slick-arrow:hover::before {opacity: 0;}
.slick-arrow:hover::after {opacity: 1;}
.slick-prev {
	transform: scale(-1, 1);
}
.video-iframe {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
}
.box-form {
	width: 100%;
}
.box-col .box-form .caption {
    margin: 0;
}
.box-form.form-sent .form-main {display: none;}
.box-form.form-sent .form-result {
	position: static;
}

/************************* contact *************************/
.contact {
	display: flex;
	justify-content: space-between;
	flex-direction: row-reverse;
}
.contact-col {
	width: calc(50% - max(10px, 10rem));
}
.contact-loc {
	display: flex;
	flex-direction: column;
	gap: max(16px, 30rem);
	margin: 0 0 max(32px, 60rem);
}
.contact-loc:last-child {
	margin: 0;
}
.contact-loc-item {
	display: flex;
	flex-direction: column;
	gap: max(12px, 12rem);
}
.contact-loc-title {
	color: var(--black-400);
}
.contact-loc-text a {
	position: relative;
	color: var(--black);
	text-decoration: none;
}
.contact-loc-text a::before {
	position: absolute;
	left: 0;
	bottom: -1px;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--black);
	transform: scale3d(0, 1, 1);
    transform-origin: 100% 50%;
    transition: transform 0.5s var(--fast);
}
.contact-loc-text a:hover::before {
	transform: scale3d(1, 1, 1);
	transform-origin: 0% 50%;
	transition-timing-function: ease-out;
}
.form-top {
	display: flex;
	flex-direction: column;
	gap: max(20px, 28rem);
	margin: 0 0 max(32px, 48rem);
}
.form-top:last-child {
	margin: 0;
}
.form-text {
	max-width: max(480px, 570rem);
	color: var(--black-800);
}
.form-result {
	display: none;
	position: absolute;
	inset: 0;
}
.form-result .form-top {
	align-items: center;
	text-align: center;
}
.form-sent {
	position: relative;
}
.form-sent .form-main {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.form-sent .form-result {
	display: block;
}

/************************* page404 *************************/
.page404 {
	padding: max(75px, 93rem) 0 max(140px, 140rem);
}
.page404-block {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center
}
.page404-num {
	width: max(320px, 530rem);
	margin: 0 0 max(36px, 44rem);
}
.page404-block h4 {
	max-width: max(380px, 470rem);
	margin: 0 0 max(28px, 28rem);
}

/************************* policy *************************/
.policy {
	position: relative;
}
.policy-top {
	display: flex;
	flex-direction: column;
	gap: max(24px, 24rem);
	max-width: max(630px, 770rem);
	margin: 0 auto max(56px, 72rem);
}
.policy-update {
	position: absolute;
	top: 0;
	left: 0;
	text-align: center;
	color: var(--black-800);
}
.policy-wrap {
	max-width: max(630px, 770rem);
	margin: 0 auto;
	color: var(--black-800);
}
.policy-wrap h3 {
	margin: 0 0 max(20px, 28rem);
	padding-top: max(19px, 35rem);
	color: var(--black);
}
.policy-wrap h3:first-child {
	padding-top: 0;
}
.policy ul {
	padding: 0 0 0 max(24px, 30rem);
	margin: 0 0 max(21px, 25rem);
}
.policy ul li {
	list-style-type: disc;
}
.policy ol {
	padding: 0 0 0 max(24px, 30rem);
	margin: 0 0 max(21px, 25rem);
}
.policy ul:last-child, .policy ol:last-child {margin: 0;}

/************************* sitemap *************************/
.sitemap {
	max-width: max(630px, 770rem);
	margin: 0 auto;
}
.sitemap h1 {
	margin: 0 0 max(60px, 80rem);
}
.sitemap h2 {
	margin: 0 0 max(20px, 36rem);
}
.sitemap h2 a {
	position: relative;
	display: inline-block;
	color: var(--black);
	text-decoration: none;
}
.sitemap h2 a::before {
	position: absolute;
	left: 0;
	bottom: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--black);
	transform: scale3d(0, 1, 1);
    transform-origin: 100% 50%;
    transition: transform 0.5s var(--fast);
}
.sitemap h2 a:hover::before {
	transform: scale3d(1, 1, 1);
	transform-origin: 0% 50%;
	transition-timing-function: ease-out;
}
.sitemap-list {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: max(12px, 16rem);
	margin: 0 0 max(40px, 60rem);
}
.sitemap-list:last-child {
	margin: 0;
}
.sitemap-link {
	position: relative;
	font-size: var(--link);
	line-height: 100%;
	color: var(--black);
	text-decoration: none;
}
.sitemap-link::before,
.sitemap-link::after {
	position: absolute;
	left: 0;
	bottom: 0px;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--black);
	transform: scale3d(0, 1, 1);
    transform-origin: 100% 50%;
    transition: transform 0.5s var(--fast);
}
.sitemap-link::after {
	transform: scale3d(1, 1, 1);
	transform-origin: 0% 50%;
}
.sitemap-link:hover::before {
	transform: scale3d(1, 1, 1);
	transform-origin: 0% 50%;
	transition-timing-function: ease-out;
	transition-delay: 0.3s;
}
.sitemap-link:hover::after {
	transform: scale3d(0, 1, 1);
	transform-origin: 100% 50%;
	transition-timing-function: ease-out;
}

/************************* footer *************************/
.footer {
	padding: max(40px, 60rem) 0 max(20px, 20rem);
	margin: auto 0 0;
	color: var(--white-800);
	background: var(--blue);
}
.footer-main {
	display: flex;
	padding: 0 0 max(40px, 60rem);
}
.footer-logo {
	width: 25.3%;
	padding: 0 20px 0 0;
}
.footer-logo img {
	width: max(100px, 180rem);
}
.footer-content {
	display: flex;
	flex: 1;
}
.footer-col {
	padding: 0 20px 0 0;
}
.footer-col:nth-child(2) {
	width: 24.5%;
}
.footer-col:nth-child(3) {
	width: 17.7%;
}
.footer-col:nth-child(4) {
	width: 32.5%;
	padding: 0;
}
.footer-col h4 {
	margin: 0 0 max(20px, 30rem);
	color: var(--white);
}
.footer-nav {
	display: flex;
	flex-direction: column;
	gap: max(12px, 12rem);
}
.footer-nav li {
	font-size: var(--link);
	line-height: 100%;
}
.footer-nav a {
	position: relative;
	color: var(--white-800);
	text-decoration: none;
}
.footer-nav a:not(.footer-address)::before {
	position: absolute;
	left: 0;
	bottom: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--white);
    transform: scale3d(0, 1, 1);
    transform-origin: 100% 50%;
    transition: transform 0.5s var(--fast);
}
.footer-nav a:not(.footer-address):hover::before {
	transform: scale3d(1, 1, 1);
	transform-origin: 0% 50%;
	transition-timing-function: ease-out;
}
.footer-address {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.footer-address-item {
	position: relative;
}
.footer-address-item::before {
	position: absolute;
	left: 0;
	bottom: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--white);
    transform: scale3d(0, 1, 1);
    transform-origin: 100% 50%;
    transition: transform 0.5s var(--fast);
}
.footer-address:hover .footer-address-item::before {
	transform: scale3d(1, 1, 1);
	transform-origin: 0% 50%;
	transition-timing-function: ease-out;
}
.footer-box {
	display: flex;
	justify-content: space-between;
}
.footer-box .footer-nav {
	width: calc(50% - max(10px, 10rem));
}
.footer-bottom {
	display: flex;
	font-size: var(--link);
	line-height: 100%;
}
.footer-copy {
	width: 49.8%;
}
.footer-link-item:nth-child(2) {
	width: 17.7%;
}
.footer-link-item:nth-child(3) {
	width: 17.7%;
}
.footer-link {
	position: relative;
	color: var(--white-800);
	text-decoration: none;
}
.footer-link::before {
	position: absolute;
	left: 0;
	bottom: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--white);
    transform: scale3d(0, 1, 1);
    transform-origin: 100% 50%;
    transition: transform 0.5s var(--fast);
}
.footer-link:hover::before {
	transform: scale3d(1, 1, 1);
	transform-origin: 0% 50%;
	transition-timing-function: ease-out;
}
.footer-studio {
	margin: 0 0 0 auto;
	color: var(--white);
	white-space: nowrap;
}
.footer-studio img {
	display: inline-block;
	vertical-align: bottom;
	width: max(20px, 20rem);
	margin: 0 max(3px, 3rem) max(2px, 2rem) max(4px, 4rem);
}
.footer-studio a {
	position: relative;
	color: var(--white);
	text-decoration: none;
}
.footer-studio a::before {
	position: absolute;
	left: 0;
	bottom: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--white);
    transform: scale3d(0, 1, 1);
    transform-origin: 100% 50%;
    transition: transform 0.5s var(--fast);
}
.footer-studio a:hover::before {
	transform: scale3d(1, 1, 1);
	transform-origin: 0% 50%;
	transition-timing-function: ease-out;
}

/************************* media *************************/
@media screen and (max-width: 1300px) {
	.submenu {
		margin-top: max(20px, 38rem);
	}
	.submenu::before {
		top: min(-20px, -38rem);
		eight: max(20px, 38rem);
	}
}
@media screen and (max-width: 1200px) {
	.header-nav-list {
		gap: 12px;
	}
	.footer-col:nth-child(2) {
		width: 21.5%;
	}
	.footer-col:nth-child(3) {
		width: 14.7%;
	}
	.footer-col:nth-child(4) {
		width: 38.5%;
	}
	.policy-update {
		position: static;
		text-align: left;
	}

}
@media screen and (max-width: 1024px) {
	.lock {overflow: hidden;}
	.mob-nav-icon {
		display: flex;
	}
	.header-block::before {z-index: 549;}
	.header-nav {
		position: fixed;
		top: 0;
		left: 0;
		display: block;
		width: 100%;
		height: 100dvh;
		padding: 120px 16px 96px;
		z-index: 540;
		box-sizing: border-box;
		background: var(--light-fill);
		box-shadow: none;
		transform: translateY(-100%);
		transition: transform 1s cubic-bezier(0.49, 0.62, 0.17, 1);
	}
	.header-nav.vis {
		transform: translateY(0%);
	}
	.header-nav-list {
		flex-direction: column;
		align-items: flex-start;
		gap: 24px;
		height: 100%;
		overflow-y: auto;
	}
	.header-nav-list > li > a  {
		font-size: 20px;
		line-height: 120%;
		letter-spacing: -0.04em;
	}
	.header-nav-list > li > a::before {
		display: none;
	}
	.nav-parent.active-parent::after {
		transform: rotate(180deg);
	}
	.subnav {
		display: none;
		position: static;
		width: auto;
		padding: 12px 0 2px 24px;
		margin-top: 0;
		backdrop-filter: none;
		background: none;
		border-radius: 0;
		transition: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.subnav::before {display: none;}
	.subnav li {
		font-size: 18px;
		line-height: 110%;
		letter-spacing: -0.03em;
	}
	.subnav a {
		white-space: unset;
	}
	.subnav a::before {display: none;}
	.header-button {
		position: absolute;
		left: 0;
		right: 0;
		top: auto;
		bottom: 0;
		padding: 20px 16px;
		align-items: center;
		transition: all 0.4s 0.3s;
		background: var(--light-fill);
		opacity: 0;
		transform: translateY(-30px);
	}
	.header-nav.vis .header-button {
		opacity: 1;
		transform: translateY(0px);
		visibility: visible;
	}
	.header-button .button {width: 100%;}
	body {
		line-height: 130%;
		letter-spacing: -0.03em;
	}
	h1, .h1 {
		line-height: 100%;
		letter-spacing: -0.05em;
	}
	h2, .h2 {
		line-height: 105%;
		letter-spacing: -0.05em;
	}
	h3, .h3 {
		line-height: 110%;
		letter-spacing: -0.04em;
	}
	h4, .h4 {
		line-height: 120%;
	}
	.caption {
		line-height: 105%;
		letter-spacing: -0.04em;
	}
	.big {
		line-height: 100%;
		letter-spacing: -0.05em;
	}
	.additional {
		line-height: 115%;
		letter-spacing: -0.04em;
	}
	.footer-main {
		flex-direction: column;
		gap: 40px;
	}
	.footer-logo {
		width: auto;
		padding: 0;
	}
	.footer-col:nth-child(2),
	.footer-col:nth-child(3),
	.footer-col:nth-child(4) {
		width: auto;
		padding: 0;
	}
	.footer-bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
	}
	.footer-copy,
	.footer-link-item:nth-child(2),
	.footer-link-item:nth-child(3) {
		width: auto;
	}
	.footer-copy {
		max-width: 260px;
	}
	.footer-studio {
		margin: 0;
	}
	.input-box .wpcf7-form-control-wrap {
		width: 100%;
	}
	.serv-block, .cond-block, .procedure-block, .team-block, .review-list {
		grid-template-columns: repeat(2, 1fr);
	}
	
}
@media screen and (max-width: 767px) {
	.title {
		text-align: center;
	}
	.title h1 {
		max-width: 340px;
		margin: 0 auto;
	}
	.contact {
		flex-direction: column;
		gap: 80px;
	}
	.contact-col {
		width: auto;
	}
	.contact-loc-text br {display: none;}
	.form-result {
		position: static;
	}
	.form-sent .form-main {
		display: none;
	}
	.res-block {
		grid-template-columns: repeat(1, 1fr);
	}
	.box {
		flex-direction: column;
		gap: 20px;
	}
	.box-col {
		width: auto;
	}
	.bottom-block {
		display: block;
		min-height: 1px;
		padding: 0 0 32px;
	}
	.bottom-bg {
		position: relative;
		inset: auto;
		width: 100%;
		aspect-ratio: 1.25/1;
	}
	.bottom-bg-wrap::before, .bottom-bg-wrap::after {
		display: none;
	}
	.bottom-col {
		width: auto;
	}
	.bottom-card {
		padding: 0;
	}
	.button {
		width: 100%;
		padding: max(15px, 16rem) max(20px, 36rem);
		font-size: 18px;
		line-height: 110%;
		letter-spacing: -0.03em;
	}
	.serv-block {
		grid-template-columns: repeat(1, 1fr);
	}
	.care-item {
		flex-direction: column-reverse;
		gap: 28px;
	}
	.care-col {
		width: auto;
	}
	.care-col .subtitle {
		display: none;
		margin: 0 0 20px;
	}
	.care-col:last-child .subtitle {display: inline-block;}
	.box-img-min {display: none;}
	.box-img-hidden {
		display: block;
		margin: 32px 0 0;
	}
	.cond-block, .info,	.procedure-block, .team-block, .review-list {
		grid-template-columns: repeat(1, 1fr);
	}
	.subtitle-mob {
		margin: 0;
	}
	.category-block {
		margin: 0;
		border-top: 1px solid var(--grey);
	}
	.category-item {
		flex-direction: column;
		padding: max(24px, 32rem) 0;
		border-bottom: 1px solid var(--grey);
	}
	.category-side {display: none;}
	.category-content {
		width: auto;
	}
	.category-content .category-img {
		display: block;
		margin: 0 0 24px;
	}
	.category-content .button {
		margin: 0;
		opacity: 1;
	}
	.bio {
		flex-direction: column;
	}
	.bio-col {
		width: auto;
	}
	.bio-col:first-child {display: none;}
	.bio-content .bio-photo {
		display: block;
		position: static;
	}
	.main-page .header:not(.header-fixed) {
		padding-left: 0;
		padding-right: 0;
	}
	.hero {
		padding: 8px;
	}
	.hero-main {
		height: calc(100dvh - 16px);
	}
	.hero-block h1 {
		max-width: max(340px, 540rem);
	}
	.hero-block h4 {
		max-width: max(310px, 540rem);
	}
	.title-block {
		flex-direction: column;
		gap: 20px;
	}
	.title-col {
		width: auto;
	}
	.main-about {
		position: relative;
		padding-bottom: 76px;
	}
	.main-about .box {
		flex-direction: column-reverse;
	}
	.main-about .box-col .button {
		position: absolute;
		inset: 0;
		top: auto;
	}
	.main-about .box-text {
		margin: 0;
	}
	.box-video {
		aspect-ratio: 1.84 / 1;
		width: 100%;
	}
	.error-msg {
		line-height: 110%;
		letter-spacing: -0.03em;
	}
	.video-section {
		flex-direction: column;
		gap: 20px;
	}
	.video-side {
		width: auto;
		padding: 0;
	}
	.video-content {
		width: auto;
	}
	.video-controls {
		justify-content: center;
	}
	.cookies {
		flex-direction: column;
		border-radius: 12px;
	}
	.procedure-text {margin: 0 0 20px;}
	.procedure-item .button {
		display: block;
	}
	.procedure-item::before {
		opacity: 1;
	}
	.cond-item .button {
		display: block;
	}
	.serv-item {
		min-height: 1px;
		gap: 48px;
	}
	.serv-text {
		margin: 0 0 20px;
	}
	.serv-content::before {
		opacity: 1;
	}
	.serv-item:hover .serv-content::before {
		opacity: 0;
	}
	.serv-item:hover .serv-content::after {
		opacity: 1;
	}
	.serv-item .button {
		display: block;
	}
	.serv-item:hover .button {
		color: var(--blue);
		background-color: var(--white);
		border-color: var(--white);
	}

}
@media screen and (max-width: 576px) {
	.box-2 .box-col .caption {
		max-width: none;
	}
}