/* =========================================================
   GRAVITY FORMS COMPONENT BRIDGE
   Applies Designer Controls settings to Gravity Forms fields
   so <select>, <input>, <textarea>, and the submit button
   all share the same MG design-system look used by Elementor
   forms (see mg-elementor-component-bridge.css).

   Scoped to body.mg-design-system .gform_wrapper.
   :where() keeps specificity (0,0,0) so per-form overrides
   and Elementor inline styles still win.
   ========================================================= */

body.mg-design-system :where(
	.gform_wrapper .gfield input[type="text"],
	.gform_wrapper .gfield input[type="email"],
	.gform_wrapper .gfield input[type="tel"],
	.gform_wrapper .gfield input[type="url"],
	.gform_wrapper .gfield input[type="number"],
	.gform_wrapper .gfield input[type="password"],
	.gform_wrapper .gfield input[type="search"],
	.gform_wrapper .gfield input[type="date"],
	.gform_wrapper .gfield input[type="time"],
	.gform_wrapper .gfield textarea,
	.gform_wrapper .gfield select
) {
	width: 100%;
	min-height: 48px;
	padding: 0.75rem 1rem;
	font: inherit;
	line-height: 1.4;
	color: inherit;
	background-color: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: var(--mg-input-radius, var(--mg-radius-sm, 8px));
	box-shadow: var(--mg-shadow-sm, none);
	transition: border-color .15s ease, box-shadow .15s ease;
	box-sizing: border-box;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
}

body.mg-design-system :where(.gform_wrapper .gfield textarea) {
	min-height: 120px;
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
	resize: vertical;
}

body.mg-design-system :where(.gform_wrapper .gfield select) {
	padding-right: 2.75rem;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%23334155' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	background-size: 12px 8px;
	cursor: pointer;
}

body.mg-design-system :where(.gform_wrapper .gfield select)::-ms-expand {
	display: none;
}

body.mg-design-system :where(
	.gform_wrapper .gfield input:focus,
	.gform_wrapper .gfield textarea:focus,
	.gform_wrapper .gfield select:focus
) {
	outline: var(--mg-focus-ring-width, 2px) solid currentColor;
	outline-offset: var(--mg-focus-ring-offset, 2px);
	border-color: rgba(0, 0, 0, 0.24);
}

body.mg-design-system :where(
	.gform_wrapper .gfield input:focus-visible,
	.gform_wrapper .gfield textarea:focus-visible,
	.gform_wrapper .gfield select:focus-visible
) {
	outline: var(--mg-focus-ring-width, 2px) solid currentColor;
	outline-offset: var(--mg-focus-ring-offset, 2px);
}

body.mg-design-system :where(
	.gform_wrapper .gfield input::placeholder,
	.gform_wrapper .gfield textarea::placeholder
) {
	color: rgba(0, 0, 0, 0.55);
	opacity: 1;
}

body.mg-design-system :where(
	.gform_wrapper .gfield.gfield_error input[type="text"],
	.gform_wrapper .gfield.gfield_error input[type="email"],
	.gform_wrapper .gfield.gfield_error input[type="tel"],
	.gform_wrapper .gfield.gfield_error input[type="url"],
	.gform_wrapper .gfield.gfield_error input[type="number"],
	.gform_wrapper .gfield.gfield_error textarea,
	.gform_wrapper .gfield.gfield_error select
) {
	border-color: #dc2626;
	box-shadow: 0 0 0 1px #dc2626;
}

body.mg-design-system :where(.gform_wrapper .gform_footer .gform_button, .gform_wrapper .gform_page_footer .gform_button) {
	padding: var(--mg-btn-py, 0.875rem) var(--mg-btn-px, 1.75rem);
	border-radius: var(--mg-btn-radius, var(--mg-radius-sm, 8px));
	background-color: var(--e-global-color-accent, var(--mg-color-accent, #0ea5e9));
	color: #ffffff;
	border: none;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	box-shadow: var(--mg-shadow-sm, none);
	transition: transform .15s ease, box-shadow .15s ease, filter .2s ease;
}

@media (hover: hover) {
	body.mg-design-system :where(.gform_wrapper .gform_footer .gform_button:hover, .gform_wrapper .gform_page_footer .gform_button:hover) {
		transform: translateY(calc(var(--mg-btn-hover-raise, 0px) * -1));
		box-shadow: var(--mg-btn-shadow, none);
		filter: brightness(0.85);
	}
}

body.mg-design-system :where(.gform_wrapper .gform_footer .gform_button:focus-visible, .gform_wrapper .gform_page_footer .gform_button:focus-visible) {
	outline: var(--mg-focus-ring-width, 2px) solid currentColor;
	outline-offset: var(--mg-focus-ring-offset, 2px);
}

@media (prefers-reduced-motion: reduce) {
	body.mg-design-system :where(.gform_wrapper .gform_button) {
		transition: none;
	}
	body.mg-design-system :where(.gform_wrapper .gform_button:hover) {
		transform: none;
	}
}
