.hide {
	display: none !important;
}

.gform_wrapper {
	color: var(--wp--custom--forms--text-color);
	accent-color: var(--wp--custom--forms--accent-color);

	/* Normalize UA form chrome across browsers/OS without fighting GF layout. */
	button,
	input,
	select,
	textarea {
		appearance: none;
		-webkit-appearance: none;
		box-sizing: border-box;
		font: inherit;
		letter-spacing: inherit;
		color: inherit;
		margin: 0;
		min-width: 0;
	}

    button {
        color: var(--wp--preset--color--white);
        font-weight: 700;
    }

	/* Keep native checkbox/radio so accent-color remains reliable. */
	input[type="checkbox"],
	input[type="radio"] {
		appearance: auto;
		-webkit-appearance: auto;
		width: 1.125em;
		height: 1.125em;
		flex-shrink: 0;
		accent-color: var(--wp--custom--forms--accent-color);
	}

	input[type="search"] {
		-webkit-appearance: none;
	}

	input[type="search"]::-webkit-search-decoration,
	input[type="search"]::-webkit-search-cancel-button {
		-webkit-appearance: none;
	}

	input[type="number"]::-webkit-outer-spin-button,
	input[type="number"]::-webkit-inner-spin-button {
		-webkit-appearance: none;
		margin: 0;
	}

	input[type="number"] {
		-moz-appearance: textfield;
		appearance: textfield;
	}

	::placeholder {
		color: var(--wp--custom--forms--label-color);
		opacity: 1;
		font-size: inherit;
	}

	input:-webkit-autofill,
	textarea:-webkit-autofill,
	select:-webkit-autofill {
		-webkit-text-fill-color: var(--wp--custom--forms--text-color);
		box-shadow: 0 0 0 1000px var(--wp--custom--forms--background-color) inset;
		transition: background-color 99999s ease-out;
	}

	:disabled,
	[aria-disabled="true"] {
		cursor: not-allowed;
		opacity: 0.6;
	}

	fieldset {
		min-width: 0;
	}

	.gform-body {
		.gfield.sms-opt-in-note p {
			font-weight: normal;
			font-style: italic;
			font-size: 0.8em;
			margin-top: 0;
		}
	}
}

.gform_fields {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}

.gfield {
	flex: 1 1 100%;
	min-width: 0;
	position: relative;
}

.gfield.gfield--width-half {
	flex: 1 1 calc(50% - 10px);
	min-width: min(100%, 16rem);
}

/* Shared control height so half-width text + select rows (Company / State) align. */
:is(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="url"],
	input[type="password"],
	input[type="search"],
	select
) {
	height: 58px;
}

.gfield--type-choice {
	border: 1px solid var(--wp--custom--forms--border-color);
	border-radius: var(--wp--custom--forms--border-radius);
	background: var(--wp--custom--forms--background-color);

	.ginput_container_checkbox {
		margin-top: 25px;
		padding-left: 16px;
		padding-right: 20px;
		margin-bottom: 7px;
	}

	.gfield_checkbox {
		display: flex;
		flex-wrap: wrap;
		column-gap: var(--wp--custom--spacing--flex-space-medium);
		row-gap: var(--wp--custom--spacing--flex-space-small);
	}

	label {
		font-size: var(--wp--preset--font-size--body-xs-fixed);
	}
}

.ginput_container {
	display: flex;
	flex-direction: column;
}

.gfield_label {
	font-family: var(--wp--preset--font-family--body, sans-serif);
	color: var(--wp--custom--forms--label-color);
	font-size: var(--wp--preset--font-size--body-md, 1rem);
	position: absolute;
	left: 1.35rem;
	top: 15px;
	transition: top 0.2s ease-in-out, font-size 0.2s ease-in-out, font-weight 0.2s ease-in-out, color 0.2s ease-in-out;
}

