:root{--cream:#faf3e5;--cream-2:#f4e8d2;--surface:#fffdf8;--espresso:#38220f;--ink:#3d2a17;
 --muted:#6b5844;--muted-2:#7b644b;--saffron:#aa4c1d;--saffron-dark:#a8481a;--gold-deep:#866123;
 --gold-soft:#e7cf9c;--line-gold:#e2d3ae;--line:#e6dcc8;
 /* a11y 2026-08-17: --gold-text is --gold darkened for text on cream;
    --line-strong is a control boundary at >=3:1 on every light surface. */
 --gold-text:#866123;--line-strong:#9e8139}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Spectral',Georgia,serif;line-height:1.7}
h1,h2,h3{font-family:'Cormorant Garamond',serif;color:var(--espresso);font-weight:600;line-height:1.15}
a{color:var(--saffron-dark)}
header{background:var(--surface);border-bottom:1px solid var(--line-gold);position:sticky;top:0;z-index:5}
.hd{max-width:1000px;margin:0 auto;padding:12px 22px;display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.brand{font-family:'Marcellus',serif;font-size:1.16rem;color:var(--espresso);text-decoration:none;line-height:1.1}
.brand small{display:block;font-family:'Marcellus SC','Marcellus',serif;font-size:.76rem;letter-spacing:.06em;color:var(--saffron);text-transform:uppercase;margin-top:2px}
.emblem{width:104px;height:46px;flex:0 0 104px;background:url("../img/emblem.webp") left center/contain no-repeat}
.sitenav{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:2px 13px}
.sitenav a{font-size:.87rem;white-space:nowrap;color:var(--espresso);text-decoration:none;padding:4px 0;border-bottom:1px solid transparent}
.sitenav a:hover{border-bottom-color:var(--saffron)}
.sitenav .cta{background:var(--saffron-dark);color:#fff;padding:7px 15px;border-radius:30px}
main{max-width:760px;margin:0 auto;padding:0 22px 10px}
.crumb{font-size:.82rem;color:var(--muted);margin:18px 0 6px}
.crumb a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line-gold)}
.eyebrow{font-family:'Marcellus SC','Marcellus',serif;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--saffron);margin:14px 0 2px}
h1{font-size:2.5rem;margin:0 0 10px}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.bdg{font-family:'Marcellus SC','Marcellus',serif;font-size:.6rem;letter-spacing:.09em;text-transform:uppercase;color:#fff;padding:4px 10px;border-radius:20px}
.bdg.plain{background:transparent;color:var(--muted);border:1px solid var(--line-gold)}
.dates{background:var(--surface);border:1px solid var(--gold-soft);border-radius:14px;padding:16px 20px;margin:0 0 24px}
.dates .dl{font-family:'Marcellus SC','Marcellus',serif;font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);margin:0 0 8px}
.dates ul{list-style:none;margin:0;padding:0}
.dates li{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;padding:6px 0;border-top:1px solid var(--cream-2)}
.dates li:first-of-type{border-top:0}
.dates .dd{font-family:'Cormorant Garamond',serif;font-size:1.28rem;color:var(--espresso)}
.dates .dn{font-size:.84rem;color:var(--muted)}
.dates .dnext{font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;background:var(--saffron-dark);color:#fff;border-radius:20px;padding:2px 9px}
h2{font-size:1.02rem;font-family:'Marcellus SC','Marcellus',serif;letter-spacing:.11em;text-transform:uppercase;color:var(--saffron-dark);margin:30px 0 6px}
main p{margin:0 0 14px}
.note{background:var(--cream-2);border:1px solid var(--gold-soft);border-left:4px solid var(--saffron);border-radius:0 10px 10px 0;padding:14px 18px;margin:24px 0;font-size:.94rem}
.cta-box{background:var(--surface);border:1px solid var(--gold-soft);border-radius:14px;padding:20px;margin:28px 0;text-align:center}
.cta-box h2{margin-top:0}
.btn{display:inline-block;font-family:'Marcellus',serif;font-size:.98rem;padding:12px 24px;border-radius:30px;text-decoration:none;margin:6px 5px 0}
.btn-p{background:var(--saffron-dark);color:#fff}
.btn-g{border:1px solid var(--line-strong);color:var(--espresso)}
.rel{margin:30px 0}
.rel a{display:inline-block;margin:0 12px 8px 0;font-size:.93rem;text-decoration:none;border-bottom:1px solid var(--line-gold)}
.src{font-size:.8rem;color:var(--muted-2);line-height:1.6;border-top:1px solid var(--line-gold);padding-top:14px;margin-top:26px}
footer{background:var(--espresso);color:#e9dcc7;padding:32px 0;margin-top:40px}
footer .wrap{max-width:1000px;margin:0 auto;padding:0 22px;display:flex;flex-wrap:wrap;gap:12px 22px;justify-content:space-between;align-items:center}
.foot-links{display:flex;flex-wrap:wrap;gap:2px 0}
footer a{color:#e7cf9c;text-decoration:none;margin-right:16px;font-size:.9rem}
.cp{width:100%;border-top:1px solid rgba(231,207,156,.2);margin-top:12px;padding-top:14px;font-size:.82rem;color:#b79b78}
.skip-link{position:absolute;left:-9999px;top:0;z-index:9999;background:var(--espresso);color:#fff;padding:12px 20px;border-radius:0 0 10px 0;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);outline-offset:2px;border-radius:4px}
/* :where() has zero specificity, so any later rule could win; and tabbing into
   a date input focuses a segment in its shadow root, matching :focus-within
   rather than :focus. State both directly. */
input:focus,select:focus,textarea:focus,
input:focus-within,select:focus-within,textarea:focus-within{outline:3px solid var(--saffron-dark);outline-offset:2px}
/* --- WCAG 2.2 AA 2.5.8 target size: give small controls a 24px hit area --- */
.foot-links a,footer a,.crumb a{display:inline-flex;align-items:center;min-height:24px;padding:3px 0}
.foot-links{display:flex;flex-wrap:wrap;gap:2px 18px}
summary{min-height:24px;display:flex;align-items:center;gap:8px}
.rel a,.badges .bdg{min-height:24px;display:inline-flex;align-items:center}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
@media(max-width:760px){.emblem{width:78px;height:35px;flex:0 0 78px}h1{font-size:2rem}.sitenav{width:100%;margin:8px 0 0}}


/* ---------------------------------------------------------------------------
   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}
}
