/* Needham-Storey-Wampner — see DESIGN.md beside site/ */
@font-face{font-family:"Libre Caslon Text";src:url(fonts/libre-caslon-text-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url(fonts/libre-caslon-text-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url(fonts/libre-caslon-text-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(fonts/source-sans-3-400-normal.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(fonts/source-sans-3-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}

:root{
  --slate:#364145; --slate-deep:#2a3337; --ink:#222b2e; --muted:#55636a;
  --gold:#BA950C; --gold-light:#d6b24a; --gold-ink:#7d6408;
  --clay:#9a573f; --clay-dark:#7f4632;
  --paper:#f7f7f4; --white:#fff; --mist:#e7eef0; --line:#cfd8da; --on-slate:#f4f2ec; --on-slate-muted:#c9d3d5;
  --serif:"Libre Caslon Text",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2.5rem; --s5:4rem; --s6:6rem;
  --r:3px; --wrap:72rem; --measure:66ch;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem}
body{margin:0;font-family:var(--sans);font-size:1.125rem;line-height:1.65;color:var(--ink);background:var(--paper);overflow-x:hidden}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--clay);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--clay-dark);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:var(--r)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.2;color:var(--slate);margin:0 0 var(--s2)}
h1{font-size:clamp(2.1rem,5vw,3.375rem);letter-spacing:-.01em}
h2{font-size:clamp(1.75rem,3.4vw,2.375rem)}
h3{font-size:clamp(1.3rem,2.2vw,1.75rem)}
h4{font-size:1.375rem}
p{margin:0 0 var(--s2)}
ul,ol{padding-left:1.25em;margin:0 0 var(--s2)}
li{margin-bottom:.35em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--s3)}
.narrow{max-width:46rem}
.lead{font-size:1.25rem;line-height:1.6;color:var(--muted);max-width:var(--measure)}
.label{font-family:var(--sans);font-size:.875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);margin:0 0 var(--s1)}
.on-slate .label{color:var(--gold-light)}
.skip{position:absolute;left:-999px;top:0;background:var(--white);color:var(--ink);padding:var(--s1) var(--s2);z-index:100}
.skip:focus{left:var(--s2);top:var(--s2)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.5em;min-height:48px;padding:.7em 1.4em;border-radius:var(--r);background:var(--clay);color:var(--white);font-family:var(--sans);font-weight:600;font-size:1.0625rem;text-decoration:none;border:1px solid var(--clay);cursor:pointer;line-height:1.2}
.btn:hover{background:var(--clay-dark);border-color:var(--clay-dark);color:var(--white)}
.btn-line{background:transparent;color:var(--slate);border-color:var(--slate)}
.btn-line:hover{background:var(--slate);color:var(--on-slate);border-color:var(--slate)}
.on-slate .btn-line{color:var(--on-slate);border-color:var(--on-slate-muted)}
.on-slate .btn-line:hover{background:var(--on-slate);color:var(--slate)}
.actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;margin-top:var(--s3)}
.arrow-link{font-weight:600;text-decoration:none;color:var(--clay);display:inline-flex;align-items:center;gap:.4em;min-height:32px}
.arrow-link::after{content:"\2192";transition:transform .2s}
.arrow-link:hover::after{transform:translateX(4px)}
.on-slate a:not(.btn){color:var(--gold-light)}
.on-slate a:not(.btn):hover{color:var(--on-slate)}

