:root{
  --navy: #0a2129;
  --navy-deep: #071820;
  --charcoal: #1c2a30;
  --slate: #5c6b70;
  --slate-light: #8b979b;
  --hairline: rgba(244,241,234,0.14);
  --gold: #c6a15b;
  --gold-soft: #d9bd85;
  --ivory: #f4f1ea;
  --ivory-dim: #cfd3d1;
  --max: 1080px;
  --serif: Georgia, "Iowan Old Style", "Palatino Linotype", Palatino, serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  background:var(--ivory);
  color:var(--charcoal);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block;}

.skip-link{
  position:absolute;
  left:-999px;
  top:0;
  background:var(--gold);
  color:var(--navy-deep);
  padding:0.75rem 1.25rem;
  z-index:100;
  font-weight:600;
  text-decoration:none;
}
.skip-link:focus{left:1rem; top:1rem;}

.visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}

.wrap{
  max-width:var(--max);
  margin:0 auto;
  padding:0 1.5rem;
}

a{color:inherit;}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

/* ---------- Top bar ---------- */
.topbar{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(10,33,41,0.96);
  border-bottom:1px solid var(--hairline);
}
.topbar .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:0.85rem;
  padding-bottom:0.85rem;
  gap:1.2rem;
}
.brand{
  display:flex;
  align-items:center;
  gap:0.6rem;
  color:var(--ivory);
  text-decoration:none;
  flex-shrink:0;
}
.brand svg{width:28px;height:28px;flex-shrink:0;}
.brand-name{
  font-size:0.78rem;
  letter-spacing:0.14em;
  font-weight:600;
  color:var(--ivory);
}
.topbar-nav{
  display:flex;
  align-items:center;
  gap:1.6rem;
  flex-grow:1;
}
.topbar-nav a{
  font-size:0.82rem;
  letter-spacing:0.03em;
  color:var(--ivory-dim);
  text-decoration:none;
}
.topbar-nav a:hover{color:var(--gold-soft);}
.topbar-actions{flex-shrink:0;}

.btn{
  display:inline-block;
  font-family:var(--sans);
  font-size:0.85rem;
  font-weight:600;
  letter-spacing:0.03em;
  text-decoration:none;
  padding:0.7rem 1.4rem;
  border-radius:2px;
  border:1px solid transparent;
  cursor:pointer;
  white-space:nowrap;
  transition:background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.btn-gold{
  background:var(--gold);
  color:var(--navy-deep);
}
.btn-gold:hover{background:var(--gold-soft);}
.btn-outline{
  background:transparent;
  border-color:var(--ivory);
  color:var(--ivory);
}
.btn-outline:hover{background:rgba(244,241,234,0.08);}
.btn-outline-dark{
  background:transparent;
  border-color:var(--navy);
  color:var(--navy);
}
.btn-outline-dark:hover{background:rgba(10,33,41,0.06);}
.btn-small{padding:0.55rem 1.1rem;font-size:0.78rem;}

/* ---------- Hero ---------- */
.hero{
  background:linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
  color:var(--ivory);
  min-height:calc(100svh - 61px);
  display:flex;
  align-items:center;
  padding:3.5rem 0;
}
.hero.hero-compact{min-height:auto;padding:4.4rem 0;}
.hero-inner{
  max-width:760px;
}
.hero-kicker{
  font-size:0.78rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-soft);
  margin:0 0 1.4rem;
  font-weight:600;
}
.hero h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(1.9rem, 4.4vw, 3rem);
  line-height:1.28;
  margin:0 0 1.5rem;
  color:var(--ivory);
}
.hero p.lede{
  font-size:1.05rem;
  color:var(--ivory-dim);
  max-width:52ch;
  margin:0 0 2.2rem;
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1.1rem;
}
.hero-actions .email-link{
  font-size:0.9rem;
  color:var(--ivory-dim);
  text-decoration:none;
  border-bottom:1px solid var(--slate);
}
.hero-actions .email-link:hover{color:var(--ivory);border-color:var(--gold);}

/* ---------- Sections ---------- */
section{padding:5rem 0;}
.section-charcoal{background:var(--charcoal);color:var(--ivory);}
.section-ivory{background:var(--ivory);color:var(--charcoal);}
.section-navy{background:var(--navy);color:var(--ivory);}

.eyebrow{
  font-size:0.75rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:700;
  margin:0 0 0.9rem;
}
h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(1.5rem, 3vw, 2rem);
  margin:0 0 1.2rem;
}
.section-lede{
  max-width:62ch;
  color:var(--slate);
  font-size:1rem;
  margin:0 0 2.6rem;
}
.section-charcoal .section-lede, .section-navy .section-lede{color:var(--ivory-dim);}

