/* T Graphics UK — Accessibility (EAA / WCAG 2.1 AA) styles
   Loaded on every public-facing page                       */

/* ── Skip to content ── */
.tg-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10000;
  padding: 10px 18px;
  background: #2563eb;
  color: #ffffff;
  font-family: Inter, system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 0 0 6px 0;
}
.tg-skip-link:focus,
.tg-skip-link:focus-visible {
  left: 0;
  outline: 2px solid #fbbf24;
  outline-offset: 2px;
}

/* ── Visible focus ring everywhere (3:1 contrast min) ── */
:focus-visible {
  outline: 3px solid #fbbf24 !important;
  outline-offset: 2px !important;
  border-radius: 3px;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #fbbf24 !important;
  outline-offset: 2px !important;
}

/* ── Required mark + sr-only utility ── */
.tg-required-mark { color: #ef4444; margin-left: 2px; font-weight: 700; }
.tg-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0;
  margin: -1px; overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* ── Reduced motion ── */
@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;
  }
  .animate-pulse,
  [class*="animate-"] { animation: none !important; }
}

/* ── Contrast bumps on the dark public theme ──
   Cyan primary on dark navy was 4.39:1 (fails AA);
   muted-foreground was 4.21:1.                    */
body:not(.tg-admin) .text-primary { color: #67e8f9 !important; }
body:not(.tg-admin) .text-muted-foreground,
body:not(.tg-admin) .placeholder\:text-muted-foreground\/50::placeholder {
  color: #94a3b8 !important;
}
