/*
 * FUNCTIONAL CSS ONLY — this framework is intentionally unstyled.
 * These rules make the site usable and accessible without a design:
 * hidden helpers, the spam honeypot, the cookie banner position and media sizing.
 * Replace/extend freely in the new design, but keep the behaviour of every rule below.
 */
[hidden] { display: none !important; }
.visually-hidden, .skip-link:not(:focus) {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
img, video, iframe { max-width: 100%; height: auto; }
iframe { aspect-ratio: 16 / 9; width: 100%; border: 0; }
[aria-invalid="true"] { outline: 2px solid #b3261e; outline-offset: 2px; }
.form-status { border-left: 3px solid #b3261e; padding: .5em 1em; }

/* Cookie banner (built by /assets/js/consent.js) — must stay visible and on top */
.qa-cc { position: fixed; z-index: 1000; left: 1rem; right: 1rem; bottom: 1rem; max-width: 36rem;
  background: #fff; color: #111; border: 2px solid #111; padding: 1rem; max-height: 85vh; overflow: auto; }
.qa-cc-cat label, .qa-cc-cat-row { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; }
.qa-cc-cat-text { display: flex; flex-direction: column; }
.qa-cc-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.qa-cc-switch { display: none; }
