{"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-04-09T23:13:16","modified_gmt":"2026-04-09T21:13:16","slug":"sklep","status":"publish","type":"page","link":"https:\/\/applepointfix.pl\/en\/sklep\/","title":{"rendered":"sklep"},"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  <\/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\">\n        <div class=\"ap-hero-copy\">\n          <h1>Nasze akcesoria.<\/h1>\n          <p>\n            Oferta akcesori\u00f3w ApplePoint obejmuje wybrane produkty do iPhone, iPad i innych urz\u0105dze\u0144.\n            W tej sekcji mo\u017cesz przegl\u0105da\u0107 produkty, przechodzi\u0107 do ich kart i zapoznawa\u0107 si\u0119 ze szczeg\u00f3\u0142ami.\n          <\/p>\n\n          <div class=\"ap-hero-meta\">\n            <span class=\"ap-pill\"><span class=\"ap-pill-dot\"><\/span> Etui i szk\u0142a ochronne<\/span>\n            <span class=\"ap-pill\"><span class=\"ap-pill-dot\"><\/span> Kable i \u0142adowarki<\/span>\n            <span class=\"ap-pill\"><span class=\"ap-pill-dot\"><\/span> Akcesoria iPhone<\/span>\n          <\/div>\n        <\/div>\n      <\/section>\n\n      <div class=\"ap-toolbar ap-reveal\">\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 &#8211; 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      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 => {\n          const article = document.createElement('article');\n          article.className = 'ap-card ap-reveal';\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\">${product.excerpt}<\/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<footer class=\"ap-footer\">\n  <div class=\"ap-footer__inner\">\n\n    <div class=\"ap-footer__top\">\n\n      <!-- KOLUMNA 1 -->\n      <div class=\"ap-footer__brand\">\n        <div class=\"ap-footer__logo-wrap\">\n          <div class=\"ap-footer__logo\">Apple<span>Point<\/span><\/div>\n          <div class=\"ap-footer__tagline\">Premium Service<\/div>\n        <\/div>\n\n        <p class=\"ap-footer__desc\">\n          Profesjonalny serwis Apple i telefon\u00f3w w Zdu\u0144skiej Woli.\n          Naprawy iPhone, Samsung, wymiana baterii, wy\u015bwietlaczy i szybka wycena.\n        <\/p>\n\n        <div class=\"ap-footer__contact-list\">\n          <div class=\"ap-footer__contact-item\">\n            <span class=\"ap-footer__icon\">\ud83d\udccd<\/span>\n            <span>Zdu\u0144ska Wola i okolice<\/span>\n          <\/div>\n\n          <div class=\"ap-footer__contact-item\">\n            <span class=\"ap-footer__icon\">\ud83d\udcde<\/span>\n            <a href=\"tel:+48518900318\">518 900 318<\/a>\n          <\/div>\n<div class=\"ap-footer__contact-item\">\n            <span class=\"ap-footer__icon\">\ud83d\udcde<\/span>\n            <a href=\"tel:+48795208762\">795 208 762<\/a>\n          <\/div>\n          <div class=\"ap-footer__contact-item\">\n            <span class=\"ap-footer__icon\">\u2709\ufe0f<\/span>\n            <a href=\"mailto:kontakt@applepointfix.pl\">kontakt@applepointfix.pl<\/a>\n          <\/div>\n\n          <div class=\"ap-footer__contact-item\">\n            <span class=\"ap-footer__icon\">\ud83d\udd52<\/span>\n            <span>Poniedzia\u0142ek \u2013 Sobota: 8:30\u201322:00<\/span>\n          <\/div>\n\n          <div class=\"ap-footer__contact-item\">\n            <span class=\"ap-footer__icon\">\ud83d\udd52<\/span>\n            <span>Niedziela: po kontakcie<\/span>\n          <\/div>\n        <\/div>\n\n        <div class=\"ap-footer__socials\">\n          <span class=\"ap-footer__social-label\">#ApplePoint<\/span>\n          <div class=\"ap-footer__social-links\">\n            <a href=\"https:\/\/www.instagram.com\/applepoint.pl\/\" target=\"_blank\" rel=\"noopener noreferrer\">Instagram<\/a>\n            <a href=\"https:\/\/www.facebook.com\/profile.php?id=61587246509846\" target=\"_blank\" rel=\"noopener noreferrer\">Facebook<\/a>\n            <a href=\"https:\/\/www.tiktok.com\/@applepoint.pl?is_from_webapp=1&#038;sender_device=pc\" target=\"_blank\" rel=\"noopener noreferrer\">TikTok<\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- KOLUMNA 2 -->\n      <div class=\"ap-footer__col\">\n        <h3>Serwis ApplePoint<\/h3>\n        <ul>\n          <li><a href=\"https:\/\/applepointfix.pl\/\">Strona g\u0142\u00f3wna<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/serwis-apple-zdunska-wola\/\">Serwis Apple Zdu\u0144ska Wola<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/\">Cennik napraw<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/kontakt\/\">Kontakt<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/blog\/\">Blog<\/a><\/li>\n        <\/ul>\n      <\/div>\n\n      <!-- KOLUMNA 3 -->\n      <div class=\"ap-footer__col\">\n        <h3>Serwis iPhone<\/h3>\n        <ul>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#iphone\">Wymiana baterii iPhone<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#iphone\">Wymiana wy\u015bwietlacza iPhone<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#iphone\">Wymiana szybki iPhone<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#iphone\">Naprawa po zalaniu iPhone<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#iphone\">Wymiana z\u0142\u0105cza \u0142adowania iPhone<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#iphone\">Naprawa aparatu iPhone<\/a><\/li>\n        <\/ul>\n      <\/div>\n\n      <!-- KOLUMNA 4 -->\n      <div class=\"ap-footer__col\">\n        <h3>Inne naprawy<\/h3>\n        <ul>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#samsung\">Serwis Samsung<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#samsung\">Wymiana baterii Samsung<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#samsung\">Wymiana wy\u015bwietlacza Samsung<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#ipad\">Serwis iPad<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#macbook\">Serwis MacBook<\/a><\/li>\n          <li><a href=\"https:\/\/applepointfix.pl\/cennik-napraw-telefonow-zdunska-wola\/#ipad\">Konfiguracja i czyszczenie urz\u0105dze\u0144<\/a><\/li>\n        <\/ul>\n      <\/div>\n\n    <\/div>\n\n    <div class=\"ap-footer__bottom\">\n      <div class=\"ap-footer__copyright\">\n        \u00a9 2026 ApplePoint \u2014 Serwis telefon\u00f3w Zdu\u0144ska Wola\n      <\/div>\n\n      <div class=\"ap-footer__legal\">\n        <a href=\"https:\/\/applepointfix.pl\/polityka-prywatnosci\/\">Polityka prywatno\u015bci<\/a>\n        <a href=\"https:\/\/applepointfix.pl\/regulamin-applepointfix-zdunska-wola\/\">Regulamin serwisu<\/a>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/footer>\n","protected":false},"excerpt":{"rendered":"<p>Koszyk 0 Tw\u00f3j koszyk \u2715 Razem 0 z\u0142 Wyczy\u015b\u0107 koszyk Przejd\u017a dalej Nasze akcesoria. Oferta akcesori\u00f3w ApplePoint obejmuje wybrane produkty do iPhone, iPad i innych urz\u0105dze\u0144. W tej sekcji mo\u017cesz przegl\u0105da\u0107 produkty, przechodzi\u0107 do ich kart i zapoznawa\u0107 si\u0119 ze szczeg\u00f3\u0142ami. Etui i szk\u0142a ochronne Kable i \u0142adowarki Akcesoria iPhone Wszystkie Ochrona Zasilanie iPhone Produkty&#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 v27.3 - 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 Nasze akcesoria. Oferta akcesori\u00f3w ApplePoint obejmuje wybrane produkty do iPhone, iPad i innych urz\u0105dze\u0144. W tej sekcji mo\u017cesz przegl\u0105da\u0107 produkty, przechodzi\u0107 do ich kart i zapoznawa\u0107 si\u0119 ze szczeg\u00f3\u0142ami. Etui i szk\u0142a ochronne Kable i \u0142adowarki Akcesoria iPhone Wszystkie Ochrona Zasilanie iPhone Produkty...\" \/>\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-04-09T21:13:16+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=\"2 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-04-09T21:13:16+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\\\/03\\\/cropped-ChatGPT-Image-28-mar-2026-18_58_26-Photoroom.png\",\"contentUrl\":\"https:\\\/\\\/applepointfix.pl\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-ChatGPT-Image-28-mar-2026-18_58_26-Photoroom.png\",\"width\":1021,\"height\":122,\"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 Nasze akcesoria. Oferta akcesori\u00f3w ApplePoint obejmuje wybrane produkty do iPhone, iPad i innych urz\u0105dze\u0144. W tej sekcji mo\u017cesz przegl\u0105da\u0107 produkty, przechodzi\u0107 do ich kart i zapoznawa\u0107 si\u0119 ze szczeg\u00f3\u0142ami. Etui i szk\u0142a ochronne Kable i \u0142adowarki Akcesoria iPhone Wszystkie Ochrona Zasilanie iPhone Produkty...","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-04-09T21:13:16+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 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-04-09T21:13:16+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\/03\/cropped-ChatGPT-Image-28-mar-2026-18_58_26-Photoroom.png","contentUrl":"https:\/\/applepointfix.pl\/wp-content\/uploads\/2026\/03\/cropped-ChatGPT-Image-28-mar-2026-18_58_26-Photoroom.png","width":1021,"height":122,"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,"woocommerce_thumbnail":false,"woocommerce_single":false,"woocommerce_gallery_thumbnail":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 Nasze akcesoria. Oferta akcesori\u00f3w ApplePoint obejmuje wybrane produkty do iPhone, iPad i innych urz\u0105dze\u0144. W tej sekcji mo\u017cesz przegl\u0105da\u0107 produkty, przechodzi\u0107 do ich kart i zapoznawa\u0107 si\u0119 ze szczeg\u00f3\u0142ami. Etui i szk\u0142a ochronne Kable i \u0142adowarki Akcesoria iPhone Wszystkie Ochrona Zasilanie iPhone Produkty...","_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":191,"href":"https:\/\/applepointfix.pl\/en\/wp-json\/wp\/v2\/pages\/4716\/revisions"}],"predecessor-version":[{"id":5390,"href":"https:\/\/applepointfix.pl\/en\/wp-json\/wp\/v2\/pages\/4716\/revisions\/5390"}],"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}]}}