/* Seat price map (/seat-price-map/ and the homepage #prices section). Script: assets/price-map.js */
.pm{--soft:var(--acc-soft);--acc-wash:color-mix(in srgb,var(--acc) 10%,var(--bg));--map-grid:var(--map-minor);--map-road-edge:var(--line);--map-label:var(--muted);--pin-ink:var(--pin);--pin-on:var(--pin-text);--shadow:rgba(0,0,0,.14);display:flex;flex-direction:column;gap:16px;margin:8px 0 24px}
.pm .tag{font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.pm .wm{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-weight:600;font-size:15px;color:var(--ink);opacity:.85;pointer-events:none}.pm .wm b{color:var(--acc);font-weight:600}
.pm .cities{display:flex;flex-wrap:wrap;gap:8px}
.pm .cities button{font:600 13px var(--body);border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;padding:7px 14px;cursor:pointer;display:flex;gap:6px;align-items:center}
.pm .cities button span{color:var(--muted);font-weight:500;font-variant-numeric:tabular-nums}
.pm .cities button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pm .cities button[aria-pressed="true"] span{color:var(--bg);opacity:.7}
.pm .cities button:focus-visible,.pm .row:focus-visible,.pm .back:focus-visible,.pm .bubble:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.pm .main{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:start}
.pm .mapcard{position:relative;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--map-bg);box-shadow:0 20px 50px -30px var(--shadow)}
.pm .mapcard svg{display:block;width:100%;height:auto;aspect-ratio:10/8;touch-action:manipulation}
@media (max-width:640px){.pm .mapcard svg{aspect-ratio:6/7.4}}
.pm .maptop{position:absolute;left:14px;top:14px;right:14px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;pointer-events:none}
.pm .crumb{pointer-events:auto;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:8px 12px;box-shadow:0 6px 18px -10px var(--shadow);min-width:0}
.pm .crumb .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.pm .crumb .v{font-family:var(--display);font-weight:600;font-size:17px;line-height:1.2}
.pm .back{pointer-events:auto;font:600 13px var(--body);background:var(--ink);color:var(--bg);border:0;border-radius:999px;padding:8px 14px;cursor:pointer;white-space:nowrap}
.pm .legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);padding:10px 14px 12px;border-top:1px solid var(--line);background:var(--bg)}
.pm .legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.pm .lg-p{background:var(--acc)}.pm .lg-r{background:var(--pin-ink)}.pm .lg-d{border:2px solid var(--pin-ink);background:transparent}
.pm .bubble{cursor:pointer}
.pm .bubble{transition:opacity .3s}.pm .bubble .halo{transition:r .2s}
.pm .bubble:hover .halo{r:var(--hr)}
.pm .panel{border:1px solid var(--line);border-radius:20px;background:var(--bg);display:flex;flex-direction:column;min-width:0}
.pm .sum{padding:18px 18px 14px;display:flex;flex-direction:column;gap:12px;border-bottom:1px solid var(--line)}
.pm .sum .city{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:-.4px}
.pm .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pm .stat{background:var(--soft);border-radius:12px;padding:10px 12px;min-width:0}
.pm .stat .n{font-family:var(--display);font-weight:600;font-size:19px;font-variant-numeric:tabular-nums;white-space:nowrap}
.pm .stat .l{font-size:11.5px;color:var(--muted);line-height:1.3}
.pm .scale{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding:10px 18px 4px;font-variant-numeric:tabular-nums}
.pm .rows{display:flex;flex-direction:column;padding:0 8px 10px;max-height:520px;overflow:auto}
.pm .row{display:grid;grid-template-columns:minmax(0,1fr) 30px;grid-template-rows:auto auto;gap:4px 10px;padding:9px 10px;border-radius:12px;cursor:pointer;border:1px solid transparent;background:none;text-align:left;font:inherit;color:inherit;width:100%}
.pm .row:hover{background:var(--soft)}
.pm .row.on{border-color:var(--acc);background:var(--acc-wash)}
.pm .row .nm{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm .row .ct{grid-row:1/3;grid-column:2;align-self:center;justify-self:end;font-family:var(--display);font-weight:600;font-variant-numeric:tabular-nums}
.pm .track{position:relative;height:16px}
.pm .track .base{position:absolute;left:0;right:0;top:7px;height:2px;background:var(--line);border-radius:2px}
.pm .track .rng{position:absolute;top:4px;height:8px;border-radius:8px;background:var(--acc);min-width:8px}
.pm .track .txt{position:absolute;top:-1px;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--acc-deep)}
.pm .track .pm-ask{position:absolute;left:0;top:-1px;font-size:11.5px;color:var(--muted)}
.pm .detail{padding:18px;display:flex;flex-direction:column;gap:14px}
.pm .detail .big{font-family:var(--display);font-weight:700;font-size:30px;letter-spacing:-.8px;font-variant-numeric:tabular-nums;line-height:1.1}
.pm .detail .big small{font-size:14px;font-weight:500;color:var(--muted);letter-spacing:0}
.pm .detail p{margin:0;color:var(--muted);max-width:60ch}
.pm .pm-cta{display:inline-flex;align-self:flex-start;align-items:center;gap:8px;background:var(--acc);color:var(--on-acc);text-decoration:none;font-weight:700;border-radius:999px;padding:10px 16px}
.pm .pm-cta:hover{background:var(--acc-deep)}
.pm .note{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;max-width:90ch}
.pm .note b{color:var(--ink);font-weight:600}
@media (max-width:860px){.pm .main{grid-template-columns:minmax(0,1fr)}.pm .rows{max-height:none}}
@media (max-width:420px){.pm .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.pm .stat{padding:8px}.pm .stat .n{font-size:16px}.pm .legend{font-size:11px}}
@media (prefers-reduced-motion: reduce){.pm .bubble .halo{transition:none}}
