@font-face {
	font-family: 'Argon';
	src: url('font/argon.otf');
	font-weight: 400;
	font-style: normal;
	font-stretch: normal;
}

:root {
	--color-light: #e9e2de;
	--color-border-light: #1e232c55;
	--color-dark: #1e232c;
	--color-gold: #b87333;
	--color-gold-2: #b89662;
	--color-primary-button: var(--color-gold-2);
	--color-popup: #854831;
	--background-gold: linear-gradient(to right, #ceb28d, var(--color-gold-2));
	--background-gold-2: linear-gradient(to right, #ceb28d, var(--color-gold-2), #ceb28d);
	--background-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 2'%3E%3Cpath stroke='white' d='M 1 0 L 1 2 M 0 1 L 2 1' vector-effect='non-scaling-stroke' /%3E%3C/svg%3E");
	--background-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6'%3E%3Cpath stroke='white' fill='none' d='M 3 1 L 5 3 L 3 5 M 0 3 L 5 3' vector-effect='non-scaling-stroke' transform='translate(0.3, 0)' /%3E%3C/svg%3E");
	--background-arrow-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6'%3E%3Cpath stroke='white' fill='none' d='M 3 1 L 1 3 L 3 5 M 6 3 L 1 3' vector-effect='non-scaling-stroke' transform='translate(-0.3, 0)' /%3E%3C/svg%3E");
	--background-eye: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' d='M3 24.248c14 14.588 28 13.863 42 0c-13.51-14.65-27.497-15.127-42 0' stroke-width='1'/%3E%3Cpath fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' d='M30.517 21.44a7 7 0 1 1-3.71-3.853L24.004 24z' stroke-width='1'/%3E%3C/svg%3E");
	--background-vr: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='1'%3E%3Cpath d='M4.5 25.814q20.226 5.093 39 0V37.21h-39zm4.974-2.906c.756.63 1.386.882 3.149.882h.378a2.527 2.527 0 0 0 2.519-2.52h0A2.527 2.527 0 0 0 13 18.751'/%3E%3Cpath d='M9.474 14.595c.756-.63 1.512-.882 3.149-.882h.378a2.527 2.527 0 0 1 2.519 2.519h0a2.527 2.527 0 0 1-2.52 2.52m-1.889-.001h1.89'/%3E%3Ccircle cx='23.355' cy='20.846' r='3.401'/%3E%3Cpath d='M26.377 15.304c-.504-.756-1.385-1.26-2.77-1.26h-.253c-1.89 0-3.4 1.512-3.4 3.275v3.527m16.979-5.839l-4.969 7.578m2.519 1.133c-1.89 0-3.4-1.511-3.4-3.275v-3.4c0-1.89 1.51-3.275 3.274-3.275h0c1.89 0 3.275 1.511 3.275 3.274v3.401c.252 1.89-1.26 3.275-3.149 3.275'/%3E%3Ccircle cx='42.063' cy='11.923' r='1.134'/%3E%3C/g%3E%3C/svg%3E");
}

.v2 {
	color: var(--color-dark) !important;
	background: var(--color-light);

	& .--hidden {
		display: none;
	}
	& .--hide-mobile {
		@media (max-width: 720px) {
			display: none;
		}
	}
	& .--only-mobile {
		@media (min-width: 721px) {
			display: none;
		}
	}

	& ._icon-grid {
		display: flex;
		flex-wrap: wrap;
		--grid-border-color: var(--color-border-light);

		&.--border-top {
			border-top: 1px solid var(--grid-border-color);
		}

		&.--border-bottom {
			border-bottom: 1px solid var(--grid-border-color);
		}

		&.--exra-margins {
			margin: 2rem 0;
		}
	}

	& ._icon-grid-icon {
		width: 50%;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		padding: 1rem;
		margin: 1rem 0;

		& svg {
			width: 100%;
			height: 100%;
		}

		& ._icon-grid-icon-holder {
			width: 60%;
			max-height: 80%;
			padding: 1rem;
			margin: 0 auto 1rem;
		}

		&:nth-child(2n) {
			border-left: 1px solid var(--grid-border-color);
			position: relative;
	
			&:not(:last-child)::after {
				content: '';
				position: absolute;
				bottom: -1rem;
				right: 0;
				width: 200%;
				height: 1px;
				background: var(--grid-border-color);
				pointer-events: none;
			}
		}

		._icon-grid.--interactive & {
			cursor: pointer;
			text-transform: uppercase;
			height: calc(33.333333% - 2rem);
		}
		._icon-grid.--interactive & ._icon-grid-icon-holder {
			border-radius: 100vw;
			border: 1px solid transparent;
		}
		._icon-grid.--interactive &:hover ._icon-grid-icon-holder,
		._icon-grid.--interactive &.--selected ._icon-grid-icon-holder {
			border-color: var(--color-gold);
			color: var(--color-gold);
		}
	}

	& ._icon-grid.--interactive {
		@media (max-width: 720px) {
			flex-wrap: nowrap;
			border-top: 1px solid var(--grid-border-color);

			& ._icon-grid-icon-holder {
				width: auto;
				max-height: none;
				padding: 0.5rem;
				margin: 0;
			}

			& ._icon-grid-icon {
				border: none !important;
				padding: 0.25rem;
				&::after {
					content: none !important;
				}
			}

			& h5 {
				display: none;
			}
		}
	}

	@media (min-width: 721px) {
		&.--animated {
			height: 100vh;
			overflow: hidden;

			& .v2-scroll-snap {
				position: fixed !important;
				top: 0;
				left: 0;
				height: 100%;
				width: 100%;
				background: var(--color-light);
			}
		}
	}
}
.v2 h1, .v2 h2, .v2 h3, .v2 h4, .v2 h5, .v2 h6 {
	font-family: 'Open Sans', sans-serif;
}
.v2 p {
	line-height: 1.3;
	&:not(:last-of-type) {
		margin-bottom: 0.5em;
	}
}
.v2-header {
	z-index: 5;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	display: flex;
	align-items: center;
	padding: 0 1rem;
	height: 6rem;
	background: #e9e2dedd;

	@media (max-width: 720px) {
		height: 5rem;
	}
} 

body:has(.v2-nav.--open) {
	overflow: hidden;
}
.v2-nav {
	z-index: 4;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: inherit;
	color: inherit;
	display: flex;
	
	padding: 7rem 1rem 1rem;

	@media (max-width: 720px) {
		padding-top: 6rem;
		flex-direction: column;
	}

	&:not(.--open) {
		display: none;
	}
}
.v2-nav-img {
	width: 40%;
	object-fit: cover;

	@media (max-width: 720px) {
		display: none;
	}
}
.v2-nav-menu {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	margin-left: 1rem;
	color: var(--color-primary-button);
	font-size: 2rem;
	text-transform: uppercase;

	@media (max-width: 720px) {
		margin-left: 0;
	}

	& li a {
		display: block;
		padding: 1rem 0;
	}
	& li:not(:last-child) {
		border-bottom: 1px solid var(--color-border-light);
	}
	& ._lang {
		margin-top: auto;
		margin-bottom: 1rem;
	}
	& ._legal {
		font-size: 0.85rem;
		text-transform: none;
		color: inherit;
	}
}
.v2-nav-choose-wrapper {
	position: relative;
	display: flex;
	align-items: center;
}
.v2-btn.v2-360 {
	border-color: var(--color-primary-button);
	background: var(--color-primary-button);
	color: #fff;
	padding-top: 0.3125rem;
	padding-bottom: 0.3125rem;
	padding-left: 0.75rem;
	padding-right: 0.75rem;
	margin-right: 1rem;
	vertical-align: middle;

	& img {
		display: block;
		width: 3.25rem;
		height: 1.375em;
		object-fit: contain;
	}

	@media (max-width: 500px) {
		display: none;
	}
}
.v2-nav-choose {
	top: 3rem;
	right: 0;
	position: absolute;
	background: var(--color-primary-button);
	color: #fff;
	display: flex;
	padding: 1rem;

	&::after {
		content: '';
		position: absolute;
		top: -1rem;
		right: 3rem;
		border: 0.5rem solid transparent;
		border-bottom-color: var(--color-light);
	}

	&:not(.--open) {
		display: none;
	}

	& span {
		display: block;
	}
	& svg {
		margin-top: 1rem;
	}
	& a {
		width: 9rem;
	}
	& a:first-child {
		padding-right: 3rem;
	}
	& a:last-child {
		padding-left: 3rem;
		text-align: right;
		border-left: 1px solid #fff;
	}
}

.v2-header-logo {
	height: 2rem;
	user-select: none;
	& img {
		height: 100%;
		user-select: none;
	}
	@media (max-width: 899px) {
		margin-right: auto;
	}
	@media (min-width: 900px) {
		position: absolute;
		left: 50%;
		top: 50%;
		height: 3.7rem;
		transform: translate(-50%, -50%);
	}
}
.v2-emblema-logo {
	display: block;
	width: 14.5rem;
	margin-right: auto;
	user-select: none;
	box-sizing: border-box;

	@media (max-width: 899px) {
		width: 2.5rem;
	}
}

.v2-btn.v2-emblema-logo {
	border-color: var(--color-primary-button);
	background: var(--color-primary-button) url('../assets/interface/emblema-logo-one-line.svg') center / calc(100% - 4rem) auto no-repeat;

	&::before {
		content: '\00a0';
		visibility: hidden;
	}

	@media (max-width: 899px) {
		margin-right: 1rem;
		padding: 0.5rem;
		background-image: url('../assets/interface/emblema-logo-symbol.svg');
		background-size: calc(100% - 1rem) auto;
	}
}

.v2-btn {
	border-radius: 10rem;
	background: transparent;
	border: 1px solid var(--color-border-light);
	color: var(--color-light);
	padding: 0.5rem 2rem;
	cursor: pointer;

	&.--apartments {
		& svg {
			display: none;
		}

		@media (max-width: 720px) {
			& svg {
				display: inline-block;
				width: 2em;
				height: 2em;
				margin: -1.2rem -1rem -1rem;
				vertical-align: middle;
			}

			& ._label {
				display: none;
			}
		}	
	}
	&.--burger {
		padding-left: 1rem;
		padding-right: 1rem;
		border-color: transparent;
		background: var(--color-primary-button);
		color: #fff;
		margin-left: 1rem;
	}
	&.--burger svg {
		width: 1.5em;
	}
	&.--apartments {
		border-color: var(--color-primary-button);
		background: var(--color-primary-button);
		color: #fff;
	}
	&.--3d {
		margin-left: 1rem;
		width: 2.2em;
		padding-left: 0;
		padding-right: 0;
	}
	&.--golden {
		border-color: var(--color-gold-2);
		background: var(--color-gold-2);
		color: #fff;
	}
	&.--consult {
		display: inline-block;
		padding: 0.5rem 1rem;
		border-radius: 0;
		border-color: var(--color-gold-2);
		color: var(--color-gold-2);
		margin-bottom: 2rem;
		text-transform: uppercase;
	}
}


.v2-hero {
	position: relative;
	overflow: hidden;

	& .volume-btn {
		top: auto;
		left: auto;
		bottom: 1rem;
		right: 1rem;
	}

	& .v2-btn-big.--down {
		position: absolute;
		bottom: 5%;
		left: 50%;
		transform: translateX(-50%);
		z-index: 1;

		@media (max-width: 720px) {
			display: none;
		}
	}

	&.--home:has(.v2-hero-vtour) .v2-btn-big.--down {
		bottom: calc(5% + 2rem);
	}
}
.v2-hero-img {
	display: block;
	width: 100%;
	/* opacity: 0.6; */
	object-fit: cover;
	height: 100vh;
}
.v2-hero-vtour {
	width: 100%;
	height: 100vh;
}
.v2-project-financing-promo {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 3.25rem;
	overflow: hidden;
	background: var(--color-light);
	color: #a47c49;
	font-size: 1.35rem;
	font-weight: 400;
	line-height: 1;
	pointer-events: none;
}
.v2-project-financing-promo > div {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 1rem;
	text-align: center;
	animation: v2-financing-promo-cycle 5s ease-in-out infinite;
}
.v2-project-financing-promo > div:nth-child(2) {
	animation-name: v2-financing-promo-cycle-second;
}
.v2-project-financing-promo strong {
	font-weight: 700;
	margin: 0 0.5rem;
}
@keyframes v2-financing-promo-cycle {
	0% {
		opacity: 0;
	}
	5%, 45% {
		opacity: 1;
	}
	50%, 100% {
		opacity: 0;
	}
}
@keyframes v2-financing-promo-cycle-second {
	0%, 50% {
		opacity: 0;
	}
	55%, 95% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}
@media (max-width: 720px) {
	.v2-project-financing-promo {
		height: 3.75rem;
		font-size: 1rem;
		line-height: 1.2;
	}
}

/* Rental detail */
.v2-rental {
	min-height: 100vh;
	padding: 10rem 4.2vw 5rem;
	background: inherit;
	color: inherit;
	font-family: 'Open Sans', sans-serif;
}

.v2-rental-article {
	max-width: 90rem;
	margin: 0 auto;
}

.v2-rental-title {
	max-width: 70rem;
	margin: 0 0 0.65rem;
	font-size: clamp(2rem, 3.2vw, 3.75rem);
	font-weight: 300;
	line-height: 1.1;
	letter-spacing: -0.025em;
	text-transform: uppercase;
}

.v2-rental-kicker {
	margin: 0 0 2.5rem;
	color: var(--color-gold);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.v2-rental-gallery {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #ded6cf;
	overflow: hidden;
}

.v2-rental-gallery .swiper-wrapper,
.v2-rental-gallery .swiper-slide,
.v2-rental-gallery img,
.v2-rental-gallery iframe {
	width: 100%;
	height: 100%;
}

.v2-rental-gallery img {
	display: block;
	object-fit: cover;
}

.v2-rental-gallery iframe {
	display: block;
	border: 0;
}

.v2-rental-gallery .swiper-button-prev,
.v2-rental-gallery .swiper-button-next {
	color: var(--color-gold);
}

.v2-rental-gallery .v2-rental-gallery-prev {
	left: 1.5rem;
}

.v2-rental-gallery .v2-rental-gallery-next {
	right: 1.5rem;
}

.v2-rental-overview {
	padding: 3rem 0;
}

.v2-rental-overview h2 {
	margin: 0 0 1.75rem;
	font-size: clamp(1.5rem, 2vw, 2rem);
	font-weight: 300;
	text-transform: uppercase;
}

.v2-rental-overview dl {
	display: grid;
	margin: 0;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent);
	border-left: 1px solid color-mix(in srgb, currentColor 22%, transparent);
}

.v2-rental-detail {
	display: flex;
	min-width: 0;
	padding: 1.5rem;
	align-items: center;
	gap: 1rem;
	border-right: 1px solid color-mix(in srgb, currentColor 22%, transparent);
	border-bottom: 1px solid color-mix(in srgb, currentColor 22%, transparent);
}

.v2-rental-detail-icon {
	display: block;
	width: 2.25rem;
	height: 2.25rem;
	flex: 0 0 auto;
	background: var(--color-gold);
	-webkit-mask: var(--detail-icon) center / contain no-repeat;
	mask: var(--detail-icon) center / contain no-repeat;
}

.v2-rental-detail dt {
	margin-bottom: 0.3rem;
	font-size: 0.8rem;
	font-weight: 400;
	letter-spacing: 0.06em;
	color: color-mix(in srgb, currentColor 58%, transparent);
	text-transform: uppercase;
}

.v2-rental-detail dd {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 500;
	line-height: 1.3;
}

.v2-rental-detail dd a {
	text-decoration: underline;
	text-decoration-color: var(--color-gold);
	text-underline-offset: 0.2em;
}

.v2-rental-description {
	max-width: 78rem;
	padding-top: 3rem;
	font-size: clamp(1.05rem, 1.4vw, 1.45rem);
	font-weight: 300;
	line-height: 1.5;
}

@media (max-width: 1000px) {
	.v2-rental-overview dl {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.v2-rental {
		padding: 7rem 1rem 3rem;
	}

	.v2-rental-title {
		margin-bottom: 0.5rem;
	}

	.v2-rental-kicker {
		margin-bottom: 1.5rem;
	}

	.v2-rental-gallery {
		aspect-ratio: 4 / 3;
	}

	.v2-rental-overview {
		padding: 2rem 0;
	}

	.v2-rental-overview dl {
		grid-template-columns: 1fr;
	}

	.v2-rental-detail {
		padding: 1.1rem;
	}

	.v2-rental-description {
		padding-top: 2rem;
	}
}
@media (prefers-reduced-motion: reduce) {
	.v2-project-financing-promo > div {
		animation: none;
	}
	.v2-project-financing-promo > div:nth-child(2) {
		display: none;
	}
}
.v2-mounte-intro {
	position: absolute;
	left: 50%;
	top: 62%;
	z-index: 1;
	display: flex;
	width: min(90vw, 60rem);
	align-items: center;
	flex-direction: column;
	gap: 2rem;
	transform: translate(-50%, -50%);
	color: #fff;
	text-align: center;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
.v2-mounte-intro h1 {
	font-family: 'Open Sans', sans-serif;
	font-size: clamp(2.5rem, 4vw, 4.5rem);
	font-weight: 300;
	line-height: 1.1;
}
.v2-mounte-intro-cta {
	display: inline-flex;
	min-width: 16rem;
	height: 3.25rem;
	padding: 0 2rem;
	align-items: center;
	justify-content: center;
	border-radius: 10rem;
	background: var(--color-dark);
	color: #fff;
	font-size: 1.1rem;
	font-weight: 500;
	transition: background-color 0.3s ease, color 0.3s ease;
}
.v2-mounte-intro-cta:hover {
	background: #fff;
	color: var(--color-dark);
}
@media (max-width: 720px) {
	.v2-mounte-intro {
		top: 65%;
		gap: 1.5rem;
	}
	.v2-mounte-intro h1 {
		font-size: clamp(2rem, 9vw, 3rem);
	}
	.v2-mounte-intro-cta {
		min-width: 13rem;
		height: 3rem;
		font-size: 1rem;
	}
}
.v2-hero-logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
}
.v2-hero-logo img {
	width: 60vw;
	max-height: calc(100vh - 14rem);
}
.v2-hero-heading {
	position: absolute;
	left: 50%;
	bottom: 20vh;
	text-align: center;
	color: #fff;
}
.v2-hero-heading h2 {
	font-size: 24vw;
	text-transform: uppercase;
	transform: translateX(-50%);
	@media (min-width: 721px) {
		font-size: 14vw;
	}
}
.v2-hero-heading h3 {
	font-size: 6vw;
	transform: translateX(-50%);
}

.v2-project-info {
	position: absolute;
	right: 5rem;
	padding: 2rem;
	top: calc(50% + 3rem);
	transform: translateY(-50%);
	background: var(--color-dark);
	background: color-mix(in srgb, var(--color-dark) 80%, transparent);;
	color: #fff;
	text-align: center;
	text-transform: uppercase;
	width: 20rem;
	max-width: 90vw;

	@media (max-width: 720px) {
		right: 50%;
		transform: translate(50%,-50%);
	}

	& ._stats {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;

		& li {
			width: 50%;
			margin: 0.5rem 0;

			& strong {
				display: block;
				font-weight: normal;
				font-size: 2.5rem;
			}
		}
	}

	& .v2-btn {
		display: inline-block;
		margin: 1rem 0;
	}

	& h5 {
		margin: 1rem 0;
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: space-between;	
		text-align: left;

		& svg {
			width: 4rem;
			height: 4rem;
			flex-shrink: 0;
		}
	}

	& ._close {
		position: absolute;
		top: -1rem;
		right: -1rem;
		color: transparent;
		border: none;
		border-radius: 100vw;
		display: block;
		width: 2rem;
		height: 2rem;
		padding: 0;
		margin:  0 0 1rem;
		overflow: hidden;
		background: var(--color-gold-2);
		cursor: pointer;
		
		&::after {
			content: '';
			position: absolute;
			top: 50%;
			left: 50%;
			width: 50%;
			height: 50%;
			background: var(--background-plus) no-repeat;
			transform: translate(-50%, -50%) rotate(45deg) ;
		}
	}
}

.v2-gallery-open {
	cursor: pointer;
	& .v2-hero-heading h2 {
		font-size: 13vw;
	}
}
.v2-hs-wrapper {
	position: relative;
	display: flex;
	height: 100vh;
	overflow: hidden;
	scroll-snap-type: x mandatory;	

	@media (max-width: 720px) {
		height: auto;
		overflow-x: scroll;
	}
}
.v2-hs-item {
	scroll-snap-align: start;
	flex: 0 0 auto; 
	height: 100vh;
	width: 100vw;

	@media (max-width: 720px) {
		height: auto;
	}
}

.v2-details {
	display: flex;
	padding: 8rem 1rem 2rem;
	position: relative;
	height: 100vh;

	@media (max-width: 720px) {
		height: auto;
		flex-direction: column;
		padding: 1rem;
	}

	& h3 {
		font-size: 4vw;
		text-transform: uppercase;
		
		&.--grow {
			position: relative;
			z-index: 1;
			white-space: nowrap;
			pointer-events: none;

			@media (max-width: 720px) {
				display: none;
			}

			@media (min-width: 721px) {
				/* transform: scale(1.8); */
				font-size: 7.2vw;
			}

			&.--br {
				transform-origin: 0 0;
				padding-bottom: 0.8em;
			}

			&.--bl {
				direction: rtl;
			}

			&.--tr {
				transform-origin: 0 100%;
				padding-top: 0.8em;
			}
		}
	}

	& h4 {
		font-size: 3vw;
		text-transform: uppercase;
		@media (max-width: 720px) {
			font-size: 2.5rem;
			margin: 1rem 0;
		}
	}

	& ._big-number {
		@media (min-width: 721px) {
			font-family: "Argon", serif;
			font-size: 15vw;
			line-height: 0.8;
			
			& span {
				background: var(--background-gold);
				background-clip: text;
				color: transparent;
			}
		}
	}

	& .--text-bottom {
		display: flex;
		flex-direction: column;
		justify-content: flex-end;		
	}
	& .--justify-space-between {
		display: flex;
		flex-direction: column;
		justify-content: space-between;

		& .v2-btn-big.--close {
			align-self: flex-end;
			margin-bottom: 1rem;
		}
	}

	& .--text-spread {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
	}

	& ._collage-of-3 {
		position: relative;

		& ._img {
			position: absolute;
			width: 50%;
			height: 50%;

			&:hover {
				z-index: 1;
			}

			&:nth-child(1) {
				top: 1rem;
				left: 1rem;
			}
			&:nth-child(2) {
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%);

				&.--zoom:hover {
					transform: translate(-50%, -50%) scale(1.1);
				}
			}
			&:nth-child(3) {
				right: 1rem;
				bottom: 1rem;
			}
		}
	}

	& ._collage-of-2 {
		display: flex;
		justify-content: space-between;

		& ._img {
			flex: 0 0 auto;
			width: calc(50% - 0.5rem);
		}
	}

	& ._facilities-split {
		@media (min-width: 721px) {
			display: flex;

			& > * {
				width: 50%;
			}

			& .--grow {
				font-size: 5vw;
				transform-origin: 0 100%;
				transform: translateY(-25%);
			}
		}
	}
	&._prop {
		position: relative;

		& .--close {
			position: absolute;
			z-index: 1;
			top: 8rem;
			right: 1rem;
		}

		@media (max-width: 720px) {
			padding-top: 6rem;
		}
	}

	& ._info-prop {
		font-size: 3rem;
		margin-bottom: 2rem;

		& span {
			display: block;
			font-size: 4em;
		}
	}

	& ._info-floor,
	& ._info-entrance,
	& ._info-type,
	& ._info-status {
		margin-bottom: 0 !important;
		text-transform: uppercase;
		font-size: 1.5em;
	}

	& ._info-size-rzp {
		margin: 1rem 0;
		text-transform: uppercase;
		font-size: 3em;
	}

	& ._info-btn {
		display: block;
		background: var(--background-gold);
		text-align: center;
		line-height: 3rem;
		& svg {
			vertical-align: middle;
			width: 2em;
			height: 2em;
		}

		&._info-pdf {
			margin-top: 1rem;
			background: none;
			border: 1px solid var(--color-gold);

			& span {
				color: var(--color-gold);
			}
		}
	}

	& ._info-btn-group {
		display: flex;
		margin: 0.5rem -0.25rem;

		& ._info-btn {
			flex: 1 0 50%;
			margin: 0 0.25rem;
		}
	}

	& ._plan {
		padding: 1rem !important;

		& ._property {
			width: 100%;
			height: 100%;
			max-height: calc(100vh - 10rem);
			object-fit: contain;
		}

		& ._north {
			display: block;
			width: 4rem;
			margin: 0 0 1rem auto;
		}
	}
}

.v2-details-col {
	padding: 0 1rem;

	& ul {
		margin-bottom: 0.5em;
		& li {
			position: relative;
			padding-left: 1em;
			&::before {
				position: absolute;
				left: 0.2em;
				content: "-";
			}
		}
	}

	&:first-of-type {
		padding-left: 0;
	} 
	&:last-of-type {
		padding-right: 0;
	} 

	@media (max-width: 720px) {
		padding: 0;
	}

	@media (min-width: 721px) {
		flex: 1 0 0%;

		&.--border-left {
			border-left: 1px solid var(--color-border-light);
		}
		&.--border-right {
			border-right: 1px solid var(--color-border-light);
		}
		&.--1 {
			flex: 0 0 auto;
			width: 33.3333333%;
		}
		&.--2 {
			flex: 0 0 auto;
			width: 66.6666666%;
		}

		&.--ver { 
			display: flex;
			flex-direction: column;
	
			& > * {
				flex: 1 0 0%;
				height: 50%;
	
				&:first-child {
					padding-bottom: 1rem;
				}
	
				&:last-child {
					border-top: 1px solid var(--color-border-light);
					padding-top: 1rem;
				}
			}
	
			&.--ver-1-3 > * {
				flex: initial;
				&:first-child {
					height: 66.666666%;
				}
				&:last-child {
					height: 33.333333%;
				}
			}
		}
	}
}

.v2-facilities-image-frame {
	position: relative;
	overflow: hidden;
}
.v2-facilities-img {
	@media (max-width: 720px) {
		aspect-ratio: 16 / 9;
	}
}
.v2-facilities-heading {
	@media (max-width: 720px) {
		display: block !important;
		font-size: 2.5rem !important;
		padding-top: 1rem;
		margin: 1rem 0;
		border-top: 1px solid var(--color-border-light);
	}
}
.v2-facilities-info-display {
	@media (max-width: 720px) {
		padding-bottom: 1rem;
		margin-bottom: 1rem;
		border-bottom: 1px solid var(--color-border-light);
	}
	@media (min-width: 721px) {
		padding-left: 1rem;
		border-left: 1px solid var(--color-border-light);
	}
	
}
.v2-facility-subslider-dots {
	display: none;
	position: absolute;
	right: 1rem;
	bottom: 2rem;
	z-index: 1;
	gap: 0.35rem;
	align-items: center;

	& button {
		display: block;
		width: 1.2rem;
		height: 1.2rem;
		border: 1px solid rgba(255, 255, 255, 0.9);
		padding: 0;
		background: transparent;
		border-radius: 50%;
		cursor: pointer;
	}

	& button.--selected {
		background: #fff;
	}
}
.v2-facilities-image-frame.--has-dots .v2-facility-subslider-dots {
	display: flex;
}
.v2-facility-subslide {
	display: none;
}

.v2-see-more {
	display: block;
	@media (max-width: 720px) {
		margin-top: 1rem;
		& span {
			display: none;
		}
	}
	@media (min-width: 721px) {
		margin-top: 2rem;
		& .v2-btn-big {
			margin-left: 1rem;
		}
	}
}

.v2-btn-big {
	position: relative;
	flex-shrink: 0;
	border: none;
	padding: 0;
	width: 3rem;
	height: 3rem;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	background: var(--background-gold);
	border-radius: 100vw;
	cursor: pointer;
	vertical-align: middle;

	& span {
		position: relative;
	}

	&::after {
		display: block;
		z-index: 1;
		width: 100%;
		height: 100%;
		background-repeat: no-repeat;
		background-size: 50% 50%;
		background-position: 50% 50%;
	}
	&.--left::after {
		content: '';
		background-image: var(--background-arrow-left);
	}
	&.--right::after {
		content: '';
		background-image: var(--background-arrow-right);
	}
	&.--down::after {
		content: '';
		background-image: var(--background-arrow-right);
		transform: rotate(90deg);
	}
	&.--plus::after {
		content: '';
		background-image: var(--background-plus);
	}
	&.--close::after {
		content: '';
		background-image: var(--background-plus);
		transform: rotate(45deg);
	}
	&.--eye::after {
		content: '';
		background-image: var(--background-eye);
		background-size: 80% 80%;
	}
	&.--vr::after {
		content: '';
		background-image: var(--background-vr);
		background-size: 80% 80%;
	}
	&::before {
		content: '';
		position: absolute;
		top: 1px;
		left: 1px;
		right: 1px;
		bottom: 1px;
		border-radius: 100vw;
		background: var(--color-dark);
		transform: scale(0);
		transition: 0.3s transform;
	}
	&.--hover-fx {
		pointer-events: none;
		position: fixed;
		z-index: 1;

		&::before {
			content: none;
		}
	}
	@media (hover: hover) {
		&:hover::before {
			transform: none;
		}
	}
}

body:has(.v2-popup.--open) {
	overflow: hidden;
}

.v2-details, .v2-popup {
	& ._img-wrapper {
		width: 100%;
		height: 100%;
		overflow: hidden;
	}
	& ._img {
		width: 100%;
		height: 100%;
		&.--contain {
			object-fit: contain;
		}
		&.--cover {
			object-fit: cover;
		}
		&.--interactive {
			cursor: pointer;
		}
		&.--zoom {
			transition: 0.5s transform;
			&:hover {
				transform: scale(1.1);
			}
		}
	}
}

.v2-popup {
	position: fixed;
	z-index: 5;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	align-items: flex-start;
	background: #000000CC;

	&:not(.--open) {
		display: none;
	}

	& ._close {
		flex-shrink: 0;
		color: transparent;
		border: none;
		border-radius: 100vw;
		display: block;
		position: relative;
		width: 2rem;
		height: 2rem;
		padding: 0;
		margin: 0 0 1rem auto;
		overflow: hidden;
		background: var(--color-popup);
		cursor: pointer;
		
		&::after {
			content: '';
			position: absolute;
			top: 50%;
			left: 50%;
			width: 50%;
			height: 50%;
			background: var(--background-plus) no-repeat;
			transform: translate(-50%, -50%) rotate(45deg) ;
		}
	}
	& ._content {
		background: #e5d4cc;
		color: var(--color-popup);
		padding: 1rem;
		margin: 1rem;
		font-size: 1.2rem;

		& > img {
			margin: 1rem 0;
		}

		@media (min-width: 721px) {
			width: 60vw;
			padding: 3rem;
		}

		&.--right {
			margin-left: auto;
		}
	}
	& ._heading {
		display: flex;
		justify-content: space-between;
		margin-bottom: 2rem;

		& h2 {
			margin-top: -0.1em;
			font-size: 1.5rem;
			text-transform: uppercase;

			@media (min-width: 721px) {
				font-size: 3rem;
			}
		}
	}
	& h3 {
		text-transform: uppercase;
		text-align: center;
		margin: 2rem 10%;
		font-size: 2rem;
	}
	& h4 {
		display: flex;
		justify-content: space-between;
		padding: 1rem 0;
		margin: 1rem 0;

		&.--border-top {
			border-top: 1px solid var(--color-popup);
		}

		&.--border-bottom {
			border-bottom: 1px solid var(--color-popup);
		}

		& > * {
			flex: 1 0 0%;
		}

		& span._big {
			font-size: 20vw;
		}
	}
	& h6 {
		font-size: 5rem;
		margin-top: 3rem;
	}
	& ._img {
		aspect-ratio: 1/1;
	}
	& ._icon-grid {
		--grid-border-color: var(--color-popup);
	}
	& ._icon-grid-icon-holder {
		width: 30% !important;
		margin-right: 0 !important;
		padding: 1rem 0 !important;
	}
	& p {
		margin: 1rem 0;
	}
	& img {
		max-width: 100%;
	}
	& ._collage-special {
		width: 100%;
		display: flex;
		justify-content: space-between;

		& img:first-child {
			object-fit: cover;
			width: calc(33.33333% - 0.5rem);
		}
		& img:last-child {
			object-fit: cover;
			width: calc(66.66666% - 0.5rem);
		}
	}
}

body:has(.v2-gallery.--open) {
	overflow: hidden;
}

.v2-gallery {
	position: fixed;
	display: flex;
	flex-direction: column;
	z-index: 5;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--color-dark);
	padding: 1rem;

	&:not(.--open) {
		display: none;
	}

	& ._nav {
		display: flex;

		& .v2-btn-big {
			width: 2.5rem;
			height: 2.5rem;
		}

		& .--left {
			margin-right: 0.3em;
		}

		& .--close {
			margin-left: auto;
		}
	}

	& ._img-holder { 
		height: calc(100vh - 4rem - 10vw);
		display: flex;
		align-items: center;
		justify-content: center;
		margin: 1rem 0;
		position: relative;
	}

	& ._img {
		position: absolute;
		max-width: 100%;
		max-height: 100%;
		aspect-ratio: 1 / 1;
		object-fit: cover;
		object-position: 50% 50%;
		cursor: pointer;
	}

	& ._num {
		flex-shrink: 0;
		text-align: center;
		font-family: "Argon", serif;
		font-size: 10vw;
		line-height: 0.8;

		& span {
			background: var(--background-gold);
			background-clip: text;
			color: transparent;
		}
	}
}

.v2-location {

	padding: 1rem;
	position: relative;
	display: flex;

	& h4 {
		font-size: 1.5rem;
	}

	@media (max-width: 720px) {
		flex-direction: column;
	}

	@media (min-width: 721px) {
		height: 100vh;
		padding: 8rem 1rem 0;
		justify-content: stretch;
	}

	& ._address {
		flex-grow: 1;
		margin-bottom: 1rem;
		position: relative;

		@media (min-width: 721px) {
			padding-left: 1rem;
			padding-top: 11vw;
			text-align: right;
		}

		& h3 {
			font-size: 2.5rem;
			text-transform: uppercase;

			@media (min-width: 721px) {
				position: absolute;
				top: 1vw;
				right: 0;
				font-size: 9vw;
				white-space: nowrap;
				padding-bottom: 0.8em;
			}
		}

		& address {
			display: flex;
			margin: 1.5rem 0;
			justify-content: flex-end;

			@media (max-width: 720px) {
				justify-content: flex-start;
				text-align: left;
			}

			& p {
				font-size: 1.5rem;
			}
		}

		& ._sales-contact {
			margin: 1rem 0;
		}
	}

	& ._times {
		position: absolute;
		z-index: 2;
		bottom: 0;
		left: 1rem;
		width: 80%;
		padding: 1rem 1rem 2rem;
		display: flex;
		justify-content: space-between;
		align-items: flex-end;	
		background: #e9e2decc;

		@media (min-width: 721px) {
			width: 50%;
		}	
	}

	& ._min {
		font-size: 15vw;
		line-height: 0.8;
	}

	& ._info {
		text-align: right;

		& nav {
			margin-bottom: 1rem;
		}

		@media (min-width: 721px) {
			font-size: 2vw;

			& nav {
				position: absolute;
				top: 1rem;
				right: 1rem;
			}
		}	
	}

	& .v2-btn-big {
		background: var(--color-dark);
	}
}

#v2-map {
	@media (max-width: 720px) {
		height: 62vh;
		order: 2;
	}
	@media (min-width: 721px) {
		width: 70%;
		height: 100%;
	}
}

