:root {
  --paper:#f3eee4;
  --paper2:#fbf8f1;
  --ink:#20262b;
  --muted:#626c74;
  --navy:#173653;
  --navy2:#0f2942;
  --navy3:#244d71;
  --rust:#98533b;
  --gold:#d9c4a0;
  --rule:#d7cdbd;
  --shadow:0 12px 28px rgba(20,38,54,.10);
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper2);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.55}
a{color:var(--navy3);text-decoration-thickness:1px;text-underline-offset:3px}
img{max-width:100%;display:block}
.container{width:min(calc(100% - 34px),var(--max));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,248,241,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}
.header-row{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.brand{display:flex;align-items:center;gap:10px;color:var(--navy2);text-decoration:none}
.brand-mark{width:36px;height:36px;display:block;object-fit:contain;flex:0 0 auto}
.brand strong{font-family:Georgia,serif;font-size:1.16rem}
.brand small{display:block;color:var(--muted);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}
nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
nav a{text-decoration:none;font-size:.9rem;font-weight:700}
.menu-toggle{display:none;border:1px solid var(--rule);background:transparent;padding:8px 10px;border-radius:6px;color:var(--navy2)}
.hero{background:linear-gradient(120deg,var(--navy2),var(--navy));color:white;padding:58px 0 52px;overflow:hidden}
.hero .eyebrow,.page-hero .eyebrow{color:var(--gold)}
.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:38px;align-items:center}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:800;color:var(--rust)}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.1;margin-top:0}
h1{font-size:clamp(2.55rem,5.3vw,4.9rem);max-width:900px;margin-bottom:16px}
h2{font-size:clamp(1.85rem,3vw,2.7rem)}
h3{font-size:1.34rem}
.lede{font-size:1.12rem;max-width:790px;color:inherit;opacity:.9}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.btn{display:inline-block;padding:10px 15px;border-radius:5px;text-decoration:none;font-weight:800}
.btn-primary{background:#ead8b8;color:var(--navy2)}
.btn-secondary{border:1px solid rgba(255,255,255,.48);color:white}
.hero-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);padding:20px;border-radius:7px}
.hero-card img{border-radius:4px;max-height:245px;object-fit:cover;width:100%}
.hero-card p{font-size:.84rem;line-height:1.45;opacity:.8;margin:10px 0 0}
.stat-strip{background:#ece3d3;border-bottom:1px solid var(--rule)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);padding:14px 0}
.stat{padding:2px 18px;border-right:1px solid var(--rule)}
.stat:first-child{padding-left:0}.stat:last-child{border-right:0}
.stat strong{display:block;font-family:Georgia,serif;font-size:1.42rem;color:var(--navy2)}
.stat span{font-size:.78rem;color:var(--muted)}
section{padding:48px 0}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:20px}
.section-head p{max-width:640px;color:var(--muted);margin-bottom:.2rem}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.card{background:white;border:1px solid var(--rule);padding:20px;border-radius:7px;box-shadow:0 5px 18px rgba(41,44,41,.035)}
.card .kicker{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--rust);font-weight:800}
.card h3{margin:4px 0 7px}.card p{color:var(--muted);margin:.45rem 0 .75rem}.card a.stretched{font-weight:800;text-decoration:none}
.feature{display:grid;grid-template-columns:1.08fr .92fr;background:var(--navy2);color:white;border-radius:8px;overflow:hidden}
.feature img{height:180px;min-height:0;object-fit:contain;width:100%;align-self:center;background:var(--navy2)}
.feature-copy{padding:34px}.feature-copy p{opacity:.86}.feature-copy a{color:#ead8b8}
.page-hero{background:var(--paper);border-bottom:1px solid var(--rule);padding:40px 0 34px}
.breadcrumbs{font-size:.78rem;color:var(--muted);margin-bottom:13px}.breadcrumbs a{color:inherit}
.page-hero h1{color:var(--navy2);font-size:clamp(2.45rem,4.5vw,4.2rem);margin-bottom:8px}
.page-hero .lede{color:var(--muted);margin-bottom:0}
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:42px;align-items:start}
.article-body{font-family:Georgia,"Times New Roman",serif;font-size:1.035rem;line-height:1.58}
.article-body p{margin:0 0 1.05em}.article-body h2{margin-top:1.55em;margin-bottom:.55em}.article-body h3{margin-top:1.3em;margin-bottom:.45em}
.aside{position:sticky;top:84px}
.info-box{background:var(--paper);border:1px solid var(--rule);padding:16px;border-radius:7px;margin-bottom:12px}
.info-box h3{font-size:1.05rem;margin-bottom:7px}
.info-box p{font-size:.88rem;line-height:1.45;margin:.5rem 0}
.facts{margin:0;padding:0;list-style:none}
.facts li{padding:6px 0;border-bottom:1px solid var(--rule);font-size:.86rem;line-height:1.4}
.facts li:last-child{border-bottom:0}.facts strong{display:block;color:var(--muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:1px}
.figure{margin:21px 0}.figure img{border-radius:6px;border:1px solid var(--rule);width:100%}.figure figcaption{font-size:.78rem;line-height:1.45;color:var(--muted);margin-top:6px}
.callout{border-left:4px solid var(--rust);background:var(--paper);padding:15px 18px;margin:20px 0;font-family:Inter,system-ui,sans-serif;font-size:.92rem;line-height:1.5}
.source-list{font-family:Inter,system-ui,sans-serif;font-size:.86rem;line-height:1.48;padding-left:1.2rem}.source-list li{margin-bottom:6px}
.research-status{display:inline-flex;align-items:center;gap:7px;background:#e6edf3;color:var(--navy2);border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:800;margin-bottom:10px}.dot{width:7px;height:7px;background:var(--navy3);border-radius:50%}
.search-panel{background:white;border:1px solid var(--rule);border-radius:7px;padding:18px;box-shadow:var(--shadow);margin-top:-22px;position:relative}
.search-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px}.search-row input{width:100%;border:1px solid var(--rule);background:var(--paper2);padding:10px 12px;border-radius:5px;font:inherit}.search-row button{border:0;border-radius:5px;background:var(--navy);color:white;padding:0 20px;font-weight:800}.search-note{font-size:.78rem;color:var(--muted);margin:8px 0 0}
.timeline{border-left:2px solid var(--rule);margin-left:7px;padding-left:21px}.timeline-item{position:relative;margin-bottom:18px}.timeline-item:before{content:"";position:absolute;left:-27px;top:7px;width:10px;height:10px;border-radius:50%;background:var(--rust);border:3px solid var(--paper2)}.timeline-item strong{font-family:Georgia,serif;font-size:1.16rem}.timeline-item p{margin:.15rem 0;color:var(--muted)}
.site-footer{background:#0d263d;color:#e8edf2;padding:34px 0;margin-top:34px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:34px}.site-footer a{color:#e8edf2}.site-footer p{opacity:.78;font-size:.9rem}.site-footer h3{margin-bottom:8px}.fineprint{border-top:1px solid rgba(255,255,255,.15);margin-top:20px;padding-top:14px;font-size:.75rem;opacity:.68}
.notice{background:#f4e8cd;border-bottom:1px solid #dfcea8;font-size:.78rem;padding:6px 0;color:#65502d}

/* Tablet: keep information density, reduce side-by-side pressure. */
@media(max-width:900px){
  nav{display:none}.menu-toggle{display:block}.header-row{min-height:60px}
  .hero-grid{grid-template-columns:1.15fr .85fr;gap:24px}.hero{padding:46px 0 42px}
  .article-grid{grid-template-columns:minmax(0,1fr) 250px;gap:28px}
  .cards{gap:12px}.card{padding:17px}.feature-copy{padding:27px}
}

/* Small tablet / large phone: stack structural columns, retain all information. */
@media(max-width:720px){
  body{line-height:1.58}
  .hero-grid,.feature,.article-grid{grid-template-columns:1fr}.aside{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.info-box{margin-bottom:0}
  .hero-card{max-width:520px}.hero-card img{max-height:300px}.cards{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}
  .search-row{grid-template-columns:1fr 1fr}.search-row button{min-height:44px}
  section{padding:42px 0}.page-hero{padding:32px 0 28px}.article-body{font-size:1.04rem}.figure{margin:22px 0}.feature img{height:165px;min-height:0}
}

/* Phone: one column, comfortable touch targets, slightly more breathing room for reading. */
@media(max-width:520px){
  .container{width:min(calc(100% - 24px),var(--max))}
  .brand strong{font-size:1.03rem}.brand small{font-size:.61rem}.brand-mark{width:34px;height:34px}
  .hero{padding:36px 0 34px}.hero-grid{gap:22px}.hero h1{font-size:clamp(2.35rem,12vw,3.45rem)}.lede{font-size:1.04rem}
  .hero-actions{flex-direction:column;align-items:stretch}.btn{text-align:center;min-height:44px;padding:11px 15px}
  .cards,.stats,.search-row,.aside{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--rule);padding:9px 0}.stat:last-child{border-bottom:0}
  .search-panel{padding:15px;margin-top:-16px}.search-row input{min-height:44px}.search-row button{padding:11px 16px}
  section{padding:38px 0}.section-head{display:block;margin-bottom:17px}.section-head p{margin-top:-.2rem}.card{padding:17px}
  .page-hero{padding:26px 0 23px}.breadcrumbs{margin-bottom:10px}.page-hero h1{font-size:clamp(2.3rem,11vw,3.4rem)}
  .article-grid{gap:24px}.article-body{font-size:1rem;line-height:1.64}.article-body p{margin-bottom:1.12em}.article-body h2{margin-top:1.7em}.article-body h3{margin-top:1.45em}
  .info-box{padding:15px}.facts li{padding:7px 0}.figure figcaption{font-size:.8rem}.callout{padding:15px 16px;margin:22px 0}
  .feature-copy{padding:24px}.feature img{height:145px;min-height:0}.footer-grid{grid-template-columns:1fr;gap:16px}.site-footer{padding:28px 0;margin-top:28px}
}

/* Framework navigation state: avoids inline JS styles and is reusable across generated pages. */
@media(max-width:900px){
  nav.nav-open{display:flex;position:absolute;top:60px;left:0;right:0;padding:16px 17px;background:var(--paper2);border-bottom:1px solid var(--rule);flex-direction:column;align-items:flex-start;gap:12px;box-shadow:0 8px 18px rgba(20,38,54,.08)}
}

/* People directory: deliberately dense on larger screens, stacked on phones. */
.people-directory{padding-top:32px}
.directory-tools{display:grid;grid-template-columns:minmax(260px,1fr) 260px 88px;gap:10px;align-items:end;margin-bottom:16px;padding:14px;background:var(--paper);border:1px solid var(--rule);border-radius:7px}
.directory-tools label span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;margin-bottom:4px}
.directory-tools input,.directory-tools select{width:100%;min-height:40px;border:1px solid var(--rule);border-radius:5px;background:white;padding:8px 10px;font:inherit;color:var(--ink)}
.directory-count{min-height:40px;display:flex;align-items:baseline;justify-content:center;gap:5px;background:white;border:1px solid var(--rule);border-radius:5px;padding:8px}.directory-count strong{font-family:Georgia,serif;font-size:1.25rem;color:var(--navy2)}.directory-count span{font-size:.72rem;color:var(--muted)}
.directory-head,.person-row{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(280px,1.45fr) minmax(170px,.8fr);gap:16px;align-items:start}
.directory-head{padding:0 10px 6px;color:var(--muted);font-size:.67rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;border-bottom:1px solid var(--rule)}
.person-row[hidden]{display:none}
.person-row{padding:9px 10px;border-bottom:1px solid var(--rule);font-size:.84rem;line-height:1.35}.person-row:nth-child(even){background:rgba(243,238,228,.42)}.person-row:hover{background:var(--paper)}
.person-name a{font-family:Georgia,serif;font-size:1rem;font-weight:700;text-decoration:none;color:var(--navy2)}.person-role{color:var(--ink)}.person-category{color:var(--muted)}
.directory-empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--rule)}
@media(max-width:720px){.directory-tools{grid-template-columns:1fr 1fr}.directory-count{grid-column:1/-1}.directory-head{display:none}.person-row{grid-template-columns:1fr 1fr;gap:3px 12px;padding:12px 8px}.person-name{grid-column:1/-1}.person-role,.person-category{font-size:.8rem}.person-category{text-align:right}}
@media(max-width:520px){.directory-tools{grid-template-columns:1fr}.directory-count{grid-column:auto}.person-row{grid-template-columns:1fr}.person-category{text-align:left;color:var(--muted)}.person-row{padding:13px 4px}}

