@font-face {
      font-family: 'Montserrat';
      src: local('Montserrat'), local('Montserrat Regular'), local('Montserrat-Regular'),
           url('../fonts/montserrat-400.woff2') format('woff2');
      font-weight: 400;
      font-style: normal;
      font-display: swap;
}

@font-face {
      font-family: 'Montserrat';
      src: local('Montserrat Medium'), local('Montserrat-Medium'),
           url('../fonts/montserrat-500.woff2') format('woff2');
      font-weight: 500;
      font-style: normal;
      font-display: swap;
}

@font-face {
      font-family: 'Montserrat';
      src: local('Montserrat SemiBold'), local('Montserrat-SemiBold'), local('Montserrat Semi-Bold'),
           url('../fonts/montserrat-600.woff2') format('woff2');
      font-weight: 600;
      font-style: normal;
      font-display: swap;
}

* {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      line-height: 1.5em;
}

*:focus-visible {outline: 2px solid var(--main-300);}

*::selection {
      background-color: #b2d0f2;
      color: var(--dark-500);
}

:root {
      --main-500: #3E369C;
      --main-400: #5B5B9A;
      --main-100: #D9D9EA;
      --main-50: #F6F6F9;

	--main2: #FF006C;

	--dark-500: #121212;

      --stroke: #F3F3F6;
      --white: #FFF;

	--header-height: 66px;
	--inner: 18px;
}

html {
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
}