/* top bar + header */
.topbar{background:var(--mist);color:var(--slate);font-size:1rem}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);min-height:2.5rem;flex-wrap:wrap}
.topbar a{color:var(--slate);font-weight:600}
.topbar .guide{font-weight:600}
.site-header{background:var(--slate);color:var(--on-slate);position:sticky;top:0;z-index:50}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:4.75rem}
.brand{display:block;flex:0 0 auto;padding:.5rem 0}
.brand img{width:190px;height:auto}
.menu-btn{display:inline-flex;align-items:center;gap:.5em;background:none;border:1px solid var(--on-slate-muted);color:var(--on-slate);font:600 1rem var(--sans);padding:.55em .9em;border-radius:var(--r);cursor:pointer;min-height:44px}
.menu-btn .bars{width:18px;height:2px;background:currentColor;position:relative}
.menu-btn .bars::before,.menu-btn .bars::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor}
.menu-btn .bars::before{top:-6px}.menu-btn .bars::after{top:6px}
.nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--slate);border-top:1px solid rgba(255,255,255,.12);max-height:calc(100vh - 4.75rem);overflow-y:auto;padding:var(--s2) var(--s3) var(--s4)}
.nav.open{display:block}
.nav ul{list-style:none;margin:0;padding:0}
.nav li{margin:0}
.nav a,.nav-top{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;color:var(--on-slate);text-decoration:none;font:600 1.0625rem var(--sans);background:none;border:0;padding:.5rem 0;cursor:pointer;text-align:left}
.nav > ul > li{border-bottom:1px solid rgba(255,255,255,.1)}
.nav-top::after{content:"";width:8px;height:8px;border-right:2px solid var(--gold-light);border-bottom:2px solid var(--gold-light);transform:rotate(45deg);margin:0 .4rem .3rem}
.nav-top[aria-expanded="true"]::after{transform:rotate(-135deg);margin-bottom:-.2rem}
.sub{display:none;padding:0 0 var(--s2) var(--s2)!important}
.nav-top[aria-expanded="true"] + .sub{display:block}
.sub a{font-weight:400;min-height:44px}
.nav a:hover,.nav-top:hover{color:var(--gold-light)}
.nav a[aria-current="page"]{color:var(--gold-light)}
.nav .guide-link{color:var(--gold-light)}
@media (min-width:1080px){
  .menu-btn{display:none}
  .nav{display:block;position:static;background:none;border:0;padding:0;max-height:none;overflow:visible}
  .nav > ul{display:flex;align-items:center;gap:.15rem}
  .nav > ul > li{position:relative;border:0}
  .nav a,.nav-top{width:auto;padding:.4rem .7rem;font-size:1rem;min-height:44px}
  .nav-top::after{width:6px;height:6px;margin:0 0 .25rem .5rem}
  .sub{position:absolute;top:100%;left:0;min-width:15rem;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:0 0 var(--r) var(--r);padding:var(--s1) 0!important}
  .nav > ul > li:hover > .sub,.nav > ul > li:focus-within > .sub{display:block}
  .sub a{color:var(--ink);padding:.45rem 1.1rem;min-height:40px}
  .sub a:hover,.sub a[aria-current="page"]{color:var(--clay);background:var(--paper)}
  .nav .guide-link{border:1px solid var(--gold);border-radius:var(--r);margin-left:.5rem;color:var(--on-slate)}
  .nav .guide-link:hover{background:var(--gold);color:var(--slate-deep)}
}
@media (min-width:1080px) and (max-width:1240px){.brand img{width:160px}.nav a,.nav-top{padding:.4rem .5rem}}

/* sections */
.section{padding:var(--s5) 0}
.section.tight{padding:var(--s4) 0}
.on-slate{background:var(--slate);color:var(--on-slate)}
.on-slate h1,.on-slate h2,.on-slate h3{color:var(--on-slate)}
.on-mist{background:var(--mist)}
.on-white{background:var(--white)}
.rule-gold{width:3.5rem;height:2px;background:var(--gold);border:0;margin:0 0 var(--s3)}

/* home opening */
.opening{background:var(--slate);color:var(--on-slate);padding:var(--s4) 0 var(--s5);overflow:hidden}
.opening .wrap{display:grid;gap:var(--s4);align-items:center}
.opening h1{color:var(--on-slate);font-size:clamp(2.4rem,6vw,4rem);margin-bottom:var(--s2)}
.opening .sub-head{font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,2.4vw,1.6rem);color:var(--gold-light);margin-bottom:var(--s3)}
.opening p{color:var(--on-slate-muted);max-width:34rem}
.opening .call{display:block;font-family:var(--serif);font-size:1.6rem;color:var(--on-slate);text-decoration:none;margin-top:var(--s1)}
.opening .call small{display:block;font-family:var(--sans);font-size:.95rem;color:var(--on-slate-muted);letter-spacing:.02em}
.opening .call:hover{color:var(--gold-light)}
.faces{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:0;padding:0;list-style:none}
.faces li{margin:0;position:relative;aspect-ratio:1;overflow:hidden;background:#111}
.faces img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.faces li:nth-child(n+7){display:none}
.faces .tag{position:absolute;left:0;right:0;bottom:0;padding:.9rem .5rem .35rem;font-size:.8125rem;line-height:1.25;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.75))}
@media (min-width:860px){
  .opening{padding:var(--s5) 0}
  .opening .wrap{grid-template-columns:1fr 1.05fr;gap:var(--s5)}
  .faces li:nth-child(n+7){display:block}
}

