
:root{--ink:#1d2b24;--mut:#5a6b62;--acc:#1f7a4d;--acc2:#e8f4ec;--line:#dde5df;--card:#fff;--bg:#fbfcfa}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
.site-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 5vw;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:5;flex-wrap:wrap}
.brand{font-weight:800;font-size:1.25rem;color:var(--ink)}.brand span{color:var(--acc)}
.main-nav{display:flex;gap:1.1rem;flex-wrap:wrap}.main-nav a{color:var(--ink);font-weight:600;font-size:.95rem}
main{max-width:1100px;margin:0 auto;padding:1.2rem 5vw 3rem}
h1{font-size:2rem;line-height:1.2;margin:.6rem 0}.lede{font-size:1.08rem;color:var(--mut);max-width:46rem}
.hero{padding:2.2rem 0 1rem}.hero h1{font-size:2.6rem;max-width:22ch}.sub{font-size:1.15rem;color:var(--mut);max-width:44rem}
.finder{display:flex;gap:.6rem;flex-wrap:wrap;margin:1.2rem 0 .6rem}.finder label{display:flex;flex-direction:column;font-size:.8rem;font-weight:700;color:var(--mut);gap:.3rem}
.finder select{font-size:1rem;padding:.6rem;border:1px solid var(--line);border-radius:.5rem;background:#fff;min-width:11rem}
.finder button,.btn{background:var(--acc);color:#fff;border:0;border-radius:.5rem;padding:.65rem 1.2rem;font-size:1rem;font-weight:700;cursor:pointer;align-self:end;display:inline-block}
.btn:hover,.finder button:hover{background:#17603d;text-decoration:none}
.hero-note{color:var(--mut);font-size:.9rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin:1rem 0 1.6rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:.8rem;padding:1rem;display:flex;flex-direction:column;gap:.45rem}
.card h3{margin:.1rem 0;font-size:1.05rem;line-height:1.3}.card h3 a{color:var(--ink)}
.card-top{display:flex;justify-content:space-between;align-items:center}.cat{font-size:.75rem;font-weight:800;color:var(--acc);text-transform:uppercase;letter-spacing:.04em}
.tag{font-size:.72rem;background:var(--acc2);color:var(--acc);border-radius:1rem;padding:.12rem .5rem;font-weight:700;margin-right:.3rem}
.venue{color:var(--mut);font-size:.9rem;margin:0}.next{font-size:.88rem;color:var(--ink)}
.card-bottom{margin-top:auto;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:.6rem}
.price{font-weight:800}.price.muted{color:var(--mut);font-weight:600;font-size:.85rem}
.btn-sm{border:1px solid var(--acc);color:var(--acc);border-radius:.45rem;padding:.3rem .7rem;font-weight:700;font-size:.85rem}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}
.cat-card{background:#fff;border:1px solid var(--line);border-radius:.8rem;padding:1.2rem;display:block;color:var(--ink)}
.cat-card h3{margin:.2rem 0;font-size:1.3rem}.cat-card .go{color:var(--acc);font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0 1.6rem}
.city-chip{border:1px solid var(--line);background:#fff;border-radius:2rem;padding:.45rem .9rem;color:var(--ink);font-weight:600;font-size:.92rem}
.city-chip span{color:var(--acc);font-weight:800}
.how-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}
.how-grid>div{background:#fff;border:1px solid var(--line);border-radius:.8rem;padding:1rem}
.providers-strip{background:var(--acc2);border-radius:.8rem;padding:1.4rem;margin-top:2rem}
.facts{color:var(--mut)}.facts strong{color:var(--ink)}
.crumbs ol{display:flex;gap:.4rem;list-style:none;padding:0;margin:.4rem 0;flex-wrap:wrap;font-size:.88rem;color:var(--mut)}
.crumbs li+li:before{content:"›";margin-right:.4rem;color:var(--mut)}
.faq details{background:#fff;border:1px solid var(--line);border-radius:.6rem;padding:.7rem 1rem;margin:.5rem 0}
.faq summary{font-weight:700;cursor:pointer}
.book-box{background:#fff;border:1px solid var(--line);border-radius:.8rem;padding:1.1rem;display:flex;flex-direction:column;gap:.5rem;max-width:34rem;margin:1rem 0}
.book-price{font-size:1.5rem;font-weight:800}.price-note{color:var(--mut);font-size:.9rem;margin:0}
.checked{color:var(--mut);font-size:.82rem;margin:0}
.facts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin:1rem 0}
.facts-grid>div{background:#fff;border:1px solid var(--line);border-radius:.6rem;padding:.6rem .8rem}
.facts-grid dt{font-size:.75rem;font-weight:800;color:var(--mut);text-transform:uppercase}.facts-grid dd{margin:.15rem 0 0;font-weight:600}
.sessions{columns:2;column-gap:2rem}
.venue-line{color:var(--mut);font-size:1.02rem}
.city-list{line-height:2}
.site-footer{border-top:1px solid var(--line);background:#fff;padding:2rem 5vw;color:var(--mut)}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;max-width:1100px;margin:0 auto}
.footer-cols a{display:block;color:var(--ink);margin:.25rem 0;font-size:.93rem}
.footer-cols h4{color:var(--ink);margin:.2rem 0 .5rem}
.fine{max-width:1100px;margin:1.2rem auto 0;font-size:.85rem}
@media (max-width:640px){.hero h1{font-size:2rem}.sessions{columns:1}}
