/* Shared accessibility primitives used across the public site. */

/* Text for screen readers only. Kept off-screen rather than display:none or
   visibility:hidden, both of which would drop it from the accessibility tree
   along with the pixels. position:absolute keeps it out of flex/grid flow, so
   it can sit inside a laid-out cell without shifting anything. */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 1000;
  padding: 10px 14px;
  border-radius: 8px;
  background: #f5f5f5;
  color: #0a0a0a;
  font: 700 0.82rem/1.2 Inter, sans-serif;
  text-decoration: none;
  transform: translateY(-160%);
  transition: transform 0.18s ease;
}

.skip-link:focus { transform: translateY(0); }

:focus-visible {
  outline: 2px solid var(--green, #2ecc40);
  outline-offset: 3px;
  border-radius: 4px;
}

main:focus { outline: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}
