@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@400;500;600;700&display=swap');
:root{
  --ink:#183044; --navy:#153c5b; --navy2:#0e2d46; --red:#b43b2e; --cream:#fbf4df;
  --paper:#fffdf7; --sky:#8fc3dc; --marsh:#637b55; --gold:#d7a653; --rust:#9b4a2d;
  --line:#d8c7a6; --muted:#64717a; --shadow:0 12px 30px rgba(24,48,68,.12);
  --max:1180px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:Lexend,Tenorite,Aptos,'Segoe UI',Arial,sans-serif;font-size:17px;line-height:1.65;background:linear-gradient(180deg,#e9f1f2 0,#fffdf8 270px,#f7f0df 100%)}
a{color:#126487;text-underline-offset:.18em} a:hover,a:focus{color:var(--red)}
img{max-width:100%;height:auto}.skip-link{position:absolute;left:14px;top:-70px;background:var(--navy2);color:#fff;padding:10px 14px;z-index:1000}.skip-link:focus{top:12px;color:#fff}
.site-shell{width:min(calc(100% - 24px),1260px);margin:16px auto;background:rgba(255,253,247,.94);border:1px solid #d8c7a6;box-shadow:0 16px 40px rgba(24,48,68,.13)}
.home-banner{display:block;background:#fff}.home-banner img{display:block;width:100%;aspect-ratio:4/1;object-fit:cover}
.interior-masthead{display:grid;grid-template-columns:150px 1fr;gap:26px;align-items:center;padding:22px 28px;background:linear-gradient(120deg,#fff9e9,#edf5f5)}
.interior-masthead img{width:150px;border-radius:13px;box-shadow:0 8px 20px rgba(24,48,68,.15)}
.eyebrow{margin:0 0 5px;color:var(--red);font-weight:700;font-size:.79rem;letter-spacing:.12em;text-transform:uppercase}
h1,h2,h3{line-height:1.18;color:var(--ink)}h1{font-size:clamp(2rem,4.5vw,3.25rem);margin:.05em 0 .3em}h2{font-size:clamp(1.45rem,3vw,2rem)}h3{font-size:1.12rem}.lead{font-size:1.08rem;color:#405564;max-width:850px;margin:.35rem 0}
.primary-nav{background:linear-gradient(#be4635,#953426);border-top:4px solid var(--gold);border-bottom:4px solid var(--gold);box-shadow:inset 0 1px rgba(255,255,255,.22)}
.primary-nav ul{list-style:none;margin:0 auto;padding:0 10px;max-width:var(--max);display:flex;flex-wrap:wrap;justify-content:center}.primary-nav a{display:block;color:#fff8df;text-decoration:none;font-weight:700;padding:11px 12px;border-left:1px solid rgba(255,255,255,.13)}.primary-nav li:last-child a{border-right:1px solid rgba(255,255,255,.13)}.primary-nav a:hover,.primary-nav a:focus,.primary-nav a[aria-current=page]{background:rgba(17,51,75,.42);color:#fff}
.site-main{width:min(calc(100% - 34px),var(--max));margin:0 auto;padding:30px 0 46px}.breadcrumbs{font-size:.86rem;color:var(--muted);margin-bottom:18px}.breadcrumbs a{text-decoration:none}
.home-intro{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.75fr);gap:28px;align-items:start}.feature-card,.panel,.resource-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:var(--shadow)}
.feature-card{border-top:5px solid var(--navy)}.whats-new{border-top-color:var(--marsh);background:#f4f7ee}.heritage-note{border-left:6px solid var(--gold);background:#fff8e8;padding:17px 19px;margin:24px 0;border-radius:5px}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0}.card-grid .resource-card h3{margin-top:0}.card-grid .resource-card p{margin-bottom:0}.resource-card a.title-link{font-weight:700;font-size:1.08rem;text-decoration:none}
.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.stack>*+*{margin-top:18px}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:#fff}table{width:100%;border-collapse:collapse}th,td{padding:11px 13px;border-bottom:1px solid #e8dfcd;text-align:left;vertical-align:top}th{background:#edf3f5;color:var(--navy2)}tr:last-child td{border-bottom:0}
.legacy{font-size:.9rem;color:#596b76;background:#f5f2e9;border:1px solid #ded4c0;padding:12px 15px;border-radius:8px}.tag{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:3px 7px;border-radius:999px;background:#e7efe5;color:#46613d}.coming{background:#fff5da;color:#795d1f}
ul.clean{padding-left:1.25rem}ul.link-list{list-style:none;padding:0;margin:0}.link-list li{padding:9px 0;border-bottom:1px dashed #d9cfba}.link-list li:last-child{border-bottom:0}.external::after{content:' ↗';font-size:.8em}
.site-footer{background:#17384d;color:#eef6f7;text-align:center;padding:24px 18px 28px;border-top:5px solid var(--gold)}.footer-nav{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;margin-bottom:18px}.footer-project-logos{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap;margin:8px auto 18px}.footer-project-logos a{display:inline-flex;align-items:center;justify-content:center}.footer-project-logos img{display:block;height:auto}.footer-vagenweb-logo{width:180px;max-width:42vw}.footer-usgenweb-logo{width:150px;max-width:34vw}.site-footer a{color:#fff4cf}.site-footer p{margin:.35rem 0}.footer-small{font-size:.84rem;color:#cbd9df}
.callout{padding:16px 18px;background:#eaf3f5;border-left:5px solid #4d8099;border-radius:5px}.warning{background:#fff4df;border-left-color:#c37b2c}.button-link{display:inline-block;background:var(--navy);color:#fff!important;padding:10px 14px;border-radius:7px;text-decoration:none;font-weight:700}.button-link:hover{background:var(--red)}
@media(max-width:850px){.home-intro,.two-col,.three-col{grid-template-columns:1fr}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.interior-masthead{grid-template-columns:105px 1fr;padding:16px}.interior-masthead img{width:105px}}
@media(max-width:580px){body{font-size:16px}.site-shell{width:100%;margin:0;border-left:0;border-right:0}.site-main{width:min(calc(100% - 26px),var(--max));padding-top:22px}.card-grid{grid-template-columns:1fr}.primary-nav a{padding:9px 9px;font-size:.88rem}.interior-masthead{grid-template-columns:82px 1fr;gap:14px}.interior-masthead img{width:82px}h1{font-size:2rem}.home-banner img{min-height:145px;object-fit:cover}}


/* ========================================================================
   HOMEPAGE: WHAT'S NEW
   ======================================================================== */

.news-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.news-list li {
  padding: 0.8rem 0;
  border-bottom: 1px solid rgba(99, 123, 85, 0.25);
}

.news-list li:last-child {
  border-bottom: 0;
}

.news-list time {
  display: block;
  margin-bottom: 0.15rem;
  color: var(--marsh);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.news-list a {
  display: block;
  margin-bottom: 0.2rem;
  font-weight: 700;
  text-decoration: none;
}

.news-list span {
  display: block;
  font-size: 0.92rem;
  line-height: 1.5;
}


/* ========================================================================
   CEMETERY INDEX
   ======================================================================== */

.featured-record {
  display: grid;
  grid-template-columns: minmax(220px, 330px) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: center;
  margin: 1.25rem 0 2rem;
  padding: 1rem;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
}

.featured-record-image img {
  display: block;
  width: 100%;
  border-radius: 8px;
}

.featured-record h3 {
  margin: 0 0 0.35rem;
  font-size: 1.35rem;
}

.featured-record h3 a {
  text-decoration: none;
}

.record-meta {
  margin: 0 0 0.65rem;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 600;
}


/* ========================================================================
   INDIVIDUAL CEMETERY PAGES
   ======================================================================== */

.cemetery-intro {
  display: grid;
  grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr);
  gap: 2rem;
  align-items: start;
  margin-bottom: 2.5rem;
}

.cemetery-feature-photo {
  margin: 0;
}

.cemetery-feature-photo img {
  display: block;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: var(--shadow);
}

.cemetery-feature-photo figcaption,
.photo-gallery figcaption,
.research-note-with-image figcaption {
  margin-top: 0.45rem;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.location-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin: 1.2rem 0;
}

.location-facts > div {
  padding: 0.8rem 0.9rem;
  background: #f6f2e7;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.location-facts dt {
  margin-bottom: 0.1rem;
  color: var(--navy);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.location-facts dd {
  margin: 0;
  font-weight: 600;
}

.preservation-note {
  padding: 0.9rem 1rem;
  background: #fff8e8;
  border-left: 5px solid var(--gold);
  border-radius: 5px;
}

.content-section {
  margin: 2.5rem 0;
}

.photo-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
  margin-top: 1.25rem;
}

.photo-gallery figure {
  margin: 0;
}

.photo-gallery img {
  display: block;
  width: 100%;
  height: 310px;
  object-fit: contain;
  background: #f4efe2;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.transcription-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.3rem;
}

.transcription-entry {
  padding: 1rem 1.05rem;
  background: var(--paper);
  border: 1px solid var(--line);
  border-left: 4px solid var(--sky);
  border-radius: 8px;
}

.transcription-entry h3 {
  margin: 0 0 0.55rem;
  color: var(--navy);
  font-size: 1rem;
}

.inscription {
  margin: 0;
  line-height: 1.45;
}

.source-flag {
  margin: 0.7rem 0 0;
  padding-top: 0.6rem;
  color: #7a3f22;
  border-top: 1px dashed #d7b59c;
  font-size: 0.82rem;
  font-weight: 600;
}

.transcription-grid.compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.research-note-with-image {
  display: grid;
  grid-template-columns: minmax(250px, 380px) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}

.research-note-with-image figure {
  margin: 0;
}

.research-note-with-image img {
  display: block;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.record-back {
  margin-top: 2rem;
  font-weight: 600;
}


/* ========================================================================
   RESPONSIVE ADDITIONS
   ======================================================================== */

@media (max-width: 850px) {
  .featured-record,
  .cemetery-intro,
  .research-note-with-image {
    grid-template-columns: 1fr;
  }

  .transcription-grid,
  .transcription-grid.compact {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 650px) {
  .photo-gallery,
  .location-facts {
    grid-template-columns: 1fr;
  }

  .photo-gallery img {
    height: auto;
  }
}
