/**
 * Tivity Gravity Forms — rounded fields, pill submit.
 * Works with Orbital / Gravity Theme and legacy markup.
 */

.gform_wrapper,
.gform_legacy_markup_wrapper {
	--tivity-gf-orange: #ff3600;
	--tivity-gf-dark: #424a57;
	--tivity-gf-muted: #5c6570;
	--tivity-gf-border: #c8ccd2;
	--tivity-gf-placeholder: #9aa3ad;
	--tivity-gf-field-gap: 16px;
	--tivity-gf-label-gap: 8px;
	--tivity-gf-radius-field: 12px;
	--tivity-gf-radius-button: 999px;
	font-family: "Instrument Sans", sans-serif;
}

/* Orbital / framework theme tokens (solid colors — GF defaults use translucent placeholders/borders). */
.gform_wrapper.gform-theme--framework,
.gform_wrapper.gform-theme--orbital,
.gform_wrapper.gravity-theme,
.gform_wrapper.gform-theme[id^="gform_wrapper_"] {
	--gf-color-primary: var(--tivity-gf-orange);
	--gf-color-primary-darker: #e03000;
	--gf-color-primary-contrast: #fff;
	--gf-form-gap-y: var(--tivity-gf-field-gap);
	--gf-field-gap-y: var(--tivity-gf-field-gap);
	--gf-radius: var(--tivity-gf-radius-field);
	--gf-radius-max-lg: var(--tivity-gf-radius-field);
	--gf-color-in-ctrl: #fff;
	--gf-color-in-ctrl-contrast: var(--tivity-gf-dark);
	--gf-ctrl-bg-color: #fff;
	--gf-ctrl-bg-color-hover: #fff;
	--gf-ctrl-bg-color-focus: #fff;
	--gf-ctrl-color: var(--tivity-gf-dark);
	--gf-ctrl-color-hover: var(--tivity-gf-dark);
	--gf-ctrl-color-focus: var(--tivity-gf-dark);
	--gf-ctrl-border-color: var(--tivity-gf-border);
	--gf-ctrl-border-color-hover: var(--tivity-gf-dark);
	--gf-ctrl-border-color-focus: var(--tivity-gf-dark);
	--gf-ctrl-placeholder-color: var(--tivity-gf-placeholder);
	--gf-ctrl-label-color-primary: var(--tivity-gf-dark);
	--gf-ctrl-label-color-secondary: var(--tivity-gf-dark);
	--gf-ctrl-btn-opacity: 1;
	--gf-ctrl-btn-opacity-disabled: 0.5;
	--gf-ctrl-placeholder-opacity: 1;
	--gf-padding-x: 20px;
	/* Orbital centers single-line controls with line-height = control height (not padding + em). */
	--gf-ctrl-size-md: 48px;
	--gf-ctrl-size: var(--gf-ctrl-size-md);
	--gf-ctrl-shadow: none;
}

/* Per-form inline theme vars load in the body; keep a consistent 1px field border. */
.gform_wrapper.gform-theme[id^="gform_wrapper_"] {
	--gf-ctrl-border-color: var(--tivity-gf-border);
	--gf-ctrl-border-color-hover: var(--tivity-gf-dark);
	--gf-ctrl-border-color-focus: var(--tivity-gf-dark);
}

.gform_wrapper form {
	margin: 0;
	text-align: left;
}

.gform_wrapper .gform_fields,
.gform_legacy_markup_wrapper ul.gform_fields {
	margin: 0 !important;
	padding: 0;
}

.gform_wrapper .gfield,
.gform_legacy_markup_wrapper li.gfield {
	margin-bottom: var(--tivity-gf-field-gap) !important;
	padding: 0;
}

.gform_wrapper .gfield:last-child,
.gform_legacy_markup_wrapper li.gfield:last-child {
	margin-bottom: 0 !important;
}

/* Labels */
.gform_wrapper .gfield_label,
.gform_wrapper .gform-field-label,
.gform_legacy_markup_wrapper .gfield_label {
	display: block;
	margin: 0 0 var(--tivity-gf-label-gap) !important;
	padding: 0;
	color: var(--tivity-gf-dark);
	font-family: "Instrument Sans", sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	opacity: 1;
}

.gform_wrapper .gfield_label .gfield_required,
.gform_wrapper .gform-field-label .gfield_required,
.gform_wrapper .gfield_required.gfield_required_asterisk,
.gform_wrapper .gfield_required.gfield_required_text,
.gform_wrapper .gfield_required.gfield_required_custom,
.gform_legacy_markup_wrapper .gfield_required {
	display: inline;
	margin-inline-start: 4px;
	color: var(--tivity-gf-orange) !important;
	font-size: inherit;
	font-weight: 700;
	opacity: 1 !important;
}

/* Text inputs + textareas (legacy markup). Orbital/framework uses --gf-* tokens above. */
.gform_wrapper:not(.gform-theme--framework):not(.gform-theme--orbital) :is(
		input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]):not([type="hidden"]),
		textarea,
		select
	),
.gform_legacy_markup_wrapper :is(
		input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]):not([type="hidden"]),
		textarea,
		select
	) {
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 14px 20px;
	border: 1px solid var(--tivity-gf-border);
	border-radius: var(--tivity-gf-radius-field);
	background: #fff;
	color: var(--tivity-gf-dark);
	font-family: "Instrument Sans", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;
	box-shadow: none;
	opacity: 1;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Orbital: don’t stack theme padding on top of GF block-size (that clips select text). */
.gform_wrapper.gform-theme--framework .gfield :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]):not([type="hidden"]), textarea, select, .gfield_select),
.gform_wrapper.gform-theme--orbital .gfield :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]):not([type="hidden"]), textarea, select, .gfield_select) {
	font-family: "Instrument Sans", sans-serif;
	font-size: 16px;
	font-weight: 400;
	border-radius: var(--tivity-gf-radius-field);
	opacity: 1;
}

