
:root{
  --ink:#1c241e;
  --muted:#5c675f;
  --paper:#f4efe6;
  --card:#fffdf8;
  --pine:#2c4a3e;
  --pine-dark:#1a2f28;
  --rust:#b85c38;
  --line:#e2d8c8;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  font-family:"Segoe UI", "Helvetica Neue", sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
}
h1,h2,h3{font-family:Georgia, "Iowan Old Style", serif; font-weight:500; letter-spacing:-0.02em; line-height:1.2}
.site-header{background:var(--pine-dark); color:#f4efe6; position:sticky; top:0; z-index:5}
.site-header .bar{max-width:1100px; margin:0 auto; padding:1rem 1.5rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap}
.brand{color:#f4efe6; text-decoration:none; font-family:Georgia,serif; font-size:1.35rem}
.brand span{opacity:.7; font-size:.85rem}
nav a{color:#e8e0d4; text-decoration:none; margin-left:1.1rem; font-size:.95rem}
nav a:hover{color:#fff}
.hero{
  min-height:58vh;
  background: linear-gradient(180deg, rgba(26,47,40,.35), rgba(26,47,40,.72)), url("/images/hero.jpg") center/cover no-repeat;
  color:#fffdf8;
  display:flex; align-items:flex-end;
}
.hero-inner{max-width:1100px; margin:0 auto; padding:4.5rem 1.5rem 3rem}
.hero .eyebrow{text-transform:uppercase; letter-spacing:.16em; font-size:.75rem; opacity:.85}
.hero h1{font-size:clamp(2rem, 4vw, 3.4rem); max-width:16ch; margin:.4rem 0 1rem}
.hero p{max-width:38rem; font-size:1.15rem}
.cta{display:inline-block; margin:.4rem 1rem 0 0; padding:.7rem 1.15rem; background:var(--rust); color:#fff; text-decoration:none; border-radius:2px}
.cta.ghost{background:transparent; border:1px solid #fff}
.band{max-width:1100px; margin:0 auto; padding:3.2rem 1.5rem}
.band.wide{max-width:none; padding:0}
.band h2{font-size:1.9rem; margin:0 0 1rem}
.split{display:grid; grid-template-columns:1.1fr .9fr; gap:2rem; align-items:center}
@media (max-width:800px){.split{grid-template-columns:1fr}}
.photo{width:100%; height:auto; display:block; border-radius:2px}
.caption{font-size:.8rem; color:var(--muted); margin:.45rem 0 0}
.grid{display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{background:var(--card); border:1px solid var(--line); padding:1.35rem 1.4rem; border-radius:3px}
.card h2,.card h3{margin-top:0}
.locale{
  background:url("/images/leaves.jpg") center/cover no-repeat;
  min-height:180px;
  display:flex; align-items:center;
}
.locale .inner{max-width:1100px; margin:0 auto; padding:2.5rem 1.5rem; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.45)}
.banner{
  min-height:220px;
  background: linear-gradient(180deg, rgba(26,47,40,.25), rgba(26,47,40,.55)), url("/images/chapin.jpg") center/cover no-repeat;
  color:#fff;
  display:flex; align-items:flex-end;
}
.banner .inner{max-width:1100px; margin:0 auto; padding:2.5rem 1.5rem}
.note{color:var(--muted); font-size:.95rem}
.form{background:var(--card); border:1px solid var(--line); padding:1.6rem; border-radius:3px}
label{display:block; margin:.75rem 0 .25rem; font-size:.9rem}
input,select,textarea{width:100%; padding:.65rem .7rem; border:1px solid var(--line); font:inherit; background:#fff; border-radius:2px}
textarea{min-height:6rem}
button{background:var(--pine); color:#fff; border:0; padding:.75rem 1.3rem; margin-top:1.1rem; cursor:pointer; font:inherit}
.site-footer{background:var(--pine-dark); color:#d9d1c4; padding:2rem 1.5rem; margin-top:2rem; font-size:.9rem}
.site-footer .credits{opacity:.75; font-size:.8rem; max-width:42rem}
.credits-list{font-size:.85rem; color:var(--muted)}
.credits-list li{margin:.4rem 0}
