/* ==========================================================================
   Single project banner
   ========================================================================== */

.project-banner {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
	background-color: #111111;
}

.project-banner__picture {
	display: block;
	width: 100%;
}

.project-banner__image {
	display: block;
	width: 100%;
	height: auto;
}

/* Prevent inherited image rules from adding gaps or radius */

.project-banner img {
	max-width: none;
	border-radius: 0;
}

/* Mobile */

@media (max-width: 767px) {
	.project-banner__image {
		width: 100%;
		height: auto;
	}
}
/* ==========================================================================
   Project overview section
   ========================================================================== */

.project-overview-section {
	--project-overview-gold: #bd8724;
	--project-overview-heading: #303030;
	--project-overview-text: #555555;

	position: relative;
	width: 100%;
	overflow: hidden;
	padding: clamp(60px, 7vw, 60px) 0;
	background-color: #ffffff;
}

.project-overview-section__container {
	width: min(calc(100% - 80px), 1760px);
	margin-inline: auto;
}

.project-overview-section__grid {
	display: grid;
	grid-template-columns:
		minmax(0, 0.82fr)
		minmax(0, 1.08fr);
	gap: clamp(55px, 6.5vw, 30px);
	align-items: center;
}

/* ==========================================================================
   Image
   ========================================================================== */

.project-overview-section__media {
	position: relative;
	min-width: 0;
	overflow: hidden;
}

.project-overview-section__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1.72 / 1;
	object-fit: cover;
	object-position: center;
	transition:
		transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* ==========================================================================
   Content
   ========================================================================== */

.project-overview-section__content {
	min-width: 0;
	max-width: 900px;
}

.project-overview-section__header {
	margin-bottom: 16px;
}

.project-overview-section__title {
	margin: 0;
	color: var(--project-overview-gold);
	font-size: clamp(30px, 3vw, 23px);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: 0.01em;
}

.project-overview-section__label {
	margin: 8px 0 0;
	color: var(--project-overview-gold);
	font-size: clamp(29px, 2.15vw, 18px);
	font-weight: 300;
	line-height: 1;
	letter-spacing: 0.02em;
}

.project-overview-section__text {
	max-width: 900px;
	color: var(--project-overview-text);
	font-size: clamp(17px, 1.25vw, 16px);
	font-weight: 400;
	line-height: 1.14;
	letter-spacing: 0.005em;
}

.project-overview-section__text p:last-child {
	margin-bottom: 0;
}

.project-overview-section__text ul,
.project-overview-section__text ol {
	margin: 0 0 25px;
	padding-left: 24px;
}

.project-overview-section__text a {
	color: var(--project-overview-gold);
}

/* ==========================================================================
   Brochure button
   ========================================================================== */

.project-overview-section__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 230px;
	margin-top: 15px;
	padding: 15px 20px;
	border: 1px solid var(--project-overview-gold);
	background-color: var(--project-overview-gold);
	color: #ffffff;
	font-size: clamp(18px, 1.25vw, 23px);
	font-weight: 400;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	transition:
		background-color 250ms ease,
		border-color 250ms ease,
		color 250ms ease,
		transform 250ms ease;
}

.project-overview-section__button:hover,
.project-overview-section__button:focus-visible {
	border-color: #9f701d;
	background-color: #9f701d;
	color: #ffffff;
	transform: translateY(-2px);
}

.project-overview-section__button:focus-visible {
	outline: 3px solid rgb(189 135 36 / 30%);
	outline-offset: 4px;
}

/* ==========================================================================
   Hover
   ========================================================================== */

@media (hover: hover) and (pointer: fine) {
	.project-overview-section__media:hover
	.project-overview-section__image {
		transform: scale(1.025);
	}
}

/* ==========================================================================
   Entrance-animation starting state
   Content remains visible when JavaScript is unavailable
   ========================================================================== */

.project-overview-section.is-overview-ready
[data-project-overview-reveal] {
	opacity: 0;
	filter: blur(3px);
}

.project-overview-section.is-overview-ready
.project-overview-section__media {
	transform: translate3d(-45px, 0, 0);
}

.project-overview-section.is-overview-ready
.project-overview-section__content {
	transform: translate3d(45px, 0, 0);
}