.v2-location.--with-intro {
	@media (min-width: 721px) {
		& #v2-map {
			flex: 0 0 70%;
		}

		& ._address {
			min-width: 0;
		}
	}

	& .v2-location-intro {
		border-top: 1px solid var(--color-primary-button);
		padding-top: 1rem;
		margin: 1.5rem 0;
	}

	& .--appointment,
	& .--route {
		display: table;
		margin-left: auto;
	}

	& .--appointment {
		margin-bottom: 0.75rem;
	}

	@media (max-width: 720px) {
		& .--appointment,
		& .--route {
			margin-left: 0;
		}
	}
}
.v2-towers {
	position: relative;
	margin-top: 8rem;

}
.v2-floor {
	margin: 8rem 1rem 0;
	padding: 0;
	display: flex;

	& .towers {
		width: 20%;
		overflow: hidden;
		margin-right: 1rem;

		& text {
			font-size: 100px;
		}

		& svg {
			transform: scale(2.5);
		}
		&.--entrance-А svg {
			transform-origin: 15% 0%;
		}
		&.--entrance-Б svg {
			transform-origin: 85% 10%;
		}
	}
	& .towers-infos {
		display: none;
	}
	& .properties {
		flex-grow: 1;
		padding: 0;
		background: none;

		& svg {
			display: block;
			margin: 0 auto;
			max-height: calc(100vh - 10rem);
		}
	}
	& ._north {
		display: block;
		width: 5vw;
		margin: 0 1rem 1rem auto;

		@media (min-width: 721px) {
			position: absolute;
			left: 7vw;
			bottom: 0;
		}
	}

	@media (max-width: 720px) {
		flex-direction: column;

		& .towers {
			order: 2;
			width: 100%;
			margin-top: 2rem;

			& svg {
				transform: none;
			}
		}
	}
}
.v2 .towers {
	background: none;
}

