/* Accessibility helpers (WCAG 2.2 AA) */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Focus visibility */
:focus-visible {
  outline: 3px solid #0d6efd; /* Bootstrap primary */
  outline-offset: 2px;
}

/* Cookie UI */
.cookie-settings-trigger {
  position: fixed; right: 1rem; bottom: 1rem; z-index: 1040;
}

.cookie-banner {
  /* Use a very high z-index to ensure it's on top of other content */
  z-index: 9999 !important;
}

.cookie-banner .modal-dialog {
  max-width: 100%;
  margin: 0;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
}

.cookie-banner .modal-content {
  border-radius: 0;
  border-width: 1px 0 0 0;
}

/* Prefer reduced motion for the banner overlay */
@media (prefers-reduced-motion: reduce) {
  .modal.fade .modal-dialog { transition: none !important; }
}
