*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --newsprint:#f4f0e8;
  --ink:#1a1a1a;
  --red:#a32a29;
  --rule:#d2cdc4;
  --caption:#736d65;
  --serif:'IBM Plex Serif',Georgia,serif;
  --sans:'IBM Plex Sans',system-ui,sans-serif;
}
html{scroll-behavior:smooth}
body{font-family:var(--serif);background:var(--newsprint);color:var(--ink);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased}

/* ── Nav ── */
.nav{position:sticky;top:0;z-index:100;background:var(--newsprint);border-bottom:1px solid var(--rule);padding:0 20px;height:56px;display:flex;align-items:center;justify-content:space-between}
.nav-brand{font-family:var(--serif);font-weight:700;font-size:1.05rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);text-decoration:none}
.nav-right{display:flex;align-items:center;gap:14px}
.nav-phone{font-family:var(--sans);font-size:.82rem;font-weight:600;color:var(--red);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.nav-status{display:flex;align-items:center;gap:5px;font-family:var(--sans);font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--caption)}
.status-dot{width:7px;height:7px;border-radius:50%;background:var(--rule);flex-shrink:0}

/* ── Hero ── */
.hero{padding:44px 20px 0;max-width:960px;margin:0 auto}
.hero-dateline{font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--caption);margin-bottom:14px}
.hero-headline{font-family:var(--serif);font-weight:700;font-size:clamp(2.6rem,9.5vw,5.8rem);line-height:.93;letter-spacing:-.025em;color:var(--ink);margin-bottom:18px}
.hero-rule{width:56px;height:3px;background:var(--red);border:none;margin-bottom:18px}
.hero-sub{font-family:var(--serif);font-size:1.05rem;line-height:1.55;color:var(--caption);max-width:460px;margin-bottom:28px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}

/* ── Buttons ── */
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--red);color:#fff;font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:14px 26px;min-height:44px;border:none;cursor:pointer;transition:background .2s}
.btn-primary:hover{background:#882020}
.btn-secondary{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--ink);font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:12px 24px;min-height:44px;border:2px solid var(--ink);cursor:pointer;transition:all .2s}
.btn-secondary:hover{background:var(--ink);color:var(--newsprint)}

/* ── Hero photo ── */
.hero-photo{max-width:960px;margin:0 auto}
.hero-photo img{width:100%;height:auto;display:block;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}

/* ── Sections shared ── */
.section{padding:44px 20px;max-width:960px;margin:0 auto;border-top:1px solid var(--rule)}
.section-label{font-family:var(--sans);font-size:.65rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--caption);margin-bottom:6px}
.section-h{font-family:var(--serif);font-weight:700;font-size:clamp(1.5rem,4vw,2.3rem);line-height:1.1;text-transform:uppercase;letter-spacing:.01em;margin-bottom:28px}

/* ── Stats band ── */
.stats-band{display:flex;flex-wrap:wrap;justify-content:center;padding:28px 20px;max-width:960px;margin:0 auto;border-top:1px solid var(--rule)}
.stat{flex:1 1 100px;text-align:center;padding:10px 16px}
.stat+.stat{border-left:1px solid var(--rule)}
.stat-num{font-family:var(--serif);font-weight:700;font-size:clamp(1.8rem,5vw,2.8rem);line-height:1;margin-bottom:4px}
.stat-lbl{font-family:var(--sans);font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--caption)}

/* ── Services ── */
.svc-grid{display:grid;grid-template-columns:1fr;gap:0}
.svc-item{padding:22px 0;border-bottom:1px solid var(--rule)}
.svc-item:last-child{border-bottom:none}
.svc-title{font-family:var(--serif);font-weight:700;font-size:1.05rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}
.svc-desc{font-family:var(--serif);font-size:.92rem;line-height:1.6;color:var(--caption)}

/* ── Photo strip ── */
.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;max-width:960px;margin:0 auto}
.photo-strip img{width:100%;height:180px;object-fit:cover;display:block}

/* ── Reviews ── */
.review-list{display:grid;grid-template-columns:1fr;gap:0}
.review-item{padding:26px 0;border-bottom:1px solid var(--rule)}
.review-item:last-child{border-bottom:none}
.review-open{font-family:var(--serif);font-size:3rem;line-height:1;color:var(--red);margin-bottom:4px}
.review-text{font-family:var(--serif);font-size:.95rem;line-height:1.7;font-style:italic;margin-bottom:14px}
.review-byline{display:flex;align-items:center;gap:10px}
.review-author{font-family:var(--sans);font-size:.65rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--caption)}
.review-stars{color:var(--red);font-size:.75rem;letter-spacing:1px}

/* ── Visit ── */
.visit-grid{display:grid;grid-template-columns:1fr;gap:28px}
.visit-label{font-family:var(--sans);font-size:.65rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--caption);margin-bottom:4px}
.visit-value{font-family:var(--serif);font-size:.95rem;font-style:normal;line-height:1.6;margin-bottom:18px}
.visit-value a{color:var(--red);text-decoration:none}
.visit-value a:hover{text-decoration:underline}
.hours-tbl{width:100%;border-collapse:collapse;font-family:var(--serif);font-size:.92rem}
.hours-tbl td{padding:5px 0;border-bottom:1px solid var(--rule)}
.hours-tbl td:first-child{font-weight:600;width:45%}
.visit-map iframe{width:100%;height:280px;border:1px solid var(--rule)}

/* ── Foot CTA ── */
.foot-cta{text-align:center;padding:52px 20px;max-width:960px;margin:0 auto;border-top:1px solid var(--rule)}
.foot-cta h2{font-family:var(--serif);font-weight:700;font-size:clamp(1.6rem,5vw,2.6rem);line-height:1.1;text-transform:uppercase;margin-bottom:22px}

/* ── Footer ── */
.footer{background:var(--ink);color:var(--newsprint);padding:28px 20px;text-align:center;font-family:var(--sans);font-size:.78rem;line-height:1.7}
.footer a{color:var(--newsprint);text-decoration:none}
.footer a:hover{text-decoration:underline}
.footer-fine{margin-top:12px;color:#888;font-size:.65rem}

/* ── Desktop ── */
@media(min-width:720px){
  .hero{padding:72px 20px 0}
  .svc-grid{grid-template-columns:1fr 1fr;column-gap:36px}
  .svc-item{border-bottom:none;padding:20px 0;border-top:1px solid var(--rule)}
  .photo-strip img{height:260px}
  .visit-grid{grid-template-columns:1fr 1fr}
  .section{padding:56px 20px}
  .stats-band{flex-wrap:nowrap}
  .review-list{grid-template-columns:1fr 1fr;column-gap:36px}
  .review-item{border-bottom:none;border-top:1px solid var(--rule);padding:24px 0}
}
