Przejdź do treści

SKLEP

#om-shop-page{--font:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; --green:#165a18;--green-dark:#0d4a10;--lime:#80b832;--lime-dark:#6a9c27;--gold:#d09e33;--gold-dark:#b8872a; --red:#d30407;--ink:#1c1f1c;--muted:#5d625d;--line:#e6e8e6;--bg:#f9f9f9;--nav:#f0f1f1;--card:#fff; --radius:12px;--wrap:1223px;--space:24px; } #om-shop-page *{box-sizing:border-box} #om-shop-page{font-family:var(--font);font-size:15px;line-height:1.4;color:var(--ink);background:var(--bg);text-align:left;letter-spacing:normal;text-transform:none;font-weight:400} #om-shop-page a{color:inherit;text-decoration:none;background:none} #om-shop-page a:visited,#om-shop-page a:hover,#om-shop-page a:focus{color:inherit;text-decoration:none} #om-shop-page h1,#om-shop-page h2,#om-shop-page h3,#om-shop-page h4,#om-shop-page h5,#om-shop-page h6,#om-shop-page p{font-family:inherit;text-transform:none;letter-spacing:normal;margin:0;padding:0;color:inherit} #om-shop-page ul,#om-shop-page ol{list-style:none;margin:0;padding:0} #om-shop-page li{margin:0;list-style:none} #om-shop-page button,#om-shop-page input,#om-shop-page select{font-family:inherit;letter-spacing:normal;text-transform:none;margin:0;box-shadow:none} #om-shop-page label{display:inline;margin:0} #om-shop-page .om-sel select{width:auto;max-width:100%;display:block;line-height:1.2} #om-shop-page .om-search input{width:auto;display:block} #om-shop-page .om-btn:visited,#om-shop-page .om-btn:hover{color:#fff} #om-shop-page .om-crumbs a{color:var(--muted)} #om-shop-page .om-nav li a,#om-shop-page .om-nav li a:visited{color:var(--ink)} #om-shop-page .om-nav li a:hover{color:var(--green)} #om-shop-page .om-nav li a,#om-shop-page .om-nav .om-trust span{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit} #om-shop-page .om-cats li a,#om-shop-page .om-cats li a:visited{color:var(--ink)} #om-shop-page .om-cats li a:hover{color:var(--green)} #om-shop-page .om-prod h2 a,#om-shop-page .om-prod h2 a:visited{color:var(--ink)} #om-shop-page .om-prod h2 a:hover{color:var(--green)} #om-shop-page .om-act,#om-shop-page .om-act:visited{color:var(--ink)} #om-shop-page .om-act:hover{color:var(--green)} #om-shop-page img{max-width:100%;height:auto;border:0;box-shadow:none} #om-shop-page .om-wrap{max-width:var(--wrap);margin:0 auto;padding:0 30px} #om-shop-page .om-ico{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none} #om-shop-page .om-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap} #om-shop-page :focus-visible{outline:3px solid var(--lime);outline-offset:2px} #om-shop-page .om-top{background:#fff} #om-shop-page .om-top .om-wrap{display:flex;align-items:center;gap:28px;height:112px} #om-shop-page .om-logo img{display:block;height:104px;width:104px;object-fit:contain} #om-shop-page .om-search{flex:1;display:flex;max-width:480px;margin-left:4px} #om-shop-page .om-search input{flex:1;min-width:0;height:44px;border:1px solid #d9dcd9;border-right:0;border-radius:8px 0 0 8px;padding:0 16px;font:inherit;background:#fff} #om-shop-page .om-search input::placeholder{color:#8a8f8a} #om-shop-page .om-search button{width:46px;height:44px;border:0;border-radius:0 8px 8px 0;background:var(--green);color:#fff;font-size:20px;display:grid;place-items:center;cursor:pointer} #om-shop-page .om-search button:hover{background:var(--green-dark)} #om-shop-page .om-acts{margin-left:auto;display:flex;align-items:center;gap:30px} #om-shop-page .om-act{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:13px;font-weight:500;position:relative;line-height:1.15} #om-shop-page .om-act .om-ico{font-size:27px;stroke-width:1.5} #om-shop-page .om-act:hover{color:var(--green)} #om-shop-page .om-act.om-cart{padding-left:30px;border-left:1px solid var(--line)} #om-shop-page .om-act.om-cart b{font-weight:700} #om-shop-page .om-badge{position:absolute;top:-8px;left:calc(50% + 12px);min-width:20px;height:20px;border-radius:10px;background:#0c3d0f;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 5px} #om-shop-page .om-act.om-cart .om-badge{left:calc(50% + 28px)} #om-shop-page .om-nav{background:var(--nav);font-family:var(--font);font-size:13px;font-weight:500;line-height:1.2;letter-spacing:normal} #om-shop-page .om-nav .om-wrap{display:flex;align-items:center;justify-content:space-between;height:56px;gap:20px} #om-shop-page .om-nav nav{min-width:0;flex:1 1 auto;align-self:stretch;display:flex;overflow:hidden} #om-shop-page .om-nav ul{display:flex;align-items:stretch;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none} #om-shop-page .om-nav li{display:flex;margin:0;padding:0} #om-shop-page .om-nav ul::-webkit-scrollbar{display:none} #om-shop-page .om-nav li a{display:flex;align-items:center;padding:0 18px;font:inherit;white-space:nowrap;border-bottom:3px solid transparent;border-top:3px solid transparent} #om-shop-page .om-nav li:first-child a{padding-left:0} #om-shop-page .om-nav li a:hover{color:var(--green)} #om-shop-page .om-nav li a[aria-current]{font-weight:inherit;border-bottom-color:var(--green);background:#e9ebea;padding:0 18px;margin-left:0} #om-shop-page .om-trust{display:flex;align-items:center;align-self:center;gap:22px;white-space:nowrap} #om-shop-page .om-trust span{display:flex;align-items:center;gap:7px} #om-shop-page .om-trust .om-ico{font-size:22px;stroke-width:1.5} #om-shop-page .om-hero{display:grid;grid-template-columns:263px minmax(0,1fr);gap:var(--space);align-items:center;padding:var(--space) 0} #om-shop-page .om-hero h1{margin:0;font-size:58px;line-height:1;font-weight:800;letter-spacing:-.02em} #om-shop-page .om-crumbs{margin-top:14px;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14.5px} #om-shop-page .om-crumbs .om-ico{font-size:13px} #om-shop-page .om-crumbs [aria-current]{color:var(--ink)} #om-shop-page .om-banner{min-width:0} #om-shop-page .om-banner #om-shop-slider .om-slides{aspect-ratio:2000/666} #om-shop-page .om-shop{display:grid;grid-template-columns:263px minmax(0,1fr);gap:var(--space);align-items:start;padding-bottom:calc(var(--space)*2)} #om-shop-page .om-side{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space);min-width:0} #om-shop-page .om-side>*{min-width:0} #om-shop-page .om-card{background:var(--card);border-radius:var(--radius);box-shadow:0 1px 3px rgba(20,40,20,.06)} #om-shop-page .om-cats{overflow:hidden;padding-bottom:6px} #om-shop-page .om-cats-title{margin:0;padding:18px 22px;min-height:64px;display:flex;align-items:center;background:var(--lime);color:#fff;font-size:18px;line-height:1.25;font-weight:700;letter-spacing:0;text-transform:none} #om-shop-page .om-cat-toggle{display:none} #om-shop-page .om-cats ul{list-style:none;margin:0;padding:0 14px} #om-shop-page .om-cats li+li{border-top:1px solid #edefed} #om-shop-page .om-cats li a{display:flex;align-items:center;gap:14px;height:45px;padding:0 4px;font-size:15px;font-weight:500} #om-shop-page .om-cats li a:hover{color:var(--green)} #om-shop-page .om-cats li a .om-ci{font-size:23px;stroke-width:1.4;color:#2b3a2b} #om-shop-page .om-cats li a .om-go{margin-left:auto;font-size:15px;color:#4c524c} #om-shop-page .om-cats li.om-hot a{font-weight:700} #om-shop-page .om-cats li.om-hot .om-ci{color:var(--gold)} #om-shop-page .om-promo{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:center;padding:22px 20px} #om-shop-page .om-promo .om-big{font-size:56px;color:var(--green);grid-row:1/3} #om-shop-page .om-promo.om-gift .om-big{color:var(--gold)} #om-shop-page .om-promo h3{margin:0;font-size:17px;line-height:1.2;font-weight:800} #om-shop-page .om-promo p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.35} #om-shop-page .om-promo .om-btn{grid-column:1/-1;margin-top:10px} #om-shop-page .om-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 16px;white-space:nowrap;border:0;border-radius:8px;background:var(--lime);color:#fff;font-weight:700;font-size:14.5px;cursor:pointer;transition:background .2s} #om-shop-page .om-btn:hover{background:var(--lime-dark)} #om-shop-page .om-btn.om-gold{background:var(--gold)} #om-shop-page .om-btn.om-gold:hover{background:var(--gold-dark)} #om-shop-page .om-promo.om-truck .om-btn{grid-column:2;justify-self:start;margin-top:8px} #om-shop-page .om-promo.om-truck{grid-template-columns:auto 1fr} #om-shop-page .om-promo.om-truck .om-big{grid-row:1/3} #om-shop-page .om-promo.om-gift .om-btn{grid-column:2;justify-self:start} #om-shop-page .om-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap} #om-shop-page .om-sel{position:relative} #om-shop-page .om-sel select{appearance:none;-webkit-appearance:none;height:40px;padding:0 32px 0 12px;border:1px solid #d9dcd9;border-radius:8px;background:#fff;font-weight:500;font-size:14.5px;cursor:pointer} #om-shop-page .om-sel::after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;border-right:1.8px solid #333;border-bottom:1.8px solid #333;transform:translateY(-70%) rotate(45deg);pointer-events:none} #om-shop-page .om-sort{margin-left:auto;display:flex;align-items:center;gap:10px;font-weight:700} #om-shop-page .om-sort select{min-width:148px;font-weight:500} #om-shop-page .om-found{display:flex;align-items:center;justify-content:space-between;margin:var(--space) 0;color:#454a45;font-size:14.5px} #om-shop-page .om-views{display:flex;gap:6px} #om-shop-page .om-views button{width:38px;height:38px;border:0;border-bottom:2px solid transparent;background:transparent;font-size:23px;display:grid;place-items:center;cursor:pointer;color:#8a8f8a;border-radius:6px 6px 0 0} #om-shop-page .om-views button[aria-pressed=true]{color:var(--green);background:#e7f0e6;border-bottom-color:var(--green)} #om-shop-page .om-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space);list-style:none;margin:0;padding:0} #om-shop-page .om-prod{position:relative;display:flex;flex-direction:column;padding:10px 10px 12px;background:#fff;border-radius:var(--radius);box-shadow:0 1px 3px rgba(20,40,20,.07)} #om-shop-page .om-prod .om-pic{position:relative;display:block;aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:#f4f4f4} #om-shop-page .om-prod .om-pic img{width:100%;height:100%;object-fit:cover;display:block} #om-shop-page .om-tag{position:absolute;top:8px;left:0;z-index:2;padding:4px 11px;border-radius:0 5px 5px 0;color:#fff;font-size:13px;font-weight:700;background:var(--green)} #om-shop-page .om-tag.om-red{background:var(--red)} #om-shop-page .om-fav{position:absolute;top:8px;right:8px;z-index:2;width:30px;height:30px;border:0;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:19px;color:#444;cursor:pointer;box-shadow:0 1px 3px #0002} #om-shop-page .om-fav[aria-pressed=true]{color:var(--red)} #om-shop-page .om-fav[aria-pressed=true] .om-ico{fill:currentColor} #om-shop-page .om-prod h2{margin:12px 2px 6px;font-size:15px;line-height:1.3;font-weight:600;min-height:39px} #om-shop-page .om-prod h2 a:hover{color:var(--green)} #om-shop-page .om-rate{display:flex;align-items:center;gap:6px;margin:0 2px 6px;font-size:12.5px;color:var(--muted)} #om-shop-page .om-stars{--r:5;display:inline-block;font-size:15px;letter-spacing:1px;line-height:1;background:linear-gradient(90deg,#f2a900 calc(var(--r)/5*100%),#d8d8d8 0);-webkit-background-clip:text;background-clip:text;color:transparent} #om-shop-page .om-price{margin:0 2px 10px;display:flex;align-items:baseline;gap:8px;font-size:19px;font-weight:800;min-height:28px} #om-shop-page .om-price s{font-size:13.5px;font-weight:500;color:#777} #om-shop-page .om-price.om-sale ins{text-decoration:none;color:var(--red)} #om-shop-page .om-prod .om-btn{width:100%;margin-top:auto;height:40px;font-size:14px;padding:0 8px} #om-shop-page .om-prod .om-btn .om-ico{font-size:19px} #om-shop-page .om-grid.om-list{grid-template-columns:1fr;gap:14px} #om-shop-page .om-grid.om-list .om-prod{display:grid;grid-template-columns:150px 1fr auto;gap:4px 20px;align-items:center;padding:10px} #om-shop-page .om-grid.om-list .om-pic{grid-row:1/4} #om-shop-page .om-grid.om-list .om-prod h2{min-height:0;margin:0;font-size:17px} #om-shop-page .om-grid.om-list .om-rate,#om-shop-page .om-grid.om-list .om-price{margin:0} #om-shop-page .om-grid.om-list .om-prod .om-btn{width:auto;grid-column:3;grid-row:1/4;padding:0 22px} #om-shop-page .om-pager{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:var(--space);flex-wrap:wrap} #om-shop-page .om-pages{display:flex;gap:10px;align-items:center;margin:0 auto;padding:0;list-style:none} #om-shop-page .om-pages a,#om-shop-page .om-pages span{min-width:36px;height:36px;padding:0 6px;display:grid;place-items:center;border:1px solid #dcdfdc;border-radius:8px;background:#fff;font-weight:500} #om-shop-page .om-pages a:hover{border-color:var(--green);color:var(--green)} #om-shop-page .om-pages [aria-current]{background:var(--green);border-color:var(--green);color:#fff;font-weight:700} #om-shop-page .om-pages .om-gap{border:0;background:none;min-width:auto} #om-shop-page .om-perpage{display:flex;align-items:center;gap:10px;font-size:14.5px} #om-shop-page .om-perpage select{min-width:104px} /* === POPRAWKA: wszystkie pozycje menu wyglądają tak samo, mają równe odstępy i mieszczą się w linii === */ #om-shop-page .om-nav{container-type:inline-size} #om-shop-page .om-nav .om-wrap{gap:0;justify-content:space-between;align-items:stretch;overflow:hidden} #om-shop-page .om-nav nav,#om-shop-page .om-nav ul,#om-shop-page .om-nav .om-trust{display:contents} #om-shop-page .om-nav li{display:flex;align-self:stretch;flex:0 0 auto} #om-shop-page .om-nav li a,#om-shop-page .om-nav .om-trust span{font-family:var(--font)!important;font-size:15px!important;font-weight:500!important;line-height:1.2!important;letter-spacing:normal!important;text-transform:none!important;color:var(--ink)!important} #om-shop-page .om-nav li a,#om-shop-page .om-nav li a[aria-current],#om-shop-page .om-nav li:first-child a{padding:0 12px} #om-shop-page .om-nav li a:hover,#om-shop-page .om-trust span:hover{color:var(--green)!important} #om-shop-page .om-trust span{display:flex;align-items:center;align-self:stretch;flex:0 0 auto;gap:6px;padding:0 12px;white-space:nowrap;cursor:default;border-top:3px solid transparent;border-bottom:3px solid transparent;transition:color .2s} #om-shop-page .om-trust .om-ico{font-size:19px;stroke-width:1.6;flex:0 0 auto} @container (max-width:1120px){ #om-shop-page .om-nav li a,#om-shop-page .om-nav .om-trust span{font-size:14px!important} #om-shop-page .om-nav li a,#om-shop-page .om-nav li a[aria-current],#om-shop-page .om-nav li:first-child a,#om-shop-page .om-trust span{padding:0 8px} #om-shop-page .om-trust .om-ico{font-size:18px}} @container (max-width:960px){#om-shop-page .om-trust span:nth-child(3){display:none}} @container (max-width:800px){#om-shop-page .om-trust span{display:none}} @media(max-width:1180px){#om-shop-page .om-grid{grid-template-columns:repeat(3,minmax(0,1fr))} #om-shop-page .om-trust span:nth-child(3){display:none}} @media(max-width:960px){#om-shop-page .om-wrap{padding:0 16px} #om-shop-page .om-top .om-wrap{flex-wrap:wrap;height:auto;padding-top:12px;padding-bottom:12px;gap:12px 16px} #om-shop-page .om-logo img{height:64px;width:64px} #om-shop-page .om-acts{gap:18px} #om-shop-page .om-act.om-cart{padding-left:18px} #om-shop-page .om-search{order:3;flex:1 1 100%;max-width:none;margin:0} #om-shop-page .om-trust{display:none} #om-shop-page{--space:20px} #om-shop-page .om-hero,#om-shop-page .om-shop{grid-template-columns:220px minmax(0,1fr)} #om-shop-page .om-side,#om-shop-page .om-side>*,#om-shop-page .om-main{min-width:0} #om-shop-page .om-cats ul{padding:0 10px} #om-shop-page .om-hero h1{font-size:42px} #om-shop-page .om-cats li a{gap:8px;font-size:13.5px;height:42px;padding:0 2px} #om-shop-page .om-cats li a .om-go{font-size:13px} #om-shop-page .om-cats li a .om-ci{font-size:19px} #om-shop-page .om-cats-title{font-size:15.5px;padding:16px 14px;min-height:56px} #om-shop-page .om-promo{padding:16px 14px;gap:6px 12px} #om-shop-page .om-promo .om-big{font-size:40px} #om-shop-page .om-promo h3{font-size:15px} #om-shop-page .om-grid{grid-template-columns:repeat(2,minmax(0,1fr))}} @media(max-width:700px){#om-shop-page{--space:16px} #om-shop-page .om-hero,#om-shop-page .om-shop{grid-template-columns:1fr} #om-shop-page .om-hero h1{font-size:40px} #om-shop-page .om-crumbs{margin-top:8px} #om-shop-page .om-shop{padding-top:0} #om-shop-page .om-side{order:1} #om-shop-page .om-main{order:2} #om-shop-page .om-cats{padding:0;background:transparent;box-shadow:none;overflow:visible} #om-shop-page .om-cats-title{display:none} #om-shop-page .om-cat-toggle{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:14px 18px;border:0;border-radius:10px;background:var(--lime);color:#fff;font-weight:700;font-size:16px;line-height:1.25;cursor:pointer;text-align:left} #om-shop-page .om-cat-toggle .om-ico{font-size:20px} #om-shop-page .om-cat-toggle .om-chev{margin-left:6px;font-size:16px;transition:transform .2s} #om-shop-page .om-cat-toggle[aria-expanded=true] .om-chev{transform:rotate(180deg)} #om-shop-page .om-cats ul{display:none;margin-top:8px;background:#fff;border-radius:var(--radius);box-shadow:0 1px 3px rgba(20,40,20,.08)} #om-shop-page .om-cats ul.om-open{display:block} #om-shop-page .om-cats li a{height:45px;font-size:15px} #om-shop-page .om-side .om-promo{display:none} #om-shop-page .om-prod{padding:8px 8px 10px} #om-shop-page .om-prod h2{font-size:14px;min-height:36px} #om-shop-page .om-price{font-size:17px} #om-shop-page .om-prod .om-btn{font-size:12.5px;gap:5px;padding:0 6px} #om-shop-page .om-sort{margin-left:0;width:100%} #om-shop-page .om-sort select{flex:1} #om-shop-page .om-filters .om-sel{flex:1 1 calc(50% - 8px)} #om-shop-page .om-filters .om-sel select{width:100%} #om-shop-page .om-pager{justify-content:center} #om-shop-page .om-perpage{display:none} #om-shop-page .om-act span.om-t{display:none} #om-shop-page .om-act.om-cart{border:0;padding-left:0} #om-shop-page .om-act .om-badge,#om-shop-page .om-act.om-cart .om-badge{left:auto;right:-10px} #om-shop-page .om-acts{padding-right:10px} #om-shop-page .om-grid.om-list .om-prod{grid-template-columns:96px 1fr} #om-shop-page .om-grid.om-list .om-prod .om-btn{grid-column:1/-1;grid-row:auto}} /* === POPRAWKA: wygląd na telefonie === */ @media(max-width:700px){ body{overflow-x:clip} #om-shop-page{box-sizing:border-box;max-width:none!important} html body #om-shop-page .om-views button,html body #om-shop-page .om-views button:hover,html body #om-shop-page .om-views button:focus{width:38px!important;min-width:0!important;height:38px!important;padding:0!important;margin:0!important;border:0!important;border-bottom:2px solid transparent!important;border-radius:6px 6px 0 0!important;background:transparent!important;color:#8a8f8a!important;box-shadow:none!important} html body #om-shop-page .om-views button[aria-pressed=true]{color:var(--green)!important;background:#e7f0e6!important;border-bottom-color:var(--green)!important} #om-shop-page .om-nav .om-wrap{flex-wrap:wrap;justify-content:center;height:auto;padding-top:4px;padding-bottom:4px;overflow:visible} #om-shop-page .om-nav li a,#om-shop-page .om-nav li a[aria-current],#om-shop-page .om-nav li:first-child a{height:42px;padding:0 10px} #om-shop-page .om-top .om-wrap{gap:12px} #om-shop-page .om-search{min-width:0;width:100%;box-sizing:border-box} #om-shop-page .om-search input{width:auto;min-width:0;flex:1 1 auto;font-size:14px;padding:0 12px} #om-shop-page .om-search button{flex:0 0 46px} #om-shop-page .om-hero h1{font-size:34px} #om-shop-page .om-sel select{font-size:13.5px;padding:0 28px 0 10px;text-overflow:ellipsis} #om-shop-page .om-sel::after{right:11px} #om-shop-page .om-grid{gap:10px} #om-shop-page .om-prod{min-width:0} #om-shop-page .om-tag{font-size:11.5px;padding:3px 8px;top:6px} #om-shop-page .om-fav{width:28px;height:28px;font-size:17px;top:6px;right:6px} #om-shop-page .om-prod h2{font-size:13.5px;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto} #om-shop-page .om-rate{flex-wrap:wrap;gap:2px 5px;font-size:11.5px} #om-shop-page .om-stars{font-size:13px;letter-spacing:0} #om-shop-page .om-price{flex-wrap:wrap;gap:0 6px;font-size:16px} #om-shop-page .om-price s{font-size:12px} #om-shop-page .om-prod .om-btn{height:auto;min-height:38px;padding:6px 6px;white-space:normal;text-align:center;line-height:1.15;font-size:12.5px} #om-shop-page .om-prod .om-btn .om-ico{display:none} #om-shop-page .om-pages{flex-wrap:wrap;justify-content:center;gap:6px} #om-shop-page .om-pages a,#om-shop-page .om-pages span{min-width:32px;height:32px;font-size:14px}} /* === POPRAWKA: kategorie na telefonie jako panel wysuwany z boku === */ #om-shop-page .om-cat-overlay,#om-shop-page .om-drawer-head{display:none} #om-shop-page .om-cats li.om-drawer-head+li{border-top:0} @media(max-width:700px){ #om-shop-page .om-cats ul,#om-shop-page .om-cats ul.om-open{display:block!important;position:fixed!important;top:0;left:0;bottom:0;width:min(85vw,340px);height:100%;margin:0!important;padding:0 0 24px!important;list-style:none;background:#fff;border-radius:0 14px 14px 0!important;box-shadow:6px 0 28px rgba(0,0,0,.22);z-index:2147483001;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;transform:translateX(-105%);visibility:hidden;transition:transform .3s ease,visibility 0s linear .3s} #om-shop-page .om-cats ul.om-open{transform:none;visibility:visible;transition:transform .3s ease,visibility 0s} #om-shop-page .om-cats li.om-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0;z-index:1;min-height:60px;padding:0 10px 0 20px;background:var(--lime);color:#fff;font-size:17px;font-weight:700;border:0} #om-shop-page .om-drawer-head span{display:flex;align-items:center;gap:10px} #om-shop-page .om-drawer-head .om-ico{font-size:20px} html body #om-shop-page .om-drawer-close{width:40px;height:40px;min-width:0;padding:0;margin:0;border:0;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:26px;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:none} #om-shop-page .om-cats li.om-drawer-head+li{border-top:0} #om-shop-page .om-cats ul li a{height:52px;padding:0 20px;font-size:15.5px} #om-shop-page .om-cats ul li+li{border-top:1px solid #edefed} #om-shop-page .om-cat-overlay{display:block;position:fixed;inset:0;z-index:2147483000;background:rgba(15,25,15,.45);opacity:0;pointer-events:none;transition:opacity .3s ease} #om-shop-page .om-cat-overlay.is-open{opacity:1;pointer-events:auto} #om-shop-page .om-cat-toggle .om-chev{transform:rotate(-90deg)!important} html.om-lock,html.om-lock body{overflow:hidden!important}} /* === POPRAWKA: logo w nagłówku strony przesunięte o 85 px w prawo – tylko tablet === */ @media(min-width:701px) and (max-width:1024px){ .elementor-location-header .elementor-widget-theme-site-logo, .elementor-location-header .elementor-widget-site-logo, .elementor-location-header .elementor-widget-image:has(img[src*="logo" i]), .elementor-location-header .elementor-widget-image:has(img[alt*="okazja" i]), .elementor-location-header .elementor-widget-image:has(img[src*="okazja" i]), .site-header .site-branding, .site-header .custom-logo-link, .ast-site-identity, .wp-block-site-logo{transform:translateX(85px)!important}} /* === POPRAWKA: tablet – strona sklepu bez bocznych marginesów Elementora === */ @media(min-width:701px) and (max-width:1024px){body{overflow-x:clip}#om-shop-page{box-sizing:border-box;max-width:none!important}} @media(prefers-reduced-motion:reduce){#om-shop-page *{transition:none!important}}
Szybka wysyłka Bezpieczne zakupy Pomoc i kontakt

