/*
 * Forms and WPForms integration.
 *
 * Ownership rule: this file owns native form controls and third-party WPForms
 * presentation. Components customize forms through inherited --trivers-form-*
 * variables instead of competing selectors or priority overrides.
 */

.site-content {
	--trivers-form-control-min-height: 2.8rem;
	--trivers-form-control-padding: .67rem .78rem;
	--trivers-form-control-border-width: 1px;
	--trivers-form-control-border-color: #ccd5e2;
	--trivers-form-control-radius: 3px;
	--trivers-form-control-font-size: inherit;
	--trivers-form-textarea-min-height: 8rem;
	--trivers-form-label-margin-bottom: .3rem;
	--trivers-form-label-font-size: .968rem;
	--trivers-form-label-font-weight: 800;
	--trivers-form-submit-min-width: 190px;
	--trivers-form-submit-min-height: 2.55rem;
	--trivers-form-submit-padding: .65rem 1.25rem;
	--trivers-form-submit-radius: 3px;
	--trivers-form-submit-bg: var(--trivers-green);
	--trivers-form-submit-bg-hover: var(--trivers-green-dark);
	--trivers-form-submit-color: #fff;
	--trivers-form-submit-font-size: inherit;
	--trivers-form-submit-font-weight: 800;
	--trivers-form-submit-shadow: 0 8px 20px rgb(39 184 63 / 18%);
}

:where(.site-content) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea) {
	width: 100%;
	min-height: var(--trivers-form-control-min-height);
	padding: var(--trivers-form-control-padding);
	border: var(--trivers-form-control-border-width) solid var(--trivers-form-control-border-color);
	border-radius: var(--trivers-form-control-radius);
	background: #fff;
	color: var(--trivers-ink);
	font-size: var(--trivers-form-control-font-size);
	box-shadow: none;
}

:where(.site-content) :where(textarea) {
	min-height: var(--trivers-form-textarea-min-height);
	resize: vertical;
}

:where(.site-content) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):focus, select:focus, textarea:focus) {
	border-color: var(--trivers-blue);
	box-shadow: 0 0 0 3px rgb(55 125 255 / 11%);
	outline: 0;
}

:where(.site-content) :where(label) {
	display: inline-block;
	margin-bottom: var(--trivers-form-label-margin-bottom);
	color: #121b28;
	font-size: var(--trivers-form-label-font-size);
	font-weight: var(--trivers-form-label-font-weight);
}

/* Generic WPForms adapter.
 * Keep the foundation deliberately low-specificity so page/block variants can
 * override it through normal cascade order. :where() contributes zero
 * specificity, including the attribute selectors inside the input filter. */
:where(.site-content) :where(.wpforms-container) {
	margin-block: .75rem;
}

:where(.site-content) :where(.wpforms-container) :where(.wpforms-form) :where(.wpforms-field) {
	padding-block: .35rem;
}

:where(.site-content) :where(.wpforms-container) :where(.wpforms-form) :where(.wpforms-field-label) {
	display: inline-block;
	margin-bottom: var(--trivers-form-label-margin-bottom);
	color: #121b28;
	font-size: var(--trivers-form-label-font-size);
	font-weight: var(--trivers-form-label-font-weight);
}

:where(.site-content) :where(.wpforms-container) :where(.wpforms-form) :where(
	input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
	select,
	textarea
) {
	width: 100%;
	min-height: var(--trivers-form-control-min-height);
	padding: var(--trivers-form-control-padding);
	border: var(--trivers-form-control-border-width) solid var(--trivers-form-control-border-color);
	border-radius: var(--trivers-form-control-radius);
	background: #fff;
	color: var(--trivers-ink);
	font-size: var(--trivers-form-control-font-size);
	box-shadow: none;
}

:where(.site-content) :where(.wpforms-container) :where(.wpforms-form) :where(textarea) {
	min-height: var(--trivers-form-textarea-min-height);
	resize: vertical;
}

