/* TRR public brand — C1 Broadside (sage page + paper sheet) */
:root {
  --paper: #f3e6c8;
  --paper-2: #e8d4a8;
  --ink: #1a1208;
  --ink-soft: #3d2e1a;
  --oxblood: #6b1c1c;
  --oxblood-2: #8f2a2a;
  --sepia: #6f542c; /* darkened from #8a6a3a to meet 4.5:1 on paper/paper-2 */
  --rule: #2a1c0c;
  --page-bg: #5f6a5a;
  --wrap: min(960px, calc(100% - 2rem));
  --display: 'Rye', 'The Dead Saloon', serif;
  --body: 'Source Serif 4', Georgia, serif;
  --font: var(--body);
  --font-display: var(--display);

  /* Back-compat aliases used by older page markup / kit */
  --bg: var(--page-bg);
  --bg-2: rgba(255, 255, 255, 0.28);
  --bg-3: var(--paper-2);
  --muted: var(--ink-soft);
  --line: rgba(42, 28, 12, 0.22);
  --line-strong: var(--rule);
  --gold: var(--oxblood);
  --gold-2: var(--oxblood-2);
  --ok: #3d7a55;
  --danger: #a33a2c;
  --focus: var(--oxblood-2);

  /* Schedule / results kit tokens → paper sheet */
  --sched-ink: var(--ink);
  --sched-muted: var(--ink-soft);
  --sched-line: rgba(42, 28, 12, 0.22);
  --sched-gold: var(--oxblood);
  --sched-bg-2: rgba(255, 255, 255, 0.28);
  --sched-danger: var(--danger);
  --sched-dark: var(--ink);
  --sched-accent: var(--oxblood);
  --sched-text: var(--ink);
  --sched-text-light: var(--ink-soft);
  --sched-surface-raised: rgba(255, 255, 255, 0.35);
  --sched-border: rgba(42, 28, 12, 0.28);
  --sched-border-strong: var(--rule);
  --sched-radius: 0;
  --sched-radius-sm: 0;
  --sched-shadow-sm: none;
  --sched-shadow: none;
  --sched-accent-hover: var(--oxblood-2);
  --sched-shadow-lg: none;
}

*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  background: var(--page-bg);
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
body {
  margin: 0;
  padding: 1.25rem 0 2.5rem;
  color: var(--ink);
  font-family: var(--body);
  font-size: 1.05rem;
  line-height: 1.55;
  background: var(--page-bg);
  min-height: 100vh;
  min-height: 100dvh;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--oxblood-2); }
a:hover { color: var(--oxblood); }

.wrap { width: var(--wrap); margin-inline: auto; }
.sheet .wrap {
  width: auto;
  max-width: none;
  margin: 0;
}

.skip-link {
  position: absolute;
  left: -999px;
  z-index: 1000;
  background: var(--paper);
  color: var(--ink);
  font-weight: 600;
  text-decoration: none;
  padding: 0.5rem 1rem;
  border: 2px solid var(--rule);
}
.skip-link:focus,
.skip-link:focus-visible {
  left: 1rem;
  top: 1rem;
  clip: auto;
  clip-path: none;
  width: auto;
  height: auto;
  overflow: visible;
  outline: 3px solid var(--ink);
  outline-offset: 2px;
}

/* —— Broadside sheet —— */
.sheet {
  margin: 0 auto;
  width: var(--wrap);
  background: linear-gradient(180deg, #f7ecd4 0%, var(--paper) 40%, #edd9b0 100%);
  border: 3px double var(--rule);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45), inset 0 0 80px rgba(138, 106, 58, 0.08);
  position: relative;
}
.sheet::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(42, 28, 12, 0.35);
  pointer-events: none;
  z-index: 0;
}
.sheet > * { position: relative; z-index: 1; }

.mast {
  position: relative;
  text-align: center;
  padding: 1.75rem 1.25rem 0.75rem;
  border-bottom: 2px solid var(--rule);
}
.mast-home {
  color: inherit;
  text-decoration: none;
}
/* Stretched link: makes the whole mast clickable without wrapping all the text in the link. */
.mast-home::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.mast-home:hover { color: var(--oxblood); }
.mast-home:focus-visible { outline-offset: 4px; }
.mast .orn {
  font-size: 0.75rem;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: var(--sepia);
  margin: 0 0 0.35rem;
}
.mast h1 {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(2.2rem, 7vw, 3.6rem);
  margin: 0;
  line-height: 1.05;
  color: var(--ink);
  text-shadow: 1px 1px 0 rgba(243, 230, 200, 0.8);
}
.mast .tag {
  font-family: var(--display);
  font-size: clamp(1rem, 2.5vw, 1.25rem);
  color: var(--oxblood);
  margin: 0.4rem 0 0;
  letter-spacing: 0.04em;
}
.mast .date-line {
  margin: 0.75rem 0 0;
  font-size: 0.85rem;
  color: var(--ink-soft);
  border-top: 1px solid rgba(42, 28, 12, 0.25);
  border-bottom: 1px solid rgba(42, 28, 12, 0.25);
  display: inline-block;
  padding: 0.35rem 1rem;
}
@media (max-width: 600px) {
  /* Keep the mast's top rule on a single line on narrow screens. */
  .mast .orn {
    font-size: min(0.7rem, 2.4vw);
    letter-spacing: 0.1em;
    white-space: nowrap;
  }
}

