/*!
 * Anderson Systems — Gravity Forms styling
 * Makes Gravity Forms match the Contact / Careers / application form mockups.
 * Works with both the legacy ("gravity-theme") and modern ("orbital"/foundation)
 * Gravity Forms markup. GF ships high-specificity styles and prints them late, so
 * the key visual properties are forced with !important. Also sets GF's CSS custom
 * properties as a second line of defence.
 */

/* ---- GF theme variables (orbital/foundation) ------------------------------ */
.gform_wrapper,
.gform_wrapper.gravity-theme,
.gform-theme--foundation,
form.gform {
	--gf-color-primary: #CC0000;
	--gf-color-primary-rgb: 204, 0, 0;
	--gf-color-primary-contrast: #ffffff;
	--gf-color-primary-darker: #aa0000;
	--gf-ctrl-bg-color: #F2F0EE;
	--gf-ctrl-border-color: #e0dcd8;
	--gf-ctrl-border-color-hover: #CC0000;
	--gf-ctrl-border-color-focus: #CC0000;
	--gf-ctrl-radius: 0px;
	--gf-ctrl-label-color-primary: #999999;
	--gf-field-img-choice-radius: 0px;
	font-family: 'Lato', sans-serif;
}

/* ---- Hide GF's own heading; the section supplies it ----------------------- */
.gform_wrapper .gform_heading,
.gform_wrapper .gform_required_legend {
	display: none !important;
}

/* ---- Labels --------------------------------------------------------------- */
.gform_wrapper .gfield_label,
.gform_wrapper .gform-field-label,
.gform_wrapper legend.gfield_label,
.gform_wrapper .ginput_complex label {
	font-family: 'Montserrat', sans-serif !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: #999999 !important;
	margin-bottom: 7px !important;
	line-height: 1.4 !important;
}
.gform_wrapper .gfield_required,
.gform_wrapper .gfield_required_text {
	color: var(--red) !important;
}
/* Sub-labels (First / Last under a Name field) */
.gform_wrapper .ginput_complex label {
	font-size: 10px !important;
	color: #bbbbbb !important;
	margin-top: 4px !important;
}

