/* Base typography — body and heading font families */
body { font-family: 'Lato', sans-serif; }
h1, h2, h3, h4, h5, h6 { font-family: 'Montserrat', sans-serif; }

/* ── Accessibility — WCAG 2.1 AA ───────────────────────────────── */

/* Screen-reader-only utility (WCAG 1.3.1 / 4.1.2) */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* Skip-to-main-content link (WCAG 2.4.1 Bypass Blocks) */
.skip-link {
  position: absolute;
  top: 0;
  left: 1rem;
  z-index: 100;
  background: #1d49ac;
  color: #fff;
  padding: 0.75rem 1rem;
  border-radius: 0 0 0.5rem 0.5rem;
  font-weight: 700;
  font-family: 'Montserrat', sans-serif;
  text-decoration: none;
  transform: translateY(-150%);
  transition: transform 0.15s ease-in-out;
}
.skip-link:focus,
.skip-link:focus-visible {
  transform: translateY(0);
  outline: 3px solid #fbbf24;
  outline-offset: 2px;
}

/* Visible focus indicator (WCAG 2.4.7) */
:focus-visible {
  outline: 3px solid #fbbf24;
  outline-offset: 2px;
  border-radius: 2px;
}
/* Remove default focus for mouse users — keyboard still gets :focus-visible */
:focus:not(:focus-visible) { outline: none; }

/* Ensure <main> target has no visible outline when skip-linked */
main:focus { outline: none; }

/* Respect reduced motion preferences (WCAG 2.3.3) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
