:root{--g:#2f5d9e;--g2:#eaf0fa;--ink:#1f2422;--mut:#5d6762;--line:#dde3df;--warn:#fff6dc;--warnb:#e5c768}
*{box-sizing:border-box}body{margin:0;font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:#fbfcfb}
.wrap{max-width:1060px;margin:0 auto;padding:0 16px}a{color:var(--g)}h1{font-size:1.9rem;line-height:1.2;margin:.6em 0 .3em}h2{margin-top:1.6em}
.top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.top .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 16px}
.brand{font-weight:700;font-size:1.15rem;text-decoration:none;color:var(--ink)}nav a{white-space:nowrap;margin-left:14px;text-decoration:none;font-size:.95rem}nav a:hover{text-decoration:underline}
.lead{font-size:1.1rem;color:#333}.small{font-size:.86rem;color:var(--mut)}.crumb{font-size:.88rem;margin:.8em 0 0}
.hero{background:var(--g2);border-radius:14px;padding:22px 22px 14px;margin-top:18px}.homesearch,.filters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
input[type=search],select{padding:10px 12px;border:1px solid #b9c4bd;border-radius:8px;font-size:1rem;flex:1 1 220px;background:#fff}select{flex:0 1 220px}
button,.btn{background:var(--g);color:#fff;border:0;border-radius:8px;padding:10px 16px;font-size:1rem;text-decoration:none;display:inline-block;cursor:pointer;margin:4px 6px 4px 0}.btn.alt{background:#fff;color:var(--g);border:1px solid var(--g)}
.filters label{display:flex;align-items:center;gap:6px;font-size:.95rem}
.three{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:18px}.three>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:4px 16px}.three h2{font-size:1.1rem;margin-top:.8em}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:14px 0}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}.cardhead{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.card h3{margin:0;font-size:1.05rem}
.vets{color:var(--mut);font-size:.92rem}.loc{font-size:.93rem;margin-top:4px}.phone{margin:4px 0;font-weight:600}
.badge{font-size:.72rem;padding:2px 8px;border-radius:99px;white-space:nowrap;border:1px dashed #b9a24e;background:var(--warn);color:#6b5a12}.badge.ok{border:1px solid var(--g);background:var(--g2);color:var(--g)}
.attrs{list-style:none;padding:0;margin:8px 0;font-size:.86rem;display:grid;grid-template-columns:1fr;gap:2px}.attrs span{color:var(--mut)}.attrs li.yes::before{content:"✔ ";color:var(--g)}.attrs li.no::before{content:"✖ ";color:#a33}.attrs li.unk::before{content:"? ";color:#999}
.note{font-size:.86rem;margin:6px 0}.src{font-size:.78rem;color:var(--mut);margin:6px 0 0}
.disclaimer{background:var(--warn);border:1px solid var(--warnb);border-radius:10px;padding:10px 14px;font-size:.93rem;margin:14px 0}
.aff-slot{border:2px dashed #c9c9c9;color:#888;padding:10px;border-radius:8px;font-size:.85rem;margin:14px 0;background:#fafafa}
.help{background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px 18px 12px;margin:22px 0}.help h3{margin-bottom:.2em}
.t{border-collapse:collapse;width:100%;font-size:.9rem;margin:6px 0}.t th,.t td{border-bottom:1px solid var(--line);padding:6px;text-align:left;vertical-align:top}.t th{background:#f2f5f3}
.stgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin:14px 0}.st{display:block;border:1px solid var(--line);border-radius:10px;padding:8px 10px;text-decoration:none;background:#fff;color:var(--ink)}.st span{display:block;font-size:.8rem;color:var(--mut)}.st.has{border-color:var(--g);background:var(--g2)}
.checklist li{margin:3px 0}.guides li{margin:8px 0}
footer{border-top:1px solid var(--line);margin-top:40px;padding:12px 0 30px;background:#fff;font-size:.9rem}
@media(max-width:600px){nav{display:flex;flex-wrap:wrap;gap:2px 12px}nav a{margin:0!important}h1{font-size:1.5rem}nav a{margin:0 10px 0 0}.top .wrap{display:block}}

.badge.fence{border:1px solid #1f6f78;background:#1f6f78;color:#fff}.badge.fence3{border:1px solid #1f6f78;background:#e6f3f4;color:#1f6f78}.badge.part{border:1px solid #c27a12;background:#fff1dc;color:#8a5208}.badge.unkf{border:1px solid #aaa;background:#f3f3f3;color:#555}
.badges{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}.map{height:380px;border:1px solid var(--line);border-radius:12px;margin:12px 0;background:#eef}.map.sm{height:280px}
.legend{font-size:.82rem;color:var(--mut)}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin:0 4px 0 10px;vertical-align:middle}
.fnote{font-size:.86rem;margin:6px 0;background:#f7faf9;border-left:3px solid var(--g);padding:4px 8px}.src ul{margin:2px 0;padding-left:18px}
.nbgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin:14px 0}
.stats{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.stats div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:.9rem}.stats b{display:block;font-size:1.3rem;color:var(--g)}
/* homeschool-days additions */
.badge.type{background:#eef1f7;color:#2b3a55}.badge.free{background:#e3f5e8;color:#1d6b35}.badge.nofee{background:#eef7e9;color:#3d6b1d}
.badge.paid{background:#f3efe6;color:#6b5320}.badge.unk{background:#f2f2f2;color:#666}.badge.next{background:#2f5d9e;color:#fff}
.badge.ongoing{background:#e8eef8;color:#2f5d9e}.badge.past{background:#fbe9e7;color:#8a2c1d}
.dates{margin:.4em 0;font-size:.95rem}.attrs li.unk{color:var(--mut)}.attrs li span{font-weight:600;color:var(--ink)}
.src{font-size:.82rem;color:var(--mut);border-top:1px dashed var(--line);margin-top:8px;padding-top:6px}.src ul{margin:2px 0 2px 18px;padding:0}
.guides li{margin:.35em 0}.t{width:100%;border-collapse:collapse;font-size:.93rem}.t th,.t td{border-bottom:1px solid var(--line);padding:7px 6px;text-align:left;vertical-align:top}
.t th{background:var(--g2)}.nbgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.st{display:block;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;text-decoration:none;font-weight:600}.st span{display:block;font-weight:400;font-size:.85rem;color:var(--mut)}
footer{margin-top:40px;background:#f1f4f2;border-top:1px solid var(--line);padding:14px 0;font-size:.9rem}
.cardhead h3{margin:0 0 2px;font-size:1.1rem}
.badge.type,.badge.free,.badge.nofee,.badge.paid,.badge.unk,.badge.next,.badge.ongoing,.badge.past{border:1px solid transparent}.badges{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}
.brand .metro{font-size:.75rem;font-weight:600;background:var(--g2);color:var(--g);border-radius:99px;padding:2px 8px;vertical-align:middle;margin-left:4px}
.filters .srch{display:flex;flex-direction:column;flex:1 1 220px;font-size:.85rem;color:var(--mut)}.filters .srch input{margin-top:2px}
