/**
 * Gravity Forms inside Contact Bento — match default obc-form styling.
 */

.obc-contact-form-card .gform_wrapper {
	margin: 0;
}

.obc-contact-form-card .gform_wrapper form {
	margin: 0;
}

.obc-contact-form-card .gform_wrapper .gform_heading {
	display: none;
}

/* Orbital / foundation theme tokens */
.obc-contact-form-card .gform_wrapper.gform-theme--foundation,
.obc-contact-form-card .gform_wrapper.gravity-theme {
	--gf-form-gap-x: var(--space-lg);
	--gf-form-gap-y: var(--space-lg);
	--gf-form-footer-margin-y-start: 0;
	--gf-form-footer-gap: 0;
	--gf-field-gap-x: var(--space-lg);
	--gf-field-gap-y: var(--space-lg);
	--gf-label-width: 100%;
}

.obc-contact-form-card .gform_wrapper .gform_fields {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-lg);
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 768px) {
	.obc-contact-form-card .gform_wrapper .gform_fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.obc-contact-form-card .gform_wrapper .gfield:not(.gfield--width-half):not(.gfield--width-third):not(.gfield--width-quarter) {
		grid-column: 1 / -1;
	}

	.obc-contact-form-card .gform_wrapper .gfield--width-half {
		grid-column: span 1;
	}
}

.obc-contact-form-card .gform_wrapper .gfield {
	margin: 0;
	padding: 0;
}

.obc-contact-form-card .gform_wrapper .gfield::before,
.obc-contact-form-card .gform_wrapper .gfield::after {
	display: none;
}

.obc-contact-form-card .gform_wrapper .gfield_label,
.obc-contact-form-card .gform_wrapper .gform-field-label {
	display: block;
	margin: 0 0 var(--space-xs);
	font-family: var(--font-label);
	font-size: 0.875rem;
	line-height: 1.43;
	font-weight: 500;
	color: var(--color-on-surface);
	text-align: right;
}

.obc-contact-form-card .gform_wrapper .gfield_required {
	color: var(--color-error);
	margin-inline-start: var(--space-xs);
}

.obc-contact-form-card .gform_wrapper .ginput_container {
	margin: 0;
}

.obc-contact-form-card .gform_wrapper .gfield_description,
.obc-contact-form-card .gform_wrapper .instruction {
	margin-top: var(--space-xs);
	font-size: 0.875rem;
	line-height: 1.43;
	color: var(--color-on-surface-variant);
	text-align: right;
}

.obc-contact-form-card .gform_wrapper input[type="text"],
.obc-contact-form-card .gform_wrapper input[type="email"],
.obc-contact-form-card .gform_wrapper input[type="tel"],
.obc-contact-form-card .gform_wrapper input[type="url"],
.obc-contact-form-card .gform_wrapper input[type="number"],
.obc-contact-form-card .gform_wrapper input[type="password"],
.obc-contact-form-card .gform_wrapper select,
.obc-contact-form-card .gform_wrapper textarea,
.obc-contact-form-card .gform_wrapper .gform-theme-field-control,
.obc-contact-form-card .gform_wrapper .gform-theme-button--control {
	width: 100%;
	box-sizing: border-box;
	padding: 12px;
	border: 1px solid color-mix(in srgb, var(--color-outline-variant) 40%, transparent);
	border-radius: var(--radius-md);
	background-color: var(--color-surface);
	color: var(--color-on-surface);
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.5;
	text-align: right;
	transition: border-color var(--transition-fast), border-width var(--transition-fast);
	box-shadow: none;
	min-height: 0;
	appearance: none;
}

.obc-contact-form-card .gform_wrapper .gfield--type-email input[type="email"],
.obc-contact-form-card .gform_wrapper .gfield--input-type-email input {
	direction: ltr;
	text-align: left;
}

.obc-contact-form-card .gform_wrapper select {
	background-image: none;
}

.obc-contact-form-card .gform_wrapper textarea {
	min-height: 8rem;
	resize: vertical;
}

.obc-contact-form-card .gform_wrapper input:focus,
.obc-contact-form-card .gform_wrapper select:focus,
.obc-contact-form-card .gform_wrapper textarea:focus,
.obc-contact-form-card .gform_wrapper .gform-theme-field-control:focus {
	border-color: var(--color-primary);
	outline: none;
	border-width: 2px;
}

.obc-contact-form-card .gform_wrapper .gfield_error input,
.obc-contact-form-card .gform_wrapper .gfield_error select,
.obc-contact-form-card .gform_wrapper .gfield_error textarea {
	border-color: var(--color-error);
}

.obc-contact-form-card .gform_wrapper .validation_message,
.obc-contact-form-card .gform_wrapper .gfield_validation_message {
	margin-top: var(--space-xs);
	font-size: 0.875rem;
	color: var(--color-error);
	text-align: right;
}

.obc-contact-form-card .gform_wrapper .gform_validation_errors {
	margin: 0 0 var(--space-lg);
	padding: var(--space-md);
	border: 1px solid color-mix(in srgb, var(--color-error) 30%, transparent);
	border-radius: var(--radius-md);
	background-color: var(--color-error-container);
	color: var(--color-on-error-container);
}

