/* ==========================================================================
   Gravity Styles — Compact reset for Gravity Forms
   Targets Orbital / Foundation / Framework themes (GF 2.7+).

   Palette is declared inside the .gform-theme scope so that builder/theme
   vars (Elementor, Astra, etc.) — which live on <body> — are in scope and
   resolve correctly. Resolving them at :root would always hit the fallback.
   ========================================================================== */
.gform-theme.gform-theme--framework,
.gform-theme.gform-theme--orbital,
.gform-theme.gform-theme--foundation,
[class*="gform_wrapper"] .gform-theme {
	/* --------------------------------------------------------------------
	   PALETTE — edit these per-site before upload if needed.
	   Fallback chain: Elementor → Astra → Kadence → GeneratePress
	                  → WordPress theme.json → hardcoded default.
	   -------------------------------------------------------------------- */
	--gs-primary:
		var(--e-global-color-primary,
		var(--ast-global-color-0,
		var(--global-palette1,
		var(--accent,
		var(--wp--preset--color--primary,
		#2c3e50)))));

	--gs-accent:
		var(--e-global-color-accent,
		var(--ast-global-color-1,
		var(--global-palette2,
		var(--contrast,
		var(--wp--preset--color--accent,
		#c0392b)))));

	--gs-on-primary: #ffffff;
	--gs-required: #c0392b;
	--gs-focus-bg: #d3dae3;
	--gs-placeholder: #6b7280;
	--gs-out-ctrl-dark: #333333;

	/* Vertical rhythm between rows */
	--gf-form-gap-y: 0.75rem;
	--gf-form-gap-x: 1rem;

	/* Label → input gaps */
	--gf-label-space-primary: 0.25rem;
	--gf-label-space-secondary: 0.25rem;
	--gf-label-space-tertiary: 4px;
	--gf-label-space-y-secondary: 0.25rem;

	/* Typography */
	--gf-font-size-primary: 16px;
	--gf-font-size-secondary: 14px;
	--gf-font-size-tertiary: 0.85rem;
	--gf-ctrl-label-font-size-primary: 0.85rem;
	--gf-ctrl-label-font-weight-primary: 700;
	--gf-ctrl-label-color-primary: var(--gs-primary);
	--gf-ctrl-label-color-secondary: var(--gs-primary);
	--gf-ctrl-label-color-req: var(--gs-required);
	--gf-ctrl-desc-font-size: 0.85rem;

	/* Input sizing */
	--gf-ctrl-padding-y: 0.7rem;
	--gf-ctrl-padding-x: 0.85rem;
	--gf-ctrl-min-h: 44px;

	/* Choice spacing — kill the giant checkbox gaps */
	--gf-ctrl-choice-gap: 0.4rem;
	--gf-ctrl-choice-size: 18px;
	--gf-ctrl-choice-label-gap: 0.55rem;
	--gf-ctrl-choice-label-color: var(--gs-primary);
	--gf-ctrl-choice-label-font-size: 0.95rem;
	--gf-ctrl-choice-label-font-weight: 400;

	/* Submit button */
	--gf-ctrl-btn-bg-color-primary: var(--gs-accent);
	--gf-ctrl-btn-bg-color-hover-primary: var(--gs-primary);
	--gf-ctrl-btn-color-primary: var(--gs-on-primary);
	--gf-ctrl-btn-color-hover-primary: var(--gs-on-primary);
	--gf-ctrl-btn-border-color-primary: var(--gs-primary);
	--gf-ctrl-btn-border-color-hover-primary: var(--gs-accent);
	--gf-ctrl-btn-border-width-primary: 0;
	--gf-ctrl-btn-border-radius: 2px;
	--gf-ctrl-btn-padding-y-primary: 0.85rem;
	--gf-ctrl-btn-padding-x-primary: 2.25rem;
	--gf-ctrl-btn-font-size-primary: 1rem;
	--gf-ctrl-btn-font-weight-primary: 700;

	/* Out-of-control elements */
	--gf-color-out-ctrl-dark: var(--gs-out-ctrl-dark);
}

/* ==========================================================================
   Direct rules where GF's vars don't quite reach
   ========================================================================== */

/* Tighten checkbox/radio rows */
.gform-theme .gfield_checkbox .gchoice,
.gform-theme .gfield_radio .gchoice {
	margin-block: 0.15rem;
}

.gform-theme .gfield--type-checkbox,
.gform-theme .gfield--type-radio {
	margin-top: 0.25rem;
}

.gform-theme input[type="text"]:focus,
.gform-theme input[type="email"]:focus,
.gform-theme input[type="tel"]:focus,
.gform-theme input[type="url"]:focus,
.gform-theme input[type="number"]:focus,
.gform-theme textarea:focus,
.gform-theme select:focus {
	background-color: var(--gs-focus-bg);
	box-shadow: 0 0 0 2px var(--gs-primary);
	outline: none;
}

/* Textarea sizing */
.gform-theme textarea.medium,
.gform-theme textarea.large {
	min-height: 110px;
	line-height: 1.5;
}

.gform-theme select {
	min-height: auto;
	padding-block: 0.5rem;
	line-height: 1.4;
}

/* Placeholders */
.gform-theme ::placeholder {
	color: var(--gs-placeholder);
	opacity: 1;
}

/* Submit button — direct rule as a safety net */
.gform-theme .gform_footer input[type="submit"],
.gform-theme .gform_page_footer input[type="submit"] {
	padding: 0.85rem 2.25rem;
	font-weight: 700;
	text-transform: uppercase !important;
	display: block;
	width: 100% !important;
}

.gform-theme .gform_footer input[type="submit"]:hover,
.gform-theme .gform_page_footer input[type="submit"]:hover {
	background-color: var(--gs-accent);
	border-color: var(--gs-accent);
}

/* Footer spacing */
.gform-theme .gform_footer,
.gform-theme .gform-footer {
	padding-top: 0.5rem;
	margin-top: 0;
}
