.wp-block-studio-zed-contact-form-section {
	margin-block: 0;
	max-width: none;
	width: 100%;
}

.contact-form-section {
	background: var(--sz-chalk);
	padding: 0 var(--layout-margin-desktop) var(--layout-margin-desktop);
}

.contact-form-section__frame {
	--contact-form-chamfer: var(--card-chamfer-size);
	background: var(--sz-grid-line);
	clip-path: polygon(
		var(--contact-form-chamfer) 0,
		calc(100% - var(--contact-form-chamfer)) 0,
		100% var(--contact-form-chamfer),
		100% calc(100% - var(--contact-form-chamfer)),
		calc(100% - var(--contact-form-chamfer)) 100%,
		var(--contact-form-chamfer) 100%,
		0 calc(100% - var(--contact-form-chamfer)),
		0 var(--contact-form-chamfer)
	);
	padding: 1px;
}

.contact-form-section__inner {
	background: var(--sz-chalk);
	clip-path: inherit;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	min-height: 46rem;
}

.contact-form-section__media {
	min-height: 0;
	overflow: hidden;
}

.contact-form-section__image {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.contact-form-section__content {
	padding: 3.75rem 6.25rem 4.5rem;
}

.contact-form-section__heading {
	font-family: var(--font-heading);
	font-size: var(--type-heading-s-size);
	font-weight: 500;
	line-height: var(--type-heading-s-line);
	margin: 0 0 1.25rem;
	text-transform: uppercase;
}

.contact-form-section__body {
	font-family: var(--font-body);
	font-size: var(--type-body-r-size);
	font-weight: var(--type-body-r-weight);
	line-height: var(--type-body-r-line);
	margin: 0 0 2rem;
	max-width: 38rem;
}

.contact-form-section__body > :first-child,
.contact-form-section__legal > :first-child {
	margin-top: 0;
}

.contact-form-section__body > :last-child,
.contact-form-section__legal > :last-child {
	margin-bottom: 0;
}

.contact-form-section__legal {
	font-family: var(--font-body);
	font-size: var(--type-body-s-size);
	font-weight: var(--type-body-s-weight);
	line-height: var(--type-body-s-line);
	margin: 0 0 1.25rem;
}

@media (max-width: 64rem) {
	.contact-form-section {
		padding-inline: var(--layout-margin-tablet);
		padding-bottom: var(--layout-margin-tablet);
	}

	.contact-form-section__inner {
		display: flex;
		flex-direction: column;
		min-height: 0;
	}

	.contact-form-section__media {
		aspect-ratio: 4 / 3;
	}

	.contact-form-section__content {
		padding: 2.75rem 2.5rem 3rem;
	}
}

@media (max-width: 48rem) {
	.contact-form-section {
		padding-inline: var(--layout-margin-mobile);
		padding-bottom: var(--layout-margin-mobile);
	}

	.contact-form-section__content {
		padding: 2.5rem var(--layout-gutter-mobile) 3rem;
	}
}

/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
   Contact form — WPForms
   -------------------------------------------------------------------------- */

.contact-form-section__form .wpforms-container {
	--sz-contact-field-gap: var(--layout-gutter-desktop);
	--sz-contact-row-gap: 1.75rem;
	--sz-contact-control-height: 3rem;
	--sz-contact-label-size: 0.625rem;
	--sz-contact-control-font-size: var(--type-body-s-size);
	--sz-contact-control-line-height: var(--type-body-s-line);
	margin: 0;
}

.contact-form-section__form .wpforms-form {
	font-family: var(--font-body);
}

.contact-form-section__form .wpforms-form .wpforms-field-container {
	display: flow-root;
}

/* WPForms size classes must not constrain this component. */
.contact-form-section__form .wpforms-form input.wpforms-field-large,
.contact-form-section__form .wpforms-form input.wpforms-field-medium,
.contact-form-section__form .wpforms-form select.wpforms-field-large,
.contact-form-section__form .wpforms-form textarea.wpforms-field-medium,
.contact-form-section__form .wpforms-form .wpforms-field-row.wpforms-field-large {
	max-width: none !important;
	width: 100% !important;
}

.contact-form-section__form .wpforms-form .wpforms-field {
	box-sizing: border-box;
	clear: both;
	padding: 0 0 var(--sz-contact-row-gap) !important;
}

/* The following submit area supplies the final field-to-legal spacing. */
.contact-form-section__form .wpforms-form .wpforms-field-container > .wpforms-field:last-child {
	padding-bottom: 0 !important;
}

/* Contact number + enquiry type. */
.contact-form-section__form .wpforms-form .wpforms-field.wpforms-one-half {
	clear: none;
	float: left;
	margin-left: var(--sz-contact-field-gap) !important;
	width: calc(50% - (var(--sz-contact-field-gap) / 2)) !important;
}

.contact-form-section__form .wpforms-form .wpforms-field.wpforms-one-half.wpforms-first {
	clear: both;
	margin-left: 0 !important;
}

/* Name: replace WPForms' internal column geometry with the same grid/gap. */
.contact-form-section__form .wpforms-form .wpforms-field-name > .wpforms-field-label {
	display: none !important;
}

.contact-form-section__form .wpforms-form .wpforms-field-name .wpforms-field-row {
	display: grid !important;
	gap: var(--sz-contact-field-gap) !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0 !important;
	max-width: none !important;
	width: 100% !important;
}

/* WPForms clearfix elements become unwanted grid items in this layout. */
.contact-form-section__form .wpforms-form .wpforms-field-name .wpforms-field-row::before,
.contact-form-section__form .wpforms-form .wpforms-field-name .wpforms-field-row::after {
	content: none !important;
	display: none !important;
}

.contact-form-section__form .wpforms-form .wpforms-field-name .wpforms-field-row-block {
	display: flex !important;
	flex-direction: column-reverse;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
}

/* Keep First and Last name in their intended left-to-right grid positions. */
.contact-form-section__form .wpforms-form .wpforms-field-name .wpforms-field-row-block.wpforms-first {
	grid-column: 1;
	grid-row: 1;
}

.contact-form-section__form .wpforms-form .wpforms-field-name .wpforms-field-row-block:not(.wpforms-first) {
	grid-column: 2;
	grid-row: 1;
}

/* Labels */
.contact-form-section__form .wpforms-form .wpforms-field-label,
.contact-form-section__form .wpforms-form .wpforms-field-name .wpforms-field-sublabel {
	color: var(--color-text) !important;
	display: block;
	font-family: var(--font-body) !important;
	font-size: var(--sz-contact-label-size) !important;
	font-weight: 500 !important;
	letter-spacing: 0.08em !important;
	line-height: var(--type-tag-line) !important;
	margin: 0 0 0.5rem !important;
	text-transform: uppercase;
}

.contact-form-section__form .wpforms-form .wpforms-required-label {
	display: none !important;
}

.contact-form-section__form .wpforms-form .wpforms-field-name .wpforms-sublabel-hide {
	clip: auto !important;
	clip-path: none !important;
	height: auto !important;
	overflow: visible !important;
	position: static !important;
	width: auto !important;
}

.contact-form-section__form .wpforms-form .wpforms-field-name .wpforms-field-sublabel {
	font-size: 0 !important;
}

.contact-form-section__form .wpforms-form .wpforms-field-name .wpforms-first .wpforms-field-sublabel::after {
	content: "First name";
	font-size: var(--sz-contact-label-size);
}

.contact-form-section__form .wpforms-form .wpforms-field-name .wpforms-field-row-block:not(.wpforms-first) .wpforms-field-sublabel::after {
	content: "Last name";
	font-size: var(--sz-contact-label-size);
}

/* Match artwork wording while retaining the actual WPForms labels for accessibility. */
.contact-form-section__form .wpforms-form #wpforms-253-field_1-container > .wpforms-field-label,
.contact-form-section__form .wpforms-form #wpforms-253-field_3-container > .wpforms-field-label,
.contact-form-section__form .wpforms-form #wpforms-253-field_4-container > .wpforms-field-label {
	font-size: 0 !important;
}

