:root{--bg:#fbf7f1;--card:#fff;--ink:#22302c;--muted:#5d6b66;--green:#1f4d45;--green2:#2f6b5f;--sage:#e3ece5;--clay:#d9734e;--clay2:#f6e3d8;--line:#e7e0d5;--r:14px;
--font:"Inter","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;--disp:ui-rounded,"SF Pro Rounded","Nunito","Segoe UI",system-ui,sans-serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--font)}
a{color:var(--green2)}a:hover{color:var(--clay)}
img,svg{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding:0 18px}
header.site{background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:62px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--green);font:800 1.25rem var(--disp);letter-spacing:-.01em}
.brand svg{width:32px;height:32px}
nav.main{display:flex;gap:4px;flex-wrap:wrap}
nav.main a{text-decoration:none;color:var(--ink);padding:6px 10px;border-radius:999px;font-size:.95rem}
nav.main a:hover,nav.main a[aria-current]{background:var(--sage);color:var(--green)}
h1,h2,h3{font-family:var(--disp);line-height:1.2;color:var(--green);letter-spacing:-.015em}
h1{font-size:clamp(1.9rem,5vw,3rem);margin:.2em 0 .3em}h2{font-size:1.5rem;margin:1.6em 0 .5em}h3{font-size:1.15rem;margin:1em 0 .3em}
.hero{padding:34px 0 10px}.hero p.lead{font-size:1.15rem;color:var(--muted);max-width:720px}
.pill{display:inline-block;background:var(--clay2);color:#8a3f22;border-radius:999px;padding:3px 12px;font-size:.85rem;font-weight:600}
.grid3{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px 18px 14px}
.card h3{margin-top:0}
.card ol{margin:0;padding-left:1.2em}.card li{margin:.35em 0}
.big{font:800 1.6rem var(--disp);color:var(--clay)}
.muted{color:var(--muted)}.small{font-size:.88rem}
.tag{display:inline-block;background:var(--sage);color:var(--green);border-radius:6px;padding:0 7px;margin:1px 2px 1px 0;font-size:.78rem;white-space:nowrap}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;background:var(--sage);border-radius:var(--r);padding:14px;margin:14px 0}
.filters label{display:flex;flex-direction:column;font-size:.85rem;font-weight:600;color:var(--green);gap:4px;flex:1 1 150px}
select,input,button{font:inherit}
select,input[type=number],input[type=email],input[type=text],textarea{border:1px solid #cfd8d2;border-radius:10px;padding:9px 10px;background:#fff;width:100%;color:var(--ink)}
button,.btn{background:var(--green);color:#fff;border:0;border-radius:999px;padding:10px 18px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.btn:hover{background:var(--clay);color:#fff}
.btn.ghost{background:transparent;color:var(--green);border:2px solid var(--green)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:.93rem}
th,td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{background:#f4efe6;color:var(--green);font-weight:700;white-space:nowrap;position:sticky;top:0}
th.sortable{cursor:pointer}th.sortable:after{content:" ↕";color:#aab}
th[aria-sort=ascending]:after{content:" ↑";color:var(--clay)}th[aria-sort=descending]:after{content:" ↓";color:var(--clay)}
td.num{white-space:nowrap;font-variant-numeric:tabular-nums}
tr:hover td{background:#fbfaf6}
.np{color:#9a9f9c;font-style:italic}
.count{font-size:.9rem;color:var(--muted);margin:6px 2px}
.featured{border:2px dashed var(--clay);background:#fffaf6}
.featured .label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--clay);font-weight:800}
.news{background:var(--green);color:#eaf3ef;border-radius:var(--r);padding:22px;margin:34px 0}
.news h2{color:#fff;margin-top:0}.news form{display:flex;gap:8px;flex-wrap:wrap}.news input{flex:1 1 220px}
.news button{background:var(--clay)}.news .note{font-size:.85rem;opacity:.85;margin:.6em 0 0}
.formmsg{margin-top:.6em;font-weight:600}
dl.kv{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:6px 16px;margin:0}dl.kv dt{font-weight:700;color:var(--green)}dl.kv dd{margin:0}
.feed{list-style:none;padding:0;margin:0}.feed li{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin:10px 0}
.feed .when{font-size:.8rem;color:var(--muted)}
.prose{max-width:760px}.prose li{margin:.3em 0}
.callout{background:var(--clay2);border-radius:var(--r);padding:12px 16px;margin:16px 0}
.results .opt{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:8px 0}
.results .opt b{color:var(--green)}.results .opt .price{font:800 1.15rem var(--disp);color:var(--clay);white-space:nowrap}
footer.site{margin-top:50px;background:#f2ece2;border-top:1px solid var(--line);padding:26px 0;font-size:.9rem;color:var(--muted)}
footer.site nav a{margin-right:14px}
.crumbs{font-size:.88rem;margin-top:18px}
@media (max-width:640px){th,td{padding:7px 8px}.hide-sm{display:none}.bar{padding:6px 0}nav.main a{padding:5px 8px;font-size:.9rem}}
.two{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}@media (min-width:820px){.two{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}
main ul a,main dd,.results a{overflow-wrap:anywhere}
.card table{display:block;overflow-x:auto}
