{"id":4716,"date":"2026-04-06T23:40:02","date_gmt":"2026-04-06T21:40:02","guid":{"rendered":"https:\/\/applepointfix.pl\/?page_id=4716"},"modified":"2026-09-16T10:46:23","modified_gmt":"2026-09-16T08:46:23","slug":"sklep","status":"publish","type":"page","link":"https:\/\/applepointfix.pl\/en\/sklep\/","title":{"rendered":"store"},"content":{"rendered":"\n<section id=\"ap-store-shell\" class=\"ap-store-shell\">\n  <style>\n    #ap-store-shell,\n    #ap-store-shell *{\n      box-sizing:border-box;\n    }\n\n#ap-store-shell{\n  --bg:#f4f6f8;\n  --surface:#ffffff;\n  --surface-2:#f8fafc;\n  --line:#e7ebf0;\n  --line-strong:#d9e0e8;\n  --text:#111827;\n  --muted:#667085;\n  --soft:#94a3b8;\n  --accent:#f59a00;\n  --accent-2:#ffb648;\n  --shadow:0 18px 50px rgba(15,23,42,.07);\n  --shadow-soft:0 8px 24px rgba(15,23,42,.05);\n  --radius:28px;\n  --radius-sm:20px;\n  --container:1280px;\n  width:100%;\n  background:linear-gradient(180deg,#f7f8fa 0%, #f3f5f7 100%);\n  color:var(--text);\n  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;\n  padding:120px 18px 80px;\n  position:relative;\n  overflow:visible;\n}\n\n    #ap-store-shell a{\n      color:inherit;\n      text-decoration:none;\n    }\n\n    #ap-store-shell img{\n      display:block;\n      max-width:100%;\n      height:auto;\n    }\n\n    #ap-store-shell .ap-store-wrap{\n      max-width:var(--container);\n      margin:0 auto;\n      position:relative;\n    }\n\n#ap-store-shell .ap-store-actions{\n  display:flex;\n  justify-content:flex-end;\n  margin:0 0 16px;\n  position:absolute;\n  top:0;\n  right:0;\n  z-index:6;\n  opacity:0;\n  transform:translateY(18px) scale(.96);\n  transition:\n    opacity .7s ease,\n    transform .7s ease;\n}\n\n#ap-store-shell .ap-store-actions.is-visible{\n  opacity:1;\n  transform:translateY(0) scale(1);\n}\n\n#ap-store-shell .ap-cart-toggle{\n  appearance:none;\n  border:1px solid var(--line);\n  background:#fff;\n  color:var(--text);\n  min-height:46px;\n  padding:0 16px;\n  border-radius:999px;\n  font-weight:800;\n  cursor:pointer;\n  display:inline-flex;\n  align-items:center;\n  gap:10px;\n  box-shadow:var(--shadow-soft);\n  transition:transform .22s ease, box-shadow .22s ease;\n  transform-origin:center;\n}\n\n#ap-store-shell .ap-store-actions.is-visible .ap-cart-toggle{\n  animation:apCartFloat 2.8s ease-in-out infinite;\n  animation-delay:.45s;\n}\n\n#ap-store-shell .ap-cart-toggle:hover{\n  transform:translateY(-2px) scale(1.02);\n  box-shadow:0 14px 30px rgba(15,23,42,.10);\n  animation-play-state:paused;\n}\n\n#ap-store-shell .ap-cart-count{\n  min-width:24px;\n  height:24px;\n  padding:0 8px;\n  border-radius:999px;\n  background:linear-gradient(135deg,var(--accent),var(--accent-2));\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  font-size:.78rem;\n  font-weight:800;\n  color:#111827;\n  transform-origin:center;\n}\n\n#ap-store-shell .ap-store-actions.is-visible .ap-cart-count{\n  animation:apCartBadgePulse 1.9s ease-in-out infinite;\n  animation-delay:.8s;\n}\n\n@keyframes apCartFloat{\n  0%{\n    transform:translateY(0) scale(1);\n    box-shadow:0 8px 24px rgba(15,23,42,.05);\n  }\n  50%{\n    transform:translateY(-3px) scale(1.02);\n    box-shadow:0 14px 28px rgba(15,23,42,.10);\n  }\n  100%{\n    transform:translateY(0) scale(1);\n    box-shadow:0 8px 24px rgba(15,23,42,.05);\n  }\n}\n\n@keyframes apCartBadgePulse{\n  0%{\n    transform:scale(1);\n    box-shadow:0 0 0 0 rgba(245,154,0,.28);\n  }\n  50%{\n    transform:scale(1.12);\n    box-shadow:0 0 0 10px rgba(245,154,0,0);\n  }\n  100%{\n    transform:scale(1);\n    box-shadow:0 0 0 0 rgba(245,154,0,0);\n  }\n}\n    #ap-store-shell .ap-page{\n      display:none;\n      animation:apFade .28s ease;\n    }\n\n    #ap-store-shell .ap-page.is-active{\n      display:block;\n    }\n\n    @keyframes apFade{\n      from{opacity:0; transform:translateY(10px);}\n      to{opacity:1; transform:translateY(0);}\n    }\n\n    #ap-store-shell .ap-hero{\n      background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.88));\n      border:1px solid rgba(255,255,255,.75);\n      border-radius:36px;\n      box-shadow:var(--shadow);\n      padding:46px 34px 38px;\n      margin-bottom:18px;\n      display:flex;\n      justify-content:center;\n      align-items:center;\n      text-align:center;\n    }\n\n    #ap-store-shell .ap-hero-copy{\n      max-width:920px;\n      margin:0 auto;\n      display:flex;\n      flex-direction:column;\n      align-items:center;\n      justify-content:center;\n      text-align:center;\n    }\n#ap-store-shell .ap-shipping-stock span.is-in{\n  color:#1f8b24;\n  font-weight:800;\n}\n\n#ap-store-shell .ap-shipping-stock span.is-out{\n  color:#d92d20;\n  font-weight:800;\n}\n\n#ap-store-shell .ap-btn.is-disabled,\n#ap-store-shell .ap-btn:disabled{\n  background:#e5e7eb !important;\n  color:#6b7280 !important;\n  box-shadow:none !important;\n  cursor:not-allowed !important;\n  pointer-events:none !important;\n  border:1px solid #d1d5db !important;\n}\n    #ap-store-shell .ap-hero-copy h1{\n      margin:0 0 14px;\n      font-size:clamp(2.2rem,5vw,4.8rem);\n      line-height:1.02;\n      letter-spacing:-.05em;\n      font-weight:850;\n      max-width:900px;\n    }\n\n    #ap-store-shell .ap-hero-copy p{\n      margin:0;\n      max-width:820px;\n      color:var(--muted);\n      font-size:1.04rem;\n      line-height:1.8;\n    }\n\n    #ap-store-shell .ap-hero-meta{\n      display:flex;\n      flex-wrap:wrap;\n      gap:12px;\n      margin-top:22px;\n      justify-content:center;\n    }\n\n    #ap-store-shell .ap-pill{\n      display:inline-flex;\n      align-items:center;\n      gap:10px;\n      min-height:42px;\n      padding:0 16px;\n      border-radius:999px;\n      background:#fff;\n      border:1px solid var(--line);\n      color:#334155;\n      box-shadow:var(--shadow-soft);\n      font-size:.9rem;\n      font-weight:650;\n      animation:apBreath 3.4s ease-in-out infinite;\n      transition:transform .25s ease, box-shadow .25s ease;\n    }\n\n    #ap-store-shell .ap-pill:hover{\n      transform:translateY(-2px) scale(1.03);\n      box-shadow:0 14px 30px rgba(15,23,42,.10);\n    }\n\n    #ap-store-shell .ap-pill-dot{\n      width:8px;\n      height:8px;\n      border-radius:999px;\n      background:linear-gradient(135deg,var(--accent),var(--accent-2));\n      flex:0 0 auto;\n    }\n\n    #ap-store-shell .ap-hero-meta .ap-pill:nth-child(2){\n      animation-delay:.35s;\n    }\n\n    #ap-store-shell .ap-hero-meta .ap-pill:nth-child(3){\n      animation-delay:.7s;\n    }\n\n    @keyframes apBreath{\n      0%{\n        transform:scale(1);\n        box-shadow:0 8px 24px rgba(15,23,42,.05);\n      }\n      50%{\n        transform:scale(1.035);\n        box-shadow:0 14px 28px rgba(15,23,42,.08);\n      }\n      100%{\n        transform:scale(1);\n        box-shadow:0 8px 24px rgba(15,23,42,.05);\n      }\n    }\n\n    #ap-store-shell .ap-toolbar{\n      display:flex;\n      flex-wrap:wrap;\n      align-items:center;\n      justify-content:space-between;\n      gap:14px;\n      margin:18px 0 16px;\n    }\n\n    #ap-store-shell .ap-toolbar-left{\n      display:flex;\n      flex-wrap:wrap;\n      gap:10px;\n      align-items:center;\n    }\n\n    #ap-store-shell .ap-chip{\n      appearance:none;\n      border:1px solid var(--line);\n      background:#fff;\n      color:#344054;\n      min-height:42px;\n      padding:0 15px;\n      border-radius:999px;\n      cursor:pointer;\n      font-weight:700;\n      font-size:.9rem;\n      transition:.2s ease;\n      box-shadow:var(--shadow-soft);\n    }\n\n    #ap-store-shell .ap-chip:hover{\n      transform:translateY(-1px);\n      border-color:#cfd7e1;\n    }\n\n    #ap-store-shell .ap-chip.is-active{\n      background:linear-gradient(135deg,var(--accent),var(--accent-2));\n      border-color:transparent;\n      color:#111827;\n    }\n\n    #ap-store-shell .ap-search{\n      display:flex;\n      align-items:center;\n      width:min(100%,360px);\n      min-height:48px;\n      background:#fff;\n      border:1px solid var(--line);\n      border-radius:999px;\n      padding:0 16px;\n      box-shadow:var(--shadow-soft);\n    }\n\n    #ap-store-shell .ap-search input{\n      width:100%;\n      border:0;\n      outline:0;\n      background:transparent;\n      color:var(--text);\n      font:inherit;\n    }\n\n    #ap-store-shell .ap-search input::placeholder{\n      color:#98a2b3;\n    }\n\n    #ap-store-shell .ap-results-head{\n      display:flex;\n      align-items:center;\n      justify-content:space-between;\n      gap:14px;\n      margin:10px 0 18px;\n      padding:0 2px;\n    }\n\n    #ap-store-shell .ap-results-head h2{\n      margin:0;\n      font-size:1.55rem;\n      letter-spacing:-.035em;\n    }\n\n    #ap-store-shell .ap-results-head p{\n      margin:0;\n      color:var(--muted);\n      font-size:.95rem;\n    }\n\n    #ap-store-shell .ap-grid{\n      display:grid;\n      grid-template-columns:repeat(4,1fr);\n      gap:18px;\n    }\n\n    #ap-store-shell .ap-card{\n      background:rgba(255,255,255,.95);\n      border:1px solid rgba(255,255,255,.8);\n      border-radius:28px;\n      box-shadow:var(--shadow);\n      overflow:hidden;\n      transition:.22s ease;\n      position:relative;\n      min-height:100%;\n    }\n\n    #ap-store-shell .ap-card:hover{\n      transform:translateY(-4px);\n      box-shadow:0 22px 58px rgba(15,23,42,.10);\n    }\n\n    #ap-store-shell .ap-card-link{\n      display:flex;\n      flex-direction:column;\n      height:100%;\n    }\n\n    #ap-store-shell .ap-card-media{\n      position:relative;\n      aspect-ratio:1\/1;\n      background:linear-gradient(180deg,#fbfcfd,#f4f7fa);\n      display:flex;\n      align-items:center;\n      justify-content:center;\n      padding:18px;\n      border-bottom:1px solid var(--line);\n    }\n\n    #ap-store-shell .ap-card-media img{\n      width:100%;\n      height:100%;\n      object-fit:contain;\n      border-radius:18px;\n    }\n\n    #ap-store-shell .ap-badge{\n      position:absolute;\n      top:16px;\n      left:16px;\n      z-index:2;\n      display:inline-flex;\n      align-items:center;\n      min-height:28px;\n      padding:0 10px;\n      border-radius:999px;\n      background:#fff7e6;\n      color:#9a6400;\n      font-size:.76rem;\n      font-weight:800;\n      border:1px solid rgba(245,154,0,.16);\n      box-shadow:var(--shadow-soft);\n    }\n\n    #ap-store-shell .ap-card-body{\n      padding:18px 18px 20px;\n      display:flex;\n      flex-direction:column;\n      gap:10px;\n      flex:1;\n    }\n\n    #ap-store-shell .ap-card-title{\n      margin:0;\n      font-size:1.02rem;\n      line-height:1.35;\n      letter-spacing:-.025em;\n      font-weight:760;\n    }\n\n    #ap-store-shell .ap-card-desc{\n      margin:0;\n      color:var(--muted);\n      font-size:.92rem;\n      line-height:1.65;\n      min-height:46px;\n    }\n\n    #ap-store-shell .ap-card-meta{\n      display:flex;\n      flex-wrap:wrap;\n      gap:8px;\n    }\n\n    #ap-store-shell .ap-tag{\n      display:inline-flex;\n      align-items:center;\n      min-height:32px;\n      padding:0 10px;\n      border-radius:999px;\n      background:#f8fafc;\n      border:1px solid var(--line);\n      color:#475467;\n      font-size:.8rem;\n      font-weight:700;\n    }\n\n    #ap-store-shell .ap-card-bottom{\n      margin-top:auto;\n      padding-top:12px;\n      border-top:1px solid var(--line);\n      display:flex;\n      align-items:center;\n      justify-content:space-between;\n      gap:10px;\n    }\n\n    #ap-store-shell .ap-card-price{\n      display:flex;\n      flex-direction:column;\n      gap:2px;\n    }\n\n    #ap-store-shell .ap-card-price strong{\n      font-size:1rem;\n      letter-spacing:-.02em;\n    }\n\n    #ap-store-shell .ap-card-price span{\n      color:var(--muted);\n      font-size:.82rem;\n    }\n\n    #ap-store-shell .ap-arrow{\n      width:42px;\n      height:42px;\n      border-radius:14px;\n      display:grid;\n      place-items:center;\n      background:#f8fafc;\n      border:1px solid var(--line);\n      color:#475467;\n      font-size:1rem;\n      flex:0 0 auto;\n    }\n\n    #ap-store-shell .ap-empty{\n      display:none;\n      margin-top:12px;\n      background:#fff;\n      border:1px solid var(--line);\n      border-radius:22px;\n      padding:20px;\n      color:var(--muted);\n      box-shadow:var(--shadow-soft);\n    }\n\n    #ap-store-shell .ap-empty.is-visible{\n      display:block;\n    }\n\n    #ap-store-shell .ap-product-layout{\n      display:grid;\n      grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);\n      gap:24px;\n      align-items:start;\n    }\n\n    #ap-store-shell .ap-gallery{\n      background:#fff;\n      border:1px solid rgba(255,255,255,.8);\n      border-radius:34px;\n      box-shadow:var(--shadow);\n      padding:20px;\n    }\n\n    #ap-store-shell .ap-gallery-main{\n      position:relative;\n      aspect-ratio:1\/1;\n      border-radius:26px;\n      overflow:hidden;\n      background:linear-gradient(180deg,#fbfcfd,#f4f7fa);\n      border:1px solid var(--line);\n      display:flex;\n      align-items:center;\n      justify-content:center;\n      padding:18px;\n    }\n\n    #ap-store-shell .ap-gallery-main img{\n      width:100%;\n      height:100%;\n      object-fit:contain;\n      border-radius:18px;\n    }\n\n    #ap-store-shell .ap-gallery-thumbs{\n      display:grid;\n      grid-template-columns:repeat(5,1fr);\n      gap:10px;\n      margin-top:12px;\n    }\n\n    #ap-store-shell .ap-thumb{\n      appearance:none;\n      background:#fff;\n      border:1px solid var(--line);\n      border-radius:16px;\n      padding:8px;\n      aspect-ratio:1\/1;\n      overflow:hidden;\n      cursor:pointer;\n      transition:.2s ease;\n    }\n\n    #ap-store-shell .ap-thumb img{\n      width:100%;\n      height:100%;\n      object-fit:cover;\n      border-radius:10px;\n    }\n\n    #ap-store-shell .ap-thumb.is-active{\n      border-color:#c6941d;\n      box-shadow:0 0 0 3px rgba(245,154,0,.12);\n    }\n\n    #ap-store-shell .ap-product-side{\n      display:flex;\n      flex-direction:column;\n      gap:18px;\n    }\n\n    #ap-store-shell .ap-product-box{\n      background:#fff;\n      border:1px solid rgba(255,255,255,.8);\n      border-radius:32px;\n      box-shadow:var(--shadow);\n      padding:26px;\n    }\n\n    #ap-store-shell .ap-product-title{\n      margin:0 0 12px;\n      font-size:clamp(1.8rem,3vw,2.7rem);\n      line-height:1.05;\n      letter-spacing:-.045em;\n      font-weight:850;\n    }\n\n    #ap-store-shell .ap-product-subtitle{\n      margin:0 0 18px;\n      color:var(--muted);\n      line-height:1.75;\n      font-size:1rem;\n    }\n\n    #ap-store-shell .ap-product-price{\n      margin:0 0 20px;\n      font-size:1.35rem;\n      line-height:1.2;\n      font-weight:800;\n      letter-spacing:-.03em;\n    }\n\n    #ap-store-shell .ap-product-price span{\n      color:var(--muted);\n      font-size:.92rem;\n      font-weight:600;\n      letter-spacing:0;\n      margin-left:8px;\n    }\n\n    #ap-store-shell .ap-product-option-wrap,\n    #ap-store-shell .ap-option-block{\n      margin:0 0 20px;\n    }\n\n    #ap-store-shell .ap-product-option-label,\n    #ap-store-shell .ap-option-title{\n      display:block;\n      margin:0 0 8px;\n      font-weight:700;\n      font-size:.92rem;\n      color:#344054;\n    }\n\n    #ap-store-shell .ap-variant-select{\n      width:100%;\n      min-height:48px;\n      border-radius:16px;\n      border:1px solid var(--line);\n      background:#fff;\n      padding:0 14px;\n      font:inherit;\n      color:var(--text);\n      box-shadow:var(--shadow-soft);\n      outline:none;\n    }\n\n    #ap-store-shell .ap-model-grid{\n      display:grid;\n      grid-template-columns:repeat(2,1fr);\n      gap:10px;\n      max-height:420px;\n      overflow:auto;\n      padding-right:4px;\n    }\n\n    #ap-store-shell .ap-model-btn{\n      appearance:none;\n      width:100%;\n      min-height:62px;\n      padding:14px 16px;\n      border-radius:16px;\n      border:1.5px solid #d5dbe3;\n      background:#fff;\n      color:#111827;\n      text-align:left;\n      font:inherit;\n      font-weight:650;\n      font-size:1rem;\n      line-height:1.25;\n      cursor:pointer;\n      transition:.2s ease;\n      box-shadow:var(--shadow-soft);\n    }\n\n    #ap-store-shell .ap-model-btn:hover{\n      transform:translateY(-1px);\n      border-color:#bfc8d4;\n    }\n\n    #ap-store-shell .ap-model-btn.is-active{\n      border-color:#3b82f6;\n      box-shadow:0 0 0 3px rgba(59,130,246,.14);\n    }\n\n    #ap-store-shell .ap-color-grid{\n      display:grid;\n      grid-template-columns:repeat(2,1fr);\n      gap:10px;\n    }\n\n    #ap-store-shell .ap-color-btn{\n      appearance:none;\n      width:100%;\n      min-height:72px;\n      padding:14px 16px;\n      border-radius:16px;\n      border:1.5px solid #d5dbe3;\n      background:#fff;\n      color:#111827;\n      text-align:left;\n      font:inherit;\n      font-weight:650;\n      font-size:1rem;\n      line-height:1.25;\n      cursor:pointer;\n      transition:.2s ease;\n      box-shadow:var(--shadow-soft);\n      display:flex;\n      align-items:center;\n      gap:14px;\n    }\n\n    #ap-store-shell .ap-color-btn:hover{\n      transform:translateY(-1px);\n      border-color:#bfc8d4;\n    }\n\n    #ap-store-shell .ap-color-btn.is-active{\n      border-color:#3b82f6;\n      box-shadow:0 0 0 3px rgba(59,130,246,.14);\n    }\n\n    #ap-store-shell .ap-color-dot{\n      width:38px;\n      height:38px;\n      border-radius:999px;\n      flex:0 0 38px;\n      border:1px solid rgba(15,23,42,.08);\n      box-shadow:0 4px 14px rgba(15,23,42,.12);\n    }\n\n    #ap-store-shell .ap-color-name{\n      display:block;\n      font-weight:650;\n      font-size:1rem;\n      line-height:1.2;\n    }\n\n    #ap-store-shell .ap-model-note{\n      margin-top:10px;\n      color:var(--muted);\n      font-size:.88rem;\n      line-height:1.6;\n    }\n\n    #ap-store-shell .ap-specs{\n      display:grid;\n      gap:10px;\n      margin:0;\n      padding:0;\n      list-style:none;\n    }\n\n    #ap-store-shell .ap-specs li{\n      display:flex;\n      justify-content:space-between;\n      gap:16px;\n      padding:11px 0;\n      border-bottom:1px solid var(--line);\n      color:#475467;\n      font-size:.95rem;\n    }\n\n    #ap-store-shell .ap-specs li strong{\n      color:var(--text);\n      font-weight:760;\n    }\n\n    #ap-store-shell .ap-shipping-box{\n      margin:18px 0 0;\n      padding:18px 0 0;\n      border-top:1px solid var(--line);\n    }\n\n    #ap-store-shell .ap-shipping-stock{\n      font-size:1.02rem;\n      line-height:1.5;\n      margin-bottom:10px;\n      color:#111827;\n    }\n\n    #ap-store-shell .ap-shipping-stock span{\n  color:#d92d20;\n      font-weight:800;\n    }\n\n    #ap-store-shell .ap-shipping-delivery{\n      font-size:1rem;\n      line-height:1.5;\n      margin-bottom:4px;\n      color:#111827;\n    }\n\n    #ap-store-shell .ap-shipping-method{\n      font-size:.98rem;\n      line-height:1.55;\n      color:#111827;\n    }\n\n    #ap-store-shell .ap-shipping-free{\n      margin-top:18px;\n      color:#1f8b24;\n      font-size:1.05rem;\n      font-weight:900;\n      line-height:1.4;\n      text-transform:uppercase;\n    }\n\n    #ap-store-shell .ap-shipping-free span{\n      color:#111827;\n      font-weight:700;\n      text-transform:none;\n    }\n\n    #ap-store-shell .ap-shipping-note{\n      margin-top:6px;\n      color:#111827;\n      font-size:.96rem;\n      line-height:1.55;\n    }\n\n    #ap-store-shell .ap-product-actions{\n      display:flex;\n      flex-wrap:wrap;\n      gap:12px;\n      margin-top:22px;\n    }\n\n    #ap-store-shell .ap-btn{\n      appearance:none;\n      border:0;\n      display:inline-flex;\n      align-items:center;\n      justify-content:center;\n      gap:10px;\n      min-height:50px;\n      padding:0 18px;\n      border-radius:999px;\n      font-weight:800;\n      cursor:pointer;\n      transition:.2s ease;\n      font-size:.94rem;\n    }\n\n    #ap-store-shell .ap-btn:hover{\n      transform:translateY(-1px);\n    }\n\n    #ap-store-shell .ap-btn-primary{\n      background:linear-gradient(135deg,var(--accent),var(--accent-2));\n      color:#111827;\n      box-shadow:0 14px 30px rgba(245,154,0,.22);\n    }\n\n    #ap-store-shell .ap-btn-secondary{\n      background:#fff;\n      color:var(--text);\n      border:1px solid var(--line);\n      box-shadow:var(--shadow-soft);\n    }\n\n    #ap-store-shell .ap-content-box{\n      background:#fff;\n      border:1px solid rgba(255,255,255,.8);\n      border-radius:32px;\n      box-shadow:var(--shadow);\n      padding:28px;\n      margin-top:20px;\n    }\n\n    #ap-store-shell .ap-content-box h2{\n      margin:0 0 14px;\n      font-size:1.45rem;\n      letter-spacing:-.03em;\n    }\n\n    #ap-store-shell .ap-content-box p{\n      margin:0 0 14px;\n      color:var(--muted);\n      line-height:1.8;\n      font-size:.98rem;\n    }\n\n    #ap-store-shell .ap-content-box p:last-child{\n      margin-bottom:0;\n    }\n\n    #ap-store-shell .ap-feature-list{\n      display:grid;\n      grid-template-columns:repeat(2,1fr);\n      gap:12px;\n      margin-top:18px;\n    }\n\n    #ap-store-shell .ap-feature{\n      background:var(--surface-2);\n      border:1px solid var(--line);\n      border-radius:20px;\n      padding:16px;\n    }\n\n    #ap-store-shell .ap-feature strong{\n      display:block;\n      margin-bottom:6px;\n      font-size:.98rem;\n      letter-spacing:-.02em;\n    }\n\n    #ap-store-shell .ap-feature span{\n      color:var(--muted);\n      font-size:.92rem;\n      line-height:1.6;\n    }\n\n    #ap-store-shell .ap-similar{\n      margin-top:24px;\n    }\n\n    #ap-store-shell .ap-similar-head{\n      display:flex;\n      align-items:center;\n      justify-content:space-between;\n      gap:14px;\n      margin-bottom:14px;\n    }\n\n    #ap-store-shell .ap-similar-head h3{\n      margin:0;\n      font-size:1.28rem;\n      letter-spacing:-.03em;\n    }\n\n    #ap-store-shell .ap-similar-slider{\n      position:relative;\n      overflow:hidden;\n      width:100%;\n    }\n\n    #ap-store-shell .ap-similar-slider::before,\n    #ap-store-shell .ap-similar-slider::after{\n      content:\"\";\n      position:absolute;\n      top:0;\n      bottom:0;\n      width:56px;\n      z-index:4;\n      pointer-events:none;\n    }\n\n    #ap-store-shell .ap-similar-slider::before{\n      left:0;\n      background:linear-gradient(to right, #f3f5f7 0%, rgba(243,245,247,0) 100%);\n    }\n\n    #ap-store-shell .ap-similar-slider::after{\n      right:0;\n      background:linear-gradient(to left, #f3f5f7 0%, rgba(243,245,247,0) 100%);\n    }\n\n    #ap-store-shell .ap-similar-track{\n      display:flex;\n      gap:16px;\n      will-change:transform;\n      transition:transform .55s cubic-bezier(.22,.61,.36,1);\n    }\n\n    #ap-store-shell .ap-similar-slide{\n      flex:0 0 calc(25% - 12px);\n      min-width:calc(25% - 12px);\n    }\n\n    #ap-store-shell .ap-similar-card{\n      background:#fff;\n      border:1px solid var(--line);\n      border-radius:24px;\n      overflow:hidden;\n      box-shadow:var(--shadow-soft);\n      transition:transform .25s ease, box-shadow .25s ease;\n      height:100%;\n    }\n\n    #ap-store-shell .ap-similar-card:hover{\n      transform:translateY(-4px);\n      box-shadow:0 16px 34px rgba(15,23,42,.10);\n    }\n\n    #ap-store-shell .ap-similar-media{\n      aspect-ratio:1\/1;\n      background:linear-gradient(180deg,#fbfcfd,#f4f7fa);\n      border-bottom:1px solid var(--line);\n      padding:14px;\n      display:flex;\n      align-items:center;\n      justify-content:center;\n    }\n\n    #ap-store-shell .ap-similar-media img{\n      width:100%;\n      height:100%;\n      object-fit:contain;\n    }\n\n    #ap-store-shell .ap-similar-body{\n      padding:14px;\n    }\n\n    #ap-store-shell .ap-similar-body h4{\n      margin:0 0 6px;\n      font-size:.95rem;\n      line-height:1.35;\n      letter-spacing:-.02em;\n    }\n\n    #ap-store-shell .ap-similar-body p{\n      margin:0;\n      color:var(--muted);\n      font-size:.84rem;\n      line-height:1.6;\n    }\n\n    #ap-store-shell .ap-similar-nav{\n      display:flex;\n      align-items:center;\n      gap:8px;\n    }\n\n    #ap-store-shell .ap-similar-btn{\n      appearance:none;\n      border:1px solid var(--line);\n      background:#fff;\n      color:var(--text);\n      width:42px;\n      height:42px;\n      border-radius:14px;\n      cursor:pointer;\n      box-shadow:var(--shadow-soft);\n      font-size:1rem;\n      transition:.2s ease;\n    }\n\n    #ap-store-shell .ap-similar-btn:hover{\n      transform:translateY(-1px);\n    }\n\n    #ap-store-shell .ap-cart-drawer{\n      position:fixed;\n      inset:0;\n      z-index:9999;\n      pointer-events:none;\n    }\n\n    #ap-store-shell .ap-cart-drawer.is-open{\n      pointer-events:auto;\n    }\n\n    #ap-store-shell .ap-cart-backdrop{\n      position:absolute;\n      inset:0;\n      background:rgba(15,23,42,.34);\n      opacity:0;\n      transition:.25s ease;\n    }\n\n    #ap-store-shell .ap-cart-drawer.is-open .ap-cart-backdrop{\n      opacity:1;\n    }\n\n    #ap-store-shell .ap-cart-panel{\n      position:absolute;\n      top:0;\n      right:0;\n      width:min(100%,430px);\n      height:100%;\n      background:#fff;\n      box-shadow:-18px 0 60px rgba(15,23,42,.16);\n      transform:translateX(100%);\n      transition:.28s ease;\n      display:flex;\n      flex-direction:column;\n    }\n\n    #ap-store-shell .ap-cart-drawer.is-open .ap-cart-panel{\n      transform:translateX(0);\n    }\n\n    #ap-store-shell .ap-cart-head{\n      display:flex;\n      align-items:center;\n      justify-content:space-between;\n      gap:16px;\n      padding:20px 20px 16px;\n      border-bottom:1px solid var(--line);\n    }\n\n    #ap-store-shell .ap-cart-head h3{\n      margin:0;\n      font-size:1.2rem;\n      letter-spacing:-.03em;\n    }\n\n    #ap-store-shell .ap-cart-close{\n      appearance:none;\n      width:40px;\n      height:40px;\n      border-radius:12px;\n      border:1px solid var(--line);\n      background:#fff;\n      cursor:pointer;\n      font-size:1rem;\n    }\n\n    #ap-store-shell .ap-cart-body{\n      flex:1;\n      overflow:auto;\n      padding:16px 20px;\n      display:grid;\n      gap:12px;\n    }\n\n    #ap-store-shell .ap-cart-empty{\n      color:var(--muted);\n      font-size:.95rem;\n      line-height:1.7;\n      padding:6px 2px;\n    }\n\n    #ap-store-shell .ap-cart-item{\n      border:1px solid var(--line);\n      border-radius:20px;\n      padding:12px;\n      display:grid;\n      grid-template-columns:74px 1fr auto;\n      gap:12px;\n      align-items:start;\n      background:#fff;\n    }\n\n    #ap-store-shell .ap-cart-item-media{\n      width:74px;\n      height:74px;\n      border-radius:14px;\n      overflow:hidden;\n      background:#f6f8fb;\n      border:1px solid var(--line);\n    }\n\n    #ap-store-shell .ap-cart-item-media img{\n      width:100%;\n      height:100%;\n      object-fit:cover;\n    }\n\n    #ap-store-shell .ap-cart-item-info h4{\n      margin:0 0 6px;\n      font-size:.96rem;\n      line-height:1.3;\n    }\n\n    #ap-store-shell .ap-cart-item-info p{\n      margin:0;\n      color:var(--muted);\n      font-size:.84rem;\n      line-height:1.55;\n    }\n\n    #ap-store-shell .ap-cart-item-side{\n      display:flex;\n      flex-direction:column;\n      gap:8px;\n      align-items:flex-end;\n    }\n\n    #ap-store-shell .ap-cart-item-price{\n      font-weight:800;\n      font-size:.95rem;\n      white-space:nowrap;\n    }\n\n    #ap-store-shell .ap-qty-wrap{\n      display:flex;\n      align-items:center;\n      gap:6px;\n    }\n\n    #ap-store-shell .ap-qty-btn{\n      width:42px;\n      height:42px;\n      border-radius:14px;\n      border:1px solid var(--line);\n      background:#fff;\n      color:#111827;\n      cursor:pointer;\n      font-weight:900;\n      font-size:24px;\n      line-height:1;\n      display:inline-flex;\n      align-items:center;\n      justify-content:center;\n      padding:0;\n      box-shadow:var(--shadow-soft);\n    }\n\n    #ap-store-shell .ap-qty-btn:hover{\n      transform:translateY(-1px);\n      border-color:#cfd7e1;\n    }\n\n    #ap-store-shell .ap-qty-btn span{\n      display:block;\n      line-height:1;\n      transform:translateY(-1px);\n    }\n\n    #ap-store-shell .ap-qty-val{\n      min-width:24px;\n      text-align:center;\n      font-weight:700;\n    }\n\n    #ap-store-shell .ap-remove-btn{\n      appearance:none;\n      border:0;\n      background:none;\n      color:#b42318;\n      font-weight:700;\n      cursor:pointer;\n      font-size:.82rem;\n    }\n\n    #ap-store-shell .ap-cart-foot{\n      border-top:1px solid var(--line);\n      padding:16px 20px 20px;\n      display:grid;\n      gap:14px;\n      background:#fff;\n    }\n\n    #ap-store-shell .ap-cart-total{\n      display:flex;\n      align-items:center;\n      justify-content:space-between;\n      gap:12px;\n      font-size:1rem;\n    }\n\n    #ap-store-shell .ap-cart-total strong{\n      font-size:1rem;\n    }\n\n    #ap-store-shell .ap-cart-total span{\n      font-size:1.08rem;\n      font-weight:800;\n    }\n\n    #ap-store-shell .ap-cart-foot-actions{\n      display:grid;\n      gap:10px;\n    }\n\n    #ap-store-shell .ap-reveal{\n      opacity:0;\n      transform:translateY(28px);\n      transition:opacity .7s ease, transform .7s ease;\n      will-change:opacity, transform;\n    }\n\n    #ap-store-shell .ap-reveal.is-visible{\n      opacity:1;\n      transform:translateY(0);\n    }\n\n    @media (max-width:1180px){\n      #ap-store-shell .ap-grid{\n        grid-template-columns:repeat(3,1fr);\n      }\n\n      #ap-store-shell .ap-similar-slide{\n        flex:0 0 calc(33.333% - 11px);\n        min-width:calc(33.333% - 11px);\n      }\n\n      #ap-store-shell .ap-product-layout{\n        grid-template-columns:1fr;\n      }\n    }\n\n    @media (max-width:860px){\n      #ap-store-shell{\n        padding:92px 12px 68px;\n      }\n\n      #ap-store-shell .ap-cart-toggle{\n        min-height:44px;\n        padding:0 14px;\n        font-size:.95rem;\n        background:rgba(255,255,255,.96);\n        backdrop-filter:blur(10px);\n        -webkit-backdrop-filter:blur(10px);\n        box-shadow:0 12px 30px rgba(15,23,42,.10);\n      }\n\n      #ap-store-shell .ap-cart-count{\n        min-width:22px;\n        height:22px;\n        font-size:.76rem;\n      }\n\n      #ap-store-shell .ap-store-actions{\n        position:absolute;\n        top:30px;\n        right:12px;\n        width:auto;\n        justify-content:flex-end;\n        margin:0;\n        z-index:30;\n      }\n\n      #ap-store-shell .ap-grid{\n        grid-template-columns:repeat(2,1fr);\n      }\n\n      #ap-store-shell .ap-similar-slide{\n        flex:0 0 calc(50% - 8px);\n        min-width:calc(50% - 8px);\n      }\n\n      #ap-store-shell .ap-feature-list{\n        grid-template-columns:1fr;\n      }\n\n      #ap-store-shell .ap-hero,\n      #ap-store-shell .ap-product-box,\n      #ap-store-shell .ap-content-box,\n      #ap-store-shell .ap-gallery{\n        border-radius:24px;\n        padding:20px;\n      }\n\n      #ap-store-shell .ap-gallery-thumbs{\n        grid-template-columns:repeat(4,1fr);\n      }\n\n      #ap-store-shell .ap-hero{\n        padding:30px 18px 26px;\n      }\n\n      #ap-store-shell .ap-hero-copy h1{\n        font-size:clamp(2rem,10vw,3.4rem);\n      }\n\n      #ap-store-shell .ap-hero-copy p{\n        font-size:.98rem;\n        line-height:1.7;\n      }\n\n      #ap-store-shell .ap-hero-meta{\n        gap:10px;\n      }\n\n      #ap-store-shell .ap-pill{\n        min-height:40px;\n        padding:0 14px;\n        font-size:.86rem;\n      }\n    }\n\n    @media (max-width:620px){\n      #ap-store-shell .ap-grid{\n        grid-template-columns:1fr;\n      }\n\n      #ap-store-shell .ap-similar-slide{\n        flex:0 0 100%;\n        min-width:100%;\n      }\n\n      #ap-store-shell .ap-toolbar{\n        align-items:stretch;\n      }\n\n      #ap-store-shell .ap-search{\n        width:100%;\n      }\n\n      #ap-store-shell .ap-gallery-thumbs{\n        grid-template-columns:repeat(3,1fr);\n      }\n\n      #ap-store-shell .ap-hero{\n        padding:26px 14px 22px;\n      }\n\n      #ap-store-shell .ap-hero-copy h1{\n        font-size:clamp(1.85rem,11vw,3rem);\n      }\n\n      #ap-store-shell .ap-hero-copy p{\n        font-size:.95rem;\n      }\n\n      #ap-store-shell .ap-cart-item{\n        grid-template-columns:64px 1fr;\n      }\n\n      #ap-store-shell .ap-cart-item-side{\n        grid-column:2;\n        align-items:flex-start;\n      }\n\n      #ap-store-shell .ap-model-grid,\n      #ap-store-shell .ap-color-grid{\n        grid-template-columns:1fr;\n      }\n    }\n  \n\n\n\n\/* =========================================================\n   APPLEPOINT \u2014 SKLEP V2 \/ SP\u00d3JNY Z CENNIKIEM, US\u0141UGAMI,\n   KONTAKTEM I SERWISEM WYSY\u0141KOWYM\n   ========================================================= *\/\n#ap-store-shell{\n  --bg:#fff!important;\n  --surface:#fff!important;\n  --surface-2:#fafafa!important;\n  --line:#e8e8e8!important;\n  --line-strong:#d7d7d7!important;\n  --text:#18212b!important;\n  --muted:#6b6b70!important;\n  --soft:#9a9a9f!important;\n  --accent:#d9f47a!important;\n  --accent-2:#cdef61!important;\n  --shadow:0 18px 46px rgba(0,0,0,.055)!important;\n  --shadow-soft:0 8px 22px rgba(0,0,0,.04)!important;\n  --radius:26px!important;\n  --radius-sm:18px!important;\n  --container:1260px!important;\n\n  position:relative!important;\n  width:100vw!important;\n  max-width:none!important;\n  margin-left:calc(50% - 50vw)!important;\n  margin-right:calc(50% - 50vw)!important;\n  margin-top:-20px!important;\n  padding:0 0 88px!important;\n  overflow:hidden!important;\n  background:#fff!important;\n  background-image:none!important;\n  color:var(--text)!important;\n  font-family:-apple-system,BlinkMacSystemFont,\"SF Pro Display\",\"SF Pro Text\",\"Helvetica Neue\",Arial,sans-serif!important;\n  -webkit-font-smoothing:antialiased!important;\n}\n\n#ap-store-shell::before,\n#ap-store-shell::after{content:none!important;display:none!important}\n\n.elementor-element:has(> .elementor-widget-container > #ap-store-shell),\n.elementor-widget-html:has(#ap-store-shell),\n.elementor-widget-html:has(#ap-store-shell)>.elementor-widget-container{\n  width:100%!important;max-width:none!important;padding:0!important;margin:0!important;\n  border-radius:0!important;overflow:visible!important\n}\n\n#ap-store-shell .ap-store-wrap{\n  width:100%!important;\n  max-width:none!important;\n  margin:0!important;\n  padding:0!important;\n  position:relative!important;\n}\n\n\/* ----- hero ----- *\/\n#ap-store-shell .ap-hero{\n  position:relative!important;\n  width:100%!important;\n  min-height:560px!important;\n  margin:0!important;\n  padding:90px 24px 46px!important;\n  border:0!important;\n  border-radius:0!important;\n  box-shadow:none!important;\n  background:#fff!important;\n  background-image:none!important;\n  overflow:hidden!important;\n  display:flex!important;\n  align-items:flex-start!important;\n  justify-content:center!important;\n  text-align:center!important;\n}\n#ap-store-shell .ap-hero::before,\n#ap-store-shell .ap-hero::after{content:none!important;display:none!important}\n#ap-store-shell .ap-hero-copy{\n  position:relative!important;\n  z-index:5!important;\n  width:min(1120px,100%)!important;\n  max-width:1120px!important;\n  margin:0 auto!important;\n  display:flex!important;\n  flex-direction:column!important;\n  align-items:center!important;\n  text-align:center!important;\n}\n#ap-store-shell .ap-store-badge{\n  display:flex;align-items:center;justify-content:center;\n  width:max-content;min-width:110px;min-height:54px;\n  padding:0 24px;margin:0 auto 25px;\n  border:1px solid #d9e8a6;border-radius:999px;background:#fff;\n  color:#111;font-size:16px;font-weight:680;line-height:1\n}\n#ap-store-shell .ap-hero-copy h1{\n  max-width:1080px!important;\n  margin:0 auto!important;\n  color:#18212b!important;\n  -webkit-text-fill-color:#18212b!important;\n  background:none!important;\n  background-image:none!important;\n  animation:none;\n  text-shadow:none!important;\n  font-size:clamp(54px,5.2vw,82px)!important;\n  line-height:.98!important;\n  letter-spacing:-.055em!important;\n  font-weight:780!important;\n}\n#ap-store-shell .ap-hero-copy p{\n  max-width:800px!important;\n  margin:30px auto 0!important;\n  color:#606166!important;\n  font-size:19px!important;\n  line-height:1.55!important;\n  font-weight:520!important;\n}\n#ap-store-shell .ap-store-rating{\n  display:flex;width:max-content;max-width:100%;flex-direction:column;align-items:center;gap:7px;\n  margin:26px auto 0;padding:7px 10px;border-radius:14px;color:#111!important;\n  transition:transform .22s ease,background .22s ease,box-shadow .22s ease\n}\n#ap-store-shell .ap-store-rating:hover{transform:translateY(-3px);background:#fafafa;box-shadow:0 8px 24px rgba(0,0,0,.045)}\n#ap-store-shell .ap-store-rating-label{font-size:12px;color:#333}\n#ap-store-shell .ap-store-rating-row{display:flex;align-items:center;justify-content:center;gap:8px}\n#ap-store-shell .ap-google-wordmark{display:inline-flex;font-size:15px;font-weight:750;letter-spacing:-.035em}\n#ap-store-shell .ap-google-wordmark .g1,#ap-store-shell .ap-google-wordmark .g4{color:#4285F4}\n#ap-store-shell .ap-google-wordmark .g2,#ap-store-shell .ap-google-wordmark .g6{color:#EA4335}\n#ap-store-shell .ap-google-wordmark .g3{color:#FBBC05}\n#ap-store-shell .ap-google-wordmark .g5{color:#34A853}\n#ap-store-shell .ap-store-stars{color:#fbbc04;letter-spacing:2px;font-size:16px}\n#ap-store-shell .ap-store-score{color:#222;font-size:12px}\n#ap-store-shell .ap-hero-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:23px}\n#ap-store-shell .ap-store-btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 24px;border-radius:14px;font-size:14px;font-weight:720;transition:.24s ease}\n#ap-store-shell .ap-store-btn:hover{transform:translateY(-2px)}\n#ap-store-shell .ap-store-btn-dark{background:#111;color:#fff!important;border:1px solid #111}\n#ap-store-shell .ap-store-btn-dark:hover{background:#292929;box-shadow:0 12px 30px rgba(0,0,0,.10)}\n#ap-store-shell .ap-store-btn-light{background:#fff;color:#111!important;border:1px solid #ddd}\n#ap-store-shell .ap-store-btn-light:hover{border-color:#aaa;box-shadow:0 10px 24px rgba(0,0,0,.045)}\n\n\/* sparks *\/\n#ap-store-shell .ap-store-spark{position:absolute;z-index:2;display:block;pointer-events:none;animation:apStoreSparkFloat 6s ease-in-out infinite}\n#ap-store-shell .ap-store-spark svg{width:100%;height:100%;display:block}\n#ap-store-shell .ap-store-spark path{fill:currentColor}\n\/* Gwiazdki \u2014 roz\u0142o\u017cenie jak Cennik \/ Kontakt *\/\n#ap-store-shell .ap-store-spark.sp1{\n  left:6%;\n  top:27%;\n  width:26px;\n  height:34px;\n  color:#fff0a6;\n}\n\n#ap-store-shell .ap-store-spark.sp2{\n  left:18%;\n  top:39%;\n  width:42px;\n  height:56px;\n  color:#e2efff;\n}\n\n#ap-store-shell .ap-store-spark.sp3{\n  left:34%;\n  top:29%;\n  width:18px;\n  height:24px;\n  color:#d9f47a;\n}\n\n#ap-store-shell .ap-store-spark.sp4{\n  right:31%;\n  top:25%;\n  width:21px;\n  height:28px;\n  color:#e4f0ff;\n}\n\n#ap-store-shell .ap-store-spark.sp5{\n  right:9%;\n  top:36%;\n  width:34px;\n  height:46px;\n  color:#d9f47a;\n}\n\n#ap-store-shell .ap-store-spark.sp6{\n  left:25%;\n  top:51%;\n  width:72px;\n  height:98px;\n  color:#d9f47a;\n}\n\n#ap-store-shell .ap-store-spark.sp7{\n  left:7%;\n  top:66%;\n  width:40px;\n  height:54px;\n  color:#fff0a6;\n}\n\n#ap-store-shell .ap-store-spark.sp8{\n  right:8%;\n  top:62%;\n  width:48px;\n  height:64px;\n  color:#e5f1ff;\n}\n@keyframes apStoreSparkFloat{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(0,-7px,0) scale(1.035)}}\n#ap-store-shell .sp2,#ap-store-shell .sp5{animation-delay:-1.7s}\n#ap-store-shell .sp3,#ap-store-shell .sp7{animation-delay:-3.2s}\n#ap-store-shell .sp6,#ap-store-shell .sp8{animation-duration:7.3s}\n\n\/* cart *\/\n#ap-store-shell .ap-store-actions{\n  position:absolute!important;\n  top:104px!important;\n  right:max(24px,calc((100vw - 1260px)\/2))!important;\n  z-index:20!important;\n  margin:0!important;\n}\n#ap-store-shell .ap-cart-toggle{\n  min-height:48px!important;padding:0 17px!important;border-radius:999px!important;\n  background:#fff!important;color:#111!important;border:1px solid #ddd!important;box-shadow:0 8px 22px rgba(0,0,0,.045)!important;\n  animation:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important\n}\n#ap-store-shell .ap-cart-toggle:hover{transform:translateY(-2px)!important;border-color:#aaa!important;box-shadow:0 12px 28px rgba(0,0,0,.07)!important}\n#ap-store-shell .ap-cart-count{background:#d9f47a!important;color:#111!important;box-shadow:none!important;animation:none!important}\n\n\/* ----- category\/search strip ----- *\/\n#ap-store-shell .ap-toolbar{\n  width:min(1260px,calc(100% - 48px))!important;\n  margin:0 auto 32px!important;\n  padding:22px 0!important;\n  border-top:1px solid #f2f2f2!important;\n  border-bottom:1px solid var(--line)!important;\n  display:grid!important;\n  grid-template-columns:1fr minmax(300px,420px)!important;\n  align-items:center!important;\n  gap:30px!important;\n  background:#fff!important;\n}\n#ap-store-shell .ap-toolbar-left{display:flex!important;gap:8px!important;flex-wrap:wrap!important}\n#ap-store-shell .ap-chip{\n  min-height:44px!important;padding:0 17px!important;border-radius:999px!important;\n  background:#fff!important;color:#222!important;border:1px solid #ddd!important;\n  box-shadow:none!important;font-size:14px!important;font-weight:680!important;transition:.22s ease!important\n}\n#ap-store-shell .ap-chip:hover{transform:translateY(-2px)!important;border-color:#b9c879!important;background:#fcfdf8!important}\n#ap-store-shell .ap-chip.is-active{background:#111!important;color:#fff!important;border-color:#111!important;box-shadow:none!important}\n#ap-store-shell .ap-search{\n  width:100%!important;min-height:50px!important;padding:0 17px!important;border-radius:999px!important;\n  background:#fff!important;border:1px solid #ddd!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important\n}\n#ap-store-shell .ap-search:focus-within{border-color:#b8c97d!important;box-shadow:0 0 0 4px rgba(217,244,122,.18)!important}\n\n#ap-store-shell .ap-results-head,\n#ap-store-shell .ap-grid,\n#ap-store-shell .ap-empty,\n#ap-store-shell .ap-product-layout,\n#ap-store-shell .ap-similar{\n  width:min(1260px,calc(100% - 48px))!important;\n  margin-left:auto!important;margin-right:auto!important\n}\n#ap-store-shell .ap-results-head{margin-top:0!important;margin-bottom:22px!important}\n#ap-store-shell .ap-results-head h2,\n#ap-store-shell .ap-product-title,\n#ap-store-shell .ap-content-box h2,\n#ap-store-shell .ap-similar-head h3{\n  color:#18212b!important;-webkit-text-fill-color:#18212b!important;background:none!important;background-image:none!important;animation:none!important;text-shadow:none!important\n}\n#ap-store-shell .ap-results-head h2{font-size:clamp(34px,3.6vw,50px)!important;letter-spacing:-.045em!important}\n#ap-store-shell .ap-results-head p{color:#777!important}\n\n\/* ----- product cards ----- *\/\n#ap-store-shell .ap-grid{grid-template-columns:repeat(4,1fr)!important;gap:18px!important}\n#ap-store-shell .ap-card{\n  position:relative!important;overflow:hidden!important;min-height:100%!important;\n  background:#fff!important;border:1px solid var(--line)!important;border-radius:24px!important;\n  box-shadow:none!important;transition:transform .32s cubic-bezier(.22,1,.36,1),border-color .25s ease,box-shadow .25s ease!important\n}\n#ap-store-shell .ap-card::before,#ap-store-shell .ap-card::after{content:none!important;display:none!important}\n#ap-store-shell .ap-card:hover{transform:translateY(-6px)!important;border-color:#c9d996!important;box-shadow:0 20px 46px rgba(0,0,0,.07)!important}\n#ap-store-shell .ap-card-media{background:#fafafa!important;background-image:none!important;border-bottom:1px solid var(--line)!important;padding:20px!important}\n#ap-store-shell .ap-card-media img{transition:transform .42s cubic-bezier(.22,1,.36,1)!important;filter:none!important}\n#ap-store-shell .ap-card:hover .ap-card-media img{transform:translateY(-4px) scale(1.035)!important;filter:none!important}\n#ap-store-shell .ap-badge{background:#eef7c9!important;color:#34410d!important;border:1px solid #dceca7!important;box-shadow:none!important}\n#ap-store-shell .ap-card-body{padding:19px 19px 20px!important;gap:11px!important}\n#ap-store-shell .ap-card-title{color:#18212b!important;font-size:17px!important;font-weight:740!important}\n#ap-store-shell .ap-card-desc{color:#777!important}\n#ap-store-shell .ap-tag{background:#fff!important;border:1px solid #e5e5e5!important;color:#555!important;font-weight:620!important}\n#ap-store-shell .ap-card-bottom{border-top:1px solid var(--line)!important;padding-top:14px!important}\n#ap-store-shell .ap-card-price strong{font-size:17px!important;color:#111!important}\n#ap-store-shell .ap-arrow{width:42px!important;height:42px!important;border-radius:50%!important;background:#fff!important;border:1px solid #ddd!important;color:#111!important;transition:.22s ease!important}\n#ap-store-shell .ap-card:hover .ap-arrow{transform:translateX(3px)!important;background:#111!important;color:#fff!important;border-color:#111!important}\n\n\/* ----- product detail ----- *\/\n#ap-store-shell #apProductPage{padding-top:82px!important}\n#ap-store-shell .ap-product-layout{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr)!important;gap:26px!important}\n#ap-store-shell .ap-gallery,\n#ap-store-shell .ap-product-box,\n#ap-store-shell .ap-content-box,\n#ap-store-shell .ap-similar-card{\n  position:relative!important;background:#fff!important;border:1px solid var(--line)!important;box-shadow:none!important\n}\n#ap-store-shell .ap-gallery{border-radius:26px!important;padding:18px!important}\n#ap-store-shell .ap-gallery::before,#ap-store-shell .ap-gallery::after,\n#ap-store-shell .ap-product-box::before,#ap-store-shell .ap-product-box::after,\n#ap-store-shell .ap-content-box::before,#ap-store-shell .ap-content-box::after,\n#ap-store-shell .ap-similar-card::before,#ap-store-shell .ap-similar-card::after{content:none!important;display:none!important}\n#ap-store-shell .ap-gallery-main{background:#fafafa!important;background-image:none!important;border:1px solid var(--line)!important;border-radius:20px!important}\n#ap-store-shell .ap-gallery-main img{filter:none!important;transition:transform .4s ease!important}\n#ap-store-shell .ap-gallery:hover .ap-gallery-main img{transform:scale(1.02)!important;filter:none!important}\n#ap-store-shell .ap-thumb{border-radius:14px!important;box-shadow:none!important}\n#ap-store-shell .ap-thumb.is-active{border-color:#111!important;box-shadow:0 0 0 3px rgba(217,244,122,.36)!important}\n#ap-store-shell .ap-product-box{border-radius:26px!important;padding:28px!important}\n#ap-store-shell .ap-product-title{font-size:clamp(36px,3.6vw,54px)!important;line-height:1!important;letter-spacing:-.05em!important}\n#ap-store-shell .ap-product-subtitle{color:#777!important}\n#ap-store-shell .ap-product-price{font-size:24px!important;color:#111!important}\n#ap-store-shell .ap-variant-select{border:1px solid #ddd!important;border-radius:14px!important;box-shadow:none!important}\n#ap-store-shell .ap-variant-select:focus{border-color:#b8c97d!important;box-shadow:0 0 0 4px rgba(217,244,122,.18)!important}\n#ap-store-shell .ap-model-btn,#ap-store-shell .ap-color-btn{border:1px solid #ddd!important;border-radius:14px!important;box-shadow:none!important;transition:.22s ease!important}\n#ap-store-shell .ap-model-btn:hover,#ap-store-shell .ap-color-btn:hover{transform:translateY(-2px)!important;border-color:#b8c97d!important}\n#ap-store-shell .ap-model-btn.is-active,#ap-store-shell .ap-color-btn.is-active{border-color:#111!important;box-shadow:0 0 0 3px rgba(217,244,122,.38)!important;background:#fbfdeF!important}\n#ap-store-shell .ap-specs li{border-color:var(--line)!important;color:#666!important}\n#ap-store-shell .ap-shipping-free{color:#6d801f!important}\n#ap-store-shell .ap-btn{min-height:52px!important;padding:0 20px!important;border-radius:14px!important;font-weight:720!important;transition:.22s ease!important}\n#ap-store-shell .ap-btn:hover{transform:translateY(-2px)!important}\n#ap-store-shell .ap-btn-primary{background:#111!important;color:#fff!important;border:1px solid #111!important;box-shadow:none!important}\n#ap-store-shell .ap-btn-primary:hover{background:#292929!important;box-shadow:0 12px 30px rgba(0,0,0,.10)!important}\n#ap-store-shell .ap-btn-secondary{background:#fff!important;color:#111!important;border:1px solid #ddd!important;box-shadow:none!important}\n#ap-store-shell .ap-btn-secondary:hover{border-color:#aaa!important}\n#ap-store-shell .ap-content-box{border-radius:26px!important;padding:28px!important;margin-top:22px!important}\n#ap-store-shell .ap-feature{background:#fafafa!important;border:1px solid var(--line)!important;border-radius:18px!important}\n#ap-store-shell .ap-similar{margin-top:34px!important}\n#ap-store-shell .ap-similar-card{border-radius:22px!important;box-shadow:none!important}\n#ap-store-shell .ap-similar-card:hover{transform:translateY(-5px)!important;border-color:#c9d996!important;box-shadow:0 18px 38px rgba(0,0,0,.06)!important}\n#ap-store-shell .ap-similar-media{background:#fafafa!important;background-image:none!important}\n#ap-store-shell .ap-similar-slider::before{background:linear-gradient(to right,#fff,rgba(255,255,255,0))!important}\n#ap-store-shell .ap-similar-slider::after{background:linear-gradient(to left,#fff,rgba(255,255,255,0))!important}\n#ap-store-shell .ap-similar-btn{border-radius:50%!important;box-shadow:none!important}\n\n\/* ----- cart drawer ----- *\/\n#ap-store-shell .ap-cart-backdrop{background:rgba(17,17,17,.28)!important;backdrop-filter:blur(4px)!important}\n#ap-store-shell .ap-cart-panel{background:#fff!important;box-shadow:-22px 0 60px rgba(0,0,0,.14)!important}\n#ap-store-shell .ap-cart-item{background:#fff!important;border:1px solid var(--line)!important;box-shadow:none!important}\n#ap-store-shell .ap-cart-item-media{background:#fafafa!important}\n#ap-store-shell .ap-qty-btn{border-radius:50%!important;box-shadow:none!important}\n#ap-store-shell .ap-cart-close{border-radius:50%!important}\n\n\/* ----- reveal\/motion ----- *\/\n#ap-store-shell .ap-reveal{\n  opacity:0!important;\n  transform:translateY(18px)!important;\n  filter:blur(5px)!important;\n  transition:opacity .72s cubic-bezier(.22,1,.36,1),transform .72s cubic-bezier(.22,1,.36,1),filter .72s cubic-bezier(.22,1,.36,1)!important;\n}\n#ap-store-shell .ap-reveal.is-visible{opacity:1!important;transform:none!important;filter:none!important;will-change:auto!important}\n#ap-store-shell .ap-card.ap-reveal{transition:opacity .62s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1),filter .62s cubic-bezier(.22,1,.36,1),border-color .25s ease,box-shadow .25s ease!important}\n\n\/* No old pointer glow\/blue progress *\/\n#ap-store-shell .ap-pointer-glow{display:none!important}\n#ap-store-shell .ap-scroll-progress{background:#d9f47a!important;box-shadow:none!important}\n\n@media(max-width:1180px){\n  #ap-store-shell .ap-grid{grid-template-columns:repeat(3,1fr)!important}\n  #ap-store-shell .ap-product-layout{grid-template-columns:1fr!important}\n}\n@media(max-width:860px){\n  #ap-store-shell{margin-top:-12px!important;padding-bottom:68px!important}\n  #ap-store-shell .ap-hero{min-height:auto!important;padding:82px 18px 40px!important}\n  #ap-store-shell .ap-hero-copy h1{font-size:clamp(44px,10vw,64px)!important}\n  #ap-store-shell .ap-hero-copy p{font-size:17px!important}\n  #ap-store-shell .ap-store-actions{top:78px!important;right:18px!important}\n  #ap-store-shell .ap-toolbar{width:calc(100% - 30px)!important;grid-template-columns:1fr!important;gap:16px!important}\n  #ap-store-shell .ap-results-head,#ap-store-shell .ap-grid,#ap-store-shell .ap-empty,#ap-store-shell .ap-product-layout,#ap-store-shell .ap-similar{width:calc(100% - 30px)!important}\n  #ap-store-shell .ap-grid{grid-template-columns:repeat(2,1fr)!important}\n  #ap-store-shell #apProductPage{padding-top:68px!important}\n}\n@media(max-width:620px){\n  #ap-store-shell .ap-hero{padding:76px 15px 34px!important}\n  #ap-store-shell .ap-store-badge{min-height:46px!important;font-size:14px!important}\n  #ap-store-shell .ap-hero-copy h1{font-size:43px!important}\n  #ap-store-shell .ap-hero-copy p{font-size:15px!important}\n  #ap-store-shell .ap-hero-actions{flex-direction:column!important;width:100%!important}\n  #ap-store-shell .ap-store-btn{width:100%!important}\n  #ap-store-shell .ap-store-actions{position:relative!important;top:auto!important;right:auto!important;width:calc(100% - 30px)!important;margin:0 auto!important;justify-content:flex-end!important;padding-top:20px!important}\n  #ap-store-shell .ap-grid{grid-template-columns:1fr!important}\n  #ap-store-shell .ap-toolbar-left{display:grid!important;grid-template-columns:repeat(2,1fr)!important}\n  #ap-store-shell .ap-chip{width:100%!important}\n  #ap-store-shell .ap-store-spark.sp3,#ap-store-shell .ap-store-spark.sp4{display:none!important}\n}\n@media(prefers-reduced-motion:reduce){\n  #ap-store-shell .ap-store-spark{animation:none!important}\n  #ap-store-shell .ap-reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}\n  #ap-store-shell .ap-card,#ap-store-shell .ap-card-media img,#ap-store-shell .ap-store-rating{transition:none!important}\n}\n\n\n\n\/* =========================================================\n   APPLEPOINT \u2014 SKLEP V3 \/ FINAL LAYOUT POLISH\n   R\u00f3wne kafelki + idealnie wy\u015brodkowany hero + koszyk top-right\n   + animacje sp\u00f3jne z Cennikiem \/ Us\u0142ugami \/ Kontaktem \/ Wysy\u0142k\u0105\n   ========================================================= *\/\n\n\/* HERO \u2014 twarde centrowanie ca\u0142ego bloku, niezale\u017cnie od koszyka *\/\n#ap-store-shell .ap-hero{\n  display:grid!important;\n  grid-template-columns:minmax(0,1fr)!important;\n  place-items:start center!important;\n  justify-content:stretch!important;\n  align-items:start!important;\n}\n#ap-store-shell .ap-hero-copy{\n  width:min(1080px,calc(100% - 48px))!important;\n  max-width:1080px!important;\n  margin-left:auto!important;\n  margin-right:auto!important;\n  padding-left:0!important;\n  padding-right:0!important;\n  justify-self:center!important;\n  align-self:start!important;\n  left:auto!important;\n  right:auto!important;\n  translate:none!important;\n}\n#ap-store-shell .ap-hero-copy h1,\n#ap-store-shell .ap-hero-copy p,\n#ap-store-shell .ap-store-rating,\n#ap-store-shell .ap-hero-actions{\n  margin-left:auto!important;\n  margin-right:auto!important;\n  text-align:center!important;\n}\n#ap-store-shell .ap-hero-actions{\n  align-items:center!important;\n  justify-content:center!important;\n}\n\n\/* KOSZYK \u2014 zawsze prawy g\u00f3rny r\u00f3g ekranu *\/\n#ap-store-shell .ap-store-actions{\n  position:fixed!important;\n  top:55px!important;\n  right:12px!important;\n  left:auto!important;\n  width:auto!important;\n  margin:0!important;\n  padding:0!important;\n  z-index:1800!important;\n  display:flex!important;\n  justify-content:flex-end!important;\n  pointer-events:none!important;\n}\n#ap-store-shell .ap-store-actions .ap-cart-toggle{\n  pointer-events:auto!important;\n  background:rgba(255,255,255,.96)!important;\n  -webkit-backdrop-filter:blur(12px) saturate(125%)!important;\n  backdrop-filter:blur(12px) saturate(125%)!important;\n  box-shadow:0 12px 34px rgba(0,0,0,.08)!important;\n  transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease,border-color .25s ease!important;\n}\n#ap-store-shell .ap-store-actions .ap-cart-toggle:hover{\n  transform:translateY(-3px) scale(1.015)!important;\n  border-color:#b9c879!important;\n  box-shadow:0 18px 42px rgba(0,0,0,.11)!important;\n}\n\n\/* R\u00d3WNE KAFELKI PRODUKT\u00d3W *\/\n#ap-store-shell .ap-grid{\n  grid-auto-rows:1fr!important;\n  align-items:stretch!important;\n}\n#ap-store-shell .ap-card{\n  height:700px!important;\n  min-height:700px!important;\n  max-height:700px!important;\n  display:flex!important;\n}\n#ap-store-shell .ap-card-link{\n  width:100%!important;\n  height:100%!important;\n  min-height:0!important;\n  display:flex!important;\n  flex-direction:column!important;\n}\n#ap-store-shell .ap-card-media{\n  height:300px!important;\n  min-height:300px!important;\n  max-height:300px!important;\n  aspect-ratio:auto!important;\n  flex:0 0 300px!important;\n}\n#ap-store-shell .ap-card-media img{\n  width:100%!important;\n  height:100%!important;\n  object-fit:contain!important;\n}\n#ap-store-shell .ap-card-body{\n  min-height:0!important;\n  height:400px!important;\n  flex:1 1 auto!important;\n  display:flex!important;\n  flex-direction:column!important;\n}\n#ap-store-shell .ap-card-title{\n  min-height:46px!important;\n  max-height:46px!important;\n  overflow:hidden!important;\n  display:-webkit-box!important;\n  -webkit-box-orient:vertical!important;\n  -webkit-line-clamp:2!important;\n  line-clamp:2!important;\n}\n#ap-store-shell .ap-card-desc{\n  min-height:138px!important;\n  max-height:138px!important;\n  overflow:hidden!important;\n  display:-webkit-box!important;\n  -webkit-box-orient:vertical!important;\n  -webkit-line-clamp:6!important;\n  line-clamp:6!important;\n}\n#ap-store-shell .ap-card-meta{\n  min-height:70px!important;\n  max-height:70px!important;\n  overflow:hidden!important;\n  align-content:flex-start!important;\n}\n#ap-store-shell .ap-card-bottom{\n  margin-top:auto!important;\n  min-height:74px!important;\n  flex:0 0 auto!important;\n}\n\n\/* Delikatniejszy, sp\u00f3jny hover kart *\/\n#ap-store-shell .ap-card{\n  transform:translateZ(0);\n  backface-visibility:hidden;\n}\n#ap-store-shell .ap-card:hover{\n  transform:translateY(-7px)!important;\n  border-color:#c8da8f!important;\n  box-shadow:0 22px 52px rgba(0,0,0,.075)!important;\n}\n#ap-store-shell .ap-card:hover .ap-badge{\n  transform:translateY(-2px)!important;\n}\n#ap-store-shell .ap-badge{\n  transition:transform .25s cubic-bezier(.22,1,.36,1),background .25s ease,border-color .25s ease!important;\n}\n#ap-store-shell .ap-tag{\n  transition:transform .22s cubic-bezier(.22,1,.36,1),border-color .22s ease,background .22s ease!important;\n}\n#ap-store-shell .ap-card:hover .ap-tag{\n  border-color:#d5dfb5!important;\n}\n\n\/* HERO ENTRY \u2014 sekwencyjne wej\u015bcie jak na pozosta\u0142ych podstronach *\/\n@keyframes apStoreHeroItemIn{\n  0%{opacity:0;transform:translateY(18px);filter:blur(5px)}\n  100%{opacity:1;transform:none;filter:none}\n}\n#ap-store-shell .ap-hero .ap-store-badge,\n#ap-store-shell .ap-hero .ap-hero-copy h1,\n#ap-store-shell .ap-hero .ap-hero-copy>p,\n#ap-store-shell .ap-hero .ap-store-rating,\n#ap-store-shell .ap-hero .ap-hero-actions{\n  opacity:0;\n}\n#ap-store-shell .ap-hero.is-visible .ap-store-badge{\n  animation:apStoreHeroItemIn .62s cubic-bezier(.22,1,.36,1) .06s both;\n}\n#ap-store-shell .ap-hero.is-visible .ap-hero-copy h1{\n  animation:apStoreHeroItemIn .72s cubic-bezier(.22,1,.36,1) .13s both!important;\n}\n#ap-store-shell .ap-hero.is-visible .ap-hero-copy>p{\n  animation:apStoreHeroItemIn .72s cubic-bezier(.22,1,.36,1) .20s both;\n}\n#ap-store-shell .ap-hero.is-visible .ap-store-rating{\n  animation:apStoreHeroItemIn .68s cubic-bezier(.22,1,.36,1) .28s both;\n}\n#ap-store-shell .ap-hero.is-visible .ap-hero-actions{\n  animation:apStoreHeroItemIn .68s cubic-bezier(.22,1,.36,1) .35s both;\n}\n\n\/* Stagger kart \u2014 mi\u0119kkie wej\u015bcie *\/\n#ap-store-shell .ap-grid .ap-card.ap-reveal:nth-child(4n+1){transition-delay:0ms!important}\n#ap-store-shell .ap-grid .ap-card.ap-reveal:nth-child(4n+2){transition-delay:55ms!important}\n#ap-store-shell .ap-grid .ap-card.ap-reveal:nth-child(4n+3){transition-delay:110ms!important}\n#ap-store-shell .ap-grid .ap-card.ap-reveal:nth-child(4n+4){transition-delay:165ms!important}\n\n\/* Mikroefekty element\u00f3w interaktywnych *\/\n#ap-store-shell .ap-chip,\n#ap-store-shell .ap-store-btn,\n#ap-store-shell .ap-btn,\n#ap-store-shell .ap-model-btn,\n#ap-store-shell .ap-color-btn,\n#ap-store-shell .ap-thumb,\n#ap-store-shell .ap-similar-btn{\n  transition-timing-function:cubic-bezier(.22,1,.36,1)!important;\n}\n#ap-store-shell .ap-chip:active,\n#ap-store-shell .ap-store-btn:active,\n#ap-store-shell .ap-btn:active{\n  transform:translateY(0) scale(.985)!important;\n}\n\n\/* RESPONSIVE *\/\n@media(max-width:1180px){\n  #ap-store-shell .ap-card{\n    height:690px!important;\n    min-height:690px!important;\n    max-height:690px!important;\n  }\n  #ap-store-shell .ap-card-media{\n    height:290px!important;\n    min-height:290px!important;\n    max-height:290px!important;\n    flex-basis:290px!important;\n  }\n}\n@media(max-width:860px){\n  #ap-store-shell .ap-store-actions{\n    position:fixed!important;\n    top:72px!important;\n    right:10px!important;\n    left:auto!important;\n    width:auto!important;\n    margin:0!important;\n    padding:0!important;\n  }\n  #ap-store-shell .ap-card{\n    height:660px!important;\n    min-height:660px!important;\n    max-height:660px!important;\n  }\n  #ap-store-shell .ap-card-media{\n    height:260px!important;\n    min-height:260px!important;\n    max-height:260px!important;\n    flex-basis:260px!important;\n  }\n  #ap-store-shell .ap-card-desc{\n    min-height:128px!important;\n    max-height:128px!important;\n    -webkit-line-clamp:5!important;\n    line-clamp:5!important;\n  }\n}\n@media(max-width:620px){\n  #ap-store-shell .ap-hero-copy{\n    width:calc(100% - 30px)!important;\n  }\n  #ap-store-shell .ap-store-actions{\n    position:fixed!important;\n    top:68px!important;\n    right:8px!important;\n    left:auto!important;\n    width:auto!important;\n    padding:0!important;\n  }\n  #ap-store-shell .ap-card{\n    height:auto!important;\n    min-height:0!important;\n    max-height:none!important;\n  }\n  #ap-store-shell .ap-card-media{\n    height:auto!important;\n    min-height:0!important;\n    max-height:none!important;\n    aspect-ratio:1\/1!important;\n    flex-basis:auto!important;\n  }\n  #ap-store-shell .ap-card-body{\n    height:auto!important;\n  }\n  #ap-store-shell .ap-card-title,\n  #ap-store-shell .ap-card-desc,\n  #ap-store-shell .ap-card-meta{\n    min-height:0!important;\n    max-height:none!important;\n  }\n  #ap-store-shell .ap-card-desc{\n    display:block!important;\n    overflow:visible!important;\n  }\n}\n@media(prefers-reduced-motion:reduce){\n  #ap-store-shell .ap-hero .ap-store-badge,\n  #ap-store-shell .ap-hero .ap-hero-copy h1,\n  #ap-store-shell .ap-hero .ap-hero-copy>p,\n  #ap-store-shell .ap-hero .ap-store-rating,\n  #ap-store-shell .ap-hero .ap-hero-actions{\n    opacity:1!important;\n    animation:none!important;\n    filter:none!important;\n  }\n}\n\n\n\/* ===== V4 \u2014 HERO TITLE + CART FINAL FIX ===== *\/\n#ap-store-shell .ap-hero .ap-hero-copy h1{\n  visibility:visible!important;\n}\n#ap-store-shell .ap-hero.is-visible .ap-hero-copy h1{\n  animation:apStoreHeroItemIn .72s cubic-bezier(.22,1,.36,1) .13s both!important;\n}\n#ap-store-shell .ap-store-actions{\n  position:fixed!important;\n  top:35px!important;\n  right:12px!important;\n  left:auto!important;\n  width:auto!important;\n  margin:0!important;\n  padding:0!important;\n  z-index:1800!important;\n}\n@media(max-width:860px){\n  #ap-store-shell .ap-store-actions{\n    position:fixed!important;\n    top:58px!important;\n    right:10px!important;\n  }\n}\n@media(max-width:620px){\n  #ap-store-shell .ap-store-actions{\n    position:fixed!important;\n    top:56px!important;\n    right:8px!important;\n  }\n}\n\n\/* =========================================================\n   SKLEP V4 \u2014 KR\u00d3TKIE OPISY KART + LEPSZE PROPORCJE\n   Pe\u0142ny opis nadal wy\u015bwietla si\u0119 po wej\u015bciu w produkt.\n   ========================================================= *\/\n\n\/* Zachowaj aktualne podniesienie sklepu jak w Kontakcie *\/\n@media (min-width:861px){\n  #ap-store-shell #apCatalogPage{\n    margin-top:-50px!important;\n  }\n}\n\n\/* Karty nadal identycznej wysoko\u015bci, ale bardziej zwarte *\/\n@media (min-width:1181px){\n  #ap-store-shell .ap-card{\n    height:675px!important;\n    min-height:675px!important;\n    max-height:675px!important;\n  }\n\n  #ap-store-shell .ap-card-media{\n    height:300px!important;\n    min-height:300px!important;\n    max-height:300px!important;\n    flex:0 0 300px!important;\n  }\n\n  #ap-store-shell .ap-card-body{\n    height:375px!important;\n    min-height:0!important;\n  }\n\n  #ap-store-shell .ap-card-title{\n    min-height:48px!important;\n    max-height:48px!important;\n  }\n\n  #ap-store-shell .ap-card-desc{\n    min-height:112px!important;\n    max-height:112px!important;\n    display:-webkit-box!important;\n    -webkit-box-orient:vertical!important;\n    -webkit-line-clamp:5!important;\n    line-clamp:5!important;\n    overflow:hidden!important;\n    line-height:1.5!important;\n  }\n\n  #ap-store-shell .ap-card-meta{\n    min-height:54px!important;\n    max-height:54px!important;\n  }\n\n  #ap-store-shell .ap-card-bottom{\n    min-height:72px!important;\n  }\n}\n\n@media (min-width:861px) and (max-width:1180px){\n  #ap-store-shell .ap-card{\n    height:660px!important;\n    min-height:660px!important;\n    max-height:660px!important;\n  }\n\n  #ap-store-shell .ap-card-media{\n    height:280px!important;\n    min-height:280px!important;\n    max-height:280px!important;\n    flex:0 0 280px!important;\n  }\n\n  #ap-store-shell .ap-card-body{\n    height:380px!important;\n  }\n\n  #ap-store-shell .ap-card-desc{\n    min-height:112px!important;\n    max-height:112px!important;\n    display:-webkit-box!important;\n    -webkit-box-orient:vertical!important;\n    -webkit-line-clamp:5!important;\n    line-clamp:5!important;\n    overflow:hidden!important;\n    line-height:1.5!important;\n  }\n\n  #ap-store-shell .ap-card-meta{\n    min-height:54px!important;\n    max-height:54px!important;\n  }\n}\n\n\/* Opis ko\u0144czy si\u0119 naturalnie \u2014 bez wizualnego \u201euci\u0119cia\u201d pe\u0142nego zdania *\/\n#ap-store-shell .ap-card-desc{\n  text-overflow:clip!important;\n}\n\n\/* Delikatny sygna\u0142, \u017ce karta prowadzi do pe\u0142nego opisu *\/\n#ap-store-shell .ap-card-link::after{\n  content:\"\";\n  pointer-events:none;\n}\n\n\/* Mobile: opis te\u017c kr\u00f3tki, ale karta mo\u017ce rosn\u0105\u0107 naturalnie *\/\n@media(max-width:620px){\n  #ap-store-shell .ap-card-desc{\n    display:-webkit-box!important;\n    -webkit-box-orient:vertical!important;\n    -webkit-line-clamp:5!important;\n    line-clamp:5!important;\n    overflow:hidden!important;\n    min-height:0!important;\n    max-height:none!important;\n  }\n}\n\n\n\/* ===== FINAL OVERRIDE \u2014 KOSZYK + OPISY PRODUKT\u00d3W ===== *\/\n@media(min-width:861px){\n  #ap-store-shell .ap-store-actions{\n    position:fixed!important;\n    top:50px!important;\n    right:12px!important;\n    left:auto!important;\n    width:auto!important;\n    margin:0!important;\n    padding:0!important;\n    z-index:1800!important;\n  }\n}\n\/* =========================================================\n   APPLEPOINT \u2014 FINALNY ZIELONY\n   ========================================================= *\/\n\n\/* Badge produkt\u00f3w: Etui \/ Szk\u0142o \/ Kabel \/ \u0141adowarka itd. *\/\n#ap-store-shell .ap-badge{\n  background:#d9f47a!important;\n  border-color:#cdef61!important;\n  color:#111!important;\n}\n\n\/* Licznik w koszyku *\/\n#ap-store-shell .ap-cart-count{\n  background:#d9f47a!important;\n  color:#111!important;\n}\n\n\/* Badge \"Sklep\" w HERO \u2014 zostaje bia\u0142y, ale z w\u0142a\u015bciw\u0105 zielon\u0105 obw\u00f3dk\u0105 *\/\n#ap-store-shell .ap-store-badge{\n  background:#fff!important;\n  border-color:#d9f47a!important;\n  color:#111!important;\n}\n\n\/* Koszyk \u2014 bia\u0142y, ale w\u0142a\u015bciwa zielona obw\u00f3dka *\/\n#ap-store-shell .ap-cart-toggle{\n  background:#fff!important;\n  border-color:#d9f47a!important;\n}\n\n\/* Hover \u2014 bez wyszarzonej zieleni *\/\n#ap-store-shell .ap-cart-toggle:hover,\n#ap-store-shell .ap-store-badge:hover{\n  border-color:#cdef61!important;\n}\n\n\/* Tag produktu przy hoverze *\/\n#ap-store-shell .ap-card:hover .ap-badge{\n  background:#d9f47a!important;\n  border-color:#cdef61!important;\n}\n\/* =========================================================\n   SKLEP \u2014 GWIAZDKI IDENTYCZNE W STYLU KONTAKT \/ CENNIK\n   ========================================================= *\/\n\n#ap-store-shell .ap-store-spark{\n  position:absolute!important;\n  display:block!important;\n  visibility:visible!important;\n  opacity:1!important;\n  z-index:3!important;\n  pointer-events:none!important;\n}\n\n#ap-store-shell .ap-store-spark svg{\n  display:block!important;\n  width:100%!important;\n  height:100%!important;\n  overflow:visible!important;\n}\n\n#ap-store-shell .ap-store-spark path{\n  fill:currentColor!important;\n}\n\n\/* lewy g\u00f3rny \u2014 \u017c\u00f3\u0142ta *\/\n#ap-store-shell .sp1{\n  left:6%!important;\n  top:55px!important;\n  width:26px!important;\n  height:36px!important;\n  color:#fff0a6!important;\n}\n\n\/* lewa \u2014 niebieska *\/\n#ap-store-shell .sp2{\n  left:19%!important;\n  top:135px!important;\n  width:44px!important;\n  height:58px!important;\n  color:#e5f1ff!important;\n}\n\n\/* ma\u0142a zielona *\/\n#ap-store-shell .sp3{\n  left:34%!important;\n  top:72px!important;\n  width:18px!important;\n  height:25px!important;\n  color:#d9f47a!important;\n}\n\n\/* ma\u0142a niebieska u g\u00f3ry *\/\n#ap-store-shell .sp4{\n  right:32%!important;\n  top:55px!important;\n  width:20px!important;\n  height:28px!important;\n  color:#e5f1ff!important;\n}\n\n\/* prawa zielona *\/\n#ap-store-shell .sp5{\n  right:7%!important;\n  top:125px!important;\n  width:34px!important;\n  height:47px!important;\n  color:#d9f47a!important;\n}\n\n\/* du\u017ca zielona po lewej od nag\u0142\u00f3wka *\/\n#ap-store-shell .sp6{\n  left:25%!important;\n  top:185px!important;\n  width:80px!important;\n  height:110px!important;\n  color:#d9f47a!important;\n}\n\n\/* dolna lewa \u017c\u00f3\u0142ta *\/\n#ap-store-shell .sp7{\n  left:8%!important;\n  top:350px!important;\n  width:42px!important;\n  height:58px!important;\n  color:#fff0a6!important;\n}\n\n\/* dolna prawa niebieska *\/\n#ap-store-shell .sp8{\n  right:8%!important;\n  top:315px!important;\n  width:48px!important;\n  height:66px!important;\n  color:#e5f1ff!important;\n}\n\n\/* animacja jak na pozosta\u0142ych podstronach *\/\n@keyframes apStoreSparkFloatFinal{\n  0%,100%{\n    transform:translate3d(0,0,0) scale(1);\n  }\n  50%{\n    transform:translate3d(0,-7px,0) scale(1.035);\n  }\n}\n\n#ap-store-shell .ap-store-spark{\n  animation:apStoreSparkFloatFinal 6s ease-in-out infinite!important;\n}\n\n#ap-store-shell .sp2,\n#ap-store-shell .sp5{\n  animation-delay:-1.7s!important;\n}\n\n#ap-store-shell .sp3,\n#ap-store-shell .sp7{\n  animation-delay:-3.2s!important;\n}\n\n#ap-store-shell .sp6,\n#ap-store-shell .sp8{\n  animation-duration:7.3s!important;\n}\n\/* =========================================================\n   APPLEPOINT \u2014 SKLEP\n   HERO 1:1 Z PODSTRON\u0104 KONTAKT\n   WKLEJ NA SAMYM KO\u0143CU <style>\n   ========================================================= *\/\n\n\/* ---------------------------------------------------------\n   1. POZYCJA CA\u0141EJ STRONY\n   --------------------------------------------------------- *\/\n\n#ap-store-shell{\n  margin-top:-20px!important;\n}\n\n\/* usuwa dodatkowe sztuczne podci\u0105gni\u0119cie katalogu,\n   kt\u00f3rego Kontakt nie posiada *\/\n@media (min-width:861px){\n  #ap-store-shell #apCatalogPage{\n    margin-top:0!important;\n  }\n}\n\n\n\/* ---------------------------------------------------------\n   2. HERO \u2014 IDENTYCZNE WYMIARY JAK KONTAKT\n   --------------------------------------------------------- *\/\n\n#ap-store-shell .ap-hero{\n  position:relative!important;\n  width:100%!important;\n  min-height:520px!important;\n\n  margin:0!important;\n  padding:62px 24px 48px!important;\n\n  border:0!important;\n  border-radius:0!important;\n  box-shadow:none!important;\n\n  background:#fff!important;\n  background-image:none!important;\n\n  overflow:hidden!important;\n  isolation:isolate!important;\n\n  display:block!important;\n  text-align:center!important;\n}\n\n\n\/* usuwa wszystkie stare po\u015bwiaty *\/\n#ap-store-shell .ap-hero::before,\n#ap-store-shell .ap-hero::after{\n  content:none!important;\n  display:none!important;\n  background:none!important;\n  background-image:none!important;\n  box-shadow:none!important;\n  filter:none!important;\n}\n\n\n\/* ---------------------------------------------------------\n   3. \u015aRODEK HERO\n   --------------------------------------------------------- *\/\n\n#ap-store-shell .ap-hero-copy{\n  position:relative!important;\n  z-index:5!important;\n\n  width:min(100%,1180px)!important;\n  max-width:1180px!important;\n\n  margin:0 auto!important;\n  padding:0!important;\n\n  left:0!important;\n  right:0!important;\n  top:0!important;\n\n  display:flex!important;\n  flex-direction:column!important;\n  align-items:center!important;\n  justify-content:flex-start!important;\n\n  text-align:center!important;\n\n  translate:none!important;\n}\n\n\n\/* ---------------------------------------------------------\n   4. BADGE \"SKLEP\" \u2014 JAK \"KONTAKT\"\n   --------------------------------------------------------- *\/\n\n#ap-store-shell .ap-store-badge{\n  display:flex!important;\n  align-items:center!important;\n  justify-content:center!important;\n\n  width:max-content!important;\n  min-width:112px!important;\n  min-height:54px!important;\n\n  padding:0 25px!important;\n  margin:0 auto 25px!important;\n\n  background:#fff!important;\n  border:1px solid #d9e8a6!important;\n  border-radius:999px!important;\n\n  color:#111!important;\n\n  font-size:16px!important;\n  line-height:1!important;\n  font-weight:650!important;\n\n  box-shadow:none!important;\n}\n\n\n\/* ---------------------------------------------------------\n   5. NAG\u0141\u00d3WEK \u2014 IDENTYCZNY Z KONTAKTEM\n   --------------------------------------------------------- *\/\n\n#ap-store-shell .ap-hero-copy h1{\n  width:100%!important;\n  max-width:1120px!important;\n\n  margin:0 auto!important;\n\n  color:#111!important;\n  -webkit-text-fill-color:#111!important;\n\n  background:none!important;\n  background-image:none!important;\n  text-shadow:none!important;\n\n  font-size:clamp(54px,5.2vw,82px)!important;\n  line-height:.98!important;\n  letter-spacing:-.055em!important;\n  font-weight:760!important;\n\n  text-align:center!important;\n}\n\n\n\/* ---------------------------------------------------------\n   6. OPIS \u2014 JAK KONTAKT\n   --------------------------------------------------------- *\/\n\n#ap-store-shell .ap-hero-copy > p{\n  width:100%!important;\n  max-width:760px!important;\n\n  margin:28px auto 0!important;\n\n  color:#5f5f63!important;\n\n  font-size:20px!important;\n  line-height:1.5!important;\n  font-weight:520!important;\n\n  text-align:center!important;\n}\n\n\n\/* ---------------------------------------------------------\n   7. GOOGLE \u2014 ZOSTAJE, ALE W STYLU PODSTRONY\n   --------------------------------------------------------- *\/\n\n#ap-store-shell .ap-store-rating{\n  display:flex!important;\n  flex-direction:column!important;\n  align-items:center!important;\n  justify-content:center!important;\n\n  width:max-content!important;\n  max-width:100%!important;\n\n  gap:7px!important;\n\n  margin:25px auto 0!important;\n  padding:7px 10px!important;\n\n  border-radius:14px!important;\n\n  color:#111!important;\n  background:transparent!important;\n\n  box-shadow:none!important;\n\n  text-align:center!important;\n\n  transition:\n    transform .24s cubic-bezier(.22,1,.36,1),\n    background .24s ease,\n    box-shadow .24s ease!important;\n}\n\n#ap-store-shell .ap-store-rating:hover{\n  transform:translateY(-2px)!important;\n  background:#fafafa!important;\n  box-shadow:0 8px 24px rgba(0,0,0,.045)!important;\n}\n\n\n\/* ---------------------------------------------------------\n   8. PRZYCISKI \u2014 DOK\u0141ADNIE JAK KONTAKT\n   --------------------------------------------------------- *\/\n\n#ap-store-shell .ap-hero-actions{\n  display:flex!important;\n  justify-content:center!important;\n  align-items:center!important;\n\n  gap:12px!important;\n  flex-wrap:wrap!important;\n\n  width:auto!important;\n\n  margin:30px auto 0!important;\n\n  text-align:center!important;\n}\n\n#ap-store-shell .ap-store-btn{\n  display:inline-flex!important;\n  align-items:center!important;\n  justify-content:center!important;\n\n  width:auto!important;\n  min-height:52px!important;\n\n  padding:0 23px!important;\n\n  border-radius:999px!important;\n\n  font-size:14px!important;\n  line-height:1!important;\n  font-weight:680!important;\n\n  box-shadow:none!important;\n\n  transition:\n    transform .22s ease,\n    background .22s ease,\n    border-color .22s ease!important;\n}\n\n#ap-store-shell .ap-store-btn-dark{\n  background:#111!important;\n  color:#fff!important;\n  border:1px solid #111!important;\n}\n\n#ap-store-shell .ap-store-btn-dark:hover{\n  transform:translateY(-2px)!important;\n  background:#292929!important;\n  box-shadow:none!important;\n}\n\n#ap-store-shell .ap-store-btn-light{\n  background:#fff!important;\n  color:#111!important;\n  border:1px solid #d8d8d8!important;\n}\n\n#ap-store-shell .ap-store-btn-light:hover{\n  transform:translateY(-2px)!important;\n  border-color:#aaa!important;\n  box-shadow:none!important;\n}\n\n\n\/* ---------------------------------------------------------\n   9. GWIAZDKI \u2014 1:1 Z KONTAKTEM\n   --------------------------------------------------------- *\/\n\n#ap-store-shell .ap-store-spark{\n  position:absolute!important;\n\n  display:block!important;\n  visibility:visible!important;\n  opacity:1!important;\n\n  z-index:2!important;\n\n  pointer-events:none!important;\n\n  animation:apStoreSparkKontakt 5.8s ease-in-out infinite!important;\n  will-change:transform!important;\n}\n\n#ap-store-shell .ap-store-spark svg{\n  display:block!important;\n  width:100%!important;\n  height:100%!important;\n  overflow:visible!important;\n}\n\n#ap-store-shell .ap-store-spark path{\n  fill:currentColor!important;\n}\n\n\n\/* \u017c\u00f3\u0142ta \u2014 lewy g\u00f3rny *\/\n#ap-store-shell .sp1{\n  left:8%!important;\n  right:auto!important;\n  top:20%!important;\n\n  width:26px!important;\n  height:34px!important;\n\n  color:#fff0a6!important;\n}\n\n\n\/* niebieska \u2014 lewa *\/\n#ap-store-shell .sp2{\n  left:20%!important;\n  right:auto!important;\n  top:34%!important;\n\n  width:42px!important;\n  height:56px!important;\n\n  color:#e2efff!important;\n}\n\n\n\/* ma\u0142a zielona *\/\n#ap-store-shell .sp3{\n  left:32%!important;\n  right:auto!important;\n  top:18%!important;\n\n  width:17px!important;\n  height:23px!important;\n\n  color:#d9f47a!important;\n}\n\n\n\/* ma\u0142a niebieska *\/\n#ap-store-shell .sp4{\n  left:auto!important;\n  right:31%!important;\n  top:21%!important;\n\n  width:19px!important;\n  height:26px!important;\n\n  color:#e4f0ff!important;\n}\n\n\n\/* prawa zielona *\/\n#ap-store-shell .sp5{\n  left:auto!important;\n  right:10%!important;\n  top:34%!important;\n\n  width:34px!important;\n  height:46px!important;\n\n  color:#dff59a!important;\n}\n\n\n\/* du\u017ca zielona *\/\n#ap-store-shell .sp6{\n  left:25%!important;\n  right:auto!important;\n  top:55%!important;\n\n  width:76px!important;\n  height:104px!important;\n\n  color:#e0f5a4!important;\n}\n\n\n\/* prawa dolna \u017c\u00f3\u0142ta *\/\n#ap-store-shell .sp7{\n  left:auto!important;\n  right:8%!important;\n  top:67%!important;\n\n  width:45px!important;\n  height:60px!important;\n\n  color:#fff0a6!important;\n}\n\n\n\/* Kontakt ma 7 gwiazdek \u2014 \u00f3sm\u0105 ze Sklepu wy\u0142\u0105czamy *\/\n#ap-store-shell .sp8{\n  display:none!important;\n}\n\n\n\/* ---------------------------------------------------------\n   10. ANIMACJA GWIAZDEK \u2014 JAK KONTAKT\n   --------------------------------------------------------- *\/\n\n@keyframes apStoreSparkKontakt{\n  0%,100%{\n    transform:translate3d(0,0,0) scale(1);\n  }\n\n  50%{\n    transform:translate3d(0,-7px,0) scale(1.035);\n  }\n}\n\n#ap-store-shell .sp2,\n#ap-store-shell .sp5{\n  animation-delay:-1.6s!important;\n}\n\n#ap-store-shell .sp3,\n#ap-store-shell .sp7{\n  animation-delay:-3.1s!important;\n}\n\n#ap-store-shell .sp6{\n  animation-duration:7.2s!important;\n}\n\n\n\/* ---------------------------------------------------------\n   11. HERO ENTRY \u2014 JEDNA ANIMACJA CA\u0141EJ TRE\u015aCI JAK KONTAKT\n   --------------------------------------------------------- *\/\n\n\/* sam HERO nie mo\u017ce by\u0107 niewidoczny *\/\n#ap-store-shell .ap-hero.ap-reveal{\n  opacity:1!important;\n  transform:none!important;\n  filter:none!important;\n  transition:none!important;\n}\n\n\n\/* wy\u0142\u0105czamy star\u0105 sekwencj\u0119 animacji pojedynczych element\u00f3w *\/\n#ap-store-shell .ap-hero .ap-store-badge,\n#ap-store-shell .ap-hero .ap-hero-copy h1,\n#ap-store-shell .ap-hero .ap-hero-copy > p,\n#ap-store-shell .ap-hero .ap-store-rating,\n#ap-store-shell .ap-hero .ap-hero-actions,\n#ap-store-shell .ap-hero.is-visible .ap-store-badge,\n#ap-store-shell .ap-hero.is-visible .ap-hero-copy h1,\n#ap-store-shell .ap-hero.is-visible .ap-hero-copy > p,\n#ap-store-shell .ap-hero.is-visible .ap-store-rating,\n#ap-store-shell .ap-hero.is-visible .ap-hero-actions{\n  opacity:1!important;\n  animation:none!important;\n}\n\n\n\/* animuje si\u0119 ca\u0142y blok tre\u015bci \u2014 identycznie jak .ap-hero-inner w Kontakcie *\/\n#ap-store-shell .ap-hero-copy{\n  opacity:0!important;\n\n  filter:blur(7px)!important;\n\n  transform:translate3d(0,24px,0)!important;\n\n  transition:\n    opacity .85s cubic-bezier(.22,1,.36,1),\n    transform .85s cubic-bezier(.22,1,.36,1),\n    filter .85s cubic-bezier(.22,1,.36,1)!important;\n}\n\n#ap-store-shell .ap-hero.is-visible .ap-hero-copy{\n  opacity:1!important;\n  filter:none!important;\n  transform:none!important;\n}\n\n\n\/* ---------------------------------------------------------\n   12. TABLET \u2014 IDENTYCZNE PARAMETRY JAK KONTAKT\n   --------------------------------------------------------- *\/\n\n@media(max-width:900px){\n\n  #ap-store-shell{\n    margin-top:-12px!important;\n  }\n\n  #ap-store-shell #apCatalogPage{\n    margin-top:0!important;\n  }\n\n  #ap-store-shell .ap-hero{\n    min-height:500px!important;\n    padding:58px 18px 42px!important;\n  }\n\n  #ap-store-shell .ap-hero-copy{\n    width:min(100%,1180px)!important;\n  }\n\n  #ap-store-shell .ap-hero-copy h1{\n    font-size:clamp(44px,11vw,66px)!important;\n  }\n\n  #ap-store-shell .ap-hero-copy > p{\n    font-size:17px!important;\n  }\n\n  #ap-store-shell .sp1{top:19%!important;}\n  #ap-store-shell .sp2{top:34%!important;}\n  #ap-store-shell .sp3{top:18%!important;}\n  #ap-store-shell .sp4{top:21%!important;}\n  #ap-store-shell .sp5{top:35%!important;}\n  #ap-store-shell .sp6{top:57%!important;}\n  #ap-store-shell .sp7{top:70%!important;}\n}\n\n\n\/* ---------------------------------------------------------\n   13. TELEFON \u2014 IDENTYCZNIE JAK KONTAKT\n   --------------------------------------------------------- *\/\n\n@media(max-width:560px){\n\n  #ap-store-shell .ap-hero{\n    min-height:475px!important;\n    padding:52px 15px 38px!important;\n  }\n\n  #ap-store-shell .ap-store-badge{\n    min-height:46px!important;\n    font-size:14px!important;\n  }\n\n  #ap-store-shell .ap-hero-copy h1{\n    font-size:44px!important;\n  }\n\n  #ap-store-shell .ap-hero-copy > p{\n    font-size:15px!important;\n  }\n\n  #ap-store-shell .ap-hero-actions{\n    flex-direction:row!important;\n    width:auto!important;\n  }\n\n  #ap-store-shell .ap-store-btn{\n    width:auto!important;\n  }\n\n  #ap-store-shell .sp1{top:20%!important;}\n  #ap-store-shell .sp2{top:38%!important;}\n  #ap-store-shell .sp3{display:none!important;}\n  #ap-store-shell .sp4{display:none!important;}\n  #ap-store-shell .sp5{top:38%!important;}\n  #ap-store-shell .sp6{top:60%!important;}\n  #ap-store-shell .sp7{top:72%!important;}\n}\n\n\n\/* ---------------------------------------------------------\n   14. REDUCED MOTION\n   --------------------------------------------------------- *\/\n\n@media(prefers-reduced-motion:reduce){\n\n  #ap-store-shell .ap-store-spark{\n    animation:none!important;\n  }\n\n  #ap-store-shell .ap-hero-copy{\n    opacity:1!important;\n    filter:none!important;\n    transform:none!important;\n    transition:none!important;\n  }\n}\n\/* PODNIESIENIE CA\u0141EJ TRE\u015aCI HERO SKLEPU *\/\n@media (min-width:901px){\n  #ap-store-shell .ap-hero-copy{\n    top:-35px!important;\n  }\n}\n<\/style>\n\n  <div class=\"ap-store-wrap\">\n    <div class=\"ap-store-actions\">\n      <button type=\"button\" class=\"ap-cart-toggle\" id=\"apCartToggle\">\n        Koszyk\n        <span class=\"ap-cart-count\" id=\"apCartCount\">0<\/span>\n      <\/button>\n    <\/div>\n\n    <aside class=\"ap-cart-drawer\" id=\"apCartDrawer\" aria-hidden=\"true\">\n      <div class=\"ap-cart-backdrop\" id=\"apCartBackdrop\"><\/div>\n      <div class=\"ap-cart-panel\">\n        <div class=\"ap-cart-head\">\n          <h3>Tw\u00f3j koszyk<\/h3>\n          <button type=\"button\" class=\"ap-cart-close\" id=\"apCartClose\">\u2715<\/button>\n        <\/div>\n\n        <div class=\"ap-cart-body\" id=\"apCartItems\"><\/div>\n\n        <div class=\"ap-cart-foot\">\n          <div class=\"ap-cart-total\">\n            <strong>Razem<\/strong>\n            <span id=\"apCartTotal\">0 z\u0142<\/span>\n          <\/div>\n          <div class=\"ap-cart-foot-actions\">\n            <button type=\"button\" class=\"ap-btn ap-btn-secondary\" id=\"apClearCart\">Wyczy\u015b\u0107 koszyk<\/button>\n            <button type=\"button\" class=\"ap-btn ap-btn-primary\" id=\"apGoCheckout\">Przejd\u017a dalej<\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/aside>\n\n    <div class=\"ap-page is-active\" id=\"apCatalogPage\">\n      <section class=\"ap-hero ap-reveal\" id=\"apStoreHero\">\n        <span class=\"ap-store-spark sp1\"><svg viewBox=\"0 0 100 140\"><path d=\"M50 0C51.8 39 60.5 59 100 70C60.5 81 51.8 101 50 140C48.2 101 39.5 81 0 70C39.5 59 48.2 39 50 0Z\"><\/path><\/svg><\/span>\n        <span class=\"ap-store-spark sp2\"><svg viewBox=\"0 0 100 140\"><path d=\"M50 0C51.8 39 60.5 59 100 70C60.5 81 51.8 101 50 140C48.2 101 39.5 81 0 70C39.5 59 48.2 39 50 0Z\"><\/path><\/svg><\/span>\n        <span class=\"ap-store-spark sp3\"><svg viewBox=\"0 0 100 140\"><path d=\"M50 0C51.8 39 60.5 59 100 70C60.5 81 51.8 101 50 140C48.2 101 39.5 81 0 70C39.5 59 48.2 39 50 0Z\"><\/path><\/svg><\/span>\n        <span class=\"ap-store-spark sp4\"><svg viewBox=\"0 0 100 140\"><path d=\"M50 0C51.8 39 60.5 59 100 70C60.5 81 51.8 101 50 140C48.2 101 39.5 81 0 70C39.5 59 48.2 39 50 0Z\"><\/path><\/svg><\/span>\n        <span class=\"ap-store-spark sp5\"><svg viewBox=\"0 0 100 140\"><path d=\"M50 0C51.8 39 60.5 59 100 70C60.5 81 51.8 101 50 140C48.2 101 39.5 81 0 70C39.5 59 48.2 39 50 0Z\"><\/path><\/svg><\/span>\n        <span class=\"ap-store-spark sp6\"><svg viewBox=\"0 0 100 140\"><path d=\"M50 0C51.8 39 60.5 59 100 70C60.5 81 51.8 101 50 140C48.2 101 39.5 81 0 70C39.5 59 48.2 39 50 0Z\"><\/path><\/svg><\/span>\n        <span class=\"ap-store-spark sp7\"><svg viewBox=\"0 0 100 140\"><path d=\"M50 0C51.8 39 60.5 59 100 70C60.5 81 51.8 101 50 140C48.2 101 39.5 81 0 70C39.5 59 48.2 39 50 0Z\"><\/path><\/svg><\/span>\n        <span class=\"ap-store-spark sp8\"><svg viewBox=\"0 0 100 140\"><path d=\"M50 0C51.8 39 60.5 59 100 70C60.5 81 51.8 101 50 140C48.2 101 39.5 81 0 70C39.5 59 48.2 39 50 0Z\"><\/path><\/svg><\/span>\n\n        <div class=\"ap-hero-copy\">\n          <div class=\"ap-store-badge\">Sklep<\/div>\n          <h1>Akcesoria, kt\u00f3re po prostu pasuj\u0105.<\/h1>\n          <p>\n            Etui, szk\u0142a, kable, \u0142adowarki i wybrane akcesoria do iPhone oraz innych urz\u0105dze\u0144.\n            Prosty wyb\u00f3r, szybka wysy\u0142ka i odbi\u00f3r w ApplePoint.\n          <\/p>\n\n          <a class=\"ap-store-rating\" href=\"https:\/\/share.google\/ARrl8yn5N8hAxVoFi\" target=\"_blank\" rel=\"noopener\" aria-label=\"Zobacz opinie Google ApplePoint\">\n            <span class=\"ap-store-rating-label\">Opinie Google \u00b7 ApplePoint Zdu\u0144ska Wola<\/span>\n            <span class=\"ap-store-rating-row\">\n              <span class=\"ap-google-wordmark\" aria-label=\"Google\"><span class=\"g1\">G<\/span><span class=\"g2\">o<\/span><span class=\"g3\">o<\/span><span class=\"g4\">g<\/span><span class=\"g5\">l<\/span><span class=\"g6\">e<\/span><\/span>\n              <span class=\"ap-store-stars\">\u2605\u2605\u2605\u2605\u2605<\/span>\n              <span class=\"ap-store-score\">5,0<\/span>\n            <\/span>\n          <\/a>\n\n          <div class=\"ap-hero-actions\">\n            <a class=\"ap-store-btn ap-store-btn-dark\" href=\"#apStoreProducts\">Zobacz produkty \u2193<\/a>\n            <a class=\"ap-store-btn ap-store-btn-light\" href=\"https:\/\/applepointfix.pl\/kontakt-applepoint-zdunska-wola\/\">Odbi\u00f3r w ApplePoint<\/a>\n          <\/div>\n        <\/div>\n      <\/section>\n\n      <div class=\"ap-toolbar ap-reveal\" id=\"apStoreProducts\">\n        <div class=\"ap-toolbar-left\" id=\"apFilterChips\">\n          <button class=\"ap-chip is-active\" type=\"button\" data-filter=\"all\">Wszystkie<\/button>\n          <button class=\"ap-chip\" type=\"button\" data-filter=\"ochrona\">Ochrona<\/button>\n          <button class=\"ap-chip\" type=\"button\" data-filter=\"zasilanie\">Zasilanie<\/button>\n          <button class=\"ap-chip\" type=\"button\" data-filter=\"iPhone\">iPhone<\/button>\n        <\/div>\n\n        <label class=\"ap-search\" aria-label=\"Wyszukiwarka produkt\u00f3w\">\n          <input type=\"text\" id=\"apSearchInput\" placeholder=\"Szukaj produktu...\">\n        <\/label>\n      <\/div>\n\n      <div class=\"ap-results-head ap-reveal\">\n        <div>\n          <h2>Produkty<\/h2>\n          <p>Kliknij kart\u0119 produktu, aby przej\u015b\u0107 do szczeg\u00f3\u0142owego widoku.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"ap-grid\" id=\"apProductGrid\"><\/div>\n      <div class=\"ap-empty\" id=\"apEmptyState\">Brak produkt\u00f3w spe\u0142niaj\u0105cych wybrane kryteria.<\/div>\n    <\/div>\n\n    <div class=\"ap-page\" id=\"apProductPage\">\n      <div class=\"ap-product-layout\">\n        <div>\n          <section class=\"ap-gallery ap-reveal\">\n            <div class=\"ap-gallery-main\">\n              <img decoding=\"async\" id=\"apMainImage\" src=\"\" alt=\"\">\n            <\/div>\n            <div class=\"ap-gallery-thumbs\" id=\"apThumbs\"><\/div>\n          <\/section>\n\n          <section class=\"ap-content-box ap-reveal\">\n            <h2>Opis produktu<\/h2>\n            <div id=\"apProductDescription\"><\/div>\n\n            <div class=\"ap-feature-list\" id=\"apFeatureList\"><\/div>\n          <\/section>\n        <\/div>\n\n        <aside class=\"ap-product-side\">\n          <section class=\"ap-product-box ap-reveal\">\n            <h1 class=\"ap-product-title\" id=\"apProductTitle\">Produkt<\/h1>\n            <p class=\"ap-product-subtitle\" id=\"apProductSubtitle\"><\/p>\n            <p class=\"ap-product-price\" id=\"apProductPrice\"><\/p>\n\n            <div class=\"ap-product-option-wrap\" id=\"apProductOptionWrap\" style=\"display:none;\">\n              <label class=\"ap-product-option-label\" for=\"apVariantSelect\">Wybierz wariant<\/label>\n              <select id=\"apVariantSelect\" class=\"ap-variant-select\"><\/select>\n            <\/div>\n\n            <div class=\"ap-option-block\" id=\"apModelOptionWrap\" style=\"display:none;\">\n              <label class=\"ap-option-title\">Wybierz model<\/label>\n              <div class=\"ap-model-grid\" id=\"apModelGrid\"><\/div>\n              <div class=\"ap-model-note\">Wybierz model iPhone przed dodaniem produktu do koszyka.<\/div>\n            <\/div>\n\n            <div class=\"ap-option-block\" id=\"apColorOptionWrap\" style=\"display:none;\">\n              <label class=\"ap-option-title\">Wybierz kolor<\/label>\n              <div class=\"ap-color-grid\" id=\"apColorGrid\"><\/div>\n              <div class=\"ap-model-note\">Wybierz kolor produktu przed dodaniem go do koszyka.<\/div>\n            <\/div>\n\n            <ul class=\"ap-specs\" id=\"apSpecs\"><\/ul>\n\n<div class=\"ap-shipping-box\">\n  <div class=\"ap-shipping-stock\">\n    Stan magazynowy: <span id=\"apStockStatus\" class=\"is-out\">Brak<\/span>\n  <\/div>\n\n              <div class=\"ap-shipping-delivery\">\n                <strong>Dostawa:<\/strong> 1 - 3 dni roboczych\n              <\/div>\n\n              <div class=\"ap-shipping-method\">Paczkomat | 12.99 z\u0142<\/div>\n              <div class=\"ap-shipping-method\">Kurier | 15.99 z\u0142<\/div>\n              <div class=\"ap-shipping-method\">Za pobraniem | 20.99 z\u0142<\/div>\n\n              <div class=\"ap-shipping-free\">\n                DARMOWA DOSTAWA <span>ju\u017c od 299 z\u0142 !<\/span>\n              <\/div>\n\n              <div class=\"ap-shipping-note\">\n                Promocja dotyczy kuriera z przedp\u0142at\u0105 i paczkomatu.\n              <\/div>\n            <\/div>\n\n            <div class=\"ap-product-actions\">\n              <button class=\"ap-btn ap-btn-secondary\" type=\"button\" id=\"apBackToCatalog\">Wr\u00f3\u0107 do produkt\u00f3w<\/button>\n              <button class=\"ap-btn ap-btn-primary\" type=\"button\" id=\"apAddToCart\">Dodaj do koszyka<\/button>\n            <\/div>\n          <\/section>\n        <\/aside>\n      <\/div>\n\n      <section class=\"ap-similar ap-reveal\">\n        <div class=\"ap-similar-head\">\n          <h3>Podobne produkty<\/h3>\n\n          <div class=\"ap-similar-nav\">\n            <button type=\"button\" class=\"ap-similar-btn\" id=\"apSimilarPrev\" aria-label=\"Poprzednie produkty\">\u2190<\/button>\n            <button type=\"button\" class=\"ap-similar-btn\" id=\"apSimilarNext\" aria-label=\"Nast\u0119pne produkty\">\u2192<\/button>\n          <\/div>\n        <\/div>\n\n        <div class=\"ap-similar-slider\" id=\"apSimilarSlider\">\n          <div class=\"ap-similar-track\" id=\"apSimilarGrid\"><\/div>\n        <\/div>\n      <\/section>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function(){\n      const iphoneModels = [\n        \"iPhone 17 Pro Max\",\n        \"iPhone 17 Pro\",\n        \"iPhone 17 Air\",\n        \"iPhone 17\",\n        \"iPhone 16 Pro Max\",\n        \"iPhone 16 Pro\",\n        \"iPhone 16 Plus\",\n        \"iPhone 16\",\n        \"iPhone 15 Pro Max\",\n        \"iPhone 15 Pro\",\n        \"iPhone 15 Plus\",\n        \"iPhone 15\",\n        \"iPhone 14 Pro Max\",\n        \"iPhone 14 Pro\",\n        \"iPhone 14 Plus\",\n        \"iPhone 14\",\n        \"iPhone 13 Pro Max\",\n        \"iPhone 13 Pro\",\n        \"iPhone 13\",\n        \"iPhone 13 mini\",\n        \"iPhone 12 Pro Max\",\n        \"iPhone 12 Pro\",\n        \"iPhone 12\",\n        \"iPhone 12 mini\"\n      ];\nconst iphoneModelCodes = {\n  \"iPhone 17 Pro Max\": \"17PM\",\n  \"iPhone 17 Pro\": \"17P\",\n  \"iPhone 17 Air\": \"17A\",\n  \"iPhone 17\": \"17\",\n  \"iPhone 16 Pro Max\": \"16PM\",\n  \"iPhone 16 Pro\": \"16P\",\n  \"iPhone 16 Plus\": \"16PL\",\n  \"iPhone 16\": \"16\",\n  \"iPhone 15 Pro Max\": \"15PM\",\n  \"iPhone 15 Pro\": \"15P\",\n  \"iPhone 15 Plus\": \"15PL\",\n  \"iPhone 15\": \"15\",\n  \"iPhone 14 Pro Max\": \"14PM\",\n  \"iPhone 14 Pro\": \"14P\",\n  \"iPhone 14 Plus\": \"14PL\",\n  \"iPhone 14\": \"14\",\n  \"iPhone 13 Pro Max\": \"13PM\",\n  \"iPhone 13 Pro\": \"13P\",\n  \"iPhone 13\": \"13\",\n  \"iPhone 13 mini\": \"13M\",\n  \"iPhone 12 Pro Max\": \"12PM\",\n  \"iPhone 12 Pro\": \"12P\",\n  \"iPhone 12\": \"12\",\n  \"iPhone 12 mini\": \"12M\"\n};\nfunction renderSpecs(product){\n  const selectedColor = getSelectedColor(product);\n  const selectedModel = getSelectedModel(product);\n  const dynamicCode = getDynamicProductCode(product);\n\n  const specs = (product.specs || []).map(item => {\n    const key = item[0];\n    let value = item[1];\n\n    if(key === 'Kod produktu' && dynamicCode){\n      value = dynamicCode;\n    }\n\n    if(key === 'Kolor' && selectedColor){\n      value = selectedColor.name;\n    }\n\n    if(key === 'Kompatybilno\u015b\u0107' && selectedModel){\n      value = selectedModel;\n    }\n\n    return [key, value];\n  });\n\n  specsList.innerHTML = specs.map(item => `\n    <li><strong>${item[0]}<\/strong><span>${item[1]}<\/span><\/li>\n  `).join('');\n}\n      const products = [\n        {\n          slug: \"Silikonowe-etui-AP-magsafe-iphone\",\n          title: \"Silikonowe etui AP z MagSafe iPhone\",\n          shortTitle: \"Silikonowe etui AP z MagSafe\",\n          category: [\"ochrona\",\"telefony\",\"iPhone\"],\n          badge: \"Etui\",\n          price: \"129 z\u0142\",\n          priceValue: 129,\n          priceNote: \"Wybierz sw\u00f3j kolor\",\n          modelOptions: iphoneModels,\n          excerpt: \"Klasyczne silikonowe etui ApplePoint z MagSafe do iPhone wykonane z trwa\u0142ego, przyjemnego w dotyku materia\u0142u. Podniesione ranty ponad ekranem i aparatem oraz mi\u0119kka wy\u015bci\u00f3\u0142ka wewn\u0119trzna skutecznie chroni\u0105 telefon w codziennym u\u017cytkowaniu.\",\n          subtitle: \"Silikonowe etui MagSafe do wybranych modeli iPhone.\",\n          cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/czarny32.png\",\n          images: [\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/czarny2.png\",\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/czarn1.png\",\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/czarny32.png\"\n          ],\ncolors: [\n  {\n    name: \"Onyx Black\",\n    codeSuffix: \"BLK\",\n    hex: \"#111111\",\n    cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/czarny32.png\",\n    images: [\n      \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/OnyxBlack.png\",\n      \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/OnyxBlack.png\",\n      \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/OnyxBlack.png\"\n    ]\n  },\n  {\n    name: \"Ruby Red\",\n    codeSuffix: \"RED\",\n    hex: \"#ff7e79\",\n    cover: \"https:\/\/placehold.co\/900x900\/ffd7d3\/2b3440?text=MagSafe+RubyRed\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/ffd7d3\/2b3440?text=MagSafe+RubyRed+1\",\n      \"https:\/\/placehold.co\/1200x1200\/ffe3e0\/2b3440?text=MagSafe+RubyRed+2\",\n      \"https:\/\/placehold.co\/1200x1200\/fff0ee\/2b3440?text=MagSafe+RubyRed+3\"\n    ]\n  },\n  {\n    name: \"Sunset Orange\",\n    codeSuffix: \"ORG\",\n    hex: \"#ff7a3d\",\n    cover: \"https:\/\/placehold.co\/900x900\/ffe1d2\/2b3440?text=MagSafe+SunsetOrange\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/ffe1d2\/2b3440?text=MagSafe+SunsetOrange+1\",\n      \"https:\/\/placehold.co\/1200x1200\/fff0e8\/2b3440?text=MagSafe+SunsetOrange+2\",\n      \"https:\/\/placehold.co\/1200x1200\/fff7f2\/2b3440?text=MagSafe+SunsetOrange+3\"\n    ]\n  },\n  {\n    name: \"Sky Blue\",\n    codeSuffix: \"BLU\",\n    hex: \"#c9d9ec\",\n    cover: \"https:\/\/placehold.co\/900x900\/e8f0fa\/2b3440?text=MagSafe+SkyBlue\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/e8f0fa\/2b3440?text=MagSafe+SkyBlue+1\",\n      \"https:\/\/placehold.co\/1200x1200\/f1f6fc\/2b3440?text=MagSafe+SkyBlue+2\",\n      \"https:\/\/placehold.co\/1200x1200\/f8fbfe\/2b3440?text=MagSafe+SkyBlue+3\"\n    ]\n  },\n  {\n    name: \"Forest Green\",\n    codeSuffix: \"GRN\",\n    hex: \"#3e5742\",\n    cover: \"https:\/\/placehold.co\/900x900\/e2ebe3\/2b3440?text=MagSafe+ForestGreen\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/e2ebe3\/2b3440?text=MagSafe+ForestGreen+1\",\n      \"https:\/\/placehold.co\/1200x1200\/ecf2ed\/2b3440?text=MagSafe+ForestGreen+2\",\n      \"https:\/\/placehold.co\/1200x1200\/f6faf6\/2b3440?text=MagSafe+ForestGreen+3\"\n    ]\n  },\n  {\n    name: \"Lavender Violet\",\n    codeSuffix: \"LAV\",\n    hex: \"#d7c5e7\",\n    cover: \"https:\/\/placehold.co\/900x900\/f0e8f6\/2b3440?text=MagSafe+LavenderViolet\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/f0e8f6\/2b3440?text=MagSafe+LavenderViolet+1\",\n      \"https:\/\/placehold.co\/1200x1200\/f7f2fa\/2b3440?text=MagSafe+LavenderViolet+2\",\n      \"https:\/\/placehold.co\/1200x1200\/fcf9fe\/2b3440?text=MagSafe+LavenderViolet+3\"\n    ]\n  },\n  {\n    name: \"Blush Pink\",\n    codeSuffix: \"PNK\",\n    hex: \"#eccfed\",\n    cover: \"https:\/\/placehold.co\/900x900\/faebfb\/2b3440?text=MagSafe+BlushPink\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/faebfb\/2b3440?text=MagSafe+BlushPink+1\",\n      \"https:\/\/placehold.co\/1200x1200\/fdf3fd\/2b3440?text=MagSafe+BlushPink+2\",\n      \"https:\/\/placehold.co\/1200x1200\/fff9ff\/2b3440?text=MagSafe+BlushPink+3\"\n    ]\n  },\n  {\n    name: \"Desert Sand\",\n    codeSuffix: \"SND\",\n    hex: \"#d9c2a0\",\n    cover: \"https:\/\/placehold.co\/900x900\/f3e8d6\/2b3440?text=MagSafe+DesertSand\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/f3e8d6\/2b3440?text=MagSafe+DesertSand+1\",\n      \"https:\/\/placehold.co\/1200x1200\/f8f0e4\/2b3440?text=MagSafe+DesertSand+2\",\n      \"https:\/\/placehold.co\/1200x1200\/fcf8f1\/2b3440?text=MagSafe+DesertSand+3\"\n    ]\n  },\n  {\n    name: \"Deep Ocean Blue\",\n    codeSuffix: \"DOB\",\n    hex: \"#284be8\",\n    cover: \"https:\/\/placehold.co\/900x900\/dce5ff\/2b3440?text=MagSafe+DeepOceanBlue\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/dce5ff\/2b3440?text=MagSafe+DeepOceanBlue+1\",\n      \"https:\/\/placehold.co\/1200x1200\/ecf1ff\/2b3440?text=MagSafe+DeepOceanBlue+2\",\n      \"https:\/\/placehold.co\/1200x1200\/f6f8ff\/2b3440?text=MagSafe+DeepOceanBlue+3\"\n    ]\n  },\n  {\n    name: \"Graphite Grey\",\n    codeSuffix: \"GRY\",\n    hex: \"#6a6a6a\",\n    cover: \"https:\/\/placehold.co\/900x900\/e6e6e6\/2b3440?text=MagSafe+GraphiteGrey\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/e6e6e6\/2b3440?text=MagSafe+GraphiteGrey+1\",\n      \"https:\/\/placehold.co\/1200x1200\/f0f0f0\/2b3440?text=MagSafe+GraphiteGrey+2\",\n      \"https:\/\/placehold.co\/1200x1200\/f8f8f8\/2b3440?text=MagSafe+GraphiteGrey+3\"\n    ]\n  },\n  {\n    name: \"Mocha Brown\",\n    codeSuffix: \"MCH\",\n    hex: \"#944310\",\n    cover: \"https:\/\/placehold.co\/900x900\/ead8ce\/2b3440?text=MagSafe+MochaBrown\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/ead8ce\/2b3440?text=MagSafe+MochaBrown+1\",\n      \"https:\/\/placehold.co\/1200x1200\/f3e8e1\/2b3440?text=MagSafe+MochaBrown+2\",\n      \"https:\/\/placehold.co\/1200x1200\/f9f3ef\/2b3440?text=MagSafe+MochaBrown+3\"\n    ]\n  },\n  {\n    name: \"Lime Green\",\n    codeSuffix: \"LIM\",\n    hex: \"#d9e6c8\",\n    cover: \"https:\/\/placehold.co\/900x900\/f0f6e8\/2b3440?text=MagSafe+LimeGreen\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/f0f6e8\/2b3440?text=MagSafe+LimeGreen+1\",\n      \"https:\/\/placehold.co\/1200x1200\/f6faef\/2b3440?text=MagSafe+LimeGreen+2\",\n      \"https:\/\/placehold.co\/1200x1200\/fbfdf9\/2b3440?text=MagSafe+LimeGreen+3\"\n    ]\n  },\n  {\n    name: \"Candy Pink\",\n    codeSuffix: \"CDP\",\n    hex: \"#eb74ea\",\n    cover: \"https:\/\/placehold.co\/900x900\/f8def7\/2b3440?text=MagSafe+CandyPink\",\n    images: [\n      \"https:\/\/placehold.co\/1200x1200\/f8def7\/2b3440?text=MagSafe+CandyPink+1\",\n      \"https:\/\/placehold.co\/1200x1200\/fceefd\/2b3440?text=MagSafe+CandyPink+2\",\n      \"https:\/\/placehold.co\/1200x1200\/fff8ff\/2b3440?text=MagSafe+CandyPink+3\"\n    ]\n  }\n],\n          description: [\n            \"Silikonowe etui z MagSafe ApplePoint to klasyczna, dopracowana forma ochrony iPhone\u2019a, zaprojektowana z my\u015bl\u0105 o codziennym u\u017cytkowaniu i maksymalnym bezpiecze\u0144stwie urz\u0105dzenia.\",\n            \"Wykonane z wysokiej jako\u015bci, elastycznego silikonu o zwi\u0119kszonej odporno\u015bci na \u015bcieranie i p\u0119kanie, etui idealnie dopasowuje si\u0119 do obudowy telefonu, zachowuj\u0105c jego smuk\u0142y wygl\u0105d i komfort u\u017cytkowania.\",\n            \"Wn\u0119trze pokrowca wyko\u0144czone jest mi\u0119kk\u0105 warstw\u0105 ochronn\u0105, kt\u00f3ra skutecznie zabezpiecza korpus przed mikrozarysowaniami i drobinami kurzu, kt\u00f3re w tradycyjnych etui mog\u0105 powodowa\u0107 uszkodzenia.\",\n            \"Podniesione ranty ponad ekranem i aparatem chroni\u0105 najbardziej nara\u017cone elementy telefonu przed bezpo\u015brednim kontaktem z powierzchni\u0105. Elastyczna konstrukcja pomaga lepiej rozprasza\u0107 energi\u0119 przy codziennych uderzeniach i drobnych upadkach, a precyzyjne wyci\u0119cia zapewniaj\u0105 idealne dopasowanie do przycisk\u00f3w, port\u00f3w i aparatu.\"\n          ],\n          features: [\n            [\"Kolor\",\"Wybierany przez klienta\"],\n            [\"Dopasowanie\",\"Pod konkretne modele iPhone\"],\n            [\"Materia\u0142\",\"Wysokiej jako\u015bci silikon z mi\u0119kk\u0105 warstw\u0105 wewn\u0119trzn\u0105 z mikrofibry\"],\n            [\"Przeznaczenie\",\"Codzienna ochrona obudowy, wy\u015bwietlacza i aparat\u00f3w\"]\n          ],\n          specs: [\n            [\"Kategoria\",\"Etui ochronne\"],\n            [\"Kompatybilno\u015b\u0107\",\"Wybrane modele iPhone\"],\n            [\"Kolor\",\"Wybierany z listy\"],\n            [\"Wyko\u0144czenie\",\"Mi\u0119kkie \/ p\u00f3\u0142matowe \/ MagSafe\"],\n            [\"Kod produktu\",\"APL-CASE-MAGSAFE-001\"]\n          ]\n        },\n        {\n          slug: \"silikonowe-etui-AP-iphone\",\n          title: \"Silikonowe etui AP iPhone\",\n          shortTitle: \"Silikonowe AP etui\",\n          category: [\"ochrona\",\"telefony\",\"iPhone\"],\n          badge: \"Etui\",\n          price: \"79 z\u0142\",\n          priceValue: 79,\n          priceNote: \"Wybierz sw\u00f3j kolor\",\n          modelOptions: iphoneModels,\n          excerpt: \"Silikonowe etui ApplePoint do iPhone charakteryzuj\u0119 si\u0119 trwa\u0142ym materia\u0142em, podniesionym rantem ponad aparat i wy\u015bwietlacz oraz mi\u0119kka wewn\u0119trzn\u0105 mikrofibr\u0105 zapewniaj\u0105c\u0105 skuteczn\u0105 ochron\u0119 na co dzie\u0144.\",\n          subtitle: \"Silikonowe etui do wybranych modeli iPhone.\",\n          cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/bez1.png\",\n          images: [\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/bez3.png\",\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/bez2.png\",\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/bez1.png\"\n          ],\n          colors: [\n            {\n              name: \"Czarny\",\n              hex: \"#111111\",\n              cover: \"https:\/\/placehold.co\/900x900\/e9e9e9\/2b3440?text=Etui+Czarne\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/e9e9e9\/2b3440?text=Etui+Czarne+1\",\n                \"https:\/\/placehold.co\/1200x1200\/f2f2f2\/2b3440?text=Etui+Czarne+2\",\n                \"https:\/\/placehold.co\/1200x1200\/f8f8f8\/2b3440?text=Etui+Czarne+3\"\n              ]\n            },\n            {\n              name: \"Czerwony\",\n              hex: \"#ff7e79\",\n              cover: \"https:\/\/placehold.co\/900x900\/ffd7d3\/2b3440?text=Etui+Czerwone\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/ffd7d3\/2b3440?text=Etui+Czerwone+1\",\n                \"https:\/\/placehold.co\/1200x1200\/ffe5e1\/2b3440?text=Etui+Czerwone+2\",\n                \"https:\/\/placehold.co\/1200x1200\/fff1ef\/2b3440?text=Etui+Czerwone+3\"\n              ]\n            },\n            {\n              name: \"Safety Orange\",\n              hex: \"#ff7a3d\",\n              cover: \"https:\/\/placehold.co\/900x900\/ffe1d2\/2b3440?text=Etui+Orange\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/ffe1d2\/2b3440?text=Etui+Orange+1\",\n                \"https:\/\/placehold.co\/1200x1200\/fff0e8\/2b3440?text=Etui+Orange+2\",\n                \"https:\/\/placehold.co\/1200x1200\/fff7f2\/2b3440?text=Etui+Orange+3\"\n              ]\n            },\n            {\n              name: \"B\u0142\u0119kitny\",\n              hex: \"#c9d9ec\",\n              cover: \"https:\/\/placehold.co\/900x900\/e8f0fa\/2b3440?text=Etui+Blekitny\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/e8f0fa\/2b3440?text=Etui+Blekitny+1\",\n                \"https:\/\/placehold.co\/1200x1200\/f1f6fc\/2b3440?text=Etui+Blekitny+2\",\n                \"https:\/\/placehold.co\/1200x1200\/f8fbfe\/2b3440?text=Etui+Blekitny+3\"\n              ]\n            },\n            {\n              name: \"Ciemny zielony\",\n              hex: \"#3e5742\",\n              cover: \"https:\/\/placehold.co\/900x900\/e2ebe3\/2b3440?text=Etui+Zielony\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/e2ebe3\/2b3440?text=Etui+Zielony+1\",\n                \"https:\/\/placehold.co\/1200x1200\/ecf2ed\/2b3440?text=Etui+Zielony+2\",\n                \"https:\/\/placehold.co\/1200x1200\/f6faf6\/2b3440?text=Etui+Zielony+3\"\n              ]\n            },\n            {\n              name: \"Fioletowy\",\n              hex: \"#d7c5e7\",\n              cover: \"https:\/\/placehold.co\/900x900\/f0e8f6\/2b3440?text=Etui+Fioletowy\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/f0e8f6\/2b3440?text=Etui+Fioletowy+1\",\n                \"https:\/\/placehold.co\/1200x1200\/f7f2fa\/2b3440?text=Etui+Fioletowy+2\",\n                \"https:\/\/placehold.co\/1200x1200\/fcf9fe\/2b3440?text=Etui+Fioletowy+3\"\n              ]\n            },\n            {\n              name: \"Subtelny r\u00f3\u017c\",\n              hex: \"#eccfed\",\n              cover: \"https:\/\/placehold.co\/900x900\/faebfb\/2b3440?text=Etui+Roz\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/faebfb\/2b3440?text=Etui+Roz+1\",\n                \"https:\/\/placehold.co\/1200x1200\/fdf3fd\/2b3440?text=Etui+Roz+2\",\n                \"https:\/\/placehold.co\/1200x1200\/fff9ff\/2b3440?text=Etui+Roz+3\"\n              ]\n            },\n            {\n              name: \"Pustynny\",\n              hex: \"#d9c2a0\",\n              cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/bez1.png\",\n              images: [\n                \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/bez3.png\",\n                \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/bez2.png\",\n                \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/bez1.png\"\n              ]\n            },\n            {\n              name: \"Ultramaryna\",\n              hex: \"#284be8\",\n              cover: \"https:\/\/placehold.co\/900x900\/dce5ff\/2b3440?text=Etui+Ultramaryna\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/dce5ff\/2b3440?text=Etui+Ultramaryna+1\",\n                \"https:\/\/placehold.co\/1200x1200\/ecf1ff\/2b3440?text=Etui+Ultramaryna+2\",\n                \"https:\/\/placehold.co\/1200x1200\/f6f8ff\/2b3440?text=Etui+Ultramaryna+3\"\n              ]\n            },\n            {\n              name: \"Szary\",\n              hex: \"#6a6a6a\",\n              cover: \"https:\/\/placehold.co\/900x900\/e6e6e6\/2b3440?text=Etui+Szary\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/e6e6e6\/2b3440?text=Etui+Szary+1\",\n                \"https:\/\/placehold.co\/1200x1200\/f0f0f0\/2b3440?text=Etui+Szary+2\",\n                \"https:\/\/placehold.co\/1200x1200\/f8f8f8\/2b3440?text=Etui+Szary+3\"\n              ]\n            },\n            {\n              name: \"Mocha Mousse\",\n              hex: \"#944310\",\n              cover: \"https:\/\/placehold.co\/900x900\/ead8ce\/2b3440?text=Etui+Mocha\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/ead8ce\/2b3440?text=Etui+Mocha+1\",\n                \"https:\/\/placehold.co\/1200x1200\/f3e8e1\/2b3440?text=Etui+Mocha+2\",\n                \"https:\/\/placehold.co\/1200x1200\/f9f3ef\/2b3440?text=Etui+Mocha+3\"\n              ]\n            },\n            {\n              name: \"Limonkowy\",\n              hex: \"#d9e6c8\",\n              cover: \"https:\/\/placehold.co\/900x900\/f0f6e8\/2b3440?text=Etui+Limonkowy\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/f0f6e8\/2b3440?text=Etui+Limonkowy+1\",\n                \"https:\/\/placehold.co\/1200x1200\/f6faef\/2b3440?text=Etui+Limonkowy+2\",\n                \"https:\/\/placehold.co\/1200x1200\/fbfdf9\/2b3440?text=Etui+Limonkowy+3\"\n              ]\n            },\n            {\n              name: \"Wrzosowy\",\n              hex: \"#eb74ea\",\n              cover: \"https:\/\/placehold.co\/900x900\/f8def7\/2b3440?text=Etui+Wrzosowy\",\n              images: [\n                \"https:\/\/placehold.co\/1200x1200\/f8def7\/2b3440?text=Etui+Wrzosowy+1\",\n                \"https:\/\/placehold.co\/1200x1200\/fceefd\/2b3440?text=Etui+Wrzosowy+2\",\n                \"https:\/\/placehold.co\/1200x1200\/fff8ff\/2b3440?text=Etui+Wrzosowy+3\"\n              ]\n            }\n          ],\n          description: [\n            \"Silikonowe etui ApplePoint to po\u0142\u0105czenie eleganckiego wygl\u0105du i realnej ochrony iPhone\u2019a w codziennym u\u017cytkowaniu.\",\n            \"Wykonane z elastycznego, wysokiej jako\u015bci silikonu etui dobrze le\u017cy w d\u0142oni, nie \u015blizga si\u0119 i skutecznie chroni obudow\u0119 przed typowymi \u015bladami u\u017cytkowania.\",\n            \"Mi\u0119kkie wyko\u0144czenie wewn\u0119trzne pomaga ograniczy\u0107 ryzyko powstawania rys i otar\u0107 na korpusie telefonu, a dok\u0142adnie dopracowana forma zapewnia \u015bwietne przyleganie do urz\u0105dzenia.\",\n            \"Podniesione kraw\u0119dzie ponad ekranem i wysp\u0105 aparat\u00f3w zwi\u0119kszaj\u0105 poziom ochrony przy odk\u0142adaniu telefonu na blat, biurko czy inne twarde powierzchnie. To estetyczne, lekkie i praktyczne etui dla os\u00f3b, kt\u00f3re chc\u0105 po\u0142\u0105czy\u0107 subtelny wygl\u0105d z wysok\u0105 jako\u015bci\u0105 wykonania.\"\n          ],\n          features: [\n            [\"Kolor\",\"Wybierany przez klienta\"],\n            [\"Dopasowanie\",\"Pod konkretne modele iPhone\"],\n            [\"Materia\u0142\",\"Wysokiej jako\u015bci silikon z mi\u0119kk\u0105 warstw\u0105 wewn\u0119trzn\u0105 z mikrofibry\"],\n            [\"Przeznaczenie\",\"Codzienna ochrona obudowy, wy\u015bwietlacza i aparat\u00f3w\"]\n          ],\n          specs: [\n            [\"Kategoria\",\"Etui ochronne\"],\n            [\"Kompatybilno\u015b\u0107\",\"Wybrane modele iPhone\"],\n            [\"Kolor\",\"Wybierany z listy\"],\n            [\"Wyko\u0144czenie\",\"Mi\u0119kkie \/ p\u00f3\u0142matowe\"],\n            [\"Kod produktu\",\"APL-CASE-SILICONE-001\"]\n          ]\n        },\n        {\n          slug: \"etui-poliweglanowe-AP-iphone-przezroczyste\",\n          title: \"Etui poliw\u0119glanowe AP iPhone \u2013 przezroczyste\",\n          shortTitle: \"Etui poliw\u0119glanowe AP \u2013 przezroczyste\",\n          category: [\"ochrona\",\"telefony\",\"iPhone\"],\n          badge: \"Etui\",\n          price: \"119 z\u0142\",\n          priceValue: 119,\n          priceNote: \"Wersja transparentna z MagSafe\",\n          modelOptions: iphoneModels,\n          excerpt: \"Przezroczyste etui ApplePoint z MagSafe wykonane z trwa\u0142ego poliw\u0119glanu, kt\u00f3ry pomaga op\u00f3\u017ania\u0107 proces \u017c\u00f3\u0142kni\u0119cia. Wzmocniona konstrukcja, podniesione ranty i pe\u0142na kompatybilno\u015b\u0107 z akcesoriami magnetycznymi zapewniaj\u0105 wysok\u0105 ochron\u0119 i wygod\u0119 u\u017cytkowania.\",\n          subtitle: \"Transparentne etui do wybranych modeli iPhone.\",\n          cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/magsafeAP-Photoroom.png\",\n          images: [\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/magsafeAP-Photoroom.png\",\n            \"https:\/\/placehold.co\/1200x1200\/f0f4f8\/2b3440?text=Etui+Transparentne+2\",\n            \"https:\/\/placehold.co\/1200x1200\/f9fbfd\/2b3440?text=Etui+Transparentne+3\"\n          ],\n          description: [\n            \"Magnetyczne etui ApplePoint to po\u0142\u0105czenie minimalistycznego designu i zaawansowanej ochrony, stworzone dla u\u017cytkownik\u00f3w iPhone z funkcj\u0105 MagSafe.\",\n            \"Konstrukcja zosta\u0142a wykonana z wysokiej jako\u015bci poliw\u0119glanu, kt\u00f3ry skutecznie op\u00f3\u017ania proces \u017c\u00f3\u0142kni\u0119cia i lepiej zachowuje estetyczny wygl\u0105d przez d\u0142u\u017cszy czas. To \u015bwietna opcja dla os\u00f3b, kt\u00f3re chc\u0105 chroni\u0107 telefon bez zakrywania jego oryginalnego koloru i designu.\",\n            \"Wbudowany, wzmocniony pier\u015bcie\u0144 magnetyczny zapewnia stabilne po\u0142\u0105czenie z \u0142adowarkami i akcesoriami MagSafe, eliminuj\u0105c problem przesuwania si\u0119 telefonu i poprawiaj\u0105c komfort codziennego u\u017cytkowania.\",\n            \"Etui zosta\u0142o zaprojektowane tak, aby ranty wystawa\u0142y ponad ekran i aparat, tworz\u0105c dodatkow\u0105 barier\u0119 ochronn\u0105 przy odk\u0142adaniu telefonu na blat lub podczas codziennego noszenia. Wzmocnione rogi pomagaj\u0105 lepiej rozprasza\u0107 energi\u0119 uderzenia przy upadku, a ca\u0142o\u015b\u0107 zachowuje smuk\u0142\u0105 i nowoczesn\u0105 form\u0119.\"\n          ],\n          features: [\n            [\"Kolor\",\"Przezroczysty\"],\n            [\"Dopasowanie\",\"Pod konkretne modele iPhone\"],\n            [\"Materia\u0142\",\"Poliw\u0119glan \/ tworzywo ochronne\"],\n            [\"Przeznaczenie\",\"Codzienna ochrona obudowy z MagSafe\"]\n          ],\n          specs: [\n            [\"Kategoria\",\"Etui ochronne\"],\n            [\"Kompatybilno\u015b\u0107\",\"Wybrane modele iPhone\"],\n            [\"Kolor\",\"Transparentny\"],\n            [\"Wyko\u0144czenie\",\"Przezroczyste\"],\n            [\"Kod produktu\",\"APL-CASE-CLEAR-001\"]\n          ]\n        },\n        {\n          slug: \"szklo-hartowane-AP-iphone-ultra-protection\",\n          title: \"Szk\u0142o hartowane AP iPhone \u2013 Ultra Protection\",\n          shortTitle: \"Szk\u0142o hartowane AP iPhone \u2013 Ultra Protection\",\n          category: [\"ochrona\",\"telefony\",\"iPhone\"],\n          badge: \"Szk\u0142o\",\n          price: \"99 z\u0142\",\n          priceValue: 99,\n          priceNote: \"Wersja Ultra Protection\",\n          modelOptions: iphoneModels,\n          excerpt: \"Wysokiej klasy szk\u0142o ochronne ApplePoint do iPhone z pe\u0142nym pokryciem ekranu, wysok\u0105 odporno\u015bci\u0105 na zarysowania i bardzo dobr\u0105 czu\u0142o\u015bci\u0105 dotyku. Skuteczna ochrona wy\u015bwietlacza bez kompromis\u00f3w w codziennym u\u017cytkowaniu.\",\n          subtitle: \"Szk\u0142o premium full cover z wysok\u0105 odporno\u015bci\u0105 i mocn\u0105 pow\u0142ok\u0105 oleofobow\u0105.\",\n          cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/szklo-Photoroom.png\",\n          images: [\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/szklo-Photoroom.png\",\n            \"https:\/\/placehold.co\/1200x1200\/edf2f8\/2b3440?text=Szklo+Standard+2\",\n            \"https:\/\/placehold.co\/1200x1200\/f5f7fb\/2b3440?text=Szklo+Standard+3\"\n          ],\n          description: [\n            \"Szk\u0142o ochronne ApplePoint zosta\u0142o zaprojektowane dla u\u017cytkownik\u00f3w, kt\u00f3rzy oczekuj\u0105 maksymalnej ochrony wy\u015bwietlacza bez kompromis\u00f3w w jako\u015bci obrazu i komforcie u\u017cytkowania.\",\n            \"Wysoka odporno\u015b\u0107 na zarysowania i codzienne uszkodzenia sprawia, \u017ce szk\u0142o skutecznie zabezpiecza ekran przed \u015bladami u\u017cytkowania, drobnymi uderzeniami oraz przypadkowymi kontaktami z twardymi powierzchniami.\",\n            \"Zaawansowana pow\u0142oka oleofobowa pomaga ograniczy\u0107 powstawanie odcisk\u00f3w palc\u00f3w i smug, dzi\u0119ki czemu ekran d\u0142u\u017cej pozostaje czysty, estetyczny i przyjemny w codziennym u\u017cytkowaniu.\",\n            \"Szk\u0142o zachowuje pe\u0142n\u0105 czu\u0142o\u015b\u0107 dotyku i nie pogarsza jako\u015bci obrazu, dlatego korzystanie z telefonu pozostaje tak samo wygodne jak bez dodatkowej warstwy ochronnej. To skuteczna i znacznie ta\u0144sza forma zabezpieczenia ni\u017c p\u00f3\u017aniejsza wymiana wy\u015bwietlacza.\"\n          ],\n          features: [\n            [\"Przeznaczenie\",\"Ochrona wy\u015bwietlacza\"],\n            [\"Wariant\",\"Ultra Protection\"],\n            [\"Kompatybilno\u015b\u0107\",\"Wybrane modele iPhone\"],\n            [\"Monta\u017c\",\"Na sucho\"]\n          ],\n          specs: [\n            [\"Kategoria\",\"Szk\u0142o ochronne\"],\n            [\"Typ\",\"Hartowane\"],\n            [\"Wersja\",\"Ultra Protection\"],\n            [\"Kompatybilno\u015b\u0107\",\"Wybrane modele iPhone\"],\n            [\"Kod produktu\",\"APL-GLASS-STD-001\"]\n          ]\n        },\n        {\n          slug: \"szklo-hartowane-AP-iphone-prywatyzujace\",\n          title: \"Szk\u0142o hartowane AP iPhone \u2013 prywatyzuj\u0105ce\",\n          shortTitle: \"Szk\u0142o hartowane AP \u2013 prywatyzuj\u0105ce\",\n          category: [\"ochrona\",\"telefony\",\"iPhone\"],\n          badge: \"Szk\u0142o\",\n          price: \"99 z\u0142\",\n          priceValue: 99,\n          priceNote: \"Wersja prywatyzuj\u0105ca\",\n          modelOptions: iphoneModels,\n          excerpt: \"Szk\u0142o prywatyzuj\u0105ce ApplePoint do iPhone chroni wy\u015bwietlacz przed zarysowaniami i ogranicza widoczno\u015b\u0107 ekranu dla os\u00f3b postronnych. To po\u0142\u0105czenie ochrony fizycznej i prywatno\u015bci w codziennym u\u017cytkowaniu.\",\n          subtitle: \"Szk\u0142o prywatyzuj\u0105ce do wybranych modeli iPhone.\",\n          cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/51cnXGiQASL._AC_UF8941000_QL80_-Photoroom.png\",\n          images: [\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/51cnXGiQASL._AC_UF8941000_QL80_-Photoroom.png\",\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/product_i17_PRO_GLS_PRV_01-Photoroom.png\",\n            \"https:\/\/placehold.co\/1200x1200\/f7f8fb\/2b3440?text=Szklo+Privacy+3\"\n          ],\n          description: [\n            \"Szk\u0142o prywatyzuj\u0105ce ApplePoint to idealne rozwi\u0105zanie dla os\u00f3b, kt\u00f3re chc\u0105 chroni\u0107 nie tylko ekran, ale r\u00f3wnie\u017c swoj\u0105 prywatno\u015b\u0107.\",\n            \"Dzi\u0119ki technologii ograniczaj\u0105cej k\u0105ty widzenia zawarto\u015b\u0107 ekranu pozostaje dobrze widoczna dla u\u017cytkownika, natomiast osoby patrz\u0105ce z boku widz\u0105 jedynie przyciemniony obraz. To szczeg\u00f3lnie przydatne w pracy, podr\u00f3\u017cy i w miejscach publicznych.\",\n            \"Szk\u0142o zapewnia wysok\u0105 odporno\u015b\u0107 na zarysowania i typowe uszkodzenia mechaniczne, a dodatkowa pow\u0142oka antyodciskowa pomaga utrzyma\u0107 ekran w lepszej czysto\u015bci podczas codziennego u\u017cytkowania.\",\n            \"Mimo dodatkowej funkcji prywatno\u015bci szk\u0142o zachowuje dobr\u0105 responsywno\u015b\u0107 dotyku i nie utrudnia wygodnego korzystania z telefonu. To skuteczne po\u0142\u0105czenie ochrony fizycznej oraz cyfrowej prywatno\u015bci.\"\n          ],\n          features: [\n            [\"Przeznaczenie\",\"Ochrona wy\u015bwietlacza\"],\n            [\"Wariant\",\"Prywatyzuj\u0105ca\"],\n            [\"Kompatybilno\u015b\u0107\",\"Wybrane modele iPhone\"],\n            [\"Monta\u017c\",\"Na sucho\"]\n          ],\n          specs: [\n            [\"Kategoria\",\"Szk\u0142o ochronne\"],\n            [\"Typ\",\"Hartowane prywatyzuj\u0105ce\"],\n            [\"Wersja\",\"Prywatyzuj\u0105ca\"],\n            [\"Kompatybilno\u015b\u0107\",\"Wybrane modele iPhone\"],\n            [\"Kod produktu\",\"APL-GLASS-PRV-001\"]\n          ]\n        },\n        {\n          slug: \"ochrona-aparatow-AP-iphone-szafir\",\n          title: \"Ochrona aparat\u00f3w AP iPhone | alumino-krzemianowe szk\u0142o z syntetycznego szafiru\",\n          shortTitle: \"Ochrona aparat\u00f3w AP iPhone | syntetyczny szafir\",\n          category: [\"ochrona\",\"telefony\",\"iPhone\"],\n          badge: \"Aparat\",\n          price: \"89 z\u0142\",\n          priceValue: 89,\n          priceNote: \"Wersja premium\",\n          modelOptions: iphoneModels,\n          excerpt: \"Ochrona aparat\u00f3w ApplePoint iPhone wykonana z alumino-krzemianowego szk\u0142a z syntetycznego szafiru. Materia\u0142 o podwy\u017cszonej odporno\u015bci na zarysowania oraz specjalne pow\u0142oki przeciwko odciskom palc\u00f3w skutecznie chroni\u0105 soczewki i idealnie dopasowuje si\u0119 do wyspy aparat\u00f3w.\",\n          subtitle: \"Wytrzyma\u0142a i estetyczna ochrona aparat\u00f3w iPhone w wersji premium.\",\n          cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/szklaochronne-Photoroom.png\",\n          images: [\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/szklaochronne-Photoroom.png\",\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/Zrzut-ekranu-2026-04-7-o-15.27.34-Photoroom.png\",\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/szklaochronneaparat-Photoroom.png\"\n          ],\n          description: [\n            \"Szk\u0142o ochronne ApplePoint na aparat to kluczowy element zabezpieczenia iPhone\u2019a, kt\u00f3rego na co dzie\u0144 cz\u0119sto nie wida\u0107, ale kt\u00f3rego brak bardzo \u0142atwo mo\u017ce sko\u0144czy\u0107 si\u0119 kosztown\u0105 napraw\u0105.\",\n            \"Zastosowany materia\u0142 to syntetyczny szafir, kt\u00f3ry charakteryzuje si\u0119 znacznie wy\u017csz\u0105 odporno\u015bci\u0105 na zarysowania ni\u017c standardowe szk\u0142o ochronne. Dzi\u0119ki temu soczewki aparatu s\u0105 skutecznie chronione nawet przy intensywnym, codziennym u\u017cytkowaniu telefonu.\",\n            \"Precyzyjnie zaprojektowana konstrukcja idealnie dopasowuje si\u0119 do wyspy aparat\u00f3w, dobrze przylega do jej powierzchni i tworzy estetyczne, sp\u00f3jne wyko\u0144czenie. Ochrona skutecznie zabezpiecza obiektywy przed rysami, zabrudzeniami i drobnymi uszkodzeniami mechanicznymi.\",\n            \"Ca\u0142o\u015b\u0107 zosta\u0142a opracowana tak, aby nie pogarsza\u0107 jako\u015bci zdj\u0119\u0107 i nagra\u0144, a jednocze\u015bnie chroni\u0107 jeden z najdro\u017cszych i najbardziej nara\u017conych element\u00f3w telefonu.\"\n          ],\n          features: [\n            [\"Przeznaczenie\",\"Ochrona soczewek aparatu iPhone\"],\n            [\"Materia\u0142\",\"Alumino-krzemianowe szk\u0142o z syntetycznego szafiru\"],\n            [\"Dopasowanie\",\"Idealnie dopasowane do wyspy aparat\u00f3w\"],\n            [\"Zastosowanie\",\"Ochrona przed zarysowaniami i uszkodzeniami mechanicznymi\"]\n          ],\n          specs: [\n            [\"Kategoria\",\"Ochrona aparat\u00f3w\"],\n            [\"Kompatybilno\u015b\u0107\",\"Wybrane modele iPhone\"],\n            [\"Materia\u0142\",\"Alumino-krzemianowe szk\u0142o z syntetycznego szafiru\"],\n            [\"Pow\u0142oka\",\"Odporna na codzienne zabrudzenia\"],\n            [\"Kod produktu\",\"APL-CAM-SAPPHIRE-001\"]\n          ]\n        },\n        {\n          slug: \"kabel-usb-c-AP\",\n          title: \"Kabel Magnetyczny AP USB-C 1m 100W | 2m 60W\",\n          shortTitle: \"Kabel Magnetyczny AP USB-C 1m 100W | 2m 60W\",\n          category: [\"zasilanie\",\"telefony\",\"iPhone\"],\n          badge: \"Kabel\",\n          price: \"od 69 z\u0142\",\n          priceValue: 69,\n          priceNote: \"1 m \/ 2 m\",\n          excerpt: \"Magnetycznie zwijany kabel ApplePoint USB-C, kt\u00f3ry pomaga utrzyma\u0107 porz\u0105dek i eliminuje problem pl\u0105cz\u0105cych si\u0119 przewod\u00f3w. Solidny oplot, wzmacniane ko\u0144c\u00f3wki i wysoka moc sprawiaj\u0105, \u017ce to trwa\u0142y kabel do codziennego \u0142adowania i nie tylko.\",\n          subtitle: \"Magnetycznie zwijany kabel USB-C ze wzmacnian\u0105 konstrukcj\u0105 i wygodnym wyborem d\u0142ugo\u015bci.\",\n          cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/kabel3-Photoroom.png\",\n          images: [\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/kabel2-Photoroom.png\",\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/kabel1-Photoroom.png\",\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/kabel3-Photoroom.png\"\n          ],\n          variants: [\n            { name:\"1 m\", price:69 },\n            { name:\"2 m\", price:99 }\n          ],\n          description: [\n            \"Znany problem z pl\u0105cz\u0105cymi si\u0119 kablami? Od dzi\u015b ju\u017c Ci\u0119 nie dotyczy. Magnetycznie zwijany kabel ApplePoint USB-C pomaga utrzyma\u0107 porz\u0105dek i wygodnie dopasowa\u0107 d\u0142ugo\u015b\u0107 do miejsca, w kt\u00f3rym go u\u017cywasz.\",\n            \"Przew\u00f3d zosta\u0142 wykonany w solidnym oplocie, kt\u00f3ry zwi\u0119ksza jego odporno\u015b\u0107 na przetarcia, zaginanie i codzienne zu\u017cycie. To rozwi\u0105zanie, kt\u00f3re lepiej sprawdza si\u0119 przy intensywnym u\u017cytkowaniu ni\u017c klasyczne, zwyk\u0142e kable.\",\n            \"Dodatkowym atutem s\u0105 wzmacniane ko\u0144c\u00f3wki, kt\u00f3re poprawiaj\u0105 trwa\u0142o\u015b\u0107 kabla w miejscach najbardziej nara\u017conych na uszkodzenia. Dzi\u0119ki temu ca\u0142o\u015b\u0107 jest bardziej odporna na \u0142amanie przewodu przy wtykach i lepiej znosi cz\u0119ste pod\u0142\u0105czanie oraz od\u0142\u0105czanie.\",\n            \"Kabel zosta\u0142 przygotowany do \u0142adowania i synchronizacji urz\u0105dze\u0144 kompatybilnych z USB-C. Do wyboru s\u0105 warianty 1 m oraz 2 m, dzi\u0119ki czemu mo\u017cna dobra\u0107 d\u0142ugo\u015b\u0107 najlepiej dopasowan\u0105 do w\u0142asnych potrzeb \u2014 zar\u00f3wno do biurka, auta, jak i codziennego noszenia przy sobie.\"\n          ],\n          features: [\n            [\"Typ z\u0142\u0105cza\",\"USB-C\"],\n            [\"D\u0142ugo\u015bci\",\"1 m \/ 2 m\"],\n            [\"Zastosowanie\",\"\u0141adowanie i synchronizacja\"],\n            [\"Przeznaczenie\",\"Urz\u0105dzenia kompatybilne z USB-C\"]\n          ],\n          specs: [\n            [\"Kategoria\",\"Kabel zasilaj\u0105cy\"],\n            [\"Z\u0142\u0105cza\",\"USB-C\"],\n            [\"D\u0142ugo\u015bci\",\"1 m \/ 2 m\"],\n            [\"Kolor\",\"Czarny\"],\n            [\"Kod produktu\",\"APL-CABLE-USBC-001\"]\n          ]\n        },\n        {\n          slug: \"ladowarka-skladana-AP-3w1-qi22-25w\",\n          title: \"\u0141adowarka sk\u0142adana AP 3w1 Qi2.2 25W\",\n          shortTitle: \"\u0141adowarka AP 3w1 Qi2.2 25W\",\n          category: [\"zasilanie\",\"iPhone\",\"telefony\"],\n          badge: \"\u0141adowarka\",\n          price: \"459 z\u0142\",\n          priceValue: 459,\n          priceNote: \"Sk\u0142adana 3w1\",\n          excerpt: \"Sk\u0142adana \u0142adowarka ApplePoint 3w1 pozwala wygodnie \u0142adowa\u0107 iPhone\u2019a, AirPods i Apple Watch jednocze\u015bnie. Oferuje szybkie \u0142adowanie, premium konstrukcj\u0119 z aluminium i wygod\u0119 u\u017cytkowania zar\u00f3wno w domu, jak i w podr\u00f3\u017cy.\",\n          subtitle: \"Nowoczesna \u0142adowarka 3w1 z szybszym \u0142adowaniem iPhone\u2019a i pe\u0142n\u0105 moc\u0105 dla Apple Watch oraz AirPods.\",\n          cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/ladowarkamagnetyczna-Photoroom.png\",\n          images: [\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/ladowarka131-Photoroom.png\",\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/ladowarkamagnetyczna-Photoroom.png\",\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/ladowarkamagnetyczna33-Photoroom.png\"\n          ],\n          description: [\n            \"Sk\u0142adana \u0142adowarka ApplePoint 3w1 to nowoczesne rozwi\u0105zanie dla u\u017cytkownik\u00f3w ekosystemu Apple, kt\u00f3rzy ceni\u0105 wygod\u0119, porz\u0105dek i wysok\u0105 wydajno\u015b\u0107 \u0142adowania.\",\n            \"Urz\u0105dzenie umo\u017cliwia jednoczesne \u0142adowanie iPhone\u2019a, Apple Watch oraz AirPods, dzi\u0119ki czemu zast\u0119puje kilka osobnych \u0142adowarek i pomaga uporz\u0105dkowa\u0107 przestrze\u0144 na biurku, stoliku nocnym lub w podr\u00f3\u017cy.\",\n            \"\u0141adowarka oferuje nawet do 1,5 raza szybsze \u0142adowanie samego iPhone\u2019a, a dodatkowo zapewnia maksymaln\u0105 moc \u0142adowania dla Apple Watch oraz AirPods. Stabilne mocowanie magnetyczne poprawia wygod\u0119 u\u017cytkowania i pozwala pewnie odk\u0142ada\u0107 telefon do \u0142adowania.\",\n            \"Obudowa z mocnego aluminium nadaje ca\u0142o\u015bci nowoczesny, premium wygl\u0105d, a sk\u0142adana konstrukcja sprawia, \u017ce \u0142adowarka \u015bwietnie sprawdza si\u0119 nie tylko w domu, ale r\u00f3wnie\u017c podczas wyjazd\u00f3w. To praktyczne rozwi\u0105zanie dla os\u00f3b, kt\u00f3re chc\u0105 mie\u0107 jedno dopracowane urz\u0105dzenie do codziennego zasilania najwa\u017cniejszych akcesori\u00f3w Apple.\"\n          ],\n          features: [\n            [\"Typ\",\"\u0141adowarka AP sk\u0142adana 3w1\"],\n            [\"Moc\",\"25W\"],\n            [\"Standard\",\"Qi2.2\"],\n            [\"Przeznaczenie\",\"iPhone, Apple Watch i AirPods\"]\n          ],\n          specs: [\n            [\"Kategoria\",\"\u0141adowarka bezprzewodowa\"],\n            [\"Typ\",\"3w1 sk\u0142adana\"],\n            [\"Moc\",\"25W\"],\n            [\"Standard\",\"Qi2.2\"],\n            [\"Kod produktu\",\"APL-QI3IN1-001\"]\n          ]\n        },\n        {\n          slug: \"ladowarka-sieciowa-AP-30w\",\n          title: \"\u0141adowarka sieciowa AP 30W SOLO 30W | USB-C PD |\",\n          shortTitle: \"\u0141adowarka sieciowa AP SOLO 30W | USB-C PD |\",\n          category: [\"zasilanie\",\"telefony\",\"iPhone\"],\n          badge: \"\u0141adowarka\",\n          price: \"89 z\u0142\",\n          priceValue: 89,\n          priceNote: \"Wersja 30W\",\n          excerpt: \"Kompaktowa \u0142adowarka sieciowa ApplePoint 30W z szybkim \u0142adowaniem i nowoczesn\u0105 technologi\u0105, stworzona do wygodnego zasilania iPhone\u2019a i innych urz\u0105dze\u0144 mobilnych. Ma\u0142a forma, wysoka wydajno\u015b\u0107 i stabilna praca ka\u017cdego dnia.\",\n          subtitle: \"Szybkie i wygodne \u0142adowanie iPhone\u2019a w kompaktowej formie.\",\n          cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/ladowarka1-Photoroom.png\",\n          images: [\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/ladowarka1-Photoroom.png\",\n            \"https:\/\/placehold.co\/1200x1200\/f0f3f8\/2b3440?text=sieciowa+35W+2\",\n            \"https:\/\/placehold.co\/1200x1200\/f8fafc\/2b3440?text=sieciowa+35W+3\"\n          ],\n          description: [\n            \"Zasilacz ApplePoint 30W to nowoczesne rozwi\u0105zanie dla u\u017cytkownik\u00f3w, kt\u00f3rzy oczekuj\u0105 wysokiej wydajno\u015bci w kompaktowej formie i chc\u0105 \u0142adowa\u0107 swoje urz\u0105dzenia szybciej oraz wygodniej na co dzie\u0144.\",\n            \"Niewielki rozmiar sprawia, \u017ce \u0142adowarka bez problemu zmie\u015bci si\u0119 w torbie, plecaku czy kieszeni, dlatego \u015bwietnie sprawdza si\u0119 zar\u00f3wno w domu, jak i w pracy lub podczas podr\u00f3\u017cy.\",\n            \"Nowoczesna konstrukcja zapewnia stabilne zasilanie, bezpieczn\u0105 prac\u0119 i szybkie \u0142adowanie kompatybilnych urz\u0105dze\u0144. To praktyczne rozwi\u0105zanie dla os\u00f3b, kt\u00f3re nie chc\u0105 nosi\u0107 du\u017cych zasilaczy, ale nadal oczekuj\u0105 odpowiedniej mocy i niezawodno\u015bci.\",\n            \"To \u0142adowarka, kt\u00f3ra dobrze \u0142\u0105czy kompaktowy rozmiar, wygod\u0119 u\u017cytkowania i wysok\u0105 jako\u015b\u0107 wykonania, dlatego \u015bwietnie sprawdzi si\u0119 jako codzienny zasilacz do iPhone\u2019a i innych urz\u0105dze\u0144 mobilnych.\"\n          ],\n          features: [\n            [\"Przeznaczenie\",\"\u0141adowanie w domu, biurze i podr\u00f3\u017cy\"],\n            [\"Moc\",\"30W\"],\n            [\"Porty\",\"1x USB-C\"],\n            [\"Zastosowanie\",\"Telefony i urz\u0105dzenia mobilne\"]\n          ],\n          specs: [\n            [\"Kategoria\",\"\u0141adowarka sieciowa\"],\n            [\"Moc\",\"30W\"],\n            [\"Porty\",\"1x USB-C\"],\n            [\"Kolor\",\"Bia\u0142y\"],\n            [\"Kod produktu\",\"APL-CAR-CHARGER-35W\"]\n          ]\n        },\n        {\n          slug: \"ladowarka-sieciowa-AP-65w\",\n          title: \"\u0141adowarka sieciowa AP 65W DUO 65W | USB-C PD |\",\n          shortTitle: \"\u0141adowarka sieciowa AP 65W DUO 65W | USB-C PD |\",\n          category: [\"zasilanie\",\"telefony\",\"iPhone\"],\n          badge: \"\u0141adowarka\",\n          price: \"149 z\u0142\",\n          priceValue: 149,\n          priceNote: \"Wersja 65W\",\n          excerpt: \"Mocna \u0142adowarka sieciowa ApplePoint 65W z dwoma portami USB-C, stworzona do szybkiego i stabilnego \u0142adowania kilku urz\u0105dze\u0144 jednocze\u015bnie. Wysoka wydajno\u015b\u0107, kompaktowa forma i wygoda u\u017cytkowania na co dzie\u0144.\",\n          subtitle: \"Wi\u0119cej mocy, szybsze \u0142adowanie i wygoda na co dzie\u0144.\",\n          cover: \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/ladowarka-Photoroom.png\",\n          images: [\n            \"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/04\/ladowarka.png\",\n            \"https:\/\/placehold.co\/1200x1200\/edf2f7\/2b3440?text=sieciowa+65W+2\",\n            \"https:\/\/placehold.co\/1200x1200\/f8fafc\/2b3440?text=sieciowa+65W+3\"\n          ],\n          description: [\n            \"Zasilacz ApplePoint 65W DUO to rozwi\u0105zanie dla os\u00f3b, kt\u00f3re chc\u0105 \u0142adowa\u0107 kilka urz\u0105dze\u0144 jednocze\u015bnie \u2014 szybko, stabilnie i bez kompromis\u00f3w.\",\n            \"Dwa porty USB-C pozwalaj\u0105 zasila\u0107 jednocze\u015bnie na przyk\u0142ad telefon i inne kompatybilne urz\u0105dzenie, dzi\u0119ki czemu jedna \u0142adowarka mo\u017ce zast\u0105pi\u0107 kilka osobnych zasilaczy i uporz\u0105dkowa\u0107 codzienne korzystanie z elektroniki.\",\n            \"Wysoka moc 65W sprawia, \u017ce \u0142adowarka \u015bwietnie sprawdzi si\u0119 wsz\u0119dzie tam, gdzie liczy si\u0119 wi\u0119kszy zapas energii i wygoda u\u017cytkowania. Kompaktowa forma i nowoczesna konstrukcja pomagaj\u0105 po\u0142\u0105czy\u0107 wysok\u0105 wydajno\u015b\u0107 z mobilno\u015bci\u0105.\",\n            \"To praktyczny wyb\u00f3r dla os\u00f3b, kt\u00f3re chc\u0105 mie\u0107 jedn\u0105 mocn\u0105 \u0142adowark\u0119 do codziennego u\u017cytku w domu, pracy albo podczas wyjazd\u00f3w, bez rezygnowania z estetyki i jako\u015bci wykonania.\"\n          ],\n          features: [\n            [\"Przeznaczenie\",\"\u0141adowanie w domu, biurze i podr\u00f3\u017cy\"],\n            [\"Moc\",\"65W\"],\n            [\"Porty\",\"2x USB-C\"],\n            [\"Zastosowanie\",\"Telefony i urz\u0105dzenia mobilne\"]\n          ],\n          specs: [\n            [\"Kategoria\",\"\u0141adowarka sieciowa\"],\n            [\"Moc\",\"65W\"],\n            [\"Porty\",\"2x USB-C\"],\n            [\"Kolor\",\"Bia\u0142y\"],\n            [\"Kod produktu\",\"APL-CAR-CHARGER-65W\"]\n          ]\n        }\n      ];\n\n      const catalogPage = document.getElementById('apCatalogPage');\n      const productPage = document.getElementById('apProductPage');\n      const productGrid = document.getElementById('apProductGrid');\n      const emptyState = document.getElementById('apEmptyState');\n      const searchInput = document.getElementById('apSearchInput');\n      const filterChips = document.querySelectorAll('#apFilterChips .ap-chip');\n\n      const mainImage = document.getElementById('apMainImage');\n      const thumbsWrap = document.getElementById('apThumbs');\n      const productTitle = document.getElementById('apProductTitle');\n      const productSubtitle = document.getElementById('apProductSubtitle');\n      const productPrice = document.getElementById('apProductPrice');\n      const productDescription = document.getElementById('apProductDescription');\n      const featureList = document.getElementById('apFeatureList');\n      const specsList = document.getElementById('apSpecs');\n      const similarGrid = document.getElementById('apSimilarGrid');\n      const similarSlider = document.getElementById('apSimilarSlider');\n      const similarPrev = document.getElementById('apSimilarPrev');\n      const similarNext = document.getElementById('apSimilarNext');\n      const backBtn = document.getElementById('apBackToCatalog');\n      const addToCartBtn = document.getElementById('apAddToCart');\n      const stockStatus = document.getElementById('apStockStatus');\n      const variantWrap = document.getElementById('apProductOptionWrap');\n      const variantSelect = document.getElementById('apVariantSelect');\n      const modelOptionWrap = document.getElementById('apModelOptionWrap');\n      const modelGrid = document.getElementById('apModelGrid');\n      const colorOptionWrap = document.getElementById('apColorOptionWrap');\n      const colorGrid = document.getElementById('apColorGrid');\n\n      const cartToggle = document.getElementById('apCartToggle');\nconst storeActions = document.querySelector('#ap-store-shell .ap-store-actions');\n      const cartCount = document.getElementById('apCartCount');\n      const cartDrawer = document.getElementById('apCartDrawer');\n      const cartBackdrop = document.getElementById('apCartBackdrop');\n      const cartClose = document.getElementById('apCartClose');\n      const cartItems = document.getElementById('apCartItems');\n      const cartTotal = document.getElementById('apCartTotal');\n      const clearCartBtn = document.getElementById('apClearCart');\n      const goCheckoutBtn = document.getElementById('apGoCheckout');\n\n let currentFilter = 'all';\nlet currentSearch = '';\nlet currentProduct = null;\nlet currentSelectedModel = null;\nlet currentSelectedColor = null;\nlet currentSelectedColorData = null;\nlet similarAutoTimer = null;\nlet similarIndex = 0;\nlet similarVisible = 4;\n\n\/* BLOKADA SPRZEDA\u017bY - NA TEN MOMENT WSZYSTKO NIEDOST\u0118PNE *\/\nconst AP_STORE_GLOBALLY_DISABLED = true;\n\n      function getSimilarVisibleCount(){\n        if(window.innerWidth <= 620) return 1;\n        if(window.innerWidth <= 860) return 2;\n        if(window.innerWidth <= 1180) return 3;\n        return 4;\n      }\n\n      function buildSimilarSlides(items){\n        return items.map(item => `\n          <article class=\"ap-similar-slide\">\n            <div class=\"ap-similar-card\">\n              <a href=\"#produkt\/${item.slug}\">\n                <div class=\"ap-similar-media\">\n                  <img decoding=\"async\" src=\"${item.cover}\" alt=\"${item.title}\">\n                <\/div>\n                <div class=\"ap-similar-body\">\n                  <h4>${item.title}<\/h4>\n                  <p>${item.price}<\/p>\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/article>\n        `).join('');\n      }\n\n      function updateSimilarPosition(animate = true){\n        const track = similarGrid;\n        if(!track) return;\n\n        const firstSlide = track.querySelector('.ap-similar-slide');\n        if(!firstSlide) return;\n\n        track.style.transition = animate ? 'transform .55s cubic-bezier(.22,.61,.36,1)' : 'none';\n\n        const gap = 16;\n        const slideWidth = firstSlide.getBoundingClientRect().width + gap;\n        track.style.transform = `translateX(-${similarIndex * slideWidth}px)`;\n      }\n\n      function startSimilarAutoplay(){\n        stopSimilarAutoplay();\n        similarAutoTimer = setInterval(() => {\n          moveSimilarNext();\n        }, 2500);\n      }\n\n      function stopSimilarAutoplay(){\n        if(similarAutoTimer){\n          clearInterval(similarAutoTimer);\n          similarAutoTimer = null;\n        }\n      }\n\n      function moveSimilarNext(){\n        const slides = similarGrid.querySelectorAll('.ap-similar-slide');\n        if(!slides.length) return;\n\n        similarIndex += 1;\n        updateSimilarPosition(true);\n\n        const total = slides.length;\n        const resetPoint = total - (similarVisible * 2);\n\n        if(similarIndex > resetPoint){\n          setTimeout(() => {\n            similarIndex = similarVisible;\n            updateSimilarPosition(false);\n          }, 560);\n        }\n      }\n\n      function moveSimilarPrev(){\n        const slides = similarGrid.querySelectorAll('.ap-similar-slide');\n        if(!slides.length) return;\n\n        similarIndex -= 1;\n        updateSimilarPosition(true);\n\n        if(similarIndex < similarVisible){\n          setTimeout(() => {\n            const total = slides.length;\n            similarIndex = total - (similarVisible * 2) - 1;\n            updateSimilarPosition(false);\n          }, 560);\n        }\n      }\n\n      function initSimilarCarousel(baseItems){\n        if(!baseItems || !baseItems.length) return;\n\n        similarVisible = getSimilarVisibleCount();\n\n        const clonedStart = baseItems.slice(-similarVisible);\n        const clonedEnd = baseItems.slice(0, similarVisible);\n        const loopItems = [...clonedStart, ...baseItems, ...clonedEnd];\n\n        similarGrid.innerHTML = buildSimilarSlides(loopItems);\n        similarIndex = similarVisible;\n        updateSimilarPosition(false);\n\n        stopSimilarAutoplay();\n        startSimilarAutoplay();\n      }\n\n      function loadCart(){\n        try{\n          return JSON.parse(localStorage.getItem('apStoreCart') || '[]');\n        }catch(e){\n          return [];\n        }\n      }\n\n      function saveCart(cart){\n        localStorage.setItem('apStoreCart', JSON.stringify(cart));\n      }\n\n      function openCart(){\n        cartDrawer.classList.add('is-open');\n        cartDrawer.setAttribute('aria-hidden', 'false');\n      }\n\n      function closeCart(){\n        cartDrawer.classList.remove('is-open');\n        cartDrawer.setAttribute('aria-hidden', 'true');\n      }\n\n      function formatPrice(value){\n        return `${Number(value).toFixed(0)} z\u0142`;\n      }\n\n      function getSelectedVariant(product){\n        if(product.variants && product.variants.length){\n          const idx = Number(variantSelect.value || 0);\n          return product.variants[idx] || product.variants[0];\n        }\n        return null;\n      }\n\n      function getSelectedModel(product){\n        if(product.modelOptions && product.modelOptions.length){\n          return currentSelectedModel || null;\n        }\n        return null;\n      }\n\n      function getSelectedColor(product){\n        if(product.colors && product.colors.length){\n          return currentSelectedColorData || null;\n        }\n        return null;\n      }\n\n      function getActiveImages(product){\n        const selectedColor = getSelectedColor(product);\n        if(selectedColor && selectedColor.images && selectedColor.images.length){\n          return selectedColor.images;\n        }\n        return product.images || [];\n      }\n\n      function getActiveCover(product){\n        const selectedColor = getSelectedColor(product);\n        if(selectedColor && selectedColor.cover){\n          return selectedColor.cover;\n        }\n        return product.cover;\n      }\n\n      function renderGallery(images, title){\n        if(!images || !images.length) return;\n\n        mainImage.src = images[0];\n        mainImage.alt = title;\n\n        thumbsWrap.innerHTML = '';\n        images.forEach((img, idx) => {\n          const btn = document.createElement('button');\n          btn.type = 'button';\n          btn.className = 'ap-thumb' + (idx === 0 ? ' is-active' : '');\n          btn.innerHTML = `<img decoding=\"async\" src=\"${img}\" alt=\"${title} ${idx+1}\">`;\n          btn.addEventListener('click', () => {\n            mainImage.src = img;\n            mainImage.alt = `${title} ${idx+1}`;\n            thumbsWrap.querySelectorAll('.ap-thumb').forEach(t => t.classList.remove('is-active'));\n            btn.classList.add('is-active');\n          });\n          thumbsWrap.appendChild(btn);\n        });\n      }\n\n      function renderColorOptions(product){\n        currentSelectedColor = null;\n        currentSelectedColorData = null;\n\n        if(product.colors && product.colors.length){\n          colorOptionWrap.style.display = 'block';\n          colorGrid.innerHTML = product.colors.map(color => `\n            <button type=\"button\" class=\"ap-color-btn\" data-color-option=\"${color.name}\">\n              <span class=\"ap-color-dot\" style=\"background:${color.hex};\"><\/span>\n              <span class=\"ap-color-name\">${color.name}<\/span>\n            <\/button>\n          `).join('');\n\n          currentSelectedColor = product.colors[0].name;\n          currentSelectedColorData = product.colors[0];\n\n          const firstBtn = colorGrid.querySelector('.ap-color-btn');\n          if(firstBtn){\n            firstBtn.classList.add('is-active');\n          }\n        }else{\n          colorOptionWrap.style.display = 'none';\n          colorGrid.innerHTML = '';\n        }\n      }\n\n      function applySelectedColor(product, colorName){\n  if(!(product.colors && product.colors.length)) return;\n\n  const found = product.colors.find(c => c.name === colorName);\n  if(!found) return;\n\n  currentSelectedColor = found.name;\n  currentSelectedColorData = found;\n\n  colorGrid.querySelectorAll('.ap-color-btn').forEach(btn => {\n    btn.classList.toggle('is-active', btn.getAttribute('data-color-option') === found.name);\n  });\n\n  renderGallery(found.images, `${product.title} \u2013 ${found.name}`);\n  renderSpecs(product);\n}\nfunction isCurrentProductAvailable(){\n  if (AP_STORE_GLOBALLY_DISABLED) return false;\n  return true;\n}\n\nfunction updatePurchaseState(){\n  const available = isCurrentProductAvailable();\n\n  if(stockStatus){\n    stockStatus.textContent = available ? 'Dost\u0119pny' : 'Brak';\n    stockStatus.classList.remove('is-in', 'is-out');\n    stockStatus.classList.add(available ? 'is-in' : 'is-out');\n  }\n\n  if(addToCartBtn){\n    addToCartBtn.disabled = !available;\n    addToCartBtn.classList.toggle('is-disabled', !available);\n    addToCartBtn.textContent = available ? 'Dodaj do koszyka' : 'Chwilowo niedost\u0119pny';\n  }\n}\n\nfunction addCurrentProductToCart(){\n  if(!currentProduct) return;\n\n  if(!isCurrentProductAvailable()){\n    return;\n  }\n\n        const cart = loadCart();\n        const variant = getSelectedVariant(currentProduct);\n        const model = getSelectedModel(currentProduct);\n        const color = getSelectedColor(currentProduct);\n\n        if(currentProduct.modelOptions && currentProduct.modelOptions.length && !model){\n          alert('Wybierz model iPhone przed dodaniem produktu do koszyka.');\n          return;\n        }\n\n        if(currentProduct.colors && currentProduct.colors.length && !color){\n          alert('Wybierz kolor produktu przed dodaniem go do koszyka.');\n          return;\n        }\n\n        const itemIdParts = [currentProduct.slug];\n        if(model) itemIdParts.push(model);\n        if(color) itemIdParts.push(color.name);\n        if(variant) itemIdParts.push(variant.name);\n        const itemId = itemIdParts.join('__');\n\n        let itemName = currentProduct.title;\n        if(model) itemName += ` \u2013 ${model}`;\n        if(color) itemName += ` \u2013 ${color.name}`;\n        if(variant) itemName += ` \u2013 ${variant.name}`;\n\n        const itemPrice = variant ? variant.price : currentProduct.priceValue;\n\n        const existing = cart.find(item => item.id === itemId);\n\n        if(existing){\n          existing.qty += 1;\n        }else{\n          cart.push({\n            id: itemId,\n            slug: currentProduct.slug,\n            title: itemName,\n            baseTitle: currentProduct.title,\n            variant: variant ? variant.name : null,\n            model: model || null,\n            color: color ? color.name : null,\n            price: itemPrice,\n            qty: 1,\n            image: color && color.cover ? color.cover : currentProduct.cover\n          });\n        }\n\n        saveCart(cart);\n        renderCart();\n        openCart();\n      }\n\n      function updateCartQty(id, delta){\n        const cart = loadCart();\n        const item = cart.find(x => x.id === id);\n        if(!item) return;\n\n        item.qty += delta;\n        const updated = cart.filter(x => x.qty > 0);\n        saveCart(updated);\n        renderCart();\n      }\n\n      function removeCartItem(id){\n        const cart = loadCart().filter(x => x.id !== id);\n        saveCart(cart);\n        renderCart();\n      }\n\n      function renderCart(){\n        const cart = loadCart();\n        cartCount.textContent = cart.reduce((sum, item) => sum + item.qty, 0);\n\n        if(!cart.length){\n          cartItems.innerHTML = `<div class=\"ap-cart-empty\">Koszyk jest pusty.<\/div>`;\n          cartTotal.textContent = '0 z\u0142';\n          return;\n        }\n\n        cartItems.innerHTML = cart.map(item => `\n          <div class=\"ap-cart-item\">\n            <div class=\"ap-cart-item-media\">\n              <img decoding=\"async\" src=\"${item.image}\" alt=\"${item.title}\">\n            <\/div>\n            <div class=\"ap-cart-item-info\">\n              <h4>${item.title}<\/h4>\n              <p>\n                ${item.model ? `Model: ${item.model}` : ''}\n                ${item.model && item.color ? ' \u2022 ' : ''}\n                ${item.color ? `Kolor: ${item.color}` : ''}\n                ${(item.model || item.color) && item.variant ? ' \u2022 ' : ''}\n                ${item.variant ? `Wariant: ${item.variant}` : (!item.model && !item.color ? 'Produkt podstawowy' : '')}\n              <\/p>\n            <\/div>\n            <div class=\"ap-cart-item-side\">\n              <div class=\"ap-cart-item-price\">${formatPrice(item.price * item.qty)}<\/div>\n              <div class=\"ap-qty-wrap\">\n                <button type=\"button\" class=\"ap-qty-btn\" data-cart-minus=\"${item.id}\" aria-label=\"Zmniejsz ilo\u015b\u0107\">\n                  <span>-<\/span>\n                <\/button>\n                <span class=\"ap-qty-val\">${item.qty}<\/span>\n                <button type=\"button\" class=\"ap-qty-btn\" data-cart-plus=\"${item.id}\" aria-label=\"Zwi\u0119ksz ilo\u015b\u0107\">\n                  <span>+<\/span>\n                <\/button>\n              <\/div>\n              <button type=\"button\" class=\"ap-remove-btn\" data-cart-remove=\"${item.id}\">Usu\u0144<\/button>\n            <\/div>\n          <\/div>\n        `).join('');\n\n        const total = cart.reduce((sum, item) => sum + item.price * item.qty, 0);\n        cartTotal.textContent = formatPrice(total);\n      }\n\n      function mapTag(tag){\n        const map = {\n          ochrona: 'Ochrona',\n          zasilanie: 'Zasilanie',\n          iPhone: 'iPhone',\n          telefony: 'Telefony'\n        };\n        return map[tag] || tag;\n      }\n\n\n      function getCardExcerpt(product){\n        const text = String(product?.excerpt || '')\n          .replace(\/\\s+\/g, ' ')\n          .trim();\n\n        const maxLength = 180;\n\n        if(text.length <= maxLength){\n          return text;\n        }\n\n        const fragment = text.slice(0, maxLength);\n\n        \/* Je\u017celi w pobli\u017cu ko\u0144ca jest pe\u0142ne zdanie \u2014 zako\u0144cz na nim. *\/\n        const sentenceEnd = Math.max(\n          fragment.lastIndexOf('. '),\n          fragment.lastIndexOf('! '),\n          fragment.lastIndexOf('? ')\n        );\n\n        if(sentenceEnd >= 85){\n          return fragment.slice(0, sentenceEnd + 1).trim();\n        }\n\n        \/* W przeciwnym razie utnij na pe\u0142nym s\u0142owie i dodaj wielokropek. *\/\n        const lastSpace = fragment.lastIndexOf(' ');\n        const cut = lastSpace > 90 ? fragment.slice(0, lastSpace) : fragment;\n\n        return cut.replace(\/[\\s,;:\u2013\u2014-]+$\/g, '') + '\u2026';\n      }\n\n      function renderCatalog(){\n        productGrid.innerHTML = '';\n        const filtered = products.filter(product => {\n          const matchFilter = currentFilter === 'all' || product.category.includes(currentFilter);\n          const haystack = [\n            product.title,\n            product.excerpt,\n            product.category.join(' ')\n          ].join(' ').toLowerCase();\n          const matchSearch = haystack.includes(currentSearch.toLowerCase());\n          return matchFilter && matchSearch;\n        });\n\n        emptyState.classList.toggle('is-visible', filtered.length === 0);\n\n        filtered.forEach((product, index) => {\n          const article = document.createElement('article');\n          article.className = 'ap-card ap-reveal';\n          article.style.transitionDelay = Math.min(index * 45, 225) + 'ms';\n          article.innerHTML = `\n            <a href=\"#produkt\/${product.slug}\" class=\"ap-card-link\" data-product-link=\"${product.slug}\">\n              <div class=\"ap-card-media\">\n                <span class=\"ap-badge\">${product.badge}<\/span>\n                <img decoding=\"async\" src=\"${product.cover}\" alt=\"${product.title}\">\n              <\/div>\n              <div class=\"ap-card-body\">\n                <h3 class=\"ap-card-title\">${product.title}<\/h3>\n                <p class=\"ap-card-desc\">${getCardExcerpt(product)}<\/p>\n                <div class=\"ap-card-meta\">\n                  ${product.category.map(tag => `<span class=\"ap-tag\">${mapTag(tag)}<\/span>`).join('')}\n                <\/div>\n                <div class=\"ap-card-bottom\">\n                  <div class=\"ap-card-price\">\n                    <strong>${product.price}<\/strong>\n                    <span>${product.priceNote}<\/span>\n                  <\/div>\n                  <span class=\"ap-arrow\">\u2192<\/span>\n                <\/div>\n              <\/div>\n            <\/a>\n          `;\n          productGrid.appendChild(article);\n        });\n\n        initReveal();\n      }\n\n      function setActiveFilter(filter){\n        currentFilter = filter;\n        filterChips.forEach(btn => {\n          btn.classList.toggle('is-active', btn.dataset.filter === filter);\n        });\n        renderCatalog();\n      }\n\n      function showCatalog(){\n        catalogPage.classList.add('is-active');\n        productPage.classList.remove('is-active');\n        window.scrollTo({top:0, behavior:'smooth'});\n      }\n\n      function showProduct(slug){\n        const product = products.find(item => item.slug === slug);\n        if(!product){\n          showCatalog();\n          return;\n        }\n\n        currentProduct = product;\n        currentSelectedModel = null;\n        currentSelectedColor = null;\n        currentSelectedColorData = null;\n\n        catalogPage.classList.remove('is-active');\n        productPage.classList.add('is-active');\n\n        productTitle.textContent = product.title;\n        productSubtitle.textContent = product.subtitle;\n        productPrice.innerHTML = `${product.price} <span>${product.priceNote}<\/span>`;\n\n        if(product.variants && product.variants.length){\n          variantWrap.style.display = 'block';\n          variantSelect.innerHTML = product.variants.map((variant, index) => `\n            <option value=\"${index}\">${variant.name} \u2014 ${formatPrice(variant.price)}<\/option>\n          `).join('');\n        }else{\n          variantWrap.style.display = 'none';\n          variantSelect.innerHTML = '';\n        }\n\n        if(product.modelOptions && product.modelOptions.length){\n          modelOptionWrap.style.display = 'block';\n          modelGrid.innerHTML = product.modelOptions.map(model => `\n            <button type=\"button\" class=\"ap-model-btn\" data-model-option=\"${model}\">\n              ${model}\n            <\/button>\n          `).join('');\n          modelGrid.scrollTop = 0;\n        }else{\n          modelOptionWrap.style.display = 'none';\n          modelGrid.innerHTML = '';\n        }\n\n        renderColorOptions(product);\n\n        const activeImages = getActiveImages(product);\n        renderGallery(activeImages, product.title);\n\n        productDescription.innerHTML = product.description.map(p => `<p>${p}<\/p>`).join('');\n\n        featureList.innerHTML = product.features.map(item => `\n          <div class=\"ap-feature\">\n            <strong>${item[0]}<\/strong>\n            <span>${item[1]}<\/span>\n          <\/div>\n        `).join('');\n\nrenderSpecs(product);\n\nconst similar = products.filter(item => item.slug !== product.slug);\ninitSimilarCarousel(similar);\n\nupdatePurchaseState();\ninitReveal();\nwindow.scrollTo({top:0, behavior:'smooth'});\n      }\n\n      function router(){\n        const hash = window.location.hash || '#katalog';\n\n        if(hash.startsWith('#produkt\/')){\n          const rawSlug = hash.replace('#produkt\/','').trim();\n          const slug = decodeURIComponent(rawSlug);\n          showProduct(slug);\n        } else {\n          showCatalog();\n        }\n      }\n\n      function initReveal(){\n        const items = document.querySelectorAll('#ap-store-shell .ap-reveal:not([data-reveal-ready])');\n        if(!items.length) return;\n\n        const observer = new IntersectionObserver((entries) => {\n          entries.forEach(entry => {\n            if(entry.isIntersecting){\n              entry.target.classList.add('is-visible');\n              observer.unobserve(entry.target);\n            }\n          });\n        }, {\n          threshold: 0.14\n        });\n\n        items.forEach(item => {\n          item.setAttribute('data-reveal-ready', '1');\n          observer.observe(item);\n        });\n      }\n\n      filterChips.forEach(btn => {\n        btn.addEventListener('click', () => setActiveFilter(btn.dataset.filter));\n      });\n\n      searchInput.addEventListener('input', (e) => {\n        currentSearch = e.target.value || '';\n        renderCatalog();\n      });\n\n      backBtn.addEventListener('click', () => {\n        window.location.hash = '#katalog';\n      });\n\n      addToCartBtn.addEventListener('click', addCurrentProductToCart);\n\n      cartToggle.addEventListener('click', openCart);\n      cartClose.addEventListener('click', closeCart);\n      cartBackdrop.addEventListener('click', closeCart);\n\n      clearCartBtn.addEventListener('click', () => {\n        localStorage.removeItem('apStoreCart');\n        renderCart();\n      });\nfunction getDynamicProductCode(product){\n  if(!product) return '';\n\n  const baseCodeRow = (product.specs || []).find(item => item[0] === 'Kod produktu');\n  const baseCode = baseCodeRow ? baseCodeRow[1] : '';\n\n  const selectedModel = getSelectedModel(product);\n  const selectedColor = getSelectedColor(product);\n\n  if(!selectedModel && !selectedColor){\n    return baseCode;\n  }\n\n  const baseParts = baseCode.split('-');\n\n  if(baseParts.length < 4){\n    return baseCode;\n  }\n\n  const basePrefix = baseParts.slice(0, 3).join('-');\n  const productType = baseParts[3];\n\n  const modelCode = selectedModel ? (iphoneModelCodes[selectedModel] || selectedModel) : null;\n  const colorCode = selectedColor ? (selectedColor.codeSuffix || selectedColor.code || selectedColor.name) : null;\n\n  const finalParts = [basePrefix, productType];\n\n  if(modelCode) finalParts.push(modelCode);\n  if(colorCode) finalParts.push(colorCode);\n\n  return finalParts.join('-');\n}\n\ngoCheckoutBtn.addEventListener('click', () => {\n  return;\n});\n\n      similarNext.addEventListener('click', () => {\n        moveSimilarNext();\n        startSimilarAutoplay();\n      });\n\n      similarPrev.addEventListener('click', () => {\n        moveSimilarPrev();\n        startSimilarAutoplay();\n      });\n\n      similarSlider.addEventListener('mouseenter', stopSimilarAutoplay);\n      similarSlider.addEventListener('mouseleave', startSimilarAutoplay);\n      similarSlider.addEventListener('touchstart', stopSimilarAutoplay, { passive: true });\n      similarSlider.addEventListener('touchend', startSimilarAutoplay, { passive: true });\n\n      window.addEventListener('resize', () => {\n        if(currentProduct){\n          const similar = products.filter(item => item.slug !== currentProduct.slug);\n          initSimilarCarousel(similar);\n        }\n      });\n\n      document.addEventListener('click', (e) => {\n        const modelBtn = e.target.closest('[data-model-option]');\nif(modelBtn){\n  currentSelectedModel = modelBtn.getAttribute('data-model-option');\n\n  modelGrid.querySelectorAll('.ap-model-btn').forEach(btn => {\n    btn.classList.remove('is-active');\n  });\n\n  modelBtn.classList.add('is-active');\n\n  if(currentProduct){\n    renderSpecs(currentProduct);\n  }\n}\n\n        const colorBtn = e.target.closest('[data-color-option]');\n        if(colorBtn && currentProduct){\n          const colorName = colorBtn.getAttribute('data-color-option');\n          applySelectedColor(currentProduct, colorName);\n        }\n\n        const plusBtn = e.target.closest('[data-cart-plus]');\n        if(plusBtn){\n          updateCartQty(plusBtn.getAttribute('data-cart-plus'), 1);\n        }\n\n        const minusBtn = e.target.closest('[data-cart-minus]');\n        if(minusBtn){\n          updateCartQty(minusBtn.getAttribute('data-cart-minus'), -1);\n        }\n\n        const removeBtn = e.target.closest('[data-cart-remove]');\n        if(removeBtn){\n          removeCartItem(removeBtn.getAttribute('data-cart-remove'));\n        }\n      });\n\n      window.addEventListener('hashchange', router);\n\n    renderCatalog();\n    renderCart();\n    router();\n    initReveal();\n\n    requestAnimationFrame(() => {\n      requestAnimationFrame(() => {\n        if(storeActions){\n          storeActions.classList.add('is-visible');\n        }\n      });\n    });\n  })();\n<\/script>\n<\/section>\n\n\n\n<!-- =========================================================\nAPPLEPOINT \u2014 KONTAKT + STOPKA PREMIUM V1\nOSOBNY BLOK HTML\n\nDopasowany wizualnie do HOME MASTER:\n- t\u0142o #f5f5f7\n- czarny + limonka\n- bia\u0142e karty\n- dark footer\n- animacje wej\u015bcia \/ hover\n- pe\u0142na responsywno\u015b\u0107\n\nWA\u017bNE:\n1) Ten blok ma ZAST\u0104PI\u0106 obecn\u0105 sekcj\u0119 \"Odwied\u017a nas...\" + obecn\u0105 stopk\u0119.\n2) Dane kontaktowe s\u0105 ju\u017c ustawione na:\n   Plac Wolno\u015bci 21, 98-220 Zdu\u0144ska Wola\n   518 900 318\n   kontakt@applepointfix.pl\n   pn-pt 09:00-20:00, sob 09:00-18:00, ndz zamkni\u0119te\n3) Linki social mo\u017cesz podmieni\u0107 w HTML na swoje dok\u0142adne URL.\n========================================================= -->\n\n<section id=\"ap-contact-footer-v1\">\n\n<style>\n#ap-contact-footer-v1,\n#ap-contact-footer-v1 *{\n  box-sizing:border-box;\n}\n\n#ap-contact-footer-v1{\n  --bg:#f5f5f7;\n  --ink:#18212b;\n  --muted:#69717b;\n  --line:#e5e7e9;\n  --green:#cdef61;\n  --green-dark:#8eaf24;\n  --white:#fff;\n  --dark:#0b1118;\n  --dark2:#0f1722;\n\n  width:100vw;\n  max-width:none!important;\n  margin-left:calc(50% - 50vw)!important;\n  margin-right:calc(50% - 50vw)!important;\n  background:var(--bg);\n  color:var(--ink);\n\n  font-family:\n    -apple-system,\n    BlinkMacSystemFont,\n    \"SF Pro Display\",\n    \"SF Pro Text\",\n    \"Helvetica Neue\",\n    Arial,\n    sans-serif;\n\n  -webkit-font-smoothing:antialiased;\n  text-rendering:optimizeLegibility;\n}\n\n\/* reset typowych wrapper\u00f3w WP\/Kadence *\/\nbody .wp-block-html:has(#ap-contact-footer-v1),\nbody .wp-block-group:has(#ap-contact-footer-v1),\nbody .wp-block-kadence-rowlayout:has(#ap-contact-footer-v1),\nbody .kb-row-layout-wrap:has(#ap-contact-footer-v1),\nbody .kt-row-layout-wrap:has(#ap-contact-footer-v1),\nbody .kt-row-column-wrap:has(#ap-contact-footer-v1),\nbody .kt-inside-inner-col:has(#ap-contact-footer-v1){\n  width:100%!important;\n  max-width:none!important;\n  margin:0!important;\n  padding:0!important;\n  background:transparent!important;\n  border:0!important;\n  box-shadow:none!important;\n}\n\n\/* =========================================\n   REVEAL\n   ========================================= *\/\n\n#ap-contact-footer-v1 .ap-cf-reveal{\n  opacity:0;\n  transform:translateY(22px);\n  filter:blur(3px);\n\n  transition:\n    opacity .78s cubic-bezier(.22,1,.36,1),\n    transform .78s cubic-bezier(.22,1,.36,1),\n    filter .78s cubic-bezier(.22,1,.36,1);\n\n  transition-delay:var(--delay,0ms);\n}\n\n#ap-contact-footer-v1 .ap-cf-reveal.is-visible{\n  opacity:1;\n  transform:none;\n  filter:none;\n}\n\n\/* =========================================\n   KONTAKT\n   ========================================= *\/\n\n#ap-contact-footer-v1 .ap-contact{\n  position:relative;\n  padding:clamp(90px,10vh,132px) 22px clamp(96px,10vh,128px);\n  overflow:hidden;\n}\n\n#ap-contact-footer-v1 .ap-contact::before{\n  content:\"\";\n  position:absolute;\n  width:520px;\n  height:520px;\n  right:-180px;\n  top:-170px;\n  border-radius:50%;\n  pointer-events:none;\n\n  background:\n    radial-gradient(circle,\n      rgba(205,239,97,.16),\n      rgba(205,239,97,0) 69%);\n\n  filter:blur(24px);\n}\n\n#ap-contact-footer-v1 .ap-contact-inner{\n  position:relative;\n  z-index:1;\n  width:min(1220px,calc(100vw - 44px));\n  margin:0 auto;\n}\n\n#ap-contact-footer-v1 .ap-contact-head{\n  display:grid;\n  grid-template-columns:minmax(0,1fr) auto;\n  gap:34px;\n  align-items:end;\n  margin-bottom:38px;\n}\n\n#ap-contact-footer-v1 .ap-contact-badge{\n  display:inline-flex;\n  align-items:center;\n  gap:9px;\n  min-height:38px;\n  margin-bottom:18px;\n  padding:0 14px;\n\n  border:1px solid #dceba9;\n  border-radius:999px;\n  background:rgba(255,255,255,.8);\n\n  color:#111;\n  font-size:12px;\n  line-height:1;\n  font-weight:760;\n}\n\n#ap-contact-footer-v1 .ap-contact-badge::before{\n  content:\"\";\n  width:7px;\n  height:7px;\n  border-radius:50%;\n  background:var(--green);\n  box-shadow:0 0 0 5px rgba(205,239,97,.16);\n}\n\n#ap-contact-footer-v1 .ap-contact-title{\n  max-width:760px;\n  margin:0;\n  color:var(--ink);\n\n  font-size:clamp(44px,4.4vw,68px);\n  line-height:.98;\n  letter-spacing:-.06em;\n  font-weight:820;\n}\n\n#ap-contact-footer-v1 .ap-contact-sub{\n  max-width:590px;\n  margin:18px 0 0;\n\n  color:#626b75;\n  font-size:17px;\n  line-height:1.65;\n  font-weight:480;\n}\n\n#ap-contact-footer-v1 .ap-contact-head-side{\n  max-width:250px;\n  padding-bottom:8px;\n  color:#707780;\n  font-size:13px;\n  line-height:1.6;\n  text-align:right;\n}\n\n\/* kontakt grid *\/\n\n#ap-contact-footer-v1 .ap-contact-grid{\n  display:grid;\n  grid-template-columns:minmax(0,.88fr) minmax(520px,1.12fr);\n  gap:20px;\n  align-items:stretch;\n}\n\n#ap-contact-footer-v1 .ap-contact-card,\n#ap-contact-footer-v1 .ap-map-card{\n  border:1px solid rgba(24,33,43,.07);\n  border-radius:30px;\n  background:#fff;\n\n  box-shadow:\n    0 15px 44px rgba(24,33,43,.055);\n\n  overflow:hidden;\n}\n\n#ap-contact-footer-v1 .ap-contact-card{\n  padding:34px;\n  display:flex;\n  flex-direction:column;\n  min-height:570px;\n}\n\n#ap-contact-footer-v1 .ap-contact-top{\n  display:grid;\n  gap:14px;\n}\n\n#ap-contact-footer-v1 .ap-contact-row{\n  display:grid;\n  grid-template-columns:46px minmax(0,1fr);\n  gap:14px;\n  align-items:center;\n\n  min-height:62px;\n  padding:8px 0;\n}\n\n#ap-contact-footer-v1 .ap-contact-icon{\n  width:46px;\n  height:46px;\n  display:grid;\n  place-items:center;\n\n  border-radius:15px;\n  background:#f5f6f7;\n  color:#111;\n\n  transition:\n    transform .25s ease,\n    background .25s ease;\n}\n\n#ap-contact-footer-v1 .ap-contact-row:hover .ap-contact-icon{\n  transform:translateY(-3px);\n  background:#eef5d6;\n}\n\n#ap-contact-footer-v1 .ap-contact-icon svg{\n  width:21px;\n  height:21px;\n  fill:none;\n  stroke:currentColor;\n  stroke-width:1.8;\n  stroke-linecap:round;\n  stroke-linejoin:round;\n}\n\n#ap-contact-footer-v1 .ap-contact-row strong{\n  display:block;\n  margin-bottom:4px;\n\n  color:var(--ink);\n  font-size:15px;\n  line-height:1.2;\n  font-weight:760;\n}\n\n#ap-contact-footer-v1 .ap-contact-row span,\n#ap-contact-footer-v1 .ap-contact-row a{\n  color:#68717a;\n  font-size:14px;\n  line-height:1.45;\n  font-weight:480;\n  text-decoration:none;\n}\n\n#ap-contact-footer-v1 .ap-contact-row a:hover{\n  color:#111;\n}\n\n\/* godziny *\/\n\n#ap-contact-footer-v1 .ap-hours{\n  margin-top:24px;\n  padding:24px;\n\n  border:1px solid rgba(24,33,43,.055);\n  border-radius:22px;\n  background:#f6f6f8;\n}\n\n#ap-contact-footer-v1 .ap-hours-title{\n  display:flex;\n  align-items:center;\n  gap:10px;\n  margin-bottom:15px;\n\n  color:var(--ink);\n  font-size:15px;\n  font-weight:760;\n}\n\n#ap-contact-footer-v1 .ap-hours-title svg{\n  width:18px;\n  height:18px;\n  fill:none;\n  stroke:currentColor;\n  stroke-width:1.8;\n}\n\n#ap-contact-footer-v1 .ap-hours-list{\n  display:grid;\n  gap:0;\n}\n\n#ap-contact-footer-v1 .ap-hours-row{\n  display:flex;\n  justify-content:space-between;\n  gap:20px;\n\n  padding:11px 0;\n  border-bottom:1px solid rgba(24,33,43,.06);\n\n  color:#5f6770;\n  font-size:13.5px;\n  line-height:1.25;\n}\n\n#ap-contact-footer-v1 .ap-hours-row:last-child{\n  border-bottom:0;\n}\n\n#ap-contact-footer-v1 .ap-hours-row strong{\n  color:var(--ink);\n  font-weight:700;\n}\n\n#ap-contact-footer-v1 .ap-hours-row.closed span,\n#ap-contact-footer-v1 .ap-hours-row.closed strong{\n  color:#8eaf24;\n}\n\n#ap-contact-footer-v1 .ap-weekend-note{\n  margin:15px 0 0;\n  color:#7b828a;\n  font-size:11.5px;\n  line-height:1.5;\n}\n\n\/* CTA *\/\n\n#ap-contact-footer-v1 .ap-contact-actions{\n  display:flex;\n  flex-wrap:wrap;\n  gap:10px;\n  margin-top:auto;\n  padding-top:24px;\n}\n\n#ap-contact-footer-v1 .ap-contact-btn{\n  min-height:50px;\n  padding:0 20px;\n\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  gap:9px;\n\n  border:1px solid rgba(24,33,43,.09);\n  border-radius:999px;\n\n  color:var(--ink)!important;\n  background:#fff;\n  text-decoration:none!important;\n\n  font-size:13px;\n  line-height:1;\n  font-weight:740;\n\n  transition:\n    transform .23s ease,\n    background .23s ease,\n    box-shadow .23s ease,\n    border-color .23s ease;\n}\n\n#ap-contact-footer-v1 .ap-contact-btn.primary{\n  background:#111;\n  border-color:#111;\n  color:#fff!important;\n  box-shadow:0 10px 24px rgba(17,17,17,.12);\n}\n\n#ap-contact-footer-v1 .ap-contact-btn:hover{\n  transform:translateY(-3px);\n  border-color:#d8e99e;\n  box-shadow:0 12px 26px rgba(24,33,43,.08);\n}\n\n#ap-contact-footer-v1 .ap-contact-btn.primary:hover{\n  background:#252525;\n}\n\n\/* mapa *\/\n\n#ap-contact-footer-v1 .ap-map-card{\n  position:relative;\n  min-height:570px;\n  background:#e9ecef;\n}\n\n#ap-contact-footer-v1 .ap-map-card iframe{\n  position:absolute;\n  inset:0;\n  width:100%;\n  height:100%;\n  border:0;\n  filter:saturate(.85) contrast(.97);\n}\n\n#ap-contact-footer-v1 .ap-map-overlay{\n  position:absolute;\n  z-index:2;\n  left:22px;\n  bottom:22px;\n\n  max-width:330px;\n  padding:16px 18px;\n\n  border:1px solid rgba(24,33,43,.08);\n  border-radius:18px;\n\n  background:rgba(255,255,255,.94);\n  backdrop-filter:blur(14px);\n  -webkit-backdrop-filter:blur(14px);\n\n  box-shadow:0 14px 32px rgba(24,33,43,.10);\n}\n\n#ap-contact-footer-v1 .ap-map-overlay strong{\n  display:block;\n  color:var(--ink);\n  font-size:15px;\n  font-weight:780;\n}\n\n#ap-contact-footer-v1 .ap-map-overlay span{\n  display:block;\n  margin-top:4px;\n  color:#707780;\n  font-size:12px;\n  line-height:1.45;\n}\n\n\/* =========================================\n   STOPKA DARK\n   ========================================= *\/\n\n#ap-contact-footer-v1 .ap-footer{\n  padding:72px 22px 26px;\n\n  background:\n    radial-gradient(circle at 12% 0%,rgba(205,239,97,.07),transparent 28%),\n    linear-gradient(145deg,#0d1620 0%,#091018 58%,#0b121a 100%);\n\n  color:#fff;\n}\n\n#ap-contact-footer-v1 .ap-footer-inner{\n  width:min(1220px,calc(100vw - 44px));\n  margin:0 auto;\n}\n\n#ap-contact-footer-v1 .ap-footer-grid{\n  display:grid;\n  grid-template-columns:1.25fr .78fr .92fr .88fr;\n  gap:46px;\n  align-items:start;\n}\n\n#ap-contact-footer-v1 .ap-footer-brand{\n  max-width:330px;\n}\n\n#ap-contact-footer-v1 .ap-footer-logo{\n  display:flex;\n  align-items:flex-end;\n  gap:11px;\n\n  color:#fff;\n  font-size:29px;\n  line-height:1;\n  letter-spacing:-.055em;\n  font-weight:350;\n}\n\n#ap-contact-footer-v1 .ap-footer-logo strong{\n  font-weight:800;\n}\n\n#ap-contact-footer-v1 .ap-footer-logo span{\n  color:#cdef61;\n}\n\n#ap-contact-footer-v1 .ap-footer-tag{\n  padding-bottom:2px;\n  color:#86919d;\n  font-size:9px;\n  line-height:1;\n  font-weight:700;\n  letter-spacing:.16em;\n  text-transform:uppercase;\n}\n\n#ap-contact-footer-v1 .ap-footer-copy{\n  margin:20px 0 0;\n  color:#9ea7b1;\n  font-size:13px;\n  line-height:1.65;\n}\n\n#ap-contact-footer-v1 .ap-footer-contact{\n  display:grid;\n  gap:8px;\n  margin-top:20px;\n}\n\n#ap-contact-footer-v1 .ap-footer-contact a,\n#ap-contact-footer-v1 .ap-footer-contact span{\n  color:#c5cbd1;\n  font-size:12.5px;\n  line-height:1.45;\n  text-decoration:none;\n}\n\n#ap-contact-footer-v1 .ap-footer-contact a:hover{\n  color:#fff;\n}\n\n#ap-contact-footer-v1 .ap-footer-col h3{\n  margin:0 0 18px;\n  color:#fff;\n  font-size:13px;\n  line-height:1.2;\n  font-weight:760;\n}\n\n#ap-contact-footer-v1 .ap-footer-links{\n  display:grid;\n  gap:13px;\n}\n\n#ap-contact-footer-v1 .ap-footer-links a{\n  position:relative;\n  width:max-content;\n  max-width:100%;\n\n  color:#9ea7b1;\n  text-decoration:none;\n\n  font-size:12.5px;\n  line-height:1.35;\n  font-weight:470;\n\n  transition:\n    color .22s ease,\n    transform .22s ease;\n}\n\n#ap-contact-footer-v1 .ap-footer-links a::after{\n  content:\"\";\n  position:absolute;\n  left:0;\n  right:100%;\n  bottom:-3px;\n  height:1px;\n  background:var(--green);\n  transition:right .25s ease;\n}\n\n#ap-contact-footer-v1 .ap-footer-links a:hover{\n  color:#fff;\n  transform:translateX(3px);\n}\n\n#ap-contact-footer-v1 .ap-footer-links a:hover::after{\n  right:0;\n}\n\n\/* socials *\/\n\n#ap-contact-footer-v1 .ap-socials{\n  display:flex;\n  flex-wrap:wrap;\n  gap:8px;\n  margin-top:24px;\n}\n\n#ap-contact-footer-v1 .ap-social{\n  min-height:38px;\n  padding:0 14px;\n\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n\n  border:1px solid rgba(255,255,255,.09);\n  border-radius:999px;\n  background:rgba(255,255,255,.035);\n\n  color:#d8dde2!important;\n  text-decoration:none!important;\n\n  font-size:11.5px;\n  font-weight:650;\n\n  transition:\n    transform .22s ease,\n    background .22s ease,\n    border-color .22s ease;\n}\n\n#ap-contact-footer-v1 .ap-social:hover{\n  transform:translateY(-3px);\n  background:rgba(205,239,97,.07);\n  border-color:rgba(205,239,97,.28);\n}\n\n\/* footer bottom *\/\n\n#ap-contact-footer-v1 .ap-footer-bottom{\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n  gap:24px;\n\n  margin-top:58px;\n  padding-top:22px;\n\n  border-top:1px solid rgba(255,255,255,.08);\n}\n\n#ap-contact-footer-v1 .ap-footer-bottom span{\n  color:#747f8a;\n  font-size:11.5px;\n}\n\n#ap-contact-footer-v1 .ap-footer-legal{\n  display:flex;\n  gap:22px;\n}\n\n#ap-contact-footer-v1 .ap-footer-legal a{\n  color:#8d97a1!important;\n  text-decoration:none!important;\n  font-size:11.5px;\n  transition:color .2s ease;\n}\n\n#ap-contact-footer-v1 .ap-footer-legal a:hover{\n  color:#fff!important;\n}\n\n\/* =========================================\n   RESPONSIVE\n   ========================================= *\/\n\n@media(max-width:1020px){\n\n  #ap-contact-footer-v1 .ap-contact-grid{\n    grid-template-columns:1fr;\n  }\n\n  #ap-contact-footer-v1 .ap-map-card{\n    min-height:470px;\n  }\n\n  #ap-contact-footer-v1 .ap-footer-grid{\n    grid-template-columns:1.2fr 1fr 1fr;\n  }\n\n  #ap-contact-footer-v1 .ap-footer-brand{\n    grid-column:1 \/ -1;\n    max-width:560px;\n  }\n}\n\n@media(max-width:720px){\n\n  #ap-contact-footer-v1 .ap-contact{\n    padding:76px 14px 84px;\n  }\n\n  #ap-contact-footer-v1 .ap-contact-inner,\n  #ap-contact-footer-v1 .ap-footer-inner{\n    width:min(100%,calc(100vw - 24px));\n  }\n\n  #ap-contact-footer-v1 .ap-contact-head{\n    grid-template-columns:1fr;\n  }\n\n  #ap-contact-footer-v1 .ap-contact-head-side{\n    max-width:none;\n    text-align:left;\n  }\n\n  #ap-contact-footer-v1 .ap-contact-title{\n    font-size:43px;\n  }\n\n  #ap-contact-footer-v1 .ap-contact-card{\n    min-height:0;\n    padding:26px 22px;\n  }\n\n  #ap-contact-footer-v1 .ap-map-card{\n    min-height:390px;\n  }\n\n  #ap-contact-footer-v1 .ap-contact-actions{\n    align-items:stretch;\n    flex-direction:column;\n  }\n\n  #ap-contact-footer-v1 .ap-contact-btn{\n    width:100%;\n  }\n\n  #ap-contact-footer-v1 .ap-map-overlay{\n    left:14px;\n    right:14px;\n    bottom:14px;\n    max-width:none;\n  }\n\n  #ap-contact-footer-v1 .ap-footer{\n    padding:58px 14px 24px;\n  }\n\n  #ap-contact-footer-v1 .ap-footer-grid{\n    grid-template-columns:1fr 1fr;\n    gap:36px 24px;\n  }\n\n  #ap-contact-footer-v1 .ap-footer-brand{\n    grid-column:1 \/ -1;\n  }\n\n  #ap-contact-footer-v1 .ap-footer-bottom{\n    align-items:flex-start;\n    flex-direction:column;\n  }\n}\n\n@media(max-width:500px){\n\n  #ap-contact-footer-v1 .ap-footer-grid{\n    grid-template-columns:1fr;\n  }\n\n  #ap-contact-footer-v1 .ap-footer-brand{\n    grid-column:auto;\n  }\n\n  #ap-contact-footer-v1 .ap-footer-legal{\n    flex-direction:column;\n    gap:8px;\n  }\n}\n\n@media(prefers-reduced-motion:reduce){\n  #ap-contact-footer-v1 .ap-cf-reveal{\n    opacity:1!important;\n    transform:none!important;\n    filter:none!important;\n    transition:none!important;\n  }\n\n  #ap-contact-footer-v1 .ap-contact-btn,\n  #ap-contact-footer-v1 .ap-contact-icon,\n  #ap-contact-footer-v1 .ap-footer-links a,\n  #ap-contact-footer-v1 .ap-social{\n    transition:none!important;\n  }\n}\n<\/style>\n\n<!-- =========================\n     KONTAKT\n     ========================= -->\n\n<div class=\"ap-contact\">\n  <div class=\"ap-contact-inner\">\n\n    <div class=\"ap-contact-head\">\n      <div>\n        <div class=\"ap-contact-badge ap-cf-reveal\" style=\"--delay:0ms\">\n          Kontakt\n        <\/div>\n\n        <h2 class=\"ap-contact-title ap-cf-reveal\" style=\"--delay:60ms\">\n          Odwied\u017a nas<br>\n          w Zdu\u0144skiej Woli.\n        <\/h2>\n\n        <p class=\"ap-contact-sub ap-cf-reveal\" style=\"--delay:120ms\">\n          Jeste\u015bmy w centrum miasta. Mo\u017cesz przyjecha\u0107 osobi\u015bcie,\n          zadzwoni\u0107 albo wys\u0142a\u0107 urz\u0105dzenie do serwisu.\n        <\/p>\n      <\/div>\n\n      <div class=\"ap-contact-head-side ap-cf-reveal\" style=\"--delay:160ms\">\n        Plac Wolno\u015bci 21<br>\n        98-220 Zdu\u0144ska Wola\n      <\/div>\n    <\/div>\n\n    <div class=\"ap-contact-grid\">\n\n      <div class=\"ap-contact-card ap-cf-reveal\" style=\"--delay:0ms\">\n\n        <div class=\"ap-contact-top\">\n\n          <div class=\"ap-contact-row\">\n            <div class=\"ap-contact-icon\">\n              <svg viewBox=\"0 0 24 24\">\n                <path d=\"M4 10.5 12 4l8 6.5\"><\/path>\n                <path d=\"M6 9v10h12V9\"><\/path>\n                <path d=\"M9 19v-6h6v6\"><\/path>\n              <\/svg>\n            <\/div>\n            <div>\n              <strong>ApplePoint<\/strong>\n              <span>Plac Wolno\u015bci 21, 98-220 Zdu\u0144ska Wola<\/span>\n            <\/div>\n          <\/div>\n\n          <div class=\"ap-contact-row\">\n            <div class=\"ap-contact-icon\">\n              <svg viewBox=\"0 0 24 24\">\n                <path d=\"M5 4h4l2 5-3 2c1.8 3.5 4.6 6.2 8 8l2-3 5 2v4c0 1.1-.9 2-2 2C11.6 24 0 12.4 0 3c0-1.1.9-2 2-2h3\"><\/path>\n              <\/svg>\n            <\/div>\n            <div>\n              <strong>Telefon<\/strong>\n              <a href=\"tel:518900318\">518 900 318<\/a>\n            <\/div>\n          <\/div>\n\n          <div class=\"ap-contact-row\">\n            <div class=\"ap-contact-icon\">\n              <svg viewBox=\"0 0 24 24\">\n                <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"><\/rect>\n                <path d=\"m4 7 8 6 8-6\"><\/path>\n              <\/svg>\n            <\/div>\n            <div>\n              <strong>E-mail<\/strong>\n              <a href=\"mailto:kontakt@applepointfix.pl\">kontakt@applepointfix.pl<\/a>\n            <\/div>\n          <\/div>\n\n        <\/div>\n\n        <div class=\"ap-hours\">\n          <div class=\"ap-hours-title\">\n            <svg viewBox=\"0 0 24 24\">\n              <circle cx=\"12\" cy=\"12\" r=\"8\"><\/circle>\n              <path d=\"M12 7v5l3 2\"><\/path>\n            <\/svg>\n            Godziny otwarcia\n          <\/div>\n\n          <div class=\"ap-hours-list\">\n            <div class=\"ap-hours-row\">\n              <span>Poniedzia\u0142ek \u2013 Pi\u0105tek<\/span>\n              <strong>09:00 \u2013 20:00<\/strong>\n            <\/div>\n\n            <div class=\"ap-hours-row\">\n              <span>Sobota<\/span>\n              <strong>09:00 \u2013 18:00<\/strong>\n            <\/div>\n\n            <div class=\"ap-hours-row closed\">\n              <span>Niedziela<\/span>\n              <strong>Zamkni\u0119te<\/strong>\n            <\/div>\n          <\/div>\n\n          <p class=\"ap-weekend-note\">\n            Odbiory i wybrane us\u0142ugi poza standardowymi godzinami mo\u017cliwe po wcze\u015bniejszym uzgodnieniu.\n          <\/p>\n        <\/div>\n\n        <div class=\"ap-contact-actions\">\n\n          <a class=\"ap-contact-btn primary\" href=\"https:\/\/www.google.com\/maps\/search\/?api=1&amp;query=Plac+Wolno\u015bci+21,+98-220+Zdu\u0144ska+Wola\" target=\"_blank\" rel=\"noopener\">\n            Poka\u017c tras\u0119 \u2192\n          <\/a>\n\n          <a class=\"ap-contact-btn\" href=\"tel:518900318\">\n            Zadzwo\u0144\n          <\/a>\n\n          <a class=\"ap-contact-btn\" href=\"https:\/\/applepointfix.pl\/kontakt-applepoint-zdunska-wola\/\">\n            Formularz\n          <\/a>\n\n        <\/div>\n\n      <\/div>\n\n      <div class=\"ap-map-card ap-cf-reveal\" style=\"--delay:70ms\">\n\n        <iframe title=\"ApplePoint \u2013 Plac Wolno\u015bci 21, Zdu\u0144ska Wola\" loading=\"lazy\" referrerpolicy=\"no-referrer-when-downgrade\" src=\"https:\/\/www.google.com\/maps?q=Plac%20Wolno\u015bci%2021,%2098-220%20Zdu\u0144ska%20Wola&amp;output=embed\">\n        <\/iframe>\n\n        <div class=\"ap-map-overlay\">\n          <strong>ApplePoint \u00b7 centrum Zdu\u0144skiej Woli<\/strong>\n          <span>Plac Wolno\u015bci 21 \u00b7 \u0142atwy dojazd i odbi\u00f3r urz\u0105dzenia na miejscu.<\/span>\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<!-- =========================\n     STOPKA\n     ========================= -->\n\n<footer class=\"ap-footer\">\n\n  <div class=\"ap-footer-inner\">\n\n    <div class=\"ap-footer-grid\">\n\n      <div class=\"ap-footer-brand ap-cf-reveal\">\n\n        <div class=\"ap-footer-logo\">\n          <div><strong>Apple<\/strong><span>Point<\/span><\/div>\n          <div class=\"ap-footer-tag\">Premium Service<\/div>\n        <\/div>\n\n        <p class=\"ap-footer-copy\">\n          Profesjonalny serwis Apple i Android w Zdu\u0144skiej Woli.\n          Szybka diagnostyka, przejrzysta wycena i naprawy\n          prowadzone z dba\u0142o\u015bci\u0105 o ka\u017cdy detal.\n        <\/p>\n\n        <div class=\"ap-footer-contact\">\n          <span>Plac Wolno\u015bci 21, 98-220 Zdu\u0144ska Wola<\/span>\n          <a href=\"tel:518900318\">518 900 318<\/a>\n          <a href=\"mailto:kontakt@applepointfix.pl\">kontakt@applepointfix.pl<\/a>\n          <span>Pn\u2013Pt 09:00\u201320:00 \u00b7 Sob 09:00\u201318:00<\/span>\n        <\/div>\n\n        <div class=\"ap-socials\">\n          <!-- PODMIE\u0143 href NA DOK\u0141ADNE LINKI SOCIAL -->\n          <a class=\"ap-social\" href=\"https:\/\/www.instagram.com\/applepoint.pl\/\" aria-label=\"Instagram ApplePoint\">Instagram<\/a>\n          <a class=\"ap-social\" href=\"https:\/\/www.facebook.com\/ApplePointPL?locale=pl_PL\" aria-label=\"Facebook ApplePoint\">Facebook<\/a>\n          <a class=\"ap-social\" href=\"https:\/\/www.tiktok.com\/@applepointfix\" aria-label=\"TikTok ApplePoint\">TikTok<\/a>\n        <\/div>\n\n      <\/div>\n\n      <div class=\"ap-footer-col ap-cf-reveal\" style=\"--delay:50ms\">\n        <h3>Serwis ApplePoint<\/h3>\n\n        <div class=\"ap-footer-links\">\n          <a href=\"https:\/\/applepointfix.pl\/\">Strona g\u0142\u00f3wna<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/serwis-apple-zdunska-wola\/\">Serwis Apple Zdu\u0144ska Wola<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Cennik napraw<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/kontakt-applepoint-zdunska-wola\/\">Kontakt<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/sprzet-apple\/\">Sprz\u0119t Apple<\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"ap-footer-col ap-cf-reveal\" style=\"--delay:100ms\">\n        <h3>Serwis iPhone<\/h3>\n\n        <div class=\"ap-footer-links\">\n          <a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Wymiana baterii iPhone<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Wymiana wy\u015bwietlacza iPhone<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Wymiana szybki iPhone<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Naprawa po zalaniu iPhone<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Wymiana z\u0142\u0105cza \u0142adowania<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/kontakt-applepoint-zdunska-wola\/\">Diagnoza iPhone<\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"ap-footer-col ap-cf-reveal\" style=\"--delay:150ms\">\n        <h3>Inne naprawy<\/h3>\n\n        <div class=\"ap-footer-links\">\n          <a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Serwis Samsung<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Wymiana baterii Samsung<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Serwis iPad<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Serwis MacBook<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Apple Watch<\/a>\n          <a href=\"https:\/\/applepointfix.pl\/kontakt-applepoint-zdunska-wola\/\">Czyszczenie urz\u0105dze\u0144<\/a>\n        <\/div>\n      <\/div>\n\n    <\/div>\n\n    <div class=\"ap-footer-bottom\">\n\n      <span>\u00a9 2026 ApplePoint \u2014 Zdu\u0144ska Wola<\/span>\n\n      <div class=\"ap-footer-legal\">\n        <!-- je\u015bli Twoje slugi s\u0105 inne, podmie\u0144 href -->\n        <a href=\"\/polityka-prywatnosci\/\">Polityka prywatno\u015bci<\/a>\n        <a href=\"https:\/\/applepointfix.pl\/regulamin-applepointfix-zdunska-wola\/\">Regulamin serwisu<\/a>\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n<\/footer>\n\n<script>\n(function(){\n\n  const root=document.getElementById(\"ap-contact-footer-v1\");\n\n  if(!root || root.dataset.ready===\"1\") return;\n\n  root.dataset.ready=\"1\";\n\n  const items=root.querySelectorAll(\".ap-cf-reveal\");\n\n  const reduced=\n    window.matchMedia &&\n    window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n  if(\n    reduced ||\n    !(\"IntersectionObserver\" in window)\n  ){\n    items.forEach(el=>el.classList.add(\"is-visible\"));\n    return;\n  }\n\n  const observer=\n    new IntersectionObserver((entries,obs)=>{\n\n      entries.forEach(entry=>{\n\n        if(!entry.isIntersecting) return;\n\n        entry.target.classList.add(\"is-visible\");\n\n        obs.unobserve(entry.target);\n\n      });\n\n    },{\n      threshold:.08,\n      rootMargin:\"0px 0px -5% 0px\"\n    });\n\n  items.forEach(el=>observer.observe(el));\n\n})();\n<\/script>\n\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Koszyk 0 Tw\u00f3j koszyk \u2715 Razem 0 z\u0142 Wyczy\u015b\u0107 koszyk Przejd\u017a dalej Sklep Akcesoria, kt\u00f3re po prostu pasuj\u0105. Etui, szk\u0142a, kable, \u0142adowarki i wybrane akcesoria do iPhone oraz innych urz\u0105dze\u0144. Prosty wyb\u00f3r, szybka wysy\u0142ka i odbi\u00f3r w ApplePoint. Opinie Google \u00b7 ApplePoint Zdu\u0144ska Wola Google \u2605\u2605\u2605\u2605\u2605 5,0 Zobacz produkty \u2193 Odbi\u00f3r w ApplePoint Wszystkie Ochrona&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-4716","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>sklep - ApplePoint Serwis \u2013 Zdu\u0144ska Wola<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/applepointfix.pl\/en\/sklep\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"sklep - ApplePoint Serwis \u2013 Zdu\u0144ska Wola\" \/>\n<meta property=\"og:description\" content=\"Koszyk 0 Tw\u00f3j koszyk \u2715 Razem 0 z\u0142 Wyczy\u015b\u0107 koszyk Przejd\u017a dalej Sklep Akcesoria, kt\u00f3re po prostu pasuj\u0105. Etui, szk\u0142a, kable, \u0142adowarki i wybrane akcesoria do iPhone oraz innych urz\u0105dze\u0144. Prosty wyb\u00f3r, szybka wysy\u0142ka i odbi\u00f3r w ApplePoint. Opinie Google \u00b7 ApplePoint Zdu\u0144ska Wola Google \u2605\u2605\u2605\u2605\u2605 5,0 Zobacz produkty \u2193 Odbi\u00f3r w ApplePoint Wszystkie Ochrona...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/applepointfix.pl\/en\/sklep\/\" \/>\n<meta property=\"og:site_name\" content=\"ApplePoint Serwis \u2013 Zdu\u0144ska Wola\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61587246509846\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T08:46:23+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/applepointfix.pl\\\/sklep\\\/\",\"url\":\"https:\\\/\\\/applepointfix.pl\\\/sklep\\\/\",\"name\":\"sklep - ApplePoint Serwis \u2013 Zdu\u0144ska Wola\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/applepointfix.pl\\\/#website\"},\"datePublished\":\"2026-04-06T21:40:02+00:00\",\"dateModified\":\"2026-09-16T08:46:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/applepointfix.pl\\\/sklep\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/applepointfix.pl\\\/sklep\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/applepointfix.pl\\\/sklep\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/applepointfix.pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"sklep\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/applepointfix.pl\\\/#website\",\"url\":\"https:\\\/\\\/applepointfix.pl\\\/\",\"name\":\"ApplePoint Serwis\",\"description\":\"Serwis iPhone, MacBook, iPad i Android\",\"publisher\":{\"@id\":\"https:\\\/\\\/applepointfix.pl\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/applepointfix.pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/applepointfix.pl\\\/#organization\",\"name\":\"ApplePoint Serwis\",\"url\":\"https:\\\/\\\/applepointfix.pl\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/applepointfix.pl\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/applepointfix.pl\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-es-Photoroom.png\",\"contentUrl\":\"https:\\\/\\\/applepointfix.pl\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-es-Photoroom.png\",\"width\":1156,\"height\":351,\"caption\":\"ApplePoint Serwis\"},\"image\":{\"@id\":\"https:\\\/\\\/applepointfix.pl\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61587246509846\",\"https:\\\/\\\/www.instagram.com\\\/applepoint.pl\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"sklep - ApplePoint Serwis \u2013 Zdu\u0144ska Wola","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/applepointfix.pl\/en\/sklep\/","og_locale":"en_US","og_type":"article","og_title":"sklep - ApplePoint Serwis \u2013 Zdu\u0144ska Wola","og_description":"Koszyk 0 Tw\u00f3j koszyk \u2715 Razem 0 z\u0142 Wyczy\u015b\u0107 koszyk Przejd\u017a dalej Sklep Akcesoria, kt\u00f3re po prostu pasuj\u0105. Etui, szk\u0142a, kable, \u0142adowarki i wybrane akcesoria do iPhone oraz innych urz\u0105dze\u0144. Prosty wyb\u00f3r, szybka wysy\u0142ka i odbi\u00f3r w ApplePoint. Opinie Google \u00b7 ApplePoint Zdu\u0144ska Wola Google \u2605\u2605\u2605\u2605\u2605 5,0 Zobacz produkty \u2193 Odbi\u00f3r w ApplePoint Wszystkie Ochrona...","og_url":"https:\/\/applepointfix.pl\/en\/sklep\/","og_site_name":"ApplePoint Serwis \u2013 Zdu\u0144ska Wola","article_publisher":"https:\/\/www.facebook.com\/profile.php?id=61587246509846","article_modified_time":"2026-09-16T08:46:23+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/applepointfix.pl\/sklep\/","url":"https:\/\/applepointfix.pl\/sklep\/","name":"sklep - ApplePoint Serwis \u2013 Zdu\u0144ska Wola","isPartOf":{"@id":"https:\/\/applepointfix.pl\/#website"},"datePublished":"2026-04-06T21:40:02+00:00","dateModified":"2026-09-16T08:46:23+00:00","breadcrumb":{"@id":"https:\/\/applepointfix.pl\/sklep\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/applepointfix.pl\/sklep\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/applepointfix.pl\/sklep\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/applepointfix.pl\/"},{"@type":"ListItem","position":2,"name":"sklep"}]},{"@type":"WebSite","@id":"https:\/\/applepointfix.pl\/#website","url":"https:\/\/applepointfix.pl\/","name":"ApplePoint Service","description":"iPhone, MacBook, iPad and Android service","publisher":{"@id":"https:\/\/applepointfix.pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/applepointfix.pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/applepointfix.pl\/#organization","name":"ApplePoint Service","url":"https:\/\/applepointfix.pl\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/applepointfix.pl\/#\/schema\/logo\/image\/","url":"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/09\/cropped-es-Photoroom.png","contentUrl":"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/09\/cropped-es-Photoroom.png","width":1156,"height":351,"caption":"ApplePoint Serwis"},"image":{"@id":"https:\/\/applepointfix.pl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61587246509846","https:\/\/www.instagram.com\/applepoint.pl\/"]}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false},"uagb_author_info":{"display_name":"ApplePoint","author_link":"https:\/\/applepointfix.pl\/en\/author\/admin6770\/"},"uagb_comment_info":0,"uagb_excerpt":"Koszyk 0 Tw\u00f3j koszyk \u2715 Razem 0 z\u0142 Wyczy\u015b\u0107 koszyk Przejd\u017a dalej Sklep Akcesoria, kt\u00f3re po prostu pasuj\u0105. Etui, szk\u0142a, kable, \u0142adowarki i wybrane akcesoria do iPhone oraz innych urz\u0105dze\u0144. Prosty wyb\u00f3r, szybka wysy\u0142ka i odbi\u00f3r w ApplePoint. Opinie Google \u00b7 ApplePoint Zdu\u0144ska Wola Google \u2605\u2605\u2605\u2605\u2605 5,0 Zobacz produkty \u2193 Odbi\u00f3r w ApplePoint Wszystkie Ochrona...","_links":{"self":[{"href":"https:\/\/applepointfix.pl\/en\/wp-json\/wp\/v2\/pages\/4716","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/applepointfix.pl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/applepointfix.pl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/applepointfix.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/applepointfix.pl\/en\/wp-json\/wp\/v2\/comments?post=4716"}],"version-history":[{"count":229,"href":"https:\/\/applepointfix.pl\/en\/wp-json\/wp\/v2\/pages\/4716\/revisions"}],"predecessor-version":[{"id":6227,"href":"https:\/\/applepointfix.pl\/en\/wp-json\/wp\/v2\/pages\/4716\/revisions\/6227"}],"wp:attachment":[{"href":"https:\/\/applepointfix.pl\/en\/wp-json\/wp\/v2\/media?parent=4716"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}