/**
 * SFW Forms — frontend styles aligned with Find a Pro / directory filters.
 */

.sfw-forms {
	--sfw-form-paper: #ffffff;
	--sfw-form-ink: #333130;
	--sfw-form-muted: #4a463f;
	--sfw-form-faint: #6a665c;
	--sfw-form-soil: #4f3433;
	--sfw-form-line: rgba(79, 52, 51, 0.22);
	--sfw-form-line-strong: rgba(79, 52, 51, 0.55);
	--sfw-form-surface: #f4f1ea;
	--sfw-form-accent: #156826;
	--sfw-form-accent-hover: #22371f;
	--sfw-form-danger: #b42318;
	--sfw-form-radius-btn: 1.9em 0.6em;
	--sfw-form-radius-btn-hover: 0.6em 1.9em;
	--sfw-form-radius-input: 1.1em 0.4em;
	--sfw-form-display: Montserrat, "Helvetica Neue", Arial, sans-serif;
	--sfw-form-sans: "Source Sans 3", "Source Sans Pro", "Helvetica Neue", Arial, sans-serif;
	--sfw-form-t0: 0.9375rem;
	--sfw-form-dur: 320ms;
	--sfw-form-ease: cubic-bezier(0.2, 0.6, 0.2, 1);

	max-width: 36rem;
	margin: 0 auto;
	padding: 0;
	color: var(--sfw-form-ink);
	font-family: var(--sfw-form-sans);
	text-align: left;
	box-sizing: border-box;
}

.sfw-forms *,
.sfw-forms *::before,
.sfw-forms *::after {
	box-sizing: border-box;
}

/* WPBakery sometimes wraps shortcode output in <code>. */
.sfw-forms > code {
	display: contents;
	font-family: inherit;
	font-size: inherit;
	background: transparent;
	color: inherit;
	padding: 0;
	border: 0;
	box-shadow: none;
}

.sfw-forms-form {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	align-content: start;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	max-width: none;
	text-align: left;
}

.sfw-forms-field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	width: 100%;
	min-width: 0;
	margin: 0;
}

.sfw-forms-label {
	display: block;
	font-family: var(--sfw-form-sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sfw-form-faint);
	margin: 0;
}

.sfw-forms-label--sr {
	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;
}

/* Compact email + button row (footer newsletter, CTAs). */
.sfw-forms--inline {
	max-width: 26rem;
	margin: 0;
}

.sfw-forms--inline .sfw-forms-form {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.5rem;
}

.sfw-forms--inline .sfw-forms-field {
	flex: 1 1 10rem;
	min-width: 0;
	order: 1;
}

.sfw-forms--inline .sfw-forms-actions {
	flex: 0 0 auto;
	margin: 0;
	order: 2;
}

/* Captcha always gets its own row under email + submit. */
.sfw-forms--inline .sfw-forms-captcha,
.sfw-forms--inline .sfw-forms-recaptcha {
	flex: 1 1 100%;
	width: 100%;
	max-width: 100%;
	order: 3;
	overflow: hidden;
}

.sfw-forms--inline .sfw-forms-captcha .cf-turnstile,
.sfw-forms--inline .sfw-forms-captcha iframe {
	max-width: 100%;
}

.sfw-forms--inline .sfw-forms-form input[type="text"],
.sfw-forms--inline .sfw-forms-form input[type="email"],
.sfw-forms--inline .sfw-forms-form input[type="tel"],
.sfw-forms--inline .sfw-forms-form input[type="number"] {
	min-height: 0;
	padding: 0.7em 0.8em;
}

.sfw-forms--inline .sfw-forms-success,
.sfw-forms--inline .sfw-forms-error {
	width: 100%;
	margin: 0 0 0.5rem;
	order: 0;
}

.sfw-forms-required {
	color: var(--sfw-form-danger);
	letter-spacing: 0;
	text-transform: none;
}

.sfw-forms-form input[type="text"],
.sfw-forms-form input[type="email"],
.sfw-forms-form input[type="tel"],
.sfw-forms-form input[type="number"],
.sfw-forms-form input[type="file"],
.sfw-forms-form select,
.sfw-forms-form textarea {
	width: 100%;
	min-width: 0;
	min-height: 3.5rem;
	padding: 0.7em 0.9em;
	border: 1px solid var(--sfw-form-line-strong);
	border-radius: var(--sfw-form-radius-input);
	background: var(--sfw-form-paper);
	background-color: var(--sfw-form-paper);
	color: var(--sfw-form-ink);
	font-family: var(--sfw-form-sans);
	font-size: var(--sfw-form-t0);
	line-height: 1.4;
	box-shadow: none;
	appearance: none;
	-webkit-appearance: none;
}

