/* Contact page — scoped so Fluent Forms elsewhere keeps its own appearance. */
.dgc-contact-page .dgc-contact-hero {
	position: relative;
	overflow: hidden;
}

.dgc-contact-page .dgc-contact-hero::after {
	position: absolute;
	right: -140px;
	top: -190px;
	width: 430px;
	height: 430px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.dgc-contact-page .dgc-contact-hero::before {
	position: absolute;
	left: -70px;
	bottom: -90px;
	width: 210px;
	height: 210px;
	border: 28px solid rgba(80, 199, 235, 0.12);
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.dgc-contact-page .dgc-contact-quick-card,
.dgc-contact-page .dgc-contact-form-card,
.dgc-contact-page .dgc-office-card {
	box-shadow: 0 22px 55px rgba(34, 33, 35, 0.08);
}

.dgc-contact-page .dgc-contact-detail a {
	color: #222123;
	text-decoration: none;
	text-underline-offset: 4px;
}

.dgc-contact-page .dgc-contact-detail a:hover,
.dgc-contact-page .dgc-contact-detail a:focus-visible {
	color: #f37c20;
	text-decoration: underline;
}

.dgc-contact-page .dgc-ct-phone a {
	color: #1688aa;
}

.dgc-contact-page .dgc-ct-email a {
	color: #4e8126;
}

.dgc-contact-page .dgc-contact-form-card {
	position: relative;
	overflow: hidden;
}

.dgc-contact-page .dgc-contact-form-card::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 6px;
	background: linear-gradient(90deg, #f37c20 0 34%, #50c7eb 34% 67%, #8bc540 67% 100%);
	content: "";
}

.dgc-contact-page .dgc-enquiry-tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin: 2px 0 16px;
	padding: 6px;
	border: 1px solid #dfdbd4;
	border-radius: 12px;
	background: #f4f1ec;
}

.dgc-contact-page .dgc-enquiry-tab {
	min-height: 48px;
	padding: 11px 16px;
	border: 1px solid transparent;
	border-radius: 8px;
	background: transparent;
	color: #3f413f;
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.25;
	cursor: pointer;
	transition: color 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.dgc-contact-page .dgc-enquiry-tab:hover {
	background: #fff;
	color: #222123;
}

.dgc-contact-page .dgc-enquiry-tab:focus-visible {
	box-shadow: 0 0 0 3px rgba(139, 197, 64, 0.3);
	outline: none;
}

.dgc-contact-page .dgc-enquiry-tab--business[aria-selected="true"] {
	border-color: #f37c20;
	background: #f37c20;
	color: #fff;
}

.dgc-contact-page .dgc-enquiry-tab--jobs[aria-selected="true"] {
	border-color: #50c7eb;
	background: #50c7eb;
	color: #18272c;
}

.dgc-contact-page .dgc-enquiry-panel:not(.is-active) {
	display: none;
}

/* Elementor 4 preserves container IDs but can omit custom container classes. */
.dgc-contact-page #dgc-business-enquiry-panel,
.dgc-contact-page #dgc-job-enquiry-panel {
	width: 100%;
}

.dgc-contact-page #dgc-job-enquiry-panel {
	display: none;
}

.dgc-contact-page #dgc-business-enquiry-panel.is-active,
.dgc-contact-page #dgc-job-enquiry-panel.is-active {
	display: flex;
}

.dgc-contact-page .dgc-enquiry-panel.is-active {
	animation: dgc-enquiry-reveal 180ms ease-out;
}

