/* Shared styles for the four Valley of Boston bodies. Loads after style.css. */
.body-hero{position:relative;overflow:hidden;padding:clamp(3rem,6vw,5rem) 0;background:radial-gradient(circle at 82% 18%,rgba(196,160,82,.22),transparent 30%),linear-gradient(120deg,#111,#290f11);color:var(--white)}
.body-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:34px 34px;pointer-events:none}
.body-hero-inner{position:relative;text-align:center}.body-hero h1{margin:0;color:var(--white);font-family:var(--heading-font);font-size:clamp(2.4rem,5.6vw,4.7rem);line-height:1.08}.body-hero-intro{max-width:750px;margin:1.3rem auto;color:rgba(255,255,255,.8);font-size:1.15rem}.body-founded{margin:1.4rem 0 0;color:var(--gold-light);font-size:.9rem;font-weight:700}
.body-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:3rem;align-items:start;padding-block:3.5rem 4.5rem}.body-toc{position:sticky;top:1.5rem;padding:1.3rem;border:1px solid var(--border);border-top:4px solid var(--red);border-radius:var(--radius);background:var(--white)}.body-toc h2{margin:0 0 .7rem;font-family:var(--heading-font);font-size:1.2rem;color:var(--black-soft)}.body-toc ul{list-style:none;margin:0;padding:0}.body-toc li+li{margin-top:.6rem}.body-toc a{font-size:.92rem;text-decoration:none}.body-toc a:hover{text-decoration:underline}
.body-content{min-width:0}.body-content section{scroll-margin-top:1.5rem;margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}.body-content h2{margin:0 0 1.2rem;font-family:var(--heading-font);font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.15;color:var(--black-soft)}.body-content h3{margin:2rem 0 .8rem;font-family:var(--heading-font);font-size:1.4rem;color:var(--red-dark)}.body-content p{margin:0 0 1rem}.body-content li{margin-bottom:.4rem}.table-wrap{overflow-x:auto;margin:1.5rem 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--white)}.body-content table{width:100%;border-collapse:collapse;text-align:left;font-size:.95rem}.body-content caption{text-align:left;padding:1rem;font-family:var(--heading-font);font-size:1.2rem;font-weight:700;color:var(--red-dark)}.body-content th,.body-content td{padding:.8rem 1rem;vertical-align:top;border-top:1px solid var(--border)}.body-content thead{background:var(--cream)}.body-content tbody tr:nth-child(even){background:var(--cream-light)}.body-content th[scope=row]{font-weight:700}.body-text-link{align-self:center;font-weight:700}.body-back{font-size:.9rem}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
@media(max-width:980px){.body-layout{grid-template-columns:1fr;gap:2rem;padding-block:2rem}.body-toc{position:static}.body-toc ul{display:flex;flex-wrap:wrap;gap:.6rem 1.3rem}.body-toc li+li{margin-top:0}}
@media(max-width:600px){.body-hero h1{font-size:clamp(2rem,9vw,3rem)}.body-founded{max-width:28ch;margin-inline:auto}.body-content th,.body-content td{padding:.6rem .5rem;font-size:.85rem}.body-content th[scope=row]{white-space:normal}.body-content .button-row{align-items:start}.body-content section{margin-bottom:2rem}}
@media print{.site-header,.site-footer,.body-toc,.body-back{display:none}.body-hero{background:white;color:black;padding:1rem 0}.body-hero h1,.body-hero-intro,.body-founded,.body-hero .eyebrow{color:black}.body-layout{display:block;padding-block:1rem}.body-content tr{break-inside:avoid}.body-content h2,.body-content h3{break-after:avoid}.body-content .table-wrap{overflow:visible}}
