/* =============================================================================
   PP Inspiracje — Szybki podgląd v3 (osadzenie projektu „Shop the Look Premium")
   Ładowany po public.css i pp-buy.css. Zakres: #pp-modal (modal podglądu).
   Kolorystyka spójna z resztą (emerald + slate/navy).
   ============================================================================= */
.pp-qv3, .preview-box, .preview-sidebar {
  --qv-text:#0F172A; --qv-muted:#64748B; --qv-bg:#F8FAFC; --qv-card:#FFFFFF;
  --qv-primary:#059669; --qv-primary-dk:#047857; --qv-primary-lt:#ECFDF5;
  --qv-accent:#C5A880; --qv-border:#E2E8F0; --qv-border-h:#CBD5E1;
  --qv-r-lg:16px; --qv-r:12px; --qv-r-sm:8px;
  --qv-sh-sm:0 1px 2px 0 rgba(15,23,42,.05);
  --qv-sh-md:0 4px 6px -1px rgba(15,23,42,.07),0 2px 4px -2px rgba(15,23,42,.05);
  --qv-sh-prem:0 25px 50px -12px rgba(15,23,42,.25);
  --qv-tr:all .25s cubic-bezier(.16,1,.3,1);
}

/* Overlay (na bazie .pp-modal) */
.pp-qv3.pp-modal{background:rgba(15,23,42,.4)!important; backdrop-filter:blur(12px)!important; -webkit-backdrop-filter:blur(12px)!important; padding:16px!important;}
.pp-rv-register-popup, #pp-rv-register-popup, .pp-wc, .pp-wc--open { z-index: 2147483647 !important; }

