:root {
  --archive-bg: #F6F5F1;
  --archive-red: #D50000;
  --archive-ink: #111111;
  --archive-charcoal: #2A2A2A;
  --archive-muted: #D8D3C8;
  --archive-paper: #FFFDF8;
  --archive-cream: #ECE7DB;
}

html { scroll-padding-top: 88px; }

body {
  margin: 0;
  background: var(--archive-bg);
  color: var(--archive-ink);
  font-family: Inter, Arial, sans-serif;
  font-size: 15px;
  line-height: 1.55;
}

a { color: #9D0000; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--archive-red); }

h1, h2, h3, h4, .navbar-brand, .footer-brand {
  font-family: Merriweather, Georgia, serif;
  letter-spacing: 0;
}

.site-header {
  background: var(--archive-charcoal);
  border-bottom: 4px solid var(--archive-red);
  box-shadow: 0 3px 0 rgba(0,0,0,.16);
}

.navbar-brand { font-weight: 900; }
.brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 34px;
  background: var(--archive-red);
  color: #fff;
  font-family: Inter, Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
}
.brand-copy { font-size: 20px; }
.navbar .nav-link {
  color: rgba(255,255,255,.82);
  font-size: 13px;
  font-weight: 700;
  padding-inline: .7rem;
}
.navbar .nav-link.active,
.navbar .nav-link:hover { color: #fff; background: rgba(213,0,0,.35); }

.quote-strip { padding: 10px 0; background: #EFEEE9; }
.quote-inner {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 12px;
  align-items: center;
  border: 1px solid #BDB7AA;
  background: #E0DCD3;
  padding: 8px 12px;
}
.quote-avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  background: var(--archive-charcoal);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}
.quote-inner p { margin: 0; font-family: Merriweather, Georgia, serif; font-size: 13px; text-align: center; }
.quote-inner span { font-family: Inter, Arial, sans-serif; font-weight: 700; }

.identity-strip { padding: 18px 0 22px; }
.identity-grid {
  display: grid;
  grid-template-columns: 150px minmax(220px, 1fr) minmax(280px, 420px);
  gap: 18px;
  align-items: center;
}
.identity-card {
  background: var(--archive-red);
  color: #fff;
  width: 150px;
  height: 92px;
  display: grid;
  place-items: center;
  text-align: center;
  font-weight: 900;
  border: 1px solid #9D0000;
}
.identity-logo { transform: rotate(-3deg); line-height: 1.15; }
.identity-summary strong { display: block; font-family: Merriweather, Georgia, serif; font-size: 22px; }
.identity-summary span { color: #4B4640; }
.archive-search {
  display: flex;
  gap: 0;
  border: 8px solid var(--archive-red);
  background: #fff;
}
.archive-search input {
  min-width: 0;
  flex: 1;
  border: 0;
  padding: 13px 14px;
}
.archive-search button {
  border: 0;
  background: var(--archive-charcoal);
  color: #fff;
  padding: 0 18px;
  font-weight: 800;
}

.breadcrumb-wrap { margin-top: 18px; }
.breadcrumb { background: #E9E5DA; padding: 8px 12px; border-radius: 0; font-size: 13px; }

.home-lead, .page-hero {
  padding: 28px 0;
  border-top: 1px solid rgba(42,42,42,.12);
  border-bottom: 1px solid rgba(42,42,42,.12);
  background: #E9E5DA;
}
.lead-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 24px;
  align-items: center;
}
.home-lead h1, .page-hero h1 {
  max-width: 980px;
  margin: 0;
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 900;
}
.eyebrow {
  margin: 0 0 8px;
  color: var(--archive-red);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.lead-card {
  border: 1px solid var(--archive-charcoal);
  background: var(--archive-paper);
  padding: 18px;
}
.lead-card span { display: block; color: #6A635A; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.lead-card strong { display: block; margin-top: 6px; font-family: Merriweather, Georgia, serif; font-size: 20px; }

.content-band { padding: 28px 0 42px; }
.content-panel,
.article-shell {
  background: var(--archive-paper);
  border: 1px solid #C7C0B4;
  padding: clamp(18px, 3vw, 32px);
}
.article-shell {
  max-width: 980px;
  margin-inline: auto;
}
.article-shell h1 {
  margin-bottom: 20px;
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 900;
}
.content-panel h1,
.content-panel h2,
.article-shell h2 { color: #181818; }
.content-panel h2,
.article-shell h2 {
  margin-top: 24px;
  padding-bottom: 6px;
  border-bottom: 3px solid var(--archive-red);
  font-size: 22px;
}
.content-panel h3,
.article-shell h3 { margin-top: 18px; font-size: 18px; font-weight: 800; }
.content-panel p,
.article-shell p { margin-bottom: 14px; }

.outlink-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--archive-muted);
}
.outlink-strip a {
  background: #EEE9DE;
  border: 1px solid #CFC7BB;
  color: #241F1F;
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.archive-item {
  border-top: 1px solid #DAD3C8;
  padding: 12px 0;
}
.archive-item h3 { margin: 0 0 6px; font-size: 17px; }
.archive-item p { margin: 0; color: #4D4841; }

.content-media {
  margin: 18px auto;
  max-width: min(100%, 720px);
}
.content-media img,
.gallery-card img,
.content-table img {
  max-width: 100%;
  height: auto;
}
.media-float-left {
  float: left;
  max-width: 240px;
  margin: 4px 18px 12px 0;
}
.media-float-right {
  float: right;
  max-width: 240px;
  margin: 4px 0 12px 18px;
}
.content-media figcaption,
.gallery-card figcaption {
  margin-top: 5px;
  color: #615A52;
  font-size: 12px;
}

.content-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 12px;
  margin: 18px 0;
}
.gallery-card {
  background: #F1EDE4;
  border: 1px solid #D2CABD;
  padding: 8px;
  margin: 0;
}

.content-table-wrap {
  margin: 16px 0;
  background: #fff;
}
.content-table {
  --bs-table-bg: #fff;
  margin-bottom: 0;
  font-size: 13px;
}
.content-table th {
  background: var(--archive-charcoal);
  color: #fff;
}
.content-table td,
.content-table th { vertical-align: top; }
.content-table tr:has(td:empty) { display: none; }

.content-list ul,
.content-list ol { padding-left: 1.25rem; }
blockquote {
  border-left: 5px solid var(--archive-red);
  background: #F0ECE2;
  margin: 18px 0;
  padding: 14px 18px;
  font-family: Merriweather, Georgia, serif;
}

.archive-rail {
  position: sticky;
  top: 92px;
  background: #FFFDF8;
  border: 1px solid #C7C0B4;
  padding: 14px;
}
.archive-rail h2 {
  margin: 0 0 10px;
  padding: 6px 8px;
  background: var(--archive-charcoal);
  color: #fff;
  font-family: Inter, Arial, sans-serif;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.rail-group {
  display: grid;
  gap: 8px;
  margin-bottom: 18px;
}
.rail-badge {
  display: block;
  border: 1px solid #BDB5A7;
  background: #EFE9DD;
  color: #111;
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}
.rail-badge:hover {
  background: var(--archive-red);
  color: #fff;
}
.archive-list-group .list-group-item {
  background: transparent;
  border-color: #DED6CA;
  color: #272220;
  font-size: 13px;
  font-weight: 700;
}

.memorial-band { padding: 0 0 48px; }
.memorial-card {
  display: grid;
  grid-template-columns: minmax(0,1fr) 180px;
  gap: 24px;
  align-items: center;
  background: #FFFDF8;
  border: 4px solid #111;
  padding: clamp(18px, 4vw, 34px);
}
.memorial-card h2 { color: var(--archive-red); font-size: 28px; }
.memorial-card img { max-width: 180px; justify-self: end; }

.site-footer {
  background: #111;
  border-top: 5px solid var(--archive-red);
  color: #EEE8DE;
  padding: 38px 0;
}
.footer-brand {
  color: #fff;
  font-size: 24px;
  font-weight: 900;
}
.site-footer p { color: #BFB7AA; }
.footer-links a {
  display: block;
  border-bottom: 1px solid rgba(255,255,255,.12);
  color: #F2EBCF;
  padding: 5px 0;
  font-size: 13px;
  text-decoration: none;
}
.footer-links a:hover { color: #fff; }

@media (max-width: 991.98px) {
  .identity-grid,
  .lead-grid,
  .memorial-card {
    grid-template-columns: 1fr;
  }
  .identity-card { width: 100%; max-width: 190px; }
  .archive-rail { position: static; }
  .memorial-card img { justify-self: start; }
}

@media (max-width: 575.98px) {
  .quote-inner { grid-template-columns: 1fr; text-align: center; }
  .quote-avatar { margin-inline: auto; }
  .archive-search { display: block; }
  .archive-search input,
  .archive-search button { width: 100%; min-height: 44px; }
  .content-panel,
  .article-shell { padding: 16px; }
  .media-float-left,
  .media-float-right {
    float: none;
    max-width: 100%;
    margin: 14px 0;
  }
}