/* Approach grid */
.approach-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:2.2rem;
}
.approach-item{
  border-top:2px solid var(--gold);
  padding-top:1.2rem;
}
.approach-item h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:1.15rem;
  margin:0 0 0.6rem;
}
.approach-item p{
  color:var(--slate);
  font-size:0.94rem;
  margin:0;
}

/* What you get */
.offer-block{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
  align-items:start;
}
.offer-block p{
  font-size:1.02rem;
  color:var(--ivory-dim);
  margin:0 0 1rem;
}
.offer-block p:last-child{margin-bottom:0;}

/* Track record stats */
.stats-row{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:2rem;
  border-top:1px solid rgba(0,0,0,0.1);
  padding-top:2.6rem;
}
.stats-row.on-dark{border-top-color:rgba(244,241,234,0.14);}
.stat{text-align:left;}
.stat .num{
  font-family:var(--serif);
  font-size:clamp(1.8rem, 3.4vw, 2.4rem);
  color:var(--navy);
  display:block;
  margin-bottom:0.35rem;
}
.stat .label{
  font-size:0.82rem;
  letter-spacing:0.04em;
  color:var(--slate);
}
.stats-row.on-dark .stat .num{color:var(--ivory);}
.stats-row.on-dark .stat .label{color:var(--ivory-dim);}
.stat-source{
  margin-top:1.6rem;
  font-size:0.78rem;
  color:var(--slate-light);
}
.stat-source a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(198,161,91,0.4);}
.stat-source a:hover{border-color:var(--gold);}

/* ---------- Buy box form ---------- */
.form-shell{
  background:var(--navy);
  color:var(--ivory);
  border-radius:4px;
  padding:2.6rem;
  border:1px solid rgba(244,241,234,0.1);
}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.3rem 1.6rem;
}
.field{display:flex;flex-direction:column;gap:0.45rem;}
.field.full{grid-column:1 / -1;}
label{
  font-size:0.8rem;
  letter-spacing:0.03em;
  color:var(--ivory-dim);
}
label .opt{color:var(--slate-light);font-weight:400;}
input[type="text"],
input[type="email"],
input[type="tel"],
select,
textarea{
  font-family:var(--sans);
  font-size:0.95rem;
  padding:0.7rem 0.8rem;
  background:rgba(244,241,234,0.06);
  border:1px solid rgba(244,241,234,0.22);
  border-radius:2px;
  color:var(--ivory);
  width:100%;
}
input::placeholder, textarea::placeholder{color:var(--slate-light);}
textarea{resize:vertical;min-height:90px;}

fieldset{
  border:1px solid rgba(244,241,234,0.22);
  border-radius:2px;
  padding:0.9rem 1rem 1rem;
  margin:0;
}
fieldset legend{
  font-size:0.8rem;
  letter-spacing:0.03em;
  color:var(--ivory-dim);
  padding:0 0.3rem;
}
.checkbox-row{
  display:flex;
  flex-wrap:wrap;
  gap:0.9rem 1.4rem;
  margin-top:0.5rem;
}
.checkbox-row label{
  display:flex;
  align-items:center;
  gap:0.45rem;
  color:var(--ivory);
  font-size:0.9rem;
}
.checkbox-row input{width:auto;}

.form-submit-row{
  margin-top:1.8rem;
  display:flex;
  align-items:center;
  gap:1.2rem;
  flex-wrap:wrap;
}
.form-note{
  font-size:0.82rem;
  color:var(--slate-light);
  margin-top:1rem;
}

/* ---------- Photo banners ---------- */
.photo-banner{
  width:100%;
  aspect-ratio:21/8;
  overflow:hidden;
  background:var(--charcoal);
}
.photo-banner img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.photo-caption{
  font-size:0.78rem;
  color:var(--slate-light);
  text-align:center;
  padding:0.9rem 1.5rem 0;
  max-width:var(--max);
  margin:0 auto;
}
.section-ivory .photo-caption, .section-charcoal .photo-caption{color:var(--slate);}

.offer-block.with-image{
  grid-template-columns:1.1fr 0.9fr;
  align-items:stretch;
}
.offer-text{display:flex;flex-direction:column;justify-content:center;}
.offer-image{
  border-radius:2px;
  overflow:hidden;
  aspect-ratio:4/3;
}
.offer-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.report-photo{
  max-width:720px;
  margin-bottom:2.2rem;
}

/* ---------- Feature callout (homepage -> Westchester page) ---------- */
.feature-callout{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:2.5rem;
  align-items:center;
  background:var(--ivory);
  border:1px solid rgba(10,33,41,0.12);
  border-radius:4px;
  padding:2.4rem;
}
.feature-callout h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:1.4rem;
  margin:0 0 0.8rem;
  color:var(--charcoal);
}
.feature-callout p{
  color:var(--slate);
  font-size:0.98rem;
  margin:0 0 1.4rem;
}
.feature-callout-towns{
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem;
  justify-content:flex-start;
}
.town-chip{
  font-size:0.76rem;
  letter-spacing:0.03em;
  color:var(--navy);
  background:rgba(10,33,41,0.06);
  border:1px solid rgba(10,33,41,0.14);
  border-radius:20px;
  padding:0.4rem 0.85rem;
}

