/**
 * Gravity Forms — tighter layout, visually hidden labels,
 * Enfold-style submit buttons, and textarea line-height.
 */

/* -------------------------------------------------------------------------
   Spacing
   ------------------------------------------------------------------------- */
.gform_wrapper.gform-theme,
.gform_wrapper.gform-theme--foundation,
.gform_wrapper.gravity-theme,
.gform_wrapper.gform_legacy_markup_wrapper {
	--hdb-gf-field-gap: 16px;
	--hdb-gf-col-gap: 10px;
	--gf-form-gap-y: var(--hdb-gf-field-gap);
	--gf-form-gap-x: var(--hdb-gf-col-gap);
	--gf-field-gap-y: 0;
	--gf-field-gap-x: var(--hdb-gf-col-gap);
	--gf-form-footer-margin-y-start: 16px;
	--gf-ctrl-label-font-weight: 400;
	--gf-ctrl-padding-block: 10px;
	--gf-ctrl-padding-inline: 12px;
	--gf-ctrl-size: 42px;
	--gf-ctrl-color: #2b2b2b;
	--gf-ctrl-placeholder-color: #b0b0b0;
	--gf-local-radius: 0;
}

#top .gform_wrapper .gform_fields {
	margin-bottom: 0;
}

#top .gform_wrapper .gfield,
#top .gform_wrapper .gfield .ginput_container:not(.ginput_complex):not(.gform-grid-row),
#top .gform_wrapper .gform-grid-col {
	row-gap: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

#top .gform_wrapper .gform-grid-col {
	display: block !important;
}

#top .gform_wrapper .gform_fields > .gfield:last-child,
#top .gform_wrapper ul.gform_fields > li.gfield:last-child {
	margin-bottom: 0;
}

#top .gform_wrapper .gfield_description {
	margin-top: 4px;
	margin-bottom: 0;
}

/* Honeypot / hidden fields must not occupy a grid row (causes a large empty gap). */
#top .gform_wrapper .gform_validation_container,
#top .gform_wrapper .gfield--type-honeypot,
#top .gform_wrapper .gfield.gform_hidden,
#top .gform_wrapper .gf_invisible {
	position: absolute !important;
	left: -9999px;
	width: 1px !important;
	height: 1px !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Use the same vertical gap as other fields — don't pull Turnstile up. */
#top .gform_wrapper .gfield--type-turnstile,
#top .gform_wrapper .gfield--type-captcha {
	margin-top: 0;
	margin-bottom: 8px;
	padding-top: 0;
	padding-bottom: 0;
}

#top .gform_wrapper .gfield--type-turnstile .gfield_label,
#top .gform_wrapper .gfield--type-captcha .gfield_label {
	margin: 0;
}

#top .gform_wrapper .gfield--type-turnstile .ginput_container,
#top .gform_wrapper .cf-turnstile {
	margin: 0;
	padding: 0;
	min-height: 0;
}

/* -------------------------------------------------------------------------
   Labels: visually hidden, still available to screen readers.
   Do not use display:none / visibility:hidden — those hide from AT too.
   Choice labels (checkbox/radio) and consent copy stay visible.
   ------------------------------------------------------------------------- */
#top .gform_wrapper .gfield_label,
#top .gform_wrapper legend.gfield_label,
#top .gform_wrapper .gform-field-label:not(.gform-field-label--type-inline),
#top .gform_wrapper .ginput_complex label,
#top .gform_wrapper .ginput_container_name label,
#top .gform_wrapper .ginput_container_address label,
#top .gform_wrapper .ginput_container_email label,
#top .gform_wrapper .gfield_header_item,
#top .gform_wrapper .gform_required_legend {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
	font-weight: 400;
}

#top .gform_wrapper .gfield--type-checkbox .gchoice label,
#top .gform_wrapper .gfield--type-radio .gchoice label,
#top .gform_wrapper .gfield--type-consent label,
#top .gform_wrapper .gfield--type-consent .gfield_label,
#top .gform_wrapper .gfield_checkbox label,
#top .gform_wrapper .gfield_radio label,
#top .gform_wrapper .ginput_container_consent label,
#top .gform_wrapper .gform-field-label--type-inline {
	position: static !important;
	width: auto !important;
	height: auto !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: visible !important;
	clip: auto !important;
	clip-path: none !important;
	white-space: normal !important;
	border: 0 !important;
	font-weight: 400;
}

/* -------------------------------------------------------------------------
   Name + Address — nested 12-column grid matching Email / Phone
   ------------------------------------------------------------------------- */
#top .gform_wrapper .ginput_container_name,
#top .gform_wrapper .ginput_container--name,
#top .gform_wrapper .ginput_complex.ginput_container_name,
#top .gform_wrapper .ginput_container_address,
#top .gform_wrapper .ginput_complex.gform-grid-row.ginput_container,
#top .gform_wrapper .ginput_complex.ginput_container_address {
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--hdb-gf-col-gap);
	row-gap: var(--hdb-gf-field-gap) !important;
	width: 100%;
	max-width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box;
}

#top .gform_wrapper .name_prefix,
#top .gform_wrapper .name_middle,
#top .gform_wrapper .name_suffix {
	display: none !important;
}

#top .gform_wrapper .name_first,
#top .gform_wrapper .name_last,
#top .gform_wrapper .address_city,
#top .gform_wrapper .address_state {
	grid-column: span 6;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0;
	float: none;
	display: block !important;
	box-sizing: border-box;
}