/* Full Genealogy release */
.download-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0}.download-card{border:1px solid var(--line);background:var(--paper);padding:22px}.download-card h3{margin:.25rem 0 .5rem}.download-card .file-meta{font-family:var(--sans);font-size:.9rem;overflow-wrap:anywhere}.download-card .btn{margin-top:8px}@media(max-width:700px){.download-grid{grid-template-columns:1fr}.download-card{padding:18px}}


/* Stories index: editorial summaries, dense on desktop, stacked on phones. */
.stories-directory{padding-top:32px}
.story-list{border-top:1px solid var(--rule)}
.story-row{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:22px;align-items:start;padding:16px 8px;border-bottom:1px solid var(--rule)}
.story-row[hidden]{display:none}
.story-category{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--rust);font-weight:800;margin-bottom:3px}
.story-row h3{margin:0 0 4px;font-size:1.08rem}.story-row h3 a{text-decoration:none}.story-row p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45;max-width:78ch}
.story-link{text-align:right;padding-top:20px;font-size:.83rem;font-weight:800}.story-link a{text-decoration:none}
@media(max-width:700px){.story-row{grid-template-columns:1fr;gap:5px;padding:14px 4px}.story-link{text-align:left;padding-top:0}.story-row p{font-size:.92rem}}

/* Preserve legacy image quality: never enlarge article figures beyond their native pixel size. */
.figure{text-align:center}
.figure img{width:auto;max-width:100%;height:auto;margin-inline:auto}
.figure figcaption{text-align:center}

