/* Only what the form needs to work. How it looks — the control's border, an invalid
   field, the error's colour and size, a disabled button — is the theme's: its Bootstrap
   classes (form-control, is-invalid, invalid-feedback, btn) are on the markup, and a rule
   here would sit on top of them. */
[data-bll-form] .bll-forms-trap {
	position: absolute !important;
	left: -10000px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
/* reCAPTCHA v3's badge renders inline inside its container (views/form.php): out of the
   layout, like the honeypot, so it leaves no gap. The form shows the required notice
   instead. Hidden, not `display: none`: the invisible widget still has to render there
   for grecaptcha.execute() to return a token. */
[data-bll-form] .bll-forms-captcha-hidden {
	position: absolute !important;
	left: -10000px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
[data-bll-form] .bll-forms-result:empty {
	display: none;
}
/* Bootstrap only shows .invalid-feedback right after an .is-invalid control: a checkbox
   group's message comes after its wrapper, so it would stay hidden. */
[data-bll-form] .bll-forms-error {
	display: block;
}
/* Zero specificity: a theme's row gutter or the confirmation's own classes (mt-0) win. */
:where([data-bll-form] .bll-forms-result) {
	margin-top: 1rem;
}