body {
      background-color: var(--white);
	color: var(--dark-500);
      position: relative;
	scroll-behavior: smooth;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4 {
	font-weight: 600;
	line-height: 1.1em;
}

h1, .h1 {
	font-size: 33px;
	font-weight: 700;
}

h2, .h2 {
	font-size: 33px;
	line-height: 1.28em;
}

h3, .h3 {font-size: 28px;}

h4, .h4 {
	font-size: 24px;
	line-height: 1.35em;
}

.text-21 {
	font-size: 21px;
	line-height: 1.35em;
}

.text-18 {
	font-size: 18px;
	line-height: 1.5em;
}

.text-16 {font-size: 16px;}

.text-14 {
      font-size: 14px;  
      line-height: 1.46em;
}

a {
      font-size: inherit;
      line-height: inherit;
      text-decoration: none;
      cursor: pointer;
      color: inherit;
}

img {
      display: block;
      width: 100%;
      height: auto;
}

strong, small, em, address, q, li, cite, abbr, dfn, span {
      font-weight: inherit;
      line-height: inherit;
      font-size: inherit;
      font-style: normal;
      color: inherit;
      quotes: none;
	list-style: none;
	text-decoration: none;
}

sup {
	font-size: 0.6em;
	display: inline-block;
	margin-top: -0.6em;
}

button {
      border: none;
      outline: none;
      background: unset;
	font-family: inherit;
      font-size: inherit;
      cursor: pointer;
      user-select: none;
}

input, select, textarea {
      display: block;
      width: 100%;
      border: none;
      outline: none;
      resize: none;
	font-family: inherit;
      cursor: pointer;
      appearance: none;
      -webkit-appearance:none;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
      -webkit-appearance: none;
      margin: 0;
}

input[type="number"] {-moz-appearance: textfield;}

.inner {
	width: 100%;
	margin: 0 auto;
	max-width: 1124px;
	padding: 0px var(--inner);
}

.hidden {display: none !important;}

.hide-2 {
      overflow: hidden;
      position: absolute;
      height: 1px;
      width: 1px;
      bottom: 0;
      pointer-events: none;
}

/* INPUTS */
input.left {
	position: absolute;
	width: 1px;
	height: 1px;
	bottom: 0;
	left: 0;
}

.input-1 {
	height: 48px;
	padding: 12px 16px;
	font-size: 16px;
	font-weight: 500;
	line-height: 20px;
	color: var(--dark-500);
	background-color: var(--white);
	border: 2px solid var(--main-100);
	border-radius: 6px;
	transition: border-color 300ms;
	outline: none !important;
}

.input-1::placeholder {
	font-size: inherit;
	font-weight: 500;
	line-height: 24px;
	color: #b6b6c7;
	user-select: none;
}

.input-1:-webkit-autofill {
	box-shadow:  0 0 0px 1000px var(--white) inset !important;
	-webkit-text-fill-color: var(--dark-500) !important;
}

.input-1:hover, .input-1:focus-visible,
.custom-select.active .input-1 {border-color: #b2b2cb;}

.inp-anim {position: relative;}
.inp-anim input::placeholder {opacity: 0;}

.inp-anim .placeholder {
	font-size: 15px;
	line-height: 24px;
	font-weight: 400;
	color: var(--dark-300);
	position: absolute;
	top: 11px;
	left: 18px;
	pointer-events: none;
	transition: left 300ms, transform 300ms, font-size 300ms, padding 350ms, background 150ms;
}

.inp-anim input:focus ~ .placeholder,
.inp-anim input:not(:placeholder-shown) ~ .placeholder {
	transform: translateY(-25px);
	padding: 0 8px;
	left: 10px;
	font-size: 13px;
	color: var(--dark-300) !important;
	background-color: var(--white);
}

.input-1.error {border-color: #f78181;}
.input-1.error::placeholder, .inp-anim .input-1.error + .placeholder {color: #f78181 !important;}

/* CUSTOM CHECKBOX, RADIO */
.custom-checkbox, .custom-radio {
	width: 1px;
	height: 0;
	overflow: hidden;
	position: absolute;
}

.custom-checkbox + label, .custom-radio + label {
	position: relative;
	max-width: max-content;
	padding-left: 42px;
	display: block;
	color: inherit;
	font-size: 16px;
	line-height: 1.25em;
	cursor: pointer;
	user-select: none;
}

.custom-checkbox + label::before , .custom-radio + label::before {
	content: '';
	position: absolute;
	top: -1px;
	left: 0;
	width: 20px;
	height: 20px;
	border: 2px solid var(--main-100);
	background-color: var(--white);
}

.custom-radio + label::before {border-radius: 50%;}
      
.custom-radio:checked + label::before {
	border: 8px solid var(--main2);
	width: 8px;
	height: 8px;
}

.custom-checkbox:focus-visible, .custom-radio:focus-visible {outline: none;}
.custom-checkbox:focus-visible:not(.btn-disabled) + label::before, 
.custom-radio:focus-visible:not(.btn-disabled) + label::before {
	border-color: var(--main2);
}

.custom-checkbox:checked + label::before {
	background-image: url("data:image/svg+xml,%0A%3Csvg width='21' height='22' viewBox='0 0 21 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 11.5L8.5 18L19 1.5' stroke='%23FF006C' stroke-width='3'/%3E%3C/svg%3E%0A");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 15px;
	border-color: var(--main2);
}

.custom-checkbox.btn-disabled + label::before, .custom-radio.btn-disabled + label::before {
	background-color: #E9E9E9 !important;
	border-color: #DADADA !important;
	cursor: not-allowed;
	pointer-events: none;
}

.custom-checkbox.btn-disabled + label, .custom-radio.btn-disabled + label {pointer-events: none;}

.custom-radio.error + label::before, .custom-checkbox.error + label::before {
	border: 2px solid #f78181 !important;
	outline: none !important;
}

/* BUTTONS */
.btn-small, .btn-medium, .btn-big {
      display: block;
	width: 100%;
      max-width: max-content;
      text-align: center;
      user-select: none;
	cursor: pointer;
}

.btn-small:focus-visible, .btn-medium:focus-visible, .btn-big:focus-visible {outline: 9px solid var(--main-100);}

.btn-medium {
      min-height: 60px;
      font-size: 18px;
      font-weight: 700;
      line-height: 36px;
	text-transform: uppercase;
      padding: 12px 36px;
	border-radius: 9px;
}

.btn-1 {
      background: var(--main2);
      color: var(--white);
      transition: background 300ms;
}

.btn-1:hover {background: #E30060;}

.btn-2 {
      background: var(--white);
      color: var(--main2);
	border: 2px solid var(--main2);
      transition: background 300ms, color 250ms;
}

.btn-2:hover {
	background: var(--main2);
	border-color: var(--main2);
	color: var(--white);
}

.btn-disabled {
	cursor: not-allowed;
	pointer-events: none;
	opacity: 0.3;
}

.btn-disabled:hover, .btn-disabled:active, .btn-disabled:focus-visible {outline: none !important;}

/* HEADER */
.primary-header {
	height: var(--header-height);
      background: var(--main-50);
	border-bottom: 1px solid var(--main-100);
	position: relative;
	top: 0;
	z-index: 10;
}

.primary-header .inner {
	justify-content: space-between;
      align-items: center;
}

.primary-header .logo {
	display: block;
    	min-width: 123px;
    	width: 123px;
	height: max-content;
	margin: 21px 0;
	line-height: 0;
      position: relative;
	z-index: 300;
}

/* FOOTER */
.primary-footer {
	background: var(--main-500);
	padding: 33px 0;
	color: #9D9DCB;
	font-size: 12px;
	font-weight: 600;
	line-height: 18px;
}

.primary-footer .inner {
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}

.primary-footer small {
	display: block;
	width: 100%;
	margin-top: 24px;
}


/* COMMON */
body > .all {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.all > .page-content {flex-grow: 2;}

.noscroll {overflow: hidden;}

.flex {display: flex;}
.flex.btns > * + * {margin-left: 24px;}

.w100 {
	width: 100%;
	max-width: unset;
}

.main-clr {color: var(--main-500);}
.main-clr2 {color: var(--main2);}

.lil-grey {
	display: block;
      font-size: 14px;
      line-height: 18px;
      color: #7C7D7F;
}

.weight-700 {font-weight: 700;}
.weight-600 {font-weight: 600;}
.weight-500 {font-weight: 500;}

.pointer {cursor: pointer;}

.nowrap {white-space: nowrap;}

.text-center {text-align: center;}

.pos-relative {position: relative;}

.marg-b-12 {margin-bottom: 12px;}
.marg-b-18 {margin-bottom: 18px;}
.marg-b-24 {margin-bottom: 24px;}
.marg-b-30 {margin-bottom: 30px;}
.marg-b-36 {margin-bottom: 36px;}

.sect-marg {margin: 63px 0;}
.sect-padd {padding: 63px 0;}

.sect-marg.sect-last {padding-bottom: 42px;}
.sect-padd.sect-last {margin-bottom: 42px;}

.scroll-inside {
	flex-wrap: nowrap;
	overflow-x: scroll !important;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      -ms-overflow-style: none;
}

.scroll-inside::-webkit-scrollbar {
      display: none;
      opacity: 0;
}

.inputs-wrapper > * + * {margin-top: 14px;}

.nav-icons rect {transition: fill 300ms;}
/*
.nav-icons > a:hover rect, .nav-icons > a:focus-visible rect {fill: var(--main-100);}
*/
.nav-icons > a {
	display: block;
	line-height: 0;
}

.nav-icons > a + a {margin-left: 9px;}

.radio-btns > * + * {margin-top: 9px;}

/* GALLERY RADIOS */
.gall-wrapper {position: relative;}

.gall-thumb {
	cursor: pointer;
	user-select: none;
	width: 100%;
	height: max-content;
}

.gall-thumb > img {pointer-events: none;}

.gall-btn {
	position: absolute;
	opacity: 0;
	height: 0;
	bottom: 0;
	z-index: 9;
}

.gall-img {
	opacity: 0;
	position: absolute;
	z-index: -1;
	inset: 0;
	transition: opacity 300ms ease-in-out;
	content-visibility: auto;
	pointer-events: none;
      user-select: none;
}

.gall-btn:checked + .gall-img, .gall-img.active {
	opacity: 1 !important;
	position: relative;
	z-index: 9;
	pointer-events: unset;
}

.gall-thumb.active {
      outline: 3px solid var(--main-200) !important;
      outline-offset: -3px;
}

/* SLIDER */
.slider-list {cursor: grab;}
.slider-list.grabbing {cursor: grabbing;}

.slider-item + .slider-item {margin-left: 21px;}

.slider-item {
	user-select: none;
	width: 100%;
      min-width: 100%;
}

.slider-item > * {
	pointer-events: none;
	user-select: none;
}

.slider-btns button > * {
	user-select: none;
	pointer-events: none;
}

.slider-btns .btn-disabled {opacity: .5;}

/* NAV DOTS */
.nav-dots {max-width: max-content;}

.nav-dots button {
      display: block;
      width: 36px;
      height: 9px;
      background: var(--main-100);
      transition: background 300ms;
}

.nav-dots button:hover, .nav-dots button:focus-visible {background: #b1b1c5;}
.nav-dots .active {background: var(--main2) !important;}
.nav-dots button + button {margin-left: 15px;}

/* MODAL WINDOW / GALLERY */
.modal-window {
	display: flex;
	opacity: 0;
	visibility: hidden;
	transition: opacity 300ms ease-in-out;
	position: fixed;
	inset: 0;
	min-width: 100%;
	width: 100%;
	min-height: 100%;
	min-height: 100vh;
	max-height: 100vh;
	height: 100%;
	justify-content: center;
	align-items: center;
	z-index: 9999;
}

.modal-window.active {
	opacity: 1;
	visibility: visible;
}

.close-btn {
	position: absolute;
     top: 10px;
     right: 10px;
     width: 36px;
     height: 36px;
     padding: 2px;
     z-index: 20;
     background-color: unset;
     background-image: url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.25 6.25L19.5565 19.5565' stroke='%23C4C4C4' stroke-width='1.5' stroke-linejoin='round' /%3E%3Cpath d='M6.25 19.5566L19.5565 6.25019' stroke='%23C4C4C4' stroke-width='1.5' stroke-linejoin='round' /%3E%3C/svg%3E");
     background-position: center;
}

.modal-bg {
	position: absolute;
	inset: 0;
	min-width: 100%;
	min-height: 100%;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 1;
	background: #060606;
     opacity: .4;
}

.modal-window .dop-scroll {
     width: 100%;
     max-height: 100%;
     display: flex;
     justify-content: center;
     overflow: auto;
     position: relative;
     z-index: 3;
     padding: 40px 16px;
}

.modal-body {
     position: relative;
     border-radius: 18px;
     padding: 45px 24px 24px;
     height: 100%;
     min-height: max-content;
     width: 100%;
     max-width: 402px;
     background: var(--white);
}

.modal-window .radio-btns label {padding-left: 42px;}

/* REPORT PAGE */
.report-page {
     min-height: 40vh;
     flex-direction: column;
     justify-content: center;
     align-items: center;
     margin: 100px auto;
}

.modal-text {
	font-size: 14px;
	color: #818181;
	padding: 24px 9px 0;
}

.report-page > * {text-align: center;}

/* MEDIA */
@media (min-width: 360px) {
	h1, .h1, h2, .h2 {
		font-size: 36px;
		line-height: 45px;
	}

	:root {--inner: 24px;}

	/* HEADER */
	.primary-header .nav-icons svg {
		width: 36px;
		height: 36px;
		border-radius: 50%;
	}

	.primary-header .nav-icons svg:hover {
		box-shadow: 0 0 6px #d3d3df;
	}

/*.nav-icons > a:hover rect, .nav-icons > a:focus-visible rect {fill: var(--main-100);}*/

	.nav-icons > a + a {margin-left: 12px;}
}

@media (min-width: 480px) {
	h1, .h1, h2, .h2 {
		font-size: 45px;
		line-height: 52px;
	}
}

@media (min-width: 580px) {
	:root {--inner: 36px;}

	h4, .h4 {font-size: 27px;}

	/* HEADER */
	.primary-header .logo + div {
		display: block !important;
		font-size: 15px;
		line-height: 18px;
		font-weight: 500;
		color: var(--main-400);
		margin-left: 18px;
		padding-left: 18px;
		align-self: center;
		border-left: 1px solid var(--main-100);
	}

      /* GALLERY */
	.gallery-wrapper aside {padding: 14px;}
}

@media (min-width: 740px) {
	:root {--inner: 46px;}

	h1, .h1 {
		font-size: 48px;
		line-height: 58px;
	}

	h4, .h4 {font-size: 30px;}

	.btn-medium.w100 {
		max-width: max-content;
		min-width: 264px;
		margin-left: auto;
		margin-right: auto;
	}

	.sect-marg {margin: 84px 0;}
	.sect-padd {padding: 84px 0;}
	
	/* FOOTER */
	.primary-footer .inner {
		align-items: flex-end;
		flex-wrap: nowrap;
	}

	.primary-footer .nav-icons {
		order: 3;
		margin-bottom: -5px;
	}

	.primary-footer small {
		margin: 0;
		width: max-content;
		order: 2;
		text-align: center;
	}
}

@media (min-width: 980px) {
	.sect-marg.sect-last {padding-bottom: 60px;}
	.sect-padd.sect-last {margin-bottom: 60px;}
}

@media (min-width: 1024px) {
	h1, .h1 {
		font-size: 48px;
		line-height: 1.2em;
	}
}

@media (min-width: 1080px) {
	.noscroll {margin-right: 17px;}

      /* GALLERY */
      .gallery-wrapper aside {padding: 40px;}
      .gallery-btns {overflow-x: unset;}
}

@media (min-width: 1440px) {
	.sect-marg.sect-last {padding-bottom: 66px;}
	.sect-padd.sect-last {margin-bottom: 66px;}
}