:where(.site-content) :where(.wpforms-container) :where(.wpforms-form) :where(.wpforms-submit-container) {
	padding-top: .65rem;
	text-align: center;
}

:where(.site-content) :where(.wpforms-container) :where(.wpforms-form) :where(.wpforms-submit, button[type="submit"].wpforms-submit) {
	min-width: var(--trivers-form-submit-min-width);
	min-height: var(--trivers-form-submit-min-height);
	padding: var(--trivers-form-submit-padding);
	border: 0;
	border-radius: var(--trivers-form-submit-radius);
	background: var(--trivers-form-submit-bg);
	color: var(--trivers-form-submit-color);
	font-size: var(--trivers-form-submit-font-size);
	font-weight: var(--trivers-form-submit-font-weight);
	box-shadow: var(--trivers-form-submit-shadow);
}

:where(.site-content) :where(.wpforms-container) :where(.wpforms-form) :where(.wpforms-submit, button[type="submit"].wpforms-submit):is(:hover, :focus) {
	background: var(--trivers-form-submit-bg-hover);
	color: var(--trivers-form-submit-color);
}

:where(.site-content) :where(.wpforms-container) :where(.wpforms-required-label, label.wpforms-error) {
	color: #b42318;
}

/* Hero form layout adapter. Visual control/button values come from the hero
 * component's --trivers-form-* variables in blocks.css. */
.site-content .trivers-hero__form .wpforms-container {
	margin: 1.35rem 0 0;
}

.site-content .trivers-hero__form .wpforms-form .wpforms-field-container {
	display: block;
}

.site-content .trivers-hero__form .wpforms-form .wpforms-field-layout {
	width: 100%;
	margin: 0 0 1.05rem;
	padding: 0;
}

.site-content .trivers-hero__form .wpforms-form :is(.wpforms-field-layout-columns, .wpforms-field-row) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	width: 100%;
	margin: 0;
}

.site-content .trivers-hero__form .wpforms-form .wpforms-layout-column {
	width: auto;
	max-width: none;
	min-width: 0;
	padding: 0;
	margin: 0;
}

.site-content .trivers-hero__form .wpforms-form .wpforms-layout-column .wpforms-field {
	width: 100%;
	margin: 0;
	padding: 0;
}

.site-content .trivers-hero__form .wpforms-form .wpforms-field-container > .wpforms-field:not(.wpforms-field-layout) {
	width: 100%;
	margin: 0 0 .84rem;
	padding: 0;
}

.site-content .trivers-hero__form .wpforms-form :is(.wpforms-layout-column, .wpforms-field input, .wpforms-field textarea, .iti) {
	width: 100%;
	max-width: none;
}

.site-content .trivers-hero__form .wpforms-form .wpforms-submit-container {
	width: 100%;
	margin: .25rem 0 0;
	padding: 0;
	text-align: center;
}

@media (max-width: 639px) {
	.site-content .trivers-hero__form .wpforms-form :is(.wpforms-field-layout-columns, .wpforms-field-row) {
		grid-template-columns: 1fr;
	}
}

/* Migrated About/Contact WPForms layout adapters.
 * Page geometry stays in pages.css; plugin internals stay here. */
/* About address-capture form.
 * The WPForms elements are presented as one compact address control. The
 * input and submit button stay in normal flex flow. The input owns the
 * rounded leading edge; the compact pin button intentionally keeps the live
 * site's square trailing edge. */
