/**
 * Shared site foundation — loaded BEFORE each page's inline <style>, so pages
 * can override anything here (same specificity, later wins). Site-wide changes
 * (tokens, accessibility, nav/footer polish) belong here, made once instead of
 * once per page.
 */
:root{
  --posh:#0e5e4d;--posh-bright:#1fa886;--posh-deep:#073f33;
  --blush:#e3f4ee;--cream:#f1f8f5;--ink:#11241f;--ink-soft:#4a5b55;
  --line:#d4eae1;--gold:#1aa98c;--paper:#ffffff;--maxw:1140px;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:'Fraunces',serif;line-height:1.08;letter-spacing:-.015em;font-weight:600}

/* ---- accessibility layer (site-wide, defined once) ---- */
/* Keyboard users get a clear focus ring; mouse clicks stay clean. */
:focus-visible{outline:2.5px solid var(--posh-bright);outline-offset:2px;border-radius:4px}
/* Honor OS-level motion preferences everywhere. */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto !important}
}
/* Screen-reader-only helper for labelling icon-only controls. */
.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}