@keyframes dgc-enquiry-reveal {
	from {
		opacity: 0;
		transform: translateY(5px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.dgc-contact-page .dgc-contact-form {
	margin-top: 10px;
}

.dgc-contact-page .dgc-contact-form .fluentform {
	font-family: inherit;
}

.dgc-contact-page .dgc-contact-form .ff-el-group {
	margin-bottom: 20px;
}

.dgc-contact-page .dgc-contact-form small {
	display: block;
	margin-top: 7px;
	color: #6b6f6d;
	font-size: 13px;
	line-height: 1.45;
}

.dgc-contact-page .dgc-form-error {
	margin-bottom: 18px;
	padding: 15px 17px;
	border: 1px solid #c84a2f;
	border-radius: 8px;
	background: #fff3f0;
	color: #8f2f20;
}

.dgc-contact-page .dgc-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.dgc-contact-page .dgc-contact-form .ff-t-container {
	column-gap: 18px;
}

.dgc-contact-page .dgc-contact-form .ff-el-input--label {
	margin-bottom: 8px;
}

.dgc-contact-page .dgc-contact-form .ff-el-input--label label {
	color: #222123;
	font-size: 15px;
	font-weight: 650;
	line-height: 1.35;
}

.dgc-contact-page .dgc-contact-form .ff-el-input--label.ff-el-is-required label::after {
	color: #c84a2f;
}

.dgc-contact-page .dgc-contact-form input[type="text"],
.dgc-contact-page .dgc-contact-form input[type="email"],
.dgc-contact-page .dgc-contact-form input[type="tel"],
.dgc-contact-page .dgc-contact-form input[type="file"],
.dgc-contact-page .dgc-contact-form select,
.dgc-contact-page .dgc-contact-form textarea {
	width: 100%;
	min-height: 54px;
	padding: 13px 15px;
	border: 1px solid #d8d4cd;
	border-radius: 8px;
	background: #fbfaf8;
	box-shadow: none;
	color: #222123;
	font: inherit;
	font-size: 16px;
	line-height: 1.45;
	transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.dgc-contact-page .dgc-contact-form textarea {
	min-height: 150px;
	resize: vertical;
}

.dgc-contact-page .dgc-contact-form input::placeholder,
.dgc-contact-page .dgc-contact-form textarea::placeholder {
	color: #858984;
	opacity: 1;
}

.dgc-contact-page .dgc-contact-form input:focus,
.dgc-contact-page .dgc-contact-form select:focus,
.dgc-contact-page .dgc-contact-form textarea:focus {
	border-color: #f37c20;
	background: #fff;
	box-shadow: 0 0 0 3px rgba(243, 124, 32, 0.16);
	outline: none;
}

.dgc-contact-page .dgc-contact-form input[type="file"] {
	height: auto;
	min-height: 54px;
	padding: 9px 10px;
	color: #5d625f;
}

.dgc-contact-page .dgc-contact-form input[type="file"]::file-selector-button {
	margin-right: 12px;
	padding: 9px 13px;
	border: 0;
	border-radius: 6px;
	background: #eaf7fb;
	color: #17637a;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.dgc-contact-page .dgc-contact-form .ff-el-is-error input,
.dgc-contact-page .dgc-contact-form .ff-el-is-error select,
.dgc-contact-page .dgc-contact-form .ff-el-is-error textarea {
	border-color: #c84a2f;
}

.dgc-contact-page .dgc-contact-form .text-danger,
.dgc-contact-page .dgc-contact-form .error {
	color: #a93424;
	font-size: 14px;
}

.dgc-contact-page .dgc-contact-form .ff-btn-submit {
	min-height: 54px;
	padding: 14px 28px;
	border: 1px solid #f37c20;
	border-radius: 7px;
	background: #f37c20;
	box-shadow: none;
	color: #fff;
	font: inherit;
	font-size: 16px;
	font-weight: 650;
	line-height: 1.2;
	cursor: pointer;
	transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.dgc-contact-page .dgc-contact-form .ff-btn-submit:hover,
.dgc-contact-page .dgc-contact-form .ff-btn-submit:focus-visible {
	border-color: #222123;
	background: #222123;
	color: #fff;
	transform: translateY(-1px);
}

.dgc-contact-page .dgc-contact-form--jobs .ff-btn-submit {
	border-color: #50c7eb;
	background: #50c7eb;
	color: #18272c;
}

.dgc-contact-page .dgc-contact-form--jobs .ff-btn-submit:hover,
.dgc-contact-page .dgc-contact-form--jobs .ff-btn-submit:focus-visible {
	border-color: #8bc540;
	background: #8bc540;
	color: #18230f;
}

.dgc-contact-page .dgc-contact-form .ff-message-success {
	padding: 18px 20px;
	border: 1px solid #8bc540;
	border-radius: 8px;
	background: #f3f9ec;
	box-shadow: none;
	color: #284217;
}

.dgc-contact-page .dgc-office-card__photo,
.dgc-contact-page .dgc-office-card__photo img {
	display: block;
	width: 100%;
	height: 100%;
}

.dgc-contact-page .dgc-office-card__photo {
	position: relative;
	overflow: hidden;
	height: 210px;
}

.dgc-contact-page .dgc-office-card__photo img {
	object-fit: cover;
	object-position: center center;
	transition: transform 260ms ease;
}

.dgc-contact-page .dgc-office-card__photo::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, rgba(34, 33, 35, 0.12), transparent 58%);
	content: "";
	pointer-events: none;
}

.dgc-contact-page .dgc-office-card__photo:hover img,
.dgc-contact-page .dgc-office-card__photo:focus-visible img {
	transform: scale(1.035);
}

.dgc-contact-page .dgc-office-card__photo:focus-visible {
	box-shadow: inset 0 0 0 4px #8bc540;
	outline: none;
}

/*
 * Lightweight brand geometry for the spacious enquiry section. The circle,
 * triangle and square are one tiny inline vector; the halftone edge fades are
 * CSS gradients. Nothing here adds a request, script, animation or markup.
 */
.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs]) {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	contain: paint;
	background-image:
		radial-gradient(ellipse at 3% 82%, rgba(139, 197, 64, 0.08), transparent 28%),
		radial-gradient(ellipse at 98% 28%, rgba(243, 124, 28, 0.06), transparent 27%),
		radial-gradient(ellipse at 96% 82%, rgba(80, 199, 235, 0.06), transparent 30%);
}

.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs]) > * {
	position: relative;
	z-index: 1;
}