/* Genealogy search modal */
.genealogy-search-actions{margin-top:10px}.search-panel .genealogy-search-actions{display:inline-block;margin-left:8px}
.search-panel .btn-secondary,.download-grid + .genealogy-search-actions .btn-secondary,section .genealogy-search-actions .btn-secondary{border:1px solid var(--navy3);color:var(--navy2);background:transparent}
.genealogy-search-dialog{width:min(850px,calc(100% - 28px));max-height:82vh;border:1px solid var(--rule);border-radius:8px;padding:0;background:var(--paper2);color:var(--ink);box-shadow:0 24px 70px rgba(10,30,48,.28)}
.genealogy-search-dialog::backdrop{background:rgba(10,25,39,.55)}
.genealogy-search-dialog-inner{padding:22px}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:18px;border-bottom:1px solid var(--rule);padding-bottom:12px;margin-bottom:12px}.dialog-head h2{margin:2px 0 0;font-size:1.8rem}.dialog-close{border:0;background:transparent;color:var(--navy2);font-size:2rem;line-height:1;cursor:pointer;padding:0 5px}.dialog-note{color:var(--muted);font-size:.9rem}
.genealogy-search-field span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;margin-bottom:4px}.genealogy-search-field input{width:100%;min-height:44px;border:1px solid var(--rule);border-radius:5px;background:white;padding:9px 11px;font:inherit}.genealogy-search-meta{font-size:.78rem;color:var(--muted);margin:8px 0}.genealogy-search-results{max-height:45vh;overflow:auto;border-top:1px solid var(--rule)}.genealogy-result{padding:12px 4px;border-bottom:1px solid var(--rule)}.genealogy-result-meta{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--rust);font-weight:800}.genealogy-result p{margin:4px 0;font-family:Georgia,"Times New Roman",serif;font-size:.93rem;line-height:1.45}.genealogy-result a{font-size:.8rem;font-weight:800;text-decoration:none}.search-no-results{color:var(--muted);padding:14px 4px}.dialog-foot{padding-top:14px;text-align:right}
@media(max-width:520px){.search-panel .genealogy-search-actions{display:block;margin:8px 0 0}.search-panel .genealogy-search-actions .btn{width:100%}.genealogy-search-dialog-inner{padding:16px}.genealogy-search-results{max-height:48vh}.dialog-head h2{font-size:1.5rem}}

