/* ==============================================================
 * Gravity Forms – Meridian West Brand Theme (light)
 *
 * Auto-applies to forms rendered through the mw_gravity_form widget
 * (the custom Elementor widget that wraps output in .mw-gravity-form).
 *
 * EXCLUDES: form 1 (Contact Us) — that page has its own bespoke
 * styling (see gravity-forms-dark.css opt-in theme + legacy-app.css).
 *
 * Targets Gravity Forms 2.5+ Orbital theme.
 *
 * Scope is .mw-gravity-form .gform_wrapper:not(#gform_wrapper_1)
 * so the contact form (form 1) keeps its existing treatment.
 * ============================================================== */

/* ── Override GF Orbital CSS custom properties ── */
.mw-gravity-form .gform_wrapper.gform-theme:not(#gform_wrapper_1),
.mw-gravity-form .gform_wrapper[data-form-theme]:not(#gform_wrapper_1) {
	--gf-color-primary: #2F31FC !important;
	--gf-color-primary-rgb: 47, 49, 252 !important;
	--gf-color-primary-contrast: #ffffff !important;
	--gf-color-primary-contrast-rgb: 255, 255, 255 !important;
	--gf-color-primary-darker: #1F21D9 !important;
	--gf-color-primary-lighter: #5A5CFF !important;

	--gf-color-out-ctrl-dark: #0D0C33 !important;
	--gf-color-out-ctrl-dark-rgb: 13, 12, 51 !important;
	--gf-color-out-ctrl-dark-darker: #0D0C33 !important;
	--gf-color-out-ctrl-dark-lighter: rgba(13, 12, 51, 0.65) !important;
	--gf-color-out-ctrl-light: rgba(13, 12, 51, 0.18) !important;

	--gf-ctrl-label-color-primary: #0D0C33 !important;
	--gf-ctrl-label-color-secondary: rgba(13, 12, 51, 0.65) !important;
	--gf-ctrl-border-color: rgba(13, 12, 51, 0.25) !important;

	--gf-color-in-ctrl-primary: #2F31FC !important;
	--gf-color-in-ctrl-primary-rgb: 47, 49, 252 !important;
	--gf-color-in-ctrl-primary-contrast: #ffffff !important;
	--gf-color-in-ctrl-primary-darker: #1F21D9 !important;
	--gf-color-in-ctrl-primary-lighter: #5A5CFF !important;

	--gf-radius: 4px !important;
}

/* ── Base typography ── */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1),
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) select,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) textarea,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) button,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) label,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) legend {
	font-family: inherit !important;
	color: inherit;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) {
	color: #0D0C33;
}

/* ── Field labels ── */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_label,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_label_before_complex,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gform-field-label:not(.gfield_consent_label):not(.gform-field-label--type-sub) {
	font-family: inherit !important;
	font-weight: 500 !important;
	font-size: 1rem !important;
	line-height: 1.4 !important;
	color: #0D0C33 !important;
	margin: 0 0 8px !important;
	padding: 0 !important;
	display: block !important;
}

/* Sub-labels (e.g. First / Last under the Name fieldset, or Enter / Confirm Email) */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gform-field-label--type-sub,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_left label,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_right label,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_full label {
	font-family: inherit !important;
	font-weight: 500 !important;
	font-size: 1rem !important;
	line-height: 1.4 !important;
	color: #0D0C33 !important;
	margin: 0 0 8px !important;
	display: block !important;
}

/* Hidden labels (when GF "hidden_label" is set on a field) */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .hidden_label .gfield_label,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .hidden_label > .gform-field-label {
	display: none !important;
}

/* ── Required indicator — hidden on popup/branded forms ── */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_required,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_required_text {
	display: none !important;
}

/* ── Inputs / textarea / select ── */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="text"],
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="email"],
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="tel"],
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="url"],
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="number"],
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="password"],
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="date"],
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_container input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) textarea,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) select {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	padding: 12px 16px !important;
	min-height: 46px !important;
	border: 1px solid rgba(13, 12, 51, 0.25) !important;
	border-radius: 4px !important;
	background: #ffffff !important;
	font-family: inherit !important;
	font-size: 1rem !important;
	line-height: 1.5 !important;
	color: #0D0C33 !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) textarea {
	min-height: 140px;
	resize: vertical;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input::placeholder,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) textarea::placeholder {
	color: rgba(13, 12, 51, 0.4);
}

/* Hover */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input:hover,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) textarea:hover,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) select:hover {
	border-color: rgba(13, 12, 51, 0.45);
}

/* Focus */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input:focus,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) textarea:focus,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) select:focus {
	outline: none;
	border-color: #2F31FC;
	box-shadow: 0 0 0 3px rgba(47, 49, 252, 0.15);
}

/* Validation error — a softer red */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_error input,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_error textarea,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_error select {
	border-color: #E05C73;
	background: #FEF0F2;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_validation_message {
	color: #E05C73;
	font-size: 0.875rem;
	margin-top: 6px;
}

