.pc-wrap{display:grid;grid-template-columns:360px 1fr;gap:18px;align-items:start}
@media (max-width: 900px){
  .pc-wrap{
    grid-template-columns:1fr;
  }

  .pc-left{
    order:2;
  }

  .pc-right{
    position: relative !important;
    order:1;
    min-height:420px;
  }
}
.pc-left{background:#fff;border:1px solid #e6e6e6;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;min-height:520px}
.pc-search{padding:12px;border-bottom:1px solid #eee;background:#fafafa}
.pc-search-input{width:100%;padding:10px 12px;border:1px solid #e1e1e1;border-radius:8px;font-size:14px;outline:none}
.pc-categories{display:flex;flex-direction:column;gap:0}
.pc-cat{display:flex;align-items:center;justify-content:flex-start;width:100%;box-sizing:border-box;padding:12px 14px;border:0;border-bottom:1px solid #eee;background:#fff;cursor:pointer;font-weight:700;text-align:left;position:relative;padding-right:72px}
/* Belka koloru kategorii zawsze przy prawej krawędzi */
.pc-cat::after{content:"";position:absolute;right:14px;top:50%;transform:translateY(-50%);width:44px;height:10px;border-radius:999px;background:var(--cat-color, hsl(var(--pc-hue,0) 70% 50%));opacity:.9}
.pc-cat.is-active{background:#f3f5f7}
.pc-cat-group{display:block}
.pc-cat--all::after{display:none}
.pc-cat--title{position:relative}
.pc-cat-items{display:none;border-bottom:1px solid #eee}
.pc-cat-items.is-open{display:block}
.pc-cat--title.is-active + .pc-cat-items{display:block}
.pc-list{overflow:auto;flex:1}
.pc-row{width:100%;display:flex;gap:12px;align-items:center;padding:12px 14px;border:0;border-bottom:1px solid #f0f0f0;background:#fff;cursor:pointer;text-align:left}
.pc-row.is-dim{opacity:.45;transition:opacity .2s ease}
.pc-row.is-active{opacity:1}

.pc-row:hover{background:#fafafa}
.pc-row-logo{width:38px;height:38px;object-fit:contain;border-radius:8px;border:1px solid #eee;background:#fff}
.pc-row-logo--ph{display:block}
.pc-row-body{min-width:0}
.pc-row-title{font-weight:800;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-row-building{font-size:12px;color:#444;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.pc-row-sub{font-size:12px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.pc-row-more{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:8px;
  padding:7px 12px;
  border-radius:0;
  background:#E30613;
  color:#fff !important;
  text-decoration:none;
  font-weight:800;
  font-size:12px;
  line-height:1.2;
}

.pc-row-more:hover{
  opacity:.92;
}
.pc-empty{padding:16px;color:#666}

.pc-right{
  background:#fff;
  border:1px solid #e6e6e6;
  border-radius:10px;
  overflow:visible;
  display:flex;
  flex-direction:column;
  position:sticky;
  top:20px;
  align-self:start;
}
.pc-map-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #eee;background:#fafafa}
.pc-building-select{display:flex;align-items:center;gap:8px;font-size:13px}
.pc-building-select select{padding:7px 10px;border:1px solid #e1e1e1;border-radius:8px;background:#fff}
.pc-map-zoom{display:flex;gap:6px}
.pc-map-zoom button{width:38px;height:38px;border:1px solid #e1e1e1;border-radius:8px;background:#fff;cursor:pointer;font-weight:900;display: flex;align-items: center;justify-content: center;padding: 0px;}
.pc-pin{position:absolute;transform:translate(-50%,-100%);border:0;background:transparent;cursor:pointer;pointer-events:auto;z-index:1}
.pc-pin.is-dim{opacity:.25;filter:grayscale(1);transition:opacity .2s ease}
.pc-pin.is-active{opacity:1;filter:none;z-index:999}

.pc-pin-dot{display:block;width:14px;height:14px;border-radius:50%;background:#d60000;box-shadow:0 6px 12px rgba(0,0,0,.25)}
.pc-pin.is-active .pc-pin-dot{transform:scale(1.35)}
.pc-popup{position:absolute;right:14px;top:14px;width:min(360px, calc(100% - 28px));background:#fff;border:1px solid #e6e6e6;border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.18);padding:12px;opacity:0;pointer-events:none;transform:translateY(-6px);transition:all .15s ease;z-index:4}
.pc-popup.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}
.pc-popup.pc-popup--anchored{right:auto;top:auto;transform:translate(-50%, calc(-100% - 12px))}
.pc-popup.pc-popup--anchored.pc-popup--below{transform:translate(-50%, 12px)}
/* „Grot” wskazujący punkt na mapie – żeby był tylko JEDEN popup, ale było widać miejsce lokalu */
.pc-popup.pc-popup--anchored::after{content:"";position:absolute;left:50%;bottom:-12px;transform:translateX(-50%);width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid #fff;filter:drop-shadow(0 2px 0 rgba(0,0,0,.12))}
.pc-popup.pc-popup--anchored.pc-popup--below::after{bottom:auto;top:-12px;border-top:0;border-bottom:12px solid #fff}
.pc-popup-close{position:absolute;right:10px;top:8px;width:32px;height:32px;border-radius:10px;border:1px solid #eee;background:#fff;cursor:pointer;font-size:20px;line-height:1;    display: flex; align-items: center; justify-content: center; padding: 0px;}
.pc-pop-head{display:flex;gap:10px;align-items:center;padding-right:40px}
.pc-pop-logo{width:42px;height:42px;object-fit:contain;border:1px solid #eee;border-radius:10px;background:#fff}
.pc-pop-title{font-weight:900;font-size:16px}
.pc-pop-sub{font-size:12px;color:#666;margin-top:2px}
.pc-pop-meta{margin-top:10px;font-size:13px;color:#333}
.pc-pop-excerpt{margin-top:10px;font-size:13px;color:#444;line-height:1.4}
.pc-pop-line{margin-top:8px;font-size:13px;color:#333}
.pc-pop-actions{margin-top:12px}
.pc-pop-link{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border-radius:0px;background:#E30613 !important;color:#fff !important;text-decoration:none;font-weight:800;font-size:13px}

/* Map layout fix */
.pc-map-stage{
  position:relative;
  z-index:10;
  flex:1;
  min-height:520px;
  height:calc(100vh - 110px);
  background:#f6f6f7;
  overflow:hidden;
  cursor:grab;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:12px;
  user-select:none;
  -webkit-user-select:none;
}
@media(max-width:768px){.pc-map-stage{min-height:300px;}}

.pc-map-stage.is-dragging{cursor:grabbing}
.pc-map-inner{position:relative;transform-origin:center center;will-change:transform}
.pc-map-img{display:block;max-width:100%;max-height:100%;user-select:none;-webkit-user-drag:none}
.pc-markers{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:2}
.pc-pop-hours{margin-top:4px;white-space:pre-line}

/* Marker styles */
.pc-pin-dot{display:block;width:14px;height:14px;border-radius:50%;background:var(--pc-marker,#d60000);box-shadow:0 6px 12px rgba(0,0,0,.25)}
.pc-pin-txt{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#fff;border:2px solid var(--pc-marker,#d60000);color:#111;font-weight:900;box-shadow:0 6px 12px rgba(0,0,0,.20)}
.pc-pin-img{width:22px;height:22px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}

.pc-pin-fa{font-size:22px;line-height:1;color:var(--pc-marker,#d60000);filter:drop-shadow(0 4px 10px rgba(0,0,0,.25));background:rgba(255,255,255,.92);border-radius:999px;padding:6px;border:2px solid var(--pc-marker,#d60000)}

/* SVG + Canvas modes */
.pc-map-svg, .pc-map-canvas{position:relative;z-index:1}
.pc-map-svg svg{display:block;max-width:100%;max-height:100%}
.pc-svg-lokal{cursor:pointer;transition:opacity .12s ease}
.pc-svg-lokal.is-hover{opacity:.75}

/* Callout bubble to indicate selected location */
.pc-callout{position:absolute;z-index:5;left:0;top:0;transform:translate(-50%,-100%);background:#fff;border:1px solid #e6e6e6;border-radius:10px;box-shadow:0 16px 40px rgba(0,0,0,.18);padding:10px 44px 10px 12px;min-width:140px;max-width:260px;pointer-events:auto}
.pc-callout::after{content:"";position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid #fff;filter:drop-shadow(0 2px 0 rgba(0,0,0,.10))}
.pc-callout-title{font-weight:900;font-size:18px;line-height:1.1;margin:0;color:var(--pc-callout-color,#111);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-callout-close{position:absolute;right:8px;top:6px;width:30px;height:30px;border-radius:10px;border:1px solid #eee;background:#fff;cursor:pointer;font-size:20px;line-height:1;color:#666}
.pc-callout-close:hover{color:#111}