.page-slug-about-us .trivers-page-hero .wpforms-form {
	display: flex;
	align-items: stretch;
	gap: 0;
	width: 100%;
	margin: 0;
	overflow: visible;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.page-slug-about-us .trivers-page-hero .wpforms-field-container {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding: 0;
}

.page-slug-about-us .trivers-page-hero :is(.wpforms-container, .wpforms-field) {
	width: 100%;
	margin: 0;
	padding: 0;
}

.page-slug-about-us .trivers-page-hero .wpforms-field input {
	display: block;
	width: 100%;
	max-width: none;
	height: 62px;
	min-height: 62px;
	margin: 0;
	padding: 1.125rem 1.125rem 1.125rem 2rem;
	border: 0;
	border-radius: 999px 0 0 999px;
	outline: 0;
	background: #fff;
	box-shadow: 0 0 2.2rem rgb(16 47 85 / 14%);
	color: #1a2330;
	font-size: 1rem;
	line-height: 1.2;
	transition: border-color .18s ease, box-shadow .18s ease;
}

.page-slug-about-us .trivers-page-hero .wpforms-field input:focus {
	box-shadow: inset 0 0 0 3px rgb(55 125 255 / 16%);
}

.page-slug-about-us .trivers-page-hero .wpforms-field input::placeholder {
	color: #8b97a8;
	opacity: 1;
}

.page-slug-about-us .trivers-page-hero label.wpforms-error {
	display: block;
	margin: .4rem 0 0 1rem;
	font-size: .72rem;
	line-height: 1.25;
	text-align: left;
}

.page-slug-about-us .trivers-page-hero .wpforms-submit-container {
	flex: 0 0 auto;
	width: auto;
	margin: 0;
	padding: 0;
}

/* WPForms' full-form stylesheet adds a submit-container top margin after the
 * theme assets load. Match that selector so the pin button stays aligned with
 * its address input without relying on a priority override. */
.page-slug-about-us .trivers-page-hero div.wpforms-container-full .wpforms-form .wpforms-submit-container {
	align-self: stretch;
	margin-top: 0;
	padding: 0;
}

.page-slug-about-us .trivers-page-hero .wpforms-submit,
.page-slug-about-us .trivers-page-hero div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.625rem;
	min-width: 3.625rem;
	height: 62px;
	min-height: 62px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: #fff;
	box-shadow: none;
	color: var(--trivers-blue);
	font-size: 0;
	font-weight: 400;
	line-height: 1;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease;
}

.page-slug-about-us .trivers-page-hero .wpforms-submit::before,
.page-slug-about-us .trivers-page-hero div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit::before {
	width: 1.5rem;
	height: 1.5rem;
	background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23377dff' d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E");
	content: "";
	flex: 0 0 auto;
}

.page-slug-about-us .trivers-page-hero .wpforms-submit:is(:hover, :focus-visible),
.page-slug-about-us .trivers-page-hero div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit:is(:hover, :focus-visible) {
	background: #edf4ff;
	color: #1d67e8;
}

.page-slug-about-us .trivers-page-hero .wpforms-submit:active,
.page-slug-about-us .trivers-page-hero div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit:active {
	background: #dceaff;
}

.page-slug-about-us .trivers-page-hero .wpforms-submit-spinner {
	width: 1rem;
	height: 1rem;
	margin: 0 0 0 .35rem;
	align-self: center;
}

@media (max-width: 520px) {
	.page-slug-about-us .trivers-page-hero .wpforms-field input {
		padding-left: 1.25rem;
	}
}

.page-slug-contact-us .entry-content > .trivers-form-panel :is(.wpforms-form, .wpforms-field-layout, .wpforms-field-layout-columns, .wpforms-layout-column, .wpforms-field input, .wpforms-field textarea, .iti) {
	width: 100%;
	max-width: none;
}

.page-slug-contact-us .entry-content > .trivers-form-panel textarea {
	min-height: 8.4rem;
}

@media (min-width: 780px) {
	.page-slug-contact-us .entry-content > .trivers-form-panel .wpforms-field-container {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .75rem 1rem;
	}

	.page-slug-contact-us .entry-content > .trivers-form-panel :is(.wpforms-field-textarea, .wpforms-field-layout, .wpforms-submit-container) {
		grid-column: 1 / -1;
	}
}