/* two questions */
.two-q{display:grid;gap:var(--s4)}
.two-q > div{padding-top:var(--s1)}
.two-q h2{font-size:clamp(1.6rem,3vw,2rem);margin-bottom:var(--s1)}
.two-q .phones{list-style:none;padding:0;margin:var(--s2) 0 0}
.two-q .phones li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;border-top:1px solid var(--line);padding:.6rem 0;margin:0}
.two-q .phones a{font-family:var(--serif);font-size:1.25rem;text-decoration:none}
@media (min-width:760px){.two-q{grid-template-columns:1fr 1fr;gap:0}.two-q > div{padding:0 var(--s4)}.two-q > div:first-child{padding-left:0;border-right:1px solid var(--line)}.two-q > div:last-child{padding-right:0}}

/* welcome + video */
.welcome{display:grid;gap:var(--s4);align-items:center}
.film{position:relative;margin:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--slate);aspect-ratio:16/9}
.film video{width:100%;height:100%;object-fit:cover}
.film-btn{position:absolute;right:.75rem;bottom:.75rem;min-width:44px;min-height:44px;border-radius:var(--r);border:1px solid rgba(255,255,255,.6);background:rgba(42,51,55,.75);color:#fff;font:600 .9375rem var(--sans);padding:.4rem .8rem;cursor:pointer}
.film-btn:hover{background:var(--slate-deep)}
@media (min-width:900px){.welcome{grid-template-columns:5fr 7fr;gap:var(--s5)}}

/* obituaries strip */
.obit-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--s2);margin-bottom:var(--s3)}
.obit-head h2{margin:0}
[data-hp-obituaries]{--hp-ob-accent:#9a573f;min-height:12rem}

/* lineage ledger (the detail) */
.lineage{display:grid;gap:var(--s4)}
.lineage .big{font-family:var(--serif);font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1.3;color:var(--on-slate);margin:0}
.lineage .big em{color:var(--gold-light)}
.ledger{list-style:none;margin:0;padding:0;border-top:1px solid rgba(214,178,74,.45)}
.ledger li{display:grid;grid-template-columns:4.5rem 1fr;gap:var(--s2);padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.12);margin:0}
.ledger .yr{font-family:var(--serif);font-size:1.5rem;line-height:1.2;color:var(--gold)}
.ledger strong{font-family:var(--serif);font-weight:400;color:var(--on-slate);font-size:1.15rem}
.ledger span{display:block;color:var(--on-slate-muted);font-size:1rem;line-height:1.5}
@media (min-width:900px){.lineage{grid-template-columns:5fr 7fr;gap:var(--s5);align-items:start}.lineage .intro{position:sticky;top:7rem}}
/* ledger on light pages */
.ledger.light{border-top-color:var(--gold)}
.ledger.light li{border-bottom-color:var(--line)}
.ledger.light .yr{color:var(--gold-ink)}
.ledger.light strong{color:var(--slate)}
.ledger.light span{color:var(--muted)}

/* services index */
.index{list-style:none;padding:0;margin:var(--s3) 0 0;border-top:1px solid var(--slate)}
.index li{margin:0;border-bottom:1px solid var(--line)}
.index a{display:grid;grid-template-columns:1fr auto;gap:.25rem var(--s3);padding:var(--s3) 0;text-decoration:none;color:var(--ink)}
.index .name{font-family:var(--serif);font-size:clamp(1.45rem,2.6vw,1.9rem);color:var(--slate);line-height:1.2}
.index .desc{grid-column:1;color:var(--muted)}
.index .go{grid-row:1/span 2;grid-column:2;align-self:center;color:var(--clay);font-size:1.5rem;transition:transform .2s}
.index a:hover .name{color:var(--clay)}
.index a:hover .go{transform:translateX(6px)}
@media (min-width:860px){.index a{grid-template-columns:16rem 1fr auto}.index .desc{grid-column:2;grid-row:1;align-self:center}.index .go{grid-column:3;grid-row:1}}

/* quotes */
.quote{margin:0;max-width:52rem}
.quote blockquote{margin:0;font-family:var(--serif);font-size:clamp(1.35rem,2.6vw,1.85rem);line-height:1.45;color:var(--slate)}
.quote blockquote::before{content:"\201C";display:block;font-size:4.5rem;line-height:.6;color:var(--gold);margin-bottom:var(--s2)}
.quote figcaption{margin-top:var(--s3);font-weight:600;color:var(--muted)}
.quote figcaption::before{content:"";display:inline-block;width:2rem;height:1px;background:var(--gold);vertical-align:middle;margin-right:.75rem}
.quote-small{margin:var(--s4) 0 0;padding-top:var(--s3);border-top:1px solid var(--line);max-width:40rem}
.quote-small blockquote{margin:0;font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--slate)}
.quote-small figcaption{margin-top:var(--s1);color:var(--muted);font-size:1rem}
.pull{margin:var(--s4) 0;padding:var(--s1) 0 var(--s1) var(--s3);border-left:3px solid var(--gold);font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,1.6rem);line-height:1.45;color:var(--slate)}