.contact-form-section__form .wpforms-form #wpforms-253-field_1-container > .wpforms-field-label::after,
.contact-form-section__form .wpforms-form #wpforms-253-field_3-container > .wpforms-field-label::after,
.contact-form-section__form .wpforms-form #wpforms-253-field_4-container > .wpforms-field-label::after {
	font-size: var(--sz-contact-label-size);
}

.contact-form-section__form .wpforms-form #wpforms-253-field_1-container > .wpforms-field-label::after { content: "Email address"; }
.contact-form-section__form .wpforms-form #wpforms-253-field_3-container > .wpforms-field-label::after { content: "Contact number"; }
.contact-form-section__form .wpforms-form #wpforms-253-field_4-container > .wpforms-field-label::after { content: "Type of enquiry"; }

/* Controls */
.contact-form-section__form .wpforms-form input[type="text"],
.contact-form-section__form .wpforms-form input[type="email"],
.contact-form-section__form .wpforms-form input[type="number"],
.contact-form-section__form .wpforms-form select,
.contact-form-section__form .wpforms-form textarea {
	appearance: none;
	background: var(--sz-chalk) !important;
	border: var(--stroke-width) solid var(--sz-concrete) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	box-sizing: border-box;
	color: var(--color-text) !important;
	font-family: var(--font-body) !important;
	font-size: var(--sz-contact-control-font-size) !important;
	font-weight: var(--type-body-r-weight) !important;
	line-height: var(--sz-contact-control-line-height) !important;
	margin: 0 !important;
	padding: 0.5rem 0.75rem !important;
	transition: border-color var(--control-transition);
	width: 100% !important;
}

