/* ParksRadar world globe — cream (brand) 3D globe; green = open, red = closed. */
/* Legacy US radar map retired from the homepage (preserved in markup for the About page).
   The news ticker (#lp-ticker) stays. */
#lp-radar,#lp-map,.lp-mapkey{ display:none!important; }
.lp-map-wrap{ background:none!important; border:none!important; box-shadow:none!important; padding:0!important; margin:0!important; min-height:0!important; }
.pr-wm-section{ margin-top:6px; }
.pr-wm-head{ font-size:26px; }
.pr-wm-section{ max-width:1100px; margin:14px auto 0; padding:0 16px; }
.pr-wm-head{ font:700 22px Georgia,serif; color:#7a4e26; margin:0 0 2px; text-align:center; }
.pr-wm-sub{ color:#8a7456; font-size:13.5px; text-align:center; margin:0 0 14px; }
/* Front-page type-filter chips (2026-07-21) — brand warm pills; toggle marker visibility by type. */
.pr-wm-filters{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin:12px 0 2px; }
.pr-wm-filter{ font:600 12.5px system-ui,-apple-system,"Segoe UI",Arial,sans-serif; color:#7a4e26;
  background:#fffaf0; border:1px solid #e6d6ba; border-radius:999px; padding:6px 14px; cursor:pointer;
  transition:background .12s ease, color .12s ease; }
.pr-wm-filter:hover{ background:#f3ead9; }
.pr-wm-filter.is-active{ background:#7a4e26; color:#fff; border-color:#6b4220; }
.pr-wm-filter:focus-visible{ outline:3px solid #2f8f57; outline-offset:2px; }
.pr-wm-legend{ display:flex; gap:18px; justify-content:center; font-size:12.5px; color:#8a7456; margin:12px 0 0; flex-wrap:wrap; }
.pr-wm-legend i{ display:inline-block; width:11px; height:11px; border-radius:50%; vertical-align:middle; margin-right:5px; }
/* Cream globe canvas with a soft warm halo — no hard ring, just depth + inner warmth. */
#prWorldMap{ height:520px; border-radius:18px; overflow:hidden; background:#efe2bf;
  box-shadow:0 14px 48px rgba(40,26,12,.22), inset 0 0 140px rgba(201,154,78,.18); }
/* Attribution — cream background, muted brown text; logo watermark hidden (text attribution kept). */
#prWorldMap .maplibregl-ctrl-attrib{ background:rgba(246,238,221,.75); border-radius:6px; }
#prWorldMap .maplibregl-ctrl-attrib a{ color:#7a6a55; }
#prWorldMap .maplibregl-ctrl-logo{ display:none!important; }
/* Navigation controls — cream glass treatment matching the map palette. */
#prWorldMap .maplibregl-ctrl-group{ background:rgba(246,238,221,.88); border:1px solid #dccda8; border-radius:10px;
  box-shadow:0 2px 8px rgba(40,26,12,.14); }
#prWorldMap .maplibregl-ctrl-group button{ background:transparent; border-bottom:1px solid #e6d6ba; }
#prWorldMap .maplibregl-ctrl-group button:last-child{ border-bottom:none; }
#prWorldMap .maplibregl-ctrl-group button:hover{ background:rgba(201,154,78,.15); }
#prWorldMap .maplibregl-ctrl-icon{ filter:sepia(60%) saturate(80%) brightness(.52); }
/* Markers. */
.pr-wm-pin{ width:16px; height:16px; }
.pr-wm-dot{ display:block; width:11px; height:11px; border-radius:50%; border:1.5px solid #fffaf0; }
.pr-wm-dot--open{ background:#3fae6b; box-shadow:0 0 0 2px rgba(63,174,107,.30), 0 0 10px 3px rgba(63,174,107,.6);
  animation:pr-wm-pulse 2.4s ease-in-out infinite; }
.pr-wm-dot--closed{ background:#e0543c; box-shadow:0 0 0 2px rgba(224,84,60,.28), 0 0 8px 2px rgba(224,84,60,.5); }
.pr-wm-dot--partial{ width:8px; height:8px; background:#b39a6e; border-color:#f6eedd; opacity:.8; box-shadow:none; }
/* 2026-07-15: a real, clickable, activated discovery candidate with no curated hours yet (never
   green/red like open/closed -- that would claim a schedule this park doesn't have). Distinct amber
   pulse so it reads as "new" rather than "operating status unknown". */
.pr-wm-dot--quickview{ background:#efa636; box-shadow:0 0 0 2px rgba(239,166,54,.30), 0 0 10px 3px rgba(239,166,54,.55);
  animation:pr-wm-pulse 2.4s ease-in-out infinite; }
/* 2026-07-17 (Worldwide Parks: Self-Registering Globe, change B): a machine-auto-registered,
   two-source-corroborated park that has NOT been human-reviewed. A distinct indigo (never green/red
   "operating" nor the amber human-activated tier), slightly smaller + gentler glow, so a worldwide
   discovered pin reads honestly as "profile warming, machine-found" rather than curated/reviewed. */
.pr-wm-dot--discovered{ width:9px; height:9px; background:#6f7bd6; box-shadow:0 0 0 2px rgba(111,123,214,.28), 0 0 9px 2px rgba(111,123,214,.5);
  animation:pr-wm-pulse 3s ease-in-out infinite; }
/* Covered markers read as buttons; keyboard focus is visible. */
.pr-wm-pin--cov{ cursor:pointer; }
.pr-wm-pin--cov:focus-visible{ outline:3px solid #2f8f57; outline-offset:3px; border-radius:50%; }
.pr-wm-pin--partial{ cursor:default; }
/* Popup CTA — a real button that navigates to the park profile. */
.pr-wm-pop{ font:600 13px -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; color:#3d2b1a; }
.pr-wm-cta{ display:inline-block; margin-top:7px; background:#3fae6b; color:#fff; border:none; border-radius:8px;
  padding:6px 12px; font-weight:800; font-size:12.5px; cursor:pointer; }
.pr-wm-cta:hover{ background:#379a5e; }
.pr-wm-cta:focus-visible{ outline:3px solid #2f2113; outline-offset:2px; }
.pr-wm-progress{ color:#9c8460; font-style:italic; }
/* Keyboard/screen-reader fallback ONLY — the visible navigation is the MapLibre markers plus the
   "Today across the parks" tiles below. A small visible hint points keyboard users to the cards;
   the button list itself is visually hidden (still focusable + announced), so there is NO giant
   duplicate pill row on the page. */
.pr-wm-parklist{ max-width:1100px; margin:6px auto 0; padding:0 16px; }
.pr-wm-parklist__h{ font:600 12px -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; color:#a58c63; margin:0; text-align:center; }
.pr-wm-parklist__row{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.pr-wm-parklink{ background:#fff; border:1px solid #e6d6ba; border-radius:9px; padding:5px 11px; cursor:pointer; }
.pr-wm-parklink:focus{ position:static !important; width:auto; height:auto; clip:auto; margin:2px; outline:3px solid #2f8f57; }
.pr-wm-pop--partial .pr-wm-dot--partial{ display:inline-block; width:8px; height:8px; vertical-align:middle; }
@keyframes pr-wm-pulse{ 0%,100%{ box-shadow:0 0 0 2px rgba(63,174,107,.30), 0 0 8px 2px rgba(63,174,107,.5);} 50%{ box-shadow:0 0 0 3px rgba(63,174,107,.16), 0 0 16px 5px rgba(63,174,107,.8);} }
@media (prefers-reduced-motion: reduce){ .pr-wm-dot--open{ animation:none; } }
@media (max-width:640px){ #prWorldMap{ height:400px; } }

/* ============================================================================
   Map filter chips — discoverable + tactile. Briefing Board doctrine §4/§8:
   the map is the main draw, so its category filters must be big, obvious, and
   satisfying to tap. These override the inline `.pchip` base via higher
   specificity (`.pchips .pchip`), so the 412 KB index.html is never touched.
   ON  = filled category colour (var(--c), set per chip in world-map.js)
   OFF = white outline + a colour dot (still shows which category it is)
   ============================================================================ */
.pchips{ gap:10px; margin:4px 0 12px; }
.pchips .pchip{ display:inline-flex; align-items:center; gap:7px; border:1.5px solid var(--c); background:var(--c);
  color:#fff; border-radius:999px; padding:9px 15px; font-size:14px; font-weight:700;
  box-shadow:0 1px 2px rgba(40,26,12,.10);
  transition:transform .08s ease, box-shadow .12s ease, background .12s ease; }
.pchips .pchip::before{ content:""; width:8px; height:8px; border-radius:50%; background:#fff; opacity:.92; flex:none; }
.pchips .pchip:hover{ transform:translateY(-1px); box-shadow:0 3px 9px rgba(40,26,12,.16); }
.pchips .pchip:active{ transform:scale(.94); }
.pchips .pchip:focus-visible{ outline:3px solid #2f2113; outline-offset:2px; }
.pchips .pchip.off{ background:#fff; color:#7a6a55; border-color:var(--line); box-shadow:none; opacity:1; }
.pchips .pchip.off::before{ background:var(--c); opacity:.6; }
.pchips .pchip--disabled, .pchips .pchip--disabled.off{ background:#f3ead7; border-color:#c9b48c; color:#9c8767; text-decoration:line-through; }
.pchips .pchip--disabled::before{ display:none; }
@media (max-width:700px){ .pchips .pchip{ padding:10px 16px; font-size:15px; } }

/* Full operating-state marker dots (2026-07-21) — one color per current state (see the legend). */
.pr-wm-dot--opens-later{ background:#efa636; box-shadow:0 0 0 2px rgba(239,166,54,.28), 0 0 8px 2px rgba(239,166,54,.45); }
.pr-wm-dot--seasonal{ background:#9c5b3b; box-shadow:0 0 0 2px rgba(156,91,59,.26); }
.pr-wm-dot--permclosed{ width:9px; height:9px; background:#7a1f14; box-shadow:0 0 0 2px rgba(122,31,20,.30); }
.pr-wm-dot--unknown{ background:#9c8767; box-shadow:none; }