/* plan ahead */
.plan{display:grid;gap:var(--s4)}
.benefits{list-style:none;padding:0;margin:var(--s3) 0 0;counter-reset:b}
.benefits li{counter-increment:b;position:relative;padding:0 0 var(--s3) 3.25rem;margin:0}
.benefits li::before{content:counter(b);position:absolute;left:0;top:-.15rem;font-family:var(--serif);font-size:2rem;color:var(--gold-ink);line-height:1}
.benefits h3{font-size:1.3rem;margin-bottom:.25rem}
.benefits p{color:var(--muted);margin:0}
.shelf{list-style:none;padding:0;margin:0 0 var(--s4);border-top:1px solid var(--line)}
.shelf li{margin:0;border-bottom:1px solid var(--line)}
.shelf a{display:flex;justify-content:space-between;align-items:center;min-height:52px;text-decoration:none;font-weight:600;color:var(--slate)}
.shelf a::after{content:"\2192";color:var(--clay)}
.shelf a:hover{color:var(--clay)}
.guide-panel{background:var(--slate);color:var(--on-slate);border-top:3px solid var(--gold);border-radius:var(--r);padding:var(--s4) var(--s3)}
.guide-panel h3{color:var(--on-slate);font-size:1.45rem}
.guide-panel p{color:var(--on-slate-muted)}
.guide-panel .btn{background:var(--gold);border-color:var(--gold);color:var(--slate-deep)}
.guide-panel .btn:hover{background:var(--gold-light);border-color:var(--gold-light)}
@media (min-width:900px){.plan{grid-template-columns:7fr 5fr;gap:var(--s5)}}

/* nero note */
.note{display:grid;gap:var(--s3);align-items:center;max-width:52rem}
.note img{width:100%;max-width:220px;border-radius:var(--r);border:1px solid var(--line)}
@media (min-width:640px){.note{grid-template-columns:220px 1fr;gap:var(--s4)}}

/* page heads (vary by page) */
.head-paper{padding:var(--s5) 0 var(--s4)}
.head-paper .rule-gold{margin-bottom:var(--s2)}
.head-paper h1{max-width:20ch}
.head-slate{background:var(--slate);color:var(--on-slate);padding:var(--s5) 0}
.head-slate h1{color:var(--on-slate)}
.head-slate .lead{color:var(--on-slate-muted)}
.head-photo{padding:var(--s4) 0 var(--s4)}
.head-photo .wrap{display:grid;gap:var(--s4);align-items:end}
.head-photo figure{margin:0}
.head-photo img{width:100%;border-radius:var(--r);border:1px solid var(--line)}
@media (min-width:900px){.head-photo .wrap{grid-template-columns:5fr 7fr;gap:var(--s5);align-items:center}}
.crumb{font-size:.95rem;margin-bottom:var(--s2);color:var(--muted)}
.crumb a{color:inherit}
.head-slate .crumb{color:var(--on-slate-muted)}

/* article */
.article{max-width:var(--measure)}
.article h2{margin-top:var(--s5)}
.article h2:first-child{margin-top:0}
.article h3{margin-top:var(--s4)}
.article ul li::marker{color:var(--gold-ink)}
.with-aside{display:grid;gap:var(--s4)}
.aside{align-self:start}
.aside-box{border-top:3px solid var(--gold);background:var(--white);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:var(--r);padding:var(--s3)}
.aside-box h2{font-size:1.4rem}
.aside-box p{font-size:1rem}
@media (min-width:980px){.with-aside{grid-template-columns:minmax(0,1fr) 20rem;gap:var(--s5)}.aside{position:sticky;top:7rem}}

/* timeline (where to begin) */
.steps{list-style:none;padding:0;margin:0;border-left:2px solid var(--gold);counter-reset:s}
.steps > li{position:relative;padding:0 0 var(--s4) var(--s4);margin:0;counter-increment:s}
.steps > li::before{content:counter(s);position:absolute;left:-1.05rem;top:0;width:2rem;height:2rem;border-radius:50%;background:var(--slate);color:var(--on-slate);font-family:var(--serif);display:grid;place-items:center;font-size:1rem}
.steps h2{margin-top:0;font-size:clamp(1.5rem,3vw,2rem)}