.gfield:has(select) .gfield_label,
.gfield--type-choice > .gfield_label,
.gfield:has(:is(input, select, textarea):focus) .gfield_label,
.gfield:has(:is(input, textarea).has-text) .gfield_label {
	font-family: var(--wp--preset--font-family--body, sans-serif);
	font-weight: 700;
	color: var(--wp--custom--forms--label-filled-color);
	font-size: var(--wp--preset--font-size--body-2-xs-fixed);
	position: absolute;
	width: auto;
	padding-top: 6px;
	padding-left: 20px;
	padding-bottom: 5px;
	background: transparent;
	top: 1px;
	left: 1px;
	border-top-left-radius: var(--wp--custom--forms--border-radius);
	border-top-right-radius: var(--wp--custom--forms--border-radius);
}

:is(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="url"],
	input[type="password"],
	input[type="search"],
	select,
	textarea
) {
	width: 100%;
	font-family: var(--wp--preset--font-family--body, sans-serif);
	font-size: var(--wp--preset--font-size--body-md, 1rem);
	line-height: 1.44;
	border: 1px solid var(--wp--custom--forms--border-color);
	border-radius: var(--wp--custom--forms--border-radius);
	background: var(--wp--custom--forms--background-color);
	color: var(--wp--custom--forms--text-color);
}

:is(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="url"],
	input[type="password"],
	input[type="search"],
	select,
	textarea
):focus {
	border-color: var(--wp--custom--forms--focus-color);
	outline: none;
}

:is(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="url"],
	input[type="password"],
	input[type="search"],
	select,
	textarea
):focus-visible {
	border-color: var(--wp--custom--forms--focus-color);
	outline: 2px solid color-mix(in srgb, var(--wp--custom--forms--focus-color) 25%, transparent);
	outline-offset: 1px;
}

textarea {
	height: 150px;
	resize: vertical;
	min-height: 75px;
}

.gfield_checkbox .gchoice {
	display: flex;
	align-items: center;
	gap: 4px;
}

:is(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="url"],
	input[type="password"],
	input[type="search"],
	select,
	textarea
) {
	padding: 1.125rem 1.25rem 0.375rem;
}

input[type="checkbox"],
input[type="radio"] {
	padding: 0;
	border: 0;
	background: transparent;
	border-radius: 0;
}


.gfield_description,
.gform_description,
.validation_message {
	font-size: 0.875rem;
}

.gform_validation_errors,
.gfield_validation_message {
	border-radius: var(--wp--custom--forms--border-radius);
	outline-offset: 5px;
	outline-color: var(--wp--custom--forms--error-color);
	margin-block: 1em;
	padding: 0.5rem;
}

.gfield_error {
	:is(
		input[type="text"],
		input[type="email"],
		input[type="tel"],
		input[type="number"],
		input[type="url"],
		input[type="password"],
		input[type="search"],
		select,
		textarea
	) {
		border-color: var(--wp--custom--forms--error-color);
	}

	.gfield_label {
		color: var(--wp--custom--forms--error-color) !important;
	}
}

.gfield_description {
	font-family: var(--wp--preset--font-family--body, sans-serif);
	margin-top: 10px;
	margin-left: 20px;
}

.gfield_validation_message {
	margin-block-start: 0;
	margin-inline-start: 0;
	padding-inline-start: 0;
}

.hidden_label {
	.gfield_label {
		border: 0;
		clip: rect(1px, 1px, 1px, 1px);
		clip-path: inset(50%);
		height: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute;
		width: 1px;
		word-wrap: normal !important;
	}
}

fieldset {
	font-family: var(--wp--preset--font-family--body, sans-serif);
	border: 0;
	margin: 0;
	padding: 0;
}

.gform-footer {
	margin-top: var(--wp--custom--spacing--flex-space-medium);
}

.gform_required_legend {
	font-weight: 400 !important;
	font-size: var(--wp--preset--font-size--body-xs-fixed, 0.875rem) !important;
	line-height: 20px !important;
	margin-block: 1em;
}

.gform_submission_error {
	font-family: var(--wp--preset--font-family--heading, sans-serif);
	font-size: var(--wp--preset--font-size--body-xs-fixed, 0.875rem) !important;
	color: var(--wp--custom--forms--error-color);
}

.background-color-dark {
	.gfield_description,
	fieldset,
	.gform_required_legend,
	.gform_submission_error {
		color: var(--wp--preset--color--base);
	}
}
