/* Form builder (public) — scoped like forum fr-style.css / subscription.
 * Optional site tokens (e.g. on :root): --color-primary, --color-secondary, --color-border,
 * --color-form-focus-border (e.g. var(--color-primary) for brand-colored focus),
 * --color-text, --color-text-muted, --color-surface, --color-bg-alt, --radius, --sw-radius,
 * --space-*, --sw-font-family. Fallbacks match legacy global .std_form2 defaults. */

.sw-layout.sw-form-builder,
.sw-layout.sw-form-builder *,
.sw-layout.sw-form-builder *::before,
.sw-layout.sw-form-builder *::after {
	box-sizing: border-box;
}

/* ------------------------------------------------------------------ */
/* .std_form2 field chrome (inside wrapper only; beats unscoped global) */
/* ------------------------------------------------------------------ */

.sw-layout.sw-form-builder .std_form2,
.sw-layout.sw-form-builder .std_form2 input[type=text],
.sw-layout.sw-form-builder .std_form2 input[type=email],
.sw-layout.sw-form-builder .std_form2 input[type=password],
.sw-layout.sw-form-builder .std_form2 textarea,
.sw-layout.sw-form-builder .std_form2 select {
	font-size: var(--sw-form-font-size, 15px);
	font-family: var(--sw-font-family, 'Source Sans Pro', Arial, sans-serif);
}

.sw-layout.sw-form-builder .std_form2 label {
	color: var(--color-text-muted, #707070);
	font-weight: 700;
	text-transform: uppercase;
	padding-right: var(--space-xs, 5px);
	font-size: var(--sw-form-label-size, 13px);
	font-family: var(--sw-font-family, 'Source Sans Pro', Arial, sans-serif);
	letter-spacing: 0;
}

.sw-layout.sw-form-builder .std_form2 .extra {
	font-size: var(--sw-form-extra-size, 12px);
	color: var(--color-text-muted, #8b8b8b);
}

.sw-layout.sw-form-builder .std_form2 .extra label {
	text-transform: none;
	padding: 0;
	font-weight: normal;
}

.sw-layout.sw-form-builder .std_form2 input[type=text],
.sw-layout.sw-form-builder .std_form2 input[type=email],
.sw-layout.sw-form-builder .std_form2 input[type=password],
.sw-layout.sw-form-builder .std_form2 textarea,
.sw-layout.sw-form-builder .std_form2 select {
	border: 1px solid var(--color-border, #bdc3c7);
	width: calc(100% - 20px);
	max-width: 100%;
	background: var(--color-surface, #fff);
	color: var(--color-text, #666);
	transition: border-color 0.5s ease-in-out 0s;
	border-radius: var(--radius, var(--sw-radius, 0));
}

.sw-layout.sw-form-builder .std_form2 input[type=text]:hover,
.sw-layout.sw-form-builder .std_form2 input[type=email]:hover,
.sw-layout.sw-form-builder .std_form2 input[type=password]:hover,
.sw-layout.sw-form-builder .std_form2 textarea:hover,
.sw-layout.sw-form-builder .std_form2 select:hover,
.sw-layout.sw-form-builder .std_form2 input[type=text]:focus,
.sw-layout.sw-form-builder .std_form2 input[type=email]:focus,
.sw-layout.sw-form-builder .std_form2 input[type=password]:focus,
.sw-layout.sw-form-builder .std_form2 textarea:focus,
.sw-layout.sw-form-builder .std_form2 select:focus {
	border-color: var(--color-form-focus-border, #7a7b7e);
}

.sw-layout.sw-form-builder .std_form2 input[type=text],
.sw-layout.sw-form-builder .std_form2 input[type=email],
.sw-layout.sw-form-builder .std_form2 input[type=password],
.sw-layout.sw-form-builder .std_form2 textarea,
.sw-layout.sw-form-builder .std_form2 select {
	padding: var(--space-form-input-y, 5px) var(--space-form-input-x, 6px);
}

.sw-layout.sw-form-builder .std_form2 .wicon input[type=text],
.sw-layout.sw-form-builder .std_form2 .wicon input[type=email],
.sw-layout.sw-form-builder .std_form2 .wicon input[type=password],
.sw-layout.sw-form-builder .std_form2 .wicon textarea,
.sw-layout.sw-form-builder .std_form2 .wicon select {
	padding-left: 29px;
}

.sw-layout.sw-form-builder .std_form2 input[type=text].captcha {
	width: 50px;
	margin-right: var(--space-xs, 5px);
	vertical-align: middle;
	box-sizing: border-box;
}

/* ------------------------------------------------------------------ */
/* Module-specific helpers */
/* ------------------------------------------------------------------ */

.sw-layout.sw-form-builder .sw-form-builder-recaptcha-wrap {
	margin: var(--space-md, 16px) 0;
}

.sw-layout.sw-form-builder .form_progress_wrap {
	border: 1px solid var(--color-border, #cecece);
	background: var(--color-bg-alt, #fdfdfd);
	border-radius: var(--radius, var(--sw-radius, 5px));
}