/* Nav inside sheet — sticky over paper */
.nav-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  padding: 0.65rem 1rem;
  border-bottom: 2px solid var(--rule);
  position: sticky;
  top: 0;
  z-index: 40;
  background: linear-gradient(180deg, #f7ecd4 0%, var(--paper) 70%, #f0e0bc 100%);
  box-shadow: none;
}
.nav-bar.is-stuck {
  box-shadow: 0 6px 16px rgba(26, 18, 8, 0.18);
  border-bottom-color: var(--rule);
}
.nav-toggle {
  display: none;
  background: transparent;
  border: 1.5px solid var(--rule);
  color: var(--ink);
  font-family: var(--display);
  font-size: 0.95rem;
  padding: 0.35rem 0.85rem;
  cursor: pointer;
}
.nav {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.15rem 0.85rem;
  font-family: var(--display);
  font-size: 0.95rem;
  width: auto;
}
.nav-admin {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.875rem;
  height: 1.875rem;
  color: var(--ink);
  font-size: 0.95rem;
  text-decoration: none;
  border: 1.5px solid transparent;
}
.nav-admin:hover {
  color: var(--oxblood);
  border-color: var(--rule);
}
.nav-admin:focus-visible {
  outline: 2px solid var(--oxblood-2);
  outline-offset: 2px;
}
.nav > a,
.nav-trigger {
  color: var(--ink);
  text-decoration: none;
  padding: 0.2rem 0.15rem;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  cursor: pointer;
  font-weight: 400;
  font-size: 0.95rem;
  font-family: var(--display);
  line-height: inherit;
}
.nav > a:hover,
.nav > a.is-active,
.nav > a[aria-current="page"],
.nav-trigger:hover,
.nav-group.is-open > .nav-trigger,
.nav-group:focus-within > .nav-trigger {
  border-bottom-color: var(--oxblood);
  color: var(--oxblood);
}
.nav-trigger:focus-visible,
.nav > a:focus-visible {
  outline: 2px solid var(--oxblood-2);
  outline-offset: 2px;
}
.nav-caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 0.2rem;
  vertical-align: middle;
  border-left: 0.28rem solid transparent;
  border-right: 0.28rem solid transparent;
  border-top: 0.32rem solid currentColor;
  transition: transform 0.15s ease;
}
.nav-group.is-open > .nav-trigger .nav-caret {
  transform: rotate(180deg);
}
@media (prefers-reduced-motion: reduce) {
  .nav-caret { transition: none; }
}
.nav-group {
  position: relative;
}
.nav-dropdown {
  display: none;
  min-width: 13rem;
  padding: 0.35rem 0;
  background: var(--paper);
  border: 1.5px solid var(--rule);
  border-top: 3px solid var(--oxblood);
  box-shadow: 0 10px 24px rgba(26, 18, 8, 0.22);
  z-index: 50;
}
.nav-dropdown a {
  display: block;
  padding: 0.45rem 0.9rem;
  color: var(--ink-soft);
  text-decoration: none;
  font-family: var(--body);
  font-size: 0.92rem;
  border: none;
  border-left: 2px solid transparent;
  white-space: nowrap;
}
.nav-dropdown a:hover {
  background: rgba(107, 28, 28, 0.08);
  color: var(--oxblood);
  border-left-color: var(--oxblood);
}
.nav-dropdown a:focus-visible {
  background: rgba(107, 28, 28, 0.08);
  color: var(--oxblood);
  border-left-color: var(--oxblood);
  outline: 2px solid var(--oxblood-2);
  outline-offset: -2px;
}
.nav-group.is-open > .nav-dropdown {
  display: block;
}
.nav-dropdown[hidden] {
  display: none !important;
}
.nav-group.is-open > .nav-dropdown[hidden] {
  display: block !important;
}

@media (min-width: 901px) {
  .nav-dropdown {
    position: absolute;
    top: calc(100% + 0.25rem);
    left: 50%;
    transform: translateX(-50%);
  }
  /* Invisible hover bridge across the gap. It is measured from the dropdown's
     padding box, so allow for the 3px top border and overlap the trigger by 1px. */
  .nav-dropdown::before {
    content: "";
    position: absolute;
    top: -0.5rem;
    left: 0;
    right: 0;
    height: 0.5rem;
  }
}

