/* ==========================================================================
   Global Gravity Forms styling — Open Spaces Sanctuary brand.

   Every rule is scoped under .gform_wrapper (Gravity Forms' own container),
   so ANY form dropped in via [gravityform ...] is auto-branded and NOTHING
   here can touch a non-form element on the page. The look is driven mainly
   through Gravity Forms' Orbital theme custom properties (--gf-ctrl-*), which
   its own selectors already consume, plus explicit fallback rules for older
   markup. Light-background default; the dark "Stay Connected" panel overrides
   a few of these with a more specific selector.
   ========================================================================== */

/* Map the form theme's control + button tokens to brand tokens. Scoped to the
   wrapper, so this only ever affects Gravity Forms. */
.gform_wrapper {
	--gf-color-primary: var(--oss-primary);
	--gf-color-primary-rgb: 89, 107, 88;
	--gf-color-primary-contrast: var(--oss-bg);
	--gf-ctrl-bg-color: var(--oss-bg);
	--gf-ctrl-color: var(--oss-text);
	--gf-ctrl-border-color: rgba(117, 91, 69, 0.25);
	--gf-ctrl-border-color-hover: rgba(117, 91, 69, 0.45);
	--gf-ctrl-border-color-focus: var(--oss-gold);
	--gf-ctrl-radius: var(--oss-radius);
	--gf-ctrl-label-color-primary: var(--oss-brown);
	--gf-ctrl-btn-bg-color-primary: var(--oss-gold);
	--gf-ctrl-btn-bg-color-hover-primary: var(--oss-gold-light);
	--gf-ctrl-btn-border-color-primary: var(--oss-gold);
	--gf-ctrl-btn-border-color-hover-primary: var(--oss-gold-light);
	--gf-ctrl-btn-color-primary: var(--oss-primary-dark);
	--gf-ctrl-btn-color-hover-primary: var(--oss-primary-dark);
	--gf-ctrl-btn-radius: var(--oss-radius);
	--gf-ctrl-btn-font-family: var(--oss-font-body);
	--gf-ctrl-btn-font-size: 0.85rem;
	--gf-ctrl-btn-font-weight: 600;
	--gf-ctrl-btn-letter-spacing: 0.1em;
}

/* Layout */
.gform_wrapper form { margin: 0; }
.gform_wrapper .gform_fields { row-gap: 1.15rem; }
.gform_wrapper .gfield { margin: 0; }

/* Optional title (shown only when the shortcode doesn't pass title="false"). */
.gform_wrapper .gform_title {
	font-family: var(--oss-font-heading);
	color: var(--oss-text);
	font-size: 1.5rem;
	margin: 0 0 0.75rem;
}

/* Labels */
.gform_wrapper .gfield_label,
.gform_wrapper .ginput_complex label,
.gform_wrapper legend.gfield_label {
	font-family: var(--oss-font-body);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--oss-brown);
	margin-bottom: 0.45rem;
	display: block;
}
.gform_wrapper .gfield_required { color: var(--oss-gold); }

/* Text inputs, textarea, select */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="password"],
.gform_wrapper input[type="search"],
.gform_wrapper input[type="date"],
.gform_wrapper textarea,
.gform_wrapper select {
	width: 100%;
	box-sizing: border-box;
	padding: 0.85em 1em;
	border: 1px solid rgba(117, 91, 69, 0.25);
	border-radius: var(--oss-radius);
	background: var(--oss-bg);
	color: var(--oss-text);
	font-family: var(--oss-font-body);
	font-size: 0.95rem;
	line-height: 1.4;
	transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
.gform_wrapper input[type="text"]:focus,
.gform_wrapper input[type="email"]:focus,
.gform_wrapper input[type="tel"]:focus,
.gform_wrapper input[type="url"]:focus,
.gform_wrapper input[type="number"]:focus,
.gform_wrapper input[type="password"]:focus,
.gform_wrapper input[type="search"]:focus,
.gform_wrapper input[type="date"]:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
	outline: none;
	border-color: var(--oss-gold);
	background: var(--oss-white);
	box-shadow: 0 0 0 3px rgba(180, 154, 104, 0.18);
}
.gform_wrapper textarea { min-height: 150px; resize: vertical; }
.gform_wrapper input::placeholder,
.gform_wrapper textarea::placeholder { color: rgba(53, 58, 53, 0.5); }

/* Choices */
.gform_wrapper .gfield_checkbox label,
.gform_wrapper .gfield_radio label {
	text-transform: none;
	letter-spacing: 0;
	font-weight: 400;
	font-size: 0.95rem;
	color: var(--oss-text);
}
.gform_wrapper input[type="checkbox"],
.gform_wrapper input[type="radio"] { accent-color: var(--oss-primary); }

/* Helper + error text */
.gform_wrapper .gfield_description,
.gform_wrapper .validation_message {
	font-size: 0.85rem;
	color: var(--oss-brown);
}
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error textarea,
.gform_wrapper .gfield_error select { border-color: #b3261e; }
.gform_wrapper .gform_validation_errors {
	background: #fdeceb;
	border: 1px solid #f0c4c0;
	border-radius: var(--oss-radius);
	color: #8a1f19;
}

/* Submit button — brand primary. !important is the proven belt-and-braces
   against the form theme's own high-specificity button rules. The dark
   Stay Connected panel overrides this with a more specific !important rule. */
.gform_wrapper .gform_footer { margin-top: 1.15rem; padding: 0; }
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_footer button.gform_button,
.gform_wrapper input[type="submit"].gform_button,
.gform_wrapper button.gform_button {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 28px !important;
	background: var(--oss-gold) !important;
	color: var(--oss-primary-dark) !important;
	border: 1px solid var(--oss-gold) !important;
	border-radius: var(--oss-radius) !important;
	font-family: var(--oss-font-body) !important;
	font-size: 0.85rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	cursor: pointer;
	transition: background-color 0.3s ease, transform 0.3s ease;
}
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_footer button.gform_button:hover,
.gform_wrapper input[type="submit"].gform_button:hover,
.gform_wrapper button.gform_button:hover {
	background: var(--oss-gold-light) !important;
	border-color: var(--oss-gold-light) !important;
	transform: translateY(-2px);
}

/* Confirmation */
.gform_confirmation_message {
	font-family: var(--oss-font-body);
	color: var(--oss-text);
	line-height: 1.6;
}