/* Box: dwie kolumny (lewa wizualizacja 1.12fr / prawa sidebar 1fr) */
.preview-box {
  background:#fff!important; border-radius:var(--qv-r-lg)!important; border:0!important;
  width:1180px!important; max-width:100%!important;
  height:min(720px, calc(100vh - 60px))!important; min-height:min(560px, calc(100vh - 60px))!important; max-height:calc(100vh - 40px)!important;
  box-shadow:var(--qv-sh-prem)!important; display:grid!important;
  grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)!important; align-items:stretch!important;
  overflow:hidden!important; padding:0!important;
}
/* Close */
.preview-close{position:absolute; top:14px; right:14px; width:34px; height:34px; background:#fff; border:1px solid var(--qv-border); color:var(--qv-text); border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:100; box-shadow:var(--qv-sh-sm); font-size:22px; line-height:1; transition:var(--qv-tr);}
.preview-close:hover{background:var(--qv-bg); border-color:var(--qv-border-h); transform:rotate(90deg);}

/* —— LEWA: wizualizacja —— */
.preview-viewer{padding:0; min-width:0; border-right:1px solid var(--qv-border); background:#0b1220; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; cursor:zoom-in;}
.preview-img-container{position:relative; width:100%; height:100%; min-width:0; min-height:340px; border-radius:0; overflow:hidden; background:#0b1220; box-shadow:none;}
.preview-img-container .pp-modal-img, #pp-modal-img{width:100%!important; height:100%!important; object-fit:cover!important; max-width:none!important; max-height:none!important; display:block!important; position:absolute; inset:0;}
/* Piny (hotspoty) — Spójne z widokiem pojedynczej inspiracji */
#pp-hotspots-container .pp-hotspot {
    position: absolute !important;
    transform: translate(-50%, -50%) !important;
    width: 28px !important;
    height: 28px !important;
    background: rgba(15, 23, 42, 0.78) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    border: 2px solid #ffffff !important;
    border-radius: 50% !important;
    color: #ffffff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 800 !important;
    font-size: 12px !important;
    font-variant-numeric: tabular-nums !important;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.25) !important;
    cursor: pointer !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index: 110 !important;
}

#pp-hotspots-container .pp-hotspot::after {
    content: '' !important;
    position: absolute !important;
    inset: -6px !important;
    border-radius: 50% !important;
    background: var(--qv-primary, #059669) !important;
    animation: hotspot-pulse-ripple 2.5s infinite !important;
    opacity: 0.55;
    pointer-events: none !important;
}

#pp-hotspots-container .pp-hotspot:hover,
#pp-hotspots-container .pp-hotspot.active {
    background: var(--qv-primary, #059669) !important;
    border-color: #ffffff !important;
    color: #ffffff !important;
    transform: translate(-50%, -50%) scale(1.15) !important;
    box-shadow: 0 0 20px rgba(5, 150, 105, 0.6) !important;
    z-index: 120 !important;
}
/* Zakładki ujęć — nakładka na dole obrazu (nic pod wizualizacją) *

/* —— PRAWA: sidebar —— */
.preview-sidebar{display:flex!important; flex-direction:column!important; background:#fff!important; border-left:0!important; min-width:0!important; min-height:0; max-height:calc(100vh - 40px);}
.preview-sidebar__header{padding:22px 64px 18px 22px; border-bottom:1px solid var(--qv-border); flex-shrink:0;}
.preview-sidebar__breadcrumb{font-size:.72rem; text-transform:uppercase; letter-spacing:1px; font-weight:700; color:var(--qv-primary); margin-bottom:6px; display:block;}
.preview-sidebar__title, #pp-modal-title{font-size:1.35rem!important; font-weight:800!important; line-height:1.3!important; letter-spacing:-.01em!important; color:var(--qv-text)!important; margin:0 0 8px!important;}
.preview-sidebar__meta{display:flex; align-items:center; gap:12px; font-size:.78rem; color:var(--qv-muted); flex-wrap:wrap;}
.preview-sidebar__meta .pp-si-stars{display:inline-flex; gap:1px; color:var(--qv-accent);}
.preview-sidebar__meta .pp-si-stars svg{width:14px; height:14px;}
.preview-sidebar__full{font-weight:700; color:var(--qv-text); text-decoration:none; border-bottom:2px solid var(--qv-primary); padding-bottom:1px;}
.preview-sidebar__full:hover{color:var(--qv-primary);}

/* Lista produktów (scroll) */
#pp-products-list, .preview-sidebar__list{padding:18px 22px!important; display:flex!important; flex-direction:column!important; gap:12px!important; flex:1 1 auto!important; min-height:0!important; overflow-y:auto!important; background:#fff!important;}

/* Karta produktu (grupa + szuflada) */
.pp-qv-card-group{border:1px solid var(--qv-border); border-radius:var(--qv-r); overflow:hidden; background:#fff; transition:var(--qv-tr);}
.pp-qv-card-group.is-focused{border-color:var(--qv-primary); box-shadow:var(--qv-sh-md);}
.pp-qv-card-group.is-excluded{opacity:.5; background:var(--qv-bg);}
.pp-qv-card{padding:10px 14px; display:flex; align-items:center; gap:12px; position:relative;}
.pp-qv-card__left{display:flex; align-items:center; gap:12px; flex-shrink:0;}
.pp-qv-card__right{display:flex; align-items:center; justify-content:space-between; flex-grow:1; min-width:0; gap:12px;}
.pp-qv-card.is-active{background:var(--qv-primary-lt);}
.pp-qv-card__select{display:flex; flex-direction:column; align-items:center; gap:5px; flex-shrink:0; width:44px;}
.pp-qv-card__num{width:16px; height:16px; background:var(--qv-text); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.65rem;}
.pp-qv-card-group.is-excluded .pp-qv-card__num{background:var(--qv-muted);}
/* Suwak włącz/wyłącz (glass) */
.glass-switch{position:relative; width:44px; height:24px; cursor:pointer; user-select:none;}
.glass-slider{position:absolute; inset:0; background:rgba(100,116,139,.1); border:1px solid rgba(100,116,139,.18); border-radius:34px; transition:var(--qv-tr); box-shadow:inset 0 2px 4px rgba(15,23,42,.05);}
.glass-slider:before{position:absolute; content:""; height:16px; width:16px; left:3px; bottom:3px; background:linear-gradient(135deg,#fff,#f1f5f9); border-radius:50%; box-shadow:0 2px 5px rgba(15,23,42,.2); transition:var(--qv-tr); z-index:2;}
.glass-switch.is-active .glass-slider{background:rgba(16,185,129,.14); border-color:rgba(16,185,129,.35);}
.glass-switch.is-active .glass-slider:before{transform:translateX(20px); background:#fff; box-shadow:0 2px 6px rgba(5,150,105,.3);}
/* Miniatura */
.pp-qv-card__thumb{display:block; position:relative; width:52px; height:52px; flex-shrink:0; border-radius:var(--qv-r-sm); overflow:hidden; background:#F1F5F9; border:1px solid var(--qv-border);}
.pp-qv-card__thumb img{width:100%; height:100%; object-fit:cover; display:block;}
/* Info */
.pp-qv-card__info{flex-grow:1; min-width:0; display:flex; flex-direction:column; justify-content:center;}
.pp-qv-card__name{text-decoration:none; color:var(--qv-text); font-weight:700; font-size:.8rem; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; margin-bottom:2px;}
.pp-qv-card__name:hover{color:var(--qv-primary);}
.pp-qv-card__price{font-size:.78rem; color:var(--qv-muted); font-variant-numeric:tabular-nums; margin-bottom:2px;}
.pp-qv-card__price .amount,.pp-qv-card__price bdi{color:var(--qv-primary)!important; font-weight:700!important;}
.pp-qv-card__goto{font-size:.7rem; font-weight:600; color:var(--qv-accent); text-decoration:none; display:flex; align-items:center; gap:2px; width:max-content;}
.pp-qv-card__goto:hover{color:var(--qv-primary); text-decoration:underline;}
/* Przycisk Dostosuj */
.pp-qv-card__actions{display:flex; align-items:center; gap:8px; flex-shrink:0;}
.pp-qv-card__btn{background:var(--qv-bg); border:1px solid var(--qv-border); color:var(--qv-text); padding:8px 14px; border-radius:50px; font-weight:700; font-size:.72rem; cursor:pointer; transition:var(--qv-tr); text-transform:uppercase; letter-spacing:.5px; display:flex; align-items:center; gap:5px;}
.pp-qv-card__btn:hover,.pp-qv-card__btn.is-open{background:var(--qv-primary); color:#fff; border-color:var(--qv-primary);}
.pp-qv-card__btn svg{transition:transform .25s ease;}
.pp-qv-card__btn.is-open svg{transform:rotate(180deg);}
/* Szuflada */
.pp-qv-drawer{max-height:0; overflow:hidden; transition:max-height .3s cubic-bezier(.16,1,.3,1); background:var(--qv-bg); border-top:1px dashed var(--qv-border);}
.pp-qv-drawer__content{padding:16px; display:flex; flex-direction:column; gap:14px;}
.pp-qv-drawer__submit{background:var(--qv-primary); color:#fff; border:0; padding:11px; border-radius:var(--qv-r-sm); font-weight:700; font-size:.82rem; cursor:pointer; text-transform:uppercase; letter-spacing:.5px; transition:var(--qv-tr); display:flex; align-items:center; justify-content:center; gap:6px;}
.pp-qv-drawer__submit:hover{background:var(--qv-primary-dk);}
.pp-qv-drawer__submit svg{width:16px !important; height:16px !important; flex:none !important;}
.pp-modal-sidebar-footer .pp-btn-shop-look-cart svg,.set-btn svg{width:18px !important; height:18px !important; flex:none !important;}
.set-prop svg{width:13px !important; height:13px !important; flex:none !important;}
.pp-qv-drawer__submit.is-success{background:var(--qv-primary);}

/* Box zestawu (sticky, ciemny) */
.preview-sidebar__set-box,.pp-modal-sidebar-footer{padding:20px 22px!important; background:var(--qv-text)!important; color:#fff!important; border-top:0!important; display:flex!important; flex-direction:column!important; gap:13px!important; flex-shrink:0!important; box-shadow:0 -10px 30px rgba(15,23,42,.12)!important;}
.set-header{display:flex; justify-content:space-between; align-items:center;}
.set-header__title{font-size:.72rem; text-transform:uppercase; letter-spacing:1.5px; font-weight:700; color:rgba(255,255,255,.65);}
.set-header__price{font-size:1.3rem; font-weight:800; color:#fff; text-align:right; font-variant-numeric:tabular-nums;}
.set-header__price small{display:block; font-size:.68rem; font-weight:500; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:.5px; margin-bottom:-2px;}
.pp-modal-sidebar-footer .pp-btn-shop-look-cart,.set-btn{background:var(--qv-primary)!important; color:#fff!important; border:0!important; padding:14px!important; border-radius:var(--qv-r)!important; font-weight:700!important; font-size:.86rem!important; cursor:pointer; text-transform:uppercase!important; letter-spacing:.5px!important; width:100%!important; transition:var(--qv-tr); display:flex!important; align-items:center; justify-content:center; gap:8px; height:auto!important; box-shadow:0 4px 12px rgba(5,150,105,.2)!important;}
.pp-modal-sidebar-footer .pp-btn-shop-look-cart:hover:not(:disabled),.set-btn:hover{background:var(--qv-primary-dk)!important; transform:translateY(-1px);}
.pp-modal-sidebar-footer .pp-btn-shop-look-cart:disabled,.set-btn:disabled{background:#475569!important; color:#94A3B8!important; cursor:not-allowed; box-shadow:none!important;}
.set-props{display:flex; justify-content:space-between; gap:8px; font-size:.66rem; color:rgba(255,255,255,.55); border-top:1px solid rgba(255,255,255,.1); padding-top:10px;}
.set-prop{display:flex; align-items:center; gap:4px;}
.set-prop svg{width:12px; height:12px; color:var(--qv-primary);}

/* —— Reużycie kalkulatora pp-qv (buildQvCalc) w szufladzie —— */
.pp-qv-drawer .pp-qv-c{gap:12px;}

@media (max-width:960px){
  .pp-qv3.pp-modal{padding:0!important;}
  .preview-box {
    display:flex!important; flex-direction:column!important;
    grid-template-columns:none!important; grid-template-rows:none!important;
    width:100%!important; max-width:100%!important;
    height:100vh!important; height:100dvh!important; min-height:0!important; max-height:none!important;
    border-radius:0!important; overflow:hidden!important;
  }
  .preview-viewer{flex:0 0 auto!important; height:38vh!important; min-height:240px!important; border-right:0!important; border-bottom:1px solid var(--qv-border)!important;}
  .preview-sidebar{flex:1 1 auto!important; min-height:0!important; max-height:none!important; display:flex!important; flex-direction:column!important; overflow:hidden!important;}
  .preview-sidebar__header{flex:0 0 auto!important; padding:12px 16px 8px 16px!important;}
  .preview-sidebar__title, #pp-modal-title{margin-bottom:4px!important;}
  #pp-products-list, .preview-sidebar__list{flex:1 1 auto!important; min-height:0!important; overflow-y:auto!important; -webkit-overflow-scrolling:touch; padding:14px 16px!important;}
  .preview-sidebar__set-box, .pp-modal-sidebar-footer{flex:0 0 auto!important; padding:12px 16px!important; gap:10px!important;}

  /* Mniejszy przycisk dodawania do koszyka i teksty w stopce */
  .pp-modal-sidebar-footer .pp-btn-shop-look-cart, .set-btn {
    padding: 0 14px!important;
    height: 40px!important;
    line-height: 40px!important;
    font-size: 0.8rem!important;
    border-radius: 8px!important;
    gap: 6px!important;
    white-space: nowrap!important;
    flex-wrap: nowrap!important;
    display: flex!important;
    align-items: center!important;
    justify-content: center!important;
    box-shadow: 0 2px 8px rgba(5,150,105,0.15)!important;
  }
  .pp-modal-sidebar-footer .pp-btn-shop-look-cart svg, .set-btn svg {
    width: 14px!important;
    height: 14px!important;
  }
  .set-header__title {
    font-size: 0.65rem!important;
    letter-spacing: 1px!important;
  }
  .set-header__price {
    font-size: 1.15rem!important;
  }
  .set-props {
    padding-top: 8px!important;
    font-size: 0.62rem!important;
  }

  /* Mobile card styles v3 */
  .pp-qv-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 8px 12px !important;
  }
  .pp-qv-card__left {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-shrink: 0 !important;
  }
  .pp-qv-card__right {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    flex-grow: 1 !important;
    min-width: 0 !important;
  }
  .pp-qv-card__select {
    width: auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 4px !important;
    flex-shrink: 0 !important;
  }
  .pp-qv-card__thumb {
    width: 44px !important;
    height: 44px !important;
    flex-shrink: 0 !important;
  }
  .pp-qv-card__info {
    min-width: 0 !important;
    flex-grow: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1px !important;
    align-items: flex-start !important;
  }
  .pp-qv-card__name {
    white-space: normal !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    font-size: 0.8rem !important;
    line-height: 1.25 !important;
    margin-bottom: 2px !important;
  }
  .pp-qv-card__price {
    font-size: 0.78rem !important;
    margin-bottom: 0 !important;
    display: inline-block !important;
  }
  .pp-qv-card__goto {
    display: none !important;
  }
  .pp-qv-card__actions {
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    margin-top: 0 !important;
  }
  .pp-qv-card__btn {
    background: #f0fdf4 !important;
    border: 1px solid #bbf7d0 !important;
    color: #166534 !important;
    padding: 4px 8px !important;
    font-size: 0.76rem !important;
    border-radius: 6px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    cursor: pointer !important;
    box-shadow: none !important;
    height: 28px !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-weight: 600 !important;
  }
  .pp-qv-card__btn:hover {
    background: #dcfce7 !important;
    border-color: #86efac !important;
    color: #166534 !important;
  }
  .pp-qv-card__btn b {
    color: #166534 !important;
    font-weight: 800 !important;
  }
  .pp-qv-card__btn .pp-qty-edit-icon {
    width: 11px !important;
    height: 11px !important;
    color: #166534 !important;
    margin: 0 !important;
    vertical-align: middle !important;
  }

  /* Mini-switch */
  .glass-switch {
    width: 32px !important;
    height: 18px !important;
  }
  .glass-slider:before {
    height: 12px !important;
    width: 12px !important;
    left: 2px !important;
    bottom: 2px !important;
  }
  .glass-switch.is-active .glass-slider:before {
    transform: translateX(14px) !important;
  }
  .pp-qv-card__num {
    width: 14px !important;
    height: 14px !important;
    font-size: 0.6rem !important;
  }
}
@media (max-width:560px){
  .preview-viewer{height:36vh!important; min-height:200px!important;}
  .preview-sidebar__header{padding:8px 12px 6px 12px!important;}
  .preview-sidebar__breadcrumb{display:none!important;}
  .preview-sidebar__title, #pp-modal-title{font-size:1.05rem!important; font-weight:700!important; margin-bottom:0!important;}
  .preview-sidebar__meta{font-size:11px!important;}
  #pp-products-list, .preview-sidebar__list{padding:10px 10px!important; gap:6px!important;}
  .preview-sidebar__set-box, .pp-modal-sidebar-footer{padding:8px 12px!important; gap:4px!important;}
  .pp-qv-card__btn span{display:none;}
  .pp-set-item__stock {display:none!important;}
  .set-props {display:none!important;}
  .pp-qv-card {padding:6px 10px!important; gap:8px!important;}
  .pp-qv-card__thumb {width:40px!important; height:40px!important;}
  .pp-qv-card__right {gap:8px!important;}
}

/* —— Skeleton ładowania listy (zanim ensureCalc zwróci dane) —— */
.pp-set-skel{display:flex; flex-direction:column; gap:12px;}
.pp-set-skel__row{height:72px; border-radius:var(--qv-r); background:linear-gradient(100deg,#eef2f7 30%,#f7fafc 50%,#eef2f7 70%); background-size:200% 100%; animation:ppqvShim 1.2s ease-in-out infinite; border:1px solid var(--qv-border);}
@keyframes ppqvShim{0%{background-position:200% 0}100%{background-position:-200% 0}}
.pp-bm-empty{padding:24px 8px; text-align:center; color:var(--qv-muted); font-size:.9rem;}

/* —— Wariant C: pełnoekranowy arkusz „koszt zestawu" —— */
.pp-qv-sheet{position:fixed; inset:0; z-index:2147483600; display:none; flex-direction:column; background:#fff; transform:translateY(100%); transition:transform .32s cubic-bezier(.16,1,.3,1);}
.pp-qv-sheet.is-open{display:flex; transform:translateY(0);}
.pp-qv-sheet__bar{position:fixed; left:0; right:0; bottom:0; z-index:2147483500;}
.pp-qv-sheet__head{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid #E2E8F0; flex:0 0 auto;}
.pp-qv-sheet__head h3{margin:0; font-size:1.05rem; font-weight:800; color:#0F172A;}
.pp-qv-sheet__close{width:38px; height:38px; border-radius:50%; border:1px solid #E2E8F0; background:#fff; font-size:22px; line-height:1; cursor:pointer; color:#0F172A;}
.pp-qv-sheet__list{flex:1 1 auto; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:14px 18px; display:flex; flex-direction:column; gap:12px;}
.pp-qv-sheet__row{display:flex; align-items:center; gap:12px; padding:10px; border:1px solid #E2E8F0; border-radius:12px;}
.pp-qv-sheet__row img{width:54px; height:54px; object-fit:cover; border-radius:8px; flex:0 0 auto; background:#F1F5F9;}
.pp-qv-sheet__row .nm{flex:1 1 auto; min-width:0; font-weight:700; font-size:.85rem; color:#0F172A;}
.pp-qv-sheet__row .nm small{display:block; font-weight:500; color:#64748B; font-size:.78rem; margin-top:2px;}
.pp-qv-sheet__row .ln{font-weight:800; color:#047857; font-variant-numeric:tabular-nums; white-space:nowrap;}
.pp-qv-sheet__foot{flex:0 0 auto; border-top:1px solid #E2E8F0; padding:16px 18px calc(16px + env(safe-area-inset-bottom)); background:#0F172A; color:#fff; display:flex; flex-direction:column; gap:12px;}
.pp-qv-sheet__total{display:flex; align-items:center; justify-content:space-between; font-size:1.25rem; font-weight:800;}
.pp-qv-sheet__total small{font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:rgba(255,255,255,.6);}
.pp-qv-sheet__cta{width:100%; background:#059669; color:#fff; border:0; padding:15px; border-radius:12px; font-weight:800; font-size:.95rem; text-transform:uppercase; letter-spacing:.5px; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px;}
.pp-qv-sheet__cta:disabled{background:#475569; color:#94A3B8;}
.pp-qv-sheet__cta svg{width:18px; height:18px;}

/* Lightbox */
.pp-rv-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  background: rgba(15, 23, 42, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  padding: 20px;
}
.pp-rv-lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}
.pp-rv-lightbox__content {
  position: relative;
  max-width: 95%;
  max-height: 95%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pp-rv-lightbox__img {
  max-width: 100%;
  max-height: 90vh;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.5);
}
.pp-rv-lightbox__close {
  position: absolute;
  top: -40px;
  right: 0;
  background: none;
  border: none;
  color: #fff;
  font-size: 34px;
  cursor: pointer;
  line-height: 1;
  padding: 5px;
  transition: var(--qv-tr);
}
.pp-rv-lightbox__close:hover {
  color: var(--qv-primary);
  transform: scale(1.1);
}

/* BeforeAfterSlider dla Quickview na mobile */
.pp-rv-mobile-compare {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  border-radius: 0 !important;
  border: none !important;
}
.pp-rv-mobile-compare__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Reguly przelacznika ujec zostaly przeniesione do assets/css/pp-view-switcher.css.
   W tym pliku bylo ich 3 i konkurowaly z innymi arkuszami; o wyniku decydowala
   kolejnosc ladowania, a nie projekt. Nie dopisuj ich tutaj ponownie. */

/* ==========================================================================
   FIX 3: Mobile Inspiration Quickview Z-Index & Action Button Protection
   ========================================================================== */
.preview-sidebar__set-box,
.pp-modal-sidebar-footer {
  position: relative !important;
  z-index: 100 !important;
  flex-shrink: 0 !important;
}

#pp-products-list,
.preview-sidebar__list {
  position: relative !important;
  z-index: 1 !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}

.pp-qv-drawer,
.pp-rv-ilosci-modal {
  z-index: 2 !important;
}

@media (max-width: 767px) {
  .preview-sidebar__set-box,
  .pp-modal-sidebar-footer {
    position: sticky !important;
    bottom: 0 !important;
    z-index: 100 !important;
    box-shadow: 0 -10px 25px rgba(15, 23, 42, 0.25) !important;
  }
  .pp-qv-drawer {
    position: relative !important;
    z-index: 1 !important;
  }
}

/* ==========================================================================
   URGENT FIX: Quickview Modal Action Button & Mobile Product Cards Spacing
   ========================================================================== */
/* #pp-modal MUST BE HIDDEN & PASS POINTER EVENTS WHEN NOT ACTIVE */
#pp-modal:not(.active) {
  display: none !important;
  pointer-events: none !important;
  z-index: -1 !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

/* ONLY WHEN #pp-modal IS ACTIVE DOES IT GO TO TOP LEVEL */
#pp-modal.active,
body.pp-modal-open #pp-modal {
  display: flex !important;
  pointer-events: auto !important;
  z-index: 2147483647 !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Hide ALL single product page bottom sticky bars & theme mobile navigation when quickview modal (#pp-modal) is open */
body.pp-modal-open .pp-mobile-sticky-bar,
body.pp-modal-open .pp-sticky-sheet,
body.pp-modal-open .pp-sticky-backdrop,
body.pp-modal-open .pp-mobile-bottom-nav,
body.pp-modal-open .pp-mobile-bottom-nav-bar,
body.pp-modal-open .mobile-nav,
body.pp-modal-open .flatsome-mobile-nav,
body.pp-modal-open .mobile-footer-nav,
body.pp-modal-open .footer-mobile-nav,
body.pp-modal-open #main-navigation,
body.pp-modal-open .pp-sticky-mobile-cta,
body.pp-modal-open .pp-calculator-mobile-bar,
body.pp-modal-open .pp-mobile-bottom-bar,
body.pp-modal-open #pp-calculator-sticky-bar,
body.pp-modal-open .pp-mobile-nav,
body.pp-modal-open .header-mobile-toggle,
body.pp-modal-open .pp-sticky-bar-row,
body.pp-quickview-open .pp-mobile-sticky-bar,
body.pp-quickview-open .mobile-nav,
body.pp-quickview-open .pp-mobile-nav,
body:has(#pp-modal.active) .pp-mobile-sticky-bar,
body:has(#pp-modal.active) .pp-sticky-sheet,
body:has(#pp-modal.active) .pp-sticky-backdrop,
body:has(#pp-modal.active) .pp-mobile-bottom-nav,
body:has(#pp-modal.active) .pp-mobile-bottom-nav-bar,
body:has(#pp-modal.active) .mobile-nav,
body:has(#pp-modal.active) .flatsome-mobile-nav,
body:has(#pp-modal.active) .mobile-footer-nav,
body:has(#pp-modal.active) .footer-mobile-nav,
body:has(#pp-modal.active) #main-navigation,
body:has(#pp-modal.active) .pp-sticky-mobile-cta,
body:has(#pp-modal.active) .pp-calculator-mobile-bar,
body:has(#pp-modal.active) .pp-mobile-bottom-bar,
body:has(#pp-modal.active) #pp-calculator-sticky-bar,
body:has(#pp-modal.active) .pp-mobile-nav,
body:has(#pp-modal.active) .header-mobile-toggle,
body:has(#pp-modal.active) .pp-sticky-bar-row {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Ensure sticky action box is 100% visible, high-contrast, and never hidden */
.preview-sidebar__set-box,
.pp-modal-sidebar-footer {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: #0F172A !important;
  color: #FFFFFF !important;
  padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px)) !important;
  box-shadow: 0 -10px 30px rgba(15, 23, 42, 0.35) !important;
  position: relative !important;
  z-index: 100 !important;
  flex-shrink: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
}

.pp-modal-sidebar-footer .pp-btn-shop-look-cart,
.set-btn {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: #059669 !important;
  color: #FFFFFF !important;
  font-weight: 800 !important;
  font-size: 0.9rem !important;
  height: 48px !important;
  line-height: 48px !important;
  border-radius: 10px !important;
  width: 100% !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  box-shadow: 0 4px 16px rgba(5, 150, 105, 0.4) !important;
  cursor: pointer !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

.pp-modal-sidebar-footer .pp-btn-shop-look-cart:hover,
.set-btn:hover {
  background: #047857 !important;
}

/* Mobile layout & product cards un-squishing */
@media (max-width: 767px) {
  .preview-viewer {
    height: 32vh !important;
    min-height: 200px !important;
    flex: 0 0 auto !important;
  }
  .preview-sidebar {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }
  #pp-products-list,
  .preview-sidebar__list {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    padding: 12px 14px calc(140px + env(safe-area-inset-bottom, 0px)) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    background: #F8FAFC !important;
  }
  .pp-qv-card-group {
    border-radius: 12px !important;
    border: 1px solid #E2E8F0 !important;
    background: #FFFFFF !important;
  }
  .pp-qv-card {
    padding: 10px 12px !important;
    gap: 10px !important;
    display: flex !important;
    align-items: center !important;
  }
  .pp-qv-card__thumb {
    width: 48px !important;
    height: 48px !important;
    border-radius: 8px !important;
    flex-shrink: 0 !important;
  }
  .pp-qv-card__name {
    font-size: 0.82rem !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    color: #0F172A !important;
    margin-bottom: 3px !important;
    white-space: normal !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  .pp-qv-card__price {
    font-size: 0.78rem !important;
    line-height: 1.3 !important;
    color: #059669 !important;
    font-weight: 700 !important;
    margin-bottom: 0 !important;
  }
  .pp-qv-card__btn {
    height: 32px !important;
    padding: 4px 10px !important;
    font-size: 0.76rem !important;
    border-radius: 8px !important;
    background: #F0FDF4 !important;
    border: 1px solid #BBF7D0 !important;
    color: #166534 !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    flex-shrink: 0 !important;
  }
}

/* ==========================================================================
   URGENT FIX: Fully Legible, Spacious, Un-cropped Mobile Product Cards
   ========================================================================== */
@media (max-width: 767px) {
  .pp-qv-card-group {
    border-radius: 12px !important;
    border: 1px solid #E2E8F0 !important;
    background: #FFFFFF !important;
    overflow: visible !important;
    margin-bottom: 10px !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05) !important;
  }

  .pp-qv-card {
    padding: 12px 14px !important;
    gap: 10px !important;
    display: flex !important;
    align-items: center !important;
    min-height: 82px !important;
    position: relative !important;
    overflow: visible !important;
  }

  .pp-qv-card__left {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-shrink: 0 !important;
  }

  .pp-qv-card__right {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-grow: 1 !important;
    min-width: 0 !important;
    gap: 10px !important;
  }

  .pp-qv-card__select {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    width: 32px !important;
    flex-shrink: 0 !important;
  }

  .pp-qv-card__num {
    width: 18px !important;
    height: 18px !important;
    font-size: 0.68rem !important;
    font-weight: 800 !important;
    background: #0F172A !important;
    color: #FFFFFF !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
  }

  .pp-qv-card__select .glass-switch {
    transform: scale(0.8) !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
  }

  .pp-qv-card__thumb {
    width: 50px !important;
    height: 50px !important;
    border-radius: 8px !important;
    flex-shrink: 0 !important;
    border: 1px solid #E2E8F0 !important;
    overflow: hidden !important;
  }

  .pp-qv-card__info {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 2px !important;
  }

  .pp-qv-card__name {
    font-size: 0.82rem !important;
    line-height: 1.28 !important;
    font-weight: 700 !important;
    color: #0F172A !important;
    margin-bottom: 2px !important;
    white-space: normal !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .pp-qv-card__price {
    font-size: 0.8rem !important;
    line-height: 1.3 !important;
    color: #059669 !important;
    font-weight: 700 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin: 0 !important;
  }

  .pp-qv-card__price .amount,
  .pp-qv-card__price bdi {
    color: #059669 !important;
    font-weight: 800 !important;
  }

  .pp-qv-card__actions {
    flex-shrink: 0 !important;
    margin-left: auto !important;
    display: flex !important;
    align-items: center !important;
  }

  .pp-qv-card__btn {
    height: 34px !important;
    padding: 6px 12px !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    background: #ECFDF5 !important;
    border: 1px solid #A7F3D0 !important;
    color: #065F46 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    white-space: nowrap !important;
  }
}


/* Hide ALL sticky bars & bottom nav when off-canvas category menu is open */
html.has-off-canvas .pp-mobile-sticky-bar,
html.has-off-canvas-opened .pp-mobile-sticky-bar,
html.has-off-canvas-right .pp-mobile-sticky-bar,
body.has-off-canvas .pp-mobile-sticky-bar,
body.has-off-canvas-opened .pp-mobile-sticky-bar,
body.mfp-open .pp-mobile-sticky-bar,
body.pp-mobile-menu-open .pp-mobile-sticky-bar,
html.has-off-canvas .pp-sticky-sheet,
html.has-off-canvas .pp-sticky-backdrop,
html.has-off-canvas .pp-mobile-bottom-nav-bar,
html.has-off-canvas-opened .pp-mobile-bottom-nav-bar,
html.has-off-canvas-right .pp-mobile-bottom-nav-bar,
body.has-off-canvas .pp-mobile-bottom-nav-bar,
body.has-off-canvas-opened .pp-mobile-bottom-nav-bar,
body.mfp-open .pp-mobile-bottom-nav-bar,
body.pp-mobile-menu-open .pp-mobile-bottom-nav-bar {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: -1 !important;
}

/* --- DEFENSIVE MODAL HIDING (Prevents unstyled modals in footer) --- */
#pp-rv-backdrop:not(.is-open):not(.active),
#pp-rv-modal:not(.is-open):not(.active),
#pp-rv-register-popup:not(.is-open):not(.active),
#pp-rv-wall-layout-popup:not(.is-open):not(.active),
.pp-rv-register-popup:not(.is-open):not(.active),
.pp-rv-wall-layout-popup:not(.is-open):not(.active) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

#pp-rv-register-popup.is-open,
.pp-rv-register-popup.is-open,
#pp-rv-wall-layout-popup.is-open,
.pp-rv-wall-layout-popup.is-open {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}
