/* Brettro Base Gravity Forms bridge.
 * Maps Gravity Forms controls to BDS tokens while preserving GF layout behavior.
 */

.gform_wrapper.gravity-theme,
.gform-theme {
	font-family: var(--bds-typography-font-family-body);
	font-weight: var(--bds-typography-font-weight-regular);
	font-size: var(--bds-typography-font-size-300);
	line-height: var(--bds-typography-line-height-snug);

	/* Gravity Forms framework/theme variables (when present). */
	--gf-font-size-primary: var(--bds-typography-font-size-200);
	--gf-font-size-secondary: var(--bds-typography-font-size-100);
	--gf-font-size-tertiary: var(--bds-typography-font-size-100);
	--gf-ctrl-label-font-size-primary: var(--bds-typography-font-size-200);
	--gf-ctrl-label-font-size-secondary: var(--bds-typography-font-size-100);
	--gf-ctrl-label-font-size-tertiary: var(--bds-typography-font-size-100);
	--gf-ctrl-description-font-size: var(--bds-typography-font-size-100);
	--gf-ctrl-desc-font-size: var(--bds-typography-font-size-100);
}

.gform_wrapper.gravity-theme .gfield_label,
.gform-theme .gfield_label {
	font-family: var(--bds-typography-font-family-heading);
	font-weight: var(--bds-typography-font-weight-regular);
	font-size: var(--bds-typography-font-size-400) !important;
	line-height: var(--bds-typography-line-height-normal);
	color: var(--bds-color-semantic-text-primary);
	margin-bottom: var(--bds-spacing-half);
}

.gform_wrapper.gravity-theme legend,
.gform-theme legend {
	font-family: var(--bds-typography-font-family-heading);
	font-weight: var(--bds-typography-font-weight-regular);
	font-size: var(--bds-typography-font-size-400) !important;
	line-height: var(--bds-typography-line-height-normal);
	color: var(--bds-color-semantic-text-primary);
}

.gform_wrapper.gravity-theme .gfield_description,
.gform_wrapper.gravity-theme .gsection_description,
.gform_wrapper.gravity-theme .gform_description,
.gform-theme .gfield_description,
.gform-theme .gsection_description,
.gform-theme .gform_description {
	font-family: var(--bds-typography-font-family-body);
	font-weight: var(--bds-typography-font-weight-regular);
	font-size: var(--bds-typography-font-size-300) !important;
	line-height: var(--bds-typography-line-height-normal);
	color: var(--bds-color-semantic-text-secondary);
}

/* Gravity Forms framework-level label classes can bypass gfield_label selectors. */
.gform-theme--framework .gform-field-label,
.gform-theme--framework .gfield_header_item,
.gform-theme--framework .ginput_complex label,
.gform-theme--framework .ginput_complex legend {
	font-size: var(--bds-typography-font-size-400) !important;
}

.gform-theme--framework .gfield_description,
.gform-theme--framework .gsection_description,
.gform-theme--framework .gform_description,
.gform-theme--framework .description,
.gform-theme--framework .instruction {
	font-size: var(--bds-typography-font-size-300) !important;
}

.gform_wrapper.gravity-theme .ginput_container input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.gform_wrapper.gravity-theme .ginput_container select,
.gform_wrapper.gravity-theme .ginput_container textarea,
.gform-theme input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.gform-theme select,
.gform-theme textarea {
	font-family: var(--bds-typography-font-family-body);
	font-weight: var(--bds-typography-font-weight-regular);
	font-size: var(--bds-typography-font-size-100);
	line-height: var(--bds-typography-line-height-normal);
	color: var(--bds-color-semantic-text-primary);
	background-color: var(--bds-color-semantic-bg-surface);
	border: var(--bds-border-width-hairline) var(--bds-border-style-solid) var(--bds-color-semantic-border-default);
	border-radius: var(--bds-radius-1);
	padding: var(--bds-spacing-1) var(--bds-spacing-1);
}

.gform_wrapper.gravity-theme .ginput_container input:not([type="checkbox"]):not([type="radio"]):focus,
.gform_wrapper.gravity-theme .ginput_container select:focus,
.gform_wrapper.gravity-theme .ginput_container textarea:focus,
.gform-theme input:not([type="checkbox"]):not([type="radio"]):focus,
.gform-theme select:focus,
.gform-theme textarea:focus {
	border-color: var(--bds-color-semantic-border-focus);
	outline: 0;
	box-shadow: 0 0 0 var(--bds-border-width-sm) var(--bds-color-base-primary-200);
}

.gform_wrapper.gravity-theme .gfield_required,
.gform-theme .gfield_required {
	color: var(--bds-color-base-primary-600);
}

.gform_wrapper.gravity-theme .validation_message,
.gform_wrapper.gravity-theme .gform_validation_errors,
.gform-theme .validation_message {
	color: var(--bds-color-semantic-state-danger-text);
	border-color: var(--bds-color-semantic-state-danger-border);
}

.gform_wrapper.gravity-theme .gfield_error input:not([type="checkbox"]):not([type="radio"]),
.gform_wrapper.gravity-theme .gfield_error select,
.gform_wrapper.gravity-theme .gfield_error textarea,
.gform-theme .gfield_error input:not([type="checkbox"]):not([type="radio"]),
.gform-theme .gfield_error select,
.gform-theme .gfield_error textarea {
	border-color: var(--bds-color-semantic-state-danger-border);
}

.gform_wrapper.gravity-theme .gform_footer input[type="submit"],
.gform_wrapper.gravity-theme .gform_page_footer input[type="button"],
.gform_wrapper.gravity-theme .gform_page_footer input[type="submit"],
.gform_wrapper.gravity-theme .gform_page_footer button,
.gform-theme button[type="submit"] {
	font-family: var(--bds-typography-font-family-heading);
	font-weight: var(--bds-typography-font-weight-bold);
	font-size: var(--bds-typography-font-size-100);
	line-height: var(--bds-typography-line-height-normal);
	color: var(--bds-color-semantic-action-primary-text);
	background-color: var(--bds-color-semantic-action-primary-bg);
	border: var(--bds-border-width-hairline) var(--bds-border-style-solid) var(--bds-color-semantic-action-primary-border);
	border-radius: var(--bds-radius-1);
	padding: var(--bds-spacing-1) var(--bds-spacing-2);
}

.gform_wrapper.gravity-theme .gform_footer input[type="submit"]:hover,
.gform_wrapper.gravity-theme .gform_page_footer input[type="button"]:hover,
.gform_wrapper.gravity-theme .gform_page_footer input[type="submit"]:hover,
.gform_wrapper.gravity-theme .gform_page_footer button:hover,
.gform-theme button[type="submit"]:hover {
	background-color: var(--bds-color-semantic-action-primary-bg-hover);
}
