:root{
  --pb4-dark:#05070c;
  --pb4-navy:#0b1220;
  --pb4-gold:#f3d98d;
  --pb4-gold2:#c8a45d;
  --pb4-green:#10483f;
}

/* =========================================================
   SPRINT 4 ULTRA V2 — izolacja mapy od globalnego CSS
   ========================================================= */
.pb4-page{
  background:#f5f2eb;
  color:#17130b;
  min-height:100vh;
  padding-top:0;
}
.pb4-page *,
.pb4-page *::before,
.pb4-page *::after{box-sizing:border-box}
.pb4-shell{width:min(1440px,calc(100% - 40px));margin-inline:auto}

.pb4-hero{
  position:relative;
  overflow:hidden;
  padding:170px 0 70px;
  background:
    radial-gradient(circle at 15% 10%,rgba(243,217,141,.22),transparent 28%),
    radial-gradient(circle at 85% 20%,rgba(16,72,63,.42),transparent 34%),
    linear-gradient(135deg,#05070c,#111827 58%,#2b2116);
  color:#fff;
}
.pb4-hero:after{
  content:"";
  position:absolute;
  inset:auto -10% -65% 25%;
  height:520px;
  background:radial-gradient(ellipse,rgba(243,217,141,.12),transparent 66%);
  pointer-events:none;
}
.pb4-hero-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:46px;
  align-items:center;
  position:relative;
  z-index:2;
}
.pb4-kicker{
  display:inline-flex;
  padding:10px 15px;
  border-radius:999px;
  background:rgba(243,217,141,.11);
  border:1px solid rgba(243,217,141,.28);
  color:var(--pb4-gold);
  font-size:12px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.pb4-hero h1{
  margin:22px 0 18px;
  font-size:clamp(46px,6.2vw,94px);
  line-height:.88;
  letter-spacing:-.085em;
}
.pb4-hero h1 em{font-style:normal;color:var(--pb4-gold)}
.pb4-hero p{max-width:820px;color:rgba(255,255,255,.72);font-size:17px;line-height:1.75}
.pb4-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.pb4-hero-actions button,.pb4-hero-actions a{
  min-height:54px;
  padding:0 22px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font:950 14px Inter,Arial,sans-serif;
  border:0;
  text-decoration:none;
  cursor:pointer;
}
.pb4-hero-actions button{background:linear-gradient(135deg,var(--pb4-gold),var(--pb4-gold2));color:#17130b}
.pb4-hero-actions a{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:#fff}
.pb4-ai-card{
  padding:30px;
  border-radius:34px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(243,217,141,.23);
  box-shadow:0 30px 90px rgba(0,0,0,.28);
  backdrop-filter:blur(20px);
}
.pb4-ai-card>span{color:var(--pb4-gold);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.11em}
.pb4-ai-card>strong{display:block;margin:15px 0 8px;font-size:29px;line-height:1.05}
.pb4-ai-card>p{font-size:14px;margin:0}
.pb4-mode-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px}
.pb4-mode-switch button{min-height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;font-weight:900;cursor:pointer}
.pb4-mode-switch button.is-active{background:linear-gradient(135deg,var(--pb4-gold),var(--pb4-gold2));color:#17130b}

/* Stabilny układ — konkretna wysokość zamiast height:100% */
.pb4-map-shell{
  width:min(1540px,calc(100% - 28px));
  height:820px;
  min-height:820px;
  margin:34px auto 70px;
  display:grid;
  grid-template-columns:330px minmax(0,1fr) 330px;
  align-items:stretch;
  background:#fff;
  border:1px solid rgba(24,20,14,.10);
  border-radius:34px;
  overflow:hidden;
  box-shadow:0 30px 90px rgba(20,16,10,.14);
  position:relative;
  isolation:isolate;
}
.pb4-sidebar,.pb4-detail{
  background:#fff;
  padding:22px;
  overflow-y:auto;
  overflow-x:hidden;
  height:820px;
  max-height:820px;
}
.pb4-sidebar{border-right:1px solid rgba(24,20,14,.08)}
.pb4-detail{border-left:1px solid rgba(24,20,14,.08)}
.pb4-sidebar-head{display:flex;justify-content:space-between;align-items:center}
.pb4-sidebar-head span{display:block;color:#8f6b2b;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.pb4-sidebar-head strong{display:block;margin-top:5px;font-size:22px}
.pb4-sidebar-head button{display:none;border:0;background:none;font-size:28px}
.pb4-search{margin:18px 0;display:flex;gap:9px;align-items:center;padding:0 13px;height:48px;border-radius:15px;background:#f6f3ec;border:1px solid rgba(24,20,14,.08)}
.pb4-search input{width:100%;border:0;outline:0;background:transparent;font:800 13px Inter,Arial,sans-serif}
.pb4-filters{display:flex;flex-wrap:wrap;gap:7px}
.pb4-filters button{min-height:36px;padding:0 10px;border:1px solid rgba(24,20,14,.09);border-radius:999px;background:#faf8f3;color:#40392e;font-weight:900;font-size:12px;cursor:pointer}
.pb4-filters button.is-active{background:#17130b;color:#fff}
.pb4-list-head{display:flex;justify-content:space-between;margin:20px 0 10px;font-size:12px;font-weight:950;color:#6f675c}
.pb4-list-head b{color:#17130b}
.pb4-results{display:grid;gap:9px}
.pb4-result{display:grid;grid-template-columns:54px 1fr;gap:11px;align-items:center;padding:9px;border-radius:16px;border:1px solid rgba(24,20,14,.07);background:#fff;cursor:pointer;text-align:left}
.pb4-result:hover,.pb4-result.is-active{border-color:rgba(200,164,93,.45);background:#fff9ea}
.pb4-result img,.pb4-result .pb4-result-icon{width:54px!important;height:54px!important;max-width:54px!important;border-radius:13px;object-fit:cover}
.pb4-result-icon{display:grid;place-items:center;background:#f1ede4;font-size:23px}
.pb4-result strong{display:block;font-size:13px;line-height:1.2}
.pb4-result small{display:block;color:#756b5c;margin-top:4px;font-size:11px}

/* MAPA: brak transformów, filtrów i animacji na rodzicach */
.pb4-map-area{
  position:relative;
  min-width:0;
  width:100%;
  height:820px;
  min-height:820px;
  overflow:hidden;
  background:#dce7df;
  contain:layout paint;
  isolation:isolate;
}
.pb4-map-frame{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:hidden;
  background:#dce7df;
}
.pb4-map-area #pb4Map{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:820px!important;
  min-height:820px!important;
  max-height:820px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  overflow:hidden!important;
  background:#dce7df!important;
  transform:none!important;
  filter:none!important;
  opacity:1!important;
}

/* Najważniejsza poprawka: globalne reguły img nie mogą deformować kafelków Leaflet */
.pb4-map-area .leaflet-container,
.pb4-map-area .leaflet-map-pane,
.pb4-map-area .leaflet-tile-pane,
.pb4-map-area .leaflet-overlay-pane,
.pb4-map-area .leaflet-marker-pane,
.pb4-map-area .leaflet-shadow-pane,
.pb4-map-area .leaflet-popup-pane{
  transform-style:flat;
  filter:none!important;
  opacity:1;
}
.pb4-map-area .leaflet-container img,
.pb4-map-area .leaflet-tile,
.pb4-map-area img.leaflet-tile{
  width:256px!important;
  height:256px!important;
  min-width:256px!important;
  min-height:256px!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:fill!important;
  object-position:50% 50%!important;
  display:block!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:1!important;
  transition:none!important;
  animation:none!important;
}
.pb4-map-area .leaflet-marker-icon,
.pb4-map-area .leaflet-marker-shadow{
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  filter:none!important;
}
.pb4-map-area .leaflet-control-container img{
  max-width:none!important;
}
.pb4-map-area .leaflet-tile-container{
  pointer-events:none;
  transition:none!important;
}
.pb4-map-area .leaflet-fade-anim .leaflet-tile,
.pb4-map-area .leaflet-zoom-anim .leaflet-zoom-animated{
  transition:none!important;
}
.pb4-map-area .leaflet-pane,
.pb4-map-area .leaflet-control{
  z-index:auto;
}
.pb4-map-area .leaflet-map-pane{z-index:200}
.pb4-map-area .leaflet-tile-pane{z-index:200}
.pb4-map-area .leaflet-overlay-pane{z-index:400}
.pb4-map-area .leaflet-shadow-pane{z-index:500}
.pb4-map-area .leaflet-marker-pane{z-index:600}
.pb4-map-area .leaflet-tooltip-pane{z-index:650}
.pb4-map-area .leaflet-popup-pane{z-index:700}
.pb4-map-area .leaflet-control{z-index:800}

.pb4-map-loader{
  position:absolute;
  inset:0;
  z-index:900;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:13px;
  background:linear-gradient(135deg,#dce7df,#eef2ed);
  color:#17130b;
  transition:opacity .25s ease,visibility .25s ease;
}
.pb4-map-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.pb4-map-loader span{
  width:42px;height:42px;border-radius:50%;
  border:4px solid rgba(16,72,63,.18);
  border-top-color:#10483f;
  animation:pb4spin .8s linear infinite;
}
@keyframes pb4spin{to{transform:rotate(360deg)}}

.pb4-mobile-filter{display:none}
.pb4-map-legend{position:absolute;left:18px;bottom:18px;z-index:900;display:flex;align-items:center;gap:12px;padding:10px 13px;border-radius:15px;background:rgba(255,255,255,.95);box-shadow:0 10px 30px rgba(0,0,0,.14);font-size:11px;font-weight:900}
.pb4-map-legend span{display:flex;align-items:center;gap:5px}
.pb4-map-legend i{width:10px;height:10px;border-radius:50%}
.pb4-map-legend i.stay{background:#c8a45d}
.pb4-map-legend i.poi{background:#10483f}
.pb4-map-legend small{color:#756b5c}
.pb4-marker{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;border:2px solid #fff;box-shadow:0 7px 18px rgba(0,0,0,.28);font-size:20px}
.pb4-marker.stay{background:linear-gradient(135deg,#f3d98d,#c8a45d)}
.pb4-marker.poi{background:#10483f}
.pb4-map-area .leaflet-div-icon{background:transparent!important;border:0!important;width:42px!important;height:42px!important}
.pb4-map-area .leaflet-popup-content-wrapper{border-radius:18px}
.pb4-popup strong{font-size:14px}
.pb4-popup small{display:block;color:#756b5c;margin-top:4px}

.pb4-detail-empty{min-height:500px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#756b5c}
.pb4-detail-empty span{font-size:56px}
.pb4-detail-empty strong{margin-top:14px;color:#17130b;font-size:24px}
.pb4-detail-card>img{width:100%!important;height:180px!important;object-fit:cover;border-radius:22px}
.pb4-detail-badge{display:inline-flex;margin-top:16px;padding:7px 10px;border-radius:999px;background:#fff8e7;color:#6d5420;font-size:11px;font-weight:950}
.pb4-detail-card h3{margin:12px 0 7px;font-size:27px;line-height:1;letter-spacing:-.05em}
.pb4-detail-card>p{color:#756b5c;line-height:1.6}
.pb4-distance{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0}
.pb4-distance div{padding:13px;border-radius:16px;background:#f7f4ed}
.pb4-distance small{display:block;color:#756b5c;font-weight:800}
.pb4-distance strong{display:block;margin-top:5px}
.pb4-tags{display:flex;flex-wrap:wrap;gap:6px}
.pb4-tags span{padding:6px 8px;border-radius:999px;background:#edf6f2;color:#10483f;font-size:11px;font-weight:900}
.pb4-detail-cta{display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:18px;border-radius:999px;background:#17130b;color:#fff;text-decoration:none;font-weight:950}
.pb4-note{margin-top:12px;color:#8a8174;font-size:11px;line-height:1.5}

.pb4-plan{padding:0 0 80px}
.pb4-plan-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}
.pb4-plan-head span{color:#8f6b2b;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.pb4-plan-head h2{margin:8px 0 0;font-size:clamp(32px,4vw,54px);letter-spacing:-.06em}
.pb4-plan-head button{min-height:48px;padding:0 18px;border:0;border-radius:999px;background:#17130b;color:#fff;font-weight:950;cursor:pointer}
.pb4-plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pb4-plan-grid article{padding:24px;border-radius:28px;background:#fff;border:1px solid rgba(24,20,14,.08);box-shadow:0 15px 40px rgba(20,16,10,.06)}
.pb4-plan-grid article>b{color:#8f6b2b;font-size:12px}
.pb4-plan-grid article>span{display:block;font-size:36px;margin:16px 0}
.pb4-plan-grid article>strong{font-size:21px}
.pb4-plan-grid article>p{color:#756b5c;line-height:1.6}

@media(max-width:1250px){
  .pb4-map-shell{grid-template-columns:300px minmax(0,1fr)}
  .pb4-detail{
    position:fixed;
    right:14px;
    bottom:14px;
    z-index:1000001;
    width:min(360px,calc(100% - 28px));
    height:auto;
    max-height:70vh;
    border:1px solid rgba(24,20,14,.12);
    border-radius:26px;
    box-shadow:0 25px 80px rgba(0,0,0,.25);
  }
  .pb4-detail:has(.pb4-detail-empty){display:none}
}
@media(max-width:900px){
  .pb4-hero-grid{grid-template-columns:1fr}
  .pb4-map-shell{display:block;height:650px;min-height:650px}
  .pb4-sidebar{
    position:fixed;
    left:12px;
    top:90px;
    bottom:12px;
    z-index:1000002;
    width:min(360px,calc(100% - 24px));
    height:auto;
    max-height:none;
    border-radius:25px;
    box-shadow:0 25px 90px rgba(0,0,0,.28);
    transform:translateX(-115%);
    transition:transform .28s ease;
  }
  .pb4-sidebar.is-open{transform:translateX(0)}
  .pb4-sidebar-head button{display:block}
  .pb4-map-area,.pb4-map-frame,.pb4-map-area #pb4Map{height:650px!important;min-height:650px!important;max-height:650px!important}
  .pb4-mobile-filter{display:block;position:absolute;left:14px;top:14px;z-index:900;min-height:44px;padding:0 14px;border:0;border-radius:999px;background:#17130b;color:#fff;font-weight:950}
  .pb4-plan-grid{grid-template-columns:1fr}
  .pb4-plan-head{display:block}
  .pb4-plan-head button{margin-top:14px}
}
@media(max-width:600px){
  .pb4-shell{width:calc(100% - 24px)}
  .pb4-hero{padding:135px 0 46px}
  .pb4-hero h1{font-size:47px}
  .pb4-map-shell{width:calc(100% - 12px);height:600px;min-height:600px;margin-top:14px;border-radius:22px}
  .pb4-map-area,.pb4-map-frame,.pb4-map-area #pb4Map{height:600px!important;min-height:600px!important;max-height:600px!important}
  .pb4-map-legend{right:10px;left:10px;bottom:10px;overflow:auto;white-space:nowrap}
  .pb4-detail{right:8px;bottom:8px;width:calc(100% - 16px);padding:18px}
  .pb4-plan{padding-bottom:50px}
}