@media (max-width: 900px) {
  /* Mobile browser chrome samples the root background. This lighter sage
     keeps its dark system icons visible; desktop keeps the original sage. */
  html { background: #8a9584; }
  .nav-bar {
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
  }
  .nav-toggle {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.5rem 1rem;
    margin-inline: 0;
    font-size: 1rem;
    white-space: nowrap;
    transition: background 0.15s ease;
  }
  .nav-bar.is-open .nav-toggle {
    background: rgba(107, 28, 28, 0.08);
  }
  .nav-admin {
    width: 2.75rem;
    height: 2.75rem;
    font-size: 1.1rem;
  }
  .nav {
    display: none;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
    width: 100%;
    max-height: calc(100vh - 4.5rem);
    max-height: calc(100dvh - 4.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .nav-bar.is-open .nav {
    display: flex;
    width: 100%;
    margin-top: 0.5rem;
    padding: 0.5rem 0;
    border-top: 1px solid rgba(42, 28, 12, 0.22);
  }
  .nav > a,
  .nav-trigger {
    min-height: 2.75rem;
    padding: 0.65rem 0.5rem;
    border-bottom: 1px solid rgba(42, 28, 12, 0.15);
    font-size: 1rem;
  }
  .nav > a:last-child {
    border-bottom: 0;
  }
  .nav > a:hover,
  .nav > a:focus-visible,
  .nav-trigger:hover,
  .nav-trigger:focus-visible {
    background: rgba(107, 28, 28, 0.06);
  }
  .nav-group {
    width: 100%;
  }
  .nav-trigger {
    width: 100%;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .nav-dropdown {
    position: static;
    transform: none;
    width: 100%;
    margin: 0;
    box-shadow: none;
    border: 0;
    border-left: 3px solid var(--oxblood);
    background: rgba(255, 255, 255, 0.35);
  }
  .nav-dropdown a {
    min-height: 2.75rem;
    padding: 0.65rem 1rem;
    border-bottom: 1px solid rgba(42, 28, 12, 0.12);
    font-size: 1rem;
    white-space: normal;
  }
  .nav-dropdown a:last-child {
    border-bottom: 0;
  }
  /* Open only via .is-open so aria-expanded always matches the visible state. */
  .nav-group.is-open > .nav-dropdown[hidden] {
    display: block !important;
  }
}

.sheet-banner {
  margin: 5px 10px 0;
  border-bottom: 2px solid var(--rule);
  background: #1a1208;
  line-height: 0;
  position: relative;
  z-index: 1;
}
.sheet-banner picture,
.sheet-banner img {
  width: 100%;
  display: block;
  height: auto;
}

.sheet-main { min-height: 12rem; }
.sheet-flash { padding: 0.75rem 1.25rem 0; }

/* —— Home hero (C1, not full-bleed) —— */
.hero {
  display: grid;
  gap: 1.25rem;
  padding: 1.5rem 1.25rem 1.25rem;
  position: relative;
  isolation: auto;
  min-height: 0;
  border-bottom: none;
  overflow: visible;
  align-items: center;
}
.hero::before { content: none; display: none; }
@media (min-width: 760px) {
  .hero { grid-template-columns: 1.15fr 0.85fr; padding: 1.75rem 1.5rem; }
}
.hero-copy .eyebrow {
  font-family: var(--display);
  color: var(--oxblood);
  font-size: 1.05rem;
  margin: 0 0 0.5rem;
}
.hero-copy h2 {
  font-family: var(--display);
  font-size: clamp(1.7rem, 4vw, 2.35rem);
  font-weight: 400;
  margin: 0 0 0.75rem;
  line-height: 1.15;
}
.hero-copy p { margin: 0 0 1rem; color: var(--ink-soft); }
.hero-fig {
  border: 2px solid var(--rule);
  padding: 6px;
  background: var(--paper-2);
  box-shadow: 4px 4px 0 rgba(42, 28, 12, 0.15);
  transform: rotate(-1.2deg);
}
.hero-fig img {
  filter: sepia(0.35) contrast(1.05);
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.hero-fig figcaption {
  font-size: 0.78rem;
  text-align: center;
  padding: 0.4rem 0.25rem 0;
  color: var(--sepia);
  font-style: italic;
}

.actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1rem 0 0; }
.btn,
.btn-trr,
.btn-ghost,
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.5rem 1.1rem;
  text-decoration: none;
  font-family: var(--display);
  font-size: 1rem;
  font-weight: 400;
  border: 2px solid var(--rule);
  border-radius: 0;
  cursor: pointer;
}
.btn-primary,
.btn-trr {
  background: var(--oxblood);
  color: #f3e6c8;
  border-color: var(--oxblood);
}
.btn-primary:hover,
.btn-trr:hover {
  background: var(--oxblood-2);
  color: #fff;
  filter: none;
}
.btn-ghost {
  background: transparent;
  color: var(--ink);
  border-color: var(--rule);
}
.btn-ghost:hover {
  background: rgba(107, 28, 28, 0.08);
  color: var(--ink);
  border-color: var(--rule);
}
.btn:focus-visible,
.btn-trr:focus-visible,
.btn-ghost:focus-visible,
.btn-primary:focus-visible {
  outline: 2px solid var(--oxblood-2);
  outline-offset: 2px;
  box-shadow: none;
}

/* Bootstrap outline buttons: darker text/border so they clear 4.5:1 on paper */
.btn-outline-secondary {
  --bs-btn-color: #4a5568;
  --bs-btn-border-color: #4a5568;
  --bs-btn-hover-bg: #4a5568;
  --bs-btn-hover-border-color: #4a5568;
  --bs-btn-active-bg: #3d4657;
  --bs-btn-active-border-color: #3d4657;
}
.btn-outline-primary {
  --bs-btn-color: #2c5282;
  --bs-btn-border-color: #2c5282;
  --bs-btn-hover-bg: #2c5282;
  --bs-btn-hover-border-color: #2c5282;
  --bs-btn-active-bg: #24446b;
  --bs-btn-active-border-color: #24446b;
}

/* Home: keep the hero and "Next on the range" together so mobile can reorder. */
.home-top { display: flex; flex-direction: column; }
@media (max-width: 759px) {
  .home-top .next { order: -1; margin: 1rem 1.25rem 0; }
}

.next {
  margin: 0 1.25rem 1.25rem;
  padding: 1rem 1.15rem;
  border: 2px solid var(--rule);
  background: rgba(107, 28, 28, 0.06);
  display: grid;
  gap: 0.35rem;
}
@media (min-width: 600px) {
  .next { grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; }
}
.next .label {
  font-family: var(--display);
  font-size: 0.9rem;
  color: var(--oxblood);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.next strong { font-size: 1.15rem; }
.next .muted { color: var(--ink-soft); font-size: 0.95rem; }

.featured {
  margin: 1.25rem 1.25rem 0;
  border: 2px solid var(--rule);
  background: rgba(107, 28, 28, 0.07);
  padding: 1rem 1.1rem 1.15rem;
}
.featured .badge,
.featured .spotlight-badge {
  font-family: var(--display);
  font-size: 0.85rem;
  color: var(--oxblood);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 0.45rem;
  background: none;
  display: block;
  padding: 0;
}
.featured h3,
.featured .spotlight-feat-name {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(1.35rem, 3.5vw, 1.85rem);
  margin: 0 0 0.35rem;
  line-height: 1.15;
  color: var(--ink);
}
.featured .dates,
.featured .spotlight-feat-date {
  color: var(--ink-soft);
  margin: 0 0 0.65rem;
  font-size: 0.98rem;
}
.featured .blurb,
.featured .spotlight-feat-desc {
  margin: 0 0 0.9rem;
  color: var(--ink-soft);
  font-size: 0.98rem;
}
.featured .feat-actions { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.featured .meta { font-size: 0.88rem; color: var(--sepia); margin: 0.75rem 0 0; }
.featured + .featured { margin-top: 0.85rem; }
.annual-match {
  border-color: var(--oxblood);
  margin-bottom: 1.5rem;
  box-shadow: 0 0 0 1px rgba(107, 28, 28, 0.12), 0 0 22px rgba(107, 28, 28, 0.18);
}
.annual-match.has-image {
  position: relative;
  overflow: hidden;
  padding: 1.5rem 1.6rem;
  background-image: linear-gradient(180deg, rgba(26, 18, 8, 0.72), rgba(26, 18, 8, 0.84)), var(--annual-image);
  background-size: cover;
  background-position: center;
  color: var(--paper);
}
.annual-match.has-image::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(243, 230, 200, 0.35);
  pointer-events: none;
}
.annual-match.has-image > * {
  position: relative;
  z-index: 1;
}
.annual-match.has-image .badge,
.annual-match.has-image h3,
.annual-match.has-image .dates,
.annual-match.has-image .blurb {
  color: var(--paper);
}
.annual-match.has-image h3 {
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.55);
}
.annual-match.has-image .btn-primary {
  background: var(--paper);
  border-color: var(--paper);
  color: var(--ink);
}
.annual-match.has-image .btn-primary:hover {
  background: var(--paper-2);
  border-color: var(--paper-2);
  color: var(--ink);
}


/* Featured partial: keep announcement + multi items readable on paper */
.home-spotlight {
  display: grid;
  gap: 0.85rem;
  margin: 1.25rem 1.25rem 0;
  grid-template-columns: 1fr;
}
.home-spotlight .spotlight-card {
  margin: 0;
  border: 2px solid var(--rule);
  border-radius: 0;
  background: rgba(107, 28, 28, 0.07);
  padding: 1rem 1.1rem 1.15rem;
  box-shadow: none;
  position: static;
}
.home-spotlight .spotlight-card::before { display: none; }
.home-spotlight .spotlight-badge {
  font-family: var(--display);
  font-size: 0.85rem;
  color: var(--oxblood);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 0.45rem;
  background: none;
  padding: 0;
}
.home-spotlight .spotlight-feat-btn,
.home-spotlight .spotlight-announce-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: 0.4rem 1rem;
  font-family: var(--display);
  font-size: 0.95rem;
  text-decoration: none;
  border: 2px solid var(--oxblood);
  background: var(--oxblood);
  color: #f3e6c8;
  border-radius: 0;
}
.home-spotlight .spotlight-feat-btn:hover,
.home-spotlight .spotlight-announce-link:hover {
  background: var(--oxblood-2);
  color: #fff;
}
.home-spotlight .spotlight-announce-body { color: var(--ink-soft); }
.home-spotlight .spotlight-announce-body a:not(.spotlight-announce-link) {
  color: var(--oxblood-2);
}

.section {
  padding: 0 1.25rem 1.75rem;
}
.section h3,
.section-title {
  font-family: var(--display);
  font-size: 1.5rem;
  font-weight: 400;
  text-align: center;
  margin: 0 0 1rem;
  position: relative;
}
.section h3::before,
.section h3::after {
  content: "✦";
  color: var(--sepia);
  font-size: 0.85rem;
  margin: 0 0.5rem;
}
.section-sub {
  text-align: center;
  color: var(--ink-soft);
  margin: -0.5rem 0 1.25rem;
}
.cards,
.card-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.card,
.card-grid a.card {
  border: 1.5px solid var(--rule);
  padding: 1rem 0.9rem;
  text-decoration: none;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.25);
  border-radius: 0;
  min-height: 0;
  transition: background 0.15s ease;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.card:hover,
.card-grid a.card:hover {
  background: rgba(107, 28, 28, 0.08);
  color: var(--ink);
  border-color: var(--rule);
  transform: none;
}
.card strong,
.card-grid a.card strong {
  display: block;
  font-family: var(--display);
  font-size: 1.15rem;
  margin-bottom: 0.15rem;
  color: var(--oxblood);
  font-weight: 400;
}
.card span,
.card-grid a.card span { font-size: 0.92rem; color: var(--ink-soft); }
.card-icon { display: none; }

/* Home: join / explain-the-sport (restored WP substance) */
.home-welcome .welcome-media {
  max-width: 40rem;
  margin: 0 auto 0.25rem;
}
.home-welcome .app-yt-lite,
.home-welcome lite-youtube {
  width: 100%;
  max-width: 40rem;
  margin-inline: auto;
  border: 1.5px solid var(--rule);
  background: #1a1208;
}
.home-welcome .welcome-caption {
  text-align: center;
  font-size: 0.92rem;
  color: var(--ink-soft);
  margin: 0.65rem 0 0;
  font-style: italic;
}
.home-cas.prose {
  max-width: 42rem;
  margin-inline: auto;
}
.home-cas.prose p {
  max-width: none;
}
.home-cas .welcome-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
  margin-top: 1.15rem;
}

/* Broadside match list (home + schedule) */
.broadside-matches .schedule-list { gap: 0.6rem; }
.broadside-matches .schedule-month-header {
  font-family: var(--display);
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--oxblood);
  text-align: left;
  text-transform: none;
  letter-spacing: 0.04em;
  margin: 1.25rem 0 0.5rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.35);
}
.broadside-matches .schedule-month-header::before,
.broadside-matches .schedule-month-header::after { content: none; }
.broadside-matches .schedule-list > .schedule-month-header:first-child { margin-top: 0; }
.broadside-matches .sl-item {
  border: 1.5px solid var(--rule);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.25);
  box-shadow: none;
  padding: 0.7rem 0.85rem;
}
.broadside-matches a.sl-item.is-link:hover {
  background: rgba(107, 28, 28, 0.08);
  border-color: var(--rule);
  box-shadow: none;
  transform: none;
}
.broadside-matches .sl-dateblock {
  border-radius: 0;
  background: var(--ink);
  border-bottom: 3px solid var(--sl-accent, var(--oxblood));
  box-shadow: none;
}
.broadside-matches .sl-dateblock .sl-month,
.broadside-matches .sl-dateblock .sl-dow { color: rgba(243, 230, 200, 0.7); }
.broadside-matches .sl-dateblock .sl-day {
  font-family: var(--display);
  font-weight: 400;
  color: var(--paper);
}
.broadside-matches .sl-name {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.1rem;
  color: var(--ink);
}
.broadside-matches .sl-type,
.broadside-matches .sl-special-badge,
.broadside-matches .sl-cancelled-badge,
.broadside-matches .sl-today-badge { border-radius: 0; }
.broadside-matches .sl-type {
  background: rgba(107, 28, 28, 0.06);
  color: var(--ink);
  border: 1px solid rgba(42, 28, 12, 0.3);
  border-left: 4px solid var(--sl-type-color, var(--oxblood));
  font-family: var(--body);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.broadside-matches .sl-special-badge {
  background: var(--oxblood);
  color: var(--paper);
}
.broadside-matches .sl-cancelled-badge {
  background: var(--danger);
  color: var(--paper);
}
.broadside-matches .sl-today-badge {
  background: rgba(107, 28, 28, 0.12);
  color: var(--oxblood);
}
.broadside-matches .sl-chevron { color: var(--oxblood); }
.broadside-matches .sl-item.is-special {
  background: rgba(107, 28, 28, 0.06);
  border-color: var(--rule);
}
.broadside-matches .sl-item.is-today { border-color: rgba(107, 28, 28, 0.45); }
.broadside-matches .sl-item.is-cancelled { background: rgba(42, 28, 12, 0.04); }
.broadside-matches .sl-item.is-cancelled .sl-name { color: var(--ink-soft); }

/* Schedule cadence grid */
.schedule-grid {
  gap: 0.85rem;
  margin: 0.5rem 0 0;
}
.schedule-grid-item {
  border: 1.5px solid var(--rule);
  border-top: 3px solid var(--tag-color, var(--oxblood));
  background: rgba(255, 255, 255, 0.25);
  border-radius: 0;
  padding: 1rem 0.9rem;
  box-shadow: none;
  transition: background 0.15s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
}
.schedule-grid-item:hover {
  background: rgba(107, 28, 28, 0.08);
  box-shadow: none;
  transform: none;
}
.schedule-grid-item .day {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.05rem;
  color: var(--oxblood);
  margin-bottom: 0.5rem;
}
.schedule-grid-item .event-name {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1rem;
  color: var(--ink);
  margin-top: 0.35rem;
}
.schedule-grid-item .event-time {
  font-size: 0.82rem;
  color: var(--ink-soft);
  margin-top: 0.25rem;
}
.event-tag {
  border-radius: 0;
  font-family: var(--body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 2px 8px;
  color: var(--tag-ink, var(--paper));
  background: var(--tag-color, var(--oxblood));
}

.footer {
  border-top: 2px solid var(--rule);
  margin: 0 1.25rem;
  padding: 1.25rem 0 1.5rem;
  padding-bottom: max(1.5rem, env(safe-area-inset-bottom));
  text-align: center;
  font-size: 0.9rem;
  color: var(--ink-soft);
}
.footer .logo {
  height: 48px;
  width: auto;
  margin: 0 auto 0.75rem;
  filter: sepia(0.4);
}
.footer a { color: var(--ink-soft); }
.footer a:hover { color: var(--oxblood); }
.footer .footer-links { margin-top: 0.5rem; }

@media (max-width: 600px) {
  body {
    padding: 0.35rem 0 max(0.35rem, env(safe-area-inset-bottom));
  }
  .sheet {
    margin: 0 0.35rem;
    width: auto;
    max-width: none;
    border-width: 2px;
  }
  .nav { gap: 0.35rem 0.65rem; font-size: 0.85rem; }
  .sheet-banner { margin: 5px 10px 0; }
}

/* —— Inner pages —— */
.page-pad { padding: 1.25rem 1.25rem 1.5rem; }
.page-pad h2.page-title,
.page h1 {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(1.7rem, 4.5vw, 2.4rem);
  margin: 0 0 0.35rem;
  text-align: center;
}
.page-pad .page-sub {
  text-align: center;
  color: var(--oxblood);
  font-family: var(--display);
  font-size: 1.05rem;
  margin: 0 0 1rem;
}
.page-pad .lede {
  text-align: center;
  color: var(--ink-soft);
  max-width: 40rem;
  margin: 0 auto 1.25rem;
}
.page {
  padding: 1.25rem 1.25rem 1.75rem;
}
.page h1 { text-align: left; margin-bottom: 0.75rem; }
.page.page-pad h1,
.page-pad > h1 { text-align: center; }
.page h2 {
  margin-top: 1.75rem;
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.35rem;
  color: var(--oxblood);
}
.prose p { margin: 0 0 1rem; max-width: 65ch; }
.prose ul { padding-left: 1.2rem; }
.muted { color: var(--ink-soft); }

.fee-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.5rem 0 1rem;
}
.fee-table th,
.fee-table td {
  text-align: left;
  padding: 0.6rem 0.7rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.22);
}
.fee-table thead th {
  font-family: var(--display);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sepia);
  border-bottom: 2px solid var(--rule);
}
.fee-table tbody th {
  font-family: var(--display);
  font-weight: 400;
  color: var(--ink);
}
.fee-table td { font-variant-numeric: tabular-nums; }

