:root { --fg:#1a1a1a; --muted:#666; --accent:#2d6a4f; --bg:#fff; --card:#f6f8f7; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--fg); background:var(--bg); }
header, main, footer { max-width:760px; margin:0 auto; padding:1rem 1.2rem; }
header { border-bottom:1px solid #eee; }
.brand { font-weight:700; font-size:1.2rem; color:var(--accent); text-decoration:none; }
h1 { font-size:1.7rem; margin:.4rem 0 .6rem; }
.intro { color:var(--muted); }
ul.listings { list-style:none; padding:0; }
ul.listings li { background:var(--card); border:1px solid #e6ece9; border-radius:8px;
  padding:.8rem 1rem; margin:.6rem 0; }
ul.listings a { color:var(--accent); text-decoration:none; font-size:1.1rem; }
.cat { display:inline-block; color:var(--accent); background:#eaf2ee; border-radius:99px;
  padding:.1rem .55rem; font-size:.8rem; margin-left:.4rem; }
.addr, .hours { color:var(--muted); font-size:.9rem; }
.crumb a { color:var(--accent); text-decoration:none; }
.filters { background:var(--card); border:1px solid #e6ece9; border-radius:8px;
  padding:.7rem 1rem; margin:.8rem 0 1.2rem; }
.filters-label { font-weight:600; font-size:.85rem; color:var(--muted); }
.filter-list { list-style:none; padding:0; margin:.4rem 0 0; display:flex;
  flex-wrap:wrap; gap:.4rem .7rem; }
.filter-list a { color:var(--accent); text-decoration:none; font-size:.92rem; }
.filter-list a:hover { text-decoration:underline; }
dl.details dt { font-weight:600; margin-top:.6rem; }
dl.details dd { margin:0 0 .2rem; }
footer { border-top:1px solid #eee; color:var(--muted); font-size:.85rem; }