.v2-list {
	--filter-ui-bg: #1e232c;
	--filter-ui-fg: #ffffff;
	--filter-ui-muted: #b9bec6;
	--filter-ui-border: rgb(255 255 255 / 70%);
	--filter-ui-track: rgb(255 255 255 / 35%);
	--filter-ui-primary: #ffffff;
	--filter-ui-primary-text: #1e232c;
	padding: 8rem 1rem 0;
	position: relative;

	& ._filter-trigger {
		min-width: 7rem;
		justify-content: center;
		font-size: 0.78rem;

		& ._filter-count {
			min-width: 1.35rem;
			height: 1.35rem;
			margin-left: 0.55rem;
			padding: 0 0.35rem;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			border-radius: 100vw;
			background: var(--color-dark);
			color: #fff;
			font-size: 0.72rem;
		}
	}

	& ._filter-floating-action {
		position: fixed;
		z-index: 8;
		left: 50%;
		bottom: 2.5rem;
		transform: translateX(-50%);

		& ._filter-trigger {
			min-width: 11rem;
			font-size: 0.95rem;
			box-shadow: 0 0.65rem 1.5rem rgb(16 23 31 / 18%);
		}
	}

	
	& ._table-scroll {
		width: 100%;
		overflow-x: auto;
		background: #fff;
		overscroll-behavior-inline: contain;
	}

	& table {
		width: 100%;
		background: #fff;
		color: var(--color-dark);
	}

	& th {
		text-align: left;
		padding: 2rem 1rem 1rem;
		font-weight: 500;
		font-size: 1.2em;
		white-space: nowrap;
		border-bottom: 1px solid #d5d7da;
	}

	& td {
		vertical-align: middle;
		padding: 1rem;
		border-bottom: 1px solid #d5d7da;
	}

	& tr:hover td {
		border-bottom-color: #8595ac;
	}

	& ._plan {
		height: 5rem;
		width: 5rem;
		object-fit: contain;
		transition: all 0.3s;
	}

	& tbody tr {
		cursor: pointer;

		@media (min-width: 721px) and (hover: hover) {
			&:hover {
				& ._plan {
					height: 10rem;
					width: 10rem;
				}
			}
		}
	}

	@media (min-width: 721px) {
		& td:last-child {
			white-space: nowrap;
		}
	}

	@media (max-width: 720px) {
		& table,
		& tbody,
		& td {
			display: block;
		}

		& thead {
			display: none;
		}
		
		& tr {
			border-bottom: 1px solid #d5d7da;
			width: 100%;
			display: flex;
			flex-direction: column;
			justify-content: center;
			min-height: 10rem;
			position: relative;
			padding: 1rem 0;

			& td {
				border-bottom: none;
				padding: 0.25rem 5rem 0.25rem 30vw;

				&::before {
					content: attr(data-title) ': ';
				}

				&:first-child {
					position: absolute;
					top: 1rem;
					left: 0;
					bottom: 1rem;
					width: 30vw;
					padding: 2rem;

					&::before {
						content: none;
					}
				}
				&:last-child {
					position: absolute;
					top: 1rem;
					right: 0;
					bottom: 1rem;
					width: 5rem;
					padding: 1rem;
					display: flex;
					flex-direction: column;
					justify-content: center;
					row-gap: 1rem;

					&::before {
						content: none;
					}
				}
			}
		}
		& ._plan {
			width: 100%;
			height: 100%;
		}
	}

	& ._filter-backdrop {
		position: fixed;
		z-index: 30;
		inset: 0;
		padding: 5rem 1rem 1rem;
		display: flex;
		align-items: flex-start;
		justify-content: center;
		background: rgb(16 23 31 / 32%);
		overflow-y: auto;
	}

	& ._filter-panel {
		position: relative;
		width: min(35rem, 100%);
		padding: 2rem 2rem 1.5rem;
		background: var(--filter-ui-bg);
		color: var(--filter-ui-fg);
		box-shadow: 0 1rem 3rem rgb(0 0 0 / 25%);

		& > h2 {
			margin: 0 4rem 1.5rem 0;
			font-size: 1.6rem;
			font-weight: 300;
			letter-spacing: 0.08em;
			text-transform: uppercase;
		}
	}

	& ._filter-close {
		position: absolute;
		top: 1.25rem;
		right: 1.25rem;
		background: transparent;
		border: 1px solid var(--filter-ui-border);
	}

	& ._filter-panel-group {
		margin-top: 1.25rem;

		& h3 {
			margin-bottom: 0.7rem;
			color: var(--filter-ui-muted);
			font-size: 0.72rem;
			font-weight: 500;
			letter-spacing: 0.05em;
			text-transform: uppercase;

			& span {
				margin-left: 0.5rem;
				color: var(--filter-ui-fg);
				font-weight: 300;
				letter-spacing: 0;
				text-transform: none;
			}
		}
	}

	& ._filter-chips {
		display: flex;
		flex-wrap: wrap;
		gap: 0.5rem;

		& button {
			min-height: 2rem;
			border: 1px solid var(--filter-ui-border);
			padding: 0.25rem 1rem;
			background: transparent;
			color: inherit;
			border-radius: 100vw;
			font: inherit;
			font-size: 0.72rem;
			cursor: pointer;

			&.--active {
				border-color: var(--filter-ui-primary);
				background: var(--filter-ui-primary);
				color: var(--filter-ui-primary-text);
			}
		}

		&.--round button {
			width: 2rem;
			padding: 0;
		}
	}

	& ._range-inputs {
		position: relative;
		height: 1.6rem;

		&::before {
			content: '';
			position: absolute;
			top: 50%;
			left: 0;
			right: 0;
			height: 2px;
			background: linear-gradient(to right,
				var(--filter-ui-track) 0 var(--range-start),
				var(--filter-ui-primary) var(--range-start) var(--range-end),
				var(--filter-ui-track) var(--range-end) 100%);
			transform: translateY(-50%);
		}

		& input[type="range"] {
			position: absolute;
			inset: 0;
			width: 100%;
			height: 100%;
			margin: 0;
			appearance: none;
			background: transparent;
			pointer-events: none;

			&::-webkit-slider-runnable-track {
				background: transparent;
			}

			&::-webkit-slider-thumb {
				width: 1rem;
				height: 1rem;
				border: 0;
				border-radius: 50%;
				appearance: none;
				background: var(--filter-ui-primary);
				cursor: grab;
				pointer-events: auto;
			}

			&::-moz-range-track {
				background: transparent;
			}

			&::-moz-range-thumb {
				width: 1rem;
				height: 1rem;
				border: 0;
				border-radius: 50%;
				background: var(--filter-ui-primary);
				cursor: grab;
				pointer-events: auto;
			}
		}
	}

	& ._filter-statuses {
		display: grid;
		gap: 0.55rem;

		& label {
			display: flex;
			align-items: center;
			gap: 0.55rem;
			font-size: 0.72rem;
			text-transform: uppercase;
			cursor: pointer;
		}

		& input {
			width: 1.35rem;
			height: 1.35rem;
			margin: 0;
			border: 1px solid var(--filter-ui-border);
			border-radius: 0;
			appearance: none;
			background-color: var(--filter-ui-bg);
			cursor: pointer;

			&:checked {
				border-color: var(--filter-ui-primary);
				background-image: linear-gradient(var(--filter-ui-primary), var(--filter-ui-primary));
				background-position: center;
				background-repeat: no-repeat;
				background-size: 0.55rem 0.55rem;
			}

			&:focus-visible {
				outline: 2px solid var(--filter-ui-primary);
				outline-offset: 2px;
			}
		}
	}

	& ._filter-panel-actions {
		margin-top: 2rem;
		display: flex;
		justify-content: center;
		gap: 0.75rem;

		& .v2-btn {
			min-width: 7rem;
			justify-content: center;
			border-color: var(--filter-ui-border);
			background: transparent;
			color: var(--filter-ui-fg);
		}

		& .v2-btn.--golden {
			border-color: var(--filter-ui-primary);
			background: var(--filter-ui-primary);
			color: var(--filter-ui-primary-text);
		}
	}
	& ._order {
		border: none;
		background: none;
		margin: 0;
		padding: 0;
		color: #999;
		cursor: pointer;
		&.--active {
			color: var(--color-gold-2);
		}
	}
	& ._features {
		color: var(--color-gold-2);
	}

	@media (max-width: 720px) {
		padding-top: 6rem;

		& ._features.--empty {
			display: none;
		}

		& ._filter-floating-action {
			bottom: 1.25rem;
		}

		& ._filter-backdrop {
			padding: 0;
			align-items: stretch;
		}

		& ._filter-panel {
			width: 100%;
			min-height: 100%;
			padding: 1.5rem 1.25rem;
		}
	}
}

