:root{
  --forest:#142C1E;
  --forest-soft:#1E3A29;
  --sage:#B2C9AC;
  --sage-light:#E4EDE0;
  --blush:#F7D7E6;
  --cream:#FDFBF8;
  --cream-dark:#F4EFE7;
  --ink:#22302A;
  --muted:#5C6B62;
  --line:#DCE5D8;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--forest);text-underline-offset:2px}
img{max-width:100%;display:block}

/* ---------- hero ---------- */
.hero{background:var(--cream);border-bottom:1px solid var(--line)}
.hero-inner{
  max-width:1080px;margin:0 auto;padding:64px 28px 60px;
  display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;
}
.brand-line{
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin-bottom:22px;
}
.brand-dot{width:5px;height:5px;border-radius:50%;background:var(--sage);display:inline-block}
.hero h1{
  font-family:Georgia,"Times New Roman",serif;font-weight:400;
  font-size:clamp(34px,5vw,52px);line-height:1.12;color:var(--forest);letter-spacing:.01em;
}
.hero-sub{margin-top:16px;font-size:17px;color:var(--muted);max-width:44ch}
.hero-ctas{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap}
.btn{
  display:inline-block;padding:13px 26px;border-radius:999px;
  font-size:15px;font-weight:600;text-decoration:none;letter-spacing:.01em;
  transition:transform .15s ease,box-shadow .15s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--forest);color:var(--cream);box-shadow:0 6px 18px rgba(20,44,30,.22)}
.btn-ghost{background:transparent;color:var(--forest);border:1.5px solid var(--forest)}
.hero-photo{position:relative}
.hero-photo img{
  width:100%;height:auto;border-radius:18px;object-fit:cover;
  box-shadow:0 18px 44px rgba(20,44,30,.18);
}
.hero-photo figcaption{
  margin-top:12px;text-align:center;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);
}

/* ---------- sections ---------- */
main{max-width:1080px;margin:0 auto;padding:0 28px}
section{padding:56px 0 8px}
.section-head{margin-bottom:26px}
.tag{
  display:inline-block;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--forest);background:var(--sage-light);border:1px solid var(--sage);
  padding:5px 12px;border-radius:999px;margin-bottom:14px;
}
h2{
  font-family:Georgia,"Times New Roman",serif;font-weight:400;
  font-size:clamp(24px,3.2vw,32px);color:var(--forest);line-height:1.2;
}
.section-sub{margin-top:10px;color:var(--muted);max-width:62ch}

/* shortcut tiles */
.tile-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tile{
  display:flex;flex-direction:column;gap:6px;
  background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:18px 18px 16px;text-decoration:none;color:var(--ink);
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.tile:hover{border-color:var(--sage);box-shadow:0 8px 22px rgba(20,44,30,.10);transform:translateY(-2px)}
.tile-name{font-family:Georgia,serif;font-size:17px;color:var(--forest)}
.tile-desc{font-size:13px;color:var(--muted);line-height:1.45;flex:1}
.tile-open{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--forest);margin-top:8px}

/* calendar actions + embed */
.cal-actions{margin-bottom:20px}
.cal-embed{
  background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;
  box-shadow:0 10px 28px rgba(20,44,30,.08);
}
.cal-embed iframe{width:100%;height:560px;display:block}

/* cards */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.card{
  display:flex;flex-direction:column;gap:8px;
  background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:22px;text-decoration:none;
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.card:hover{border-color:var(--sage);box-shadow:0 8px 22px rgba(20,44,30,.10);transform:translateY(-2px)}
.card-title{font-family:Georgia,serif;font-size:18px;color:var(--forest);line-height:1.3}
.card-sub{font-size:13px;color:var(--muted);flex:1}
.card-open{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--forest);margin-top:6px}

/* broker info */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.office{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}
.office h3{
  font-family:Georgia,serif;font-weight:400;font-size:21px;color:var(--forest);
  padding-bottom:12px;margin-bottom:16px;border-bottom:2px solid var(--blush);
}
.office dl{display:flex;flex-direction:column;gap:12px}
.office dt{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.office dd{font-size:14.5px;color:var(--ink);margin-top:2px}

/* checklist */
.checklist{
  background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:28px 30px 28px 52px;display:flex;flex-direction:column;gap:12px;
}
.checklist li{font-size:15px;padding-left:4px}
.checklist li::marker{color:var(--sage);font-weight:700}

/* link list */
.link-list{
  list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:4px 28px;
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 26px;
}
.link-list li{border-bottom:1px solid var(--cream-dark)}
.link-list a{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:11px 2px;text-decoration:none;font-size:14.5px;color:var(--ink);
}
.link-list a::after{content:"\2197";color:var(--sage);font-weight:700}
.link-list a:hover{color:var(--forest)}

/* footer */
footer{margin-top:72px;background:var(--forest);color:var(--cream)}
.footer-inner{max-width:1080px;margin:0 auto;padding:48px 28px;text-align:center}
.footer-logo{height:44px;width:auto;margin:0 auto 26px;opacity:.95}
.footer-contact{
  display:flex;align-items:center;justify-content:center;gap:16px;
  text-align:left;font-size:14.5px;line-height:1.6;
}
.footer-headshot{width:58px;height:58px;border-radius:50%;object-fit:cover;border:2px solid var(--sage)}
.footer-name{font-family:Georgia,serif;font-size:18px}
footer a{color:var(--sage);text-decoration:none}
footer a:hover{text-decoration:underline}
.footer-fine{margin-top:26px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);opacity:.8}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .tile-grid{grid-template-columns:repeat(2,1fr)}
  .card-grid{grid-template-columns:1fr}
  .hero-inner{grid-template-columns:1fr;gap:40px;padding:48px 22px 46px}
  .hero-photo{max-width:420px;margin:0 auto}
}
@media (max-width:620px){
  main{padding:0 18px}
  .tile-grid{grid-template-columns:1fr}
  .two-col{grid-template-columns:1fr}
  .link-list{grid-template-columns:1fr}
  .cal-embed iframe{height:480px}
  .footer-contact{flex-direction:column;text-align:center}
}