/* checklists */
.checks{list-style:none;padding:0;columns:1}
.checks li{position:relative;padding-left:2rem;break-inside:avoid}
.checks li::before{content:"";position:absolute;left:0;top:.35em;width:1.05rem;height:1.05rem;border:1.5px solid var(--slate);border-radius:2px}
@media (min-width:700px){.checks.two{columns:2;column-gap:var(--s4)}}

/* grids of things */
.cols{display:grid;gap:var(--s4)}
@media (min-width:760px){.cols.c2{grid-template-columns:1fr 1fr}.cols.c3{grid-template-columns:repeat(3,1fr)}}
.tip h3{font-size:1.3rem;margin-bottom:.35rem}
.tip p{color:var(--muted)}
.tips{display:grid;gap:var(--s3) var(--s4)}
@media (min-width:760px){.tips{grid-template-columns:1fr 1fr}}
.tips .tip{border-top:1px solid var(--line);padding-top:var(--s2)}

/* staff */
.people{list-style:none;padding:0;margin:var(--s3) 0 var(--s5);display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3) var(--s2)}
@media (min-width:640px){.people{grid-template-columns:repeat(3,1fr)}}
@media (min-width:980px){.people{grid-template-columns:repeat(4,1fr);gap:var(--s4) var(--s3)}}
.people li{margin:0}
.people figure{margin:0}
.people img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;background:#111;border-radius:var(--r)}
.people .who{font-family:var(--serif);font-size:1.2rem;color:var(--slate);margin:.75rem 0 .1rem;line-height:1.25}
.people .role{font-size:.95rem;color:var(--muted);line-height:1.4;margin:0}
.people .mail{font-size:.95rem;word-break:break-all;display:inline-block;min-height:28px;padding-top:.2rem}
.people details{margin-top:.4rem;font-size:1rem}
.people summary{cursor:pointer;color:var(--clay);font-weight:600;min-height:32px;display:flex;align-items:center}
.people details p{color:var(--ink);font-size:1rem}
.bios{display:grid;gap:var(--s5)}
.bio{display:grid;gap:var(--s3)}
.bio img{width:100%;max-width:260px;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;border-radius:var(--r);background:#111}
.bio .role{color:var(--gold-ink);font-weight:600;margin-bottom:var(--s1)}
.bio a.mail{display:inline-block;margin-bottom:var(--s2)}
@media (min-width:760px){.bio{grid-template-columns:260px 1fr;gap:var(--s4)}.bio .text{max-width:var(--measure)}}
.memoriam{border-top:1px solid var(--line);padding-top:var(--s4)}

/* testimonials */
.reviews{columns:1;column-gap:var(--s4)}
@media (min-width:860px){.reviews{columns:2}}
.review{break-inside:avoid;margin:0 0 var(--s4);padding-top:var(--s2);border-top:1px solid var(--line)}
.review blockquote{margin:0;font-size:1.0625rem}
.review figcaption{margin-top:var(--s1);font-family:var(--serif);color:var(--slate)}
.review figcaption span{display:block;font-family:var(--sans);font-size:.95rem;color:var(--muted)}

/* gallery */
.gallery{list-style:none;padding:0;margin:var(--s3) 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s1)}
@media (min-width:700px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1000px){.gallery.four{grid-template-columns:repeat(4,1fr)}}
.gallery li{margin:0}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.gallery figcaption{font-size:.9rem;color:var(--muted);padding-top:.3rem}
.place{display:grid;gap:var(--s3);padding:var(--s5) 0;border-top:1px solid var(--line)}
.place:first-of-type{border-top:0;padding-top:0}
.place address{font-style:normal}
@media (min-width:900px){.place .meta{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}}

/* locations (contact) */
.locs{list-style:none;padding:0;margin:0;display:grid;gap:var(--s3)}
@media (min-width:760px){.locs{grid-template-columns:repeat(3,1fr)}}
.locs li{margin:0;border-top:3px solid var(--slate);padding-top:var(--s2)}
.locs h3{font-size:1.35rem;margin-bottom:.35rem}
.locs address{font-style:normal;color:var(--muted)}
.locs .tel{font-family:var(--serif);font-size:1.25rem;text-decoration:none;display:inline-block;margin:.4rem 0}

