/*
 * Enquiry forms.
 *
 * Reproduces the former Elementor Pro form layout (large fields, white boxes, 10px column / 20px
 * row spacing, full-width submit). Used by the theme's form placeholders, and the Forminator forms
 * (design "none", so no plugin CSS) are styled to the same look below (.ew-fm).
 *
 *   .ew-form                 form
 *   .ew-form__fields         field wrapper
 *   .ew-form__group          one field (add --half for 50% width, --submit for the button row)
 *   .ew-form__input          text / email / tel / textarea / select
 *   .ew-form__check          acceptance checkbox + label
 */
.ew-form { --ew-form-col-gap: 10px; --ew-form-row-gap: 20px; --ew-form-label-color: var(--ew-white); }
.ew-form__fields { display: flex; flex-wrap: wrap; margin: 0 calc(var(--ew-form-col-gap) / -2) calc(-1 * var(--ew-form-row-gap)); }
.ew-form__group { display: flex; flex-wrap: wrap; align-items: center; width: 100%; margin-bottom: var(--ew-form-row-gap); padding: 0 calc(var(--ew-form-col-gap) / 2); }
.ew-form__group--half { width: 50%; }
.ew-form__group--submit { align-items: flex-end; }
.ew-form .ew-form__input {
	flex-grow: 1;
	width: 100%;
	max-width: 100%;
	min-height: 59px;
	padding: 7px 20px;
	border: 0;
	border-radius: 0;
	background-color: #fff;
	color: #1f2124;
	font-family: var(--ewt-body-fixed-font-family);
	font-size: var(--ewt-body-fixed-font-size);
	font-weight: var(--ewt-body-fixed-font-weight);
	line-height: var(--ewt-body-fixed-line-height);
	vertical-align: middle;
}
.ew-form .ew-form__input:focus { box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .1); outline: 0; }
.ew-form .ew-form__input::placeholder { color: inherit; font-family: inherit; opacity: .6; }
.ew-form__check { display: flex; flex-wrap: wrap; }
.ew-form__check > span { flex-basis: 100%; }
.ew-form__check input, .ew-form__check label { display: inline; }
.ew-form__check label { padding: 0; color: var(--ew-form-label-color); font-family: var(--ewt-body-fixed-font-family); font-size: var(--ewt-body-fixed-font-size); font-weight: var(--ewt-body-fixed-font-weight); line-height: var(--ewt-body-fixed-line-height); cursor: pointer; }
.ew-form .ew-form__submit {
	display: flex;
	flex-basis: 100%;
	justify-content: center;
	gap: 5px;
	min-height: 40px;
	padding: 20px 40px;
	border: none;
	background-color: var(--ew-mustard);
	color: var(--ew-purple);
	white-space: normal;
}
.ew-form .ew-form__submit:hover, .ew-form .ew-form__submit:focus { background-color: var(--ew-off-white); color: var(--ew-purple); }
@media (max-width: 767px) {
	.ew-form__group--half { width: 100%; }
}