/* —— Membership page —— */
.membership-hero {
  text-align: center;
  padding: 0.5rem 0 1.5rem;
  border-bottom: 2px solid var(--rule);
  margin-bottom: 1.75rem;
}
.membership-kicker {
  font-family: var(--display);
  font-size: 0.85rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--oxblood);
  margin: 0 0 0.5rem;
}
.membership-hero h1 {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
  margin: 0 0 0.75rem;
}
.membership-lead {
  max-width: 42rem;
  margin: 0 auto;
  color: var(--ink-soft);
  font-size: 1.08rem;
  line-height: 1.7;
}
.membership-callout {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem;
  border: 2px solid var(--oxblood);
  background: rgba(107, 28, 28, 0.06);
  padding: 1.25rem 1.35rem;
  margin-bottom: 2rem;
}
.membership-callout-year {
  font-family: var(--display);
  font-size: clamp(2.5rem, 6vw, 4rem);
  line-height: 1;
  color: var(--oxblood);
}
.membership-callout-copy { flex: 1 1 16rem; }
.membership-callout-title {
  font-family: var(--display);
  font-size: 1.2rem;
  margin: 0 0 0.35rem;
  color: var(--ink);
}
.membership-callout-copy p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.6;
}
.membership-body {
  display: grid;
  gap: 2rem;
}
@media (min-width: 760px) {
  .membership-body {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 2.5rem;
  }
}
.membership-section h2 {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.35rem;
  color: var(--oxblood);
  margin: 0 0 0.85rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.3);
}
.membership-section p { line-height: 1.7; }
.membership-note {
  font-style: italic;
  color: var(--ink-soft);
  font-size: 0.92rem;
}

