
.contact-banner {
	position: relative;
	width: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background-color: #05080b;
}

.contact-banner__picture {
	display: block;
	width: 100%;
}

.contact-banner__image {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	object-fit: cover;
	object-position: center;
}

@media (min-width: 768px) {
	.contact-banner__image {
		aspect-ratio: 1920 / 735;
	}
}


@media (max-width: 767px) {
	.contact-banner__image {
		width: 100%;
		height: auto;
		aspect-ratio: auto;
		object-fit: contain;
		object-position: center top;
	}
}
/* ==========================================================================
   Contact Property Enquiry
   ========================================================================== */

.contact-property-enquiry {
	--contact-enquiry-gold: #bd8724;
	--contact-enquiry-background: #d4d3d3;

	position: relative;
	width: 100%;
	padding: 44px 0 38px;
	background-color: var(--contact-enquiry-background);
}

.contact-property-enquiry__container {
	width: min(calc(100% - 80px), 1140px);
	margin-inline: auto;
}

/* Heading */

.contact-property-enquiry__heading {
	margin: 0 0 46px;
	color: var(--contact-enquiry-gold);
	font-size: clamp(38px, 3vw, 38px);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
	text-align: center;
}

/*
 * Remove the reused homepage section's outer background,
 * width and spacing while keeping its form and button.
 */

.contact-property-enquiry__form
.site-visit-form-section {
	width: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
}

.contact-property-enquiry__form
.site-visit-form-section__container {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

/*
 * Hide the existing form heading only inside this Contact section,
 * in case the reused template already contains one.
 */

.contact-property-enquiry__form
.site-visit-form-section__heading {
	display: none;
}

/* Mobile */

@media (max-width: 767px) {
	.contact-property-enquiry {
		padding: 38px 0 35px;
	}

	.contact-property-enquiry__container {
		width: calc(100% - 36px);
	}

	.contact-property-enquiry__heading {
		margin-bottom: 30px;
		font-size: 36px;
	}
}
/* ==========================================================================
   Contact Information
   Complete updated section CSS
   ========================================================================== */

.contact-information {
	--contact-information-line: #cccccc;
	--contact-information-text: #252525;
	--contact-information-gold: #bd8724;

	/*
	 * Desktop decorative-line positions.
	 * The right drop is calculated from these two values.
	 */
	--contact-line-start: 46.5%;
	--contact-line-length: 36%;
	--contact-line-thickness: 4px;

	position: relative;
	width: 100%;
	overflow: hidden;
	padding: 30px 0 30px;
	background-color: #ffffff;
	box-sizing: border-box;
}


.contact-information__container {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns:
		minmax(360px, 46%)
		minmax(480px, 54%);
	align-items: center;
	width: min(calc(100% - 130px), 1320px);
	min-height: 390px;
	margin-inline: auto;
	box-sizing: border-box;
}

.contact-information__logo-column {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	padding: 25px 65px 25px 20px;
	box-sizing: border-box;
}

.contact-information__logo {
	display: block;
	width: min(100%, 500px);
	max-width: 100%;
	height: auto;
	object-fit: contain;
	object-position: center;
}


.contact-information__details {
	align-self: center;
	min-width: 0;
	padding: 46px 20px 40px 40px;
	color: var(--contact-information-text);
	box-sizing: border-box;
}


.contact-information__address {
	margin: 0 0 20px;
	color: var(--contact-information-text);
	font-style: normal;
	font-size: clamp(20px, 1.45vw, 20px);
	font-weight: 300;
	line-height: 1.25;
}


.contact-information__phones {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	margin: 0 0 24px;
}

.contact-information__phone-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}

.contact-information__phone {
	color: var(--contact-information-text);
	font-size: clamp(22px, 1.55vw, 30px);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transition: color 250ms ease;
}

.contact-information__separator {
	color: var(--contact-information-text);
	font-size: 27px;
	font-weight: 700;
	line-height: 1;
}

.contact-information__email {
	display: inline-block;
	max-width: 100%;
	color: var(--contact-information-text);
	font-size: clamp(22px, 1.55vw, 30px);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	word-break: break-word;
	transition: color 250ms ease;
}

@media (hover: hover) and (pointer: fine) {
	.contact-information__phone:hover,
	.contact-information__email:hover {
		color: var(--contact-information-gold);
	}
}