body.--filter-open {
	overflow: hidden;
}

.v2-slider-holder {
	position: relative;
}

@media (min-width: 721px) {
	body:has(.v2-slider.--open) {
		overflow: hidden;
	}
}
.v2-slider {
	@media (min-width: 721px) {
		position: absolute;
		z-index: 4;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: var(--color-light);

		&:not(.--open) {
			display: none;
		}
	}
	@media (max-width: 720px) {
		& ._img {
			aspect-ratio: 1 / 1;
			height: auto;
			object-fit: cover;
		}
		& ._collage-of-2 ._img {
			aspect-ratio: 0.485;
		}
		& .v2-btn-big.--close {
			display: none;
		}
		& .v2-details-col.--1 {
			order: 2;
			margin-top: 1rem;
			display: flex;
			flex-direction: column;
		}
	}
}

.v2-gallery-nav {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;

	@media (max-width: 720px) {
		position: relative;
		order: -1;
		padding-bottom: 1rem;
		margin-bottom: 1rem;
		border-bottom: 1px solid var(--color-border-light);
		align-items: baseline;
		visibility: hidden;

		&.--only-mobile {
			visibility: visible;
			z-index: 1;
			top: 100vw;
			left: 1rem;
			width: calc(100% - 2rem);
			margin-bottom: -4rem;
		}
	}
}