/* v9: make the complete-genealogy search a primary discovery action. */
.btn-genealogy{border:1px solid #f0d7a5;background:#d8ad63;color:var(--navy2);box-shadow:0 3px 0 rgba(0,0,0,.12);cursor:pointer}
.btn-genealogy:hover,.btn-genealogy:focus-visible{background:#efd39d;color:#0d263d}
.hero .genealogy-search-actions{display:inline-block;margin:0}
.hero .genealogy-search-actions .btn-genealogy{min-height:44px;padding:11px 18px}
.search-panel .btn-genealogy,section .btn-genealogy{background:var(--rust);border-color:var(--rust);color:white}
@media(max-width:520px){.hero .genealogy-search-actions{display:block}.hero .genealogy-search-actions .btn-genealogy{width:100%}}

/* Places index */
.places-directory{padding-top:32px}.place-list{border-top:1px solid var(--rule)}
.place-row{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:22px;align-items:start;padding:14px 8px;border-bottom:1px solid var(--rule)}
.place-row[hidden]{display:none}.place-category{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--rust);font-weight:800;margin-bottom:3px}
.place-row h3{margin:0 0 4px;font-size:1.05rem}.place-row h3 a{text-decoration:none}.place-row p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.42;max-width:86ch}.place-link{text-align:right;padding-top:20px;font-size:.83rem;font-weight:800}.place-link a{text-decoration:none}
@media(max-width:700px){.place-row{grid-template-columns:1fr;gap:5px;padding:14px 4px}.place-link{text-align:left;padding-top:0}.place-row p{font-size:.92rem}}