/* faq */
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--slate)}
.faq summary{cursor:pointer;list-style:none;padding:var(--s2) 2.5rem var(--s2) 0;position:relative;font-family:var(--serif);font-size:1.2rem;color:var(--slate);min-height:48px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.25rem;top:50%;transform:translateY(-50%);font-family:var(--sans);font-size:1.6rem;color:var(--clay)}
.faq details[open] summary::after{content:"\2212"}
.faq summary:hover{color:var(--clay)}
.faq .answer{padding:0 0 var(--s3);max-width:var(--measure)}

/* resource list */
.res{list-style:none;padding:0;margin:0 0 var(--s4)}
.res li{border-top:1px solid var(--line);padding:var(--s2) 0;margin:0}
.res a{font-weight:600}
.res p{margin:.25rem 0 0;color:var(--muted);font-size:1rem}

/* forms */
.form{display:grid;gap:var(--s2);max-width:40rem}
.form .row{display:grid;gap:var(--s2)}
@media (min-width:600px){.form .row{grid-template-columns:1fr 1fr}.form .row.three{grid-template-columns:2fr 1fr 1fr}}
.form label{display:block;font-weight:600;font-size:1rem;margin-bottom:.3rem;color:var(--slate)}
.form .hint{display:block;font-weight:400;color:var(--muted);font-size:.95rem}
.form input,.form textarea,.form select{width:100%;font:inherit;font-size:1.0625rem;padding:.7rem .8rem;border:1px solid #9aa9ad;border-radius:var(--r);background:var(--white);color:var(--ink);min-height:48px}
.form textarea{min-height:9rem;resize:vertical}
.form input:focus,.form textarea:focus{outline:3px solid var(--gold);outline-offset:1px;border-color:var(--slate)}
.form .btn{justify-self:start}
.form-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4) var(--s3)}
@media (min-width:700px){.form-panel{padding:var(--s4)}}

/* footer */
.site-footer{background:var(--slate-deep);color:var(--on-slate-muted);padding:var(--s5) 0 var(--s3);font-size:1rem}
.site-footer a{color:var(--on-slate)}
.site-footer a:hover{color:var(--gold-light)}
.f-locs{list-style:none;padding:0;margin:0 0 var(--s4);display:grid;gap:var(--s3)}
@media (min-width:760px){.f-locs{grid-template-columns:repeat(3,1fr)}}
.f-locs li{margin:0;padding-top:var(--s2);border-top:1px solid var(--gold)}
.f-locs h2{font-size:1.4rem;color:var(--on-slate);margin-bottom:.4rem}
.f-locs address{font-style:normal;line-height:1.55}
.f-locs .tel{display:inline-block;font-family:var(--serif);font-size:1.3rem;text-decoration:none;margin:.5rem 0 .2rem}
.f-locs .map{display:inline-flex;min-height:32px;align-items:center}
.f-menus{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3);padding:var(--s4) 0;border-top:1px solid rgba(255,255,255,.12)}
@media (min-width:760px){.f-menus{grid-template-columns:repeat(4,1fr)}}
.f-menus h2{font-family:var(--sans);font-size:.875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);font-weight:600;margin-bottom:var(--s1)}
.f-menus ul{list-style:none;padding:0;margin:0}
.f-menus li{margin:0}
.f-menus a{display:inline-flex;min-height:36px;align-items:center;text-decoration:none}
.f-base{display:flex;flex-wrap:wrap;gap:var(--s3);justify-content:space-between;align-items:center;padding-top:var(--s3);border-top:1px solid rgba(255,255,255,.12)}
.f-base img{width:170px;height:auto}
.f-base .social{display:flex;gap:var(--s2)}
.f-base .social a{display:inline-flex;min-height:44px;align-items:center}
.f-small{font-size:.9375rem;margin:var(--s3) 0 var(--s2);display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
.f-small p{margin:0}

/* definition lists (service options, pricing, veterans) */
.defs{margin:var(--s2) 0 var(--s3)}
.defs dt{font-family:var(--serif);font-size:1.2rem;color:var(--slate);margin-top:var(--s3);padding-top:var(--s2);border-top:1px solid var(--line)}
.defs dd{margin:.35rem 0 0}
.index.static li{display:grid;gap:.35rem var(--s3);padding:var(--s3) 0}
@media (min-width:860px){.index.static li{grid-template-columns:16rem 1fr}}

/* 404 */
.lost{padding:var(--s6) 0}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.topbar,.site-header,.site-footer,.no-print{display:none!important}body{background:#fff}.checks li::before{border-color:#000}}