.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs])::before,
.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs])::after {
	position: absolute;
	inset: 0;
	z-index: 0;
	content: "";
	pointer-events: none;
}

.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs])::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 1000' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='32' cy='235' r='142' stroke='%2350c7eb' stroke-width='3' opacity='.36'/%3E%3Cpath d='M-36 770 78 966-150 966Z' stroke='%23f37c1c' stroke-width='4' opacity='.24'/%3E%3Cpath d='M1445 100 1584 342 1306 342Z' stroke='%23f37c1c' stroke-width='4' opacity='.34'/%3E%3Crect x='1390' y='585' width='205' height='205' rx='7' transform='rotate(12 1492.5 687.5)' stroke='%2350c7eb' stroke-width='4' opacity='.32'/%3E%3Ccircle cx='1554' cy='842' r='82' stroke='%238bc540' stroke-width='5' opacity='.31'/%3E%3C/g%3E%3C/svg%3E");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs])::after {
	background-image:
		radial-gradient(circle, rgba(139, 197, 64, 0.3) 0 2.1px, transparent 2.6px),
		radial-gradient(circle, rgba(80, 199, 235, 0.23) 0 1.7px, transparent 2.2px),
		radial-gradient(circle, rgba(243, 124, 28, 0.24) 0 1.8px, transparent 2.3px);
	background-position: 0 0, 10px 11px, 5px 7px;
	background-size: 25px 25px, 29px 29px, 33px 33px;
	-webkit-mask-image:
		radial-gradient(ellipse 30% 39% at -2% 74%, #000 4%, rgba(0, 0, 0, 0.8) 38%, transparent 100%),
		radial-gradient(ellipse 26% 42% at 102% 39%, #000 3%, rgba(0, 0, 0, 0.78) 39%, transparent 100%);
	mask-image:
		radial-gradient(ellipse 30% 39% at -2% 74%, #000 4%, rgba(0, 0, 0, 0.8) 38%, transparent 100%),
		radial-gradient(ellipse 26% 42% at 102% 39%, #000 3%, rgba(0, 0, 0, 0.78) 39%, transparent 100%);
}

@media (min-width: 1280px) {
	.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs])::before {
		background-size: max(1600px, 100%) 100%;
	}

	.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs])::after {
		background-size: 27px 27px, 31px 31px, 35px 35px;
	}
}

@media (max-width: 1024px) {
	.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs])::before,
	.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs])::after {
		opacity: 0.58;
	}
}

@media (max-width: 767px) {
	.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs])::before,
	.dgc-contact-page .elementor-74 > .e-con.e-parent:has([data-dgc-enquiry-tabs])::after {
		display: none;
	}

	.dgc-contact-page .dgc-contact-hero::after {
		right: -210px;
		top: -230px;
	}

	.dgc-contact-page .dgc-contact-form .ff-t-container {
		display: block;
	}

	.dgc-contact-page .dgc-enquiry-tab {
		padding-inline: 10px;
		font-size: 14px;
	}

	.dgc-contact-page .dgc-office-card__media {
		width: 100%;
	}

	.dgc-contact-page .dgc-office-card__photo {
		height: 190px;
	}

	.dgc-contact-page .dgc-contact-form .ff-btn-submit {
		width: 100%;
	}
}

/* Shared hero rhythm: one desktop height across core company pages. */
@media (min-width: 1025px) {
	.dgc-contact-page :is(.dgc-contact-hero, .elementor-element-506f801) {
		min-height: 320px !important;
		height: auto !important;
		box-sizing: border-box;
		padding-top: 28px !important;
		padding-bottom: 28px !important;
	}

	.dgc-contact-page :is(.dgc-contact-hero, .elementor-element-506f801) > .e-con-inner {
		min-height: 0 !important;
		height: auto !important;
	}
}
