/* Added 2026-08-14 - keyboard access and visible focus.
   Every page previously opened with a sticky header the keyboard had to tab
   through, and 10 of 12 pages suppressed or never defined a focus ring. */
.skip-link{position:absolute;left:-9999px;top:0;z-index:9999;background:var(--espresso,#38220f);color:#fff;
  padding:12px 20px;border-radius:0 0 10px 0;font-size:.95rem;text-decoration:none}
.skip-link:focus{left:0}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--saffron-dark,#a8481a);outline-offset:2px;border-radius:4px}
/* Text and date controls are always "focus-visible" per spec; state it directly
   so no later rule can leave one without a ring. :focus-within is needed too -
   tabbing into <input type="date"> focuses a segment inside its shadow root, so
   the host matches :focus-within but not :focus, and the ring never appeared. */
input:focus,select:focus,textarea:focus,
input:focus-within,select:focus-within,textarea:focus-within{
  outline:3px solid var(--saffron-dark,#a8481a);outline-offset:2px}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
}


/* ---------------------------------------------------------------------------
   Added 2026-08-17 - high-contrast and forced-colours support.

   prefers-contrast: more - the palette is deliberately soft, so at this setting
   every boundary is promoted to --line-strong, the faint cream tints and the
   drop shadows are dropped, and muted body text is promoted to full --ink.
   Nothing here changes a size, a spacing or a radius.

   forced-colors: active - the system palette replaces our colours, so a control
   whose shape came only from a background fill would vanish into the page. Each
   one is given an explicit boundary. outline is used rather than border so no
   box changes size, and forced-color-adjust is left on auto: the user's colours
   win, we only make sure the edges are still there.
   --------------------------------------------------------------------------- */
@media (prefers-contrast: more){
  :root{
    --line:var(--line-strong);
    --line-gold:var(--line-strong);
    --muted:var(--ink);
    --muted-2:var(--ink);
    --cream-2:var(--surface);
    --shadow:none;
    --shadow-sm:none;
  }
  ::placeholder{color:var(--ink);opacity:1}
}
@media (forced-colors: active){
  .btn,.btn-p,.btn-g,.btn-gold,.btn-ghost,.btn-primary,.cg-btn,.cta,.subs-btn,.chip,
  button,[type=button],[type=submit],[role=button],input,select,textarea{
    forced-color-adjust:auto;
    outline:1px solid ButtonText;
    outline-offset:-1px;
  }
  /* Status dots, badges and the emblem carry their meaning in the fill alone. */
  .dot,.bdg,.tf-badge,.emblem{outline:1px solid CanvasText;outline-offset:-1px}
  /* Links keep their own system colour; the underline is what keeps them
     distinguishable once every colour collapses to LinkText. */
  a:not([class*=btn]):not(.brand):not(.cta){text-decoration:underline}
}