.contact-information__lines {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;
	pointer-events: none;
}

.contact-information__line {
	position: absolute;
	display: block;
	background-color: var(--contact-information-line);
	will-change: transform;
}

/*
 * Main vertical line between the logo and contact details.
 */

.contact-information__line--main-vertical {
	top: 64px;
	left: var(--contact-line-start);
	width: var(--contact-line-thickness);
	height: 340px;
	transform-origin: top center;
}

/*
 * Horizontal line starts directly from the main vertical line.
 */

.contact-information__line--top-horizontal {
	top: 106px;
	left: var(--contact-line-start);
	width: var(--contact-line-length);
	height: var(--contact-line-thickness);
	transform-origin: left center;
}

/*
 * Right drop begins exactly where the horizontal line ends.
 *
 * The line thickness is subtracted so both line blocks overlap
 * slightly and cannot produce a visible gap.
 */

.contact-information__line--right-drop {
	top: 106px;
	left: calc(
		var(--contact-line-start) +
		var(--contact-line-length) -
		var(--contact-line-thickness)
	);
	width: var(--contact-line-thickness);
	height: 72px;
	transform-origin: top center;
}

.contact-information.is-contact-information-ready
[data-contact-information-reveal] {
	opacity: 0;
	filter: blur(3px);
}

.contact-information.is-contact-information-ready
[data-reveal-direction="left"] {
	transform: translate3d(-45px, 0, 0);
}

.contact-information.is-contact-information-ready
[data-reveal-direction="right"] {
	transform: translate3d(45px, 0, 0);
}

.contact-information.is-contact-information-visible
[data-contact-information-reveal] {
	opacity: 1;
	filter: none;
	transform: translate3d(0, 0, 0);
	transition:
		opacity 850ms ease,
		filter 700ms ease,
		transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}

.contact-information.is-contact-information-visible
.contact-information__details {
	transition-delay: 140ms;
}

@media (max-width: 1400px) {
	.contact-information {
		--contact-line-start: 46%;
		--contact-line-length: 39%;
	}

	.contact-information__container {
		width: min(calc(100% - 100px), 1180px);
	}

	.contact-information__logo-column {
		padding-right: 55px;
	}

	.contact-information__details {
		padding-left: 65px;
	}
}
@media (max-width: 1100px) {
	.contact-information {
		--contact-line-start: 42%;
		--contact-line-length: 44%;

		padding: 55px 0 62px;
	}

	.contact-information__container {
		grid-template-columns:
			minmax(300px, 42%)
			minmax(430px, 58%);
		width: min(calc(100% - 70px), 1000px);
		min-height: 350px;
	}

	.contact-information__logo-column {
		padding-right: 42px;
	}

	.contact-information__details {
		padding-left: 52px;
	}

	.contact-information__line--main-vertical {
		top: 55px;
		height: 350px;
	}

	.contact-information__line--top-horizontal {
		top: 112px;
	}

	.contact-information__line--right-drop {
		top: 112px;
		height: 65px;
	}
}


@media (max-width: 850px) {
	.contact-information {
		--contact-line-start: 0%;
		--contact-line-length: 88%;
		--contact-line-thickness: 3px;

		padding: 58px 0;
	}

	.contact-information__container {
		display: block;
		width: min(calc(100% - 50px), 700px);
		min-height: 0;
	}

	.contact-information__logo-column {
		justify-content: flex-start;
		padding: 0 0 42px;
	}

	.contact-information__logo {
		width: min(100%, 390px);
	}

	.contact-information__details {
		padding: 40px 0 0;
	}

	.contact-information__line--main-vertical {
		top: 285px;
		height: 270px;
	}

	.contact-information__line--top-horizontal {
		top: 285px;
	}

	.contact-information__line--right-drop {
		top: 285px;
		height: 55px;
	}
}


