:root { --ink:#1a1a1a; --sage:#4b594d; --muted:#5e5d5a; --mist:#e4e8e5; --paper:#f3f2ee; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
html, body { max-width:100%; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Instrument Sans",system-ui,sans-serif; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
.wrap { width:min(1280px, calc(100% - 2rem)); margin-inline:auto; }
.top .wrap { display:flex; align-items:center; min-height:88px; gap:1rem; }
.brand { font-family:Fraunces,Georgia,serif; font-weight:700; font-size:24px; }
.brand small { font-family:"Instrument Sans",sans-serif; font-size:10px; font-weight:700; color:var(--sage); letter-spacing:.12em; margin-left:.4rem; }
.top nav { margin-left:auto; display:flex; gap:1.2rem; font-size:14px; font-weight:500; }
.top nav a.active { color:var(--sage); font-weight:600; }
.hero { display:grid; grid-template-columns:1fr 1fr; min-height:680px; }
.hero-copy { padding:4rem 2rem; display:flex; flex-direction:column; justify-content:center; }
.hero h1 { font-family:Fraunces,Georgia,serif; font-weight:400; font-size:clamp(2.6rem,6vw,64px); margin:.4rem 0 1rem; }
.hero p { color:var(--muted); font-size:18px; max-width:32rem; }
.hero-actions { display:flex; gap:.7rem; margin:1.3rem 0; }
.btn { display:inline-flex; align-items:center; padding:.7rem 1.1rem; font-weight:600; font-size:14px; }
.btn-fill { background:var(--sage); color:#fff; }
.btn-line { box-shadow:inset 0 0 0 1.5px var(--ink); }
.hero img { width:100%; height:100%; object-fit:cover; min-height:320px; }
.chips { display:flex; gap:1.2rem; color:var(--muted); font-size:13px; }
.section { padding:4rem 0; }
.eyebrow { color:var(--sage); font-weight:600; font-size:13px; letter-spacing:.08em; }
h2 { font-family:Fraunces,Georgia,serif; font-weight:400; font-size:48px; margin:.3rem 0 1rem; }
.menu { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.menu h3 { font-family:Fraunces,Georgia,serif; font-weight:400; font-size:28px; }
.row { display:flex; justify-content:space-between; gap:1rem; padding:.45rem 0; border-bottom:1px solid #ddd8d0; }
.about { display:grid; grid-template-columns:1fr 1fr; }
.about img { width:100%; height:640px; object-fit:cover; }
.about-copy { padding:4rem 3rem; display:flex; flex-direction:column; justify-content:center; }
.stats { display:flex; gap:2rem; margin-top:1.5rem; }
.stats b { font-family:Fraunces,Georgia,serif; font-size:32px; display:block; }
.loc { }
.loc-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.map { width:100%; height:400px; border:0; }
.cta { background:var(--sage); color:#fff; padding:3.5rem 0; }
.cta h2 { color:#fff; }
.cta p { color:var(--mist); }
.foot { background:#1a1a1a; color:var(--paper); padding:2.5rem 0; }
.foot .wrap { display:grid; grid-template-columns:2fr 1fr 1fr; gap:1.5rem; }
.book-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:2rem; }
.svc-card { border:1px solid #ddd8d0; padding:1rem; margin-bottom:.6rem; display:flex; justify-content:space-between; gap:1rem; align-items:center; background:#fff; }
.svc-card.selected { border-color:var(--sage); background:var(--mist); }
form { display:grid; gap:.7rem; background:#fff; padding:1.5rem; }
label { font-size:13px; font-weight:600; color:var(--muted); }
input, textarea, select { font:inherit; padding:.65rem .8rem; border:1px solid #ddd8d0; width:100%; }
.sample-note {
  margin:0; padding:.45rem 1rem; text-align:center;
  background:var(--sage); color:#fff; font-size:12px; font-weight:600;
}
.sample-note a { color:#fff; text-decoration:underline; }
.svc-card {
  width:100%; text-align:left; font:inherit; color:inherit; cursor:pointer;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.svc-card:hover { transform: translateY(-2px); }
.btn { transition: transform .2s ease; }
.btn:hover { transform: translateY(-1px); }
@media (max-width:800px) {
  .hero, .menu, .about, .loc-grid, .foot .wrap, .book-grid { grid-template-columns:1fr; }
  .top .wrap { flex-wrap: wrap; }
  .top nav {
    display:flex; width:100%; order:3; font-size:14px; gap:1rem;
    padding:0 0 .85rem; overflow-x:auto;
  }
  .about img, .hero img { height:240px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .svc-card, .btn { transition:none; }
}