/* ---------- Sample report card ---------- */
.report-card{
  background:var(--ivory);
  color:var(--charcoal);
  border:1px solid rgba(10,33,41,0.14);
  border-radius:4px;
  max-width:720px;
  overflow:hidden;
}
.report-card-head{
  background:var(--navy);
  color:var(--ivory);
  padding:1.4rem 1.8rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
}
.report-card-head .rc-title{
  font-family:var(--serif);
  font-size:1.15rem;
}
.report-card-head .rc-tag{
  font-size:0.68rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--navy-deep);
  background:var(--gold-soft);
  padding:0.3rem 0.7rem;
  border-radius:2px;
  font-weight:700;
}
.report-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
}
.report-field{
  padding:1.1rem 1.8rem;
  border-bottom:1px solid rgba(10,33,41,0.1);
  border-right:1px solid rgba(10,33,41,0.1);
}
.report-field:nth-child(2n){border-right:none;}
.report-field .rf-label{
  font-size:0.7rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--slate);
  margin-bottom:0.35rem;
}
.report-field .rf-value{
  font-size:0.95rem;
  color:var(--charcoal);
}
.report-card-foot{
  padding:1rem 1.8rem;
  font-size:0.78rem;
  color:var(--slate);
  background:rgba(10,33,41,0.03);
}

/* ---------- Market signal cards ---------- */
.signal-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.6rem;
}
.signal-card{
  border:1px solid rgba(244,241,234,0.16);
  border-radius:4px;
  padding:1.6rem;
}
.signal-card .sc-num{
  font-family:var(--serif);
  font-size:1.9rem;
  color:var(--gold-soft);
  display:block;
  margin-bottom:0.5rem;
}
.signal-card p{
  font-size:0.9rem;
  color:var(--ivory-dim);
  margin:0;
}

/* ---------- Town grid ---------- */
.town-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.2rem;
}
.town-card{
  border:1px solid rgba(10,33,41,0.12);
  border-radius:4px;
  padding:1.2rem 1.3rem;
  background:var(--ivory);
}
.town-card .tc-name{
  font-family:var(--serif);
  font-size:1.05rem;
  margin-bottom:0.3rem;
  display:block;
}
.town-card .tc-note{
  font-size:0.82rem;
  color:var(--slate);
}

/* ---------- Footer ---------- */
footer{
  background:var(--navy-deep);
  color:var(--ivory-dim);
  padding:3rem 0 2.2rem;
}
.footer-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:2rem;
  padding-bottom:2rem;
  border-bottom:1px solid var(--hairline);
  margin-bottom:1.6rem;
}
.footer-brand{
  display:flex;
  align-items:center;
  gap:0.6rem;
}
.footer-brand svg{width:26px;height:26px;}
.footer-brand .name{
  font-size:0.78rem;
  letter-spacing:0.12em;
  color:var(--ivory);
  font-weight:600;
}
.footer-links{
  display:flex;
  gap:1.4rem;
  flex-wrap:wrap;
}
.footer-links a{
  font-size:0.82rem;
  color:var(--ivory-dim);
  text-decoration:none;
}
.footer-links a:hover{color:var(--gold-soft);}
footer .email-link{
  color:var(--gold-soft);
  text-decoration:none;
  font-size:0.95rem;
}
footer .email-link:hover{text-decoration:underline;}
.footer-bottom{
  font-size:0.78rem;
  color:var(--slate-light);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:0.6rem;
}

/* ---------- Responsive ---------- */
@media (max-width: 820px){
  .approach-grid{grid-template-columns:1fr;gap:1.8rem;}
  .offer-block{grid-template-columns:1fr;gap:1.6rem;}
  .stats-row{grid-template-columns:1fr;gap:1.6rem;}
  .form-grid{grid-template-columns:1fr;}
  section{padding:3.4rem 0;}
  .form-shell{padding:1.8rem;}
  .topbar-nav{display:none;}
  .feature-callout{grid-template-columns:1fr;padding:1.8rem;}
  .report-fields{grid-template-columns:1fr;}
  .report-field{border-right:none;}
  .signal-grid{grid-template-columns:1fr;}
  .town-grid{grid-template-columns:repeat(2, 1fr);}
  .offer-block.with-image{grid-template-columns:1fr;}
  .photo-banner{aspect-ratio:4/3;}
}

@media (max-width: 460px){
  .topbar .wrap{flex-wrap:wrap; row-gap:0.7rem;}
  .brand-name{font-size:0.7rem;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}