.sfw-forms-form input[type="file"] {
	padding-top: 0.95em;
	padding-bottom: 0.95em;
	cursor: pointer;
}

.sfw-forms-form textarea {
	min-height: 8rem;
	resize: vertical;
	height: auto;
}

.sfw-forms-form select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234F3433' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.85rem center;
	background-size: 12px 8px;
	padding-right: 2.2rem;
	cursor: pointer;
}

/* Salient fancy-select / Select2 replaces the control with a shorter widget. */
.sfw-forms .fancy-select-wrap {
	display: contents;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.sfw-forms .select2-container {
	display: none !important;
}

#ajax-content-wrap .sfw-forms select,
body .sfw-forms select,
.sfw-forms select.select2-hidden-accessible {
	position: static !important;
	display: block !important;
	width: 100% !important;
	height: 3.5rem !important;
	min-height: 3.5rem !important;
	margin: 0 !important;
	padding: 0.7em 2.2rem 0.7em 0.9em !important;
	overflow: visible !important;
	clip: auto !important;
	clip-path: none !important;
	-webkit-clip-path: none !important;
	white-space: normal !important;
	opacity: 1 !important;
	pointer-events: auto !important;
	border: 1px solid var(--sfw-form-line-strong) !important;
	border-radius: var(--sfw-form-radius-input) !important;
	background-color: var(--sfw-form-paper) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234F3433' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.85rem center !important;
	background-size: 12px 8px !important;
	box-shadow: none !important;
	color: var(--sfw-form-ink) !important;
	font-family: var(--sfw-form-sans) !important;
	font-size: var(--sfw-form-t0) !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}

#ajax-content-wrap .sfw-forms select:focus,
body .sfw-forms select:focus {
	outline: 3px solid var(--sfw-form-accent) !important;
	outline-offset: 2px !important;
	border-color: var(--sfw-form-line-strong) !important;
}

.sfw-forms-form input::placeholder,
.sfw-forms-form textarea::placeholder {
	color: var(--sfw-form-faint);
	opacity: 1;
}

.sfw-forms-form input:focus,
.sfw-forms-form select:focus,
.sfw-forms-form textarea:focus {
	outline: 3px solid var(--sfw-form-accent);
	outline-offset: 2px;
	border-color: var(--sfw-form-line-strong);
	box-shadow: none;
}

.sfw-forms-options {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	padding: 0.15rem 0;
}

.sfw-forms-options label,
.sfw-forms-consent {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	margin: 0;
	font-family: var(--sfw-form-sans);
	font-size: var(--sfw-form-t0);
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--sfw-form-ink);
	cursor: pointer;
}

.sfw-forms-options input[type="checkbox"],
.sfw-forms-options input[type="radio"],
.sfw-forms-consent input[type="checkbox"] {
	width: 1.1rem;
	height: 1.1rem;
	min-height: 0;
	margin: 0.15rem 0 0;
	padding: 0;
	accent-color: var(--sfw-form-accent);
	flex: 0 0 auto;
}

.sfw-forms-honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.sfw-forms-actions {
	margin: 0.15rem 0 0;
	display: flex;
	justify-content: flex-start;
}

.sfw-forms button.sfw-forms-submit,
.sfw-forms-submit {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	max-width: 100%;
	height: auto;
	min-height: 0;
	margin: 0;
	padding: 0.88em 1.5em;
	border: 1px solid var(--sfw-form-accent);
	border-radius: var(--sfw-form-radius-btn);
	background: var(--sfw-form-accent);
	background-color: var(--sfw-form-accent);
	color: var(--sfw-form-paper);
	font-family: var(--sfw-form-display);
	font-size: var(--sfw-form-t0);
	font-weight: 600;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
	cursor: pointer;
	box-shadow: none;
	transition:
		background var(--sfw-form-dur) var(--sfw-form-ease),
		color var(--sfw-form-dur) var(--sfw-form-ease),
		border-color var(--sfw-form-dur) var(--sfw-form-ease),
		border-radius var(--sfw-form-dur) var(--sfw-form-ease),
		transform 140ms var(--sfw-form-ease),
		box-shadow var(--sfw-form-dur) var(--sfw-form-ease);
}

.sfw-forms button.sfw-forms-submit:hover,
.sfw-forms button.sfw-forms-submit:focus,
.sfw-forms button.sfw-forms-submit:focus-visible,
.sfw-forms-submit:hover,
.sfw-forms-submit:focus,
.sfw-forms-submit:focus-visible {
	background: var(--sfw-form-accent-hover);
	background-color: var(--sfw-form-accent-hover);
	border-color: var(--sfw-form-accent-hover);
	color: var(--sfw-form-paper);
	border-radius: var(--sfw-form-radius-btn-hover);
	outline: none;
	transform: translateY(-1px);
	box-shadow: 0 3px 10px rgba(34, 55, 31, 0.18);
	text-decoration: none;
	opacity: 1;
}