@media (max-width: 767px) {
	.contact-information {
		--contact-line-start: 0%;
		--contact-line-length: 88%;
		--contact-line-thickness: 3px;

		padding: 48px 0 52px;
	}

	.contact-information__container {
		width: calc(100% - 36px);
	}

	.contact-information__logo-column {
		justify-content: center;
		padding: 0 0 38px;
	}

	.contact-information__logo {
		width: min(100%, 315px);
	}

	.contact-information__details {
		padding: 34px 8px 0;
		text-align: left;
	}

	.contact-information__address {
		margin-bottom: 23px;
		font-size: 18px;
		line-height: 1.4;
	}

	.contact-information__phones {
		margin-bottom: 21px;
	}

	.contact-information__phone-row {
		align-items: flex-start;
		flex-direction: column;
		gap: 5px;
	}

	.contact-information__phone {
		font-size: 20px;
	}

	.contact-information__separator {
		display: none;
	}

	.contact-information__email {
		font-size: 19px;
	}

	.contact-information__line--main-vertical {
		top: 245px;
		height: 285px;
	}

	.contact-information__line--top-horizontal {
		top: 245px;
	}

	.contact-information__line--right-drop {
		top: 245px;
		height: 50px;
	}

	.contact-information.is-contact-information-ready
	[data-reveal-direction="left"],
	.contact-information.is-contact-information-ready
	[data-reveal-direction="right"] {
		transform: translate3d(0, 28px, 0);
	}
}


@media (max-width: 480px) {
	.contact-information {
		padding: 42px 0 48px;
	}

	.contact-information__container {
		width: calc(100% - 28px);
	}

	.contact-information__logo {
		width: min(100%, 270px);
	}

	.contact-information__details {
		padding-inline: 4px;
	}

	.contact-information__address {
		font-size: 16px;
	}

	.contact-information__phone {
		font-size: 18px;
	}

	.contact-information__email {
		font-size: 17px;
	}

	.contact-information__line--main-vertical,
	.contact-information__line--top-horizontal,
	.contact-information__line--right-drop {
		top: 220px;
	}
}


@media (prefers-reduced-motion: reduce) {
	.contact-information
	[data-contact-information-reveal] {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		transition: none !important;
	}

	.contact-information__line {
		transform: none !important;
		transition: none !important;
	}
}
/* ==========================================================================
   Contact Departments — complete corrected CSS
   ========================================================================== */

.contact-departments {
	--contact-departments-gold: #bd892d;
	--contact-departments-white: #ffffff;
	--contact-departments-line: rgb(255 255 255 / 82%);

	position: relative;
	width: 100%;
	height: 715px;
	overflow: hidden;
	background-color: var(--contact-departments-gold);
	color: var(--contact-departments-white);
}

/* ==========================================================================
   Main layout
   ========================================================================== */

.contact-departments__container {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 52% 48%;
	grid-template-rows: 285px 430px;
	width: 100%;
	height: 715px;
	margin: 0 auto;
}

/* ==========================================================================
   Introduction
   ========================================================================== */

.contact-departments__intro {
	display: flex;
	align-items: center;
	grid-column: 1;
	grid-row: 1;
	padding: 34px 70px 20px 165px;
	box-sizing: border-box;
}

.contact-departments__intro-text {
	max-width: 760px;
	margin: 0;
	color: var(--contact-departments-white);
	font-size: clamp(42px, 3vw, 58px);
	font-weight: 300;
	line-height: 0.98;
	letter-spacing: -0.025em;
}

/* ==========================================================================
   Shared department styles
   ========================================================================== */

.contact-departments__department {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	box-sizing: border-box;
}

.contact-departments__department-header {
	display: flex;
	align-items: center;
	gap: 17px;
}

.contact-departments__icon {
	display: block;
	flex: 0 0 auto;
	width: 82px;
	height: 82px;
	object-fit: contain;
	object-position: center;
}

.contact-departments__department-title {
	max-width: 390px;
	margin: 0;
	color: var(--contact-departments-white);
	font-size: clamp(25px, 1.65vw, 33px);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.015em;
}