.v2-slider .v2-hs-item:first-child .v2-gallery-nav .v2-btn-big.--left,
.v2-slider .v2-hs-item:last-child .v2-gallery-nav .v2-btn-big.--right {
	opacity: 0.5;
	pointer-events: none;
}

.v2-gallery-nav.--only-mobile .v2-btn-big:disabled {
	opacity: 0.5;
	pointer-events: none;
	cursor: default;
}

.v2-scroll-auto {
	overflow: auto;
}

.v2-slide-cta {
	margin-top: 1.5rem;
	padding-bottom: 0.5rem;
}

.v2-slider .v2-scroll-auto h3,
.v2-popup-details ._content > h3 {
	font-size: clamp(1.2rem, 1.6vw, 1.7rem);
	line-height: 1.25;
	margin: 1.2em 0 0.6em;
}

.v2-popup-details ._content > ul {
	list-style: disc;
	padding-left: 1.5em;
	margin-bottom: 1.5em;
}

.v2-details-accordion details {
	border-top: 1px solid var(--color-border-light);
}
.v2-details-accordion details:last-child {
	border-bottom: 1px solid var(--color-border-light);
}
.v2-details-accordion summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 0;
	cursor: pointer;
	list-style: none;
}
.v2-details-accordion summary::-webkit-details-marker { display: none; }
.v2-details-accordion summary::marker { content: ''; }
.v2-popup .v2-details-accordion summary h4 {
	display: block;
	margin: 0;
	padding: 0;
	font-size: clamp(1.1rem, 1.6vw, 1.5rem);
	font-weight: 500;
	line-height: 1.3;
	text-transform: none;
}
.v2-accordion-toggle {
	position: relative;
	flex: 0 0 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	background: var(--color-light);
}
.v2-accordion-toggle::before,
.v2-accordion-toggle::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 25%;
	width: 50%;
	height: 1px;
	background: var(--color-popup);
}
.v2-accordion-toggle::after { transform: rotate(90deg); }
.v2-details-accordion details[open] .v2-accordion-toggle::after { transform: none; }
.v2-accordion-answer { padding: 0 3.6rem 1.5rem 0; }
.v2-popup .v2-accordion-answer p { margin: 0 0 1rem; }
.v2-accordion-answer ul { list-style: disc; padding-left: 1.5rem; }
.v2-details-accordion summary:focus-visible {
	outline: 2px solid var(--color-primary-button);
	outline-offset: 3px;
}
@media (max-width: 720px) {
	.v2-accordion-answer { padding-right: 0; }
}