Sklep

Wszystko dla dzieci, domu i wyjątkowych chwil
#om-shop-slider{--om-lime:#80b832;--om-lime-dark:#6a9c27;--om-yellow:#f4c52e;position:relative;width:100%;overflow:hidden;background:#fff;isolation:isolate;border-radius:12px} #om-shop-slider *{box-sizing:border-box} #om-shop-slider .om-slides{position:relative;width:100%;aspect-ratio:2000/666} #om-shop-slider .om-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .55s ease} #om-shop-slider .om-slide.is-active{opacity:1;visibility:visible;z-index:1} #om-shop-slider .om-slide-image{display:block;width:100%;height:100%;object-fit:contain;object-position:center;margin:0;max-width:none} #om-shop-slider .om-slide-link{position:absolute;inset:0;z-index:2} #om-shop-slider .om-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:34px;height:34px;padding:0;border:0;border-radius:50%;background:var(--om-lime);color:#fff;font-size:15px;line-height:34px;opacity:.92;text-align:center;cursor:pointer;box-shadow:0 1px 5px #0003;transition:background .2s} #om-shop-slider .om-arrow:hover{background:var(--om-lime-dark)} #om-shop-slider .om-prev{left:6px} #om-shop-slider .om-next{right:6px} #om-shop-slider .om-dots{position:absolute;z-index:5;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:8px;pointer-events:none} #om-shop-slider .om-dot{pointer-events:auto;width:10px;height:10px;padding:0;border:1px solid #fff;border-radius:50%;background:#ffffffb8;cursor:pointer;box-shadow:0 0 3px #0003} #om-shop-slider .om-dot.is-active{background:var(--om-lime);border-color:#fff} #om-shop-slider button:focus-visible,#om-shop-slider a:focus-visible{outline:3px solid var(--om-lime-dark);outline-offset:-3px} @media(max-width:767px){ #om-shop-slider{border-radius:8px} #om-shop-slider .om-arrow{display:none} #om-shop-slider .om-dots{bottom:5px;gap:6px} #om-shop-slider .om-dot{width:8px;height:8px} } @media(prefers-reduced-motion:reduce){#om-shop-slider .om-slide{transition:none}} (function(){ const root=document.getElementById('om-shop-slider'); if(!root || root.dataset.ready==='1') return; root.dataset.ready='1'; const slides=Array.from(root.querySelectorAll('.om-slide')); const dots=Array.from(root.querySelectorAll('.om-dot')); const prev=root.querySelector('.om-prev'), next=root.querySelector('.om-next'); let current=0, timer=null; const reduced=window.matchMedia('(prefers-reduced-motion: reduce)').matches; function show(index){ current=(index+slides.length)%slides.length; slides.forEach((s,i)=>{s.classList.toggle('is-active',i===current);s.setAttribute('aria-hidden',i===current?'false':'true');}); dots.forEach((d,i)=>{d.classList.toggle('is-active',i===current);if(i===current)d.setAttribute('aria-current','true');else d.removeAttribute('aria-current');}); } function stop(){if(timer){clearInterval(timer);timer=null;}} function start(){stop();if(!reduced && !document.hidden) timer=setInterval(()=>show(current+1),7000);} prev.addEventListener('click',()=>{show(current-1);start();}); next.addEventListener('click',()=>{show(current+1);start();}); dots.forEach((d,i)=>d.addEventListener('click',()=>{show(i);start();})); root.addEventListener('mouseenter',stop);root.addEventListener('mouseleave',start); root.addEventListener('focusin',stop);root.addEventListener('focusout',start); document.addEventListener('visibilitychange',()=>document.hidden?stop():start()); let tx=null; root.addEventListener('touchstart',e=>{tx=e.touches[0].clientX;stop();},{passive:true}); root.addEventListener('touchend',e=>{if(tx!==null){const dx=e.changedTouches[0].clientX-tx;if(Math.abs(dx)>40)show(current+(dx<0?1:-1));tx=null;}start();},{passive:true}); show(0);start(); })();
Wszystkie kategorieUbranka dla dzieciZabawkiPodkłady higieniczneDom i ogród
Cenado 50 zł50–100 złpowyżej 100 zł
DostępnośćDostępneNa zamówienie
MarkaZETPOL
NajnowszeCena: rosnącoCena: malejącoPopularność
Znaleziono 1 248 produktów
(function(){ var root=document.getElementById('om-shop-page'); if(!root||root.dataset.omReady==='1')return; root.dataset.omReady='1'; // Serduszka (ulubione) document.querySelectorAll('.om-fav').forEach(function(b){ b.addEventListener('click',function(){b.setAttribute('aria-pressed',b.getAttribute('aria-pressed')==='true'?'false':'true');}); }); // Widok kafelki / lista var grid=document.getElementById('om-products'); document.querySelectorAll('.om-views button').forEach(function(b){ b.addEventListener('click',function(){ grid.classList.toggle('om-list',b.dataset.view==='list'); document.querySelectorAll('.om-views button').forEach(function(x){x.setAttribute('aria-pressed',x===b?'true':'false');}); }); }); // Kategorie – rozwijane na telefonie var t=document.querySelector('.om-cat-toggle'),l=document.getElementById('om-cat-list'); t.addEventListener('click',function(){ var o=t.getAttribute('aria-expanded')==='true'; t.setAttribute('aria-expanded',o?'false':'true'); l.classList.toggle('om-open',!o); }); })(); /* === POPRAWKA: na telefonie i tablecie strona sklepu zajmuje całą szerokość ekranu === */ (function(){ var el=document.getElementById('om-shop-page'); if(!el) return; function fit(){ el.style.marginLeft=''; el.style.marginRight=''; el.style.width=''; var vw=document.documentElement.clientWidth; if(window.innerWidth>1024) return; var r=el.getBoundingClientRect(); el.style.width=vw+'px'; el.style.marginLeft=(-r.left)+'px'; el.style.marginRight=(r.right-vw)+'px'; } fit(); window.addEventListener('resize',fit); window.addEventListener('load',fit); })(); /* === POPRAWKA: panel kategorii wysuwany z boku (telefon) === */ (function(){ var t=document.querySelector('#om-shop-page .om-cat-toggle'),l=document.getElementById('om-cat-list'); if(!t||!l) return; var head=document.createElement('li');head.className='om-drawer-head'; head.innerHTML='Kategorie produktów'; l.insertBefore(head,l.firstChild); var ov=document.createElement('div');ov.className='om-cat-overlay'; l.parentNode.appendChild(ov); function isOpen(){return l.classList.contains('om-open');} function close(){if(isOpen()) t.click();} function sync(){ var o=isOpen()&&window.innerWidth700) close(); sync();}); })(); <!-- ====== OKAZJA U MARII – DYNAMICZNE KAFELKI PRODUKTÓW I KATEGORIE (WooCommerce) ====== Wklej ten blok NA SAMYM KOŃCU obecnego kodu w widżecie HTML (po ostatnim ). Niczego w starym kodzie nie trzeba usuwać – blok sam zastąpi przykładowe kategorie i produkty prawdziwymi danymi ze sklepu. --> #om-shop-page .om-cats li a.om-active,#om-shop-page .om-cats li a.om-active .om-ci{color:var(--green)!important;font-weight:700} #om-shop-page .om-cats .om-cat-msg{padding:14px 4px;color:var(--muted);font-size:14px} #om-shop-page .om-cats li a{height:auto!important;min-height:45px;padding-top:6px;padding-bottom:6px;line-height:1.25} #om-shop-page .om-sel select{max-width:240px} #om-shop-page .om-tag.om-grey{background:#6b706b} #om-shop-page .om-price{flex-wrap:wrap} #om-shop-page .om-price ins{text-decoration:none;background:none} #om-shop-page .om-price small{font-size:13px;font-weight:500;color:var(--muted)} #om-shop-page .om-prod h2{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden} #om-shop-page .om-rate{min-height:18px} html body #om-shop-page button.om-btn{border:0;box-shadow:none;text-transform:none;letter-spacing:normal;line-height:1.2;color:#fff;background:var(--lime)} html body #om-shop-page button.om-btn:hover{background:var(--lime-dark);color:#fff} #om-shop-page .om-btn.om-off,#om-shop-page .om-btn.om-off:hover{background:#9aa09a} #om-shop-page .om-btn[disabled]{opacity:.75;cursor:wait} #om-shop-page .om-empty{grid-column:1/-1;background:#fff;border-radius:var(--radius);padding:40px 20px;text-align:center;color:var(--muted)} #om-shop-page .om-empty p{margin-bottom:14px} #om-shop-page .om-clear{background:none;border:0;padding:0;margin-left:10px;color:var(--green);font-weight:600;cursor:pointer;text-decoration:underline;font-size:14px} #om-shop-page .om-clear[hidden]{display:none} #om-shop-page .om-skel .om-pic,#om-shop-page .om-skel .om-l{background:linear-gradient(90deg,#eee 25%,#f7f7f7 50%,#eee 75%);background-size:200% 100%;animation:om-sh 1.2s infinite linear} #om-shop-page .om-skel .om-l{display:block;height:14px;border-radius:6px;margin:12px 2px 0} #om-shop-page .om-skel .om-l.om-s{width:55%} @keyframes om-sh{to{background-position:-200% 0}} #om-shop-page .om-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,120px);z-index:2147483002;background:var(--green);color:#fff;padding:12px 20px;border-radius:10px;font-weight:600;box-shadow:0 6px 20px #0003;transition:transform .3s ease;pointer-events:none} #om-shop-page .om-toast.is-on{transform:translate(-50%,0)} @media(max-width:700px){ #om-shop-page .om-sel select{max-width:none} html body #om-shop-page .om-prod button.om-btn{height:auto;min-height:38px;padding:6px;white-space:normal;text-align:center;line-height:1.15;font-size:12.5px} } (function(){ 'use strict'; /* ---- USTAWIENIA ---- */ var API='/wp-json/wc/store/v1'; // WooCommerce Store API – zostaw bez zmian var SHOP='/sklep/'; // adres strony Sklep var HIDE=['bez-kategorii','uncategorized']; // kategorie, których nie pokazywać var DEF_PER=12; // produktów na stronie /* --------------------- */ var root=document.getElementById('om-shop-page'); if(!root||root.dataset.omDyn==='1') return; root.dataset.omDyn='1'; function $(s){return root.querySelector(s);} function $$(s){return Array.prototype.slice.call(root.querySelectorAll(s));} var grid=$('#om-products'), catList=$('#om-cat-list'), pager=$('.om-pages'); if(!grid||!catList) return; var selCat=$('#om-f1'), selPrice=$('#om-f2'), selStock=$('#om-f3'), selSort=$('#om-sort'), selPP=$('#om-pp'); var foundBox=$('.om-found > span'); // Filtr "Marka" nie ma odpowiednika w danych sklepu – chowamy go var brand=$('#om-f4'); if(brand&&brand.parentNode) brand.parentNode.style.display='none'; // Opcje filtrów z wartościami, które rozumie sklep selPrice.innerHTML='Cenado 50 zł50–100 zł100–200 złpowyżej 200 zł'; selStock.innerHTML='DostępnośćDostępneNa zamówienieNiedostępne'; selSort.innerHTML='NajnowszePopularnośćNajlepiej ocenianeCena: rosnącoCena: malejącoNazwa: A–Z'; foundBox.innerHTML='Wczytywanie produktów…'; var foundEl=$('#om-found-text'), clearBtn=$('#om-clear'); var toastEl=document.createElement('div');toastEl.className='om-toast';toastEl.setAttribute('role','status');root.appendChild(toastEl); var SORTS={'date-desc':['date','desc'],'popularity-desc':['popularity','desc'],'rating-desc':['rating','desc'],'price-asc':['price','asc'],'price-desc':['price','desc'],'title-asc':['title','asc']}; var S={kat:'',promo:false,price:'',stock:'',sort:'date-desc',page:1,per:DEF_PER,q:''}; var cats=[], catBySlug={}, catById={}, nonce='', reqId=0, minorUnit=2; /* ---------- pomocnicze ---------- */ function esc(s){return String(s==null?'':s).replace(/[&"']/g,function(c){return {'&':'&','':'>','"':'"',"'":'''}[c];});} function dec(s){var t=document.createElement('textarea');t.innerHTML=s||'';return t.value;} function plural(n){var a=n%10,b=n%100;if(n===1)return 'produkt';if(a>=2&&a<=4&&(b14))return 'produkty';return 'produktów';} function money(v,p){ if(v===null||v===undefined||v==='') return ''; var mu=(p&&p.currency_minor_unit!=null)?p.currency_minor_unit:minorUnit; var s=(parseInt(v,10)/Math.pow(10,mu)).toLocaleString('pl-PL',{minimumFractionDigits:mu,maximumFractionDigits:mu}); var pre=(p&&p.currency_prefix)||'', suf=(p&&p.currency_suffix!=null)?p.currency_suffix:' zł'; if(!pre&&!suf) suf=' zł'; return esc(pre)+s+esc(suf).replace(/^ /,' '); } function store(k,v){try{if(v===undefined) return JSON.parse(localStorage.getItem(k)); localStorage.setItem(k,JSON.stringify(v));}catch(e){return null;}} function api(path,opt){ opt=opt||{}; opt.credentials='same-origin'; opt.headers=Object.assign({'Accept':'application/json'},opt.headers||{}); return fetch(API+path,opt).then(function(r){ var n=r.headers.get('Nonce')||r.headers.get('X-WC-Store-API-Nonce'); if(n) nonce=n; if(!r.ok) throw new Error('HTTP '+r.status); return r.json().then(function(d){return {data:d,headers:r.headers};}); }); } var toastT; function toast(msg){toastEl.textContent=msg;toastEl.classList.add('is-on');clearTimeout(toastT);toastT=setTimeout(function(){toastEl.classList.remove('is-on');},2200);} /* ---------- ikony kategorii dobierane po nazwie ---------- */ var ICONS=[[/ubran|odziez|odzież|sukien|bluz|spodn|kurtk|czap|but|obuw/,'shirt'],[/zabaw|klock|gry|puzzl|pluszak|lalk/,'toy'],[/niemow|noworod|baby|smocz|butelk/,'baby'],[/podklad|podkład|higien|pielusz|pielęg/,'pad'],[/szkol|szkoł|zeszyt|plecak|papier|biur/,'book'],[/impre|urodzin|party|komun|chrzest|balon|dekor/,'party'],[/podroz|podróż|wyjazd|walizk|turyst/,'bag'],[/dom|ogrod|ogród|kuchn|łazien|lazien/,'home']]; function iconFor(c){var s=(c.slug+' '+c.name).toLowerCase();for(var i=0;i-1) S.per=pp; var m=location.pathname.match(/\/kategoria-produktu\/(?:[^\/]+\/)*([^\/]+)\/?$/); if(!S.kat&&m) S.kat=decodeURIComponent(m[1]); } function writeUrl(){ var u=new URLSearchParams(); if(S.kat) u.set('kat',S.kat); if(S.promo) u.set('promo','1'); if(S.sort!=='date-desc') u.set('sort',S.sort); if(S.price) u.set('cena',S.price); if(S.stock) u.set('dostepnosc',S.stock); if(S.q) u.set('q',S.q); if(S.per!==DEF_PER) u.set('ile',S.per); if(S.page>1) u.set('strona',S.page); var qs=u.toString(); try{history.replaceState(null,'',location.pathname+(qs?'?'+qs:'')+location.hash);}catch(e){} } function syncControls(){ selCat.value=catBySlug[S.kat]?S.kat:''; selPrice.value=S.price; selStock.value=S.stock; selSort.value=S.sort; if(selPP) selPP.value=String(S.per); clearBtn.hidden=!(S.kat||S.promo||S.price||S.stock||S.q); $$('#om-cat-list a').forEach(function(a){ var on=(a.dataset.kat!==undefined&&a.dataset.kat===S.kat&&!S.promo)|| (a.dataset.special==='promo'&&S.promo)||(a.dataset.special==='best'&&S.sort==='popularity-desc'&&!S.kat&&!S.promo); if(a.dataset.kat===''&&(S.promo||S.sort==='popularity-desc')) on=false; a.classList.toggle('om-active',on); }); } /* ---------- kategorie ---------- */ function clearCatList(){$$('#om-cat-list > li:not(.om-drawer-head)').forEach(function(li){li.remove();});} function hasProducts(c){if(c.count>0)return true;return cats.some(function(x){return x.parent===c.id&&hasProducts(x);});} function catItem(href,attr,icon,label,cls){ return '
  • '+label+'
  • '; } function renderCats(){ clearCatList(); var h=catItem(SHOP,'data-kat=""','grid','Wszystkie produkty'); cats.filter(function(c){return !c.parent&&hasProducts(c);}).forEach(function(c){h+=catItem(c.link,'data-kat="'+esc(c.slug)+'"',iconFor(c),esc(dec(c.name)));}); h+=catItem(SHOP+'?promo=1','data-special="promo"','tag','Promocje','om-hot'); h+=catItem(SHOP,'data-special="new"','new','Nowości'); h+=catItem(SHOP+'?sort=popularity-desc','data-special="best"','star','Bestsellery'); catList.insertAdjacentHTML('beforeend',h); } function fillCatSelect(){ var h='Wszystkie kategorie'; (function walk(parent,depth){ cats.filter(function(c){return (c.parent||0)===parent&&hasProducts(c);}).forEach(function(c){ h+=''+(depth?'\u00a0\u00a0'.repeat(depth)+'– ':'')+esc(dec(c.name))+''; walk(c.id,depth+1); }); })(0,0); selCat.innerHTML=h; } function loadCats(){ clearCatList(); catList.insertAdjacentHTML('beforeend','
  • Wczytywanie kategorii…
  • '); return api('/products/categories?per_page=100').then(function(res){ cats=(res.data||[]).filter(function(c){return HIDE.indexOf(c.slug)<0;}); cats.forEach(function(c){catBySlug[c.slug]=c;catById[c.id]=c;}); renderCats(); fillCatSelect(); }).catch(function(){ clearCatList(); catList.insertAdjacentHTML('beforeend','
  • Nie udało się wczytać kategorii.
  • '); }); } /* ---------- kafelki produktów ---------- */ function buildQuery(){ var p=new URLSearchParams(), so=SORTS[S.sort]||SORTS['date-desc']; p.set('per_page',S.per); p.set('page',S.page); p.set('orderby',so[0]); p.set('order',so[1]); if(S.kat&&catBySlug[S.kat]) p.set('category',catBySlug[S.kat].id); if(S.promo) p.set('on_sale','true'); if(S.q) p.set('search',S.q); if(S.price){var r=S.price.split('-'),f=Math.pow(10,minorUnit);if(r[0]) p.set('min_price',Math.round(+r[0]*f));if(r[1]) p.set('max_price',Math.round(+r[1]*f));} if(S.stock) p.append('stock_status[]',S.stock); return p.toString(); } function skeleton(){ var h='',n=Math.min(S.per,8); for(var i=0;i<n;i++) h+=''; grid.innerHTML=h; } var NOIMG='data:image/svg+xml;utf8,'+encodeURIComponent(''); function priceHtml(p){ var pr=p.prices||{}; if(pr.price_range&&pr.price_range.min_amount!==pr.price_range.max_amount) return '

    od'+money(pr.price_range.min_amount,pr)+'

    '; if(p.on_sale&&pr.regular_price&&pr.regular_price!==pr.price) return '

    '+money(pr.regular_price,pr)+''+money(pr.price,pr)+'

    '; return '

    '+(pr.price?money(pr.price,pr):'')+'

    '; } function cardHtml(p,favs){ var img=(p.images&&p.images[0])||null, name=dec(p.name), pr=p.prices||{}, tag=''; if(!p.is_in_stock) tag='Niedostępny'; else if(p.on_sale){ var pct=''; if(pr.regular_price&&pr.sale_price&&+pr.regular_price>0){var d=Math.round((1-pr.sale_price/pr.regular_price)*100);if(d>0)pct=' -'+d+'%';} tag='Promocja'+pct+''; } var imgHtml=img?''+esc(img.alt||name)+'':'SKLEP'; var rating=parseFloat(p.average_rating)||0, rc=p.review_count||0; var rate=rc>0?'('+rc+')':''; var btn; if(p.is_in_stock&&p.is_purchasable&&p.type==='simple') btn=''; else if(!p.is_in_stock) btn='Zobacz produkt'; else btn='Wybierz opcje'; var fav=favs.indexOf(p.id)>-1; return '
  • '+tag+imgHtml+''+ ''+ '

    '+esc(name)+'

    '+rate+'
    '+priceHtml(p)+btn+'
  • '; } function renderPager(total){ if(!pager) return; if(total=1&&n<=total)show[n]=1;}); function link(n,label,aria){return '
  • '+label+'
  • ';} if(cur>1) h+=link(cur-1,'','Poprzednia strona'); for(var n=1;n1)h+='
  • …
  • ';h+=link(n,n);last=n;} if(cur<total) h+=link(cur+1,'','Następna strona'); pager.innerHTML=h; } function loadProducts(scroll){ var my=++reqId; writeUrl(); syncControls(); skeleton(); if(scroll){var y=$('.om-main').getBoundingClientRect().top+window.pageYOffset-90;if(window.pageYOffset>y) window.scrollTo({top:y,behavior:'smooth'});} api('/products?'+buildQuery()).then(function(res){ if(my!==reqId) return; var list=res.data||[], total=parseInt(res.headers.get('X-WP-Total'),10)||list.length, pages=parseInt(res.headers.get('X-WP-TotalPages'),10)||1; if(list[0]&&list[0].prices&&list[0].prices.currency_minor_unit!=null) minorUnit=list[0].prices.currency_minor_unit; if(S.page>pages&&pages>0){S.page=pages;return loadProducts(false);} foundEl.textContent='Znaleziono '+total.toLocaleString('pl-PL')+' '+plural(total); if(!list.length) grid.innerHTML='
  • Brak produktów spełniających wybrane kryteria.

  • '; else{var favs=store('om_fav')||[];grid.innerHTML=list.map(function(p){return cardHtml(p,favs);}).join('');} renderPager(pages); }).catch(function(){ if(my!==reqId) return; foundEl.textContent=''; grid.innerHTML='
  • Nie udało się wczytać produktów.

  • '; if(pager) pager.innerHTML=''; }); } /* ---------- koszyk w nagłówku ---------- */ function updateCart(cart){ if(!cart) return; var badge=$('.om-cart .om-badge'), total=$('.om-cart b'); if(badge) badge.textContent=cart.items_count||0; if(total&&cart.totals) total.innerHTML=money(cart.totals.total_price,cart.totals); } function loadCart(){return api('/cart').then(function(r){updateCart(r.data);}).catch(function(){});} function addToCart(btn){ var id=parseInt(btn.dataset.add,10), fb=btn.dataset.fallback, label=btn.innerHTML; btn.disabled=true; btn.textContent='Dodawanie…'; (nonce?Promise.resolve():loadCart()).then(function(){ return api('/cart/add-item',{method:'POST',headers:{'Content-Type':'application/json','Nonce':nonce,'X-WC-Store-API-Nonce':nonce},body:JSON.stringify({id:id,quantity:1})}); }).then(function(r){ updateCart(r.data); btn.textContent=' Dodano'; toast('Dodano do koszyka'); if(window.jQuery) window.jQuery(document.body).trigger('wc_fragment_refresh'); setTimeout(function(){btn.disabled=false;btn.innerHTML=label;},1800); }).catch(function(){ if(fb) location.href=fb; else {btn.disabled=false;btn.innerHTML=label;} }); } /* ---------- ulubione (zapamiętywane w przeglądarce) ---------- */ function toggleFav(btn){ var id=parseInt(btn.dataset.fav,10), f=store('om_fav')||[], i=f.indexOf(id); if(i>-1) f.splice(i,1); else f.push(id); store('om_fav',f); var on=i0) return; var t=e.target.closest('[data-add],[data-fav],[data-page],[data-kat],[data-special],[data-reset],[data-retry]'); if(!t) return; if(t.dataset.add){e.preventDefault();addToCart(t);return;} if(t.dataset.fav){e.preventDefault();toggleFav(t);return;} if(t.dataset.page){e.preventDefault();go({page:parseInt(t.dataset.page,10)},true);return;} if(t.hasAttribute('data-retry')){loadProducts(false);return;} if(t.hasAttribute('data-reset')){resetAll();return;} if(t.dataset.special){ e.preventDefault(); if(t.dataset.special==='promo') go({kat:'',promo:true,q:''},true); else if(t.dataset.special==='new') go({kat:'',promo:false,q:'',sort:'date-desc'},true); else go({kat:'',promo:false,q:'',sort:'popularity-desc'},true); closeDrawer(); return; } if(t.dataset.kat!==undefined){ if(t.dataset.kat&&!catBySlug[t.dataset.kat]) return; e.preventDefault(); go({kat:t.dataset.kat,promo:false,q:''},true); closeDrawer(); } }); selCat.addEventListener('change',function(){go({kat:selCat.value});}); selPrice.addEventListener('change',function(){go({price:selPrice.value});}); selStock.addEventListener('change',function(){go({stock:selStock.value});}); selSort.addEventListener('change',function(){go({sort:selSort.value});}); if(selPP) selPP.addEventListener('change',function(){go({per:parseInt(selPP.value,10)});}); clearBtn.addEventListener('click',resetAll); /* ---------- start ---------- */ readUrl(); loadCart(); loadCats().then(function(){loadProducts(false);}); })();