:root {
  --bg: #f4f8f0;
  --ink: #173525;
  --ink-soft: #2f4e3e;
  --accent: #2f8f5b;
  --accent-dark: #246f47;
  --surface: #ffffff;
  --radius: 16px;
  --max-w: 1100px;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: "Manrope", system-ui, sans-serif; color: var(--ink); background: var(--bg); }
.offer-banner { position: sticky; top: 0; z-index: 300; display:flex; justify-content:center; gap:.8rem; align-items:center; padding:.55rem .8rem; background:#0f2a1f; color:#eef9f1; font-size:.9rem; }
.offer-cta { color:#0f2a1f; background:#90e5b8; text-decoration:none; padding:.25rem .6rem; border-radius:8px; font-weight:700; }
.offer-close { border:0; background:transparent; color:#eef9f1; font-size:1.1rem; cursor:pointer; }
.hidden{display:none}
.site-header { position: sticky; top: 39px; z-index: 120; display:flex; justify-content:space-between; align-items:center; padding:.85rem 1rem; background:rgba(244,248,240,.92); backdrop-filter:blur(8px); border-bottom:1px solid rgba(23,53,37,.08); }
.brand { display:flex; align-items:center; gap:.45rem; font-family:"Fraunces", serif; font-size:1.25rem; font-weight:700; }
.header-right { display:flex; align-items:center; gap:.8rem; }
nav a { text-decoration:none; color:var(--ink-soft); margin-right:.9rem; font-weight:600; }
.btn { display:inline-flex; align-items:center; text-decoration:none; border-radius:10px; padding:.65rem 1rem; font-weight:700; }
.btn-solid { background:var(--accent); color:#fff; }
.btn-outline { border:2px solid rgba(255,255,255,.75); color:#fff; }
.hero { position: relative; min-height: 560px; display:flex; align-items:center; overflow:hidden; }
.hero-bg, .hero-bg img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(110deg, rgba(23,53,37,.8), rgba(23,53,37,.32)); }
.hero-content { position:relative; z-index:2; max-width:var(--max-w); margin:0 auto; width:100%; padding:3.5rem 1.2rem; color:#fff; }
.eyebrow { text-transform:uppercase; letter-spacing:.09em; font-size:.75rem; font-weight:700; color:#b4efc7; }
.hero h1 { margin:.4rem 0 .8rem; font-family:"Fraunces", serif; font-size:clamp(2rem,5vw,3.4rem); max-width:14ch; }
.hero p { max-width:60ch; opacity:.95; }
.hero-actions { display:flex; gap:.7rem; flex-wrap:wrap; margin-top:1.1rem; }
main { max-width:var(--max-w); margin:0 auto; padding:0 1.2rem 3.2rem; }
section { margin-top:3.5rem; }
.section-header h2, .about-section h2, .visit-info h2 { font-family:"Fraunces", serif; font-size:clamp(1.6rem,3vw,2.3rem); margin:.2rem 0 .6rem; }
.section-header p { color:var(--ink-soft); }
.cards-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; }
.card { background:var(--surface); border-radius:var(--radius); overflow:hidden; box-shadow:0 6px 18px rgba(23,53,37,.1); }
.card-img { height:170px; }
.card-img img { width:100%; height:100%; object-fit:cover; }
.card-body { padding:.9rem .95rem 1rem; }
.card-tag { display:inline-block; background:rgba(47,143,91,.12); color:var(--accent-dark); border-radius:999px; padding:.18rem .5rem; font-size:.72rem; font-weight:700; }
.card h3 { margin:.55rem 0 .4rem; }
.card p { margin:0; color:var(--ink-soft); font-size:.94rem; }
.about-section { background:var(--ink); color:#e8f4ec; border-radius:var(--radius); padding:2rem 1.2rem; }
.about-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:1.2rem; align-items:start; }
.services-list { list-style:none; padding:0; margin:0; display:grid; gap:.65rem; }
.visit-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; align-items:stretch; }
.visit-sub,.rating { color:var(--ink-soft); }
.hours-box { border:1px solid rgba(23,53,37,.15); border-radius:12px; padding:.7rem .9rem; background:#fff; max-width:320px; }
.hours-box span{font-weight:700}
.contact-row { margin-top:1rem; display:flex; flex-wrap:wrap; gap:.75rem; }
.contact-link { text-decoration:none; font-weight:700; color:var(--ink); }
.visit-map iframe { width:100%; min-height:320px; border:0; border-radius:14px; }
footer { margin-top:3rem; background:#0f2a1f; color:#d9f0e0; }
.footer-inner { max-width:var(--max-w); margin:0 auto; padding:1.2rem; font-size:.9rem; }
@media (max-width: 900px) {
  .about-grid, .visit-grid { grid-template-columns:1fr; }
  nav { display:none; }
  .site-header { top:0; }
  .offer-banner { position:relative; }
}
