/* Accessibility additions that move no pixels at rest (WCAG 2.1 AA).
   Everything here is invisible until a keyboard user needs it. */
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100000; padding: 10px 16px; background: #ffffff; color: #8d2424; font: bold 16px/1.2 'Raleway', sans-serif; }
.skip-link:focus { left: 10px; top: 10px; outline: 3px solid #8d2424; }
a:focus-visible, [role="button"]:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid #1a5fb4; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* Required-field asterisks: Weebly's #ff2825 is 3.76:1 on white (fails 1.4.3).
   #e41d1d is the nearest red that clears 4.5:1 (4.6:1) — same hue, slightly deeper. */
.form-required { color: #e41d1d !important; }
/* Visually hidden, read by screen readers (the page's <h1>). */
.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; }
/* The home page's multi-column tables overhang the viewport by 2.4px at 390px
   (Weebly's margin:0 -15px wrap; measured on the live site too), which makes the
   whole page scroll sideways on phones (1.4.10 Reflow). `clip` trims the overhang
   without creating a scroll container, so nothing visible moves. */
#main-content { overflow-x: clip; }
