.bcsga {
	--bcsga-gap: var(--wp--style--block-gap, 1.5rem);
	--bcsga-gap-s: var(--wp--preset--spacing--20, 0.5rem);
	--bcsga-gap-m: var(--wp--preset--spacing--30, 1rem);
	--bcsga-line: color-mix(in srgb, currentColor 25%, transparent);
	box-sizing: border-box;
	margin-block: var(--bcsga-gap);
}
.bcsga *, .bcsga *::before, .bcsga *::after { box-sizing: border-box; }
.bcsga [hidden] { display: none !important; }
.bcsga :focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

.bcsga-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.bcsga-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.bcsga-form { display: flex; flex-direction: column; gap: var(--bcsga-gap-m); }
.bcsga-form > * { margin-block: 0; }
.bcsga-label { display: block; font-weight: 600; }
.bcsga-row { display: flex; flex-direction: column; gap: var(--bcsga-gap-s); }
.bcsga-input {
	width: 100%;
	min-height: 2.75em;
	padding: 0.5em 0.75em;
	border: 1px solid currentColor;
	background: transparent;
	color: inherit;
	font: inherit;
}
.bcsga .wp-block-button__link:disabled { opacity: 0.6; cursor: not-allowed; }

.bcsga-status { display: flex; flex-direction: column; gap: var(--bcsga-gap-s); }
.bcsga-status:not(:has(> :not([hidden]))) { display: none; }
.bcsga-progress { display: flex; flex-direction: column; gap: 0.25em; }
.bcsga-progress__bar { width: 100%; height: 0.75em; accent-color: currentColor; }
.bcsga-error { margin: 0; padding: var(--bcsga-gap-s) var(--bcsga-gap-m); border: 2px solid currentColor; font-weight: 600; }

.bcsga-modules { display: grid; grid-template-columns: 1fr; gap: var(--bcsga-gap-s) var(--bcsga-gap); margin: 0; padding: 0; border: 0; }
.bcsga-modules legend { grid-column: 1 / -1; padding: 0; margin-bottom: var(--bcsga-gap-s); font-weight: 600; }
.bcsga-module-opt { display: grid; grid-template-columns: auto 1fr; column-gap: 0.5em; align-items: start; cursor: pointer; }
.bcsga-module-opt input { margin-top: 0.3em; }
.bcsga-module-name { font-weight: 600; }
.bcsga-module-desc { grid-column: 2; font-size: 0.875em; opacity: 0.85; }
.bcsga-note { font-size: 0.875em; }

.bcsga-result { margin-top: var(--bcsga-gap); }
.bcsga-result h2:focus { outline: none; }
.bcsga-result h2:focus-visible { outline: 2px solid currentColor; }
.bcsga-report { display: flex; flex-direction: column; gap: var(--bcsga-gap); }
.bcsga-report > * { margin-block: 0; }
.bcsga-report__head > * { margin-block: 0 0.25em; }
.bcsga-report__host, .bcsga-report__url { overflow-wrap: anywhere; }
.bcsga-report__date, .bcsga-report__set { font-size: 0.875em; }

.bcsga-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.75rem, 1fr)); gap: var(--bcsga-gap-s); }
.bcsga-tile { display: flex; flex-direction: column; gap: 0.25em; padding: var(--bcsga-gap-m); border: 1px solid var(--bcsga-line); color: inherit; text-decoration: none; }
.bcsga-tile__n { font-size: 2em; line-height: 1.1; }
.bcsga-tile__label { font-weight: 600; }
.bcsga-tile--fail, .bcsga-tile--warn { border: 2px solid currentColor; }
.bcsga-tile--zero { border: 1px solid var(--bcsga-line); }
.bcsga-tiles--modules .bcsga-tile:hover { border-color: currentColor; }
.bcsga-tile__counts { font-size: 0.875em; }

.bcsga-module { border: 1px solid var(--bcsga-line); padding: 0 var(--bcsga-gap-m); }
.bcsga-module__title { padding-block: var(--bcsga-gap-s); font-weight: 600; cursor: pointer; }
.bcsga-module__error { margin-block: 0 var(--bcsga-gap-m); }
.bcsga-checks { margin: 0 0 var(--bcsga-gap-m); padding: 0; list-style: none; }
.bcsga-check { margin: 0; padding-block: var(--bcsga-gap-s); border-top: 1px solid var(--bcsga-line); }
.bcsga-check__head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25em 0.75em; }
.bcsga-check__label { font-weight: 600; }
.bcsga-check__detail, .bcsga-rec { margin: 0.5em 0 0; overflow-wrap: anywhere; }
.bcsga-examples { margin: 0.5em 0 0; padding-left: 1.25em; font-family: var(--wp--preset--font-family--monospace, ui-monospace, SFMono-Regular, Menlo, monospace); font-size: 0.8125em; overflow-wrap: anywhere; }

.bcsga-badge { display: inline-block; min-width: 6.5em; padding: 0.0625em 0.5em; border: 1px solid var(--bcsga-line); font-size: 0.8125em; font-weight: 600; text-align: center; text-transform: uppercase; letter-spacing: 0.03em; }
.bcsga-badge--fail { border: 2px solid currentColor; font-weight: 700; }
.bcsga-badge--warn { border: 1px solid currentColor; }
.bcsga-badge--pass, .bcsga-badge--info { font-weight: 400; }

.bcsga-table-wrap { margin: 0 0 var(--bcsga-gap-m); overflow-x: auto; }
.bcsga-table { width: 100%; border-collapse: collapse; font-size: 0.875em; }
.bcsga-table th, .bcsga-table td { padding: 0.5em 0.75em; border: 1px solid var(--bcsga-line); text-align: left; vertical-align: top; }
.bcsga-table th { white-space: nowrap; }
.bcsga-table__url { overflow-wrap: anywhere; }

.bcsga-cta { padding: var(--bcsga-gap-m); border: 1px solid currentColor; }
.bcsga-cta__title { margin: 0 0 var(--bcsga-gap-m); }
.bcsga-cta__text { margin: 0 0 var(--bcsga-gap-m); }

.bcsga-email { display: flex; flex-direction: column; gap: var(--bcsga-gap-s); }
.bcsga-email__consent { display: flex; align-items: flex-start; gap: 0.5em; font-size: 0.875em; }
.bcsga-email__consent input { margin-top: 0.25em; }
.bcsga-email__status { margin: 0; min-height: 1.5em; font-weight: 600; }

@media (min-width: 600px) {
	.bcsga-row { flex-direction: row; align-items: stretch; }
	.bcsga-input { flex: 1 1 auto; width: auto; }
	.bcsga-submit { flex: 0 0 auto; display: flex; }
	.bcsga-email { align-items: flex-start; }
	.bcsga-email .bcsga-input { width: 100%; max-width: 32rem; }
}
@media (min-width: 782px) {
	.bcsga-modules { grid-template-columns: 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.bcsga * { scroll-behavior: auto !important; transition: none !important; }
}