/* —— Directions page —— */
.directions-hero {
  text-align: center;
  padding: 0.5rem 0 1.5rem;
  border-bottom: 2px solid var(--rule);
  margin-bottom: 1.75rem;
}
.directions-kicker {
  font-family: var(--display);
  font-size: 0.85rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--oxblood);
  margin: 0 0 0.5rem;
}
.directions-hero h1 {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
  margin: 0 0 0.75rem;
}
.directions-lead {
  max-width: 42rem;
  margin: 0 auto;
  color: var(--ink-soft);
  font-size: 1.08rem;
  line-height: 1.7;
}
.directions-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem;
  border: 2px solid var(--rule);
  background: rgba(255, 255, 255, 0.28);
  padding: 1.25rem 1.35rem;
  margin-bottom: 2rem;
}
.directions-card-row {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  flex: 1 1 14rem;
}
.directions-label {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sepia);
}
.directions-value {
  font-family: var(--display);
  font-size: 1.05rem;
  color: var(--ink);
}
.directions-body {
  display: grid;
  gap: 2rem;
}
@media (min-width: 760px) {
  .directions-body {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 2.5rem;
  }
}
.directions-section h2,
.directions-note h2 {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.35rem;
  color: var(--oxblood);
  margin: 0 0 0.85rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.3);
}
.directions-steps {
  list-style: none;
  counter-reset: step;
  margin: 0;
  padding: 0;
}
.directions-steps li {
  position: relative;
  counter-increment: step;
  padding: 0 0 1rem 2.25rem;
  line-height: 1.6;
}
.directions-steps li:last-child { padding-bottom: 0; }
.directions-steps li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 0;
  width: 1.5rem;
  height: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--display);
  font-size: 0.85rem;
  color: var(--paper);
  background: var(--oxblood);
  border-radius: 50%;
}
.directions-note {
  border-left: 3px solid var(--oxblood);
  padding-left: 1.25rem;
}
.directions-note p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.7;
}

/* —— Content pages (CAS, lodging, links, rules) —— */
.page-hero {
  text-align: center;
  padding: 0.5rem 0 1.5rem;
  border-bottom: 2px solid var(--rule);
  margin-bottom: 1.75rem;
}
.page-kicker {
  font-family: var(--display);
  font-size: 0.85rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--oxblood);
  margin: 0 0 0.5rem;
}
.page-hero h1 {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
  margin: 0 0 0.75rem;
}
.page-lead {
  max-width: 42rem;
  margin: 0 auto;
  color: var(--ink-soft);
  font-size: 1.08rem;
  line-height: 1.7;
}
.content-section { margin-bottom: 2rem; }
.content-section:last-child { margin-bottom: 0; }
.content-section h2 {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.35rem;
  color: var(--oxblood);
  margin: 0 0 0.85rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.3);
}
.content-section p { line-height: 1.7; }
.content-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.content-list li {
  position: relative;
  padding: 0.55rem 0 0.55rem 1.5rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.15);
  line-height: 1.55;
}
.content-list li:last-child { border-bottom: 0; }
.content-list li::before {
  content: "✦";
  position: absolute;
  left: 0;
  top: 0.55rem;
  color: var(--sepia);
  font-size: 0.8rem;
}
.content-callout {
  border: 2px solid var(--rule);
  background: rgba(107, 28, 28, 0.06);
  padding: 1rem 1.15rem;
  margin-top: 1.5rem;
}
.content-callout p { margin: 0; line-height: 1.6; }