/* Military directory */
.military-directory{padding-top:32px}.military-tools{grid-template-columns:minmax(280px,1fr) 300px 88px}
.military-head,.military-row{display:grid;grid-template-columns:minmax(190px,.9fr) minmax(280px,1.35fr) minmax(250px,1.15fr) minmax(160px,.7fr);gap:14px;align-items:start}
.military-head{padding:0 10px 6px;color:var(--muted);font-size:.67rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;border-bottom:1px solid var(--rule)}
.military-row[hidden]{display:none}.military-row{padding:10px;border-bottom:1px solid var(--rule);font-size:.82rem;line-height:1.35}.military-row:nth-child(even){background:rgba(243,238,228,.36)}.military-row:hover{background:var(--paper)}
.military-name>a,.military-name{font-weight:800}.military-era{display:block;font-size:.62rem;line-height:1.25;text-transform:uppercase;letter-spacing:.07em;color:var(--rust);font-weight:800;margin-bottom:3px}.military-unit,.military-life,.military-burial{color:var(--ink)}
.directory-note{margin-top:14px;color:var(--muted);font-size:.82rem}
@media(max-width:900px){.military-head,.military-row{grid-template-columns:minmax(170px,.9fr) minmax(230px,1.2fr) minmax(220px,1fr)}.military-head>div:last-child,.military-burial{display:none}.military-tools{grid-template-columns:1fr 1fr 88px}}
@media(max-width:700px){.military-tools{grid-template-columns:1fr 1fr}.military-tools .directory-count{grid-column:1/-1}.military-head{display:none}.military-row{grid-template-columns:1fr;gap:5px;padding:13px 5px}.military-burial{display:block}.military-unit,.military-life,.military-burial{font-size:.84rem}.military-unit:before{content:'Service: ';font-weight:800}.military-life:before{content:'Life: ';font-weight:800}.military-burial:before{content:'Burial: ';font-weight:800}}
@media(max-width:520px){.military-tools{grid-template-columns:1fr}.military-tools .directory-count{grid-column:auto}}

