/* Cabot Historical Society — shared antique stylesheet */
:root{
  --ink:#2b2318;
  --ink-soft:#4a3f2f;
  --parchment:#f4ecd8;
  --parchment-deep:#e9dcc0;
  --cream:#fbf6ea;
  --gold:#3f5f3a;
  --gold-deep:#2d452a;
  --rust:#8c3b2b;
  --rust-deep:#722f22;
  --navy:#1e3a5f;
  --navy-deep:#16293f;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:Georgia,'Times New Roman',serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 20% 10%, rgba(255,255,255,.4), transparent 40%),
    var(--parchment);
  line-height:1.65;
}
a{color:var(--rust)}
.wrap{max-width:1000px;margin:0 auto;padding:0 28px}
.narrow{max-width:760px}

/* ---- Top utility bar ---- */
.topbar{background:var(--navy);color:#f4ecd8;font-size:13px;letter-spacing:.04em}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;padding:8px 28px;flex-wrap:wrap;gap:6px}
.topbar a{color:#f4ecd8;text-decoration:none;border-bottom:1px dotted rgba(244,236,216,.5)}
.topbar a:hover{border-bottom-style:solid}

/* ---- Masthead ---- */
header.mast{text-align:center;padding:30px 0 8px;border-bottom:3px double var(--gold);background:var(--cream)}
.crest{font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
header.mast h1{font-size:40px;font-weight:400;letter-spacing:.03em;line-height:1.1;font-variant:small-caps}
header.mast h1 a{color:var(--ink);text-decoration:none}
.estab{font-style:italic;color:var(--ink-soft);margin-top:5px;font-size:15px}

/* ---- Navigation ---- */
nav.main{background:var(--cream);border-bottom:3px double var(--gold)}
nav.main ul{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:2px}
nav.main a{display:block;padding:13px 24px;text-decoration:none;color:var(--ink);
  font-variant:small-caps;letter-spacing:.08em;font-size:17px}
nav.main a:hover{color:var(--rust)}
nav.main a.active{color:var(--rust);border-bottom:3px solid var(--rust);margin-bottom:-3px}
nav.main li.donate a{background:var(--rust);color:var(--cream);margin:7px 4px;border-radius:2px;box-shadow:0 1px 0 rgba(0,0,0,.2)}
nav.main li.donate a:hover{background:var(--rust-deep);color:#fff}

/* ---- Page hero (interior banner) ---- */
.page-hero{
  position:relative;text-align:center;color:#f6efdd;padding:52px 20px;
  background:linear-gradient(rgba(30,22,12,.55),rgba(30,22,12,.6)),
    url('https://images.unsplash.com/photo-1500382017468-9049fed747ef?auto=format&fit=crop&w=1600&q=70');
  background-size:cover;background-position:center;border-bottom:6px solid var(--gold-deep);
}
.page-hero h2{font-size:34px;font-weight:400;font-variant:small-caps;letter-spacing:.04em}
.page-hero p{font-style:italic;font-size:17px;margin-top:6px;color:#efe6d0}

/* ---- Content ---- */
main{padding:52px 0}
.section-title{text-align:center;margin:0 0 30px}
.section-title h3{display:inline-block;font-size:27px;font-weight:400;font-variant:small-caps;letter-spacing:.04em}
.section-title:before{content:"";display:block;width:52%;max-width:360px;height:1px;background:var(--gold);margin:0 auto 16px}
.prose p{font-size:18px;color:var(--ink-soft);margin-bottom:20px}
.prose h4{font-size:21px;font-weight:400;font-variant:small-caps;letter-spacing:.03em;color:var(--ink);margin:30px 0 10px}
.lead{font-size:20px !important;color:var(--ink) !important}
.lead:first-letter{font-size:56px;float:left;line-height:.8;padding:6px 10px 0 0;color:var(--rust);font-weight:700}

/* callout / info box */
.card{background:var(--cream);border:1px solid var(--parchment-deep);padding:26px 28px;
  box-shadow:2px 3px 0 rgba(138,109,59,.12);margin:24px 0}
.card h4{font-size:20px;font-weight:400;font-variant:small-caps;letter-spacing:.03em;margin-bottom:12px}
dl.info{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;font-size:17px}
dl.info dt{color:var(--gold-deep);font-style:italic}
dl.info dd{color:var(--ink)}

.btn{display:inline-block;padding:12px 28px;text-decoration:none;font-variant:small-caps;
  letter-spacing:.08em;font-size:17px;border-radius:2px;background:var(--rust);color:var(--cream);
  border:1px solid var(--rust-deep)}
.btn:hover{background:var(--rust-deep);color:#fff}
.btn-gold{background:var(--gold-deep);border-color:var(--gold-deep)}
.center{text-align:center}

/* home hero + ghost button + donate band */
.home-hero{padding:104px 20px}
.home-hero h2{font-size:42px}
.home-hero .cta{margin-top:24px}
.btn-ghost{background:transparent;color:#f6efdd;border:1px solid rgba(246,239,221,.75)}
.btn-ghost:hover{background:rgba(246,239,221,.12);color:#fff}
.mission{background:var(--cream);border-top:1px solid var(--parchment-deep);border-bottom:1px solid var(--parchment-deep)}
.band{background:var(--gold-deep);color:var(--cream);text-align:center;padding:58px 20px;
  border-top:6px solid var(--gold);border-bottom:6px solid var(--gold)}
.band h3{font-size:29px;font-weight:400;font-variant:small-caps;letter-spacing:.04em;margin-bottom:12px}
.band p{max-width:620px;margin:0 auto 24px;font-size:18px;color:#f0e6cd;font-style:italic}

/* footer brand block with seal */
footer .foot-brand{display:flex;gap:18px;align-items:flex-start}
footer .foot-logo{width:92px;height:92px;flex:0 0 92px;background:var(--cream);border-radius:50%;
  padding:9px;object-fit:contain;box-shadow:0 0 0 1px rgba(255,255,255,.08)}

/* article images + galleries */
.article img{max-width:100%;border:1px solid var(--parchment-deep);border-radius:2px}
.article figure{margin:24px 0}
.article figure img{width:100%}
.article figcaption{font-size:14px;color:var(--ink-soft);font-style:italic;margin-top:7px;text-align:center}
.article .gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:20px 0}
.article .gallery img{width:100%;height:150px;object-fit:cover}
.article .float-r{float:right;width:300px;max-width:42%;margin:6px 0 16px 22px}
.article h4{margin-top:34px}
.article .src{font-size:13.5px;color:var(--ink-soft);font-style:italic}
@media(max-width:640px){.article .float-r{float:none;width:100%;max-width:100%;margin:16px 0}}

/* antique benefits list */
ul.benefits{list-style:none;margin:6px 0 0}
ul.benefits li{padding:6px 0 6px 28px;position:relative;color:var(--ink-soft);font-size:17px}
ul.benefits li:before{content:"\276E\276F";position:absolute;left:0;color:var(--gold);font-size:14px}

/* membership tiers */
.price{font-size:34px;color:var(--rust);font-weight:400;letter-spacing:.02em}
.price small{display:block;font-size:13px;color:var(--ink-soft);font-style:italic;letter-spacing:0;margin-top:2px}

/* resource card grid */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid3 .card{margin:0;display:flex;flex-direction:column}
.grid3 .card p{font-size:15.5px;color:var(--ink-soft);margin-bottom:0}
.grid3 .card .go{margin-top:auto;padding-top:14px;color:var(--rust);font-style:italic;text-decoration:none}
.grid3 .card .go:hover{color:var(--rust-deep)}
.tag{display:inline-block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold-deep);border:1px solid var(--parchment-deep);border-radius:2px;padding:2px 8px;margin-bottom:10px}

/* two column */
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
.cols2 img{width:100%;border:1px solid var(--parchment-deep);filter:sepia(.2)}

/* ---- Contact form ---- */
form.contact{background:var(--cream);border:1px solid var(--parchment-deep);padding:30px;
  box-shadow:2px 3px 0 rgba(138,109,59,.12)}
form.contact label{display:block;font-variant:small-caps;letter-spacing:.05em;font-size:16px;
  color:var(--gold-deep);margin:16px 0 6px}
form.contact .req{color:var(--rust);font-style:normal}
form.contact input,form.contact textarea{
  width:100%;padding:11px 13px;font-family:inherit;font-size:16px;color:var(--ink);
  background:#fff;border:1px solid var(--parchment-deep);border-radius:2px}
form.contact input:focus,form.contact textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
form.contact textarea{min-height:150px;resize:vertical}
form.contact .hidden{position:absolute;left:-9999px}
form.contact .note{font-size:14px;color:var(--ink-soft);font-style:italic;margin-top:6px}
form.contact button{margin-top:22px;cursor:pointer}

/* ---- Footer ---- */
footer{background:var(--navy);color:#d8ccb2;padding:42px 0 24px;font-size:14.5px;margin-top:10px}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px;margin-bottom:24px}
footer h5{font-variant:small-caps;letter-spacing:.06em;font-size:16px;color:#e8dcbf;margin-bottom:10px;font-weight:400}
footer a{color:#d8ccb2;text-decoration:none}
footer a:hover{color:#fff}
footer p{margin-bottom:4px;color:#c3b596}
.foot-bar{border-top:1px solid rgba(255,255,255,.14);padding-top:16px;text-align:center;color:#9d906f;font-size:13px}

@media(max-width:820px){
  header.mast h1{font-size:30px}
  nav.main a{padding:11px 15px;font-size:15px}
  .grid3{grid-template-columns:1fr}
  .cols2{grid-template-columns:1fr}
  footer .cols{grid-template-columns:1fr}
  dl.info{grid-template-columns:1fr}
  dl.info dt{margin-top:8px}
}


/* ---- Site search: lens trigger + modal (Pagefind) ---- */
.search-trigger{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:none;border:0;cursor:pointer;padding:3px;color:inherit;font-family:inherit;line-height:0}
.search-trigger svg{width:17px;height:17px;display:block}
.search-trigger:hover{opacity:.68}
.search-trigger:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:2px}

/* header lens sits in the top utility bar, beside Contact Us */
.topbar .topbar-right{display:inline-flex;align-items:center;gap:15px}
.topbar .search-trigger{color:#f4ecd8}

/* footer lens, centered above the columns */
.foot-search{display:flex;justify-content:center;margin-bottom:28px;padding-bottom:22px;
  border-bottom:1px solid rgba(255,255,255,.14)}
.foot-search .search-trigger{color:#d8ccb2}
.foot-search .search-trigger svg{width:20px;height:20px}
.foot-search .search-trigger:hover{color:#fff;opacity:1}

/* search modal */
.search-modal{position:fixed;inset:0;z-index:1000;display:none}
.search-modal.is-open{display:block}
.search-modal__backdrop{position:absolute;inset:0;background:rgba(20,15,8,.55)}
.search-modal__panel{position:relative;max-width:640px;margin:9vh auto 0;background:var(--cream);
  border:1px solid var(--parchment-deep);border-top:5px solid var(--navy);
  box-shadow:0 20px 60px rgba(0,0,0,.35);padding:28px 30px 34px;border-radius:3px;
  max-height:82vh;overflow:auto}
.search-modal__title{font-weight:400;font-variant:small-caps;letter-spacing:.03em;font-size:22px;
  color:var(--ink);margin:0 0 16px;padding-right:26px}
.search-modal__close{position:absolute;top:6px;right:12px;background:none;border:0;cursor:pointer;
  font-size:30px;line-height:1;color:var(--ink-soft);font-family:Georgia,serif}
.search-modal__close:hover{color:var(--rust)}
@media(max-width:640px){
  .search-modal__panel{margin:0;max-width:100%;min-height:100%;max-height:100%;border-radius:0}
}
/* MiniSearch UI */
.ms-input{width:100%;box-sizing:border-box;font-family:Georgia,'Times New Roman',serif;
  font-size:17px;color:var(--ink);background:#fff;border:1px solid var(--parchment-deep);
  border-radius:3px;padding:11px 14px;outline:none}
.ms-input:focus{border-color:var(--navy);box-shadow:0 0 0 2px rgba(30,58,95,.15)}
.ms-status{font-size:13px;color:var(--ink-soft);font-style:italic;margin:10px 2px 4px;min-height:16px}
.ms-results{list-style:none;margin:0;padding:0}
.ms-result{border-top:1px solid var(--parchment-deep)}
.ms-result:first-child{border-top:0}
.ms-result a{display:block;text-decoration:none;color:var(--ink);padding:12px 6px}
.ms-result a:hover,.ms-result a:focus{background:var(--parchment)}
.ms-result__title{display:block;color:var(--navy);font-size:17px;font-variant:small-caps;
  letter-spacing:.02em;margin-bottom:3px}
.ms-result__page{display:block;font-size:12px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--rust);margin-bottom:3px}
.ms-result__snip{display:block;font-size:14px;line-height:1.5;color:var(--ink-soft)}
.ms-result__title mark,.ms-result__snip mark{background:#f6e6a8;color:inherit;padding:0 1px;border-radius:2px}
.search-attribution{margin-top:14px;text-align:right;font-size:11px;letter-spacing:.03em}
.search-attribution a{color:var(--ink-soft);text-decoration:none;opacity:.75}
.search-attribution a:hover{opacity:1}
.foot-social{margin-top:10px}
.foot-social a{display:inline-flex;align-items:center;gap:7px;color:#c3b596;font-size:14.5px}
.foot-social a:hover{color:#fff}
.foot-social svg{flex:0 0 auto}
