/* 99bl-core — front-end form
   Plugin-specific bits + a low-specificity fallback. When the 99binarylab
   theme is active it styles .form/.field/.btn/.thanks; :where() keeps these
   rules weak so the theme always wins. */

/* Honeypot: removed from layout + assistive tech, still submitted. */
.bl-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Validation feedback */
.bl-audit .form-alert {
	margin: 0 0 1rem;
	padding: .7rem .9rem;
	border-radius: 10px;
	font-size: .9rem;
	color: #7a1020;
	background: rgba(193, 30, 50, .08);
	border: 1px solid rgba(193, 30, 50, .25);
}
.bl-audit .field-error {
	display: block;
	margin-top: .35rem;
	font-size: .82rem;
	color: #c0182e;
}
.bl-audit .field input:focus,
.bl-audit .field select:focus,
.bl-audit .field textarea:focus {
	outline: 2px solid rgba(85, 59, 252, .5);
	outline-offset: 1px;
}
.bl-audit__heading {
	margin: 0 0 1rem;
	font-size: 1.25rem;
}

/* ---- Fallback only (low specificity) — used when no theme styles exist ---- */
:where(.bl-audit) { display: block; }
:where(.bl-audit .field) { margin-bottom: 1rem; }
:where(.bl-audit label) { display: block; margin-bottom: .35rem; font-weight: 600; font-size: .9rem; }
:where(.bl-audit input, .bl-audit select, .bl-audit textarea) {
	width: 100%;
	padding: .7rem .8rem;
	border: 1px solid rgba(0, 0, 0, .18);
	border-radius: 10px;
	font: inherit;
	background: #fff;
	color: #111;
}
:where(.bl-audit .consent) { display: flex; gap: .55rem; align-items: flex-start; margin: 1rem 0; font-size: .88rem; }
:where(.bl-audit .consent input) { width: auto; margin-top: .2rem; }
:where(.bl-audit .req) { color: #c12cff; }
:where(.bl-audit .btn) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	width: 100%;
	padding: .85rem 1.2rem;
	border: 0;
	border-radius: 12px;
	font: inherit;
	font-weight: 600;
	color: #fff;
	cursor: pointer;
	background: linear-gradient(120deg, #553BFC, #7636FD, #9E31FE, #C12CFF);
}
:where(.bl-audit .form-note) { margin-top: .8rem; font-size: .8rem; opacity: .8; display: flex; align-items: center; gap: .4rem; }
:where(.bl-audit .form-note svg) { width: 15px; height: 15px; }
:where(.bl-audit .thanks) { text-align: center; padding: 1.5rem .5rem; }
:where(.bl-audit .thanks__check) {
	width: 56px; height: 56px; margin: 0 auto 1rem;
	display: grid; place-content: center; border-radius: 50%;
	color: #fff; background: linear-gradient(120deg, #553BFC, #C12CFF);
}
:where(.bl-audit .thanks__check svg) { width: 28px; height: 28px; }