.contact-form-section__form .wpforms-form input[type="text"],
.contact-form-section__form .wpforms-form input[type="email"],
.contact-form-section__form .wpforms-form input[type="number"],
.contact-form-section__form .wpforms-form select {
	height: var(--sz-contact-control-height) !important;
}

.contact-form-section__form .wpforms-form textarea {
	height: 9rem !important;
	min-height: 9rem !important;
	resize: vertical;
}

.contact-form-section__form .wpforms-form input::placeholder,
.contact-form-section__form .wpforms-form textarea::placeholder {
	color: var(--sz-concrete) !important;
	opacity: 1 !important;
}

.contact-form-section__form .wpforms-form select:required:invalid {
	color: var(--sz-concrete) !important;
}

.contact-form-section__form .wpforms-form select option {
	color: var(--color-text);
}

.contact-form-section__form .wpforms-form .wpforms-field-select-style-classic select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m2 2 4 4 4-4' fill='none' stroke='%23b9bbb5' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-position: right 0.75rem center !important;
	background-repeat: no-repeat !important;
	background-size: 0.75rem 0.5rem !important;
	padding-right: 2.5rem !important;
}

/* Timber active state; retain the global focus-visible outline. */
.contact-form-section__form .wpforms-form input:focus,
.contact-form-section__form .wpforms-form select:focus,
.contact-form-section__form .wpforms-form textarea:focus,
.contact-form-section__form .wpforms-form input:focus-visible,
.contact-form-section__form .wpforms-form select:focus-visible,
.contact-form-section__form .wpforms-form textarea:focus-visible {
	border-color: var(--sz-timber) !important;
	box-shadow: none !important;
}

/* A phone number is not a quantity: hide browser number steppers visually. */
.contact-form-section__form .wpforms-form input[type="number"]::-webkit-inner-spin-button,
.contact-form-section__form .wpforms-form input[type="number"]::-webkit-outer-spin-button {
	appearance: none;
	margin: 0;
}

.contact-form-section__form .wpforms-form input[type="number"] {
	-moz-appearance: textfield;
}

