/* Every .gform_* / .gfield* rule lives here; enqueued in the footer after GF's own sheets (inc/forms.php). Palette comes from msw_form_styles(). */

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_wrapper.gform-theme {
	--gf-font-family-base: var(--msw-font-sans);
	--gf-ctrl-font-family: var(--msw-font-sans);
	--gf-ctrl-font-size: 15px;
	--gf-ctrl-label-font-family-primary: var(--msw-font-sans);
	--gf-ctrl-label-font-size-primary: 13.5px;
	--gf-ctrl-label-font-weight-primary: 700;
	--gf-ctrl-label-color-req: #C0392B;
	--gf-ctrl-label-font-size-req: 13.5px;
	--gf-ctrl-label-font-weight-req: 700;
	--gf-ctrl-btn-font-family: var(--msw-font-sans);
	--gf-ctrl-btn-font-weight: 700;
	--gf-ctrl-btn-radius: 999px;
	--gf-ctrl-desc-font-family-error: var(--msw-font-sans);
	--gf-ctrl-desc-color-error: #B03A2E;
	--gf-color-danger: #B03A2E;
	--gf-field-gap-x: 12px;
	--gf-field-gap-y: 20px;
	--gf-form-gap-y: 20px;
	margin: 0;
}

.msw-site .msw-careers-form .gform_wrapper.gform-theme {
	--gf-field-gap-y: 16px;
}

/* Two-up rows come from the msw-half cssClass the build sets, never from field position. */
.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_fields > .gfield {
	grid-column: 1 / -1;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_fields > .gfield.msw-half {
	grid-column: span 6;
}

@media (max-width: 767px) {
	.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_fields > .gfield.msw-half {
		grid-column: 1 / -1;
	}
}

/* The kit's `label` typography (Raleway 600/16) outranks GF's variable-driven label rule. */
.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_wrapper .gfield_label {
	margin-bottom: 8px;
	font-family: var(--msw-font-sans);
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--msw-navy);
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_wrapper .gfield_required {
	font-size: 13.5px;
	line-height: 1.4;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_wrapper .gfield_required_asterisk {
	margin-inline-start: 2px;
	font-size: 13.5px;
	font-weight: 700;
	color: #C0392B;
}

/* Both cards state the required-field rule themselves (the contact card's note; the design has none on careers). */
.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_required_legend {
	display: none;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .ginput_container :is(input:not([type=file]), select) {
	min-height: 49px;
	padding: 0 16px;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .ginput_container textarea {
	min-block-size: 132px;
	padding: 13px 16px;
	resize: vertical;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .ginput_container :is(input, textarea)::placeholder {
	color: #A0967F;
	opacity: 1;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .ginput_container :is(input, select, textarea):focus {
	box-shadow: 0 0 0 3px rgba(225, 179, 34, 0.18);
}

/* Resume upload: the design's dashed drop box. */
.msw-site .msw-careers-form .ginput_container_fileupload input[type=file] {
	width: 100%;
	height: auto !important;
	padding: 22px 16px !important;
	font-size: 14.5px;
	line-height: 1.4;
	color: var(--msw-muted-brown);
	background: var(--msw-bg);
	border: 1.5px dashed rgba(75, 102, 137, 0.25);
	border-radius: 12px;
}

/* GF 3.x gives the file button a fixed height and top alignment; keep it sized to the box as 2.x did. */
.msw-site .msw-careers-form .ginput_container_fileupload input[type=file]::file-selector-button {
	block-size: auto;
	line-height: inherit;
	vertical-align: middle;
}

.msw-site .msw-careers-form .gform_fileupload_rules {
	margin-top: 6px;
	font-size: 13px;
	color: var(--msw-muted-brown);
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_wrapper .gform_footer {
	margin-top: 16px;
	padding: 0;
}

/* GF's button metrics come from a per-form inline block keyed on the wrapper id, so only !important reaches them. */
.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_footer .gform_button {
	min-height: 52px !important;
	padding: 0 34px !important;
	font-size: 16px !important;
	line-height: 1 !important;
	box-shadow: none;
}

.msw-site :is(.msw-contact-form, .msw-cyt-form) .gform_footer {
	display: block;
}

.msw-site :is(.msw-contact-form, .msw-cyt-form) .gform_footer .gform_button {
	width: 100% !important;
}

.msw-site :is(.msw-contact-form, .msw-cyt-form) .gform_footer .gform_button:hover {
	background-color: var(--msw-amber-light);
	color: #2F3F55;
}

.msw-site .msw-careers-form .gform_footer .gform_button:hover {
	background-color: #405774;
	color: #FFFFFF;
}

/* Validation: the brand's error treatment, not GF's banner and icon. */
.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_validation_errors {
	margin: 0 0 20px;
	padding: 14px 18px;
	background: rgba(176, 58, 46, 0.06);
	border: 1px solid rgba(176, 58, 46, 0.4);
	border-radius: 12px;
	box-shadow: none;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_validation_errors:focus {
	outline: 2px solid var(--msw-amber);
	outline-offset: 2px;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_validation_errors > .gform_submission_error {
	padding: 0;
	font-family: var(--msw-font-sans);
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.45;
	text-align: start;
	color: #8E2F25;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_validation_errors .gform-icon {
	display: none;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_validation_errors > ol {
	margin: 6px 0 0;
	padding-inline-start: 18px;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_validation_errors > ol :is(li, a) {
	font-size: 13.5px;
	line-height: 1.5;
	color: #8E2F25;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gfield .gfield_validation_message {
	margin: 6px 0 0;
	padding: 0;
	font-size: 13px;
	line-height: 1.4;
	background: none;
	border: 0;
}

.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gfield_error .gfield_label {
	color: #8E2F25;
}

/* Confirmation after an AJAX submit replaces the form. */
.msw-site :is(.msw-contact-form, .msw-careers-form, .msw-cyt-form) .gform_confirmation_message {
	padding: 14px 18px;
	font-family: var(--msw-font-sans);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.5;
	color: #1F5A42;
	background: rgba(31, 138, 91, 0.1);
	border: 1px solid rgba(31, 138, 91, 0.35);
	border-radius: 12px;
}