/* Newspaper-style plates for content pages */
.content-plates {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 0 0 2rem;
}
.content-plate {
  margin: 0;
  border: 2px solid var(--rule);
  padding: 6px;
  background: var(--paper-2);
  box-shadow: 4px 4px 0 rgba(42, 28, 12, 0.15);
}
.content-plate:nth-child(odd) { transform: rotate(-1deg); }
.content-plate:nth-child(even) { transform: rotate(1deg); }
.content-plate img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center 30%;
  filter: sepia(0.35) contrast(1.05);
}
.content-plate figcaption {
  font-size: 0.8rem;
  text-align: center;
  padding: 0.45rem 0.25rem 0;
  color: var(--sepia);
  font-style: italic;
}
@media (max-width: 600px) {
  .content-plates { grid-template-columns: 1fr; }
}

.gear-list { margin: 0; }
.gear-list dt {
  font-family: var(--display);
  font-size: 1.1rem;
  color: var(--ink);
  margin: 1rem 0 0.25rem;
}
.gear-list dt:first-child { margin-top: 0; }
.gear-list dd {
  margin: 0 0 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.15);
  color: var(--ink-soft);
  line-height: 1.6;
}
.gear-list dd:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.link-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.link-card {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  border: 1.5px solid var(--rule);
  background: rgba(255, 255, 255, 0.25);
  padding: 0.9rem 1rem;
  text-decoration: none;
  color: var(--ink);
  transition: background 0.15s ease;
}
.link-card:hover {
  background: rgba(107, 28, 28, 0.08);
  color: var(--ink);
}
.link-card strong {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.1rem;
  color: var(--oxblood);
}
.link-card span {
  font-size: 0.9rem;
  color: var(--ink-soft);
  line-height: 1.5;
}
.download-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.download-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  border: 2px solid var(--rule);
  background: rgba(255, 255, 255, 0.28);
  padding: 1.25rem 1.35rem;
  text-decoration: none;
  color: var(--ink);
  transition: background 0.15s ease;
}
.download-card:hover {
  background: rgba(107, 28, 28, 0.08);
  color: var(--ink);
}
.download-label {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sepia);
}
.download-card strong {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.2rem;
  color: var(--oxblood);
}
.download-action {
  margin-top: auto;
  padding-top: 0.5rem;
  font-family: var(--display);
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--oxblood);
  border-top: 1px solid rgba(42, 28, 12, 0.2);
}

/* Poster featured cards (home + schedule) */
.poster-featured { margin-bottom: 1.5rem; }
.sheet-main > .poster-featured { padding-inline: 1.25rem; }
.poster-featured .featured-match {
  position: relative;
  overflow: hidden;
  margin-inline: 0;
  padding: 1.5rem 1.6rem;
  border: 2px solid var(--oxblood);
  background:
    radial-gradient(ellipse at top right, rgba(107, 28, 28, 0.12), transparent 60%),
    linear-gradient(180deg, #f7ecd4 0%, var(--paper) 70%, #f0e0bc 100%);
  box-shadow: 0 0 0 1px rgba(107, 28, 28, 0.12), 0 0 22px rgba(107, 28, 28, 0.16);
}
.poster-featured .featured-match::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(42, 28, 12, 0.35);
  pointer-events: none;
}
.poster-featured .featured-match > * {
  position: relative;
  z-index: 1;
}
.poster-featured .featured-match h3 {
  font-size: clamp(1.6rem, 4vw, 2.2rem);
  margin-bottom: 0.35rem;
}
.poster-featured .featured-match .dates {
  font-family: var(--display);
  font-size: 1.1rem;
  color: var(--oxblood);
}
.schedule-rhythm p + p { margin-top: 0.5rem; }

/* Contact page */
.contact-layout {
  display: grid;
  gap: 2rem;
}
@media (min-width: 860px) {
  .contact-layout {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 2.5rem;
  }
}
.contactform { position: relative; }
.contact-grid {
  display: grid;
  gap: 0 1rem;
}
@media (min-width: 600px) {
  .contact-grid { grid-template-columns: 1fr 1fr; }
  .contact-full { grid-column: 1 / -1; }
}
.contact-aside {
  border-left: 1px solid rgba(42, 28, 12, 0.25);
  padding-left: 1.5rem;
}
@media (max-width: 859px) {
  .contact-aside {
    border-left: 0;
    padding-left: 0;
    border-top: 1px solid rgba(42, 28, 12, 0.25);
    padding-top: 1.5rem;
  }
}
.contact-aside h2 {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.2rem;
  color: var(--oxblood);
  margin: 0 0 0.35rem;
}
.contact-aside p {
  margin: 0 0 1rem;
  color: var(--ink-soft);
  line-height: 1.6;
  overflow-wrap: anywhere;
}

.officer-tier-title {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.35rem;
  color: var(--oxblood);
  text-align: center;
  margin: 0 0 0.85rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.3);
}
.officer-leadership {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  max-width: 34rem;
  margin: 0 auto 2rem;
}
.officer-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 700px) {
  .officer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 460px) {
  .officer-grid { grid-template-columns: 1fr; }
}
.officer-card {
  background: rgba(255, 255, 255, 0.28);
  border: 1.5px solid var(--rule);
  border-radius: 0;
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.officer-photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
  border: 1.5px solid var(--rule);
  background: var(--paper-2);
}
.officer-body {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  flex: 1;
}
.officer-card .alias {
  font-family: var(--display);
  font-size: 1.25rem;
  color: var(--oxblood);
  margin: 0 0 0.25rem;
}
.officer-card .role {
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.officer-name {
  margin: 0.15rem 0 0.35rem;
  color: var(--ink);
}
.officer-card-lead {
  padding: 0.85rem;
  border-width: 2px;
  background: rgba(107, 28, 28, 0.05);
}
.officer-card-lead .alias { font-size: 1.35rem; }
.officer-card-lead .officer-name { font-size: 1rem; }
.officer-contact {
  width: 100%;
  justify-content: center;
  margin-top: auto;
  font-size: 0.85rem;
}

.links-list { list-style: none; padding: 0; margin: 0; }
.links-list li {
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(42, 28, 12, 0.15);
}
.links-list strong { display: block; }

.year-block { margin: 0 0 1.5rem; }
.year-block h2,
.year-block h3 {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.35rem;
  margin: 0 0 0.65rem;
  border-bottom: 2px solid var(--rule);
  padding-bottom: 0.35rem;
  color: var(--ink);
}

.album-strip {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}
.album-strip a {
  display: block;
  text-decoration: none;
  color: inherit;
  background: rgba(255, 255, 255, 0.28);
  border: 1.5px solid var(--rule);
  overflow: hidden;
}
.album-strip a:hover { background: rgba(107, 28, 28, 0.08); color: inherit; }
.album-strip img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; display: block; }
.album-strip .cap { padding: 0.65rem 0.75rem; font-size: 0.9rem; }