/* Validation */
.contact-form-section__form .wpforms-error-container,
.contact-form-section__form .wpforms-error-container p,
.contact-form-section__form .wpforms-confirmation-container,
.contact-form-section__form .wpforms-confirmation-container p,
.contact-form-section__form .wpforms-confirmation-container-full,
.contact-form-section__form .wpforms-confirmation-container-full p,
.contact-form-section__form .wpforms-form label.wpforms-error,
.contact-form-section__form .wpforms-form em.wpforms-error,
.contact-form-section__form .wpforms-form .wpforms-field-description,
.contact-form-section__form .wpforms-form .wpforms-field-limit-text {
	font-family: var(--font-body) !important;
	font-size: var(--type-body-s-size) !important;
	font-weight: var(--type-body-s-weight) !important;
	line-height: var(--type-body-s-line) !important;
}

.contact-form-section__form .wpforms-form label.wpforms-error {
	color: var(--color-accent) !important;
	margin-top: 0.5rem !important;
}

.contact-form-section__form .wpforms-form input.wpforms-error,
.contact-form-section__form .wpforms-form select.wpforms-error,
.contact-form-section__form .wpforms-form textarea.wpforms-error {
	border-color: var(--color-accent) !important;
}

/* Submit area */
.contact-form-section__form .wpforms-form .wpforms-submit-container {
	clear: both;
	padding: 1rem 0 0 !important;
}

.contact-form-section__form .wpforms-form .contact-form-section__legal {
	font-family: var(--font-body);
	font-size: var(--type-body-s-size);
	font-weight: var(--type-body-s-weight);
	line-height: var(--type-body-s-line);
	margin: 0 0 1rem !important;
}

.contact-form-section__form .wpforms-form button[type="submit"].wpforms-submit {
	align-items: center;
	background: var(--sz-timber) !important;
	border: var(--stroke-width) solid var(--sz-timber) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--sz-chalk) !important;
	cursor: pointer;
	display: inline-flex;
	font-family: var(--font-body) !important;
	font-size: var(--type-button-size) !important;
	font-weight: 500 !important;
	justify-content: center;
	line-height: var(--type-button-line) !important;
	min-height: 0 !important;
	padding: 1.125rem 1.5rem !important;
	text-transform: none;
	transition: none !important;
}

.contact-form-section__form .wpforms-form button[type="submit"].wpforms-submit:hover,
.contact-form-section__form .wpforms-form button[type="submit"].wpforms-submit:focus-visible {
	background: var(--sz-graphite) !important;
	border-color: var(--sz-graphite) !important;
	color: var(--sz-chalk) !important;
}

.contact-form-section__form .wpforms-form .wpforms-submit-spinner {
	margin-left: 0.75rem;
}

@media (max-width: 64rem) {
	.contact-form-section__form .wpforms-container {
		--sz-contact-field-gap: var(--layout-gutter-tablet);
		--sz-contact-control-height: 3rem;
		--sz-contact-control-font-size: var(--type-body-r-size);
		--sz-contact-control-line-height: var(--type-body-r-line);
	}

	.contact-form-section__form .wpforms-form button[type="submit"].wpforms-submit {
		padding: 1.25rem 1.5rem !important;
	}
}

@media (max-width: 48rem) {
	.contact-form-section__form .wpforms-container {
		--sz-contact-field-gap: var(--layout-gutter-mobile);
		--sz-contact-row-gap: 1.5rem;
	}

	.contact-form-section__form .wpforms-form .wpforms-field.wpforms-one-half,
	.contact-form-section__form .wpforms-form .wpforms-field.wpforms-one-half.wpforms-first {
		clear: both;
		float: none;
		margin-left: 0 !important;
		width: 100% !important;
	}

}

@media (max-width: 64rem) {
	.contact-form-section__form .wpforms-form .contact-form-section__legal {
		font-size: var(--type-body-r-size);
		font-weight: var(--type-body-r-weight);
		line-height: var(--type-body-r-line);
	}
}
