/* Shared, locally served parking map; styles are limited to the two park blocks. */
[data-parking-map] .pmap-intro { max-width: 760px; margin: 0 0 24px; font-size: .875rem; line-height: 1.7; }
[data-parking-map] .pmap-layout { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 28px; align-items: start; padding-bottom: 24px; }
.pmap-map { position: sticky; top: 110px; min-width: 0; margin: 0; }
.pmap-map-frame { position: relative; aspect-ratio: 1; overflow: hidden; border: 1px solid #c3b398; background: #f7f3ec; }
.pmap-map-frame > img { display: block; width: 100%; height: 100%; object-fit: contain; }
.pmap-lines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.pmap-lines line { stroke: #674b26; stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.pmap-lines circle { fill: #674b26; }
.pmap-marker { position: absolute; left: var(--map-x); top: var(--map-y); transform: translate(-50%,-50%); z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; min-width: 44px; padding: 0; border: 2px solid #f7f3ec; border-radius: 50%; box-shadow: 0 1px 5px #30271d40; background: #30271d; color: #fff8ed; font: 600 .875rem/1 var(--font-body); cursor: pointer; }
.pmap-marker:disabled { opacity: 1; cursor: default; }
.pmap-marker:hover,.pmap-marker.is-selected { background: #9a7744; color: #fff; }
.pmap-marker:focus-visible { z-index: 4; outline: 3px solid #785d36; outline-offset: 3px; }
.pmap-practice { position: absolute; left: 48.699%; top: 51.17%; transform: translate(-50%,-50%); z-index: 3; display: grid; place-items: center; width: 20px; height: 20px; border: 2px solid #fff8ed; border-radius: 50%; background: #b08135; box-shadow: 0 0 0 1px #674b26; }
.pmap-practice::before { content: '+'; color: #fff; font: 600 17px/1 var(--font-body); }
.pmap-practice > span { position: absolute; right: 25px; white-space: nowrap; padding: 4px 6px; background: #f7f3ec; border: 1px solid #b69a72; color: #493821; font: 600 .625rem/1.4 var(--font-body); }
.pmap-map figcaption { display: grid; gap: 5px; padding-top: 12px; font-size: .75rem; line-height: 1.7; }
.pmap-map figcaption a { text-decoration: underline; text-underline-offset: 3px; }
[data-parking-map] .pmap-places { display: grid; grid-template-columns: 1fr; gap: 12px; min-width: 0; }
[data-parking-map] .pmap-place { min-width: 0; padding: 20px; border: 1px solid #c3b398; scroll-margin-top: 110px; }
[data-parking-map] .pmap-place :is(h3,h4) { display: flex; gap: 12px; align-items: start; }
.pmap-number { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; border: 1px solid currentColor; border-radius: 50%; font: 500 .75rem/1 var(--font-body); }
[data-parking-map] .pmap-place.is-selected { border-color: #9a7744; box-shadow: inset 3px 0 #9a7744; }
[data-parking-map] .pmap-place:focus { outline: 2px solid #9a7744; outline-offset: 3px; }
.main-parking .pmap-place { border-color: var(--gold-line); }
.main-parking .pmap-map figcaption a { color: var(--gold-warm); }
.b-parking .pmap-map figcaption a { color: #674b26; }
.b-design-light .b-final .pmap-intro { max-width: 760px; font-size: .875rem; margin-bottom: 24px; }
@media (max-width: 760px) {
  [data-parking-map] .pmap-layout { grid-template-columns: 1fr; gap: 24px; }
  .pmap-map { position: relative; top: auto; }
  [data-parking-map] .pmap-place { padding: 18px; }
}