#top .gform_wrapper .ginput_container_address > span:not(:has(input)):not(:has(select)) {
	display: none !important;
}

#top .gform_wrapper .ginput_container_address .ginput_full,
#top .gform_wrapper .ginput_container_address .address_line_1 {
	grid-column: 1 / -1;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	max-width: none !important;
	float: none;
	box-sizing: border-box;
}

/* Unused address parts still occupy grid rows and add a large gap before Message. */
#top .gform_wrapper .address_line_2,
#top .gform_wrapper .address_zip,
#top .gform_wrapper .address_country,
#top .gform_wrapper .ginput_address_line_2,
#top .gform_wrapper .ginput_address_zip,
#top .gform_wrapper .ginput_address_country {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

#top .gform_wrapper .gfield--type-textarea,
#top .gform_wrapper .ginput_container_textarea {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

#top .gform_wrapper .ginput_container_name input,
#top .gform_wrapper .ginput_container_address input,
#top .gform_wrapper .ginput_container_address select {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
}

/* -------------------------------------------------------------------------
   Inputs — Enfold-like padding, darker values, quieter placeholders
   ------------------------------------------------------------------------- */
#top .gform_wrapper input[type="text"],
#top .gform_wrapper input[type="email"],
#top .gform_wrapper input[type="tel"],
#top .gform_wrapper input[type="url"],
#top .gform_wrapper input[type="number"],
#top .gform_wrapper input[type="password"],
#top .gform_wrapper input[type="search"],
#top .gform_wrapper input.medium,
#top .gform_wrapper input.large,
#top .gform_wrapper input.small,
#top .gform_wrapper select,
#top .gform_wrapper textarea,
#top .gform_wrapper textarea.textarea {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 42px !important;
	padding: 10px 12px !important;
	margin-bottom: 0 !important;
	color: #2b2b2b !important;
	font-size: 1em !important;
	line-height: 1.3 !important;
	border-radius: 2px;
}

#top .gform_wrapper select {
	height: auto !important;
	min-height: 42px !important;
	padding: 10px 12px !important;
	line-height: 1.3;
	overflow: visible;
	text-overflow: clip;
	appearance: none;
	-webkit-appearance: none;
}

#top .gform_wrapper textarea,
#top .gform_wrapper textarea.textarea,
#top .gform_wrapper .ginput_container_textarea textarea {
	min-height: 96px !important;
	height: 96px !important;
	line-height: 1.55 !important;
	padding: 10px 12px !important;
	resize: vertical;
}

#top .gform_wrapper input::placeholder,
#top .gform_wrapper textarea::placeholder,
#top .gform_wrapper select::placeholder {
	color: #b0b0b0;
	opacity: 1;
}

#top .gform_wrapper input::-webkit-input-placeholder,
#top .gform_wrapper textarea::-webkit-input-placeholder {
	color: #b0b0b0;
	opacity: 1;
}

#top .gform_wrapper input::-moz-placeholder,
#top .gform_wrapper textarea::-moz-placeholder {
	color: #b0b0b0;
	opacity: 1;
}

#top .gform_wrapper input:-ms-input-placeholder,
#top .gform_wrapper textarea:-ms-input-placeholder {
	color: #b0b0b0;
	opacity: 1;
}

/* -------------------------------------------------------------------------
   Submit / Next / Previous buttons — match Enfold contact form
   ------------------------------------------------------------------------- */
#top .gform_wrapper .gform_footer,
#top .gform_wrapper .gform_page_footer {
	margin-top: 16px;
}

#top .gform_wrapper input[type="submit"],
#top .gform_wrapper input[type="button"],
#top .gform_wrapper .gform_button,
#top .gform_wrapper .gform_next_button,
#top .gform_wrapper .gform_previous_button,
#top .gform_wrapper .gform-theme-button:not(.gform-theme-button--control),
#top .gform_wrapper .gform_footer button,
#top .gform_wrapper .gform_page_footer button {
	background-color: var(--enfold-main-color-primary);
	color: var(--enfold-main-color-constant-font);
	border: none;
	border-bottom: 1px solid var(--enfold-main-color-button-border);
	border-radius: 0;
	padding: 16px 20px;
	min-width: 142px;
	font-family: interstate, sans-serif;
	font-weight: 400;
	font-size: 0.92em;
	line-height: 1.2;
	cursor: pointer;
	outline: none;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	transition: all 0.3s ease-in-out;
}

#top .gform_wrapper input[type="submit"]:hover,
#top .gform_wrapper input[type="button"]:hover,
#top .gform_wrapper .gform_button:hover,
#top .gform_wrapper .gform_next_button:hover,
#top .gform_wrapper .gform_previous_button:hover,
#top .gform_wrapper .gform-theme-button:not(.gform-theme-button--control):hover,
#top .gform_wrapper .gform_footer button:hover,
#top .gform_wrapper .gform_page_footer button:hover {
	background-color: var(--enfold-main-color-primary);
	color: var(--enfold-main-color-constant-font);
	border-color: var(--enfold-main-color-button-border);
	filter: brightness(0.92);
}

#top .gform_wrapper input[type="submit"]:focus-visible,
#top .gform_wrapper .gform_button:focus-visible,
#top .gform_wrapper .gform-theme-button:not(.gform-theme-button--control):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}