/* Military v12: preserved legacy summaries, casualties, and burial links */
.military-legend{margin-top:14px;font-size:.88rem;color:var(--muted)}
.active-duty-death{color:#a32020;font-weight:800}
.military-summary{padding-top:26px}
.military-summary h2{margin:.2rem 0 .8rem}
.military-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:26px}
.military-summary-card{border:1px solid var(--rule);background:var(--paper);padding:12px 13px;border-radius:8px;display:flex;flex-direction:column;gap:5px}
.military-summary-card strong{font-size:.85rem;line-height:1.25}.military-summary-card span{font-size:.78rem;color:var(--muted)}.military-summary-card em{color:#a32020;font-style:normal;font-weight:700}
.recent-veterans{margin-top:10px;border-top:1px solid var(--rule);padding-top:18px}
.recent-veteran-head,.recent-veteran-row{display:grid;grid-template-columns:1.05fr 1.05fr 1.4fr .9fr;gap:12px;align-items:start}
.recent-veteran-head{padding:0 8px 6px;color:var(--muted);font-size:.67rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;border-bottom:1px solid var(--rule)}
.recent-veteran-row{padding:8px;border-bottom:1px solid var(--rule);font-size:.8rem;line-height:1.35}.recent-veteran-row:nth-child(even){background:rgba(243,238,228,.36)}
.military-burial a,.recent-veteran-row a{text-decoration:underline;text-underline-offset:2px}
@media(max-width:950px){.military-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recent-veteran-head,.recent-veteran-row{grid-template-columns:1fr 1fr 1.2fr}}
@media(max-width:700px){.military-summary-grid{grid-template-columns:1fr}.recent-veteran-head{display:none}.recent-veteran-row{grid-template-columns:1fr;gap:3px;padding:11px 5px}.recent-veteran-row span:nth-child(2):before{content:'Life: ';font-weight:800}.recent-veteran-row span:nth-child(3):before{content:'Service: ';font-weight:800}.recent-veteran-row span:nth-child(4):before{content:'Burial: ';font-weight:800}}

/* Research & sources */
.section-tight{padding-top:30px;padding-bottom:30px}
.research-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.research-link{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#fff;border:1px solid var(--rule);border-radius:6px;padding:10px 12px;text-decoration:none;font-size:.88rem;font-weight:700}
.compact-links .research-link{font-size:.82rem;padding:8px 10px}
.reference-list{border-top:1px solid var(--rule)}
.reference-row{display:grid;grid-template-columns:160px minmax(0,1fr);gap:18px;padding:13px 4px;border-bottom:1px solid var(--rule)}
.reference-category{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--rust);padding-top:4px}
.reference-main h3{font-size:1rem;margin:0 0 3px}.reference-main p{font-size:.84rem;color:var(--muted);margin:0}
@media(max-width:720px){.research-link-grid{grid-template-columns:1fr 1fr}.reference-row{grid-template-columns:120px 1fr}}
@media(max-width:520px){.research-link-grid{grid-template-columns:1fr}.reference-row{grid-template-columns:1fr;gap:3px}.reference-category{padding-top:0}}

/* Research v14 refinements */
.reference-row[hidden]{display:none!important}
.internet-resource-group{margin:0 0 26px}
.resource-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-bottom:1px solid var(--rule);margin-bottom:10px;padding-bottom:5px}
.resource-group-head h3{margin:0;color:var(--navy)}
.resource-group-head span{font-size:.76rem;color:var(--muted)}
.reference-code{display:block;font-size:.67rem;color:var(--muted);margin-top:4px;font-weight:600}
.reference-metadata{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 18px;font-size:.8rem;line-height:1.35;color:var(--ink)}
.reference-metadata strong{color:var(--muted);font-weight:700}
.full-citation{margin:6px 0 0;font-size:.78rem;line-height:1.4;color:var(--muted)}
@media(max-width:650px){.reference-metadata{grid-template-columns:1fr}.resource-group-head{align-items:flex-start}}

/* Homepage spacing between statistics band and genealogy lookup panel */
.stat-strip + .container > .search-panel{margin-top:28px;margin-bottom:8px}
@media(max-width:700px){.stat-strip + .container > .search-panel{margin-top:20px}}