.photo-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}
.photo-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border: 1.5px solid var(--rule);
}

.schedule-note,
.callout {
  border: 2px solid var(--rule);
  padding: 0.9rem 1rem;
  margin: 0 0 1.25rem;
  background: rgba(107, 28, 28, 0.06);
  font-size: 0.95rem;
  color: var(--ink-soft);
  border-radius: 0;
}
.callout strong {
  color: var(--ink);
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.05rem;
}
.archive-note {
  font-size: 0.88rem;
  color: var(--ink-soft);
  margin-top: 1.25rem;
}

/* Scores list — C1 PractiScore-style rows (works for PDF links too) */
.score-list { list-style: none; margin: 0; padding: 0; }
.score-list.is-newsletter li { grid-template-columns: 1fr auto; }
.score-list li,
.scores-list .score-row {
  display: grid;
  gap: 0.25rem 0.75rem;
  grid-template-columns: 6.5rem 1fr auto;
  align-items: baseline;
  padding: 0.55rem 0;
  border-bottom: 1px solid rgba(42, 28, 12, 0.15);
  font-size: 0.95rem;
  background: transparent;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  border-radius: 0;
  box-shadow: none;
  flex-wrap: nowrap;
}
.scores-list { display: block; gap: 0; }
.scores-list .score-row:hover {
  border-color: transparent;
  border-bottom-color: rgba(42, 28, 12, 0.15);
  box-shadow: none;
}
.scores-list .score-row-date {
  background: none;
  color: var(--ink-soft);
  min-width: 0;
  padding: 0;
  text-align: left;
  line-height: 1.3;
}
.scores-list .score-row-date .sr-month,
.scores-list .score-row-date .sr-day,
.scores-list .score-row-date .sr-year {
  display: inline;
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--ink-soft);
  letter-spacing: 0;
  text-transform: none;
}
.scores-list .score-row-date .sr-day::before { content: " "; }
.scores-list .score-row-date .sr-year { display: none; }
.scores-list .score-row-body { min-width: 0; }
.scores-list .score-row-title {
  font-weight: 400;
  font-size: 0.95rem;
  color: var(--ink);
  margin: 0;
}
.scores-list .score-row-meta { display: none; }
.scores-list .score-row-action {
  margin-left: 0;
}
.scores-list .score-row-action .btn,
.score-list a.out {
  font-family: var(--display);
  font-size: 0.9rem;
  white-space: nowrap;
  text-decoration: none;
  border: none;
  border-bottom: 1px solid var(--oxblood);
  color: var(--oxblood);
  background: transparent;
  min-height: 0;
  min-width: 0;
  padding: 0;
  border-radius: 0;
}
.scores-list .score-row-action .btn:hover,
.score-list a.out:hover { color: var(--oxblood-2); }
@media (max-width: 560px) {
  .score-list li,
  .scores-list .score-row {
    grid-template-columns: 1fr auto;
  }
  .scores-list .score-row-date {
    grid-column: 1 / -1;
    font-size: 0.82rem;
  }
}

/* Schedule section cards on paper */
.section-card {
  background: rgba(255, 255, 255, 0.28);
  border: 1.5px solid var(--rule);
  border-radius: 0;
  box-shadow: none;
  padding: 1rem 1.1rem;
  margin-bottom: 1.25rem;
}
.schedule-grid-item {
  border: 1.5px solid var(--rule);
  background: rgba(255, 255, 255, 0.35);
  border-radius: 0;
}

/* Flash on paper */
.flash {
  padding: 0.75rem 1rem;
  margin: 0.75rem 0 0;
  border-left: 3px solid var(--oxblood);
  background: rgba(255, 255, 255, 0.4);
  color: var(--ink);
}
.flash-success { border-color: var(--ok); }
.flash-error { border-color: var(--danger); }

/* Contact form on paper */
.contactform .mb-3 label { font-weight: 600; }
.contactform .form-control,
.contactform .form-select,
.contactform input,
.contactform textarea,
.contactform select {
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid rgba(42, 28, 12, 0.55);
  color: var(--ink);
  font-family: var(--body);
  width: 100%;
  padding: 0.5rem 0.65rem;
}
.contactform .form-control:focus,
.contactform input:focus,
.contactform textarea:focus,
.contactform select:focus {
  border-color: var(--oxblood);
  outline: 2px solid var(--oxblood-2);
  outline-offset: 1px;
  box-shadow: none;
}
.contactform { color-scheme: light; }
.contactform label { display: block; margin-bottom: 0.25rem; }
.contactform .mb-3 { margin-bottom: 1rem; }

