:root{--green:#1a7f4b;--green-dark:#145c36;--leaf:#e6f4ec;--slate:#334155;--slate-dark:#1e293b;--line:#cbd5e1;--bg:#f8fafc;--amber:#fef3c7}
*{box-sizing:border-box}html{font-size:17px}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--slate-dark);line-height:1.6;font-size:1rem}
.wrap{max-width:960px;margin:0 auto;padding:0 1rem}
.skip{position:absolute;left:-9999px;top:0;background:#fff;padding:.5rem 1rem;z-index:10}.skip:focus{left:0}
.site-header{background:#fff;border-bottom:3px solid var(--green);padding:.8rem 0}
.brand{font-weight:800;font-size:1.35rem;color:var(--green-dark);text-decoration:none}
.brand-mark{color:var(--green)}
.independent{display:block;font-size:.85rem;color:var(--slate)}
.site-header nav{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:1rem}
.site-header nav a{color:var(--slate-dark);text-decoration:none;font-weight:600}.site-header nav a:hover{text-decoration:underline}
main{padding:1.5rem 1rem 2.5rem}
h1{font-size:2rem;line-height:1.2;margin:.4rem 0 .6rem}h2{font-size:1.35rem;margin:1.6rem 0 .5rem;color:var(--slate-dark)}
a{color:var(--green-dark)}
.lede{font-size:1.15rem;color:var(--slate)}
.eyebrow{text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:700;color:var(--green)}
.hero{background:var(--leaf);border:1px solid var(--line);border-radius:12px;padding:1.2rem;margin-bottom:1.5rem}
.alert{background:var(--amber);border:1px solid #f59e0b;border-radius:8px;padding:.8rem 1rem;margin:1rem 0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin:1rem 0}
.card,.event-card,.source-box,.local-service{background:#fff;border:1px solid var(--line);border-radius:10px;padding:1rem}
.card h3{margin:.2rem 0}.past{background:#eef2f0}.badge{display:inline-block;background:var(--slate);color:#fff;border-radius:999px;padding:.05rem .6rem;font-size:.8rem;font-weight:700}
.badge.next{background:var(--green)}
.source-box{margin-top:2rem;background:var(--leaf)}
.local-service{border-left:5px solid var(--green);margin-top:1.5rem}
.local-note{background:var(--leaf);border-radius:8px;padding:.7rem 1rem}
.small{font-size:.85rem;color:var(--slate)}
.link-list li{margin:.3rem 0}
.site-footer{background:var(--slate-dark);color:#e2e8f0;padding:1.5rem 0;margin-top:2rem}
.site-footer a{color:#bbf7d0}
.disclaimer{font-size:.95rem}
form label{display:block;font-weight:600;margin:.8rem 0 .2rem}
form input,form select,form textarea{width:100%;max-width:560px;padding:.55rem;border:1px solid var(--line);border-radius:6px;font:inherit}
form button{margin-top:1rem;background:var(--green);color:#fff;border:0;border-radius:6px;padding:.6rem 1.4rem;font:inherit;font-weight:700;cursor:pointer}
@media (max-width:600px){h1{font-size:1.6rem}.site-header nav{gap:.7rem}}
:focus-visible{outline:3px solid var(--green);outline-offset:2px}
