/* ---------- Activities page ---------- */
.acts{padding-bottom:30px}
.acts-intro{max-width:760px;margin:0 auto;text-align:center}
.acts-intro .lead{margin-top:14px}

/* filter pills */
.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:34px 0 28px}
.filters button{font:inherit;font-size:14px;padding:9px 20px;border-radius:999px;cursor:pointer;
    border:1.5px solid var(--green,#1f5c3a);background:transparent;color:var(--green,#1f5c3a);transition:background .2s,color .2s}
.filters button:hover{background:rgba(31,92,58,.08)}
.filters button.on{background:var(--green,#1f5c3a);color:#fff}
.filters button:focus-visible,.stop-btns button:focus-visible{outline:3px solid var(--orange,#f08a24);outline-offset:2px}

/* activity grid */
.act-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 22px}
.act[hidden]{display:none}
.act .ph{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#cfd9c8}
.act .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.act:hover .ph img{transform:scale(1.04)}
.act .ph.noimg::after{content:"Photo coming soon";position:absolute;inset:0;display:grid;place-items:center;color:#4b5b49;font-size:14px}
.chip{position:absolute;left:12px;top:12px;background:rgba(255,255,255,.92);color:var(--green,#1f5c3a);
    font-size:12.5px;padding:5px 12px;border-radius:999px}
.act .b{padding:14px 2px 0}
.act h3{margin:0 0 6px;font-size:21px;color:var(--green,#1f5c3a)}
.act p{margin:0 0 10px;font-size:15px;line-height:1.6;color:#3f4a3d;max-width:46ch}
.rate{display:inline-block;font-size:13px;color:var(--orange,#f08a24);border-bottom:1.5px solid currentColor;padding-bottom:1px}

/* river map */
.river{padding:40px 0 70px;text-align:center}
.river .lead{max-width:600px;margin:10px auto 26px}
.map-card{background:#fffdf7;border-radius:18px;padding:22px 22px 26px;border:1px solid rgba(31,92,58,.15)}
.map-card svg{width:100%;height:auto;display:block}
.river-bg{fill:none;stroke:#b9d5e3;stroke-width:34;stroke-linecap:round}
.river-fg{fill:none;stroke:#5f9bb8;stroke-width:6;stroke-linecap:round;stroke-dasharray:2 14}
.trail{fill:none;stroke:#8a6a3b;stroke-width:3;stroke-dasharray:8 8;stroke-linecap:round}
.trees circle{fill:#7fae78;opacity:.75}
.stop{cursor:pointer;outline:none}
.stop circle{fill:var(--orange,#f08a24);stroke:#fff;stroke-width:4;transition:r .2s,fill .2s}
.stop text{font-size:19px;fill:#2c3a2b;font-family:inherit;paint-order:stroke;stroke:#fffdf7;stroke-width:5px;stroke-linejoin:round}
.stop:hover circle,.stop:focus-visible circle{r:19}
.stop:focus-visible circle{stroke:var(--green,#1f5c3a)}
.stop.on circle{fill:var(--green,#1f5c3a);r:20}
.stop-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:18px 0 20px}
.stop-btns button{font:inherit;font-size:13.5px;padding:8px 14px;border-radius:999px;cursor:pointer;
    border:1.5px solid rgba(31,92,58,.35);background:transparent;color:var(--green,#1f5c3a)}
.stop-btns button.on{background:var(--green,#1f5c3a);color:#fff;border-color:var(--green,#1f5c3a)}
.stop-panel{max-width:520px;margin:0 auto;text-align:left;background:#f1f5ea;border-radius:14px;padding:18px 22px}
.stop-panel h3{margin:0 0 6px;font-size:20px;color:var(--green,#1f5c3a)}
.stop-panel p{margin:0 0 10px;font-size:15px;line-height:1.6;color:#3f4a3d}
.stop-panel ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.stop-panel li{background:#fff;border-radius:999px;padding:5px 13px;font-size:13.5px;color:var(--green,#1f5c3a)}
.map-note{font-size:12.5px;color:#7a8577;margin-top:10px}

@media(max-width:900px){
    .act-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
    .act-grid{grid-template-columns:1fr}
    .stop text{display:none}   /* labels would be too small; use the buttons below */
}
@media(prefers-reduced-motion:reduce){.act .ph img,.stop circle{transition:none}}