/* ---------- Forminator forms (.ew-fm wraps them; the plugin's own CSS is off) ---------- */
.ew-fm { --ew-form-col-gap: 10px; --ew-form-row-gap: 20px; }
.ew-fm .forminator-ui { margin: 0; }
.ew-fm .forminator-hidden,
.ew-fm .ew-fm-type,
.ew-fm .forminator-row:has(.ew-fm-type) { display: none !important; } /* the placement field only carries the form type */
.ew-fm form.forminator-ui .forminator-row { margin-bottom: var(--ew-form-row-gap); padding: 0 calc(var(--ew-form-col-gap) / 2); }
.ew-fm form.forminator-ui .forminator-row-last { margin-bottom: 0; }
.ew-fm .forminator-col { width: 100%; }
/* Labels are placeholders visually (as on the original forms), but stay for screen readers. */
.ew-fm .forminator-field > .forminator-label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
.ew-fm .forminator-input,
.ew-fm .forminator-textarea {
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-height: 59px;
	padding: 7px 20px;
	border: 0;
	border-radius: 0;
	background-color: #fff;
	color: #1f2124;
	font-family: var(--ewt-body-fixed-font-family);
	font-size: var(--ewt-body-fixed-font-size);
	font-weight: var(--ewt-body-fixed-font-weight);
	line-height: var(--ewt-body-fixed-line-height);
	vertical-align: middle;
}
.ew-fm .forminator-textarea { min-height: 0; height: 215.6px; height: calc(8lh + 14px); resize: vertical; } /* 8 rows, as before */
.ew-fm .forminator-input:focus,
.ew-fm .forminator-textarea:focus { box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .1); outline: 0; }
.ew-fm .forminator-input::placeholder,
.ew-fm .forminator-textarea::placeholder { color: inherit; font-family: inherit; opacity: .6; }
/* Permission checkbox: the native box and white label of the original form. */
.ew-fm .forminator-checkbox { display: block; color: var(--ew-white); font-family: var(--ewt-body-fixed-font-family); font-size: var(--ewt-body-fixed-font-size); font-weight: var(--ewt-body-fixed-font-weight); line-height: var(--ewt-body-fixed-line-height); cursor: pointer; }
.ew-fm .forminator-checkbox input { display: inline; margin: 0 .4em 0 0; vertical-align: baseline; }
.ew-fm .forminator-field-gdprcheckbox .forminator-field { padding-bottom: 2.4px; } /* the row height of the original acceptance field */
.ew-fm .forminator-checkbox-box { display: none; }
.ew-fm .forminator-checkbox-label { display: inline; }
.ew-fm .forminator-checkbox a { color: inherit; text-decoration: underline; }
/* Submit button */
.ew-fm .forminator-button-submit {
	display: flex;
	justify-content: center;
	gap: 5px;
	width: 100%;
	min-height: 40px;
	padding: 20px 40px;
	border: none;
	border-radius: 0;
	background-color: var(--ew-mustard);
	color: var(--ew-purple);
	font-family: var(--ew-font-gibson);
	font-size: 20px;
	font-weight: 700;
	line-height: 1em;
	text-align: center;
	text-transform: uppercase;
	white-space: normal;
	cursor: pointer;
	transition: all .3s;
}
.ew-fm .forminator-button-submit:hover,
.ew-fm .forminator-button-submit:focus { background-color: var(--ew-off-white); color: var(--ew-purple); }
.ew-fm .forminator-button-submit[disabled] { opacity: .7; cursor: progress; }
/* Messages */
.ew-fm .forminator-error-message { display: block; margin-top: 5px; color: #ffb3b3; font-family: var(--ewt-body-fixed-font-family); font-size: 14px; line-height: 1.3; }
.ew-fm .forminator-has_error .forminator-input,
.ew-fm .forminator-has_error .forminator-textarea { box-shadow: inset 0 0 0 2px #e5484d; }
.ew-fm .forminator-response-message { margin: 0 calc(var(--ew-form-col-gap) / 2) var(--ew-form-row-gap); padding: 15px 20px; font-family: var(--ewt-body-fixed-font-family); font-size: var(--ewt-body-fixed-font-size); line-height: 1.4; }
.ew-fm .forminator-response-message:empty,
.ew-fm .forminator-response-message[aria-hidden="true"] { display: none; }
.ew-fm .forminator-response-message.forminator-success { background-color: var(--ew-white); color: #1f2124; }
.ew-fm .forminator-response-message.forminator-error { background-color: #fff0f0; color: #8a1f24; }
.ew-fm .forminator-required { display: none; }

/* Footer newsletter: the field and button on one line (a third wide button, as on the original). */
.ew-fm--newsletter form.forminator-ui { display: flex; flex-wrap: wrap; }
.ew-fm--newsletter .forminator-response-message { flex: 0 0 100%; margin: 0 0 10px; }
.ew-fm--newsletter form.forminator-ui .forminator-row { margin: 0; padding: 0; }
.ew-fm--newsletter .forminator-row:not(.forminator-row-last) { flex: 0 0 66.6666%; }
.ew-fm--newsletter .forminator-row-last { display: flex; flex: 0 0 33.3333%; min-width: 0; }
.ew-fm--newsletter .forminator-row-last .forminator-col,
.ew-fm--newsletter .forminator-row-last .forminator-field { display: flex; flex: 1 0 auto; }
.ew-fm--newsletter .forminator-input { min-height: 47px; padding: 6px 16px; font-family: var(--ew-font-jakarta); font-size: 14px; font-weight: 300; line-height: 1.4em; }
.ew-fm--newsletter .forminator-button-submit { flex: 1 0 auto; width: auto; min-height: 47px; padding: 13px 30px 14px; background-color: var(--ew-mustard); color: var(--ew-white); }
.ew-fm--newsletter .forminator-button-submit:hover,
.ew-fm--newsletter .forminator-button-submit:focus { background-color: var(--ew-mustard); color: var(--ew-white); }
.ew-fm--newsletter .forminator-error-message { position: absolute; }
@media (max-width: 1024px) {
	.ew-fm--newsletter .forminator-row:not(.forminator-row-last),
	.ew-fm--newsletter .forminator-row-last { flex-basis: 100%; }
}
