/* Kindred Roots Realty Group — brand stylesheet */
:root{
  --primary:#296D50; --dark:#1B3227; --headline:#1B2B22; --body:#4A554C;
  --sage-band:#EAEFE6; --paper:#FAF9F5; --white:#FFFFFF;
  --sage-accent:#9DB58A; --on-dark:#CFDAC6; --muted:#8DA083; --divider:#D3DCC9;
  --wrap:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--body);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--primary)}
h1,h2,h3,h4,.eyebrow{font-family:Jost,Inter,sans-serif;color:var(--headline);margin:0}
h1{font-size:clamp(2.1rem,5.2vw,3.5rem);font-weight:300;line-height:1.08;letter-spacing:0}
h2{font-size:clamp(1.65rem,3.6vw,2.375rem);font-weight:300;line-height:1.18}
h3{font-size:1.625rem;font-weight:400;line-height:1.3}
h4{font-size:1.125rem;font-weight:600;line-height:1.4}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.narrow{max-width:800px;margin-left:auto;margin-right:auto}
section{padding:80px 0}
@media(max-width:700px){section{padding:56px 0}}
.bg-paper{background:var(--paper)}.bg-white{background:var(--white)}
.bg-sage{background:var(--sage-band)}
.bg-dark{background:var(--dark)}
.bg-dark,.bg-dark p{color:var(--on-dark)}
.bg-dark h1,.bg-dark h2,.bg-dark h3{color:#F4F7F0}
.bg-dark .eyebrow{color:var(--sage-accent)}
.eyebrow{display:block;font-size:.8125rem;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--primary);margin-bottom:14px}
.lead{font-size:1.3125rem;line-height:1.6}
.center{text-align:center}
.center .narrow{text-align:center}
.caption{font-size:.8125rem;line-height:1.6;color:var(--muted)}
/* nav */
.nav{background:var(--paper);border-bottom:1px solid var(--divider);
  position:sticky;top:0;z-index:50}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;
  gap:24px;min-height:78px;flex-wrap:wrap}
.nav img{width:200px}
.nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.nav a{font-family:Jost,sans-serif;font-size:.9375rem;color:var(--headline);
  text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current=page]{border-bottom-color:var(--primary);color:var(--primary)}
@media(max-width:760px){.nav .wrap{min-height:0;padding-top:14px;padding-bottom:14px}
  .nav img{width:168px}.nav ul{gap:16px}.nav a{font-size:.875rem}}
/* buttons */
.btn{display:inline-block;font-family:Jost,sans-serif;font-size:.875rem;font-weight:500;
  letter-spacing:.08em;text-transform:none;padding:16px 32px;border-radius:2px;
  text-decoration:none;border:1px solid var(--primary);background:var(--primary);
  color:#fff;cursor:pointer;transition:opacity .15s}
.btn:hover{opacity:.88}
.btn-secondary{background:transparent;color:var(--dark);border-color:var(--dark)}
.bg-dark .btn{background:var(--sage-accent);border-color:var(--sage-accent);color:#14261D}
.btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.center .btns{justify-content:center}
/* grids */
.grid{display:grid;gap:44px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr}.grid{gap:32px}}
.card h4{margin-bottom:8px}
.card p{font-size:.9375rem;line-height:1.55}
.icon{width:44px;height:44px;border-radius:22px;background:var(--sage-band);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.bg-dark .icon{background:rgba(157,181,138,.16)}
.icon svg{width:22px;height:22px;stroke:var(--primary);fill:none;stroke-width:1.6}
.bg-dark .icon svg{stroke:var(--sage-accent)}
/* stats */
.stat{text-align:center}
.stat b{display:block;font-size:3.25rem;line-height:1;font-weight:800;color:var(--sage-accent)}
.stat span{display:block;font-size:.875rem;margin-top:10px;color:var(--on-dark)}
/* town cards */
.town h3{margin-bottom:2px}
.town .where{font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--primary)}
.town hr{border:0;border-top:1px solid var(--divider);margin:14px 0}
.town .figs{font-size:1rem;margin-bottom:10px}
/* accordion */
details{border-bottom:1px solid var(--divider)}
details summary{font-family:Jost,sans-serif;font-size:1.125rem;font-weight:600;
  color:var(--headline);padding:18px 0;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";color:var(--primary);font-size:1.4rem;line-height:1;flex:none}
details[open] summary::after{content:"\2013"}
details .body{padding:0 0 20px;font-size:1rem;line-height:1.6;max-width:70ch}
/* quote */
blockquote{margin:0;font-size:1.4375rem;font-weight:300;line-height:1.5;color:var(--headline)}
.attrib{font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin-top:18px}
/* form */
.formcard{background:var(--white);border:1px solid var(--divider);border-radius:4px;padding:32px;max-width:720px;margin:0 auto;text-align:left}
.bg-white .formcard{background:var(--paper)}
.field{margin-bottom:18px}
.field label{display:block;font-size:.875rem;font-weight:600;color:var(--headline);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;font:inherit;font-size:1rem;
  color:var(--headline);background:#fff;border:1px solid var(--divider);border-radius:3px}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--primary);outline-offset:1px}
.field textarea{min-height:110px;resize:vertical}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:600px){.f2{grid-template-columns:1fr}}
.formnote{font-size:.8125rem;color:var(--muted);margin-top:14px}
/* contact list */
.clist{list-style:none;margin:0;padding:0}
.clist li{display:flex;gap:16px;margin-bottom:28px}
.clist .icon{flex:none;margin-bottom:0}
.clist b{display:block;color:var(--headline);font-size:.9375rem}
.clist p{font-size:.9375rem;line-height:1.5;margin:2px 0 0}
/* footer */
footer{background:var(--dark);color:var(--on-dark);padding:64px 0 40px;font-size:.9375rem}
footer img{width:220px;margin-bottom:22px}
footer a{color:var(--on-dark)}
footer h4{color:#F4F7F0;font-size:.8125rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:9px}
.legal{border-top:1px solid rgba(207,218,198,.22);margin-top:44px;padding-top:26px;
  font-size:.8125rem;line-height:1.7;color:var(--muted)}
.legal strong{color:var(--on-dark)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:#fff;padding:10px 16px;z-index:100}
/* hero + mobile tuning */
.hero{padding-top:104px}
@media(max-width:760px){
  .hero{padding-top:52px;padding-bottom:48px}
  .lead{font-size:1.125rem}
  h1{letter-spacing:-.01em}
  .nav .wrap{gap:12px}
  .nav ul{gap:14px 18px}
  section{padding:48px 0}
  .formcard{padding:22px}
  footer{padding:48px 0 32px}
}