.sfw-forms button.sfw-forms-submit:active,
.sfw-forms-submit:active {
	transform: translateY(0);
	box-shadow: none;
}

.sfw-forms-submit:focus-visible {
	outline: 3px solid var(--sfw-form-accent);
	outline-offset: 2px;
}

.sfw-forms-submit[disabled],
.sfw-forms-submit[aria-busy="true"] {
	opacity: 0.7;
	cursor: wait;
	transform: none;
	box-shadow: none;
}

.sfw-forms-feedback.sfw-forms-success,
.sfw-forms-success {
	margin: 0 0 1rem;
	padding: 1rem 1.15rem;
	border: 1px solid rgba(21, 104, 38, 0.28);
	border-radius: var(--sfw-form-radius-input);
	background: #f0f7f1;
	color: var(--sfw-form-accent-hover);
	font-family: var(--sfw-form-sans);
	font-size: var(--sfw-form-t0);
	text-align: left;
}

.sfw-forms-feedback.sfw-forms-error,
.sfw-forms-error {
	margin: 0 0 1rem;
	padding: 0.9rem 1rem;
	border: 1px solid rgba(180, 35, 24, 0.28);
	border-radius: var(--sfw-form-radius-input);
	background: #fef3f2;
	color: #7a271a;
	font-family: var(--sfw-form-sans);
	font-size: var(--sfw-form-t0);
	text-align: left;
}

.sfw-forms-recaptcha,
.sfw-forms-captcha {
	margin-top: 0.15rem;
}

.sfw-forms-captcha .cf-turnstile {
	min-height: 65px;
}

/* Beat Salient / WPBakery button chrome (same approach as Find a Pro). */
#ajax-content-wrap .sfw-forms button.sfw-forms-submit,
#ajax-content-wrap .sfw-forms button.btn.sfw-forms-submit,
body .sfw-forms button.sfw-forms-submit,
body .sfw-forms button.btn.sfw-forms-submit {
	appearance: none !important;
	-webkit-appearance: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0.88em 1.5em !important;
	border: 1px solid #156826 !important;
	border-radius: 1.9em 0.6em !important;
	background: #156826 !important;
	background-color: #156826 !important;
	color: #fff !important;
	font-family: Montserrat, "Helvetica Neue", Arial, sans-serif !important;
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
	box-shadow: none !important;
	opacity: 1 !important;
}

#ajax-content-wrap .sfw-forms button.sfw-forms-submit:hover,
#ajax-content-wrap .sfw-forms button.sfw-forms-submit:focus,
#ajax-content-wrap .sfw-forms button.sfw-forms-submit:focus-visible,
#ajax-content-wrap .sfw-forms button.btn.sfw-forms-submit:hover,
#ajax-content-wrap .sfw-forms button.btn.sfw-forms-submit:focus-visible,
body .sfw-forms button.sfw-forms-submit:hover,
body .sfw-forms button.sfw-forms-submit:focus,
body .sfw-forms button.sfw-forms-submit:focus-visible,
body .sfw-forms button.btn.sfw-forms-submit:hover,
body .sfw-forms button.btn.sfw-forms-submit:focus-visible {
	background: #22371f !important;
	background-color: #22371f !important;
	border-color: #22371f !important;
	color: #fff !important;
	border-radius: 0.6em 1.9em !important;
	opacity: 1 !important;
	transform: translateY(-1px);
	box-shadow: 0 3px 10px rgba(34, 55, 31, 0.18) !important;
}

@media (max-width: 600px) {
	.sfw-forms {
		max-width: none;
	}

	#ajax-content-wrap .sfw-forms:not(.sfw-forms--inline) button.sfw-forms-submit,
	body .sfw-forms:not(.sfw-forms--inline) button.sfw-forms-submit,
	.sfw-forms:not(.sfw-forms--inline) button.sfw-forms-submit,
	.sfw-forms:not(.sfw-forms--inline) .sfw-forms-submit {
		width: 100% !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sfw-forms button.sfw-forms-submit,
	.sfw-forms-submit {
		transition: background 320ms ease, color 320ms ease, border-color 320ms ease, border-radius 320ms ease;
	}

	.sfw-forms button.sfw-forms-submit:hover,
	.sfw-forms-submit:hover {
		transform: none;
		box-shadow: none;
	}
}
