/* ==========================================================================
   Premium image-only homepage hero slider
   ========================================================================== */

.home-hero {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #111111;
	opacity: 0;
	transform: translateY(16px) scale(0.992);
}

.home-hero.is-ready {
	animation:
		hero-section-enter
		1000ms
		cubic-bezier(0.22, 1, 0.36, 1)
		both;
}

.home-hero__slider {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #111111;
}

.home-hero__viewport {
	position: relative;
	width: 100%;
	overflow: hidden;
	aspect-ratio: 1600 / 670;
	background: #111111;
}

.home-hero__track {
	display: flex;
	width: 100%;
	height: 100%;
	transform: translate3d(0, 0, 0);
	will-change: transform;
}

.home-hero__slide {
	position: relative;
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	min-width: 100%;
	overflow: hidden;
	background: #111111;
}

.home-hero__link,
.home-hero__picture {
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.home-hero__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1.045);
	filter: brightness(0.93);
	transition:
		transform 1400ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 900ms ease;
	will-change: transform;
}

.home-hero__slide.is-active .home-hero__image {
	transform: scale(1);
	filter: brightness(1);
}

/*
 * A soft premium light sweep that runs when a slide becomes active.
 */
.home-hero__shine {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: block;
	background:
		linear-gradient(
			110deg,
			transparent 0%,
			transparent 38%,
			rgb(255 255 255 / 13%) 49%,
			transparent 60%,
			transparent 100%
		);
	pointer-events: none;
	transform: translateX(-135%);
}

.home-hero__slide.is-active .home-hero__shine {
	animation:
		hero-light-sweep
		1250ms
		cubic-bezier(0.22, 1, 0.36, 1)
		120ms
		both;
}

/* ==========================================================================
   Controls
   ========================================================================== */

.home-hero__controls {
	position: absolute;
	right: clamp(24px, 2.5vw, 42px);
	bottom: clamp(20px, 2.6vw, 35px);
	z-index: 10;
	display: flex;
	align-items: center;
	gap: 8px;
	opacity: 0;
	transform: translateY(15px);
}

.home-hero.is-ready .home-hero__controls {
	animation:
		hero-controls-enter
		700ms
		cubic-bezier(0.22, 1, 0.36, 1)
		650ms
		both;
}

.home-hero__arrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 34px;
	padding: 0;
	overflow: hidden;
	border: 0;
	background: transparent;
	color: #c89a37;
	transition:
		color 250ms ease,
		transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-hero__arrow::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 999px;
	background: rgb(255 255 255 / 12%);
	opacity: 0;
	transform: scale(0.7);
	transition:
		opacity 250ms ease,
		transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-hero__arrow svg {
	position: relative;
	z-index: 1;
	display: block;
	width: 36px;
	height: auto;
	fill: none;
	stroke: currentColor;
	stroke-width: 3;
	stroke-linecap: square;
	stroke-linejoin: miter;
	transition:
		transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-hero__arrow:hover {
	color: #ffffff;
}

.home-hero__arrow:hover::before {
	opacity: 1;
	transform: scale(1);
}

.home-hero__arrow--previous:hover {
	transform: translateX(-3px);
}

.home-hero__arrow--previous:hover svg {
	transform: translateX(-3px);
}

.home-hero__arrow--next:hover {
	transform: translateX(3px);
}

.home-hero__arrow--next:hover svg {
	transform: translateX(3px);
}

.home-hero__arrow:active {
	transform: scale(0.94);
}

.home-hero__pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
}

.home-hero__pagination-button {
	position: relative;
	display: block;
	width: 13px;
	height: 13px;
	padding: 0;
	overflow: hidden;
	border: 2px solid #ffffff;
	border-radius: 50%;
	background: #ffffff;
	transform: scale(1);
	transition:
		width 300ms cubic-bezier(0.22, 1, 0.36, 1),
		border-radius 300ms ease,
		border-color 250ms ease,
		background-color 250ms ease,
		transform 250ms ease;
}

.home-hero__pagination-button:hover {
	transform: scale(1.14);
}

.home-hero__pagination-button.is-active {
	width: 28px;
	border-color: #c89a37;
	border-radius: 999px;
	background: #c89a37;
}

.home-hero__pagination-button:focus-visible,
.home-hero__arrow:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
}

/* ==========================================================================
   Entrance and slide animations
   ========================================================================== */

@keyframes hero-section-enter {
	0% {
		opacity: 0;
		transform: translateY(16px) scale(0.992);
		filter: blur(5px);
	}

	45% {
		opacity: 1;
		filter: blur(0);
	}

	100% {
		opacity: 1;
		transform: translateY(0) scale(1);
		filter: blur(0);
	}
}