/* For browsers that support `scrollbar-*` properties */
@supports (scrollbar-color: auto) {
  .v2-scroll-auto {
    scrollbar-color: #00000099 transparent;
		scrollbar-width: 5px;
  }
}

/* Otherwise, use `::-webkit-scrollbar-*` pseudo-elements */
@supports selector(::-webkit-scrollbar) {
  .v2-scroll-auto::-webkit-scrollbar {
    background: transparent;
		width: 5px;
		height: 5px;
  }
  .v2-scroll-auto::-webkit-scrollbar-thumb {
    background: #00000099;
  }
}

/* Project financing */
.v2-financing {
	min-height: 100vh;
	padding: 6rem 1rem 4rem;
	background: #fff;
	color: #151515;
	font-family: 'Open Sans', sans-serif;
}

.v2-financing-hero {
	min-height: 9rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 3rem;
	border-bottom: 1px solid #c9c6c3;
}

.v2-financing-hero h1 {
	min-width: 0;
	margin: 0;
	color: #77726f;
	font-size: 4.5rem;
	font-weight: 300;
	line-height: 0.95;
	letter-spacing: -0.035em;
	text-transform: uppercase;
	overflow-wrap: break-word;
	text-wrap: balance;
}

.v2-financing-tabs {
	flex: 0 0 auto;
	display: grid;
	grid-template-columns: repeat(3, auto);
	width: max-content;
	max-width: 100%;
	border: 1px solid var(--color-primary-button);
	border-radius: 10rem;
	overflow: hidden;
	color: #3b3938;
	font-size: 1rem;
	font-weight: 300;
	line-height: 1;
	white-space: nowrap;
}