.gform_wrapper.gform-theme--framework .gfield :is(input, textarea, select, .gfield_select),
.gform_wrapper.gravity-theme .gfield :is(input, textarea, select, .gfield_select) {
	opacity: 1 !important;
	background-color: #fff !important;
	color: var(--tivity-gf-dark) !important;
	border: 1px solid var(--tivity-gf-border) !important;
}

/* Select text: full contrast; match Orbital vertical centering (native select clips if line-height is too short). */
.gform_wrapper .gfield select,
.gform_wrapper .gfield .gfield_select,
.gform_legacy_markup_wrapper .gfield select {
	color: var(--tivity-gf-dark) !important;
	-webkit-text-fill-color: var(--tivity-gf-dark) !important;
	opacity: 1 !important;
	cursor: pointer;
}

.gform_wrapper.gform-theme--framework .gfield :is(select, .gfield_select),
.gform_wrapper.gform-theme--orbital .gfield :is(select, .gfield_select) {
	line-height: var(--gf-ctrl-size);
}

.gform_wrapper .gfield select option,
.gform_legacy_markup_wrapper .gfield select option {
	color: var(--tivity-gf-dark);
	background: #fff;
}

.gform_wrapper .gfield--type-select .chosen-container-single .chosen-single,
.gform_wrapper .gfield--input-type-select .chosen-container-single .chosen-single {
	block-size: var(--gf-ctrl-size);
	line-height: var(--gf-ctrl-line-height);
	color: var(--tivity-gf-dark) !important;
	opacity: 1 !important;
	background: #fff !important;
	border: 1px solid var(--tivity-gf-border) !important;
}

.gform_wrapper .gfield :is(input, textarea, select):-webkit-autofill,
.gform_wrapper .gfield :is(input, textarea, select):-webkit-autofill:hover,
.gform_wrapper .gfield :is(input, textarea, select):-webkit-autofill:focus {
	-webkit-box-shadow: 0 0 0 1000px #fff inset !important;
	-webkit-text-fill-color: var(--tivity-gf-dark) !important;
	caret-color: var(--tivity-gf-dark);
}

.gform_wrapper textarea,
.gform_legacy_markup_wrapper textarea {
	min-height: 52px;
	max-height: 200px;
	resize: vertical;
}

.gform_wrapper :is(input, textarea, select)::placeholder,
.gform_wrapper :is(input, textarea, select)::-webkit-input-placeholder,
.gform_wrapper :is(input, textarea, select)::-moz-placeholder {
	color: var(--tivity-gf-placeholder) !important;
	opacity: 1 !important;
}

.gform_wrapper :is(input, textarea, select):focus,
.gform_legacy_markup_wrapper :is(input, textarea, select):focus {
	border-color: var(--tivity-gf-dark);
	outline: none;
	box-shadow: 0 0 0 1px var(--tivity-gf-dark);
}

.gform_wrapper .gfield_error :is(input, textarea, select),
.gform_legacy_markup_wrapper .gfield_error :is(input, textarea, select) {
	border-color: var(--tivity-gf-orange);
}

.gform_wrapper .validation_message,
.gform_legacy_markup_wrapper .validation_message {
	margin-top: 6px;
	color: var(--tivity-gf-orange);
	font-family: "Instrument Sans", sans-serif;
	font-size: 14px;
	font-weight: 500;
}

/* Submit */
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer,
.gform_legacy_markup_wrapper .gform_footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: calc(var(--tivity-gf-field-gap) + 4px) 0 0 !important;
	padding: 0 !important;
}

.gform_wrapper :is(
		.gform_button,
		.gform-button,
		input[type="submit"],
		button[type="submit"]
	),
.gform_legacy_markup_wrapper :is(.gform_button, input[type="submit"], button[type="submit"]) {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	min-width: 140px;
	margin: 0 !important;
	padding: 14px 40px !important;
	border: 1px solid transparent !important;
	border-radius: var(--tivity-gf-radius-button) !important;
	background: var(--tivity-gf-orange) !important;
	color: #fff !important;
	font-family: "Instrument Sans", sans-serif !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	cursor: pointer;
	box-shadow: none !important;
	opacity: 1 !important;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.gform_wrapper :is(.gform_button, .gform-button, input[type="submit"], button[type="submit"]):is(:hover, :focus-visible),
.gform_legacy_markup_wrapper :is(.gform_button, input[type="submit"]):is(:hover, :focus-visible) {
	background: var(--tivity-gf-dark) !important;
	color: #fff !important;
}

.gform_wrapper .gform_validation_errors,
.gform_legacy_markup_wrapper .gform_validation_errors {
	margin-bottom: var(--tivity-gf-field-gap);
	padding: 12px 16px;
	border: 1px solid var(--tivity-gf-orange);
	border-radius: 12px;
	background: #fff;
	color: var(--tivity-gf-dark);
	font-family: "Instrument Sans", sans-serif;
	font-size: 15px;
}

.gform_wrapper .gform_confirmation_message {
	color: var(--tivity-gf-dark);
	font-family: "Instrument Sans", sans-serif;
	font-size: 18px;
	line-height: 1.5;
}
