@keyframes pn-marquee-r{0%{transform:translateX(-50%)}100%{transform:translateX(0)}}
@keyframes pn-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
@keyframes pn-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
.pn-grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px)}
@media(max-width:860px){.pn-grid2{grid-template-columns:1fr !important;gap:48px}}
.pn-zone-grid{display:grid;grid-template-columns:3fr 2fr;gap:clamp(32px,5vw,64px);align-items:center}
@media(max-width:860px){.pn-zone-grid{grid-template-columns:1fr !important;gap:40px}}
.pn-cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
@media(max-width:760px){.pn-cards3{grid-template-columns:1fr !important}}
.pn-cards4{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pn-mall-grid{display:grid;grid-template-columns:7fr 5fr;gap:32px;align-items:stretch}
@media(max-width:860px){.pn-mall-grid{grid-template-columns:1fr !important}}
.pn-mall-feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}/* auto-fit, not repeat(4): the cards are editable now, so the row has to work with however many the client leaves. Empty tracks collapse and the remaining cards share the full width instead of huddling on the left. */
@media(max-width:860px){.pn-mall-feats{grid-template-columns:1fr 1fr !important;gap:24px}}
@media(max-width:520px){.pn-mall-feats{grid-template-columns:1fr !important}}
/* ---- location: interactive map + distance list ---- */
.pn-map-embed{position:relative;width:100%;height:clamp(320px,50vh,540px);border:1px solid rgba(255,255,255,.12);background:#E8E8E8;overflow:hidden}
.pn-map-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
#pn-map{position:absolute;inset:0;background:transparent}
.leaflet-container{font-family:'Hanken Grotesk',sans-serif;background:#E8E8E8}
.leaflet-control-attribution{background:rgba(255,255,255,.78);font-size:10px;color:rgba(13,27,53,.6)}
.leaflet-control-attribution a{color:rgba(13,27,53,.75)}
.leaflet-bar a{color:#0D1B35;border-bottom-color:rgba(13,27,53,.15)}
/* markers: zero-size anchors, so the dot and chip position off the exact coordinate */
.pn-mk{width:0 !important;height:0 !important;transition:opacity .35s}
.pn-mk.is-dim{opacity:.35}
.pn-mk-dot{position:absolute;left:0;top:0;width:9px;height:9px;transform:translate(-50%,-50%);background:#0D1B35;border-radius:50%;box-shadow:0 0 0 3px rgba(255,255,255,.9);transition:background .3s,box-shadow .3s}
.pn-mk-label{position:absolute;top:0;left:16px;transform:translateY(-50%);background:#0D1B35;color:#fff;padding:5px 9px;font-family:'Renogare',sans-serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;transition:background .3s,color .3s}
.pn-mk.rtl .pn-mk-label{left:auto;right:16px}
.pn-mk.is-active .pn-mk-dot{background:#FCB415;box-shadow:0 0 0 3px #0D1B35}
.pn-mk.is-active .pn-mk-label{background:#FCB415;color:#0D1B35}
.pn-mk-home .pn-mk-dot{width:13px;height:13px;background:#FCB415;box-shadow:0 0 0 3px #0D1B35}
.pn-mk-home .pn-mk-label{background:#FCB415;color:#0D1B35;font-size:11px;left:auto;right:-7px;top:auto;bottom:14px;transform:none}
.pn-mk-time .pn-mk-label{left:0;transform:translate(-50%,-50%);background:#FCB415;color:#0D1B35;font-size:11px}
@media(max-width:620px){.pn-mk:not(.pn-mk-home):not(.is-active) .pn-mk-label{display:none}.pn-mk-label{font-size:9px;letter-spacing:.1em;padding:4px 7px}}
/* distance cards double as the map's controls */
.pn-loc-list{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px);list-style:none;margin:clamp(36px,5vh,56px) 0 0;padding:0}
@media(max-width:860px){.pn-loc-list{grid-template-columns:1fr !important;gap:30px}}
.pn-loc-item{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:0;border-top:2px solid rgba(252,180,21,.32);padding:20px 0 0;cursor:pointer;transition:border-color .3s}
.pn-loc-item:hover{border-top-color:rgba(252,180,21,.66)}
.pn-loc-item[aria-pressed="true"]{border-top-color:#FCB415}
.pn-loc-item:focus-visible{outline:2px solid #FCB415;outline-offset:6px}
.pn-loc-fig{display:flex;align-items:baseline;gap:9px;margin-bottom:14px}
.pn-loc-num{font-family:'Renogare',sans-serif;color:#FCB415;font-size:clamp(40px,4.6vw,58px);line-height:.8}
.pn-loc-unit{font-family:'Hanken Grotesk',sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.34)}
.pn-loc-name{display:block;font-family:'Renogare',sans-serif;color:#fff;font-size:19px;margin-bottom:6px}
.pn-loc-mode{display:block;color:#FCB415;font-size:13px;letter-spacing:.02em;margin-bottom:10px}
.pn-loc-desc{display:block;color:rgba(255,255,255,.55);font-size:15px;line-height:1.7}
.pn-partners{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:680px){.pn-partners{grid-template-columns:1fr 1fr !important}}
.pn-hide-sm{display:block}
@media(max-width:860px){.pn-hide-sm{display:none !important}}
.pn-lease{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:1080px){.pn-lease{grid-template-columns:1fr !important}}
@media(max-width:860px){.pn-lease{grid-template-columns:1fr 1fr !important}}
@media(max-width:560px){.pn-lease{grid-template-columns:1fr !important}}
