:root {
  --paper: #f7f4ec;
  --ink: #202124;
  --burgundy: #7a1f2b;
  --green: #5f7d3a;
  --line: #d8cdba;
  --card: #fffdf8;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Inter", Arial, sans-serif;
  line-height: 1.65;
}

h1, h2, h3, h4, .navbar-brand {
  font-family: "Cormorant Garamond", Georgia, serif;
  color: var(--burgundy);
  letter-spacing: 0;
}

a { color: var(--burgundy); }
a:hover, a:focus { color: var(--green); }

.heritage-hero {
  min-height: 410px;
  display: flex;
  align-items: center;
  background:
    linear-gradient(90deg, rgba(32, 33, 36, .70), rgba(122, 31, 43, .38)),
    url("/assets/images/img_2b362ccae93d.png") center/cover no-repeat;
  color: #fff;
}

.heritage-hero .masthead-title {
  max-width: 860px;
  margin: .25rem 0 .6rem;
  color: #fff;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 700;
  font-size: 3.25rem;
  line-height: 1.05;
}

.site-kicker, .section-label {
  margin: 0 0 .45rem;
  color: var(--green);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.heritage-hero .site-kicker,
.heritage-hero .site-subtitle { color: #f7f4ec; }

.site-subtitle, .page-summary {
  max-width: 760px;
  font-size: 1.05rem;
}

.primary-nav {
  position: sticky;
  top: 0;
  z-index: 20;
  padding: .45rem max(1rem, calc((100vw - 1120px) / 2));
  background: rgba(247, 244, 236, .97);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 6px 18px rgba(32, 33, 36, .08);
}

.primary-nav .btn.btn-link {
  color: var(--ink);
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
}

.primary-nav .btn.btn-link:hover {
  color: var(--burgundy);
  box-shadow: inset 0 -2px 0 var(--burgundy);
}

.home-feature, .page-heading, .content-section {
  padding: 4rem 1rem;
}

.home-feature {
  background: #fffaf0;
  border-bottom: 1px solid var(--line);
}

.feature-copy h2, .page-heading h1 {
  margin-top: 0;
  font-size: 2.55rem;
  line-height: 1.1;
}

.feature-panel img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 20px 50px rgba(32, 33, 36, .16);
}

.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.5rem;
}

.btn.btn-primary {
  background: var(--burgundy);
  border-color: var(--burgundy);
}

.btn.btn-primary:focus,
.btn.btn-primary:hover {
  background: var(--green);
  border-color: var(--green);
}

.prose-card, .heritage-sidebar, .listing-card, .toc {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(32, 33, 36, .08);
}

.prose-card {
  padding: 2rem;
}

.article-body p {
  margin: 0 0 1.05rem;
}

.article-body h2, .article-body h3 {
  margin-top: 1.8rem;
}

.content-figure,
.gallery-item {
  margin: 0 0 1rem;
  padding: .4rem;
}

.content-figure img,
.gallery-item img,
.card-image img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
  border: 1px solid var(--line);
}

figcaption, .caption {
  margin-top: .35rem;
  color: #5b5b5b;
  font-size: .85rem;
}

.gallery-grid {
  margin: 1rem -.35rem;
}

.heritage-list {
  padding-left: 1.2rem;
}

.heritage-sidebar {
  padding: 1.2rem;
  margin-bottom: 1rem;
}

.heritage-sidebar h2,
.toc h2 {
  margin-top: 0;
  font-size: 1.35rem;
}

.toc {
  padding: 1rem 1.2rem;
  margin-bottom: 1.5rem;
}

.card-grid {
  margin-bottom: 1rem;
}

.listing-card {
  height: 100%;
  margin: .35rem;
  transition: transform .18s ease, box-shadow .18s ease;
}

.listing-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(32, 33, 36, .14);
}

.table-image {
  max-width: 130px;
  height: auto;
}

.site-footer {
  padding: 2.5rem 1rem;
  background: var(--burgundy) !important;
  color: var(--paper);
}

.site-footer h2,
.site-footer h3 {
  color: #fff;
}

.site-footer a {
  color: #f7f4ec;
}

.site-footer ul {
  margin: 0;
  list-style: none;
}

.site-footer li {
  margin-bottom: .35rem;
}

@media (max-width: 840px) {
  .heritage-hero { min-height: 340px; }
  .heritage-hero .masthead-title { font-size: 2.15rem; }
  .primary-nav { align-items: flex-start; }
  .nav-links { flex-wrap: wrap; justify-content: flex-start; }
  .home-feature, .page-heading, .content-section { padding: 2.75rem 1rem; }
  .feature-copy h2, .page-heading h1 { font-size: 2rem; }
  .prose-card { padding: 1.25rem; }
}