.v2-financing-tabs a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 2.35rem;
	padding: 0.25rem 1rem;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
}

.v2-financing-tabs a + a {
	border-left: 1px solid var(--color-primary-button);
}

.v2-financing-tabs a.--active {
	background: var(--color-primary-button);
	color: #fff;
}

.v2-financing-grid {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 2rem) / 3);
	gap: 1rem;
	padding-top: 4rem;
	overflow-x: auto;
	scroll-snap-type: x proximity;
}

.v2-financing-card {
	min-width: 0;
	min-height: 42rem;
	display: flex;
	flex-direction: column;
	padding: 2.25rem 2rem 2rem;
	border: 1px solid #e5ded9;
	border-radius: 1rem;
	background: #fff;
	scroll-snap-align: start;
}

.v2-financing-card ._meta {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid #d7d2ce;
	color: #514f4e;
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.2;
}

.v2-financing-card h2 {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	margin: 1.45rem 0 0;
	font-size: 2rem;
	font-weight: 300;
	line-height: 1.15;
	letter-spacing: -0.025em;
}

.v2-financing-card h2 strong {
	font-weight: 700;
}

.v2-financing-card ._info {
	flex: 0 0 auto;
	width: 1.25rem;
	height: 1.25rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 0.45rem;
	padding: 0;
	border: 2px solid #8d8985;
	border-radius: 50%;
	background: transparent;
	color: #77736f;
	font: 700 0.75rem/1 'Open Sans', sans-serif;
	cursor: help;
}

.v2-financing-card ._schedule {
	margin: 0.7rem 0 0;
	color: var(--color-primary-button);
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.15;
	white-space: normal;
	overflow-wrap: anywhere;
}

.v2-financing-card ._spacer {
	flex: 1 1 4rem;
	min-height: 2.5rem;
}

.v2-financing-card dl,
.v2-financing-card dt,
.v2-financing-card dd {
	margin: 0;
}

.v2-financing-card dl {
	display: grid;
	gap: 1.85rem;
}

.v2-financing-card dt {
	color: #53504e;
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.3;
}

.v2-financing-card dd {
	margin-top: 0.2rem;
	color: #000;
	font-size: 2.25rem;
	font-weight: 300;
	line-height: 1.08;
	letter-spacing: -0.025em;
}

.v2-financing-card dd._discount {
	color: var(--color-primary-button);
	font-weight: 700;
}

.v2-financing-card ._stage {
	display: flex;
	align-items: center;
	gap: 0.9rem;
}

.v2-financing-card ._stage dt {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	white-space: nowrap;
}

.v2-financing-card ._stage ._info {
	margin-top: 0;
}

.v2-financing-card ._stage dd {
	margin: 0;
	font-size: 1rem;
	line-height: 1;
}

.v2-financing-card ._stage dd span,
.v2-financing-card ._stage dd a {
	display: inline-block;
	min-width: 10rem;
	padding: 0.48rem 1.15rem;
	border-radius: 10rem;
	background: var(--color-primary-button);
	color: #fff;
	font-size: 1rem;
	text-align: center;
	white-space: nowrap;
}

.v2-financing-card ._amount {
	margin: 1.2rem 0 1.3rem;
	padding-bottom: 1.3rem;
	border-bottom: 1px solid #e3dfdc;
	color: var(--color-primary-button);
	font-size: 2.5rem;
	font-weight: 300;
	line-height: 1.1;
}

.v2-financing-card:first-child ._amount {
	font-weight: 700;
}

.v2-financing-card ._choose {
	display: block;
	padding: 0.55rem 1rem;
	border: 2px solid var(--color-primary-button);
	border-radius: 10rem;
	color: #44413f;
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.1;
	text-align: center;
}

@media (max-width: 1100px) {
	.v2-financing-hero {
		min-height: 13rem;
		align-items: flex-start;
		flex-direction: column;
		justify-content: center;
		gap: 1.5rem;
	}

	.v2-financing-tabs {
		flex: 0 0 auto;
		width: max-content;
		align-self: flex-end;
	}

	.v2-financing-grid {
		grid-auto-columns: calc((100% - 1.5rem) / 2);
		gap: 1.5rem;
		padding-top: 3rem;
	}
}

@media (max-width: 720px) {
	.v2-financing {
		padding: 5rem 1rem 3rem;
	}

	.v2-financing-hero {
		min-height: 0;
		align-items: stretch;
		gap: 1.5rem;
		padding: 1.5rem 0;
	}

	.v2-financing-hero h1 {
		font-size: 3.5rem;
	}

	.v2-financing-tabs {
		width: 100%;
		align-self: stretch;
		grid-template-columns: 1fr;
		border-radius: 1.25rem;
		font-size: 1rem;
		white-space: normal;
	}

	.v2-financing-tabs a {
		min-height: 2.55rem;
	}

	.v2-financing-tabs a + a {
		border-top: 1px solid var(--color-primary-button);
		border-left: 0;
	}

	.v2-financing-grid {
		grid-auto-flow: row;
		grid-template-columns: 1fr;
		grid-auto-columns: auto;
		margin-right: 0;
		margin-left: 0;
		padding-top: 2rem;
		overflow-x: visible;
		scroll-snap-type: none;
	}

	.v2-financing-card {
		min-height: 43rem;
		padding: 1.5rem;
		border-radius: 1rem;
	}

	.v2-financing-card h2 {
		font-size: 2rem;
	}
}

#v2-financing-app[v-cloak] {
	display: none;
}

.v2-bank-calculator {
	padding-top: 3.5rem;
}

.v2-bank-calculator ._controls {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 3.5rem;
}

.v2-bank-calculator ._range-control {
	display: block;
	min-width: 0;
	color: #77726f;
}

.v2-bank-calculator ._range-heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	font-size: 1rem;
	line-height: 1.2;
}

.v2-bank-calculator ._range-heading strong,
.v2-bank-calculator ._range-heading output {
	font-weight: 700;
}

.v2-bank-calculator input[type="range"] {
	--range-progress: 0%;
	width: 100%;
	height: 3px;
	display: block;
	margin: 1.6rem 0 0;
	appearance: none;
	border: 0;
	border-radius: 0;
	background: linear-gradient(
		to right,
		var(--color-primary-button) 0,
		var(--color-primary-button) var(--range-progress),
		#77726f var(--range-progress),
		#77726f 100%
	);
	cursor: pointer;
}

.v2-bank-calculator input[type="range"]::-webkit-slider-thumb {
	width: 2.5rem;
	height: 1.65rem;
	appearance: none;
	border: 0;
	border-radius: 10rem;
	background: #77726f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 18'%3E%3Cpath d='m10 5-4 4 4 4M16 5l4 4-4 4' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 1.6rem auto no-repeat;
	box-shadow: 0 0 0 3px #fff;
	cursor: grab;
}

.v2-bank-calculator input[type="range"]::-moz-range-thumb {
	width: 2.5rem;
	height: 1.65rem;
	border: 0;
	border-radius: 10rem;
	background: #77726f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 18'%3E%3Cpath d='m10 5-4 4 4 4M16 5l4 4-4 4' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 1.6rem auto no-repeat;
	box-shadow: 0 0 0 3px #fff;
	cursor: grab;
}

.v2-bank-calculator input[type="range"]:focus-visible::-webkit-slider-thumb {
	outline: 2px solid var(--color-primary-button);
	outline-offset: 2px;
}

