/*
 * One accessible visual system for every public Gravity Form on Mactec.
 *
 * The legacy parent theme hides labels and gives each form a different
 * presentation. These selectors are deliberately restricted to Forms 1–5.
 * Field-label selectors are also explicit so hidden anti-spam, attribution,
 * PID, and CAPTCHA controls never become visible.
 *
 * The filename is versioned because the production edge cache does not
 * reliably vary stylesheet bodies by query string alone. Version 0.4.3
 * deliberately changes the path so the Contact-page containment rule cannot
 * be shadowed by a cached pre-containment stylesheet.
 */

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) {
	box-sizing: border-box;
	width: 100%;
	max-width: 640px;
	margin-inline: auto;
	padding: clamp(1.35rem, 4vw, 2.25rem);
	border: 0;
	border-radius: 20px;
	background: #f3f3f3;
	box-shadow: 0 4px 14px rgba(23, 54, 95, .18);
	color: #17365f;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) .gform_fields {
	row-gap: 1.15rem;
	column-gap: 1.15rem;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) .gfield {
	box-sizing: border-box;
	min-width: 0;
	margin: 0;
	padding: 0;
}

/* Marketing-form visitor fields. */
#field_1_1 > label.gfield_label,
#field_1_2 > label.gfield_label,
#field_1_3 > label.gfield_label,
#field_1_4 > label.gfield_label,
#field_3_1 > label.gfield_label,
#field_3_2 > label.gfield_label,
#field_3_3 > label.gfield_label,
#field_3_4 > label.gfield_label,
#field_4_1 > label.gfield_label,
#field_4_2 > label.gfield_label,
#field_4_3 > label.gfield_label,
#field_4_4 > label.gfield_label,
#field_5_1 > label.gfield_label,
#field_5_2 > label.gfield_label,
#field_5_3 > label.gfield_label,
#field_5_4 > label.gfield_label,
/* Employment-form visitor fields; hidden PID/CAPTCHA labels stay untouched. */
#field_2_1 > label.gfield_label,
#field_2_2 > label.gfield_label,
#field_2_3 > label.gfield_label,
#field_2_4 > label.gfield_label,
#field_2_5 > label.gfield_label {
	display: block;
	visibility: visible;
	opacity: 1;
	margin: 0 0 .45rem;
	color: #17365f;
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.35;
}

/* Keep Gravity Forms' accessible “Required” text while showing a compact *. */
form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) label.gfield_label > .gfield_required {
	margin-left: .1rem;
	color: #b00020;
	font-size: 0;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) label.gfield_label > .gfield_required::after {
	content: "*";
	font-size: .95rem;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]),
form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) select,
form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) textarea {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-height: 48px;
	margin: 0;
	padding: .72rem .8rem;
	border: 1px solid #d2d5da;
	border-radius: 0;
	background: #fff;
	box-shadow: 0 3px 9px rgba(23, 54, 95, .16);
	color: #1e293b;
	font: inherit;
	line-height: 1.35;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) textarea {
	min-height: 150px;
	resize: vertical;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) input::placeholder,
form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) textarea::placeholder {
	color: #667085;
	opacity: 1;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]):focus-visible,
form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) select:focus-visible,
form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) textarea:focus-visible {
	border-color: #17365f;
	outline: 3px solid rgba(201, 0, 102, .25);
	outline-offset: 2px;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) input[type="file"] {
	height: auto;
	min-height: 52px;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) input[type="file"]::file-selector-button {
	margin: -.35rem .75rem -.35rem -.35rem;
	padding: .55rem .8rem;
	border: 0;
	border-radius: 999px;
	background: #e5e9ef;
	color: #17365f;
	font-weight: 700;
	cursor: pointer;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) .gfield_description {
	margin-top: .45rem;
	color: #4b5563;
	font-size: .84rem;
	line-height: 1.45;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) .gform_footer {
	margin: 1.15rem 0 0;
	padding: 0;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) input[type="submit"],
form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) button[type="submit"] {
	appearance: none;
	min-height: 44px;
	margin: 0;
	padding: .7rem 1.55rem;
	border: 0;
	border-radius: 999px;
	background: #0d3977;
	box-shadow: none;
	color: #fff;
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) input[type="submit"]:hover,
form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) button[type="submit"]:hover {
	background: #082a5c;
}

form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) input[type="submit"]:focus-visible,
form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) button[type="submit"]:focus-visible {
	outline: 3px solid #c90066;
	outline-offset: 3px;
}

/* The Quote heading remains outside the shared form card. */
body .mactec-growth-quote {
	padding: 0;
	border: 0;
	background: transparent;
}

body .mactec-growth-quote__intro {
	width: 100%;
	max-width: 640px;
	margin: 0 auto 1.25rem;
}

.gform_wrapper:is(#gform_wrapper_1, #gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_4, #gform_wrapper_5) .gform_validation_errors {
	box-sizing: border-box;
	width: 100%;
	max-width: 640px;
	margin: 0 auto 1rem;
	border-color: #b00020;
	border-radius: 12px;
	background: #fff4f5;
}

/*
 * The legacy Contact template contains Google's fixed reCAPTCHA badge. Its
 * normal desktop resting position keeps most of the 256px badge off-screen,
 * which makes Chrome treat a mobile page as wider than the viewport. Keep the
 * compact 70px edge visible on mobile and expand the badge inward on hover or
 * keyboard focus. This removes the real overflow source without globally
 * clipping horizontally scrollable comparison tables.
 */
@media (max-width: 767px) {
	body.page-template-page-contact .grecaptcha-badge {
		right: 0 !important;
		width: 70px !important;
		max-width: calc(100vw - 8px);
		transition: width .3s ease !important;
	}

	body.page-template-page-contact .grecaptcha-badge:hover,
	body.page-template-page-contact .grecaptcha-badge:focus-within {
		width: 256px !important;
	}
}

@media (max-width: 600px) {
	form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) {
		padding: 1.15rem;
		border-radius: 16px;
	}

	form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) .gform_fields {
		row-gap: 1rem;
	}

	form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) input[type="submit"],
	form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) button[type="submit"] {
		min-width: 112px;
	}
}

@media (prefers-reduced-motion: reduce) {
	form:is(#gform_1, #gform_2, #gform_3, #gform_4, #gform_5) * {
		scroll-behavior: auto;
	}
}
