/* September 2026: readable newspaper typography and shared light/dark surfaces. */
:root {
  --ink-muted: #595d59;
  --ink-faint: #646862;
  --rule: #cecfc7;
  --tint-ok-bg: #edf5ed;
  --tint-ok-ink: #245a38;
  --tint-ok-rule: #bbd4c0;
}
:root[data-theme="dark"] {
  --ink-muted: #b2b5af;
  --ink-faint: #a5a9a1;
  --rule: #41463f;
  --tint-ok-bg: #20352a;
  --tint-ok-ink: #a6dfb8;
  --tint-ok-rule: #476a51;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ink-muted: #b2b5af;
    --ink-faint: #a5a9a1;
    --rule: #41463f;
    --tint-ok-bg: #20352a;
    --tint-ok-ink: #a6dfb8;
    --tint-ok-rule: #476a51;
  }
}
a, button, input, select, textarea, summary { -webkit-tap-highlight-color: var(--accent-ring); }
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--blue-link);
  outline-offset: 3px;
}
html { scroll-padding-top: 72px; }
.masthead { padding: 26px 24px 20px; }
.masthead-title { letter-spacing: -.035em; }
.masthead-tagline { margin-top: 9px; }
.masthead-sub { letter-spacing: .11em; }
.masthead-credo { font-size: 11px; letter-spacing: .12em; }
.nav-link { font-size: 14px; padding: 13px 17px; transition: color .15s, border-color .15s; }
.page { padding-top: 36px; padding-bottom: 56px; }
.layout-cols { gap: 36px; }
.section-title { font-size: 23px; }
.section-label { font-size: 12px; letter-spacing: .1em; }
.section-more { font-size: 13px; }
.section-head { gap: 16px; }
.section-more { flex-shrink: 0; }
.lead h2, .story h3, .article-head h1 { text-wrap: balance; }
.lead h2 { font-size: clamp(28px, 3vw, 38px); line-height: 1.2; letter-spacing: -.025em; }
.lead-excerpt { font-size: 19px; line-height: 1.65; }
.lead-meta, .story-meta { font-size: 12px; line-height: 1.7; }
.lead-badge, .story-badge { font-size: 10px; letter-spacing: .075em; line-height: 1.6; }
.story-badge { padding: 3px 8px; }
.featured-story {
  padding: 24px;
  margin: 0;
  border: 1px solid var(--rule);
  border-top: 3px solid var(--story-accent, var(--accent));
  border-radius: 3px;
  background: var(--paper-card);
}
.featured-story-top { margin-bottom: 20px; }
.featured-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 30px; }
.featured-pair .featured-story { padding: 20px; }
.featured-pair .lead h2 { font-size: clamp(23px, 2vw, 28px); line-height: 1.25; }
.featured-pair .lead-excerpt { font-size: 17px; line-height: 1.65; }
.story-grid { gap: 28px; }
.story { padding-bottom: 24px; }
.story h3 { font-size: 23px; line-height: 1.3; letter-spacing: -.015em; }
.story-text { font-size: 17px; line-height: 1.7; }
.sidebar-box { padding: 20px; border-radius: 3px; margin-bottom: 24px; }
.sidebar-box h4 { font-size: 18px; line-height: 1.35; padding-bottom: 12px; margin-bottom: 12px; }
.sb-row { padding: 11px 0; }
.sb-count { font-size: 12px; }
.article-wrap { max-width: 720px; }
.article-head { text-align: left; margin-bottom: 30px; }
.article-head h1 { font-size: clamp(32px, 4vw, 46px); line-height: 1.16; letter-spacing: -.025em; }
.article-head .deck { max-width: none; margin: 0; font-size: 21px; line-height: 1.55; font-style: normal; }
.article-head-meta { justify-content: flex-start; gap: 7px 12px; font-size: 13px; margin-top: 20px; }
.article-body { font-size: 20px; line-height: 1.78; }
.article-body p { margin-bottom: 1.15em; }
.article-body p + p { text-indent: 0; }
.article-body p:first-child::first-letter { float: none; font: inherit; color: inherit; padding: 0; }
.article-body h2 { font-family: var(--serif-display); font-size: 28px; line-height: 1.3; margin: 1.6em 0 .6em; letter-spacing: -.015em; }
.article-body h3 { font-size: 23px; line-height: 1.35; margin-top: 1.7em; }
.article-body li { margin: .45em 0 .45em 1.25em; }
.article-body blockquote { font-size: 19px; line-height: 1.7; }
.article-photo { margin: 30px 0; }
.article-photo figcaption { font: 13px/1.65 var(--sans); margin-top: 9px; text-align: left; }
.quote-links { font-size: 11px; vertical-align: baseline; padding: 4px 7px; gap: 8px; }
.quote-links a { opacity: 1; }
.quote-links .ql-v { font-size: 10px; }
.article-body .correction-note, .article-body .update-note {
  font: 14px/1.75 var(--sans);
  color: var(--tint-note-ink);
  background: var(--tint-note-bg);
  border: 1px solid var(--tint-note-rule);
  border-left: 3px solid var(--accent);
  padding: 16px 20px;
  margin: 28px 0;
}
.meeting-info h3 { font-size: 19px; line-height: 1.35; }
.meeting-info p { font-size: 14px; line-height: 1.65; }
.meeting-row { padding: 22px 0; }
.search-form input { min-width: 0; color: var(--ink); }
.related-title { font-size: 16px; line-height: 1.5; }
.site-footer { margin-top: 28px; }
.cal-page .cal-toolbar, .cal-page .side-box { box-shadow: none; }
.cal-page .side-title { font-size: 16px; }
.cal-page .loc-hint, .cal-page .search-count { font-size: 13px; }
/* Meeting cards use the same theme-aware surfaces as the rest of the page. */
.coming-up { background: var(--tint-ok-bg); border-color: var(--tint-ok-rule); border-radius: 4px; }
.coming-up-header { gap: 12px; padding: 16px 18px 0; flex-wrap: wrap; }
.coming-up-all, .coming-up-date, .coming-up-cta { color: var(--tint-ok-ink); }
.coming-up-all, .coming-up-hint { font-size: 12px; }
.coming-up-card { border-radius: 3px; }
.coming-up-card-top { gap: 8px 12px; flex-wrap: wrap; }
.coming-up-committee { white-space: normal; max-width: 100%; }
.coming-up-date { flex-shrink: 0; }
.coming-up-title { font-size: 18px; }
.coming-up-summary { font-size: 14px; line-height: 1.6; }
.coming-up-cta-muted { color: var(--ink-muted); }
/* The link accent brightens in dark mode; a white-lettered badge must not. */
:is(.lead-badge, .story-badge, .coming-up-committee)[style*="var(--accent)"] { background: #8b2500 !important; }
:is(.lead-badge, .story-badge)[style*="var(--blue-civic)"] { background: #1e3a5f !important; }
:is(.lead-badge, .story-badge)[style*="var(--green-nature)"] { background: #2d6a4f !important; }
.page .live { color: var(--tint-alert-ink) !important; }
.agenda-preview-label { color: var(--tint-warn-ink) !important; }
.mcard .dn { color: var(--green-nature); }
.comment-check input:disabled + span { opacity: 1; color: var(--ink-muted); }
.comment-check .comment-sublabel { font-size: 12px; }
#dismiss-disclaimer { opacity: 1 !important; }
.cal-page .loc-toggle button .loc-count { opacity: 1; }
.cal-page .fc-today-button:disabled { opacity: 1; color: var(--ink-muted); }
@media (max-width: 1024px) {
  .layout-cols { gap: 28px; }
  .featured-pair { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  .masthead { padding: 20px 16px 16px; }
  .page { padding: 24px 18px 40px; }
  .layout-cols { grid-template-columns: 1fr; gap: 32px; }
  .lead h2 { font-size: 30px; }
  .article-head h1 { font-size: 36px; }
  .article-head .deck { font-size: 20px; }
  .article-body { font-size: 19px; }
  .nav-inner { padding: 0 12px; }
  .nav-link { padding: 13px 13px; }
}
@media (max-width: 480px) {
  #wx-strip > div:first-child { flex-wrap: nowrap !important; gap: 8px !important; }
  .masthead-title { font-size: 36px !important; }
  .masthead-tagline { font-size: 13px; margin-top: 7px; }
  .masthead-sub { font-size: 10px; letter-spacing: .075em; }
  .masthead-credo { font-size: 10px; letter-spacing: .1em; }
  .theme-toggle { top: 10px; right: 9px; }
  .page { padding: 24px 16px 36px; }
  .featured-story, .featured-pair .featured-story { padding: 19px 18px; }
  .featured-story-top { margin-bottom: 16px; }
  .featured-pair { gap: 16px; }
  .lead h2 { font-size: 28px; line-height: 1.2; }
  .featured-pair .lead h2 { font-size: 25px; }
  .lead-excerpt, .featured-pair .lead-excerpt { font-size: 17px; }
  .story h3 { font-size: 23px; }
  .story-text { font-size: 17px; }
  .article-head h1 { font-size: 32px; }
  .article-head .deck { font-size: 19px; }
  .article-body { font-size: 18px; line-height: 1.8; overflow-wrap: break-word; }
  .article-body h2 { font-size: 25px; }
  .article-body h3 { font-size: 22px; }
  .article-body blockquote { padding: 14px 18px; font-size: 18px; }
  .section-title { font-size: 21px; }
  .sidebar-box { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
  .nav-link { transition: none; }
}

/* Keep the original correction text readable in older inline-styled notices. */
.article-body div[style*="background:#fef3f0"] {
  background: var(--tint-note-bg) !important;
  border-color: var(--tint-note-rule) !important;
  color: var(--tint-note-ink);
}
.article-body div[style*="background:#fef3f0"] > div { color: var(--tint-note-ink) !important; }

.article-wrap .src-list { margin: 32px 0; padding: 22px; border: 1px solid var(--rule); background: var(--paper-card); }
.article-wrap .src-list h2 { font: 700 22px/1.3 var(--serif-display); margin: 0 0 10px; }
.article-wrap .src-lede { font: 14px/1.65 var(--sans); color: var(--ink-muted); }
.article-wrap .src-list ul { list-style: none; padding: 0; margin: 12px 0 0; }
.article-wrap .src-item { padding: 12px 0; border-top: 1px solid var(--rule); }
.article-wrap .src-item a { font: 600 17px/1.5 var(--serif-body); overflow-wrap: anywhere; }
.article-wrap .src-meta, .article-wrap .src-note { display: block; margin-top: 5px; font: 13px/1.6 var(--sans); color: var(--ink-muted); }
