/* Self-hosted: the page makes no request to fonts.googleapis.com or
   fonts.gstatic.com. Variable faces, weight range 400-700 (what the design
   uses). Manrope 800 was in the original @import and is unused. Subsets
   limited to latin + latin-ext; cyrillic, greek and vietnamese are dropped. */

@font-face{
  font-family:'DM Sans';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('fonts/DMSans-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'DM Sans';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('fonts/DMSans-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Manrope';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('fonts/Manrope-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Manrope';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('fonts/Manrope-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ------------------------------------------------------------------------
   Skip link -- WCAG 2.4.1 Bypass Blocks (Level A).  Added 2026-10-12.
   fonts.css is the only stylesheet loaded by all 109 pages, so the rule
   lives here rather than in styles.css / reskin.css / onepage.css.

   Hidden with a transform, NOT display:none or visibility:hidden: both of
   those remove the link from the tab order and defeat the purpose.

   Direction: the horizontal anchor is the logical inset-inline-start, so the
   link sits top-left in LTR and top-right on the dir="rtl" Hebrew pages with
   no separate rule.  The hide/show offset is vertical (translateY), which is
   direction-agnostic.  @supports supplies left/right for engines without
   logical insets.

   Contrast, focused state:
     text   #102b3b on #fbf7ee ............. 13.73:1  (needs 4.5:1)
     ring   #102b3b vs the link's #fbf7ee ... 13.73:1  (needs 3:1)
     halo   #fbf7ee vs .header   #162447 .... 14.26:1  (needs 3:1)
     halo   #fbf7ee vs #ts-header #102b3b ... 13.73:1  (needs 3:1)
   On a light page background the halo merges with it, but the 3px #102b3b
   ring is then the perceivable edge at 13.73:1 against cream on both sides.
   ------------------------------------------------------------------------ */
.skip-link{
  position:fixed;
  top:0;
  inset-inline-start:0;
  z-index:10000;                 /* both sticky headers use z-index:1000 */
  display:inline-block;
  max-width:100%;
  margin:0;
  padding:12px 20px;
  background:#fbf7ee;
  color:#102b3b;
  border-radius:0 0 6px 6px;
  font:700 16px/1.25 'DM Sans',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  text-decoration:underline;
  text-underline-offset:3px;
  white-space:nowrap;
  transform:translateY(-200%);
  transition:transform .15s ease-out;
}
.skip-link:focus,
.skip-link:focus-visible{
  transform:translateY(0);
  background:#fbf7ee;
  color:#102b3b;
  outline:3px solid #102b3b;
  outline-offset:0;
  box-shadow:0 0 0 6px #fbf7ee;
  text-decoration:underline;
}
@media (prefers-reduced-motion:reduce){
  .skip-link{transition:none}
}
@supports not (inset-inline-start:0){
  .skip-link{left:0}
  [dir="rtl"] .skip-link{left:auto;right:0}
}
