/*
 * Forminator a11y patches.
 *
 * Companion stylesheet for forminator-a11y.js.
 * Targets only .forminator-ui descendants so it has zero effect off Forminator forms.
 */

/* ------------------------------------------------------------------
   Visible focus indicators – Forminator strips default outlines.
   ------------------------------------------------------------------ */
.forminator-ui input:focus-visible,
.forminator-ui select:focus-visible,
.forminator-ui textarea:focus-visible,
.forminator-ui button:focus-visible,
.forminator-ui .forminator-button:focus-visible,
.forminator-ui label:focus-visible {
	outline: 3px solid #DE7B2A;
	outline-offset: 2px;
}

/* Radio / checkbox: the visible "fake" radio dot needs a focus ring too. */
.forminator-ui input[type="radio"]:focus-visible + *,
.forminator-ui input[type="checkbox"]:focus-visible + *,
.forminator-ui .forminator-radio input[type="radio"]:focus-visible ~ .forminator-radio-img,
.forminator-ui .forminator-checkbox input[type="checkbox"]:focus-visible ~ .forminator-checkbox-img {
	outline: 3px solid #DE7B2A;
	outline-offset: 3px;
	border-radius: 2px;
}

/* When the native input is visually hidden (Forminator's pattern), give the
   wrapping <label> a clear focus state. */
.forminator-ui .forminator-radio:focus-within,
.forminator-ui .forminator-checkbox:focus-within {
	outline: 3px solid #DE7B2A;
	outline-offset: 4px;
	border-radius: 4px;
}

/* ------------------------------------------------------------------
   AA contrast on borders + placeholders.
   ------------------------------------------------------------------ */
.forminator-ui .forminator-input,
.forminator-ui .forminator-textarea,
.forminator-ui .forminator-select,
.forminator-ui input[type="text"],
.forminator-ui input[type="email"],
.forminator-ui input[type="tel"],
.forminator-ui input[type="number"],
.forminator-ui input[type="search"],
.forminator-ui textarea,
.forminator-ui select {
	border-color: #767676; /* 4.54:1 on #fff */
}

.forminator-ui input::placeholder,
.forminator-ui textarea::placeholder {
	color: #767676;
	opacity: 1;
}

/* Label / legend / description copy needs sufficient contrast. */
.forminator-ui .forminator-label,
.forminator-ui .forminator-field-label,
.forminator-ui legend,
.forminator-ui label {
	color: #3e2510;
}

.forminator-ui .forminator-description {
	color: #6a6561; /* matches $text-color2 in theme */
}

/* ------------------------------------------------------------------
   Required indicator + validation messages.
   ------------------------------------------------------------------ */
.forminator-ui .forminator-required {
	color: #a35709; /* AA orange-brown */
	font-weight: 700;
	margin-left: 0.25em;
}

.forminator-ui .forminator-error-message,
.forminator-ui .forminator-label--validation,
.forminator-ui .forminator-response-message {
	color: #b03a2e; /* AA red on white */
	font-weight: 600;
}

/* Show a clear border on inputs that failed validation. */
.forminator-ui .forminator-error input,
.forminator-ui .forminator-error select,
.forminator-ui .forminator-error textarea {
	border-color: #b03a2e;
	border-width: 2px;
}

/* ------------------------------------------------------------------
   Touch target sizing – WCAG 2.2 SC 2.5.8 (24×24 minimum).
   ------------------------------------------------------------------ */
.forminator-ui .forminator-radio,
.forminator-ui .forminator-checkbox {
	min-height: 24px;
	padding-block: 4px;
}