/* ---- Inputs / selects / textareas ----------------------------------------- */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="password"],
.gform_wrapper select,
.gform_wrapper textarea,
.gform-theme--foundation .gform_fields input,
.gform-theme--foundation .gform_fields select,
.gform-theme--foundation .gform_fields textarea {
	background: var(--offwhite) !important;
	border: 1px solid var(--light-border) !important;
	border-radius: 0 !important;
	padding: 11px 14px !important;
	font-family: 'Lato', sans-serif !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
	color: var(--black) !important;
	box-shadow: none !important;
	appearance: none;
	-webkit-appearance: none;
}
.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
	border-color: var(--red) !important;
	box-shadow: none !important;
	outline: none !important;
}
.gform_wrapper textarea {
	min-height: 110px !important;
	resize: vertical !important;
}
.gform_wrapper select {
	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='M1 1l5 5 5-5' stroke='%231A1A1A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 14px center !important;
	padding-right: 36px !important;
	cursor: pointer;
}
.gform_wrapper input::placeholder,
.gform_wrapper textarea::placeholder { color: #aaaaaa !important; }

/* Two-column name field */
.gform_wrapper .ginput_complex.ginput_container {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}
.gform_wrapper .ginput_complex span { display: block; }

/* ---- File upload (resume) ------------------------------------------------- */
.gform_wrapper .ginput_container_fileupload input[type="file"] {
	background: var(--offwhite) !important;
	border: 1px dashed var(--light-border) !important;
	border-radius: 0 !important;
	padding: 16px !important;
	width: 100% !important;
	font-family: 'Lato', sans-serif !important;
	cursor: pointer;
}

/* ---- Submit button -------------------------------------------------------- */
.gform_wrapper .gform_footer,
.gform_wrapper .gform-footer,
.gform_wrapper .gform_page_footer {
	margin-top: 18px !important;
	padding: 0 !important;
	display: flex;
	justify-content: flex-end;
}
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform-footer input[type="submit"],
.gform_wrapper .gform_page_footer input[type="submit"],
.gform_wrapper input.gform_button,
.gform_wrapper button.gform_button,
.gform_wrapper .gform_button,
.gform_wrapper .gform-button {
	background: var(--red) !important;
	background-image: none !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 0 !important;
	font-family: 'Montserrat', sans-serif !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	padding: 13px 36px !important;
	width: auto !important;
	cursor: pointer;
	transition: background 0.2s;
}
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_button:hover,
.gform_wrapper .gform-button:hover {
	background: #aa0000 !important;
}

/* ---- Validation / errors -------------------------------------------------- */
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea {
	border-color: var(--red) !important;
	background: #fff5f5 !important;
}
.gform_wrapper .gfield_validation_message,
.gform_wrapper .validation_message {
	color: var(--red) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	background: none !important;
	border: none !important;
	padding: 4px 0 0 !important;
}
.gform_wrapper .gform_validation_errors {
	background: #fff5f5 !important;
	border: 1px solid var(--red) !important;
	border-radius: 0 !important;
}

/* ---- Confirmation message ------------------------------------------------- */
.gform_confirmation_message {
	font-family: 'Lato', sans-serif;
	font-size: 16px;
	color: var(--black);
	background: var(--offwhite);
	border-left: 4px solid var(--red);
	padding: 24px 28px;
}

/* ---- Character counter ---------------------------------------------------- */
.gform_wrapper .ginput_counter,
.gform_wrapper .charleft {
	font-size: 12px !important;
	color: #999 !important;
}

/* ---------------------------------------------------------------------------
   Per-container tweaks
   --------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
   DARK-CONTEXT FORMS
   Careers resume form (.resume-form-wrap) and single-position application form
   (.application-form-wrap) sit on dark backgrounds, so they invert from the
   default light fields.
   --------------------------------------------------------------------------- */

/* Careers resume form — translucent inputs + white text on the black section. */
.resume-form-wrap .gform_wrapper .gfield_label,
.resume-form-wrap .gform_wrapper .gform-field-label { color: #888888 !important; }
.resume-form-wrap .gform_wrapper input[type="text"],
.resume-form-wrap .gform_wrapper input[type="email"],
.resume-form-wrap .gform_wrapper input[type="tel"],
.resume-form-wrap .gform_wrapper input[type="url"],
.resume-form-wrap .gform_wrapper input[type="number"],
.resume-form-wrap .gform_wrapper select,
.resume-form-wrap .gform_wrapper textarea {
	background: rgba(255, 255, 255, 0.06) !important;
	border: 1px solid rgba(255, 255, 255, 0.12) !important;
	color: #ffffff !important;
}
.resume-form-wrap .gform_wrapper input::placeholder,
.resume-form-wrap .gform_wrapper textarea::placeholder { color: #555555 !important; }
.resume-form-wrap .gform_wrapper input:focus,
.resume-form-wrap .gform_wrapper select:focus,
.resume-form-wrap .gform_wrapper textarea:focus {
	border-color: var(--red) !important;
	background: rgba(255, 255, 255, 0.09) !important;
}
.resume-form-wrap .gform_wrapper select {
	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='M1 1l5 5 5-5' stroke='%23ffffff' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
}
/* File upload: dashed translucent box matching the mockup's upload control. */
.resume-form-wrap .gform_wrapper .ginput_container_fileupload input[type="file"] {
	background: rgba(255, 255, 255, 0.06) !important;
	border: 1px dashed rgba(255, 255, 255, 0.2) !important;
	color: #999999 !important;
}
.resume-form-wrap .gform_wrapper .gform_fileupload_rules,
.resume-form-wrap .gform_wrapper .ginput_counter,
.resume-form-wrap .gform_wrapper .gfield_description { color: #777777 !important; }

/* Single-position application form — white inputs + white (ghost) button. */
.application-form-wrap .gform_wrapper .gfield_label,
.application-form-wrap .gform_wrapper .gform-field-label { color: #cccccc !important; }
.application-form-wrap .gform_wrapper input[type="text"],
.application-form-wrap .gform_wrapper input[type="email"],
.application-form-wrap .gform_wrapper input[type="tel"],
.application-form-wrap .gform_wrapper input[type="url"],
.application-form-wrap .gform_wrapper input[type="number"],
.application-form-wrap .gform_wrapper select,
.application-form-wrap .gform_wrapper textarea {
	background: #ffffff !important;
	border: none !important;
	color: var(--black) !important;
}
.application-form-wrap .gform_wrapper .gform_footer { justify-content: stretch; }
.application-form-wrap .gform_wrapper .gform_footer input[type="submit"],
.application-form-wrap .gform_wrapper .gform_button {
	width: 100% !important;
	background: #ffffff !important;
	color: var(--black) !important;
	border: 2px solid #ffffff !important;
}
.application-form-wrap .gform_wrapper .gform_button:hover {
	background: transparent !important;
	color: #ffffff !important;
}

@media (max-width: 600px) {
	.gform_wrapper .ginput_complex.ginput_container { grid-template-columns: 1fr; }
	.gform_wrapper .gform_footer { justify-content: flex-start; }
}