/* —— Event page (annual match) —— */
.event-page { padding: 1.25rem 1.25rem 1.75rem; overflow-wrap: anywhere; }
.event-banner {
  margin: 0 0 1.5rem;
  border: 2px solid var(--rule);
  background: var(--paper-2);
  padding: 6px;
  box-shadow: 4px 4px 0 rgba(42, 28, 12, 0.15);
}
.event-banner img {
  width: 100%;
  height: auto;
  display: block;
}
.event-hero {
  text-align: center;
  padding: 0.5rem 0 1.5rem;
  border-bottom: 2px solid var(--rule);
}
.event-hero::after {
  content: "✦";
  display: block;
  color: var(--sepia);
  font-size: 0.9rem;
  margin-top: 1rem;
}
.event-kicker {
  font-family: var(--display);
  font-size: 0.85rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--oxblood);
  margin: 0 0 0.5rem;
}
.event-hero h1 {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
  margin: 0 0 0.5rem;
}
.event-theme {
  font-family: var(--display);
  font-size: 1.35rem;
  font-style: italic;
  color: var(--oxblood);
  margin: 0 0 0.35rem;
}
.event-subtitle {
  font-family: var(--display);
  font-size: 1.15rem;
  color: var(--oxblood);
  margin: 0 0 1.25rem;
}
.event-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem;
}
.event-body {
  display: grid;
  gap: 2rem;
  padding-top: 1.75rem;
}
@media (min-width: 860px) {
  .event-body {
    grid-template-columns: minmax(0, 1fr) 17rem;
    gap: 2.5rem;
  }
}
.event-main { min-width: 0; }
.event-aside { min-width: 0; }
@media (min-width: 860px) {
  .event-aside {
    border-left: 1px solid rgba(42, 28, 12, 0.25);
    padding-left: 1.5rem;
  }
}
.event-section { margin-bottom: 2rem; }
.event-section:last-child { margin-bottom: 0; }
.event-heading {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.35rem;
  color: var(--oxblood);
  margin: 0 0 0.85rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.3);
}
.event-intro p {
  font-size: 1.08rem;
  line-height: 1.7;
  margin: 0 0 1rem;
}
.event-intro p:first-child {
  font-size: 1.2rem;
  color: var(--ink);
}
.event-note {
  font-style: italic;
  color: var(--ink-soft);
  margin: -0.35rem 0 0.85rem;
}
.event-timeline {
  list-style: none;
  margin: 0;
  padding: 0 0 0 1.25rem;
  border-left: 2px solid rgba(42, 28, 12, 0.25);
}
.event-timeline li {
  position: relative;
  padding: 0 0 1.25rem;
}
.event-timeline li:last-child { padding-bottom: 0; }
.event-timeline li::before {
  content: "";
  position: absolute;
  left: -1.55rem;
  top: 0.35rem;
  width: 0.55rem;
  height: 0.55rem;
  background: var(--oxblood);
  border: 2px solid var(--paper);
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--oxblood);
}
.event-timeline h3 {
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.1rem;
  margin: 0 0 0.3rem;
  color: var(--ink);
}
.event-timeline p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.6;
}
.event-rules {
  list-style: none;
  margin: 0;
  padding: 0;
}
.event-rules li {
  position: relative;
  padding: 0.55rem 0 0.55rem 1.5rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.15);
  line-height: 1.55;
}
.event-rules li:last-child { border-bottom: 0; }
.event-rules li::before {
  content: "✦";
  position: absolute;
  left: 0;
  top: 0.55rem;
  color: var(--sepia);
  font-size: 0.8rem;
}
.event-faq { margin: 0; }
.event-faq dt {
  font-family: var(--display);
  font-size: 1.05rem;
  color: var(--ink);
  margin: 1rem 0 0.25rem;
}
.event-faq dt:first-child { margin-top: 0; }
.event-faq dd {
  margin: 0 0 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.15);
  color: var(--ink-soft);
  line-height: 1.6;
}
.event-faq dd:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.event-facts dl { margin: 0; }
.event-facts dt {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sepia);
  margin: 0.85rem 0 0.15rem;
}
.event-facts dt:first-child { margin-top: 0; }
.event-facts dd {
  margin: 0;
  font-family: var(--display);
  font-size: 1.05rem;
  color: var(--ink);
  padding-bottom: 0.6rem;
  border-bottom: 1px solid rgba(42, 28, 12, 0.15);
}
.event-facts dd:last-child { border-bottom: 0; padding-bottom: 0; }
.event-aside-note {
  font-style: italic;
  color: var(--ink-soft);
  font-size: 0.92rem;
  margin: 1.25rem 0 0;
}
.event-contact { margin-top: 1.5rem; }
.event-contact-btn {
  display: flex;
  width: 100%;
  justify-content: center;
}
.event-sidebar-docs { margin-top: 1.5rem; }
.event-sidebar-doc-list {
  display: grid;
  gap: 0.5rem;
}
.event-sidebar-doc {
  width: 100%;
  justify-content: center;
  font-size: 0.85rem;
  text-align: center;
}

/* —— World Guardian newsletter page —— */
.newsletter-mast {
  text-align: center;
  padding: 0.5rem 0 1.5rem;
  border-bottom: 2px solid var(--rule);
  margin-bottom: 1.75rem;
}
.newsletter-kicker {
  font-family: var(--display);
  font-size: 0.85rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--oxblood);
  margin: 0 0 0.5rem;
}
.newsletter-mast h1 {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
  margin: 0 0 0.75rem;
}
.newsletter-mast .prose {
  max-width: 42rem;
  margin: 0 auto 0.75rem;
}
.newsletter-mast .muted {
  max-width: 42rem;
  margin: 0 auto;
}
.newsletter-latest {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 2px solid var(--rule);
  background: rgba(107, 28, 28, 0.06);
  padding: 1.25rem 1.35rem;
  margin-bottom: 1.75rem;
}
.newsletter-label {
  font-family: var(--display);
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--oxblood);
  margin: 0 0 0.35rem;
}
.newsletter-latest h2 {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin: 0 0 0.25rem;
}
.newsletter-blurb {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.95rem;
}
.newsletter-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}
.newsletter-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  border: 1.5px solid var(--rule);
  background: rgba(255, 255, 255, 0.25);
  padding: 1rem 0.9rem;
  text-decoration: none;
  color: var(--ink);
  transition: background 0.15s ease;
}
.newsletter-card:hover {
  background: rgba(107, 28, 28, 0.08);
  color: var(--ink);
}
.newsletter-card-label {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sepia);
}
.newsletter-card-month {
  font-family: var(--display);
  font-size: 1.25rem;
  color: var(--oxblood);
  line-height: 1.2;
}
.newsletter-card-action {
  margin-top: auto;
  padding-top: 0.5rem;
  font-family: var(--display);
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--oxblood);
  border-top: 1px solid rgba(42, 28, 12, 0.2);
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Keep focused elements clear of the sticky nav when the browser scrolls them into view. */
:focus-visible { scroll-margin-top: 5rem; }

/* Lightbox sits on a dark backdrop, so use paper ink and a light focus ring. */
.lightbox { color: var(--paper); }
.lightbox-btn {
  color: var(--paper);
  border-color: rgba(243, 230, 200, 0.55);
}
.lightbox-btn:hover,
.lightbox-btn:focus-visible {
  color: var(--paper);
  border-color: var(--paper);
}
.lightbox-zoom-label { color: rgba(243, 230, 200, 0.85); }
.lightbox :focus-visible {
  outline-color: var(--paper);
}


.score-list .d { color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.score-list .n { color: var(--ink); }
.score-list a.out {
  display: inline-block;
  padding: 0.2rem 0;
  font-family: var(--display);
  font-size: 0.9rem;
  white-space: nowrap;
  text-decoration: none;
  border-bottom: 1px solid var(--oxblood);
  color: var(--oxblood);
}
.score-list a.out:hover { color: var(--oxblood-2); }
@media (max-width: 560px) {
  .score-list li { grid-template-columns: 1fr auto; }
  .score-list .d { grid-column: 1 / -1; font-size: 0.82rem; color: var(--ink-soft); }
}
