*{box-sizing:border-box}
:root{--navy:#0c1e3a;--blue:#74a7ff;--red:#e0262b;--ink:#1f2937;--muted:#6b7280;--bg:#f6f7fb;--line:#e5e7eb;--green:#047857}
html{scroll-behavior:smooth}
body{margin:0;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:#1d4ed8}
.wrap{max-width:1160px;margin:0 auto;padding:0 16px}
.top{background:var(--navy);color:#fff;position:sticky;top:0;z-index:5}
.bar{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;letter-spacing:.08em}
.brand img{border-radius:8px}
nav{display:flex;gap:16px;align-items:center}
nav a{color:#fff;text-decoration:none;font-size:15px}
nav a:not(.btn-sm){display:none}
.btn-sm{background:var(--red);padding:7px 12px;border-radius:999px;font-weight:600}
.hero{background:linear-gradient(135deg,var(--navy),#1e3a6d);color:#fff;padding:40px 0 48px}
.hero h1{font-size:clamp(28px,6vw,46px);line-height:1.15;margin:0 0 12px}
.hero p{max-width:640px;margin:0;color:#dbe4f5;font-size:17px}
.filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin:-24px 0 8px;position:relative;box-shadow:0 6px 20px rgba(12,30,58,.08)}
.filters label{display:flex;flex-direction:column;font-size:13px;font-weight:600;color:var(--muted);gap:4px}
.filters select{font:inherit;color:var(--ink);padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.link{background:none;border:0;color:#1d4ed8;font:inherit;cursor:pointer;align-self:end;padding:9px 0;text-align:left}
.count{color:var(--muted);font-size:14px;margin:14px 0}
.grid{display:grid;grid-template-columns:1fr;gap:16px;padding-bottom:40px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.card .img{aspect-ratio:16/10;background:var(--navy);display:flex;align-items:center;justify-content:center}
.card .img img{width:100%;height:100%;object-fit:cover;display:block}
.card .img img.ph{width:72px;height:72px;object-fit:contain}
.body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:12px;font-weight:600;background:#eef3ff;color:#1e3a8a;padding:2px 8px;border-radius:999px}
.tag.area{background:#f1f5f9;color:#334155}
.card h3{font-size:18px;line-height:1.3;margin:4px 0 0}
.trainer{color:var(--muted);font-size:14px;margin:0}
.meta{list-style:none;margin:4px 0 0;padding:0;font-size:14px;display:grid;gap:3px}
.meta b{font-weight:600}
.price{color:var(--green);font-weight:700;font-size:17px;margin:6px 0 0}
.btn{display:inline-block;margin-top:auto;background:var(--red);color:#fff;text-decoration:none;text-align:center;padding:11px 14px;border-radius:10px;font-weight:700}
.card .btn{margin-top:10px}
.btn:hover{filter:brightness(.92)}
.about{background:#fff;border-top:1px solid var(--line);padding:40px 0}
.two{display:grid;gap:24px}
.about h2{margin:0 0 8px}
.cta{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:20px}
.small{font-size:13px;color:var(--muted)}
.foot{background:var(--navy);color:#cbd5e1;font-size:14px;padding:20px 0}
.foot a{color:#fff}
.foot p{margin:4px 0}
@media(min-width:640px){.grid{grid-template-columns:1fr 1fr}.filters{grid-template-columns:repeat(3,1fr) auto}nav a:not(.btn-sm){display:inline}}
@media(min-width:960px){.grid{grid-template-columns:repeat(3,1fr)}.two{grid-template-columns:3fr 2fr}.hero{padding:64px 0 72px}}
.card.featured{border-color:#9dbcf5;box-shadow:0 0 0 2px #dbe7ff}
.tag.feat{background:#fff4d6;color:#8a5a00}
.ad{background:#fff;border:1px dashed #c7d2e3;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:6px;justify-content:center;position:relative}
.ad p{margin:0}.ad .ad-h{font-weight:700;font-size:17px;color:var(--navy)}
.ad-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.ad .btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--navy);margin-top:8px;align-self:flex-start;padding:8px 14px}
.ad.sponsor{padding:10px;border-style:solid}.ad.sponsor img{width:100%;height:auto;border-radius:10px;display:block}
.foot-ad{padding:24px 16px}.foot-ad:empty{display:none}
.ad.wide{flex-direction:column}
@media(min-width:640px){.ad.wide.house{flex-direction:row;align-items:center;flex-wrap:wrap;gap:6px 16px}.ad.wide .btn.ghost{margin-top:0}}
.page{padding:40px 16px 60px;max-width:760px}.page h2{margin-top:28px}

.f-date{grid-column:1/-1;border:0;margin:0;padding:0;min-width:0}
.f-date legend{font-size:13px;font-weight:600;color:var(--muted);padding:0;margin-bottom:4px}
.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip{font:inherit;font-size:14px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);cursor:pointer;white-space:nowrap}
.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.pick{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--muted);font-weight:600}
.filters .pick{flex-direction:row}
.pick input{font:inherit;font-size:14px;color:var(--ink);padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:#fff;min-height:36px}
.pick input.on{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}
.meta .when-hit{color:var(--navy)}
@media(max-width:639px){.chips{gap:6px}.chip{padding:7px 10px}.pick{width:100%}.pick input{flex:1}}
@media(min-width:640px){.filters .link{grid-column:auto}}
.f-date{order:1}
/* sort + location */
.f-sort{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end}
.loc-btn{white-space:nowrap}
.locbox{background:#eef4fb;border:1px solid #d4e2f2;border-radius:10px;padding:.6rem .8rem;margin:.6rem 0;font-size:.92rem}
.locbox p{margin:.2rem 0}
.loc-form{display:flex;gap:.5rem;flex-wrap:wrap;margin:.4rem 0}
.loc-form input{flex:1 1 12rem;min-width:0;padding:.45rem .6rem;border:1px solid #b9c7d8;border-radius:8px;font:inherit}
.locbox .privacy{color:#4a5a70}
.km{display:inline-block;margin-left:.3rem;padding:0 .4rem;border-radius:999px;background:#e3eefb;color:#0c3a75;font-size:.82em;font-weight:600;white-space:nowrap}
@media (max-width:600px){.f-sort{width:100%}.f-sort label{flex:1 1 45%}}
.filters .f-sort{grid-column:1/-1}.f-sort label{min-width:10rem}
.filters .f-sort{order:2}.f-sort .loc-btn{padding:9px 0}
/* ice surface (dark, high-contrast) */
.top,.hero,.foot{background-color:var(--navy);background-image:linear-gradient(115deg,rgba(255,255,255,0) 30%,rgba(190,220,255,.07) 45%,rgba(255,255,255,0) 60%),url(/img/ice.webp);background-size:auto,480px 480px}
.hero{position:relative;background-image:linear-gradient(115deg,rgba(255,255,255,0) 25%,rgba(190,220,255,.08) 42%,rgba(255,255,255,0) 58%),linear-gradient(180deg,rgba(12,30,58,0),rgba(30,58,109,.55)),url(/img/ice.webp);background-size:auto,auto,480px 480px;border-bottom:4px solid rgba(37,99,235,.55);box-shadow:inset 0 -10px 0 -6px rgba(224,38,43,.45)}
.foot{border-top:3px solid rgba(224,38,43,.5)}

/* region / town landing pages + "Browse by area" */
.region-hero{padding:28px 0 36px}
.crumbs{font-size:14px;color:#cbd5e1;margin:0 0 10px;display:block}
.crumbs a{color:#fff}
.sub-areas{font-size:14px;color:var(--muted);margin:-6px 0 14px}
.more{margin:0 0 40px}
.areas{background:#fff;border-top:1px solid var(--line);padding:28px 0}
.areas h2{margin:0 0 10px;font-size:20px}
.area-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.area-links li{font-size:14px;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:6px 12px}
.area-links li.region a{font-weight:700}
.foot-areas a{white-space:nowrap}
@media(min-width:960px){.region-hero{padding:40px 0 48px}}
.hero .tagline{font-size:clamp(18px,3.2vw,22px);font-weight:600;color:#fff;margin:0 0 12px;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.list-h{font-size:20px;margin:20px 0 4px;color:var(--navy)}
.faq{padding:8px 0 24px}.faq h2{font-size:22px;color:var(--navy)}
.faq-q{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 14px;margin:8px 0}
.faq-q summary{font-weight:600;cursor:pointer;color:var(--ink)}.faq-q p{margin:8px 0 0;color:var(--ink)}
.nearby{margin-top:14px}.nearby a{margin-right:4px}
/* iOS add-to-home-screen tip (pwa.js) */
.a2hs{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;gap:10px;max-width:560px;margin:0 auto;background:#0c1e3a;color:#fff;border:2px solid #fff;border-radius:12px;padding:10px 12px;box-shadow:0 6px 20px rgba(0,0,0,.3);font-size:15px;line-height:1.35}
.a2hs p{margin:0;flex:1}
.a2hs button{flex:none;background:#fff;color:#0c1e3a;border:0;border-radius:999px;width:32px;height:32px;font-size:20px;font-weight:700;line-height:1;cursor:pointer}
body.has-a2hs{padding-bottom:96px}
/* 2026-10-21: keep the filter card from overlapping the listings H2 (added with near-me SEO) */
.list-h+.filters{margin-top:6px}
