/*
 * WPForms → Wilson Family Foundation design.
 * Loaded only on pages that show a WPForms form (see inc/setup.php).
 *
 * Works with WPForms' "Modern" markup (the default). Colours and sizes are set
 * through WPForms' own CSS variables, so anything you change in the WPForms
 * block's "Styles" panel still takes priority.
 *
 * Optional classes (WPForms → field → Advanced → CSS Classes):
 *   wpforms-one-half wpforms-first  +  wpforms-one-half   two fields side by side
 *   wff-consent                                           cream consent box
 */

.wpforms-container {
	--wpforms-field-border-radius: 2px;
	--wpforms-field-border-color: #8FA3A8;
	--wpforms-field-border-color-spare: #8FA3A8;
	--wpforms-field-background-color: #FFFFFF;
	--wpforms-field-text-color: var(--wp--preset--color--ink);
	--wpforms-field-menu-color: #FFFFFF;
	--wpforms-label-color: var(--wp--preset--color--ink);
	--wpforms-label-sublabel-color: var(--wp--preset--color--muted);
	--wpforms-label-error-color: #A12A2A;
	--wpforms-button-border-radius: 2px;
	--wpforms-button-border-style: solid;
	--wpforms-button-border-size: 1px;
	--wpforms-button-background-color: var(--wp--preset--color--deep);
	--wpforms-button-border-color: var(--wp--preset--color--deep);
	--wpforms-button-text-color: #FFFFFF;
	--wpforms-page-break-color: var(--wp--preset--color--deep);
	--wpforms-field-size-input-height: 52px;
	--wpforms-field-size-input-spacing: 14px;
	--wpforms-field-size-font-size: 16px;
	--wpforms-field-size-line-height: 24px;
	--wpforms-field-size-padding-h: 16px;
	--wpforms-field-size-checkbox-size: 22px;
	--wpforms-field-size-sublabel-spacing: 6px;
	--wpforms-label-size-font-size: 12px;
	--wpforms-label-size-line-height: 18px;
	--wpforms-label-size-sublabel-font-size: 13px;
	--wpforms-label-size-sublabel-line-height: 18px;
	--wpforms-button-size-font-size: 14px;
	--wpforms-button-size-height: 48px;
	--wpforms-button-size-padding-h: 28px;
	--wpforms-button-size-margin-top: 14px;
	font-family: var(--wp--preset--font-family--sans);
}

/* Labels: small caps, as in the design. */
.wpforms-container .wpforms-form .wpforms-field-label {
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	margin-bottom: 8px;
}
.wpforms-container .wpforms-form .wpforms-required-label { color: var(--wp--preset--color--teal); }
.wpforms-container .wpforms-form .wpforms-field-description,
.wpforms-container .wpforms-form .wpforms-field-sublabel { text-transform: none; letter-spacing: 0; }

/* Fields */
.wpforms-container .wpforms-form .wpforms-field { padding-top: 14px; padding-bottom: 14px; }
.wpforms-container .wpforms-form textarea { min-height: 180px; resize: vertical; }
.wpforms-container .wpforms-form .wpforms-field input:not([type="checkbox"]):not([type="radio"]),
.wpforms-container .wpforms-form .wpforms-field select,
.wpforms-container .wpforms-form .wpforms-field textarea {
	font-family: var(--wp--preset--font-family--sans);
	box-shadow: none;
}
.wpforms-container .wpforms-form .wpforms-field input:not([type="checkbox"]):not([type="radio"]):focus,
.wpforms-container .wpforms-form .wpforms-field select:focus,
.wpforms-container .wpforms-form .wpforms-field textarea:focus {
	border-color: var(--wp--preset--color--teal);
	outline: 2px solid var(--wp--preset--color--teal);
	outline-offset: 1px;
	box-shadow: none;
}
.wpforms-container .wpforms-form input[type="checkbox"],
.wpforms-container .wpforms-form input[type="radio"] { accent-color: var(--wp--preset--color--deep); }
.wpforms-container .wpforms-form input[type="checkbox"]:focus-visible,
.wpforms-container .wpforms-form input[type="radio"]:focus-visible {
	outline: 2px solid var(--wp--preset--color--teal);
	outline-offset: 2px;
}

/* Checkbox and radio choices read as body text, not as labels. */
.wpforms-container .wpforms-form .wpforms-field-label-inline {
	-webkit-hyphens: manual !important;
	hyphens: manual !important;
	font-size: 14px;
	line-height: 22px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--ink);
}
.wpforms-container .wpforms-form .wpforms-field-label-inline a { color: var(--wp--preset--color--teal); }

/* Consent box (add the class "wff-consent" to the field, or use a GDPR Agreement field). */
.wpforms-container .wpforms-form .wff-consent,
.wpforms-container .wpforms-form .wpforms-field-gdpr-checkbox {
	margin: 14px 0;
	padding: 20px;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--cream);
}
.wpforms-container .wpforms-form .wff-consent ul,
.wpforms-container .wpforms-form .wpforms-field-gdpr-checkbox ul { margin: 0; }
.wpforms-container .wpforms-form .wff-consent li,
.wpforms-container .wpforms-form .wpforms-field-gdpr-checkbox li { align-items: flex-start; gap: 14px; margin: 0; }

/* Submit button: the site's primary button. */
.wpforms-container .wpforms-form .wpforms-submit-container { padding-top: 14px; }
.wpforms-container .wpforms-form button[type="submit"].wpforms-submit {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 600;
	line-height: 20px;
	box-shadow: none;
	transition: background-color .15s ease, border-color .15s ease;
}
.wpforms-container .wpforms-form button[type="submit"].wpforms-submit:hover,
.wpforms-container .wpforms-form button[type="submit"].wpforms-submit:focus {
	background: #123B58;
	border-color: #123B58;
	box-shadow: none;
}
.wpforms-container .wpforms-form button[type="submit"].wpforms-submit:focus-visible {
	outline: 2px solid var(--wp--preset--color--teal);
	outline-offset: 3px;
}
.wpforms-container .wpforms-form button[type="submit"].wpforms-submit::after { display: none; }

/* Messages */
.wpforms-confirmation-container-full,
div[submit-success] > .wpforms-confirmation-container-full {
	margin: 0;
	padding: 24px;
	border: 1px solid var(--wp--preset--color--teal);
	border-radius: 2px;
	background: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--ink);
	font-size: 16px;
	line-height: 26px;
}
.wpforms-container .wpforms-form label.wpforms-error,
.wpforms-container .wpforms-form em.wpforms-error { font-size: 14px; line-height: 20px; text-transform: none; letter-spacing: 0; }

@media (max-width: 767px) {
	.wpforms-container .wpforms-form button[type="submit"].wpforms-submit { width: 100%; }
	/* Side-by-side fields stack on phones, as in the design. */
	.wpforms-container .wpforms-form .wpforms-field.wpforms-one-half {
		float: none !important;
		width: 100% !important;
		margin-left: 0 !important;
	}
}