/* v17 archive collections */
.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.25rem 0 2rem}.archive-card{display:block;background:#fff;border:1px solid var(--line);border-radius:.55rem;padding:1rem;text-decoration:none}.archive-card h3{margin:.1rem 0 .4rem}.archive-card p{margin:0;color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:start}.gallery-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-item{margin:0;padding:.7rem;background:#fff;border:1px solid var(--line);border-radius:.45rem}.gallery-item img,.archive-image img{display:block;max-width:100%;height:auto;margin:auto}.gallery-item figcaption,.archive-image figcaption{font-size:.85rem;margin-top:.55rem;color:var(--muted)}.archive-image{margin:1rem 0}.table-scroll{overflow-x:auto}.archive-table{width:100%;border-collapse:collapse;margin:.75rem 0 1.5rem}.archive-table td{padding:.45rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}.archive-table th{padding:.5rem .6rem;text-align:left;border-bottom:2px solid var(--line);color:var(--navy2);font-size:.78rem;letter-spacing:.03em}.archive-section{margin:0 0 1.5rem}.contact-card{background:#fff;border:1px solid var(--line);border-radius:.55rem;padding:1.2rem;margin-top:1.5rem}
@media(max-width:900px){.archive-grid,.gallery-grid,.gallery-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.archive-grid,.gallery-grid,.gallery-grid.compact{grid-template-columns:1fr}}


/* v18 archive refinements */
.migration-legend { display:flex; flex-wrap:wrap; gap:.55rem 1rem; padding:.85rem 1rem; margin:0 0 1.5rem; background:var(--paper-2,#f4efe5); border:1px solid rgba(0,0,0,.08); border-radius:10px; font-weight:700; }
.gen2{color:olive}.gen5{color:green}.gen6{color:maroon}.gen7{color:teal}.gen9{color:chocolate}.gen10{color:navy}.gen12{color:dodgerblue}
.migration-region { margin:2rem 0 2.75rem; }
.migration-pair { display:grid; grid-template-columns:minmax(260px,380px) minmax(0,1fr); gap:1.4rem; align-items:start; }
.migration-map { margin:0; }
.migration-map img { display:block; width:auto; max-width:100%; height:auto; margin:0 auto; }
.migration-map figcaption { text-align:center; font-size:.9rem; margin-top:.4rem; color:var(--muted,#666); }
.migration-table td { vertical-align:top; } .migration-names { font-weight:650; white-space:nowrap; }
.timeline-item a { text-decoration:underline; text-underline-offset:2px; }
.media-section { margin:0 0 2.5rem; }
.media-content { width:100%; border-collapse:collapse; }
.media-content td { vertical-align:top; padding:.65rem; }
.media-content img { width:auto; max-width:100%; height:auto; }
.media-content p { margin:.45rem 0 .8rem; }
@media (max-width: 800px) { .migration-pair { grid-template-columns:1fr; } .migration-names { white-space:normal; } .media-content, .media-content tbody, .media-content tr, .media-content td { display:block; width:100%; } }

/* v19 section-page visuals and consistent content gutters */
.visual-page-hero{padding:30px 0}
.page-hero-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(250px,.55fr);gap:34px;align-items:center}
.page-hero-visual{margin:0;border:1px solid var(--rule);border-radius:7px;overflow:hidden;background:#e8dfd0;box-shadow:0 5px 18px rgba(41,44,41,.05)}
.page-hero-visual img{display:block;width:100%;height:220px;object-fit:cover}
.page-hero-visual.portrait-visual img{object-position:center 32%}
.article-shell>.container>.article-body{max-width:none}
.figure img{display:block;margin-inline:auto;height:auto}
.figure figcaption{max-width:760px;margin-left:auto;margin-right:auto}
@media(max-width:720px){
  .page-hero-grid{grid-template-columns:1fr;gap:20px}
  .page-hero-visual{max-width:560px}
  .page-hero-visual img{height:auto;max-height:300px;object-fit:contain}
}

/* v19.1: show complete Stories and Military hero images without cropping */
.page-hero-visual.contain-visual{justify-self:end;width:min(100%,340px);overflow:visible;background:transparent;border:0;box-shadow:none}
.page-hero-visual.contain-visual img{width:100%;height:auto;max-height:220px;object-fit:contain;border:1px solid var(--rule);border-radius:7px;background:#e8dfd0}
@media(max-width:720px){.page-hero-visual.contain-visual{justify-self:start;width:min(100%,560px)}.page-hero-visual.contain-visual img{max-height:300px}}
