/* ==================================
 * Gravity Forms (Orbital theme): brand styling
 * Colours, input size and radius come from the gform_default_styles
 * filter in includes/gravity-forms.php.
 * ================================== */

.gform_wrapper.gform-theme--framework {
	--gf-font-family-base: "Montserrat", sans-serif;
	--gf-font-size-primary: 16px;
	--gf-form-gap-y: 24px;
	--gf-ctrl-shadow: none;
	--gf-ctrl-outline-color-focus: rgba(30, 118, 210, 0.35);
	--gf-ctrl-label-color-req: #1E76D2;

	/* Buttons: match the site's "Get in touch" button */
	--gf-ctrl-btn-radius: 0;
	--gf-ctrl-btn-font-weight: 500;
	--gf-ctrl-btn-text-transform: uppercase;
	--gf-ctrl-btn-font-size-lg: 16px;
	--gf-ctrl-btn-padding-x-lg: 24px;
	--gf-ctrl-btn-bg-color-hover-primary: #0F1F41;

	/* Multi-page progress bar */
	--gf-field-pg-prog-bar-radius: 0;
	--gf-field-pg-prog-bar-bg-color: #E9F1FB;
}

/* Breathing room inside the white form cards (desktop only; the cards
   already have vertical padding on tablet and mobile) */
@media (min-width: 1025px) {
	.gform_wrapper.gform-theme--framework,
	.gform_confirmation_wrapper {
		padding-block: 36px;
	}
}

/* Form title & description */
.gform_wrapper.gform-theme--framework .gform_title {
	font-family: "Montserrat", sans-serif;
	font-size: 26px;
	font-weight: 700;
	line-height: 1.2;
	color: #0F1F41;
	margin-block: 0 8px;
}

.gform_wrapper.gform-theme--framework .gform_description {
	color: #4B5671;
}

/* Labels */
.gform_wrapper.gform-theme--framework .gfield_label,
.gform_wrapper.gform-theme--framework legend.gfield_label {
	font-weight: 600;
}

.gform_wrapper.gform-theme--framework .gfield_required {
	font-size: 12px;
	font-weight: 500;
}

/* Inputs */
.gform_wrapper.gform-theme--framework .gfield input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.gform_wrapper.gform-theme--framework .gfield textarea,
.gform_wrapper.gform-theme--framework .gfield select {
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.gform_wrapper.gform-theme--framework .gfield input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):hover,
.gform_wrapper.gform-theme--framework .gfield textarea:hover,
.gform_wrapper.gform-theme--framework .gfield select:hover {
	border-color: #8FA3BD;
}

.gform_wrapper.gform-theme--framework .gfield textarea {
	min-height: 140px;
}

/* Progress bar */
.gform_wrapper.gform-theme--framework .gf_progressbar_title {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #1E76D2;
}

.gform_wrapper.gform-theme--framework .gf_progressbar {
	height: 6px;
}

.gform_wrapper.gform-theme--framework .gf_progressbar_percentage {
	height: 6px;
	background: #1E76D2;
}

.gform_wrapper.gform-theme--framework .gf_progressbar_percentage span {
	display: none;
}

/* Buttons */
.gform_wrapper.gform-theme--framework .gform_footer,
.gform_wrapper.gform-theme--framework .gform_page_footer {
	gap: 12px;
	margin-block-start: 24px;
}

.gform_wrapper.gform-theme--framework .gform-theme-button {
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

/* "Previous": navy outline. !important on the border because Gravity Forms'
   per-form style block (ID selector) sets the secondary button border. */
.gform_wrapper.gform-theme--framework .gform-theme-button--secondary,
.gform_wrapper.gform-theme--framework .gform_previous_button.gform-theme-button {
	background-color: transparent;
	border: 1px solid #0F1F41 !important;
	box-shadow: none;
	color: #0F1F41;
	border-radius: 0;
	font-weight: 500;
	text-transform: uppercase;
}

.gform_wrapper.gform-theme--framework .gform-theme-button--secondary:hover,
.gform_wrapper.gform-theme--framework .gform_previous_button.gform-theme-button:hover {
	background-color: #0F1F41;
	color: #FFFFFF;
}

/* Validation */
.gform_wrapper.gform-theme--framework .gform_validation_errors {
	border-radius: 0;
	box-shadow: none;
}

/* Confirmation message */
.gform_confirmation_wrapper .gform_confirmation_message {
	font-family: "Montserrat", sans-serif;
	font-size: 16px;
	color: #0F1F41;
	background: #E9F1FB;
	border-left: 4px solid #1E76D2;
	padding: 20px 24px;
}

/* Mobile: full-width buttons */
@media (max-width: 767px) {
	.gform_wrapper.gform-theme--framework .gform_footer,
	.gform_wrapper.gform-theme--framework .gform_page_footer {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	.gform_wrapper.gform-theme--framework .gform-theme-button {
		width: 100%;
	}
}