@keyframes hero-controls-enter {
	from {
		opacity: 0;
		transform: translateY(15px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes hero-light-sweep {
	0% {
		opacity: 0;
		transform: translateX(-135%);
	}

	25% {
		opacity: 1;
	}

	100% {
		opacity: 0;
		transform: translateX(135%);
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1024px) {
	.home-hero__viewport {
		aspect-ratio: 16 / 7;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.home-hero__viewport {
		aspect-ratio: 4 / 5;
	}

	.home-hero__controls {
		right: 16px;
		bottom: 16px;
		gap: 6px;
	}

	.home-hero__arrow {
		width: 34px;
		height: 30px;
	}

	.home-hero__arrow svg {
		width: 29px;
	}

	.home-hero__pagination {
		gap: 6px;
	}

	.home-hero__pagination-button {
		width: 11px;
		height: 11px;
	}

	.home-hero__pagination-button.is-active {
		width: 23px;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.home-hero {
		opacity: 1;
		transform: none;
		animation: none !important;
	}

	.home-hero__controls {
		opacity: 1;
		transform: none;
		animation: none !important;
	}

	.home-hero__track,
	.home-hero__image,
	.home-hero__shine,
	.home-hero__arrow,
	.home-hero__arrow svg,
	.home-hero__pagination-button {
		animation: none !important;
		transition-duration: 0.01ms !important;
	}

	.home-hero__image {
		transform: scale(1);
		filter: none;
	}
}
/* ==========================================================================
   Homepage about section
   ========================================================================== */

.home-about {
	width: 100%;
	padding: 96px 0 10px;
	overflow: hidden;
	background: #ffffff;
}

.home-about__container {
	width: min(calc(100% - 80px), 1340px);
	margin-inline: auto;
}

.home-about__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
	align-items: center;
	gap: 46px;
}

/* ==========================================================================
   Image
   ========================================================================== */

.home-about__media {
	width: 100%;
	margin: 0;
	overflow: hidden;
	opacity: 0;
	transform: translate3d(-65px, 0, 0);
	transition:
		opacity 900ms ease,
		transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-about.is-visible .home-about__media {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.home-about__image-wrap {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #ece9e2;
}

.home-about__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 680 / 371;
	object-fit: cover;
	object-position: center;
	transform: scale(1.09);
	transition:
		transform 1500ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 600ms ease;
	will-change: transform;
}

.home-about.is-visible .home-about__image {
	transform: scale(1);
}

.home-about__image-wrap:hover .home-about__image {
	transform: scale(1.035);
	filter: saturate(1.05);
}

.home-about__image-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	background:
		linear-gradient(
			105deg,
			#ffffff 0%,
			#ffffff 45%,
			rgb(255 255 255 / 85%) 56%,
			rgb(255 255 255 / 0%) 75%
		);
	pointer-events: none;
	transform: translateX(0);
}

.home-about.is-visible .home-about__image-overlay {
	animation:
		home-about-image-reveal
		1150ms
		cubic-bezier(0.22, 1, 0.36, 1)
		100ms
		both;
}

/* ==========================================================================
   Content
   ========================================================================== */

.home-about__content {
	min-width: 0;
	padding: 8px 0 0;
}

.home-about__eyebrow,
.home-about__title,
.home-about__description,
.home-about__button {
	opacity: 0;
	transform: translate3d(45px, 22px, 0);
	filter: blur(5px);
	transition:
		opacity 750ms ease,
		transform 850ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 650ms ease;
}

.home-about.is-visible .home-about__eyebrow,
.home-about.is-visible .home-about__title,
.home-about.is-visible .home-about__description,
.home-about.is-visible .home-about__button {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	filter: blur(0);
}

.home-about.is-visible .home-about__eyebrow {
	transition-delay: 180ms;
}

.home-about.is-visible .home-about__title {
	transition-delay: 290ms;
}

.home-about.is-visible .home-about__description {
	transition-delay: 400ms;
}

.home-about.is-visible .home-about__button {
	transition-delay: 510ms;
}

.home-about__eyebrow {
	position: relative;
	margin: 0 0 10px;
	padding-left: 0;
	color: #363636;
	font-size: 25px;
	font-weight: 700;
	line-height: 1.15;
	text-transform: uppercase;
}

.home-about__eyebrow::after {
	content: "";
	display: block;
	width: 58px;
	height: 2px;
	margin-top: 9px;
	background: #c19438;
	transform: scaleX(0);
	transform-origin: left center;
	transition:
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-about.is-visible .home-about__eyebrow::after {
	transform: scaleX(1);
	transition-delay: 650ms;
}

.home-about__title {
	max-width: 650px;
	margin: 0 0 18px;
	color: #343434;
	font-size: 23px;
	font-weight: 600;
	line-height: 1.15;
}

.home-about__description {
	max-width: 760px;
	margin: 0 0 28px;
	color: #565656;
	font-size: 16px;
	font-weight: 300;
	line-height: 1.3;
}

/* ==========================================================================
   Premium button
   ========================================================================== */

.home-about__button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 11px;
	min-width: 170px;
	min-height: 50px;
	padding: 12px 22px;
	overflow: hidden;
	border: 1px solid #c19438;
	background: #c19438;
	color: #ffffff;
	font-size: 18px;
	font-weight: 400;
	line-height: 1;
	text-align: center;
	isolation: isolate;
	transition:
		opacity 750ms ease,
		transform 850ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 650ms ease,
		border-color 300ms ease,
		box-shadow 300ms ease,
		color 300ms ease;
}

.home-about__button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: #006738;
	transform: scaleX(0);
	transform-origin: left center;
	transition:
		transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-about__button::after {
	content: "";
	position: absolute;
	top: 0;
	left: -120%;
	width: 55%;
	height: 100%;
	z-index: -1;
	background:
		linear-gradient(
			90deg,
			transparent,
			rgb(255 255 255 / 22%),
			transparent
		);
	transform: skewX(-20deg);
	transition: left 600ms ease;
}

.home-about__button-text,
.home-about__button-arrow {
	position: relative;
	z-index: 1;
}

.home-about__button-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 0;
	overflow: hidden;
	opacity: 0;
	transform: translateX(-6px);
	transition:
		width 350ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 250ms ease,
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-about__button-arrow svg {
	display: block;
	width: 26px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.home-about__button:hover {
	border-color: #006738;
	color: #ffffff;
	box-shadow: 0 14px 30px rgb(0 103 56 / 20%);
	transform: translate3d(0, -3px, 0);
}

.home-about__button:hover::before {
	transform: scaleX(1);
}

.home-about__button:hover::after {
	left: 150%;
}

.home-about__button:hover .home-about__button-arrow {
	width: 26px;
	opacity: 1;
	transform: translateX(0);
}

.home-about__button:active {
	transform: translate3d(0, -1px, 0);
}

.home-about__button:focus-visible {
	outline: 3px solid rgb(193 148 56 / 35%);
	outline-offset: 4px;
}

/* ==========================================================================
   Animations
   ========================================================================== */

@keyframes home-about-image-reveal {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(110%);
	}
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1200px) {
	.home-about {
		padding-top: 75px;
	}

	.home-about__container {
		width: min(calc(100% - 50px), 1340px);
	}

	.home-about__grid {
		gap: 36px;
	}

	.home-about__eyebrow {
		font-size: 22px;
	}

	.home-about__title {
		font-size: 21px;
	}

	.home-about__description {
		font-size: 15px;
		line-height: 1.35;
	}
}

@media (max-width: 900px) {
	.home-about__grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.home-about__content {
		padding-top: 0;
	}

	.home-about__media {
		transform: translate3d(0, 45px, 0);
	}

	.home-about__eyebrow,
	.home-about__title,
	.home-about__description,
	.home-about__button {
		transform: translate3d(0, 32px, 0);
	}
}

@media (max-width: 767px) {
	.home-about {
		padding: 48px 0 0;
	}

	.home-about__container {
		width: calc(100% - 36px);
	}

	.home-about__grid {
		gap: 24px;
	}

	.home-about__image {
		aspect-ratio: 4 / 3;
	}

	.home-about__eyebrow {
		margin-bottom: 8px;
		font-size: 20px;
	}

	.home-about__eyebrow::after {
		width: 45px;
		margin-top: 7px;
	}

	.home-about__title {
		margin-bottom: 15px;
		font-size: 19px;
		line-height: 1.25;
	}

	.home-about__description {
		margin-bottom: 23px;
		font-size: 15px;
		line-height: 1.45;
	}

	.home-about__button {
		min-width: 150px;
		min-height: 46px;
		font-size: 16px;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.home-about__media,
	.home-about__eyebrow,
	.home-about__title,
	.home-about__description,
	.home-about__button {
		opacity: 1;
		transform: none;
		filter: none;
		transition: none;
	}

	.home-about__image {
		transform: none;
		transition: none;
	}

	.home-about__image-overlay {
		display: none;
	}

	.home-about__eyebrow::after {
		transform: scaleX(1);
		transition: none;
	}
}
/* ==========================================================================
   Homepage statistics
   ========================================================================== */

.home-statistics {
	width: 100%;
	padding: 22px 0 18px;
	background: #ffffff;
}

.home-statistics__container {
	width: min(calc(100% - 80px), 1350px);
	margin-inline: auto;
	border: 1px solid #c5922f;
}

.home-statistics__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: center;
	min-height: 156px;
}

.home-statistics__item {
	min-width: 0;
	padding: 24px 20px 21px;
	text-align: center;
}

.home-statistics__number {
	display: flex;
	align-items: baseline;
	justify-content: center;
	margin: 0 0 4px;
	color: #c08c27;
	font-size: clamp(38px, 4vw, 38px);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1;
}

.home-statistics__counter,
.home-statistics__suffix {
	display: inline-block;
}

.home-statistics__label {
	margin: 0;
	color: #4d4d4d;
	font-size: clamp(18px, 1.7vw, 24px);
	font-weight: 300;
	line-height: 1.25;
}

/* Responsive */

@media (max-width: 1024px) {
	.home-statistics__container {
		width: min(calc(100% - 50px), 1350px);
	}

	.home-statistics__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home-statistics__item {
		padding: 28px 20px;
	}

	.home-statistics__item:nth-child(odd) {
		border-right: 1px solid rgb(192 140 39 / 25%);
	}

	.home-statistics__item:nth-child(-n + 2) {
		border-bottom: 1px solid rgb(192 140 39 / 25%);
	}
}

@media (max-width: 600px) {
	.home-statistics {
		padding: 20px 0;
	}

	.home-statistics__container {
		width: calc(100% - 36px);
	}

	.home-statistics__grid {
		grid-template-columns: 1fr;
	}

	.home-statistics__item {
		padding: 22px 15px;
		border-right: 0 !important;
		border-bottom: 1px solid rgb(192 140 39 / 25%);
	}

	.home-statistics__item:last-child {
		border-bottom: 0;
	}

	.home-statistics__number {
		font-size: 42px;
	}

	.home-statistics__label {
		font-size: 18px;
	}
}
/* ==========================================================================
   Homepage philosophy tabs
   ========================================================================== */

.home-philosophy {
	width: 100%;
	padding: 66px 0 92px;
	overflow: hidden;
	background: #ffffff;
}

.home-philosophy__container {
	width: min(calc(100% - 80px), 1340px);
	margin-inline: auto;
}

.home-philosophy__layout {
	display: grid;
	grid-template-columns: 41% 59%;
	min-height: 452px;
	overflow: hidden;
	background: #f3eee9;
	box-shadow: 0 24px 60px rgb(69 56 37 / 8%);
}

/* ==========================================================================
   Left navigation
   ========================================================================== */

.home-philosophy__navigation {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: 66px 86px 60px 78px;
	opacity: 0;
	transform: translate3d(-55px, 0, 0);
	transition:
		opacity 850ms ease,
		transform 950ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-philosophy.is-visible .home-philosophy__navigation {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.home-philosophy__heading {
	position: relative;
	margin: 0 0 52px;
	color: #353535;
	font-size: 27px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	opacity: 0;
	transform: translateY(20px);
	transition:
		opacity 700ms ease 180ms,
		transform 800ms cubic-bezier(0.22, 1, 0.36, 1) 180ms;
}

.home-philosophy.is-visible .home-philosophy__heading {
	opacity: 1;
	transform: translateY(0);
}

.home-philosophy__heading::after {
	content: "";
	display: block;
	width: 62px;
	height: 2px;
	margin-top: 12px;
	background: #c49333;
	transform: scaleX(0);
	transform-origin: left center;
	transition:
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1) 520ms;
}

.home-philosophy.is-visible .home-philosophy__heading::after {
	transform: scaleX(1);
}

.home-philosophy__tabs {
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

.home-philosophy__tab {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 12px 0 13px;
	overflow: hidden;
	border: 0;
	background: transparent;
	color: #4c4c4c;
	font-size: 20px;
	font-weight: 300;
	line-height: 1.2;
	text-align: left;
	opacity: 0;
	transform: translate3d(-25px, 12px, 0);
	transition:
		color 250ms ease,
		font-weight 250ms ease,
		padding-left 350ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 650ms ease,
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay:
		0ms,
		0ms,
		0ms,
		calc(290ms + (var(--tab-index) * 90ms)),
		calc(290ms + (var(--tab-index) * 90ms));
}

.home-philosophy.is-visible .home-philosophy__tab {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.home-philosophy__tab::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 4px;
	height: 0;
	background: #c49333;
	transform: translateY(-50%);
	transition:
		height 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-philosophy__tab::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 2px;
	background: #c49333;
	transform: scaleX(0);
	transform-origin: left center;
	transition:
		transform 380ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-philosophy__tab-label {
	position: relative;
	z-index: 1;
}

.home-philosophy__tab-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 0;
	overflow: hidden;
	opacity: 0;
	color: #c49333;
	transform: translateX(-8px);
	transition:
		width 350ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 250ms ease,
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-philosophy__tab-arrow svg {
	display: block;
	width: 26px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.home-philosophy__tab:hover {
	padding-left: 15px;
	color: #222222;
}

.home-philosophy__tab:hover::before {
	height: 60%;
}

.home-philosophy__tab:hover .home-philosophy__tab-arrow {
	width: 26px;
	opacity: 1;
	transform: translateX(0);
}

.home-philosophy__tab.is-active {
	padding-left: 15px;
	color: #353535;
	font-weight: 600;
}

.home-philosophy__tab.is-active::before {
	height: 60%;
}

.home-philosophy__tab.is-active::after {
	transform: scaleX(1);
}

.home-philosophy__tab.is-active .home-philosophy__tab-arrow {
	width: 26px;
	opacity: 1;
	transform: translateX(0);
}

.home-philosophy__tab:focus-visible {
	outline: 2px solid #c49333;
	outline-offset: 5px;
}

/* ==========================================================================
   Right content
   ========================================================================== */

.home-philosophy__content {
	position: relative;
	min-width: 0;
	min-height: 452px;
	overflow: hidden;
	opacity: 0;
	transform: translate3d(60px, 0, 0) scale(0.985);
	transition:
		opacity 900ms ease 120ms,
		transform 1000ms cubic-bezier(0.22, 1, 0.36, 1) 120ms;
}

.home-philosophy.is-visible .home-philosophy__content {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}

.home-philosophy__panel {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: scale(1.035);
	transition:
		opacity 550ms ease,
		visibility 550ms ease,
		transform 850ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-philosophy__panel.is-active {
	position: relative;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: scale(1);
}

.home-philosophy__media {
	position: relative;
	width: 100%;
	height: 100%;
	margin: 0;
	overflow: hidden;
	background: #d9d4cd;
}

.home-philosophy__image {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 452px;
	object-fit: cover;
	object-position: center;
	transform: scale(1.08);
	filter: brightness(0.94);
	transition:
		transform 1300ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 750ms ease;
	will-change: transform;
}

.home-philosophy__panel.is-active .home-philosophy__image {
	transform: scale(1);
	filter: brightness(1);
}

.home-philosophy__media:hover .home-philosophy__image {
	transform: scale(1.035);
	filter: brightness(1.02) saturate(1.04);
}

.home-philosophy__image-shine {
	position: absolute;
	inset: 0;
	z-index: 2;
	background:
		linear-gradient(
			110deg,
			transparent 0%,
			transparent 38%,
			rgb(255 255 255 / 17%) 50%,
			transparent 62%,
			transparent 100%
		);
	pointer-events: none;
	transform: translateX(-140%);
}

.home-philosophy__panel.is-active .home-philosophy__image-shine {
	animation:
		philosophy-image-shine
		1100ms
		cubic-bezier(0.22, 1, 0.36, 1)
		120ms
		both;
}

.home-philosophy__description {
	position: absolute;
	right: 28px;
	bottom: 22px;
	z-index: 3;
	width: min(48%, 390px);
	margin: 0;
	padding: 14px 20px 16px;
	border: 1px solid rgb(255 255 255 / 40%);
	border-radius: 14px;
	background: rgb(255 255 255 / 76%);
	box-shadow: 0 16px 38px rgb(0 0 0 / 12%);
	color: #555555;
	font-size: 16px;
	font-weight: 300;
	line-height: 1.35;
	opacity: 0;
	transform: translate3d(0, 24px, 0);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	transition:
		opacity 650ms ease 280ms,
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1) 280ms,
		background-color 300ms ease,
		box-shadow 300ms ease;
}

.home-philosophy__panel.is-active .home-philosophy__description {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.home-philosophy__description:hover {
	background: rgb(255 255 255 / 88%);
	box-shadow: 0 20px 46px rgb(0 0 0 / 16%);
}

/* ==========================================================================
   Animation
   ========================================================================== */

@keyframes philosophy-image-shine {
	0% {
		opacity: 0;
		transform: translateX(-140%);
	}

	25% {
		opacity: 1;
	}

	100% {
		opacity: 0;
		transform: translateX(140%);
	}
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1200px) {
	.home-philosophy__container {
		width: min(calc(100% - 50px), 1340px);
	}

	.home-philosophy__navigation {
		padding: 55px 55px 50px;
	}

	.home-philosophy__heading {
		margin-bottom: 38px;
		font-size: 24px;
	}

	.home-philosophy__tab {
		font-size: 21px;
	}

	.home-philosophy__description {
		width: min(55%, 370px);
		font-size: 15px;
	}
}

@media (max-width: 900px) {
	.home-philosophy {
		padding: 55px 0 70px;
	}

	.home-philosophy__layout {
		grid-template-columns: 1fr;
	}

	.home-philosophy__navigation {
		padding: 42px 36px 35px;
		transform: translate3d(0, 40px, 0);
	}

	.home-philosophy__heading {
		margin-bottom: 27px;
	}

	.home-philosophy__tabs {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px 25px;
	}

	.home-philosophy__tab {
		font-size: 18px;
	}

	.home-philosophy__content {
		min-height: 430px;
		transform: translate3d(0, 45px, 0);
	}

	.home-philosophy__image {
		min-height: 430px;
	}
}

@media (max-width: 767px) {
	.home-philosophy {
		padding: 45px 0 55px;
	}

	.home-philosophy__container {
		width: calc(100% - 36px);
	}

	.home-philosophy__layout {
		min-height: auto;
	}

	.home-philosophy__navigation {
		padding: 34px 24px 28px;
	}

	.home-philosophy__heading {
		margin-bottom: 22px;
		font-size: 21px;
	}

	.home-philosophy__heading::after {
		width: 48px;
		margin-top: 9px;
	}

	.home-philosophy__tabs {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.home-philosophy__tab {
		padding: 11px 0 12px;
		font-size: 18px;
	}

	.home-philosophy__tab:hover,
	.home-philosophy__tab.is-active {
		padding-left: 12px;
	}

	.home-philosophy__content {
		min-height: 360px;
	}

	.home-philosophy__image {
		min-height: 360px;
	}

	.home-philosophy__description {
		right: 14px;
		bottom: 14px;
		left: 14px;
		width: auto;
		padding: 12px 14px;
		border-radius: 10px;
		font-size: 14px;
		line-height: 1.4;
	}
}

@media (max-width: 480px) {
	.home-philosophy__content,
	.home-philosophy__image {
		min-height: 320px;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.home-philosophy__navigation,
	.home-philosophy__heading,
	.home-philosophy__tab,
	.home-philosophy__content,
	.home-philosophy__panel,
	.home-philosophy__image,
	.home-philosophy__description {
		opacity: 1;
		transform: none;
		transition: none;
		filter: none;
	}

	.home-philosophy__heading::after,
	.home-philosophy__tab.is-active::after {
		transform: scaleX(1);
		transition: none;
	}

	.home-philosophy__image-shine {
		display: none;
	}
}
/* ==========================================================================
   Premium leadership team slider
   ========================================================================== */

.home-leadership {
	width: 100%;
	padding: 48px 0 70px;
	overflow: hidden;
	background: #ffffff;
}

.home-leadership__container {
	width: min(calc(100% - 80px), 1350px);
	margin-inline: auto;
}

/* ==========================================================================
   Section heading entrance
   ========================================================================== */

.home-leadership__header {
	margin-bottom: 34px;
	text-align: center;
	opacity: 0;
	transform: translate3d(0, 34px, 0);
	transition:
		opacity 750ms ease,
		transform 850ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-leadership.is-visible .home-leadership__header {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.home-leadership__title {
	position: relative;
	margin: 0 0 7px;
	color: #353535;
	font-size: 27px;
	font-weight: 700;
	line-height: 1.2;
}

.home-leadership__title::after {
	content: "";
	display: block;
	width: 62px;
	height: 2px;
	margin: 11px auto 0;
	background: #c49333;
	transform: scaleX(0);
	transform-origin: center;
	transition:
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1) 350ms;
}

.home-leadership.is-visible .home-leadership__title::after {
	transform: scaleX(1);
}

.home-leadership__intro {
	margin: 0;
	color: #555555;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.4;
}

/* ==========================================================================
   Slider
   ========================================================================== */

.home-leadership__slider {
	position: relative;
	width: 100%;
}

.home-leadership__viewport {
	width: 100%;
	overflow: hidden;
}

.home-leadership__track {
	display: flex;
	align-items: flex-start;
	gap: 31px;
	width: max-content;
	transform: translate3d(0, 0, 0);
	will-change: transform;
}

/* ==========================================================================
   Leadership card entrance
   ========================================================================== */

.leadership-card {
	flex: 0 0 calc((min(100vw - 80px, 1350px) - 93px) / 4);
	width: calc((min(100vw - 80px, 1350px) - 93px) / 4);
	min-width: 0;
	text-align: center;

	opacity: 0;
	transform: translate3d(0, 48px, 0) scale(0.975);
	transition:
		opacity 700ms ease,
		transform 850ms cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay:
		calc(180ms + (var(--leadership-index, 0) * 90ms));
}

.home-leadership.is-visible .leadership-card {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}

.leadership-card__link {
	display: block;
	width: 100%;
	color: inherit;
}

.leadership-card__media {
	position: relative;
	width: 100%;
	margin: 0;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	background: #333333;
	isolation: isolate;
}

/*
 * Dark premium gradient appears on hover.
 */
.leadership-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	background:
		linear-gradient(
			to top,
			rgb(0 0 0 / 34%) 0%,
			rgb(0 0 0 / 5%) 45%,
			transparent 72%
		);
	opacity: 0;
	pointer-events: none;
	transition: opacity 450ms ease;
}

/*
 * Soft gold light sweep.
 */
.leadership-card__media::before {
	content: "";
	position: absolute;
	top: 0;
	left: -120%;
	z-index: 3;
	width: 55%;
	height: 100%;
	background:
		linear-gradient(
			90deg,
			transparent,
			rgb(255 255 255 / 18%),
			transparent
		);
	pointer-events: none;
	transform: skewX(-18deg);
	transition:
		left 750ms cubic-bezier(0.22, 1, 0.36, 1);
}

.leadership-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	transform: scale(1);
	filter: saturate(0.96);
	transition:
		transform 850ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 500ms ease;
	will-change: transform;
}

.leadership-card__placeholder {
	width: 100%;
	height: 100%;
	background:
		linear-gradient(
			135deg,
			#3f3f3f,
			#252525
		);
}

/* Card hover */

.leadership-card__link:hover .leadership-card__image {
	transform: scale(1.065);
	filter: saturate(1.06) contrast(1.02);
}

.leadership-card__link:hover .leadership-card__media::after {
	opacity: 1;
}

.leadership-card__link:hover .leadership-card__media::before {
	left: 150%;
}

.leadership-card__content {
	position: relative;
	padding-top: 11px;
	transition:
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1);
}

.leadership-card__link:hover .leadership-card__content {
	transform: translateY(-3px);
}

.leadership-card__name {
	margin: 0;
	color: #3d3d3d;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.15;
	transition: color 250ms ease;
}

.leadership-card__designation {
	margin: 3px 0 0;
	color: #555555;
	font-size: 14px;
	font-weight: 300;
	line-height: 1.25;
	transition: color 250ms ease;
}

.leadership-card__link:hover .leadership-card__name {
	color: #b58c38;
}

.leadership-card__link:hover .leadership-card__designation {
	color: #3f3f3f;
}

.leadership-card__link:focus-visible {
	outline: 3px solid rgb(196 147 51 / 32%);
	outline-offset: 5px;
}

.leadership-card.is-clone {
	pointer-events: none;
}

/* ==========================================================================
   Controls
   ========================================================================== */

.home-leadership__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	margin-top: 32px;

	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity 650ms ease 560ms,
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1) 560ms;
}

.home-leadership.is-visible .home-leadership__controls {
	opacity: 1;
	transform: translateY(0);
}

.home-leadership__arrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 32px;
	padding: 0;
	overflow: hidden;
	border: 0;
	background: transparent;
	color: #c4912f;
	transition:
		color 250ms ease,
		transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-leadership__arrow::before {
	content: "";
	position: absolute;
	inset: 1px;
	border-radius: 999px;
	background: rgb(196 145 47 / 10%);
	opacity: 0;
	transform: scale(0.7);
	transition:
		opacity 250ms ease,
		transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-leadership__arrow svg {
	position: relative;
	z-index: 1;
	display: block;
	width: 34px;
	height: auto;
	fill: none;
	stroke: currentColor;
	stroke-width: 3;
	stroke-linecap: square;
	stroke-linejoin: miter;
	transition:
		transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-leadership__arrow:hover {
	color: #8f6d2e;
}

.home-leadership__arrow:hover::before {
	opacity: 1;
	transform: scale(1);
}

.home-leadership__arrow--previous:hover {
	transform: translateX(-3px);
}

.home-leadership__arrow--previous:hover svg {
	transform: translateX(-3px);
}

.home-leadership__arrow--next:hover {
	transform: translateX(3px);
}

.home-leadership__arrow--next:hover svg {
	transform: translateX(3px);
}

.home-leadership__arrow:active {
	transform: scale(0.94);
}

.home-leadership__pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
}

.home-leadership__pagination-button {
	width: 12px;
	height: 12px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #bdbdbd;
	transition:
		width 300ms cubic-bezier(0.22, 1, 0.36, 1),
		background-color 250ms ease,
		transform 250ms ease;
}

.home-leadership__pagination-button.is-active {
	width: 27px;
	background: #575757;
}

.home-leadership__pagination-button:hover {
	transform: scale(1.12);
}

.home-leadership__pagination-button:focus-visible,
.home-leadership__arrow:focus-visible {
	outline: 2px solid #c49333;
	outline-offset: 3px;
}

/* ==========================================================================
   View all button
   ========================================================================== */

.home-leadership__footer {
	margin-top: 28px;
	text-align: center;

	opacity: 0;
	transform: translateY(20px);
	transition:
		opacity 650ms ease 680ms,
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1) 680ms;
}

.home-leadership.is-visible .home-leadership__footer {
	opacity: 1;
	transform: translateY(0);
}

.home-leadership__view-all {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 170px;
	min-height: 50px;
	padding: 12px 24px;
	overflow: hidden;
	border: 1px solid #c39436;
	background: #c39436;
	color: #ffffff;
	font-size: 18px;
	font-weight: 400;
	line-height: 1;
	isolation: isolate;
	transition:
		border-color 300ms ease,
		color 300ms ease,
		box-shadow 300ms ease,
		transform 300ms ease;
}

.home-leadership__view-all::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: #006738;
	transform: scaleX(0);
	transform-origin: left center;
	transition:
		transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-leadership__view-all::after {
	content: "";
	position: absolute;
	top: 0;
	left: -120%;
	z-index: -1;
	width: 55%;
	height: 100%;
	background:
		linear-gradient(
			90deg,
			transparent,
			rgb(255 255 255 / 22%),
			transparent
		);
	transform: skewX(-20deg);
	transition: left 650ms ease;
}

.home-leadership__view-all-text,
.home-leadership__view-all-arrow {
	position: relative;
	z-index: 1;
}

.home-leadership__view-all-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 0;
	overflow: hidden;
	opacity: 0;
	transform: translateX(-7px);
	transition:
		width 350ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 250ms ease,
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-leadership__view-all-arrow svg {
	display: block;
	width: 27px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.home-leadership__view-all:hover {
	border-color: #006738;
	color: #ffffff;
	box-shadow: 0 14px 30px rgb(0 103 56 / 20%);
	transform: translateY(-3px);
}

.home-leadership__view-all:hover::before {
	transform: scaleX(1);
}

.home-leadership__view-all:hover::after {
	left: 150%;
}

.home-leadership__view-all:hover
.home-leadership__view-all-arrow {
	width: 27px;
	opacity: 1;
	transform: translateX(0);
}

.home-leadership__view-all:active {
	transform: translateY(-1px);
}

.home-leadership__view-all:focus-visible {
	outline: 3px solid rgb(196 147 51 / 35%);
	outline-offset: 4px;
}

/* ==========================================================================
   Three cards
   ========================================================================== */

@media (max-width: 1100px) {
	.home-leadership__container {
		width: min(calc(100% - 50px), 1350px);
	}

	.home-leadership__track {
		gap: 24px;
	}

	.leadership-card {
		flex-basis: calc(
			(min(100vw - 50px, 1350px) - 48px) / 3
		);
		width: calc(
			(min(100vw - 50px, 1350px) - 48px) / 3
		);
	}
}

/* ==========================================================================
   Two cards
   ========================================================================== */

@media (max-width: 767px) {
	.home-leadership {
		padding: 42px 0 55px;
	}

	.home-leadership__container {
		width: calc(100% - 36px);
	}

	.home-leadership__header {
		margin-bottom: 26px;
	}

	.home-leadership__title {
		font-size: 23px;
	}

	.home-leadership__intro {
		font-size: 15px;
		line-height: 1.45;
	}

	.home-leadership__track {
		gap: 20px;
	}

	.leadership-card {
		flex-basis: calc(
			((100vw - 36px) - 20px) / 2
		);
		width: calc(
			((100vw - 36px) - 20px) / 2
		);
	}

	.leadership-card__name {
		font-size: 18px;
	}

	.home-leadership__controls {
		margin-top: 25px;
	}
}

/* ==========================================================================
   One card
   ========================================================================== */

@media (max-width: 520px) {
	.home-leadership__track {
		gap: 0;
	}

	.leadership-card {
		flex-basis: calc(100vw - 36px);
		width: calc(100vw - 36px);
	}

	.home-leadership__view-all {
		min-width: 150px;
		min-height: 46px;
		font-size: 16px;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.home-leadership__header,
	.leadership-card,
	.home-leadership__controls,
	.home-leadership__footer {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.home-leadership__title::after {
		transform: scaleX(1);
		transition: none;
	}

	.leadership-card__image,
	.leadership-card__media::before,
	.leadership-card__media::after,
	.leadership-card__content {
		transition: none;
	}
}
/* ==========================================================================
   Premium homepage projects slider
   ========================================================================== */

.home-projects {
	width: 100%;
	padding: 44px 0 72px;
	overflow: hidden;
	background: #e7e5e5;
}

.home-projects__container {
	width: min(calc(100% - 80px), 1350px);
	margin-inline: auto;
}

/* Title entrance */

.home-projects__title {
	position: relative;
	margin: 0 0 34px;
	color: #303030;
	font-size: 29px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition:
		opacity 700ms ease,
		transform 850ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-projects.is-visible .home-projects__title {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.home-projects__title::after {
	content: "";
	display: block;
	width: 62px;
	height: 2px;
	margin: 12px auto 0;
	background: #c39231;
	transform: scaleX(0);
	transform-origin: center;
	transition:
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1) 350ms;
}

.home-projects.is-visible .home-projects__title::after {
	transform: scaleX(1);
}

/* Slider */

.home-projects__slider {
	position: relative;
	width: 100%;
}

.home-projects__viewport {
	width: 100%;
	overflow: hidden;
}

.home-projects__track {
	--project-gap: 16px;

	display: flex;
	align-items: stretch;
	gap: var(--project-gap);
	width: max-content;
	transform: translate3d(0, 0, 0);
	will-change: transform;
}

/* Card entrance */

.project-card {
	flex: 0 0 calc(
		(min(100vw - 80px, 1350px) - var(--project-gap)) / 2
	);
	width: calc(
		(min(100vw - 80px, 1350px) - var(--project-gap)) / 2
	);
	min-width: 0;
	opacity: 0;
	transform: translate3d(0, 52px, 0) scale(0.975);
	transition:
		opacity 750ms ease,
		transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay:
		calc(170ms + (var(--project-index, 0) * 100ms));
}

.home-projects.is-visible .project-card {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}

.project-card__link {
	display: block;
	width: 100%;
	height: 100%;
	color: inherit;
}

.project-card__media {
	position: relative;
	width: 100%;
	height: 100%;
	margin: 0;
	overflow: hidden;
	aspect-ratio: 750 / 447;
	background: #2d2d2d;
	isolation: isolate;
	box-shadow: 0 18px 40px rgb(0 0 0 / 8%);
	transition:
		box-shadow 450ms ease,
		transform 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-card__link:hover .project-card__media {
	box-shadow: 0 26px 55px rgb(0 0 0 / 18%);
	transform: translateY(-5px);
}

.project-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1);
	filter: brightness(0.96) saturate(0.97);
	transition:
		transform 950ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 500ms ease;
	will-change: transform;
}

.project-card__placeholder {
	width: 100%;
	height: 100%;
	background:
		linear-gradient(
			135deg,
			#444444,
			#252525
		);
}

.project-card__link:hover .project-card__image {
	transform: scale(1.065);
	filter: brightness(1.03) saturate(1.06);
}

/* Light sweep */

.project-card__shine {
	position: absolute;
	top: 0;
	left: -125%;
	z-index: 3;
	width: 55%;
	height: 100%;
	background:
		linear-gradient(
			90deg,
			transparent,
			rgb(255 255 255 / 20%),
			transparent
		);
	pointer-events: none;
	transform: skewX(-18deg);
	transition:
		left 850ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-card__link:hover .project-card__shine {
	left: 150%;
}

/* Overlay */

.project-card__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(
			to top,
			rgb(0 0 0 / 68%) 0%,
			rgb(0 0 0 / 24%) 36%,
			rgb(0 0 0 / 2%) 68%
		);
	pointer-events: none;
	transition:
		background 450ms ease,
		opacity 450ms ease;
}

.project-card__link:hover .project-card__overlay {
	background:
		linear-gradient(
			to top,
			rgb(0 0 0 / 76%) 0%,
			rgb(0 0 0 / 30%) 40%,
			rgb(0 0 0 / 5%) 72%
		);
}

/* Content */

.project-card__content {
	position: absolute;
	right: 110px;
	bottom: 18px;
	left: 30px;
	z-index: 4;
	color: #ffffff;
	transform: translateY(0);
	transition:
		transform 400ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-card__link:hover .project-card__content {
	transform: translateY(-5px);
}

.project-card__title {
	margin: 0 0 2px;
	color: #ffffff;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 0.015em;
	text-transform: uppercase;
	transition:
		letter-spacing 350ms ease,
		color 300ms ease;
}

.project-card__link:hover .project-card__title {
	color: #f0c66f;
	letter-spacing: 0.035em;
}

.project-card__location {
	margin: 0;
	color: #ffffff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	opacity: 0.9;
	transition:
		opacity 300ms ease,
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-card__link:hover .project-card__location {
	opacity: 1;
	transform: translateX(3px);
}

/* Badge */

.project-card__type {
	position: absolute;
	right: 16px;
	bottom: 15px;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 74px;
	min-height: 34px;
	padding: 7px 15px;
	border: 1px solid rgb(255 255 255 / 12%);
	border-radius: 999px;
	background: #c39231;
	box-shadow: 0 8px 18px rgb(0 0 0 / 12%);
	color: #ffffff;
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
	transition:
		background-color 300ms ease,
		box-shadow 300ms ease,
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-card__link:hover .project-card__type {
	background: #006738;
	box-shadow: 0 12px 24px rgb(0 0 0 / 22%);
	transform: translateY(-5px);
}

.project-card__link:focus-visible {
	outline: 3px solid rgb(195 146 49 / 42%);
	outline-offset: 5px;
}

/* Controls entrance */

.home-projects__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	margin-top: 34px;
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity 650ms ease 550ms,
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1) 550ms;
}

.home-projects.is-visible .home-projects__controls {
	opacity: 1;
	transform: translateY(0);
}

.home-projects__arrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 32px;
	padding: 0;
	overflow: hidden;
	border: 0;
	background: transparent;
	color: #c4912f;
	transition:
		color 250ms ease,
		transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-projects__arrow::before {
	content: "";
	position: absolute;
	inset: 1px;
	border-radius: 999px;
	background: rgb(196 145 47 / 10%);
	opacity: 0;
	transform: scale(0.7);
	transition:
		opacity 250ms ease,
		transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-projects__arrow svg {
	position: relative;
	z-index: 1;
	display: block;
	width: 34px;
	height: auto;
	fill: none;
	stroke: currentColor;
	stroke-width: 3;
	stroke-linecap: square;
	stroke-linejoin: miter;
	transition:
		transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-projects__arrow:hover {
	color: #8e6b28;
}

.home-projects__arrow:hover::before {
	opacity: 1;
	transform: scale(1);
}

.home-projects__arrow--previous:hover {
	transform: translateX(-3px);
}

.home-projects__arrow--previous:hover svg {
	transform: translateX(-3px);
}

.home-projects__arrow--next:hover {
	transform: translateX(3px);
}

.home-projects__arrow--next:hover svg {
	transform: translateX(3px);
}

.home-projects__arrow:active {
	transform: scale(0.94);
}

/* Pagination */

.home-projects__pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
}

.home-projects__pagination-button {
	width: 13px;
	height: 13px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #b8b8b8;
	transition:
		width 300ms cubic-bezier(0.22, 1, 0.36, 1),
		background-color 250ms ease,
		transform 250ms ease;
}

.home-projects__pagination-button.is-active {
	width: 29px;
	background: #5e5e5e;
}

.home-projects__pagination-button:hover {
	transform: scale(1.12);
}

.home-projects__pagination-button:focus-visible,
.home-projects__arrow:focus-visible {
	outline: 2px solid #c39231;
	outline-offset: 3px;
}

.project-card.is-clone {
	pointer-events: none;
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 900px) {
	.home-projects__container {
		width: calc(100% - 50px);
	}

	.home-projects__track {
		--project-gap: 18px;
	}

	.project-card {
		flex: 0 0 calc(100vw - 50px);
		width: calc(100vw - 50px);
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.home-projects {
		padding: 40px 0 55px;
	}

	.home-projects__container {
		width: calc(100% - 36px);
	}

	.home-projects__title {
		margin-bottom: 26px;
		font-size: 24px;
	}

	.home-projects__title::after {
		width: 48px;
		margin-top: 9px;
	}

	.home-projects__track {
		--project-gap: 16px;
	}

	.project-card {
		flex: 0 0 calc(100vw - 36px);
		width: calc(100vw - 36px);
	}

	.project-card__media {
		aspect-ratio: 4 / 3;
	}

	.project-card__content {
		right: 95px;
		bottom: 15px;
		left: 18px;
	}

	.project-card__title {
		font-size: 13px;
	}

	.project-card__location {
		font-size: 13px;
	}

	.project-card__type {
		right: 12px;
		bottom: 12px;
		min-width: 65px;
		min-height: 31px;
		padding: 6px 12px;
		font-size: 12px;
	}

	.home-projects__controls {
		margin-top: 28px;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.home-projects__title,
	.project-card,
	.home-projects__controls {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.home-projects__title::after {
		transform: scaleX(1);
		transition: none;
	}

	.project-card__media,
	.project-card__image,
	.project-card__shine,
	.project-card__content,
	.project-card__type {
		transition: none;
	}
}
/* ==========================================================================
   Why invest in Bengaluru
   ========================================================================== */

.why-bengaluru {
	position: relative;
	width: 100%;
	min-height: 725px;
	overflow: hidden;
	background-color: #e9e9e9;
	background-image: var(--why-bengaluru-bg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

.why-bengaluru__container {
	position: relative;
	z-index: 2;
	width: min(calc(100% - 80px), 1350px);
	margin-inline: auto;
}

.why-bengaluru__content {
	width: 100%;
	padding-top: 56px;
	padding-right: 25px;
}

/* ==========================================================================
   Viewport entrance animation
   ========================================================================== */

.why-bengaluru__title,
.why-bengaluru__subtitle,
.why-bengaluru__description p,
.why-bengaluru__button {
	opacity: 0;
	filter: blur(5px);
	transform: translate3d(48px, 26px, 0);
	transition:
		opacity 800ms ease,
		filter 700ms ease,
		transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
}

.why-bengaluru.is-visible .why-bengaluru__title,
.why-bengaluru.is-visible .why-bengaluru__subtitle,
.why-bengaluru.is-visible .why-bengaluru__description p,
.why-bengaluru.is-visible .why-bengaluru__button {
	opacity: 1;
	filter: blur(0);
	transform: translate3d(0, 0, 0);
}

.why-bengaluru.is-visible .why-bengaluru__title {
	transition-delay: 80ms;
}

.why-bengaluru.is-visible .why-bengaluru__subtitle {
	transition-delay: 190ms;
}

.why-bengaluru.is-visible
.why-bengaluru__description p:first-child {
	transition-delay: 300ms;
}

.why-bengaluru.is-visible
.why-bengaluru__description p:nth-child(2) {
	transition-delay: 410ms;
}

.why-bengaluru.is-visible .why-bengaluru__button {
	transition-delay: 520ms;
}

/* ==========================================================================
   Typography
   ========================================================================== */

.why-bengaluru__title {
	position: relative;
	margin: 0 0 8px;
	color: #242424;
	font-size: 21px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
}

.why-bengaluru__title::after {
	content: "";
	display: block;
	width: 58px;
	height: 2px;
	margin-top: 10px;
	background: #c49333;
	transform: scaleX(0);
	transform-origin: left center;
	transition:
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1);
}

.why-bengaluru.is-visible
.why-bengaluru__title::after {
	transform: scaleX(1);
	transition-delay: 650ms;
}

.why-bengaluru__subtitle {
	margin: 0 0 18px;
	color: #3e3e3e;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.3;
	text-transform: uppercase;
}

.why-bengaluru__description {
	max-width: 1230px;
	color: #4b4b4b;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.35;
}

.why-bengaluru__description p {
	margin: 0 0 18px;
}

/* ==========================================================================
   Premium button
   ========================================================================== */

.why-bengaluru__button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-width: 135px;
	min-height: 40px;
	padding: 9px 18px;
	overflow: hidden;
	border: 1px solid #006838;
	background: #006838;
	color: #ffffff;
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
	text-align: center;
	isolation: isolate;
	transition:
		opacity 800ms ease,
		filter 700ms ease,
		transform 900ms cubic-bezier(0.22, 1, 0.36, 1),
		border-color 300ms ease,
		box-shadow 300ms ease,
		color 300ms ease;
}

.why-bengaluru__button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: #c49333;
	transform: scaleX(0);
	transform-origin: left center;
	transition:
		transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.why-bengaluru__button::after {
	content: "";
	position: absolute;
	top: 0;
	left: -125%;
	z-index: -1;
	width: 55%;
	height: 100%;
	background:
		linear-gradient(
			90deg,
			transparent,
			rgb(255 255 255 / 28%),
			transparent
		);
	transform: skewX(-20deg);
	transition:
		left 650ms cubic-bezier(0.22, 1, 0.36, 1);
}

.why-bengaluru__button-text,
.why-bengaluru__button-arrow {
	position: relative;
	z-index: 1;
}

.why-bengaluru__button-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 0;
	overflow: hidden;
	opacity: 0;
	transform: translateX(-7px);
	transition:
		width 350ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 250ms ease,
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1);
}

.why-bengaluru__button-arrow svg {
	display: block;
	width: 25px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.why-bengaluru__button:hover {
	border-color: #c49333;
	color: #ffffff;
	box-shadow: 0 14px 30px rgb(104 76 24 / 20%);
	transform: translate3d(0, -3px, 0);
}

.why-bengaluru__button:hover::before {
	transform: scaleX(1);
}

.why-bengaluru__button:hover::after {
	left: 150%;
}

.why-bengaluru__button:hover
.why-bengaluru__button-arrow {
	width: 25px;
	opacity: 1;
	transform: translateX(0);
}

.why-bengaluru__button:active {
	transform: translate3d(0, -1px, 0);
}

.why-bengaluru__button:focus-visible {
	outline: 3px solid rgb(0 104 56 / 30%);
	outline-offset: 4px;
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1100px) {
	.why-bengaluru {
		min-height: 620px;
		background-position: center bottom;
	}

	.why-bengaluru__container {
		width: min(calc(100% - 50px), 1350px);
	}

	.why-bengaluru__content {
		padding-top: 45px;
		padding-inline: 10px;
	}

	.why-bengaluru__description {
		max-width: 100%;
		font-size: 13px;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.why-bengaluru {
		min-height: 680px;
		background-position: center bottom;
		background-size: auto 100%;
	}

	.why-bengaluru::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 1;
		background:
			linear-gradient(
				to bottom,
				rgb(255 255 255 / 94%) 0%,
				rgb(255 255 255 / 85%) 38%,
				rgb(255 255 255 / 20%) 65%,
				transparent 100%
			);
		pointer-events: none;
	}

	.why-bengaluru__container {
		width: calc(100% - 36px);
	}

	.why-bengaluru__content {
		padding: 38px 0 0;
	}

	.why-bengaluru__title {
		font-size: 20px;
	}

	.why-bengaluru__title::after {
		width: 46px;
		margin-top: 8px;
	}

	.why-bengaluru__subtitle {
		margin-bottom: 15px;
		font-size: 13px;
		line-height: 1.4;
	}

	.why-bengaluru__description {
		font-size: 13px;
		line-height: 1.45;
	}

	.why-bengaluru__description p {
		margin-bottom: 14px;
	}

	.why-bengaluru__button {
		min-width: 125px;
		min-height: 40px;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.why-bengaluru__title,
	.why-bengaluru__subtitle,
	.why-bengaluru__description p,
	.why-bengaluru__button {
		opacity: 1;
		filter: none;
		transform: none;
		transition: none;
	}

	.why-bengaluru__title::after {
		transform: scaleX(1);
		transition: none;
	}

	.why-bengaluru__button::before,
	.why-bengaluru__button::after,
	.why-bengaluru__button-arrow {
		transition: none;
	}
}
/* ==========================================================================
   Investment benefits
   ========================================================================== */

.investment-benefits {
	position: relative;
	width: 100%;
	padding: 72px 0 44px;
	overflow: hidden;
	background:
		linear-gradient(
			135deg,
			#f5f5f5 0%,
			#eeeeee 50%,
			#f6f6f6 100%
		);
}

.investment-benefits::before {
	content: "";
	position: absolute;
	top: -220px;
	right: -200px;
	width: 520px;
	height: 520px;
	border-radius: 50%;
	background: rgb(195 148 54 / 7%);
	filter: blur(10px);
	pointer-events: none;
}

.investment-benefits__container {
	position: relative;
	z-index: 1;
	width: min(calc(100% - 80px), 1350px);
	margin-inline: auto;
}

/* Header */

.investment-benefits__header {
	max-width: 1180px;
	margin-bottom: 46px;
	opacity: 0;
	transform: translateY(24px);
	transition:
		opacity 700ms ease,
		transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.investment-benefits.is-visible
.investment-benefits__header {
	opacity: 1;
	transform: translateY(0);
}

.investment-benefits__title {
	margin: 0 0 8px;
	color: #373737;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
}

.investment-benefits__subtitle {
	margin: 0 0 9px;
	color: #555555;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.3;
	text-transform: uppercase;
}

.investment-benefits__description {
	margin: 0;
	color: #5c5c5c;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.35;
}

/* Benefits grid */

.investment-benefits__grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 36px 25px;
}

.investment-benefits__item {
	position: relative;
	min-width: 0;
	padding: 12px 8px 14px;
	text-align: center;
	opacity: 0;
	transform: translateY(35px) scale(0.96);
	transition:
		opacity 650ms ease var(--benefit-delay),
		transform 650ms cubic-bezier(0.22, 1, 0.36, 1)
			var(--benefit-delay),
		background-color 250ms ease,
		box-shadow 250ms ease;
}

.investment-benefits.is-visible
.investment-benefits__item {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.investment-benefits__item::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border: 1px solid transparent;
	border-radius: 3px;
	background: transparent;
	transition:
		border-color 250ms ease,
		background-color 250ms ease,
		box-shadow 250ms ease;
}

.investment-benefits__item:hover::before {
	border-color: rgb(195 148 54 / 22%);
	background: rgb(255 255 255 / 65%);
	box-shadow:
		0 16px 38px rgb(0 0 0 / 7%);
}

.investment-benefits__visual {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 76px;
	margin-bottom: 10px;
	color: #c39231;
}

.investment-benefits__icon {
	display: block;
	width: 64px;
	height: 64px;
	object-fit: contain;
	transition:
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 350ms ease;
}

.investment-benefits__item:hover
.investment-benefits__icon {
	transform: translateY(-7px) scale(1.07);
	filter: drop-shadow(0 8px 8px rgb(157 121 53 / 20%));
}

.investment-benefits__value {
	display: block;
	color: #c39231;
	font-size: 47px;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1;
	transition:
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1),
		text-shadow 350ms ease;
}

.investment-benefits__item:hover
.investment-benefits__value {
	transform: translateY(-6px) scale(1.04);
	text-shadow: 0 8px 20px rgb(195 146 49 / 18%);
}

.investment-benefits__item-text {
	max-width: 180px;
	margin: 0 auto;
	color: #666666;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.25;
	transition:
		color 250ms ease,
		transform 250ms ease;
}

.investment-benefits__item:hover
.investment-benefits__item-text {
	color: #333333;
	transform: translateY(-2px);
}

/* Button */

.investment-benefits__footer {
	margin-top: 46px;
	text-align: center;
	opacity: 0;
	transform: translateY(25px);
	transition:
		opacity 650ms ease 700ms,
		transform 650ms cubic-bezier(0.22, 1, 0.36, 1) 700ms;
}

.investment-benefits.is-visible
.investment-benefits__footer {
	opacity: 1;
	transform: translateY(0);
}

.investment-benefits__button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 142px;
	min-height: 43px;
	padding: 10px 20px;
	overflow: hidden;
	border: 1px solid #006838;
	background: #006838;
	color: #ffffff;
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	isolation: isolate;
	transition:
		border-color 300ms ease,
		color 300ms ease,
		box-shadow 300ms ease,
		transform 300ms ease;
}

.investment-benefits__button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: #c39231;
	transform: translateX(-102%);
	transition:
		transform 400ms cubic-bezier(0.22, 1, 0.36, 1);
}

.investment-benefits__button span,
.investment-benefits__button svg {
	position: relative;
	z-index: 1;
}

.investment-benefits__button svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	transform: translateX(-5px);
	opacity: 0;
	transition:
		transform 300ms ease,
		opacity 300ms ease;
}

.investment-benefits__button:hover {
	border-color: #c39231;
	color: #ffffff;
	box-shadow:
		0 12px 26px rgb(0 104 56 / 18%);
	transform: translateY(-3px);
}

.investment-benefits__button:hover::before {
	transform: translateX(0);
}

.investment-benefits__button:hover svg {
	opacity: 1;
	transform: translateX(0);
}

.investment-benefits__button:active {
	transform: translateY(-1px);
}

.investment-benefits__button:focus-visible {
	outline: 3px solid rgb(0 104 56 / 25%);
	outline-offset: 4px;
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1100px) {
	.investment-benefits__container {
		width: min(calc(100% - 50px), 1350px);
	}

	.investment-benefits__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 34px 24px;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.investment-benefits {
		padding: 52px 0 42px;
	}

	.investment-benefits__container {
		width: calc(100% - 36px);
	}

	.investment-benefits__header {
		margin-bottom: 36px;
	}

	.investment-benefits__title {
		font-size: 20px;
	}

	.investment-benefits__subtitle {
		font-size: 14px;
	}

	.investment-benefits__description {
		font-size: 14px;
		line-height: 1.5;
	}

	.investment-benefits__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 15px;
	}

	.investment-benefits__visual {
		height: 66px;
	}

	.investment-benefits__icon {
		width: 56px;
		height: 56px;
	}

	.investment-benefits__value {
		font-size: 40px;
	}

	.investment-benefits__item-text {
		font-size: 13px;
	}

	.investment-benefits__footer {
		margin-top: 36px;
	}
}

@media (max-width: 420px) {
	.investment-benefits__grid {
		grid-template-columns: 1fr;
	}

	.investment-benefits__item-text {
		max-width: 220px;
	}
}

/* Reduced motion */

@media (prefers-reduced-motion: reduce) {
	.investment-benefits__header,
	.investment-benefits__item,
	.investment-benefits__footer {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.investment-benefits__button,
	.investment-benefits__button::before,
	.investment-benefits__button svg,
	.investment-benefits__icon,
	.investment-benefits__value {
		transition: none;
	}
}
/* ==========================================================================
   Investment benefits
   ========================================================================== */

.investment-benefits {
	position: relative;
	width: 100%;
	padding: 72px 0 44px;
	overflow: hidden;
	background:
		linear-gradient(
			135deg,
			#f5f5f5 0%,
			#eeeeee 50%,
			#f6f6f6 100%
		);
}

.investment-benefits::before {
	content: "";
	position: absolute;
	top: -220px;
	right: -200px;
	width: 520px;
	height: 520px;
	border-radius: 50%;
	background: rgb(195 148 54 / 7%);
	filter: blur(10px);
	pointer-events: none;
}

.investment-benefits__container {
	position: relative;
	z-index: 1;
	width: min(calc(100% - 80px), 1350px);
	margin-inline: auto;
}

/* Header */

.investment-benefits__header {
	max-width: 1180px;
	margin-bottom: 46px;
	opacity: 0;
	transform: translateY(24px);
	transition:
		opacity 700ms ease,
		transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.investment-benefits.is-visible
.investment-benefits__header {
	opacity: 1;
	transform: translateY(0);
}

.investment-benefits__title {
	margin: 0 0 8px;
	color: #373737;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
}

.investment-benefits__subtitle {
	margin: 0 0 9px;
	color: #555555;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.3;
	text-transform: uppercase;
}

.investment-benefits__description {
	margin: 0;
	color: #5c5c5c;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.35;
}

/* Benefits grid */

.investment-benefits__grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 36px 25px;
}

.investment-benefits__item {
	position: relative;
	min-width: 0;
	padding: 12px 8px 14px;
	text-align: center;
	opacity: 0;
	transform: translateY(35px) scale(0.96);
	transition:
		opacity 650ms ease var(--benefit-delay),
		transform 650ms cubic-bezier(0.22, 1, 0.36, 1)
			var(--benefit-delay),
		background-color 250ms ease,
		box-shadow 250ms ease;
}

.investment-benefits.is-visible
.investment-benefits__item {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.investment-benefits__item::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border: 1px solid transparent;
	border-radius: 3px;
	background: transparent;
	transition:
		border-color 250ms ease,
		background-color 250ms ease,
		box-shadow 250ms ease;
}

.investment-benefits__item:hover::before {
	border-color: rgb(195 148 54 / 22%);
	background: rgb(255 255 255 / 65%);
	box-shadow:
		0 16px 38px rgb(0 0 0 / 7%);
}

.investment-benefits__visual {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 76px;
	margin-bottom: 10px;
	color: #c39231;
}

.investment-benefits__icon {
	display: block;
	width: 84px;
	height: 80px;
	object-fit: contain;
	transition:
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 350ms ease;
}

.investment-benefits__item:hover
.investment-benefits__icon {
	transform: translateY(-7px) scale(1.07);
	filter: drop-shadow(0 8px 8px rgb(157 121 53 / 20%));
}

.investment-benefits__value {
	display: block;
	color: #c39231;
	font-size: 47px;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1;
	transition:
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1),
		text-shadow 350ms ease;
}

.investment-benefits__item:hover
.investment-benefits__value {
	transform: translateY(-6px) scale(1.04);
	text-shadow: 0 8px 20px rgb(195 146 49 / 18%);
}

.investment-benefits__item-text {
	max-width: 180px;
	margin: 0 auto;
	color: #666666;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.25;
	transition:
		color 250ms ease,
		transform 250ms ease;
}

.investment-benefits__item:hover
.investment-benefits__item-text {
	color: #333333;
	transform: translateY(-2px);
}

/* Button */

.investment-benefits__footer {
	margin-top: 46px;
	text-align: center;
	opacity: 0;
	transform: translateY(25px);
	transition:
		opacity 650ms ease 700ms,
		transform 650ms cubic-bezier(0.22, 1, 0.36, 1) 700ms;
}

.investment-benefits.is-visible
.investment-benefits__footer {
	opacity: 1;
	transform: translateY(0);
}

.investment-benefits__button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 142px;
	min-height: 43px;
	padding: 10px 20px;
	overflow: hidden;
	border: 1px solid #006838;
	background: #006838;
	color: #ffffff;
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	isolation: isolate;
	transition:
		border-color 300ms ease,
		color 300ms ease,
		box-shadow 300ms ease,
		transform 300ms ease;
}

.investment-benefits__button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: #c39231;
	transform: translateX(-102%);
	transition:
		transform 400ms cubic-bezier(0.22, 1, 0.36, 1);
}

.investment-benefits__button span,
.investment-benefits__button svg {
	position: relative;
	z-index: 1;
}

.investment-benefits__button svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	transform: translateX(-5px);
	opacity: 0;
	transition:
		transform 300ms ease,
		opacity 300ms ease;
}

.investment-benefits__button:hover {
	border-color: #c39231;
	color: #ffffff;
	box-shadow:
		0 12px 26px rgb(0 104 56 / 18%);
	transform: translateY(-3px);
}

.investment-benefits__button:hover::before {
	transform: translateX(0);
}

.investment-benefits__button:hover svg {
	opacity: 1;
	transform: translateX(0);
}

.investment-benefits__button:active {
	transform: translateY(-1px);
}

.investment-benefits__button:focus-visible {
	outline: 3px solid rgb(0 104 56 / 25%);
	outline-offset: 4px;
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1100px) {
	.investment-benefits__container {
		width: min(calc(100% - 50px), 1350px);
	}

	.investment-benefits__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 34px 24px;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.investment-benefits {
		padding: 52px 0 42px;
	}

	.investment-benefits__container {
		width: calc(100% - 36px);
	}

	.investment-benefits__header {
		margin-bottom: 36px;
	}

	.investment-benefits__title {
		font-size: 20px;
	}

	.investment-benefits__subtitle {
		font-size: 14px;
	}

	.investment-benefits__description {
		font-size: 14px;
		line-height: 1.5;
	}

	.investment-benefits__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 15px;
	}

	.investment-benefits__visual {
		height: 66px;
	}

	.investment-benefits__icon {
		width: 56px;
		height: 56px;
	}

	.investment-benefits__value {
		font-size: 40px;
	}

	.investment-benefits__item-text {
		font-size: 13px;
	}

	.investment-benefits__footer {
		margin-top: 36px;
	}
}

@media (max-width: 420px) {
	.investment-benefits__grid {
		grid-template-columns: 1fr;
	}

	.investment-benefits__item-text {
		max-width: 220px;
	}
}

/* Reduced motion */

@media (prefers-reduced-motion: reduce) {
	.investment-benefits__header,
	.investment-benefits__item,
	.investment-benefits__footer {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.investment-benefits__button,
	.investment-benefits__button::before,
	.investment-benefits__button svg,
	.investment-benefits__icon,
	.investment-benefits__value {
		transition: none;
	}
}
/* ==========================================================================
   Homepage testimonials
   ========================================================================== */

.home-testimonials {
	width: 100%;
	padding: 86px 0 100px;
	overflow: hidden;
	background: #ffffff;
}

.home-testimonials__container {
	width: min(calc(100% - 80px), 1350px);
	margin-inline: auto;
}

.home-testimonials__layout {
	display: grid;
	grid-template-columns: 52% 48%;
	align-items: center;
	min-height: 390px;
}

/* Left quote image and heading */

.home-testimonials__branding {
	position: relative;
	min-height: 390px;
	opacity: 0;
	transform: translateX(-45px);
	transition:
		opacity 800ms ease,
		transform 800ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-testimonials.is-visible .home-testimonials__branding {
	opacity: 1;
	transform: translateX(0);
}

.home-testimonials__quote-image {
	position: absolute;
	top: 0;
	right: 20px;
	display: block;
	width: min(100%, 440px);
	height: auto;
	object-fit: contain;
}

.home-testimonials__title {
	position: absolute;
	top: 225px;
	left: 28px;
	z-index: 2;
	margin: 0;
	color: #c49333;
	font-size: 52px;
	font-weight: 300;
	letter-spacing: 0.01em;
	line-height: 1;
}

/* Slider */

.home-testimonials__slider {
	min-width: 0;
	padding-left: 38px;
	opacity: 0;
	transform: translateX(45px);
	transition:
		opacity 800ms ease 120ms,
		transform 800ms cubic-bezier(0.22, 1, 0.36, 1) 120ms;
}

.home-testimonials.is-visible .home-testimonials__slider {
	opacity: 1;
	transform: translateX(0);
}

.home-testimonials__viewport {
	width: 100%;
	overflow: hidden;
}

.home-testimonials__track {
	display: flex;
	width: 100%;
	transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.testimonial-card {
	display: grid;
	grid-template-columns: 105px minmax(0, 1fr);
	align-items: start;
	flex: 0 0 100%;
	width: 100%;
	min-width: 100%;
	gap: 26px;
	opacity: 0.12;
	transition: opacity 500ms ease;
}

.testimonial-card.is-active {
	opacity: 1;
}

.testimonial-card__icon-wrap {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 2px;
}

.testimonial-card__icon {
	display: block;
	width: 84px;
	height: 84px;
	object-fit: contain;
	transition:
		transform 350ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 350ms ease;
}

.testimonial-card.is-active .testimonial-card__icon {
	animation: testimonial-icon-enter 650ms ease both;
}

@keyframes testimonial-icon-enter {
	from {
		opacity: 0;
		transform: translateY(18px) scale(0.9);
	}

	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.testimonial-card__content {
	padding-top: 5px;
}

.testimonial-card__quote {
	margin: 0;
}

.testimonial-card__text {
	max-width: 430px;
	margin: 0 0 14px;
	color: #777777;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.45;
}

.testimonial-card__name {
	margin: 0 0 1px;
	color: #777777;
	font-size: 22px;
	font-weight: 300;
	line-height: 1.2;
}

.testimonial-card__location {
	margin: 0;
	color: #858585;
	font-size: 16px;
	font-weight: 300;
	line-height: 1.3;
}

/* Controls */

.home-testimonials__controls {
	display: flex;
	align-items: center;
	gap: 22px;
	margin-top: 25px;
	margin-left: 131px;
}

.home-testimonials__pagination {
	display: flex;
	align-items: center;
	gap: 7px;
}

.home-testimonials__pagination-button {
	width: 13px;
	height: 13px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #000000;
	transition:
		background-color 200ms ease,
		transform 200ms ease;
}

.home-testimonials__pagination-button.is-active {
	background: #d1d1d1;
}

.home-testimonials__pagination-button:hover {
	transform: scale(1.15);
}

.home-testimonials__next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 28px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #c49333;
	transition:
		color 200ms ease,
		transform 200ms ease;
}

.home-testimonials__next svg {
	display: block;
	width: 39px;
	height: auto;
	fill: none;
	stroke: currentColor;
	stroke-width: 3;
	stroke-linecap: square;
	stroke-linejoin: miter;
}

.home-testimonials__next:hover {
	color: #9d7935;
	transform: translateX(5px);
}

/* Tablet */

@media (max-width: 1050px) {
	.home-testimonials__container {
		width: min(calc(100% - 50px), 1350px);
	}

	.home-testimonials__layout {
		grid-template-columns: 45% 55%;
	}

	.home-testimonials__quote-image {
		right: 10px;
		width: 360px;
	}

	.home-testimonials__title {
		top: 190px;
		left: 5px;
		font-size: 43px;
	}

	.home-testimonials__slider {
		padding-left: 20px;
	}

	.testimonial-card {
		grid-template-columns: 85px minmax(0, 1fr);
		gap: 20px;
	}

	.testimonial-card__icon {
		width: 72px;
		height: 72px;
	}

	.testimonial-card__text {
		font-size: 16px;
	}

	.home-testimonials__controls {
		margin-left: 105px;
	}
}

/* Mobile */

@media (max-width: 767px) {
	.home-testimonials {
		padding: 52px 0 65px;
	}

	.home-testimonials__container {
		width: calc(100% - 36px);
	}

	.home-testimonials__layout {
		grid-template-columns: 1fr;
		gap: 30px;
		min-height: auto;
	}

	.home-testimonials__branding {
		min-height: 245px;
	}

	.home-testimonials__quote-image {
		top: 0;
		right: 50%;
		width: 300px;
		transform: translateX(50%);
	}

	.home-testimonials__title {
		top: 145px;
		left: 50%;
		font-size: 38px;
		transform: translateX(-50%);
	}

	.home-testimonials__slider {
		padding-left: 0;
	}

	.testimonial-card {
		grid-template-columns: 72px minmax(0, 1fr);
		gap: 16px;
	}

	.testimonial-card__icon {
		width: 66px;
		height: 66px;
	}

	.testimonial-card__text {
		font-size: 15px;
		line-height: 1.5;
	}

	.testimonial-card__name {
		font-size: 19px;
	}

	.testimonial-card__location {
		font-size: 14px;
	}

	.home-testimonials__controls {
		margin-top: 22px;
		margin-left: 88px;
	}
}

@media (max-width: 480px) {
	.testimonial-card {
		grid-template-columns: 1fr;
	}

	.testimonial-card__icon-wrap {
		justify-content: flex-start;
	}

	.home-testimonials__controls {
		margin-left: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.home-testimonials__branding,
	.home-testimonials__slider {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.testimonial-card.is-active .testimonial-card__icon {
		animation: none;
	}
}
/* ==========================================================================
   Lifestyle CTA
   ========================================================================== */

.lifestyle-cta {
	position: relative;
	width: 100%;
	min-height: 438px;
	overflow: hidden;
	background-color: #eeeeee;
	background-image: var(--lifestyle-bg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

.lifestyle-cta__container {
	position: relative;
	width: min(calc(100% - 80px), 1350px);
	min-height: 438px;
	margin-inline: auto;
}

.lifestyle-cta__content {
	position: absolute;
	top: 50%;
	right: 15px;
	width: min(100%, 500px);
	transform: translateY(-50%);
	opacity: 0;
}

.lifestyle-cta.is-visible .lifestyle-cta__content {
	animation:
		lifestyle-content-enter
		950ms
		cubic-bezier(0.22, 1, 0.36, 1)
		120ms
		both;
}

/* Decorative accent */

.lifestyle-cta__accent {
    display: none;
	/*position: absolute;*/
	/*top: 15px;*/
	/*left: -160px;*/
	/*width: 135px;*/
	/*height: 3px;*/
	/*overflow: hidden;*/
	/*background: #bf8d29;*/
	/*transform: scaleX(0);*/
	/*transform-origin: right center;*/
}

.lifestyle-cta.is-visible .lifestyle-cta__accent {
	animation:
		lifestyle-accent-enter
		800ms
		cubic-bezier(0.22, 1, 0.36, 1)
		450ms
		both;
}

/* Typography */

.lifestyle-cta__title {
	max-width: 430px;
	margin: 0 0 15px;
	color: #303030;
	font-size: clamp(28px, 2.5vw, 30px);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 0.98;
}

.lifestyle-cta__description {
	max-width: 470px;
	margin: 0 0 25px;
	color: #434343;
	font-size: clamp(22px, 2.1vw, 30px);
	font-weight: 200;
	letter-spacing: -0.025em;
	line-height: 0.95;
}

/* Buttons */

.lifestyle-cta__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
}

.lifestyle-cta__button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 10px 20px;
	overflow: hidden;
	border: 1px solid transparent;
	color: #ffffff;
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	isolation: isolate;
	transition:
		border-color 280ms ease,
		box-shadow 280ms ease,
		color 280ms ease,
		transform 280ms ease;
}

.lifestyle-cta__button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	transform: scaleX(0);
	transform-origin: left center;
	transition:
		transform 380ms cubic-bezier(0.22, 1, 0.36, 1);
}

.lifestyle-cta__button span {
	position: relative;
	z-index: 1;
}

.lifestyle-cta__button--primary {
	border-color: #006838;
	background: #006838;
}

.lifestyle-cta__button--primary::before {
	background: #c39231;
}

.lifestyle-cta__button--secondary {
	border-color: #c39231;
	background: #c39231;
}

.lifestyle-cta__button--secondary::before {
	background: #006838;
}

.lifestyle-cta__button:hover {
	color: #ffffff;
	transform: translateY(-3px);
	box-shadow: 0 14px 28px rgb(0 0 0 / 15%);
}

.lifestyle-cta__button:hover::before {
	transform: scaleX(1);
}

.lifestyle-cta__button:active {
	transform: translateY(-1px);
}

.lifestyle-cta__button:focus-visible {
	outline: 3px solid rgb(195 146 49 / 32%);
	outline-offset: 4px;
}

/* Premium entrance animation */

@keyframes lifestyle-content-enter {
	0% {
		opacity: 0;
		transform:
			translate3d(70px, -46%, 0)
			scale(0.985);
		filter: blur(8px);
	}

	55% {
		opacity: 1;
		filter: blur(0);
	}

	100% {
		opacity: 1;
		transform:
			translate3d(0, -50%, 0)
			scale(1);
		filter: blur(0);
	}
}

@keyframes lifestyle-accent-enter {
	0% {
		opacity: 0;
		transform: scaleX(0);
	}

	100% {
		opacity: 1;
		transform: scaleX(1);
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1100px) {
	.lifestyle-cta {
		min-height: 410px;
		background-position: center center;
	}

	.lifestyle-cta__container {
		width: min(calc(100% - 50px), 1350px);
		min-height: 410px;
	}

	.lifestyle-cta__content {
		right: 15px;
		width: min(100%, 460px);
	}

	.lifestyle-cta__accent {
		left: -120px;
		width: 100px;
	}

	.lifestyle-cta__title {
		font-size: 30px;
	}

	.lifestyle-cta__description {
		font-size: 27px;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.lifestyle-cta {
		min-height: 620px;
		background-position: 42% center;
	}

	.lifestyle-cta::before {
		content: "";
		position: absolute;
		inset: 0;
		background:
			linear-gradient(
				to bottom,
				rgb(255 255 255 / 10%) 0%,
				rgb(255 255 255 / 55%) 48%,
				rgb(255 255 255 / 96%) 72%,
				#ffffff 100%
			);
		pointer-events: none;
	}

	.lifestyle-cta__container {
		width: calc(100% - 36px);
		min-height: 620px;
	}

	.lifestyle-cta__content {
		top: auto;
		right: 0;
		bottom: 38px;
		left: 0;
		width: 100%;
		transform: none;
	}

	.lifestyle-cta.is-visible .lifestyle-cta__content {
		animation:
			lifestyle-content-enter-mobile
			850ms
			cubic-bezier(0.22, 1, 0.36, 1)
			120ms
			both;
	}

	.lifestyle-cta__accent {
		position: static;
		width: 90px;
		margin-bottom: 15px;
		transform-origin: left center;
	}

	.lifestyle-cta__title {
		max-width: 420px;
		margin-bottom: 13px;
		font-size: 29px;
		line-height: 1.05;
	}

	.lifestyle-cta__description {
		max-width: 440px;
		margin-bottom: 22px;
		font-size: 24px;
		line-height: 1.05;
	}

	.lifestyle-cta__actions {
		gap: 10px;
	}

	.lifestyle-cta__button {
		min-height: 44px;
		padding-inline: 17px;
		font-size: 14px;
	}
}

@keyframes lifestyle-content-enter-mobile {
	0% {
		opacity: 0;
		transform: translate3d(0, 45px, 0);
		filter: blur(7px);
	}

	100% {
		opacity: 1;
		transform: translate3d(0, 0, 0);
		filter: blur(0);
	}
}

@media (max-width: 480px) {
	.lifestyle-cta__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.lifestyle-cta__button {
		width: 100%;
	}
}

/* Reduced motion */

@media (prefers-reduced-motion: reduce) {
	.lifestyle-cta__content,
	.lifestyle-cta__accent {
		opacity: 1;
		transform: none;
		animation: none !important;
		filter: none;
	}
}
/* ==========================================================================
   Schedule site visit form
   ========================================================================== */

.site-visit-form-section {
	width: 100%;
	margin: 0;
	padding: 49px 0 39px;
	background: gray;
}

.site-visit-form-section__container {
	width: min(calc(100% - 80px), 1125px);
	margin-inline: auto;
}

.site-visit-form__message {
	margin: 0 0 18px;
	padding: 12px 16px;
	border-left: 4px solid;
	background: #ffffff;
	font-size: 14px;
	line-height: 1.4;
}

.site-visit-form__message--success {
	border-color: #c49333;
	color: #176b3a;
}

.site-visit-form__message--error {
	border-color: #b42318;
	color: #8b1a12;
}

.site-visit-form {
	width: 100%;
}

.site-visit-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 6px;
}

.site-visit-form__field {
	position: relative;
	min-width: 0;
	padding-bottom: 1px;
}

.site-visit-form__field input,
.site-visit-form__field select {
	display: block;
	width: 100%;
	height: 45px;
	margin: 0;
	padding: 10px 15px;
	border: 1px solid transparent;
	border-radius: 0;
	background: #f2f2f2;
	color: #3e3e3e;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.2;
	outline: 0;
	transition:
		background-color 200ms ease,
		border-color 200ms ease,
		box-shadow 200ms ease;
}

.site-visit-form__field input::placeholder {
	color: #444444;
	opacity: 1;
}

.site-visit-form__field select {
	padding-right: 58px;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

.site-visit-form__field input:focus,
.site-visit-form__field select:focus {
	border-color: #c49333;
	background: #ffffff;
	box-shadow: 0 0 0 3px rgb(196 147 51 / 18%);
}

.site-visit-form__field input.is-invalid,
.site-visit-form__field select.is-invalid {
	border-color: #e05252;
	background: #fff8f8;
}

.site-visit-form__select-wrap {
	position: relative;
}

.site-visit-form__select-arrow {
	position: absolute;
	top: 50%;
	right: 18px;
	width: 0;
	height: 0;
	border-top: 15px solid #c49333;
	border-right: 9px solid transparent;
	border-left: 9px solid transparent;
	pointer-events: none;
	transform: translateY(-35%);
}

.site-visit-form__field-error {
	display: block;
	min-height: 0;
	margin-top: 4px;
	color: #ffffff;
	font-size: 12px;
	line-height: 1.25;
}

.site-visit-form__field-error:empty {
	display: none;
}

.site-visit-form__submit-wrap {
	margin-top: 29px;
	text-align: center;
}

.site-visit-form__submit {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 276px;
	min-height: 56px;
	padding: 13px 22px;
	overflow: hidden;
	border: 1px solid #c49333;
	border-radius: 0;
	background: #c49333;
	color: #ffffff;
	font-size: 23px;
	font-weight: 400;
	line-height: 1;
	isolation: isolate;
	transition:
		border-color 300ms ease,
		box-shadow 300ms ease,
		color 300ms ease,
		transform 300ms ease;
}

.site-visit-form__submit::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: #004f2c;
	transform: translateX(-102%);
	transition:
		transform 400ms cubic-bezier(0.22, 1, 0.36, 1);
}

.site-visit-form__submit:hover {
	border-color: #004f2c;
	color: #ffffff;
	box-shadow: 0 13px 28px rgb(0 0 0 / 18%);
	transform: translateY(-3px);
}

.site-visit-form__submit:hover::before {
	transform: translateX(0);
}

.site-visit-form__submit:active {
	transform: translateY(-1px);
}

.site-visit-form__submit:focus-visible {
	outline: 3px solid rgb(255 255 255 / 45%);
	outline-offset: 4px;
}

.site-visit-form__submit:disabled {
	cursor: wait;
	opacity: 0.75;
	transform: none;
}

.site-visit-form__honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

/* Tablet */

@media (max-width: 900px) {
	.site-visit-form-section__container {
		width: min(calc(100% - 50px), 1125px);
	}

	.site-visit-form__field input,
	.site-visit-form__field select {
		font-size: 19px;
	}
}

/* Mobile */

@media (max-width: 767px) {
	.site-visit-form-section {
		padding: 36px 0;
	}

	.site-visit-form-section__container {
		width: calc(100% - 36px);
	}

	.site-visit-form__grid {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.site-visit-form__field input,
	.site-visit-form__field select {
		height: 52px;
		padding-inline: 16px;
		font-size: 17px;
	}

	.site-visit-form__field select {
		padding-right: 50px;
	}

	.site-visit-form__select-arrow {
		right: 16px;
		border-top-width: 12px;
		border-right-width: 7px;
		border-left-width: 7px;
	}

	.site-visit-form__submit-wrap {
		margin-top: 22px;
	}

	.site-visit-form__submit {
		width: 100%;
		min-width: 0;
		min-height: 52px;
		font-size: 18px;
	}
}