.obc-contact-form-card .gform_wrapper .gform_confirmation_message {
	margin: 0;
	padding: var(--space-md);
	border-radius: var(--radius-md);
	background-color: var(--color-primary-container);
	color: var(--color-on-primary-container);
	text-align: right;
}

.obc-contact-form-card .gform_wrapper .gform_footer,
.obc-contact-form-card .gform_wrapper .gform_page_footer {
	margin: var(--space-lg) 0 0;
	padding: 0;
	grid-column: 1 / -1;
}

.obc-contact-form-card .gform_wrapper .gform_footer input[type="submit"],
.obc-contact-form-card .gform_wrapper .gform_page_footer input[type="submit"],
.obc-contact-form-card .gform_wrapper .obc-form__submit,
.obc-contact-form-card .gform_wrapper .obc-gf-submit {
	display: flex;
	width: 100%;
	justify-content: center;
	align-items: center;
	gap: var(--space-sm);
	margin: 0;
	padding: var(--space-md) var(--space-lg);
	border: none;
	border-radius: var(--radius-md);
	background-color: var(--color-primary);
	color: var(--color-on-primary);
	font-family: var(--font-display);
	font-size: 1.5rem;
	line-height: 1.33;
	font-weight: 600;
	cursor: pointer;
	transition: transform 100ms ease;
}

.obc-contact-form-card .gform_wrapper .gform_footer input[type="submit"]:active,
.obc-contact-form-card .gform_wrapper .gform_page_footer input[type="submit"]:active,
.obc-contact-form-card .gform_wrapper .obc-form__submit:active,
.obc-contact-form-card .gform_wrapper .obc-gf-submit:active {
	transform: scale(0.98);
}

.obc-contact-form-card .gform_wrapper .gform_footer input[type="submit"]:focus,
.obc-contact-form-card .gform_wrapper .gform_footer input[type="submit"]:focus-visible,
.obc-contact-form-card .gform_wrapper .gform_footer input[type="submit"]:active,
.obc-contact-form-card .gform_wrapper .gform_page_footer input[type="submit"]:focus,
.obc-contact-form-card .gform_wrapper .gform_page_footer input[type="submit"]:focus-visible,
.obc-contact-form-card .gform_wrapper .gform_page_footer input[type="submit"]:active,
.obc-contact-form-card .gform_wrapper .obc-form__submit:focus,
.obc-contact-form-card .gform_wrapper .obc-form__submit:focus-visible,
.obc-contact-form-card .gform_wrapper .obc-form__submit:active,
.obc-contact-form-card .gform_wrapper .obc-gf-submit:focus,
.obc-contact-form-card .gform_wrapper .obc-gf-submit:focus-visible,
.obc-contact-form-card .gform_wrapper .obc-gf-submit:active,
.obc-contact-form-card .gform_wrapper button.gform_button:focus,
.obc-contact-form-card .gform_wrapper button.gform_button:focus-visible,
.obc-contact-form-card .gform_wrapper button.gform_button:active,
.obc-contact-form-card .gform_wrapper .gform-theme-button--primary:focus,
.obc-contact-form-card .gform_wrapper .gform-theme-button--primary:focus-visible,
.obc-contact-form-card .gform_wrapper .gform-theme-button--primary:active {
	outline: none;
	box-shadow: none;
	background-color: var(--color-primary-container);
	color: var(--color-on-primary-container);
}

.obc-contact-form-card .gform_wrapper .gform_footer input[type="submit"]:focus-visible,
.obc-contact-form-card .gform_wrapper .obc-form__submit:focus-visible,
.obc-contact-form-card .gform_wrapper .obc-gf-submit:focus-visible,
.obc-contact-form-card .gform_wrapper button.gform_button:focus-visible,
.obc-contact-form-card .gform_wrapper .gform-theme-button--primary:focus-visible {
	outline: 2px solid var(--color-secondary);
	outline-offset: 2px;
	box-shadow: none;
}

.obc-contact-form-card .gform_wrapper .obc-gf-submit__icon {
	transition: transform var(--transition-fast);
}

.obc-contact-form-card .gform_wrapper .obc-gf-submit:hover .obc-gf-submit__icon,
.obc-contact-form-card .gform_wrapper .obc-gf-submit:focus-visible .obc-gf-submit__icon {
	transform: translateX(-4px);
}

/* Legacy markup */
.obc-contact-form-card .gform_legacy_markup_wrapper ul.gform_fields {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-lg);
}

@media (min-width: 768px) {
	.obc-contact-form-card .gform_legacy_markup_wrapper ul.gform_fields li.gfield.gf_left_half,
	.obc-contact-form-card .gform_legacy_markup_wrapper ul.gform_fields li.gfield.gf_right_half {
		width: auto;
	}

	.obc-contact-form-card .gform_legacy_markup_wrapper ul.gform_fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.obc-contact-form-card .gform_legacy_markup_wrapper ul.gform_fields li.gfield:not(.gf_left_half):not(.gf_right_half) {
		grid-column: 1 / -1;
	}
}

.obc-contact-form-card .gform_legacy_markup_wrapper .gform_footer {
	padding: 0;
	margin: var(--space-lg) 0 0;
}