.contact-departments__phone {
	display: inline-block;
	margin-top: 40px;
	color: var(--contact-departments-white);
	font-size: clamp(45px, 3.45vw, 45px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.01em;
	text-decoration: none;
	transition:
		opacity 250ms ease,
		transform 250ms ease;
}

@media (hover: hover) and (pointer: fine) {
	.contact-departments__phone:hover {
		opacity: 0.82;
		transform: translateY(-2px);
	}
}

/* ==========================================================================
   Building and Construction
   ========================================================================== */

.contact-departments__department--construction {
	grid-column: 1;
	grid-row: 2;
	padding: 50px 35px 30px 350px;
}

/* ==========================================================================
   Interior Design
   ========================================================================== */

.contact-departments__department--interior {
	grid-column: 2;
	grid-row: 1;
	padding: 184px 55px 15px 55px;
}

/* ==========================================================================
   Property Enquiry
   ========================================================================== */

.contact-departments__department--property {
	grid-column: 2;
	grid-row: 2;
	padding: 190px 55px 25px 35px;
}

/* ==========================================================================
   Decorative lines
   ========================================================================== */

.contact-departments__lines {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;
	pointer-events: none;
}

.contact-departments__line {
	position: absolute;
	display: block;
	background-color: var(--contact-departments-line);
	will-change: transform;
}

/*
 * Main vertical divider.
 */

.contact-departments__line--center-vertical {
	top: 0;
	left: calc(52% - 2px);
	width: 4px;
	height: 572px;
	transform-origin: top center;
}

/*
 * Left horizontal divider.
 */

.contact-departments__line--left-horizontal {
	top: 284px;
	left: 0;
	width: 52%;
	height: 4px;
	transform-origin: left center;
}

/*
 * Left vertical drop.
 */

.contact-departments__line--left-drop {
	top: 284px;
	left: 16%;
	width: 4px;
	height: 73px;
	transform-origin: top center;
}

/*
 * Left short return.
 */

.contact-departments__line--left-return {
	top: 354px;
	left: 11%;
	width: calc(5% + 4px);
	height: 4px;
	transform-origin: right center;
}

/*
 * Right upper horizontal line.
 */

.contact-departments__line--right-top-horizontal {
	top: 128px;
	left: 52%;
	width: 33%;
	height: 4px;
	transform-origin: left center;
}

/*
 * Right inner vertical line.
 */

.contact-departments__line--right-inner-vertical {
	top: 128px;
	left: calc(52% - 2px);
	width: 4px;
	height: 444px;
	transform-origin: top center;
}

/*
 * Property enquiry short horizontal line.
 */

.contact-departments__line--right-bottom-horizontal {
	top: 568px;
	left: 52%;
	width: 11.5%;
	height: 4px;
	transform-origin: left center;
}

/* ==========================================================================
   Entrance animation
   ========================================================================== */

.contact-departments.is-contact-departments-ready
[data-contact-departments-reveal] {
	opacity: 0;
	filter: blur(3px);
}

.contact-departments.is-contact-departments-ready
[data-reveal-direction="left"] {
	transform: translate3d(-45px, 0, 0);
}

.contact-departments.is-contact-departments-ready
[data-reveal-direction="right"] {
	transform: translate3d(45px, 0, 0);
}

.contact-departments.is-contact-departments-ready
[data-reveal-direction="bottom"] {
	transform: translate3d(0, 38px, 0);
}

.contact-departments.is-contact-departments-visible
[data-contact-departments-reveal] {
	opacity: 1;
	filter: none;
	transform: translate3d(0, 0, 0);
	transition:
		opacity 850ms ease,
		filter 700ms ease,
		transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}

.contact-departments.is-contact-departments-visible
.contact-departments__department--construction {
	transition-delay: 150ms;
}

.contact-departments.is-contact-departments-visible
.contact-departments__department--interior {
	transition-delay: 210ms;
}

.contact-departments.is-contact-departments-visible
.contact-departments__department--property {
	transition-delay: 290ms;
}

/* ==========================================================================
   Desktop below 1600px
   ========================================================================== */

@media (max-width: 1600px) {
	.contact-departments {
		height: 650px;
	}

	.contact-departments__container {
		grid-template-rows: 260px 390px;
		height: 650px;
	}

	.contact-departments__intro {
		padding-left: 120px;
	}

	.contact-departments__intro-text {
		font-size: 48px;
	}

	.contact-departments__department--construction {
		padding: 46px 30px 25px 285px;
	}

	.contact-departments__department--interior {
		padding: 155px 45px 15px 48px;
	}

	.contact-departments__department--property {
		padding: 160px 45px 20px 30px;
	}

	.contact-departments__icon {
		width: 74px;
		height: 74px;
	}

	.contact-departments__phone {
		font-size: 57px;
	}

	.contact-departments__line--center-vertical {
		height: 520px;
	}

	.contact-departments__line--left-horizontal {
		top: 259px;
	}

	.contact-departments__line--left-drop {
		top: 259px;
		height: 70px;
	}

	.contact-departments__line--left-return {
		top: 326px;
	}

	.contact-departments__line--right-top-horizontal {
		top: 116px;
	}

	.contact-departments__line--right-inner-vertical {
		top: 116px;
		height: 406px;
	}

	.contact-departments__line--right-bottom-horizontal {
		top: 518px;
	}
}

/* ==========================================================================
   Desktop below 1250px
   ========================================================================== */

@media (max-width: 1250px) {
	.contact-departments {
		height: 590px;
	}

	.contact-departments__container {
		grid-template-rows: 235px 355px;
		height: 590px;
	}

	.contact-departments__intro {
		padding: 30px 45px 20px 78px;
	}

	.contact-departments__intro-text {
		font-size: 40px;
		line-height: 1;
	}

	.contact-departments__department--construction {
		padding: 42px 25px 20px 190px;
	}

	.contact-departments__department--interior {
		padding: 132px 35px 15px 38px;
	}

	.contact-departments__department--property {
		padding: 137px 35px 20px 26px;
	}

	.contact-departments__icon {
		width: 65px;
		height: 65px;
	}

	.contact-departments__department-title {
		font-size: 24px;
	}

	.contact-departments__phone {
		margin-top: 17px;
		font-size: 46px;
	}

	.contact-departments__line--center-vertical {
		height: 475px;
	}

	.contact-departments__line--left-horizontal {
		top: 234px;
	}

	.contact-departments__line--left-drop {
		top: 234px;
		height: 67px;
	}

	.contact-departments__line--left-return {
		top: 298px;
	}

	.contact-departments__line--right-top-horizontal {
		top: 104px;
	}

	.contact-departments__line--right-inner-vertical {
		top: 104px;
		height: 372px;
	}

	.contact-departments__line--right-bottom-horizontal {
		top: 472px;
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 900px) {
	.contact-departments {
		height: auto;
		padding: 52px 0;
	}

	.contact-departments__container {
		display: block;
		width: calc(100% - 60px);
		height: auto;
	}

	.contact-departments__intro,
	.contact-departments__department--construction,
	.contact-departments__department--interior,
	.contact-departments__department--property {
		padding: 30px 18px;
	}

	.contact-departments__intro {
		padding-top: 0;
		padding-bottom: 42px;
	}

	.contact-departments__intro-text {
		max-width: 650px;
		font-size: clamp(35px, 6vw, 44px);
		line-height: 1.05;
	}

	.contact-departments__department {
		border-top: 2px solid rgb(255 255 255 / 72%);
	}

	.contact-departments__department-title {
		max-width: 430px;
		font-size: 26px;
	}

	.contact-departments__phone {
		margin-top: 15px;
		margin-left: 82px;
		font-size: 44px;
	}

	.contact-departments__lines {
		display: none;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.contact-departments {
		padding: 44px 0;
	}

	.contact-departments__container {
		width: calc(100% - 36px);
	}

	.contact-departments__intro {
		padding: 0 4px 36px;
	}

	.contact-departments__intro-text {
		font-size: 32px;
	}

	.contact-departments__department--construction,
	.contact-departments__department--interior,
	.contact-departments__department--property {
		padding: 27px 4px;
	}

	.contact-departments__department-header {
		gap: 14px;
	}

	.contact-departments__icon {
		width: 59px;
		height: 59px;
	}

	.contact-departments__department-title {
		font-size: 21px;
	}

	.contact-departments__phone {
		margin-top: 14px;
		margin-left: 73px;
		font-size: 35px;
	}

	.contact-departments.is-contact-departments-ready
	[data-reveal-direction="left"],
	.contact-departments.is-contact-departments-ready
	[data-reveal-direction="right"],
	.contact-departments.is-contact-departments-ready
	[data-reveal-direction="bottom"] {
		transform: translate3d(0, 28px, 0);
	}
}

/* ==========================================================================
   Small mobile
   ========================================================================== */

@media (max-width: 480px) {
	.contact-departments__intro-text {
		font-size: 28px;
	}

	.contact-departments__department-header {
		align-items: flex-start;
	}

	.contact-departments__icon {
		width: 52px;
		height: 52px;
	}

	.contact-departments__department-title {
		font-size: 18px;
	}

	.contact-departments__phone {
		margin-left: 66px;
		font-size: 30px;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.contact-departments
	[data-contact-departments-reveal] {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		transition: none !important;
	}

	.contact-departments__line {
		transform: none !important;
		transition: none !important;
	}
}