@font-face {
  font-family: "Newsreader";
  src: url("../fonts/newsreader-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
}

@font-face {
  font-family: "Public Sans";
  src: url("../fonts/public-sans-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
}

:root {
  --paper: #f6f7f8;
  --surface: #ffffff;
  --ink: #14202b;
  --ink-muted: #4c5866;
  --oxblood: #6e2a2e;
  --border: #d8dce0;
  --cat-meetings: var(--oxblood);
  --cat-credentials: var(--wp--custom--category--credentials, #3a4a63);
  --cat-directories: var(--wp--custom--category--directories, #3d5245);
  --cat-committees: var(--wp--custom--category--committees, #4e3a52);
  --cat-resources: var(--wp--custom--category--resources, #6b5533);
  --status-superseded: var(--wp--custom--status--superseded, #8a6d3b);
  --content: 42rem;
  --wide: 70rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Public Sans", Arial, sans-serif;
  font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.125rem);
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

body.nav-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

a:hover {
  text-decoration-thickness: 0.12em;
}

button,
select,
input {
  font: inherit;
}

a:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
.filter-option:has(input:focus-visible) {
  outline: 3px solid var(--oxblood);
  outline-offset: 3px;
}

h1,
h2,
h3,
p,
blockquote,
address {
  margin-top: 0;
}

p,
address,
blockquote {
  margin-bottom: 16px;
  max-width: var(--content);
}

h1,
h2,
h3 {
  margin-bottom: 16px;
  font-family: "Newsreader", Georgia, serif;
  font-weight: 500;
}

h3,
h4 {
  margin-bottom: 8px;
}

h1 {
  font-size: clamp(2.25rem, 1.8rem + 2.2vw, 3.4rem);
  line-height: 1.04;
  letter-spacing: -0.02em;
}

h2 {
  font-size: clamp(1.75rem, 1.5rem + 1.3vw, 2.5rem);
  line-height: 1.1;
  letter-spacing: -0.015em;
}

h3 {
  font-size: clamp(1.375rem, 1.25rem + 0.6vw, 1.75rem);
  line-height: 1.2;
  letter-spacing: -0.01em;
}

h4 {
  margin-top: 0;
  font-size: clamp(1.125rem, 1.05rem + 0.35vw, 1.375rem);
  line-height: 1.35;
  font-weight: 600;
}

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 100;
  padding: 8px 16px;
  background: var(--ink);
  color: var(--surface);
  transform: translateY(-160%);
}

.skip-link:focus {
  transform: translateY(0);
}

.site-header {
  position: relative;
  z-index: 20;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.primary-nav,
.wide,
.content {
  width: min(100% - 32px, var(--wide));
  margin-inline: auto;
}

.content {
  max-width: var(--content);
}

.primary-nav {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.wordmark {
  min-height: 44px;
  display: flex;
  align-items: center;
  max-width: 15rem;
  font-family: "Newsreader", Georgia, serif;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.15;
  text-decoration: none;
}

.nav-toggle {
  min-width: 48px;
  min-height: 48px;
  padding: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink);
  cursor: pointer;
}

.nav-toggle-lines,
.nav-toggle-lines::before,
.nav-toggle-lines::after {
  display: block;
  width: 24px;
  height: 2px;
  margin-inline: auto;
  background: currentColor;
  content: "";
}

.nav-toggle-lines {
  position: relative;
}

.nav-toggle-lines::before {
  position: absolute;
  top: -7px;
}

.nav-toggle-lines::after {
  position: absolute;
  top: 7px;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.nav-panel {
  position: fixed;
  inset: 72px 0 0;
  display: none;
  padding: 24px 16px 32px;
  overflow-y: auto;
  background: var(--paper);
}

.nav-panel.is-open {
  display: block;
}

.nav-list {
  width: min(100%, 34rem);
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.nav-list a {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid var(--border);
  font-size: 1.0625rem;
  font-weight: 600;
  text-decoration: none;
}

.nav-list a[aria-current="page"] {
  color: var(--ink);
  text-decoration: underline;
  text-decoration-thickness: 1px;
}

.lock-icon {
  position: relative;
  width: 0.78rem;
  height: 0.65rem;
  display: inline-block;
  flex: 0 0 auto;
  border: 1.5px solid currentColor;
  border-radius: 1px;
}

.lock-icon::before {
  position: absolute;
  left: 50%;
  bottom: 0.48rem;
  width: 0.42rem;
  height: 0.38rem;
  border: 1.5px solid currentColor;
  border-bottom: 0;
  border-radius: 2px 2px 0 0;
  content: "";
  transform: translateX(-50%);
}

.masthead {
  padding: 40px 0 32px;
}

.masthead h1 {
  max-width: 20ch;
  margin-bottom: 16px;
  letter-spacing: -0.025em;
}

.masthead-title-line {
  display: inline;
}

.masthead-kicker {
  margin: 0;
  color: var(--ink-muted);
  font-size: clamp(1.1875rem, 1.1rem + 0.4vw, 1.375rem);
  line-height: 1.5;
}

.masthead-rule {
  width: 96px;
  height: 2px;
  margin-top: 16px;
  background: var(--oxblood);
}

.meeting-section {
  padding-bottom: 32px;
}

.meeting-card {
  max-width: 56rem;
  border: 1px solid var(--border);
  border-top-color: var(--oxblood);
  background: var(--surface);
  padding: 24px;
  animation: meeting-fade 500ms ease-out both;
}

.meeting-card-body {
  display: grid;
  gap: 16px;
}

.meeting-details > :last-child,
.meeting-documents > :last-child {
  margin-bottom: 0;
}

.meeting-documents-label {
  display: none;
}

@keyframes meeting-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.eyebrow {
  margin-bottom: 8px;
  font-size: 0.8125rem;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.meeting-date {
  margin-bottom: 8px;
  font-family: "Newsreader", Georgia, serif;
  font-size: clamp(1.75rem, 1.5rem + 1.3vw, 2.5rem);
  line-height: 1.08;
  font-weight: 500;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.meeting-place {
  margin-bottom: 4px;
  font-size: 1.125rem;
  font-weight: 600;
}

.meeting-address {
  margin-bottom: 16px;
  color: var(--ink-muted);
  font-style: normal;
}

.download-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.document-link,
.text-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
}

.document-link {
  padding: 8px 12px;
  border: 1px solid var(--ink-muted);
  text-decoration: none;
}

.document-link::after {
  content: none;
}

.text-link [aria-hidden="true"] {
  display: none;
}

.schedule-strip {
  max-width: 56rem;
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
  color: var(--ink-muted);
  font-size: 0.9375rem;
  line-height: 1.5;
}

.schedule-strip strong {
  color: var(--ink);
}

.section {
  padding: 40px 0;
}

.section-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.section-heading h2 {
  margin-bottom: 0;
}

.event-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
  list-style: none;
}

.event-item {
  display: grid;
  gap: 8px;
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
}

.event-date {
  display: block;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

.event-date .day {
  font-size: inherit;
  line-height: inherit;
}

.event-body h3 {
  margin-bottom: 4px;
}

.event-meta,
.event-description {
  color: var(--ink-muted);
  font-size: 0.9375rem;
  line-height: 1.5;
}

.event-description {
  margin: 0;
}

time {
  font-variant-numeric: tabular-nums;
}

.contact-grid {
  display: grid;
  gap: 8px;
}

.contact-card {
  padding: 16px;
  border: 1px solid var(--border);
  background: var(--surface);
}

.contact-card h3 {
  margin-bottom: 4px;
}

.contact-card address,
.contact-card p {
  margin-bottom: 8px;
  color: var(--ink-muted);
  font-size: 0.9375rem;
  line-height: 1.5;
  font-style: normal;
}

.contact-card p:last-child,
.contact-card address:last-child {
  margin-bottom: 0;
}

.page-intro {
  padding: 40px 0 32px;
  border-bottom: 1px solid var(--border);
}

.page-intro h1 {
  margin-bottom: 8px;
}

.resources-page .page-intro {
  padding: 24px 0;
}

.document-library .page-intro {
  padding: 24px 0;
}

.resources-page .page-intro h1 {
  margin-bottom: 4px;
}

.document-library .page-intro h1 {
  margin-bottom: 4px;
}

.resources-page #meeting-documents {
  padding: 24px 0;
}

.document-library #documents {
  padding: 24px 0;
}

.resources-page .filter-group {
  margin-bottom: 8px;
}

.lead {
  max-width: 40rem;
  margin-bottom: 0;
  color: var(--ink-muted);
  font-size: clamp(1.1875rem, 1.1rem + 0.4vw, 1.375rem);
  line-height: 1.5;
}

.filter-shell {
  position: relative;
}

.filter-group {
  margin: 0 0 16px;
  padding: 0;
  border: 0;
}

.filter-group legend {
  margin-bottom: 8px;
  font-size: 0.8125rem;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.filter-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}

.filter-option {
  position: relative;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  cursor: pointer;
}

.filter-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.filter-option:has(input:checked) {
  border-bottom-color: var(--ink);
  background: transparent;
  color: var(--ink);
  font-weight: 600;
}

.filter-option:has(#cat-governance),
.filter-option:has(#cat-committees) {
  --filter-marker-color: var(--cat-committees);
}

.filter-option:has(#cat-directory),
.filter-option:has(#cat-directories) {
  --filter-marker-color: var(--cat-directories);
}

.filter-option:has(#cat-ministry),
.filter-option:has(#cat-credentials) {
  --filter-marker-color: var(--cat-credentials);
}

.filter-option:has(#cat-policy),
.filter-option:has(#cat-resources) {
  --filter-marker-color: var(--cat-resources);
}

.filter-option:has(#cat-meetings) {
  --filter-marker-color: var(--cat-meetings);
}

.filter-option:has(#cat-governance),
.filter-option:has(#cat-committees),
.filter-option:has(#cat-directory),
.filter-option:has(#cat-directories),
.filter-option:has(#cat-ministry),
.filter-option:has(#cat-credentials),
.filter-option:has(#cat-policy),
.filter-option:has(#cat-resources),
.filter-option:has(#cat-meetings) {
  gap: 8px;
}

.filter-option:has(#cat-governance)::before,
.filter-option:has(#cat-committees)::before,
.filter-option:has(#cat-directory)::before,
.filter-option:has(#cat-directories)::before,
.filter-option:has(#cat-ministry)::before,
.filter-option:has(#cat-credentials)::before,
.filter-option:has(#cat-policy)::before,
.filter-option:has(#cat-resources)::before,
.filter-option:has(#cat-meetings)::before {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  background: var(--filter-marker-color);
  content: "";
}

.document-list {
  border-top: 1px solid var(--border);
}

.document-row {
  --category-color: var(--ink-muted);
  --row-rule-color: var(--category-color);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 4px 16px;
  padding: 8px 16px;
  border-left: 3px solid var(--row-rule-color);
  border-bottom: 1px solid var(--border);
  background: transparent;
}

.document-row[data-category="meetings"] {
  --category-color: var(--cat-meetings);
}

.document-row[data-category="credentials"],
.document-row[data-category="ministry"] {
  --category-color: var(--cat-credentials);
}

.document-row[data-category="directories"],
.document-row[data-category="directory"] {
  --category-color: var(--cat-directories);
}

.document-row[data-category="committees"],
.document-row[data-category="governance"] {
  --category-color: var(--cat-committees);
}

.document-row[data-category="resources"],
.document-row[data-category="policy"] {
  --category-color: var(--cat-resources);
}

.document-row:has(.superseded-flag) {
  --row-rule-color: var(--status-superseded);
}

.document-row > * {
  padding-inline: 0;
}

.document-title {
  grid-column: 1 / -1;
}

.document-title a {
  line-height: 1.5;
  font-weight: 600;
  text-decoration: none;
}

.document-title a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
}

.document-field {
  color: var(--ink-muted);
  font-size: 0.9375rem;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}

.document-title + .document-field {
  grid-column: 1 / -1;
  color: var(--category-color);
  font-size: 0.8125rem;
  font-weight: 600;
}

.document-field[data-label="Date"] {
  grid-column: 1;
}

.document-field[data-label="Format"] {
  grid-column: 2;
}

.document-field[data-label="Size"] {
  grid-column: 3;
}

.document-field::before {
  display: none;
  color: var(--ink);
  font-size: 0.8125rem;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  content: attr(data-label);
}

.superseded-flag {
  display: inline-block;
  margin: 8px 0 0;
  padding: 4px 8px;
  border: 1px solid var(--status-superseded);
  color: var(--status-superseded);
  font-size: 0.8125rem;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 0;
}

.replacement-note {
  margin: 4px 0 0;
  color: var(--ink-muted);
  font-size: 0.875rem;
  line-height: 1.5;
}

.filter-shell:has(#cat-governance:checked) .document-row:not([data-category="governance"]),
.filter-shell:has(#cat-directory:checked) .document-row:not([data-category="directory"]),
.filter-shell:has(#cat-ministry:checked) .document-row:not([data-category="ministry"]),
.filter-shell:has(#cat-policy:checked) .document-row:not([data-category="policy"]),
.filter-shell:has(#year-2025:checked) .document-row:not([data-year="2025"]),
.filter-shell:has(#year-2024:checked) .document-row:not([data-year="2024"]),
.filter-shell:has(#year-2023:checked) .document-row:not([data-year="2023"]) {
  display: none;
}

.gate-panel {
  padding: 24px;
  border: 1px solid var(--border);
  background: var(--surface);
}

.gate-mark {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  margin-bottom: 16px;
  border: 1px solid var(--ink-muted);
}

.gate-panel h2 {
  margin-bottom: 8px;
}

.gate-panel p {
  max-width: 38rem;
  color: var(--ink-muted);
}

.access-form {
  display: grid;
  gap: 8px;
  max-width: 30rem;
  margin-top: 16px;
}

.access-form label {
  font-weight: 600;
}

.access-form input {
  width: 100%;
  min-height: 48px;
  padding: 8px 12px;
  border: 1px solid var(--ink-muted);
  border-radius: 0;
  background: var(--surface);
  color: var(--ink);
}

.button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  border: 1px solid var(--ink);
  border-radius: 0;
  background: var(--ink);
  color: var(--surface);
  font-weight: 600;
  cursor: pointer;
}

.gate-help {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
  font-size: 0.9375rem;
  line-height: 1.5;
}

.audience-section {
  padding: 40px 0;
  border-bottom: 1px solid var(--border);
}

.audience-section:last-of-type {
  border-bottom: 0;
}

.audience-intro {
  max-width: var(--content);
  margin-bottom: 24px;
}

.audience-intro h2 {
  margin-bottom: 8px;
}

.audience-intro p {
  color: var(--ink-muted);
}

.step-grid,
.resource-grid {
  display: grid;
  gap: 8px;
}

.step-grid {
  margin: 0;
  padding: 0;
  list-style: none;
}

.step-card,
.resource-card {
  position: relative;
  padding: 16px;
  border: 1px solid var(--border);
  background: var(--surface);
}

.step-card h3,
.resource-card h3 {
  margin-bottom: 8px;
}

.step-card p,
.resource-card p {
  margin-bottom: 8px;
  color: var(--ink-muted);
  font-size: 0.9375rem;
  line-height: 1.55;
}

.step-card a,
.resource-card a {
  font-weight: 600;
}

.resource-card a {
  text-decoration: none;
}

.resource-card a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
}

.document-title > a,
.replacement-note a,
.gate-help a,
.contact-card a,
.step-card > a,
.resource-card > a,
.footer-links a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.site-footer {
  padding: 32px 0 24px;
  border-top: 1px solid var(--border);
  background: var(--surface);
}

.footer-grid {
  display: grid;
  gap: 24px;
}

.footer-title {
  margin-bottom: 8px;
  font-family: "Newsreader", Georgia, serif;
  font-size: 1.125rem;
  line-height: 1.25;
  font-weight: 600;
}

.footer-copy,
.footer-links {
  margin: 0;
  color: var(--ink-muted);
  font-size: 0.9375rem;
  line-height: 1.5;
}

.footer-links {
  padding: 0;
  list-style: none;
}

.footer-links li + li {
  margin-top: 8px;
}

.footer-legal {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
  color: var(--ink-muted);
  font-size: 0.8125rem;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}

.directory-index {
  max-width: var(--content);
}

.directory-group + .directory-group {
  margin-top: 32px;
}

.directory-group h2 {
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}

.directory-list {
  border-bottom: 1px solid var(--border);
}

.directory-entry {
  min-height: 64px;
  display: grid;
  gap: 4px;
  align-content: center;
  padding: 8px 0;
  border-top: 1px solid var(--border);
  text-decoration: none;
}

.directory-list .directory-entry:first-child {
  border-top: 0;
}

.directory-entry:hover .directory-entry-title {
  text-decoration: underline;
  text-decoration-thickness: 1px;
}

.directory-entry-title {
  font-weight: 600;
}

.directory-entry-meta {
  color: var(--ink-muted);
  font-size: 0.9375rem;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}

@media (min-width: 42rem) {
  .primary-nav,
  .wide,
  .content {
    width: min(100% - 64px, var(--wide));
  }

  .masthead {
    padding: 48px 0 32px;
  }

  .meeting-section {
    padding-bottom: 48px;
  }

  .meeting-card {
    padding: 32px;
  }

  .section,
  .audience-section {
    padding: 64px 0;
  }

  .page-intro {
    padding: 64px 0 48px;
  }

  .resources-page .page-intro {
    padding: 32px 0 24px;
  }

  .document-library .page-intro {
    padding: 32px 0 24px;
  }

  .resources-page #meeting-documents {
    padding: 32px 0;
  }

  .document-library #documents {
    padding: 32px 0;
  }

  .event-item {
    grid-template-columns: 11rem minmax(0, var(--content));
    gap: 24px;
  }

  .contact-grid,
  .resource-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .step-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .filter-controls {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
  }

  .resources-page .filter-controls {
    gap: 16px;
  }

  .resources-page .filter-group {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    margin-bottom: 0;
  }

  .resources-page .filter-group legend {
    margin-bottom: 0;
  }

  .access-form {
    grid-template-columns: 1fr auto;
  }

  .access-form label {
    grid-column: 1 / -1;
  }

  .footer-grid {
    grid-template-columns: 2fr 1fr 1fr;
  }
}

@media (min-width: 64rem) {
  .primary-nav {
    min-height: 80px;
    align-items: stretch;
  }

  .wordmark {
    display: flex;
    align-items: center;
  }

  .nav-toggle {
    display: none;
  }

  .nav-panel {
    position: static;
    display: block;
    padding: 0;
    overflow: visible;
    background: transparent;
  }

  .nav-list {
    width: auto;
    height: 100%;
    display: flex;
    align-items: stretch;
    gap: 16px;
  }

  .nav-list a {
    min-height: 80px;
    padding-top: 4px;
    border: 0;
    border-bottom: 1px solid transparent;
    font-size: 0.875rem;
    white-space: nowrap;
  }

  .nav-list a[aria-current="page"] {
    border-bottom-color: var(--ink);
    text-decoration: none;
  }

  .masthead h1 {
    max-width: none;
  }

  .masthead-title-line {
    display: block;
    white-space: nowrap;
  }

  .meeting-card-body {
    grid-template-columns: minmax(0, 1fr) 15rem;
    gap: 32px;
    align-items: start;
  }

  .meeting-documents-label {
    display: block;
  }

  .meeting-documents .download-list {
    flex-direction: column;
  }

  .meeting-documents .document-link {
    justify-content: space-between;
  }

  .contact-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .step-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .document-row {
    grid-template-columns: minmax(18rem, 2.4fr) minmax(9rem, 1fr) 10rem 4rem 5rem;
    gap: 16px;
    align-items: start;
  }

  .document-title {
    grid-column: auto;
  }

  .document-field,
  .document-title + .document-field,
  .document-field[data-label="Date"],
  .document-field[data-label="Format"],
  .document-field[data-label="Size"] {
    grid-column: auto;
  }

  .document-field::before {
    display: none;
  }

  .gate-panel {
    padding: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .meeting-card {
    animation: none;
  }
}

@media print {
  .site-header,
  .site-footer,
  .filter-controls {
    display: none;
  }

  body {
    background: white;
  }

  .document-row,
  .contact-card,
  .meeting-card {
    break-inside: avoid;
  }
}

/* WordPress block-shell normalization. The approved prototype owns spacing. */
.wp-site-blocks {
  padding: 0;
}

.wp-site-blocks > *,
.wp-block-template-part {
  margin-block-start: 0;
}

/* Only the homepage's current meeting receives the approved page-load fade. */
.meeting-card {
  animation: none;
}

.home .meeting-card {
  animation: meeting-fade 500ms ease-out both;
}

.meeting-card + .meeting-card {
  margin-top: 16px;
}

.meeting-card-muted {
  border-top-color: var(--border);
  background: transparent;
}

.meeting-nominee {
  margin-top: 16px;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}

.meeting-nominee h3 {
  margin-bottom: 4px;
  font-family: "Public Sans", Arial, sans-serif;
  font-size: 0.8125rem;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.meeting-nominee div {
  color: var(--ink-muted);
}

.quick-links {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.quick-links a {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 16px;
  border: 1px solid var(--border);
  background: var(--surface);
  font-weight: 600;
  text-decoration: none;
}

.quick-links a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
}

.askings-notice,
.scripture {
  border-top: 1px solid var(--border);
}

.askings-notice h2,
.scripture h2 {
  margin-bottom: 8px;
}

.askings-notice p {
  margin: 0;
  color: var(--ink-muted);
}

.askings-notice strong {
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.scripture blockquote {
  margin: 0;
  padding-left: 16px;
  border-left: 1px solid var(--border);
  color: var(--ink-muted);
}

.scripture blockquote p {
  margin-bottom: 4px;
  font-family: "Newsreader", Georgia, serif;
  font-size: clamp(1.375rem, 1.25rem + 0.6vw, 1.75rem);
  line-height: 1.2;
}

.scripture cite {
  font-size: 0.9375rem;
  line-height: 1.5;
  font-style: normal;
  font-variant-numeric: tabular-nums;
}

.record-minutes-link {
  margin: 16px 0 0;
}

.minutes-link {
  gap: 8px;
}

.record-details > :last-child,
.record-content > :last-child {
  margin-bottom: 0;
}

.record-meta {
  margin: 0 0 24px;
  border-top: 1px solid var(--border);
}

.record-meta > div {
  display: grid;
  gap: 4px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
}

.record-meta dt {
  font-size: 0.8125rem;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.record-meta dd {
  margin: 0;
  color: var(--ink-muted);
  font-variant-numeric: tabular-nums;
}

.record-description {
  margin-bottom: 24px;
}

.record-content {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}

.record-details section + section {
  margin-top: 32px;
}

.record-links {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
  list-style: none;
}

.record-links a {
  min-height: 48px;
  display: flex;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
  font-weight: 600;
}

.pmv-superseded-notice {
  margin-bottom: 24px;
  padding: 8px 16px;
  border-left: 3px solid var(--status-superseded);
  color: var(--ink-muted);
}

.pmv-superseded-notice strong {
  color: var(--status-superseded);
}

.document-filter-form {
  display: grid;
  gap: 8px 16px;
  margin-bottom: 8px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}

.document-filter-form .filter-group {
  margin-bottom: 0;
}

.document-filter-form > div {
  display: grid;
  gap: 4px;
}

.document-filter-form label,
.site-search label {
  font-size: 0.8125rem;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.document-filter-form select,
.site-search input {
  width: 100%;
  min-height: 48px;
  padding: 8px 12px;
  border: 1px solid var(--ink-muted);
  border-radius: 0;
  background: var(--surface);
  color: var(--ink);
}

.document-filter-form .button {
  align-self: end;
}

.document-count {
  margin: 0;
  padding: 8px 0;
  color: var(--ink-muted);
  font-size: 0.9375rem;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}

.document-category {
  color: var(--category-color);
}

.tabular-nums,
.document-field,
.document-count,
.memorial-entry p {
  font-variant-numeric: tabular-nums;
}

.past-events,
.memorial-group + .memorial-group {
  border-top: 1px solid var(--border);
}

.memorial-list {
  border-top: 1px solid var(--border);
}

.memorial-entry {
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
  color: var(--ink-muted);
}

.memorial-entry h3 {
  margin-bottom: 4px;
  color: var(--ink);
}

.memorial-entry p {
  margin: 0;
}

.site-search {
  display: grid;
  gap: 8px;
  max-width: var(--content);
  margin-bottom: 32px;
}

.search-results {
  border-top: 1px solid var(--border);
}

.search-results article {
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
}

.search-results article h2 {
  margin-bottom: 8px;
}

.search-results article p {
  margin-bottom: 0;
  color: var(--ink-muted);
}

@media (min-width: 42rem) {
  .quick-links {
    grid-template-columns: repeat(3, 1fr);
  }

  .document-filter-form {
    grid-template-columns: minmax(12rem, 2fr) minmax(8rem, 1fr) minmax(10rem, 1fr) auto;
    align-items: end;
  }

  .record-meta > div {
    grid-template-columns: 10rem minmax(0, 1fr);
    gap: 16px;
  }

  .site-search {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .site-search label {
    grid-column: 1 / -1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home .meeting-card {
    animation: none;
  }
}

/* Church directory ---------------------------------------------------------
   Cards rather than one long list, so 51 congregations scan quickly and each
   carries its city, pastor and contact links. */

.church-grid {
  display: grid;
  gap: 4px 32px;
  border-top: 1px solid var(--border);
}

.church-card {
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}

.church-card h3 {
  margin: 0 0 2px;
  font-size: 1rem;
  line-height: 1.4;
}

.church-card p {
  margin: 0;
  color: var(--ink-muted);
  font-size: 0.9375rem;
  line-height: 1.5;
}

.church-card .church-pastor {
  color: var(--ink);
}

.church-links {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  margin-top: 4px !important;
  font-variant-numeric: tabular-nums;
}

@media (min-width: 42rem) {
  .church-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 64rem) {
  .church-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Link underlines -----------------------------------------------------------
   Underlines stay where a link sits inside a sentence: there, the underline is
   the only thing distinguishing it, and colour alone is not sufficient
   (WCAG 1.4.1). In a list, a card or a navigation block, position and context
   already identify the link, so the underline is decoration rather than
   information - and at the density of this site it reads as noise.

   Underline returns on hover everywhere, so the affordance is never lost. */

.footer-links a,
.record-links a,
.credential-doc a,
.church-card a,
.event-list a,
.contact-card a,
.minutes-list a,
.text-link,
.stage-blurb a {
  text-decoration: none;
}

.footer-links a:hover,
.record-links a:hover,
.credential-doc a:hover,
.church-card a:hover,
.event-list a:hover,
.contact-card a:hover,
.minutes-list a:hover,
.text-link:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
}

/* Index-page density --------------------------------------------------------
   A page-intro (40/32) followed by a section (40 top) put ~112px of padding
   plus a large display heading above the first row of content. That reads as a
   mostly-empty first screen on pages whose whole job is to list things. The
   document library and resources pages were already tightened; these are the
   remaining index pages. */

.credentials-page .page-intro,
.credentials-page + .page-intro {
  padding: 24px 0;
}

.credentials-page .page-intro h1 {
  margin-bottom: 4px;
}

.credentials-page .section {
  padding: 20px 0 40px;
}

.credential-group {
  padding: 16px 0;
}

/* The church directory has the same shape: heading, then a long grid. */
main:has(.church-grid) .page-intro {
  padding: 24px 0;
}

main:has(.church-grid) .page-intro h1 {
  margin-bottom: 4px;
}

main:has(.church-grid) .section {
  padding: 20px 0 40px;
}

main:has(.church-grid) .section-heading {
  margin-bottom: 8px;
}

.church-card {
  padding: 10px 0;
}

/* Credentials ---------------------------------------------------------------
   Exactly three type sizes on this page, and they descend in the order a
   reader needs them:

     1. group heading   - what this pile of documents is about
     2. document title  - the thing you came to click
     3. who completes it - the answer to the question the clerk gets asked most

   The page previously reused .record-links, which sets a 48px min-height, a
   border under every row and 600 weight. That made each document louder than
   the heading above it and put a rule between a title and its own caption. */

.credential-grid {
  display: grid;
  gap: 0;
}

.credential-group {
  padding: 22px 0;
  border-top: 1px solid var(--border);
}

.credential-group h2 {
  margin: 0 0 2px;
  font-size: 1.25rem;
  line-height: 1.3;
}

.credential-group-blurb {
  margin: 0 0 12px;
  color: var(--ink-muted);
  font-size: 0.9375rem;
  line-height: 1.5;
}

.credential-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.credential-doc {
  padding: 0 0 10px;
}

.credential-doc:last-child {
  padding-bottom: 0;
}

/* Body size, medium weight: a link, not a headline. No border, no min-height. */
.credential-list .credential-doc a {
  display: inline;
  min-height: 0;
  padding: 0;
  border: 0;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.45;
}

.credential-doc-actor {
  display: block;
  margin-top: 1px;
  color: var(--ink-muted);
  font-size: 0.875rem;
  line-height: 1.4;
}

.credential-group-gated h2 {
  color: var(--ink-muted);
}

@media (min-width: 52rem) {
  .credential-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 56px;
  }
}

/* Church cards: one family, clear hierarchy ---------------------------------
   The card title is an h3, so it inherited the Newsreader display serif at
   1rem while the city and ministers beneath it were Public Sans at 0.9375rem.
   Two typefaces a sixteenth of a rem apart, 51 times down the page, reads as
   an accident rather than a hierarchy.

   The serif is for page and section headings. Inside a card, weight and colour
   carry the hierarchy and the family stays constant. */

.church-card h3 {
  margin: 0 0 2px;
  font-family: "Public Sans", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0;
}

.church-card p,
.church-card .church-city,
.church-card .church-pastor,
.church-card .church-links {
  font-family: "Public Sans", Arial, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.45;
}

.church-card .church-city {
  color: var(--ink-muted);
}

.church-card .church-pastor {
  color: var(--ink);
}

.church-more {
  color: var(--ink-muted);
}

/* Consolidates the two competing .church-card padding rules above. */
.church-card {
  padding: 12px 0;
}

/* Credentials: give each group shape ----------------------------------------
   The lists read as one continuous column of text. A rule under every row was
   the previous attempt and it looked like a data table. One hairline down the
   left of each list does the same work with a single line instead of N: the
   items read as a set belonging to the heading above them.

   Deliberately small. The structure is unchanged. */

.credential-list {
  margin-top: 2px;
  padding-left: 14px;
  border-left: 1px solid var(--border);
}

.credential-doc {
  padding: 0 0 9px;
}

.credential-doc:last-child {
  padding-bottom: 2px;
}

/* The lead item of a group sits slightly proud of the rest. */
.credential-doc:first-child a {
  font-weight: 600;
}

/* Officer cards: close the gaps ---------------------------------------------
   Every email and telephone link carried min-height:44px as a touch target,
   on top of an 8px paragraph margin. Each line therefore occupied roughly
   twice the height of its text and the cards read as mostly air.

   32px still clears WCAG 2.5.8 AA (24x24px) with room to spare; 44px is the
   AAA / Apple figure and is more than these stacked links need. */

.contact-card a {
  min-height: 32px;
}

.contact-card address,
.contact-card p {
  margin-bottom: 0;
}

.contact-card p + p {
  margin-top: 2px;
}

/* Same reasoning as the church cards: the display serif is for page and
   section headings, not for the title of a small card sitting inches from
   sans-serif body text. */
.contact-card h3 {
  margin-bottom: 2px;
  font-family: "Public Sans", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
}

.contact-card {
  padding: 14px 16px;
}

/* Homepage density ----------------------------------------------------------
   The stack was masthead (40/32) + meeting-section (32 bottom) + section
   (40 top) between every block, so roughly 70-110px of empty space separated
   each band on a page with only three of them. Tightened so the page reads as
   one composition rather than widely spaced islands. */

.front-page .masthead {
  padding: 28px 0 20px;
}

.front-page .masthead h1 {
  margin-bottom: 10px;
}

.front-page .masthead-rule {
  margin-top: 12px;
}

.front-page .meeting-section {
  padding-bottom: 12px;
}

.front-page .section {
  padding: 24px 0;
}

.front-page .section:last-child {
  padding-bottom: 40px;
}

.front-page .section-heading {
  margin-bottom: 10px;
}

.front-page .schedule-strip {
  margin-top: 10px;
}

/* Committees -----------------------------------------------------------------
   The bordered card is kept exactly as it was. The only change is the heading:
   an h3 inherits the Newsreader display serif, which sat a sixteenth of a rem
   away from sans-serif body text inside the same small card. Same correction
   already made on the church and officer cards - the serif is for page and
   section headings. */

.committee-card h3 {
  margin-bottom: 4px;
  font-family: "Public Sans", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
}

.committee-card .committee-chairman {
  margin-bottom: 2px;
  color: var(--ink);
}

.committee-card .committee-chairman-email {
  margin-bottom: 0;
}

.committee-card a {
  min-height: 0;
}

@media (min-width: 42rem) {
  .committee-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 64rem) {
  .committee-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Document links on cards ---------------------------------------------------
   .document-link set no type properties at all, so an outlined chip inherited
   the body *prose* size - clamp(1.0625rem … 1.125rem), 17-18px - at regular
   weight. Everything else on the site that looks like a control carries 600
   weight, and small labels sit near 0.875rem. The family was already right
   (Public Sans, inherited); only the scale was accidental. */

.document-link {
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
}

/* Address map links ---------------------------------------------------------
   Underlined on hover only, like every other structured link on the site. */

.map-link {
  text-decoration: none;
}

.map-link:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
}