.v2-bank-calculator ._bank-partner {
	margin: 5.5rem 0 0;
	padding: 0 0 2.5rem;
	border-bottom: 1px solid #c9c6c3;
	color: #111;
}

.v2-bank-calculator ._bank-partner p {
	margin: 0;
	font-size: 2rem;
	font-weight: 300;
}

.v2-bank-calculator ._bank-partner small {
	display: block;
	margin-top: 0.35rem;
	font-size: 1.15rem;
	font-weight: 300;
	line-height: 1.35;
}

.v2-bank-calculator ._bank-result {
	width: min(100%, 30rem);
	display: grid;
	gap: 2rem;
	padding: 2.5rem 0 0;
}

.v2-bank-calculator ._bank-result > div {
	display: grid;
	gap: 0.4rem;
}

.v2-bank-calculator ._bank-result span {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	font-size: 1.1rem;
	font-weight: 300;
}

.v2-bank-calculator ._bank-result strong {
	font-size: 2.5rem;
	font-weight: 300;
	line-height: 1;
}

.v2-bank-calculator ._bank-result ._interest,
.v2-bank-calculator ._bank-result ._monthly-payment {
	color: var(--color-primary-button);
	font-weight: 700;
}

.v2-bank-calculator ._bank-result ._info {
	flex: 0 0 auto;
	width: 1.25rem;
	height: 1.25rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 2px solid #8d8985;
	border-radius: 50%;
	background: transparent;
	color: #77736f;
	font: 700 0.75rem/1 'Open Sans', sans-serif;
	cursor: help;
}

.v2-bank-calculator ._bank-result ._choose {
	display: block;
	margin-top: 0.5rem;
	padding: 0.55rem 1rem;
	border: 2px solid var(--color-primary-button);
	border-radius: 10rem;
	color: #44413f;
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.1;
	text-align: center;
}

.v2-specials-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	padding-top: 4rem;
}

.v2-special-card {
	min-width: 0;
	min-height: 32rem;
	display: flex;
	flex-direction: column;
	border: 1px solid #e5ded9;
	border-radius: 1rem;
	background: #fff;
	overflow: hidden;
	transition: border-color 180ms ease, transform 180ms ease;
}

.v2-special-card:hover {
	border-color: var(--color-primary-button);
	transform: translateY(-0.2rem);
}

.v2-special-card ._image {
	width: 100%;
	aspect-ratio: 16 / 10;
	background: #e5ded9;
	overflow: hidden;
}

.v2-special-card ._image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.v2-special-card h2 {
	margin: 0;
	padding: 1.5rem;
	font-size: 2rem;
	font-weight: 300;
	line-height: 1.15;
	letter-spacing: -0.025em;
	text-transform: uppercase;
}

.v2-special-card footer {
	margin: auto 1.5rem 0;
	padding: 1.5rem 0;
	border-top: 1px solid #e3dfdc;
	font-size: 1rem;
	font-weight: 300;
	text-align: right;
}

.v2-specials-grid > .v2-financing-placeholder {
	grid-column: 1 / -1;
}

.v2-financing-placeholder {
	min-height: 25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #77726f;
	font-size: 1.25rem;
	text-align: center;
}

@media (max-width: 1100px) {
	.v2-specials-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.5rem;
		padding-top: 3rem;
	}
}

@media (max-width: 720px) {
	.v2-specials-grid {
		grid-template-columns: 1fr;
		padding-top: 2rem;
	}

	.v2-special-card {
		min-height: 28rem;
	}

	.v2-special-card h2 {
		font-size: 1.75rem;
	}
}

/* Project news */
.v2-news {
	min-height: 100vh;
	padding: 10rem 4.2vw 5rem;
	background: #f7efe7;
	color: #1d1d1d;
	font-family: 'Open Sans', sans-serif;
}

.v2-news > h1 {
	max-width: 90rem;
	margin: 0 auto;
	font-size: clamp(2rem, 2.65vw, 3rem);
	font-weight: 300;
	line-height: 1.15;
	letter-spacing: -0.025em;
	text-transform: uppercase;
}

.v2-news-archive {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	max-width: 90rem;
	margin: 2.5rem auto 6rem;
}

.v2-news-archive ._select {
	position: relative;
	width: min(27rem, 100%);
	background: var(--background-gold);
}

.v2-news-archive ._select::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 1.25rem;
	width: 0;
	height: 0;
	border-left: 0.3rem solid transparent;
	border-right: 0.3rem solid transparent;
	border-top: 0.45rem solid #fff;
	transform: translateY(-35%);
	pointer-events: none;
}

.v2-news-archive select {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 3rem;
	padding: 0 3rem 0 1.4rem;
	border: 0;
	border-radius: 0;
	outline-offset: 3px;
	background: transparent;
	color: #fff;
	font: inherit;
	font-size: 1rem;
	font-weight: 500;
	appearance: none;
	cursor: pointer;
}

.v2-news-archive select option {
	background: #b89662;
	color: #fff;
}

.v2-news-article,
.v2-news-empty {
	max-width: 90rem;
	margin-right: auto;
	margin-left: auto;
}

.v2-news-gallery {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	margin-bottom: 3rem;
	background: #ded6cf;
	overflow: hidden;
}

.v2-news-gallery .swiper-wrapper,
.v2-news-gallery .swiper-slide,
.v2-news-gallery img,
.v2-news-gallery iframe {
	width: 100%;
	height: 100%;
}

.v2-news-gallery img {
	display: block;
	object-fit: cover;
}

.v2-news-gallery iframe {
	display: block;
	border: 0;
}

.v2-news-gallery .swiper-button-prev,
.v2-news-gallery .swiper-button-next {
	color: var(--color-gold);
}

.v2-news-gallery .v2-news-gallery-prev {
	left: 1.5rem;
}

.v2-news-gallery .v2-news-gallery-next {
	right: 1.5rem;
}

.v2-news-article time {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 1.25rem;
	font-weight: 300;
}

.v2-news-article h2 {
	margin: 0 0 1rem;
	font-size: clamp(1.65rem, 2.25vw, 2.5rem);
	font-weight: 300;
	line-height: 1.15;
	letter-spacing: -0.025em;
	text-transform: uppercase;
}

.v2-news.--special .v2-news-article h2 {
	margin-bottom: 0.5rem;
}

.v2-news.--special .v2-news-article time {
	margin-bottom: 2rem;
}

.v2-news-article ._contents {
	max-width: 78rem;
	font-size: clamp(1.05rem, 1.4vw, 1.45rem);
	font-weight: 300;
	line-height: 1.45;
}

.v2-news-empty {
	margin-top: 6rem;
	font-size: 1.25rem;
	font-weight: 300;
}

@media (max-width: 720px) {
	.v2-news {
		padding: 7rem 1rem 3rem;
	}

	.v2-news > h1 {
		font-size: 1.8rem;
	}

	.v2-news-archive {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.75rem;
		margin: 1.5rem 0 3rem;
	}

	.v2-news-archive ._select {
		width: 100%;
	}

	.v2-news-gallery {
		aspect-ratio: 4 / 3;
		margin-bottom: 1.75rem;
	}

	.v2-news-gallery .v2-news-gallery-prev {
		left: 0.75rem;
	}

	.v2-news-gallery .v2-news-gallery-next {
		right: 0.75rem;
	}

	.v2-news-article time {
		font-size: 1rem;
	}
}

@media (max-width: 900px) {
	.v2-bank-calculator ._controls {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}

	.v2-bank-calculator ._bank-partner {
		margin-top: 4rem;
	}
}

@media (max-width: 720px) {
	.v2-bank-calculator {
		padding-top: 2.5rem;
	}

	.v2-bank-calculator ._bank-partner {
		margin-right: 0;
		margin-left: 0;
		padding-right: 0;
		padding-left: 0;
	}

	.v2-bank-calculator ._bank-partner p {
		font-size: 1.6rem;
	}

	.v2-bank-calculator ._bank-partner small {
		font-size: 1rem;
	}

	.v2-bank-calculator ._bank-result {
		padding-right: 0;
		padding-left: 0;
	}
}

.finance-info {
    display: inline-flex;
    flex: 0 0 auto;
}

.finance-tooltip {
    position: fixed;
    z-index: 1000;
    box-sizing: border-box;
    padding: 0.8rem 1rem;
    border-radius: 0.5rem;
    background: #44413f;
    color: #fff;
    box-shadow: 0 4px 16px #0003;
    font: 400 0.9rem/1.5 'Open Sans', sans-serif;
    letter-spacing: normal;
    text-align: left;
    white-space: normal;
}

.v2-financing-card ._stage dd a:focus-visible,
.v2-financing-card ._info:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}
