/* Homepage Leaflet map (adapted from design-concepts/map-v2) */
.legend.lmap{position:static;list-style:none;margin:0 0 8px;padding:7px 10px;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.78rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px}
.legend.lmap li{display:flex;align-items:center;gap:6px;white-space:normal}
.lg{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.25);font-style:normal}
.lg.pick{background:var(--red)}.lg.food{background:#5d7a3a}.lg.xmas{background:#1f3d2b}
.lg.fm{border-radius:3px;background:#fff;border:2.5px solid var(--green);box-shadow:none}
.lg.cnt{width:22px;height:22px;background:var(--green);color:#fff;font-size:.66rem;font-weight:700}
.mapbox{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#e9e2d0}
#fmap{height:360px;background:#e9e2d0}
#fmap.nomap{height:auto;min-height:0}
.map-fallback{margin:0;padding:22px 18px;font-size:.92rem;color:var(--muted)}
#fmap .leaflet-tile-pane{filter:sepia(.22) saturate(.8) brightness(1.03)}
#fmap .leaflet-control-zoom a{width:40px;height:40px;line-height:38px;font-size:22px}
#fmap .leaflet-control-attribution{font-size:10px}
.mstatus{margin:6px 2px 0;font-size:.86rem;color:var(--muted);display:flex;justify-content:space-between;gap:8px}
.mstatus .tolist{font-weight:600;white-space:nowrap;display:none}
/* county count bubbles */
.cb{background:none;border:0}
.cb .b{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--green);color:#fff;font-weight:700;font-size:1rem;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.cb .n{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:2px;white-space:nowrap;font-size:.74rem;font-weight:700;color:var(--green);text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff}
.cb.zero .b{background:#b9ad95}
.cl .b{position:absolute;inset:4px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--paper);color:var(--green);font-weight:700;font-size:.9rem;border:3px solid var(--green);box-shadow:0 2px 5px rgba(0,0,0,.25)}
/* pins: 44x44 tap target, 20px dot */
.fpin{background:none;border:0}
.fpin .d{position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4);transition:transform .12s}
.fpin .d.pick{background:var(--red)}.fpin .d.food{background:#5d7a3a}.fpin .d.xmas{background:#1f3d2b}
.fpin .d.fm{border-radius:4px;background:#fff;border:3px solid var(--green)}
.fpin.sel .d{transform:scale(1.35);box-shadow:0 0 0 3px var(--ink),0 2px 6px rgba(0,0,0,.4)}
.chip-county{position:absolute;top:10px;left:58px;z-index:500;display:flex;align-items:center;gap:6px;background:var(--green);color:#fff;border-radius:99px;padding:4px 4px 4px 12px;font-weight:600;font-size:.88rem;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.chip-county[hidden]{display:none}
.chip-county button{min-height:44px;border:0;border-radius:99px;background:rgba(255,255,255,.18);color:#fff;font-weight:600;padding:0 12px;cursor:pointer;font-size:.82rem}
.rows .row.msel{background:#fff3d6;box-shadow:inset 3px 0 0 var(--red)}
/* place card: bottom sheet on phones, Leaflet popup on desktop */
.fcard-sheet{position:fixed;left:0;right:0;bottom:0;z-index:1000;background:var(--paper);border-radius:18px 18px 0 0;box-shadow:0 -8px 28px rgba(43,34,25,.28);padding:8px 16px calc(16px + env(safe-area-inset-bottom));max-height:72vh;overflow:auto;transition:transform .2s ease}
.fcard-sheet[hidden]{display:block;transform:translateY(110%);visibility:hidden}
.fcard-sheet .grabber{width:42px;height:5px;border-radius:3px;background:#cdbf9f;margin:2px auto 8px}
.fcard-sheet .x{position:absolute;right:6px;top:6px;width:44px;height:44px;border:0;background:none;font-size:24px;color:var(--muted);cursor:pointer}
.fcard-sheet .ct,.leaflet-popup-content .ct{font-family:'Fraunces',Georgia,serif;font-weight:800;font-size:1.25rem;color:var(--green);margin:0 44px 2px 0;line-height:1.15}
.fcard-sheet .cw,.leaflet-popup-content .cw{color:var(--muted);font-size:.9rem;margin:0 0 10px}
.cchips{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 10px;padding:0;list-style:none}
.cchips li{font-size:.8rem;background:var(--cream2,#efe4cf);border:1px solid var(--line);border-radius:99px;padding:2px 9px}
.cchips li.more{background:none;border-style:dashed;color:var(--muted)}
.fcard-sheet .hrs,.leaflet-popup-content .hrs{display:flex;gap:7px;font-size:.88rem;margin:0 0 10px;color:var(--ink)}
.fcard-sheet .hrs svg,.leaflet-popup-content .hrs svg{flex:none;width:17px;height:17px;margin-top:2px;color:var(--muted)}
.approx{font-size:.78rem;color:#7a5a1e;background:#f8ecd0;border-radius:6px;padding:4px 8px;margin:0 0 10px}
.acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}
.acts a,.acts .off{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;border-radius:12px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--green);font-weight:600;font-size:.85rem;text-align:center;padding:4px}
.acts svg{width:20px;height:20px}
.acts a.go{background:var(--red);border-color:var(--red);color:#fff}
.acts .off{color:#b3a68d;background:transparent}
.cinfo{font-size:.84rem;color:var(--muted);margin:-2px 0 10px}
.cfoot{font-size:.8rem;color:var(--muted);margin:0;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.cfoot a{font-weight:700;display:inline-flex;align-items:center;min-height:44px}
.grp{list-style:none;margin:6px 0 0;padding:0}
.grp li button{width:100%;text-align:left;min-height:44px;border:0;border-bottom:1px solid var(--line);background:none;padding:6px 2px;cursor:pointer;font:inherit}
.grp li b{color:var(--green)}
#fmap .leaflet-popup-content-wrapper{border-radius:14px;background:var(--paper)}
#fmap .leaflet-popup-content{margin:14px 16px;width:300px!important;font-size:inherit;line-height:1.45}
#fmap .leaflet-popup-content p{margin:0 0 8px}
#fmap a.leaflet-popup-close-button{width:36px;height:36px;font-size:22px;line-height:34px}
@media(min-width:821px){.fcard-sheet{display:none!important}}
@media(max-width:820px){
 .legend.lmap{margin:0;border-radius:0;border-left:0;border-right:0;font-size:.74rem;gap:3px 12px}
 .mapbox{border-radius:0;border-left:0;border-right:0}
 #fmap{height:55vh;min-height:320px;max-height:520px}
 .mstatus{margin:0;padding:8px 14px;background:var(--cream2,#efe4cf);border-bottom:1px solid var(--line)}
 .mstatus .tolist{display:inline-flex;align-items:center;min-height:44px;margin:-12px 0}
}
/* the sticky site header (71px) must not cover the top of the map when it is scrolled into view (list taps, search, #fmap) */
.mapbox,#fmap{scroll-margin-top:84px}
/* event pins (#ftg-data evpins, e.g. Kingma's dinner in Grand Rapids): amber diamond + short label */
.fpin .d.evpin{background:#c9820e;border-radius:4px;transform:rotate(45deg);width:19px;height:19px;margin:-9.5px 0 0 -9.5px}
.fpin.evp .n{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:-8px;white-space:nowrap;font-size:.72rem;font-weight:700;color:#6b4306;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff;pointer-events:none}
.lg.evpin{background:#c9820e;border-radius:2px;transform:rotate(45deg);width:9px;height:9px}
.acts.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.evnote{font-size:.78rem;color:#7a5a1e;background:#f8ecd0;border-radius:6px;padding:4px 8px;margin:0 0 10px}