.project-overview-section.is-overview-visible
[data-project-overview-reveal] {
	opacity: 1;
	filter: none;
	transform: translate3d(0, 0, 0);
	transition:
		opacity 850ms ease,
		filter 700ms ease,
		transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-overview-section.is-overview-visible
.project-overview-section__content {
	transition-delay: 150ms;
}

/* ==========================================================================
   Smaller desktop
   ========================================================================== */

@media (max-width: 1200px) {
	.project-overview-section__container {
		width: min(calc(100% - 60px), 1160px);
	}

	.project-overview-section__grid {
		grid-template-columns:
			minmax(0, 0.9fr)
			minmax(0, 1.1fr);
		gap: 55px;
	}

	.project-overview-section__text {
		font-size: 17px;
	}

	.project-overview-section__button {
		min-width: 250px;
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 900px) {
	.project-overview-section {
		padding: 72px 0;
	}

	.project-overview-section__container {
		width: min(calc(100% - 44px), 760px);
	}

	.project-overview-section__grid {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.project-overview-section__content {
		max-width: none;
	}

	.project-overview-section__title {
		font-size: 28px;
	}

	.project-overview-section__label {
		font-size: 32px;
	}

	.project-overview-section__text {
		font-size: 17px;
		line-height: 1.4;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.project-overview-section {
		padding: 55px 0 60px;
	}

	.project-overview-section__container {
		width: calc(100% - 36px);
	}

	.project-overview-section__grid {
		gap: 34px;
	}

	.project-overview-section__image {
		aspect-ratio: 16 / 10;
	}

	.project-overview-section__title {
		font-size: clamp(28px, 10vw, 23px);
	}

	.project-overview-section__label {
		margin-top: 7px;
		font-size: clamp(27px, 8vw, 32px);
	}

	.project-overview-section__header {
		margin-bottom: 18px;
	}

	.project-overview-section__text {
		font-size: 16px;
		line-height: 1.5;
	}

	.project-overview-section__text p {
		margin-bottom: 20px;
	}

	.project-overview-section__button {
		width: 100%;
		min-width: 0;
		margin-top: 21px;
		padding: 16px 22px;
		font-size: 18px;
	}

	.project-overview-section.is-overview-ready
	.project-overview-section__media,
	.project-overview-section.is-overview-ready
	.project-overview-section__content {
		transform: translate3d(0, 30px, 0);
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.project-overview-section
	[data-project-overview-reveal] {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		transition: none !important;
	}

	.project-overview-section__image {
		transform: none !important;
		transition: none !important;
	}
}
/* ==========================================================================
   Project Details section
   ========================================================================== */

.project-details-section {
	--project-details-gold: #bd8724;
	--project-details-line: #cecece;
	--project-details-heading: #303030;
	--project-details-text: #555555;

	position: relative;
	width: 100%;
	overflow: hidden;
	padding: 108px 0 56px;
	background-color: #ffffff;
}

/* ==========================================================================
   Container
   ========================================================================== */

.project-details-section__container {
	position: relative;
	z-index: 2;
	width: min(calc(100% - 128px), 1760px);
	margin-inline: auto;
}

/* ==========================================================================
   Decorative lines
   ========================================================================== */

.project-details-section__line-layer {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.project-details-section__line {
	position: absolute;
	display: block;
	background-color: var(--project-details-line);
	opacity: 1;
	will-change: transform;
}

/*
 * Top horizontal line:
 * viewport left to the central divider.
 */

.project-details-section__line--top {
	top: 29px;
	left: 0;
	width: 50.7%;
	height: 3px;
	transform-origin: left center;
}

/*
 * Short vertical line:
 * starts from the top line and drops down.
 */

.project-details-section__line--top-drop {
	top: 29px;
	left: 11.1%;
	width: 3px;
	height: 63px;
	transform-origin: top center;
}

/*
 * Long centre divider:
 * begins at the top line and stops above the statistics.
 */

.project-details-section__line--divider {
	top: 29px;
	left: 50.7%;
	width: 3px;
	height: 311px;
	transform-origin: top center;
}

/* ==========================================================================
   Top two-column layout
   ========================================================================== */

.project-details-section__top {
	display: grid;
	grid-template-columns:
		minmax(0, 1.03fr)
		minmax(0, 0.87fr);
	column-gap: clamp(76px, 6vw, 112px);
	align-items: start;
}

.project-details-section__left {
	min-width: 0;
	padding-left: 5px;
}

.project-details-section__right {
	min-width: 0;
	padding-top: 1px;
}

/* ==========================================================================
   Project title
   ========================================================================== */

.project-details-section__title {
	margin: 0 0 13px;
	color: var(--project-details-gold);
	font-size: clamp(30px, 2.55vw, 30px);
	font-weight: 500;
	line-height: 1.05;
	letter-spacing: 0.005em;
}

/* ==========================================================================
   Introduction
   ========================================================================== */

.project-details-section__introduction {
	max-width: 770px;
	color: var(--project-details-text);
	font-size: clamp(17px, 1.08vw, 21px);
	font-weight: 400;
	line-height: 1.28;
}

.project-details-section__introduction p {
	margin: 0;
}

/* ==========================================================================
   Approval details
   ========================================================================== */

.project-details-section__meta {
	margin-top: 27px;
}

.project-details-section__meta p {
	margin: 0 0 7px;
	color: var(--project-details-text);
	font-size: clamp(16px, 1.02vw, 20px);
	font-weight: 400;
	line-height: 1.25;
}

.project-details-section__meta p:last-child {
	margin-bottom: 0;
}

.project-details-section__meta span {
	font-weight: 400;
}

/* ==========================================================================
   Statistic boxes
   ========================================================================== */

.project-details-section__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	width: 100%;
	margin-top: 35px;
	border: 3px solid var(--project-details-line);
	background-color: #ffffff;
}

.project-details-section__stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 105px;
	padding: 12px 16px;
	text-align: center;
}

.project-details-section__stat + .project-details-section__stat {
	border-left: 3px solid var(--project-details-line);
}

.project-details-section__stat-value {
	display: block;
	margin: 0;
	color: var(--project-details-gold);
	font-size: clamp(18px, 1.85vw, 24px);
	font-weight: 500;
	line-height: 1.05;
}

.project-details-section__stat-label {
	display: block;
	margin-top: 4px;
	color: #3f3f3f;
	font-size: clamp(16px, 1.04vw, 20px);
	font-weight: 400;
	line-height: 1.1;
}

/* ==========================================================================
   Video
   ========================================================================== */

.project-details-section__video {
	position: relative;
	width: 100%;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-top: 4px solid #111111;
	border-bottom: 4px solid #111111;
	background-color: #111111;
}

.project-details-section__video iframe {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ==========================================================================
   Key Features
   ========================================================================== */

.project-details-section__features {
	margin-top: 67px;
	padding-left: 5px;
}

.project-details-section__features-title {
	margin: 0 0 14px;
	color: var(--project-details-gold);
	font-size: clamp(30px, 2.55vw, 30px);
	font-weight: 500;
	line-height: 1.05;
	letter-spacing: 0.005em;
}

.project-details-section__features-content {
	max-width: 1690px;
	color: var(--project-details-text);
	font-size: clamp(16px, 1.03vw, 20px);
	font-weight: 400;
	line-height: 1.3;
}

.project-details-section__features-content p {
	margin: 0 0 16px;
}

.project-details-section__features-content p:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Entrance states
   ========================================================================== */

.project-details-section.is-project-details-ready
[data-project-details-reveal] {
	opacity: 0;
	filter: blur(3px);
}

.project-details-section.is-project-details-ready
[data-reveal-direction="left"] {
	transform: translate3d(-42px, 0, 0);
}

.project-details-section.is-project-details-ready
[data-reveal-direction="right"] {
	transform: translate3d(42px, 0, 0);
}

.project-details-section.is-project-details-ready
[data-reveal-direction="bottom"] {
	transform: translate3d(0, 34px, 0);
}

.project-details-section.is-project-details-visible
[data-project-details-reveal] {
	opacity: 1;
	filter: none;
	transform: translate3d(0, 0, 0);
	transition:
		opacity 850ms ease,
		filter 700ms ease,
		transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-details-section.is-project-details-visible
.project-details-section__right {
	transition-delay: 130ms;
}

.project-details-section.is-project-details-visible
.project-details-section__features {
	transition-delay: 280ms;
}

/* ==========================================================================
   Medium desktop
   ========================================================================== */

@media (max-width: 1400px) {
	.project-details-section {
		padding-top: 95px;
	}

	.project-details-section__container {
		width: min(calc(100% - 80px), 1280px);
	}

	.project-details-section__top {
		grid-template-columns:
			minmax(0, 1.02fr)
			minmax(0, 0.9fr);
		column-gap: 70px;
	}

	.project-details-section__line--divider {
		left: 51%;
	}

	.project-details-section__line--top {
		width: 51%;
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 980px) {
	.project-details-section {
		padding: 72px 0 65px;
	}

	.project-details-section__container {
		width: min(calc(100% - 46px), 820px);
	}

	.project-details-section__top {
		grid-template-columns: 1fr;
		row-gap: 44px;
	}

	.project-details-section__line--divider {
		display: none;
	}

	.project-details-section__right {
		padding-top: 0;
	}

	.project-details-section__features {
		margin-top: 58px;
		padding-left: 0;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.project-details-section {
		padding: 55px 0 60px;
	}

	.project-details-section__container {
		width: calc(100% - 36px);
	}

	.project-details-section__line-layer {
		display: none;
	}

	.project-details-section__title,
	.project-details-section__features-title {
		font-size: clamp(28px, 9vw, 28px);
	}

	.project-details-section__introduction,
	.project-details-section__meta p,
	.project-details-section__features-content {
		font-size: 16px;
		line-height: 1.5;
	}

	.project-details-section__stats {
		grid-template-columns: 1fr;
		border-width: 2px;
	}

	.project-details-section__stat {
		min-height: 88px;
	}

	.project-details-section__stat + .project-details-section__stat {
		border-top: 2px solid var(--project-details-line);
		border-left: 0;
	}

	.project-details-section__stat-value {
		font-size: 29px;
	}

	.project-details-section__stat-label {
		font-size: 17px;
	}

	.project-details-section__features {
		margin-top: 48px;
	}

	.project-details-section.is-project-details-ready
	[data-reveal-direction="left"],
	.project-details-section.is-project-details-ready
	[data-reveal-direction="right"],
	.project-details-section.is-project-details-ready
	[data-reveal-direction="bottom"] {
		transform: translate3d(0, 28px, 0);
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.project-details-section
	[data-project-details-reveal] {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		transition: none !important;
	}

	.project-details-section__line {
		transform: none !important;
		transition: none !important;
	}
}
/* ==========================================================================
   Project Highlights and Amenities
   ========================================================================== */

.project-features-section {
	--project-feature-gold: #bd8724;
	--project-feature-line: #cfcfcf;
	--project-feature-text: #292929;
	--project-feature-grey: #f1f1f1;

	position: relative;
	width: 100%;
	overflow: hidden;
}

/* ==========================================================================
   Shared container
   ========================================================================== */

.project-features-section__container {
	position: relative;
	z-index: 2;
	width: min(calc(100% - 128px), 1760px);
	margin-inline: auto;
}

/* ==========================================================================
   Shared decorative lines
   ========================================================================== */

.project-features-section__line-layer {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.project-features-section__line {
	position: absolute;
	display: block;
	width: 3px;
	background-color: var(--project-feature-line);
	transform-origin: top center;
	will-change: transform;
}

/*
 * This is one continuous vertical line through both panels.
 *
 * It begins inside the grey Highlights panel and continues into the white
 * Amenities panel, matching the reference.
 */

.project-features-section__line--shared-left {
	top: 39px;
	bottom: 63px;
	left: max(
		52px,
		calc((100vw - 1760px) / 2)
	);
}

/*
 * Short line at the lower-right side of the Amenities panel.
 */

.project-features-section__line--bottom-right {
    display: none !important;
	right: max(
		52px,
		calc((100vw - 1760px) / 2)
	);
	bottom: 0;
	height: 92px;
}

/* ==========================================================================
   Highlights panel
   ========================================================================== */

.project-features-section__highlights {
	position: relative;
	padding: 40px 0 44px;
	background-color: var(--project-feature-grey);
}

.project-features-section__highlights-grid {
	display: grid;
	grid-template-columns:
		minmax(0, 0.95fr)
		minmax(420px, 0.75fr);
	gap: clamp(70px, 8vw, 145px);
	align-items: center;
	padding-inline: 27px;
}

.project-features-section__highlights-content {
	min-width: 0;
}

.project-features-section__heading {
	margin: 0 0 31px;
	color: var(--project-feature-gold);
	font-size: clamp(30px, 1.7vw, 30px);
	font-weight: 600;
	line-height: 1.1;
}

.project-features-section__highlight-items {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 34px;
	row-gap: 31px;
}

.project-features-section__highlight-item {
	min-width: 0;
}

.project-features-section__highlight-icon {
	display: block;
	width: 82px;
	height: 80px;
	margin-bottom: 6px;
	object-fit: contain;
	object-position: left center;
}

.project-features-section__highlights-media {
	min-width: 0;
}

.project-features-section__highlights-image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1.52 / 1;
	object-fit: cover;
	object-position: center;
}

/* ==========================================================================
   Amenities panel
   ========================================================================== */

.project-features-section__amenities {
	position: relative;
	padding: 42px 0 52px;
	background-color: #ffffff;
}

.project-features-section__amenities-content {
	padding-inline: 27px;
}

.project-features-section__heading--amenities {
	margin-bottom: 33px;
}

.project-features-section__amenities-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	column-gap: clamp(32px, 4.5vw, 78px);
	row-gap: 31px;
}

.project-features-section__amenity-item {
	min-width: 0;
}

/* ==========================================================================
   Shared icon and text styles
   ========================================================================== */

.project-features-section__amenity-icon {
	display: block;
	width: 82px;
	height: 80px;
	margin-bottom: 7px;
	object-fit: contain;
	object-position: left center;
}

.project-features-section__item-title {
	max-width: 180px;
	margin: 0;
	color: var(--project-feature-text);
	font-size: clamp(16px, 0.86vw, 16px);
	font-weight: 600;
	line-height: 1.07;
}

/* ==========================================================================
   Entrance preparation
   ========================================================================== */

.project-features-section.is-project-features-ready
[data-project-features-reveal],
.project-features-section.is-project-features-ready
[data-project-feature-item] {
	opacity: 0;
	filter: blur(3px);
}

.project-features-section.is-project-features-ready
[data-reveal-direction="left"] {
	transform: translate3d(-40px, 0, 0);
}

.project-features-section.is-project-features-ready
[data-reveal-direction="right"] {
	transform: translate3d(40px, 0, 0);
}

.project-features-section.is-project-features-ready
[data-reveal-direction="bottom"],
.project-features-section.is-project-features-ready
[data-project-feature-item] {
	transform: translate3d(0, 26px, 0);
}

.project-features-section.is-project-features-visible
[data-project-features-reveal] {
	opacity: 1;
	filter: none;
	transform: translate3d(0, 0, 0);
	transition:
		opacity 850ms ease,
		filter 700ms ease,
		transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-features-section.is-project-features-visible
[data-project-feature-item] {
	opacity: 1;
	filter: none;
	transform: translate3d(0, 0, 0);
	transition:
		opacity 650ms ease,
		filter 550ms ease,
		transform 800ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* ==========================================================================
   Hover
   ========================================================================== */

@media (hover: hover) and (pointer: fine) {
	.project-features-section__highlight-icon,
	.project-features-section__amenity-icon {
		transition:
			transform 350ms cubic-bezier(0.22, 1, 0.36, 1);
	}

	.project-features-section__highlight-item:hover
	.project-features-section__highlight-icon,
	.project-features-section__amenity-item:hover
	.project-features-section__amenity-icon {
		transform: translateY(-4px) scale(1.05);
	}
}

/* ==========================================================================
   Medium desktop
   ========================================================================== */

@media (max-width: 1400px) {
	.project-features-section__container {
		width: min(calc(100% - 90px), 1280px);
	}

	.project-features-section__line--shared-left {
		left: 45px;
	}

	.project-features-section__line--bottom-right {
		right: 45px;
	}

	.project-features-section__highlights-grid {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(360px, 0.8fr);
		gap: 70px;
	}

	.project-features-section__amenities-grid {
		column-gap: 42px;
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1000px) {
	.project-features-section__container {
		width: min(calc(100% - 60px), 900px);
	}

	.project-features-section__line--shared-left {
		left: 30px;
	}

	.project-features-section__line--bottom-right {
		right: 30px;
	}

	.project-features-section__highlights-grid {
		grid-template-columns: 1fr;
		gap: 40px;
		padding-inline: 35px;
	}

	.project-features-section__highlights-media {
		max-width: 620px;
	}

	.project-features-section__amenities-content {
		padding-inline: 35px;
	}

	.project-features-section__amenities-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.project-features-section__container {
		width: calc(100% - 36px);
	}

	.project-features-section__line--shared-left {
		top: 34px;
		bottom: 34px;
		left: 0;
		width: 2px;
	}

	.project-features-section__line--bottom-right {
		display: none;
	}

	.project-features-section__highlights {
		padding: 45px 0 48px;
	}

	.project-features-section__highlights-grid {
		padding-inline: 22px 0;
	}

	.project-features-section__heading {
		margin-bottom: 29px;
		font-size: 27px;
	}

	.project-features-section__highlight-items {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 30px 24px;
	}

	.project-features-section__amenities {
		padding: 47px 0 50px;
	}

	.project-features-section__amenities-content {
		padding-inline: 22px 0;
	}

	.project-features-section__amenities-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 25px;
	}

	.project-features-section__highlight-icon,
	.project-features-section__amenity-icon {
		width: 48px;
		height: 48px;
	}

	.project-features-section__item-title {
		font-size: 14px;
		line-height: 1.2;
	}

	.project-features-section.is-project-features-ready
	[data-reveal-direction="left"],
	.project-features-section.is-project-features-ready
	[data-reveal-direction="right"],
	.project-features-section.is-project-features-ready
	[data-reveal-direction="bottom"] {
		transform: translate3d(0, 27px, 0);
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.project-features-section
	[data-project-features-reveal],
	.project-features-section
	[data-project-feature-item] {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		transition: none !important;
	}

	.project-features-section__line {
		transform: none !important;
		transition: none !important;
	}
}
/* ==========================================================================
   LOCATION HIGHLIGHTS — COMPLETE REPLACEMENT
   ========================================================================== */

.project-location-section {
	--location-gold: #bd8724;
	--location-line: #cccccc;
	--location-heading: #303030;
	--location-text: #555555;

	position: relative;
	width: 100%;
	overflow: hidden;
	padding: 145px 0 115px;
	background: #ffffff;
}

/* ==========================================================================
   Main container
   A large right gutter is reserved for the decorative grey line.
   ========================================================================== */

.project-location-section__container {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1920px;
	margin-inline: auto;
	padding-right: 190px;
	padding-left: 120px;
	box-sizing: border-box;
}

/* ==========================================================================
   Decorative lines
   ========================================================================== */

.project-location-section__line-layer {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;
	pointer-events: none;
}

.project-location-section__line {
	position: absolute;
	display: block;
	will-change: transform;
}

/* Gold line from viewport left */

.project-location-section__line--top-horizontal {
	top: 92px;
	left: 0;
	width: 48%;
	height: 3px;
	background: var(--location-gold);
	transform-origin: left center;
}

/* Gold drop before map */

.project-location-section__line--top-drop {
	top: 92px;
	left: 42.4%;
	width: 3px;
	height: 77px;
	background: var(--location-gold);
	transform-origin: top center;
}

/*
 * Right grey line.
 * Positioned inside the reserved 190px gutter.
 */

.project-location-section__line--right-vertical {
	top: 0;
	right: 88px;
	width: 3px;
	height: 475px;
	background: var(--location-line);
	transform-origin: top center;
}

.project-location-section__line--right-horizontal {
	top: 472px;
	right: 0;
	width: 88px;
	height: 3px;
	background: var(--location-line);
	transform-origin: right center;
}

/* ==========================================================================
   Two-column layout
   ========================================================================== */

.project-location-section__grid {
	display: grid;
	grid-template-columns:
		minmax(420px, 620px)
		minmax(0, 760px);
	gap: 68px;
	align-items: start;
	justify-content: start;
	max-width: 1450px;
}

/* Left side */

.project-location-section__content {
	min-width: 0;
	width: 100%;
}

/* Right map column */

.project-location-section__map {
	min-width: 0;
	width: 100%;
	max-width: 760px;
	margin: 0;
	padding: 0;
	justify-self: start;
	box-sizing: border-box;
}

/* ==========================================================================
   Heading
   ========================================================================== */

.project-location-section__heading {
	margin: 0 0 30px;
	color: var(--location-gold);
	font-size: clamp(30px, 3vw, 30px);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
}

/* ==========================================================================
   Accordion
   ========================================================================== */

.project-location-section__accordion {
	width: 100%;
	max-width: 620px;
}

.project-location-section__item {
	border-bottom: 1px solid #969696;
}

.project-location-section__item:last-child {
	border-bottom: 0;
}

.project-location-section__button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: 100%;
	min-height: 38px;
	/*padding: 10px 20px 10px 0;*/
	border: 0;
	background: transparent;
	color: var(--location-heading);
	font-family: inherit;
	text-align: left;
	cursor: pointer;
}

.project-location-section__button-title {
	font-size: clamp(20px, 1.65vw, 20px);
	font-weight: 600;
	line-height: 1.15;
}

.project-location-section__button-icon {
	display: inline-flex;
	flex: 0 0 27px;
	align-items: center;
	justify-content: center;
	width: 27px;
	height: 27px;
	color: var(--location-heading);
	font-size: 28px;
	font-weight: 600;
	line-height: 1;
	transition:
		color 250ms ease,
		transform 300ms ease;
}

.project-location-section__button[aria-expanded="true"]
.project-location-section__button-icon {
	color: var(--location-gold);
	transform: rotate(45deg);
}

.project-location-section__panel {
	overflow: hidden;
}

.project-location-section__panel-content {
	padding: 0 40px 20px 0;
	color: var(--location-text);
	font-size: 16px;
	line-height: 1.5;
}

.project-location-section__panel-content p {
	margin: 0 0 12px;
}

.project-location-section__panel-content p:last-child {
	margin-bottom: 0;
}

.project-location-section__panel-content ul,
.project-location-section__panel-content ol {
	margin: 0;
	padding-left: 21px;
}

/* ==========================================================================
   Google map
   ========================================================================== */

.project-location-section__map-embed {
	position: relative;
	display: block;
	width: 100%;
	max-width: 760px;
	overflow: hidden;
	aspect-ratio: 1.68 / 1;
	background: #eeeeee;
	box-sizing: border-box;
}

.project-location-section__map-embed iframe {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

/* Map image fallback */

.project-location-section__map-image {
	display: block;
	width: 100%;
	max-width: 760px;
	height: auto;
	aspect-ratio: 1.68 / 1;
	object-fit: cover;
	object-position: center;
}

/* ==========================================================================
   Entrance animation
   ========================================================================== */

.project-location-section.is-project-location-ready
[data-project-location-reveal] {
	opacity: 0;
	filter: blur(3px);
}

.project-location-section.is-project-location-ready
[data-reveal-direction="left"] {
	transform: translate3d(-45px, 0, 0);
}

.project-location-section.is-project-location-ready
[data-reveal-direction="right"] {
	transform: translate3d(45px, 0, 0);
}

.project-location-section.is-project-location-visible
[data-project-location-reveal] {
	opacity: 1;
	filter: none;
	transform: translate3d(0, 0, 0);
	transition:
		opacity 850ms ease,
		filter 700ms ease,
		transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-location-section.is-project-location-visible
.project-location-section__map {
	transition-delay: 140ms;
}

/* ==========================================================================
   Hover
   ========================================================================== */

@media (hover: hover) and (pointer: fine) {
	.project-location-section__button-title {
		transition: color 250ms ease;
	}

	.project-location-section__button:hover
	.project-location-section__button-title {
		color: var(--location-gold);
	}
}

/* ==========================================================================
   Desktop below 1650px
   ========================================================================== */

@media (max-width: 1650px) {
	.project-location-section__container {
		padding-right: 155px;
		padding-left: 80px;
	}

	.project-location-section__grid {
		grid-template-columns:
			minmax(390px, 530px)
			minmax(0, 680px);
		gap: 58px;
		max-width: 1268px;
	}

	.project-location-section__map,
	.project-location-section__map-embed,
	.project-location-section__map-image {
		max-width: 680px;
	}

	.project-location-section__line--right-vertical {
		right: 65px;
	}

	.project-location-section__line--right-horizontal {
		width: 65px;
	}
}

/* ==========================================================================
   Desktop below 1350px
   ========================================================================== */

@media (max-width: 1350px) {
	.project-location-section {
		padding-top: 125px;
	}

	.project-location-section__container {
		padding-right: 110px;
		padding-left: 55px;
	}

	.project-location-section__grid {
		grid-template-columns:
			minmax(340px, 430px)
			minmax(0, 560px);
		gap: 45px;
		max-width: 1035px;
	}

	.project-location-section__map,
	.project-location-section__map-embed,
	.project-location-section__map-image {
		max-width: 560px;
	}

	.project-location-section__accordion {
		max-width: 430px;
	}

	.project-location-section__heading {
		margin-bottom: 45px;
	}

	.project-location-section__button-title {
		font-size: 25px;
	}

	.project-location-section__line--right-vertical {
		right: 42px;
	}

	.project-location-section__line--right-horizontal {
		width: 42px;
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1000px) {
	.project-location-section {
		padding: 95px 0 80px;
	}

	.project-location-section__container {
		width: min(calc(100% - 60px), 880px);
		padding: 0;
	}

	.project-location-section__grid {
		grid-template-columns: 1fr;
		gap: 48px;
		max-width: none;
	}

	.project-location-section__accordion {
		max-width: none;
	}

	.project-location-section__map,
	.project-location-section__map-embed,
	.project-location-section__map-image {
		width: 100%;
		max-width: 720px;
	}

	.project-location-section__line--top-horizontal {
		top: 55px;
		width: 70%;
	}

	.project-location-section__line--top-drop {
		top: 55px;
		left: 64%;
		height: 54px;
	}

	.project-location-section__line--right-vertical,
	.project-location-section__line--right-horizontal {
		display: none;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.project-location-section {
		padding: 65px 0 60px;
	}

	.project-location-section__container {
		width: calc(100% - 36px);
	}

	.project-location-section__line-layer {
		display: none;
	}

	.project-location-section__heading {
		margin-bottom: 34px;
		font-size: clamp(28px, 10vw, 28pxpx);
	}

	.project-location-section__button {
		min-height: 55px;
		padding: 13px 4px 13px 0;
	}

	.project-location-section__button-title {
		font-size: 21px;
	}

	.project-location-section__button-icon {
		font-size: 25px;
	}

	.project-location-section__panel-content {
		padding-right: 10px;
		font-size: 15px;
	}

	.project-location-section__map,
	.project-location-section__map-embed,
	.project-location-section__map-image {
		width: 100%;
		max-width: none;
	}

	.project-location-section__map-embed,
	.project-location-section__map-image {
		aspect-ratio: 4 / 3;
	}

	.project-location-section.is-project-location-ready
	[data-reveal-direction="left"],
	.project-location-section.is-project-location-ready
	[data-reveal-direction="right"] {
		transform: translate3d(0, 28px, 0);
	}
}

/* ==========================================================================
   Small mobile
   ========================================================================== */

@media (max-width: 480px) {
	.project-location-section {
		padding: 55px 0;
	}

	.project-location-section__heading {
		font-size: 20px;
	}

	.project-location-section__button-title {
		font-size: 19px;
	}

	.project-location-section__map-embed,
	.project-location-section__map-image {
		aspect-ratio: 1 / 1;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.project-location-section
	[data-project-location-reveal] {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		transition: none !important;
	}

	.project-location-section__line {
		transform: none !important;
		transition: none !important;
	}
}
/* ==========================================================================
   Project Layout Plan
   ========================================================================== */

.project-layout-plan {
	--layout-plan-gold: #bd8724;
	--layout-plan-text: #ffffff;
	--layout-plan-gap: 26px;

	position: relative;
	width: 100%;
	overflow: hidden;
	padding: 0 0 66px;
	background-color: #ffffff;
}

/* ==========================================================================
   Heading and top line
   ========================================================================== */

.project-layout-plan__heading-row {
	position: relative;
	display: grid;
	grid-template-columns:
		minmax(0, 1fr)
		auto
		minmax(0, 1fr);
	align-items: center;
	column-gap: 75px;
	width: 100%;
	margin-bottom: 54px;
}

.project-layout-plan__heading {
	grid-column: 2;
	margin: 0;
	color: var(--layout-plan-gold);
	font-size: clamp(30px, 3vw, 30px);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
	white-space: nowrap;
}

.project-layout-plan__heading-line {
	grid-column: 3;
	display: block;
	width: 100%;
	height: 3px;
	background-color: var(--layout-plan-gold);
	transform-origin: left center;
	will-change: transform;
}

/* ==========================================================================
   Container
   ========================================================================== */

.project-layout-plan__container {
	width: min(calc(100% - 120px), 1700px);
	margin-inline: auto;
	text-align: center;
}

/* ==========================================================================
   Layout-plan image grid
   ========================================================================== */

.project-layout-plan__media {
	display: grid;
	align-items: stretch;
	width: 100%;
	margin: 0 auto;
	gap: var(--layout-plan-gap);
}

/*
 * One image: full section width.
 */

.project-layout-plan__media--1 {
	grid-template-columns: minmax(0, 1fr);
}

/*
 * Two images: equal 50/50 columns.
 */

.project-layout-plan__media--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/*
 * Three images: equal 33.33% columns.
 */

.project-layout-plan__media--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* ==========================================================================
   Individual layout-plan image
   ========================================================================== */

.project-layout-plan__item {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	background-color: #ffffff;
}

.project-layout-plan__image-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	background-color: #ffffff;
	cursor: zoom-in;
}

/*
 * One image keeps its natural ratio and displays completely.
 */

.project-layout-plan__media--1
.project-layout-plan__image {
	display: block;
	width: 100%;
	max-width: 1660px;
	height: auto;
	margin-inline: auto;
	object-fit: contain;
	object-position: center;
}

/*
 * Multiple images receive equal-height cards.
 */

.project-layout-plan__media--2
.project-layout-plan__item,
.project-layout-plan__media--3
.project-layout-plan__item {
	min-height: 480px;
}

.project-layout-plan__media--2
.project-layout-plan__image,
.project-layout-plan__media--3
.project-layout-plan__image {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 620px;
	object-fit: contain;
	object-position: center;
}

/* ==========================================================================
   Image hover
   ========================================================================== */

.project-layout-plan__image {
	transition:
		transform 500ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 350ms ease;
}

@media (hover: hover) and (pointer: fine) {
	.project-layout-plan__image-button:hover
	.project-layout-plan__image {
		filter: brightness(0.96);
		transform: scale(1.018);
	}
}

/* ==========================================================================
   Download button
   ========================================================================== */

.project-layout-plan__button-wrap {
	display: flex;
	justify-content: center;
	margin-top: 49px;
}

.project-layout-plan__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 250px;
	min-height: 50px;
	padding: 10px 20px;
	border: 1px solid var(--layout-plan-gold);
	background-color: var(--layout-plan-gold);
	color: var(--layout-plan-text);
	font-size: clamp(18px, 1.25vw, 24px);
	font-weight: 400;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	transition:
		background-color 250ms ease,
		border-color 250ms ease,
		color 250ms ease,
		transform 250ms ease;
}

.project-layout-plan__button:hover,
.project-layout-plan__button:focus-visible {
	border-color: #9c6d1c;
	background-color: #9c6d1c;
	color: #ffffff;
	transform: translateY(-2px);
}

.project-layout-plan__button:focus-visible {
	outline: 3px solid rgb(189 135 36 / 30%);
	outline-offset: 4px;
}

/* ==========================================================================
   Entrance animation
   ========================================================================== */

.project-layout-plan.is-layout-plan-ready
[data-layout-plan-reveal] {
	opacity: 0;
	filter: blur(3px);
	transform: translate3d(0, 34px, 0);
}

.project-layout-plan.is-layout-plan-ready
.project-layout-plan__heading {
	transform: translate3d(0, -24px, 0);
}

.project-layout-plan.is-layout-plan-visible
[data-layout-plan-reveal] {
	opacity: 1;
	filter: none;
	transform: translate3d(0, 0, 0);
	transition:
		opacity 850ms ease,
		filter 700ms ease,
		transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-layout-plan.is-layout-plan-visible
.project-layout-plan__media {
	transition-delay: 140ms;
}

.project-layout-plan.is-layout-plan-visible
.project-layout-plan__button-wrap {
	transition-delay: 280ms;
}

/* ==========================================================================
   Layout-plan lightbox
   ========================================================================== */

.project-layout-plan-lightbox[hidden] {
	display: none;
}

.project-layout-plan-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 65px 90px;
}

.project-layout-plan-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background-color: rgb(0 0 0 / 88%);
	cursor: zoom-out;
}

.project-layout-plan-lightbox__dialog {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(100%, 1700px);
	height: calc(100vh - 130px);
}

.project-layout-plan-lightbox__media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.project-layout-plan-lightbox__image {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: calc(100vh - 150px);
	object-fit: contain;
	background-color: #ffffff;
	box-shadow: 0 20px 65px rgb(0 0 0 / 42%);
}

.project-layout-plan-lightbox__close {
	position: fixed;
	top: 20px;
	right: 25px;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid rgb(255 255 255 / 45%);
	border-radius: 50%;
	background-color: rgb(0 0 0 / 35%);
	color: #ffffff;
	font-size: 39px;
	line-height: 1;
	cursor: pointer;
}

.project-layout-plan-lightbox__arrow {
	position: fixed;
	top: 50%;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	padding: 0;
	border: 1px solid rgb(255 255 255 / 42%);
	border-radius: 50%;
	background-color: rgb(0 0 0 / 32%);
	color: #ffffff;
	font-size: 38px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
}

.project-layout-plan-lightbox__arrow--previous {
	left: 24px;
}

.project-layout-plan-lightbox__arrow--next {
	right: 24px;
}

.project-layout-plan-lightbox__counter {
	position: fixed;
	bottom: 22px;
	left: 50%;
	z-index: 5;
	margin: 0;
	padding: 8px 15px;
	border-radius: 30px;
	background-color: rgb(0 0 0 / 48%);
	color: #ffffff;
	font-size: 15px;
	line-height: 1;
	transform: translateX(-50%);
}

body.project-layout-plan-lightbox-open {
	overflow: hidden;
}

/* ==========================================================================
   Large desktop
   ========================================================================== */

@media (max-width: 1600px) {
	.project-layout-plan__container {
		width: min(calc(100% - 100px), 1450px);
	}

	.project-layout-plan__heading-row {
		column-gap: 65px;
	}

	.project-layout-plan__media--1
	.project-layout-plan__image {
		max-width: 1420px;
	}

	.project-layout-plan__media--2
	.project-layout-plan__item,
	.project-layout-plan__media--3
	.project-layout-plan__item {
		min-height: 430px;
	}
}

/* ==========================================================================
   Medium desktop
   ========================================================================== */

@media (max-width: 1300px) {
	.project-layout-plan {
		padding-top: 45px;
	}

	.project-layout-plan__container {
		width: min(calc(100% - 80px), 1180px);
	}

	.project-layout-plan__heading-row {
		column-gap: 52px;
		margin-bottom: 48px;
	}

	.project-layout-plan__media {
		gap: 20px;
	}

	.project-layout-plan__media--1
	.project-layout-plan__image {
		max-width: 1150px;
	}

	.project-layout-plan__media--2
	.project-layout-plan__item,
	.project-layout-plan__media--3
	.project-layout-plan__item {
		min-height: 350px;
	}

	.project-layout-plan__button-wrap {
		margin-top: 42px;
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 900px) {
	.project-layout-plan {
		padding: 55px 0 62px;
	}

	.project-layout-plan__heading-row {
		grid-template-columns:
			30px
			auto
			minmax(0, 1fr);
		column-gap: 30px;
		margin-bottom: 43px;
	}

	.project-layout-plan__heading {
		grid-column: 2;
		font-size: 28px;
	}

	.project-layout-plan__heading-line {
		grid-column: 3;
	}

	.project-layout-plan__container {
		width: calc(100% - 44px);
	}

	.project-layout-plan__media--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.project-layout-plan__media--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.project-layout-plan__media--3
	.project-layout-plan__item:last-child {
		grid-column: 1 / -1;
		max-width: calc(50% - 10px);
		width: 100%;
		margin-inline: auto;
	}

	.project-layout-plan__media--2
	.project-layout-plan__item,
	.project-layout-plan__media--3
	.project-layout-plan__item {
		min-height: 330px;
	}

	.project-layout-plan-lightbox {
		padding: 60px 70px;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.project-layout-plan {
		padding: 48px 0 55px;
	}

	.project-layout-plan__heading-row {
		grid-template-columns:
			18px
			auto
			minmax(0, 1fr);
		column-gap: 20px;
		margin-bottom: 35px;
	}

	.project-layout-plan__heading {
		font-size: clamp(28px, 10vw, 28px);
		white-space: normal;
	}

	.project-layout-plan__heading-line {
		height: 2px;
	}

	.project-layout-plan__container {
		width: calc(100% - 32px);
		overflow: visible;
	}

	.project-layout-plan__media,
	.project-layout-plan__media--1,
	.project-layout-plan__media--2,
	.project-layout-plan__media--3 {
		grid-template-columns: 1fr;
		gap: 20px;
		min-width: 0;
	}

	.project-layout-plan__media--3
	.project-layout-plan__item:last-child {
		grid-column: auto;
		width: 100%;
		max-width: none;
	}

	.project-layout-plan__media--1
	.project-layout-plan__item,
	.project-layout-plan__media--2
	.project-layout-plan__item,
	.project-layout-plan__media--3
	.project-layout-plan__item {
		min-height: 0;
	}

	.project-layout-plan__media--1
	.project-layout-plan__image,
	.project-layout-plan__media--2
	.project-layout-plan__image,
	.project-layout-plan__media--3
	.project-layout-plan__image {
		width: 100%;
		height: auto;
		max-width: none;
		max-height: none;
		object-fit: contain;
	}

	.project-layout-plan__button-wrap {
		width: 100%;
		margin-top: 34px;
	}

	.project-layout-plan__button {
		width: 100%;
		min-width: 0;
		min-height: 55px;
		font-size: 18px;
	}

	.project-layout-plan-lightbox {
		padding: 70px 18px 65px;
	}

	.project-layout-plan-lightbox__close {
		top: 14px;
		right: 14px;
		width: 44px;
		height: 44px;
	}

	.project-layout-plan-lightbox__arrow {
		top: auto;
		bottom: 18px;
		width: 48px;
		height: 48px;
		transform: none;
	}

	.project-layout-plan-lightbox__arrow--previous {
		left: 18px;
	}

	.project-layout-plan-lightbox__arrow--next {
		right: 18px;
	}

	.project-layout-plan-lightbox__counter {
		bottom: 31px;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.project-layout-plan
	[data-layout-plan-reveal] {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		transition: none !important;
	}

	.project-layout-plan__heading-line,
	.project-layout-plan__image {
		transform: none !important;
		transition: none !important;
	}
}
/* ==========================================================================
   Project Content Highlights
   Complete replacement
   ========================================================================== */

.project-content-highlights {
	--content-highlight-gold: #bd8724;
	--content-highlight-text: #303030;
	--content-highlight-cream: #fffed6;

	position: relative;
	width: 100%;
	min-height: 0;
	overflow: hidden;
	background-color: var(--content-highlight-cream);
}

/* ==========================================================================
   Background image
   ========================================================================== */

.project-content-highlights__background {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
}

.project-content-highlights__background-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: left center;
}

/* ==========================================================================
   Gradient overlay
   ========================================================================== */

.project-content-highlights__overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	background:
		linear-gradient(
			90deg,
			rgb(255 254 214 / 0%) 0%,
			rgb(255 254 214 / 4%) 28%,
			rgb(255 254 214 / 48%) 43%,
			rgb(255 254 214 / 84%) 52%,
			rgb(255 254 214 / 98%) 63%,
			rgb(255 254 214 / 100%) 100%
		);
	pointer-events: none;
}

/* ==========================================================================
   Main container
   ========================================================================== */

.project-content-highlights__container {
	position: relative;
	z-index: 4;
	display: grid;
	grid-template-columns: 46% 54%;
	align-items: center;
	width: min(100%, 1920px);
	min-height: 0;
	margin-inline: auto;
	padding: 38px 0 34px;
	box-sizing: border-box;
}

/* ==========================================================================
   Logo area
   ========================================================================== */

.project-content-highlights__logo-wrap {
	display: flex;
	align-self: stretch;
	align-items: flex-end;
	min-width: 0;
	padding: 0 0 4px;
}

.project-content-highlights__logo {
	display: block;
	width: clamp(250px, 18vw, 370px);
	max-width: 90%;
	height: auto;
}

/* ==========================================================================
   Content area
   ========================================================================== */

.project-content-highlights__content {
	align-self: center;
	min-width: 0;
	max-width: 950px;
	padding: 8px 70px 8px 48px;
	box-sizing: border-box;
}

.project-content-highlights__heading {
	margin: 0 0 20px;
	color: var(--content-highlight-text);
	font-size: clamp(30px, 2.35vw, 30px);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.02em;
}

.project-content-highlights__text {
	color: var(--content-highlight-text);
	font-size: clamp(20px, 1.45vw, 28px);
	font-weight: 300;
	line-height: 1.35;
	letter-spacing: 0.002em;
}

.project-content-highlights__text p {
	margin: 0 0 22px;
}

.project-content-highlights__text p:last-child {
	margin-bottom: 0;
}

.project-content-highlights__text strong {
	font-weight: 700;
}

/* ==========================================================================
   Decorative lines
   ========================================================================== */

.project-content-highlights__lines {
	position: absolute;
	inset: 0;
	z-index: 3;
	pointer-events: none;
}

.project-content-highlights__line {
	position: absolute;
	display: block;
	background-color: var(--content-highlight-gold);
	will-change: transform;
}

/*
 * Horizontal line:
 * begins inside the image and joins the vertical line.
 */

.project-content-highlights__line--horizontal {
	top: 37%;
	left: 34.5%;
	width: 10.8%;
	height: 5px;
	transform-origin: left center;
}

/*
 * Vertical line:
 * begins above the horizontal line and continues to the bottom.
 */

.project-content-highlights__line--vertical {
	top: 24%;
	left: 45.2%;
	width: 5px;
	height: 76%;
	transform-origin: top center;
}

/* ==========================================================================
   Entrance animation
   ========================================================================== */

.project-content-highlights.is-content-highlights-ready
[data-content-highlight-reveal] {
	opacity: 0;
	filter: blur(3px);
}

.project-content-highlights.is-content-highlights-ready
[data-reveal-direction="left"] {
	transform: translate3d(-42px, 0, 0);
}

.project-content-highlights.is-content-highlights-ready
[data-reveal-direction="right"] {
	transform: translate3d(42px, 0, 0);
}

.project-content-highlights.is-content-highlights-visible
[data-content-highlight-reveal] {
	opacity: 1;
	filter: none;
	transform: translate3d(0, 0, 0);
	transition:
		opacity 850ms ease,
		filter 700ms ease,
		transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-content-highlights.is-content-highlights-visible
.project-content-highlights__content {
	transition-delay: 140ms;
}

/* ==========================================================================
   Large desktop
   ========================================================================== */

@media (max-width: 1600px) {
	.project-content-highlights__container {
		grid-template-columns: 45% 55%;
		padding: 36px 0 32px;
	}

	.project-content-highlights__content {
		padding: 8px 55px 8px 44px;
	}

	.project-content-highlights__text {
		font-size: 18px;
	}

	.project-content-highlights__text p {
		margin-bottom: 20px;
	}

	.project-content-highlights__line--horizontal {
		left: 34%;
		width: 10.5%;
	}

	.project-content-highlights__line--vertical {
		left: 44.5%;
	}
}

/* ==========================================================================
   Medium desktop
   ========================================================================== */

@media (max-width: 1300px) {
	.project-content-highlights__container {
		grid-template-columns: 44% 56%;
		padding: 32px 0 30px;
	}

	.project-content-highlights__content {
		padding: 8px 40px;
	}

	.project-content-highlights__heading {
		margin-bottom: 17px;
		font-size: 30px;
	}

	.project-content-highlights__text {
		font-size: 20px;
		line-height: 1.4;
	}

	.project-content-highlights__text p {
		margin-bottom: 17px;
	}

	.project-content-highlights__logo {
		width: 280px;
	}

	.project-content-highlights__line--horizontal {
		left: 32.5%;
		width: 11%;
	}

	.project-content-highlights__line--vertical {
		left: 43.5%;
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 900px) {
	.project-content-highlights {
		background-color: var(--content-highlight-cream);
	}

	.project-content-highlights__background {
		position: relative;
		height: 470px;
	}

	.project-content-highlights__background-image {
		object-position: center;
	}

	.project-content-highlights__overlay {
		background:
			linear-gradient(
				180deg,
				rgb(255 254 214 / 0%) 0%,
				rgb(255 254 214 / 10%) 42%,
				rgb(255 254 214 / 75%) 70%,
				rgb(255 254 214 / 100%) 100%
			);
	}

	.project-content-highlights__container {
		display: block;
		width: 100%;
		padding: 0;
	}

	.project-content-highlights__logo-wrap {
		position: absolute;
		top: 350px;
		left: 30px;
		z-index: 5;
		padding: 0;
	}

	.project-content-highlights__logo {
		width: 260px;
	}

	.project-content-highlights__content {
		max-width: none;
		padding: 50px 40px 48px;
		background-color: var(--content-highlight-cream);
	}

	.project-content-highlights__heading {
		font-size: 28px;
	}

	.project-content-highlights__text {
		font-size: 18px;
		line-height: 1.5;
	}

	.project-content-highlights__text p {
		margin-bottom: 20px;
	}

	.project-content-highlights__lines {
		display: none;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.project-content-highlights__background {
		height: 400px;
	}

	.project-content-highlights__logo-wrap {
		top: 305px;
		left: 20px;
	}

	.project-content-highlights__logo {
		width: 215px;
	}

	.project-content-highlights__content {
		padding: 43px 22px 42px;
	}

	.project-content-highlights__heading {
		margin-bottom: 18px;
		font-size: clamp(28px, 9vw, 28px);
	}

	.project-content-highlights__text {
		font-size: 17px;
		line-height: 1.5;
	}

	.project-content-highlights__text p {
		margin-bottom: 19px;
	}

	.project-content-highlights.is-content-highlights-ready
	[data-reveal-direction="left"],
	.project-content-highlights.is-content-highlights-ready
	[data-reveal-direction="right"] {
		transform: translate3d(0, 28px, 0);
	}
}

/* ==========================================================================
   Small mobile
   ========================================================================== */

@media (max-width: 480px) {
	.project-content-highlights__background {
		height: 350px;
	}

	.project-content-highlights__logo-wrap {
		top: 270px;
	}

	.project-content-highlights__logo {
		width: 185px;
	}

	.project-content-highlights__content {
		padding: 38px 18px;
	}

	.project-content-highlights__heading {
		font-size: 20px;
	}

	.project-content-highlights__text {
		font-size: 16px;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.project-content-highlights
	[data-content-highlight-reveal] {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		transition: none !important;
	}

	.project-content-highlights__line {
		transform: none !important;
		transition: none !important;
	}
}
/* ==========================================================================
   Project Image Gallery
   ========================================================================== */

.project-gallery-section {
	--gallery-gold: #bd8724;
	--gallery-line: #cccccc;
	--gallery-dot: #646464;
	--gallery-dot-inactive: #b7b7b7;
	--gallery-right-safe-space: 92px;

	position: relative;
	width: 100%;
	overflow: hidden;
	padding: 28px 0 82px;
	background-color: #ffffff;
}

/* ==========================================================================
   Heading
   ========================================================================== */

.project-gallery-section__heading-row {
	position: relative;
	z-index: 3;
	display: flex;
	justify-content: center;
	width: 100%;
	padding-inline: 80px;
}

.project-gallery-section__heading {
	margin: 0;
	color: var(--gallery-gold);
	font-size: clamp(30px, 3.2vw, 30px);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.025em;
	text-align: center;
}

/* ==========================================================================
   Decorative lines
   ========================================================================== */

.project-gallery-section__lines {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;
	pointer-events: none;
}

.project-gallery-section__line {
	position: absolute;
	display: block;
	background-color: var(--gallery-line);
	will-change: transform;
}

/*
 * Horizontal line begins after the heading and ends at the viewport edge.
 */

.project-gallery-section__line--horizontal {
	top: 63px;
	left: 61%;
	right: 0;
	height: 4px;
	transform-origin: left center;
}

/*
 * Vertical line is positioned inside the reserved right-side space.
 */

.project-gallery-section__line--vertical {
	top: 63px;
	right: 72px;
	width: 4px;
	height: 318px;
	transform-origin: top center;
}

/* ==========================================================================
   Main container
   ========================================================================== */

.project-gallery-section__container {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1920px;
	margin-inline: auto;
	padding-right: var(--gallery-right-safe-space);
	padding-left: 68px;
	box-sizing: border-box;
}

/* ==========================================================================
   Slider viewport
   ========================================================================== */

.project-gallery-section__viewport {
	width: 100%;
	margin-top: 76px;
	overflow: hidden;
}

.project-gallery-section__track {
	display: flex;
	gap: 42px;
	transform: translate3d(0, 0, 0);
	transition:
		transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.project-gallery-section__slide {
	flex: 0 0 calc((100% - 126px) / 4);
	min-width: 0;
	margin: 0;
}

.project-gallery-section__image-button {
	display: block;
	width: 100%;
	padding: 0;
	overflow: hidden;
	border: 0;
	background: transparent;
	cursor: zoom-in;
}

.project-gallery-section__image {
	display: block;
	width: 100%;
	aspect-ratio: 0.84 / 1;
	object-fit: cover;
	object-position: center;
	transition:
		transform 650ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 400ms ease;
}

@media (hover: hover) and (pointer: fine) {
	.project-gallery-section__image-button:hover
	.project-gallery-section__image {
		filter: brightness(0.92);
		transform: scale(1.035);
	}
}

/* ==========================================================================
   Controls
   ========================================================================== */

.project-gallery-section__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 13px;
	margin-top: 54px;
}

.project-gallery-section__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 45px;
	height: 42px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--gallery-gold);
	font-family: inherit;
	font-size: 48px;
	font-weight: 300;
	line-height: 1;
	cursor: pointer;
	transition:
		opacity 250ms ease,
		transform 250ms ease;
}

.project-gallery-section__arrow:hover {
	transform: scale(1.08);
}

.project-gallery-section__pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-width: 68px;
}

.project-gallery-section__dot {
	display: block;
	width: 16px;
	height: 16px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: var(--gallery-dot-inactive);
	cursor: pointer;
	transition:
		background-color 250ms ease,
		transform 250ms ease;
}

.project-gallery-section__dot.is-active {
	background-color: var(--gallery-dot);
	transform: scale(1.05);
}

/* ==========================================================================
   Entrance animation
   ========================================================================== */

.project-gallery-section.is-gallery-ready
[data-gallery-reveal] {
	opacity: 0;
	filter: blur(3px);
	transform: translate3d(0, 32px, 0);
}

.project-gallery-section.is-gallery-visible
[data-gallery-reveal] {
	opacity: 1;
	filter: none;
	transform: translate3d(0, 0, 0);
	transition:
		opacity 850ms ease,
		filter 700ms ease,
		transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-gallery-section.is-gallery-visible
.project-gallery-section__viewport {
	transition-delay: 120ms;
}

.project-gallery-section.is-gallery-visible
.project-gallery-section__controls {
	transition-delay: 260ms;
}

/* ==========================================================================
   Lightbox
   ========================================================================== */

.project-gallery-lightbox[hidden] {
	display: none;
}

.project-gallery-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 38px 85px;
}

.project-gallery-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background-color: rgb(0 0 0 / 86%);
	cursor: zoom-out;
}

.project-gallery-lightbox__dialog {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(100%, 1500px);
	height: min(90vh, 950px);
}

.project-gallery-lightbox__media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.project-gallery-lightbox__image {
	display: block;
	max-width: 100%;
	max-height: 88vh;
	width: auto;
	height: auto;
	object-fit: contain;
	box-shadow: 0 18px 60px rgb(0 0 0 / 40%);
}

.project-gallery-lightbox__close {
	position: fixed;
	top: 22px;
	right: 28px;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid rgb(255 255 255 / 45%);
	border-radius: 50%;
	background-color: rgb(0 0 0 / 30%);
	color: #ffffff;
	font-size: 40px;
	font-weight: 300;
	line-height: 1;
	cursor: pointer;
}

.project-gallery-lightbox__arrow {
	position: fixed;
	top: 50%;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	padding: 0;
	border: 1px solid rgb(255 255 255 / 40%);
	border-radius: 50%;
	background-color: rgb(0 0 0 / 28%);
	color: #ffffff;
	font-size: 40px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
}

.project-gallery-lightbox__arrow--previous {
	left: 24px;
}

.project-gallery-lightbox__arrow--next {
	right: 24px;
}

.project-gallery-lightbox__counter {
	position: fixed;
	bottom: 24px;
	left: 50%;
	z-index: 5;
	margin: 0;
	padding: 7px 14px;
	border-radius: 30px;
	background-color: rgb(0 0 0 / 42%);
	color: #ffffff;
	font-size: 15px;
	line-height: 1;
	transform: translateX(-50%);
}

body.project-gallery-lightbox-open {
	overflow: hidden;
}

/* ==========================================================================
   Large desktop
   ========================================================================== */

@media (max-width: 1600px) {
	.project-gallery-section {
		--gallery-right-safe-space: 84px;
	}

	.project-gallery-section__container {
		padding-left: 55px;
	}

	.project-gallery-section__track {
		gap: 34px;
	}

	.project-gallery-section__slide {
		flex-basis: calc((100% - 102px) / 4);
	}

	.project-gallery-section__line--vertical {
		right: 62px;
	}
}

/* ==========================================================================
   Medium desktop
   ========================================================================== */

@media (max-width: 1300px) {
	.project-gallery-section {
		--gallery-right-safe-space: 70px;
	}

	.project-gallery-section__container {
		padding-left: 45px;
	}

	.project-gallery-section__track {
		gap: 28px;
	}

	.project-gallery-section__slide {
		flex-basis: calc((100% - 84px) / 4);
	}

	.project-gallery-section__line--vertical {
		right: 48px;
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1000px) {
	.project-gallery-section {
		--gallery-right-safe-space: 45px;

		padding-bottom: 72px;
	}

	.project-gallery-section__container {
		padding-left: 30px;
	}

	.project-gallery-section__track {
		gap: 26px;
	}

	.project-gallery-section__slide {
		flex-basis: calc((100% - 26px) / 2);
	}

	.project-gallery-section__line--horizontal {
		left: 67%;
	}

	.project-gallery-section__line--vertical {
		right: 28px;
		height: 250px;
	}

	.project-gallery-lightbox {
		padding: 50px 75px;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.project-gallery-section {
		--gallery-right-safe-space: 0;

		padding: 48px 0 60px;
	}

	.project-gallery-section__heading-row {
		justify-content: flex-start;
		padding-inline: 18px;
	}

	.project-gallery-section__heading {
		font-size: clamp(28px, 10vw, 28px);
		text-align: left;
	}

	.project-gallery-section__lines {
		display: none;
	}

	.project-gallery-section__container {
		width: calc(100% - 36px);
		padding: 0;
	}

	.project-gallery-section__viewport {
		margin-top: 38px;
	}

	.project-gallery-section__track {
		gap: 18px;
	}

	.project-gallery-section__slide {
		flex-basis: 100%;
	}

	.project-gallery-section__controls {
		margin-top: 32px;
	}

	.project-gallery-section__arrow {
		width: 39px;
		height: 39px;
		font-size: 42px;
	}

	.project-gallery-section__dot {
		width: 13px;
		height: 13px;
	}

	.project-gallery-lightbox {
		padding: 70px 18px 60px;
	}

	.project-gallery-lightbox__close {
		top: 15px;
		right: 15px;
		width: 44px;
		height: 44px;
	}

	.project-gallery-lightbox__arrow {
		top: auto;
		bottom: 18px;
		width: 48px;
		height: 48px;
		transform: none;
	}

	.project-gallery-lightbox__arrow--previous {
		left: 18px;
	}

	.project-gallery-lightbox__arrow--next {
		right: 18px;
	}

	.project-gallery-lightbox__counter {
		bottom: 31px;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.project-gallery-section
	[data-gallery-reveal] {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		transition: none !important;
	}

	.project-gallery-section__line,
	.project-gallery-section__track,
	.project-gallery-section__image {
		transition: none !important;
	}
}