/* ── Field spacing ── */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gform_fields {
	gap: 24px !important;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield {
	margin: 0;
}

/* ── Sub-field grid (Name First/Last, Email + Confirm Email, etc.) ──
   Force every multi-column field to behave identically: 2-col grid with
   a fixed gap, columns reset to a flat width:100% so neither Gravity's
   legacy float CSS nor its modern grid-col widths leak through.
   ============================================================== */

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_container.ginput_complex {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 16px !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* All column wrappers (modern .gform-grid-col, legacy .ginput_left/right, .name_first/last) */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex > .gform-grid-col,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex > .ginput_left,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex > .ginput_right,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex > .ginput_full,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex > .name_first,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex > .name_last,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex > span,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex > div {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	float: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: block !important;
	flex: none !important;
}

/* Full-width sub-field spans both columns (e.g. address line 2 if used) */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex > .ginput_full {
	grid-column: 1 / -1 !important;
}

/* Legacy float-clearing div — not needed in our grid layout */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gf_clear,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gf_clear_complex {
	display: none !important;
}

@media (max-width: 600px) {
	.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex,
	.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_container.ginput_complex {
		grid-template-columns: 1fr !important;
	}
}

/* ── Checkboxes / radios ── */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="checkbox"],
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="radio"] {
	accent-color: #2F31FC;
	width: 18px;
	height: 18px;
	cursor: pointer;
}

/* ── Consent / Privacy field ── */
/* Hide the redundant "Privacy (Required)" legend — the inline label already states it */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent > legend.gfield_label,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield--type-consent > legend.gfield_label {
	display: none !important;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent .ginput_container_consent,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield--type-consent .ginput_container_consent {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	gap: 12px !important;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent .ginput_container_consent input[type="hidden"] {
	display: none !important;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent .ginput_container_consent > input[type="checkbox"] {
	flex-shrink: 0;
	margin-top: 2px;
}

/* The consent label (the "I agree…" text) — normal copy weight, brand link colour */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent .gfield_consent_label,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent label.gform-field-label,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent .gform-field-label--type-inline,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield--type-consent label.gform-field-label.gfield_consent_label,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield--type-consent .gform-field-label--type-inline {
	flex: 1;
	font-family: inherit !important;
	font-weight: 400 !important;
	font-size: 0.95rem !important;
	line-height: 1.5 !important;
	color: rgba(13, 12, 51, 0.85) !important;
	margin: 0 !important;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent_label a,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent .gform-field-label a {
	color: #2F31FC !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent_label a:hover,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent .gform-field-label a:hover {
	color: #0D0C33 !important;
}

/* Required asterisk inside consent labels — match our quiet style */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent .gfield_required,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield--type-consent .gfield_required {
	color: rgba(13, 12, 51, 0.5) !important;
}

/* Consent description box (the GDPR copy block, if shown) */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gfield_consent_description {
	border: 1px solid rgba(13, 12, 51, 0.15);
	border-radius: 4px;
	background: #F7F7FA;
	color: rgba(13, 12, 51, 0.75);
	font-size: 0.85rem;
	line-height: 1.6;
	padding: 14px 18px;
	max-height: 200px;
	overflow-y: auto;
	margin-top: 12px;
}

/* ── Submit button — pill matching site CTAs ── */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gform_button,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="submit"],
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) button[type="submit"] {
	display: inline-block;
	background: #2F31FC;
	color: #ffffff;
	border: 2px solid #2F31FC;
	border-radius: 999px;
	padding: 14px 36px;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.01em;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.05s ease;
	-webkit-appearance: none;
	appearance: none;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gform_button:hover,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="submit"]:hover,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) button[type="submit"]:hover {
	background: #0D0C33;
	border-color: #0D0C33;
	color: #ffffff;
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gform_button:focus,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="submit"]:focus,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) button[type="submit"]:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(47, 49, 252, 0.25);
}

.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gform_button:active,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="submit"]:active,
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) button[type="submit"]:active {
	transform: translateY(1px);
}

/* ── Footer spacing ── */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gform_footer {
	margin-top: 32px;
	padding-top: 0;
}

/* ── Confirmation message ── */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gform_confirmation_message {
	background: #F3F3F7;
	border-left: 3px solid #2F31FC;
	padding: 20px 24px;
	border-radius: 4px;
	color: #0D0C33;
	font-size: 1rem;
	line-height: 1.6;
}

/* ── Top-level validation summary ── */
.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gform_validation_errors {
	background: #FEF0F2;
	border-left: 3px solid #E05C73;
	padding: 16px 20px;
	border-radius: 4px;
	color: #0D0C33;
	margin-bottom: 24px;
}

/* ── On dark popup overlays — hint that body text/headings should pop ──
   Heading colour is set by Elementor (the popup heading widget); we just
   ensure the form card itself is readable on whatever background it sits in.
   The form lives on a white card so this mostly doesn't matter, but if a
   dark popup ever shows the form against the navy background directly,
   adding .gform-dark-theme to its container is the existing escape hatch.
   ============================================================== */

/* ── Mobile tightening ── */
@media (max-width: 600px) {
	.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="text"],
	.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="email"],
	.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) textarea,
	.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) select {
		padding: 11px 14px;
		font-size: 0.95rem;
	}
	.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .gform_button,
	.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) input[type="submit"] {
		width: 100%;
		padding: 14px 24px;
	}
	.mw-gravity-form .gform_wrapper:not(#gform_wrapper_1) .ginput_complex.gform-grid-row {
		gap: 12px;
	}
}
