.shop-all-wrapper{display:flex;max-width:1400px;margin:0 auto;padding:30px 20px;gap:28px;font-family:inherit}
.sb-sidebar{width:260px;flex-shrink:0}
.sb-sidebar h2{font-size:18px;font-weight:700;margin:0 0 16px;padding-bottom:10px;border-bottom:2px solid #222;text-transform:uppercase;letter-spacing:.06em}
.sb-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.sb-pill{display:inline-flex;align-items:center;gap:4px;background:#222;color:#fff;font-size:11px;padding:3px 9px;border-radius:20px;cursor:pointer;white-space:nowrap}
.sb-pill:hover{background:#c0392b}
.sb-clear{display:none;background:none;border:none;font-size:12px;color:#c0392b;cursor:pointer;padding:0;text-decoration:underline;margin-bottom:12px}
.sb-clear.on{display:inline-block}
.sb-fg{margin-bottom:4px;border-bottom:1px solid #eee}
.sb-fh{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#111;margin:0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:11px 0;user-select:none}
.sb-fh:hover{color:#c0392b}
.ar{display:inline-block;transition:transform .25s;font-size:11px;color:#888}
.sb-fg.open .ar{transform:rotate(180deg)}
.sb-ul{list-style:none;margin:0;padding:0;max-height:0;overflow:hidden;transition:max-height .3s ease,padding .2s ease}
.sb-fg.open .sb-ul{max-height:600px;padding-bottom:10px}
.sb-ul li{margin-bottom:6px}
.sb-ul label{display:flex;align-items:center;gap:8px;font-size:13px;color:#444;cursor:pointer;line-height:1.35}
.sb-ul label:hover{color:#000}
.sb-ul input[type=checkbox]{cursor:pointer;accent-color:#111;width:14px;height:14px;flex-shrink:0}
.sb-fc{color:#999;font-size:11px;margin-left:auto;padding-left:4px}
.sb-main{flex:1;min-width:0}
.sb-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:10px}
.sb-count{font-size:13px;color:#666}
.sb-sort select{font-size:13px;padding:7px 10px;border:1px solid #ddd;border-radius:6px;cursor:pointer;background:#fff}
.sb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}
.sb-card{border:1px solid #eee;border-radius:10px;overflow:hidden;background:#fff;transition:box-shadow .2s,transform .2s;display:flex;flex-direction:column;position:relative}
.sb-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);transform:translateY(-2px)}
.sb-card-img{position:relative;overflow:hidden}
.sb-card-img img{width:100%;aspect-ratio:1;object-fit:cover;background:#f8f8f8;display:block}
.sb-card-overlay{position:absolute;bottom:0;left:0;right:0;padding:10px;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 100%);opacity:0;transition:opacity .2s;display:flex;gap:6px}
.sb-card:hover .sb-card-overlay{opacity:1}
.sb-atc,.sb-qv{flex:1;padding:8px 6px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;text-align:center;text-transform:uppercase;letter-spacing:.04em;transition:background .15s}
.sb-atc{background:#111;color:#fff}
.sb-atc:hover{background:#c0392b}
.sb-atc.sb-added{background:#27ae60}
.sb-atc:disabled{background:#666;cursor:not-allowed}
.sb-qv{background:rgba(255,255,255,.9);color:#111}
.sb-qv:hover{background:#fff}
.sb-card a{text-decoration:none;color:inherit;display:flex;flex-direction:column;height:100%}
.sb-card-body{padding:12px;flex:1;display:flex;flex-direction:column;gap:4px}
.sb-card-vendor{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#999;font-weight:600}
.sb-card-title{font-size:13px;font-weight:600;color:#111;line-height:1.35}
.sb-card-price{font-size:14px;font-weight:700;color:#111;margin-top:auto;padding-top:6px}
.sb-card-oos{font-size:11px;color:#c0392b;font-weight:600}
.sb-nores{text-align:center;padding:60px 20px;color:#888;font-size:15px;grid-column:1/-1}
.sb-mob{display:none;width:100%;padding:12px 16px;background:#111;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;margin-bottom:16px;text-transform:uppercase;letter-spacing:.05em;text-align:left}
.sb-mob-inner{display:flex;justify-content:space-between;align-items:center}
.sb-mob-count{background:#c0392b;color:#fff;font-size:10px;border-radius:10px;padding:2px 7px;display:none}
.sb-mob-count.on{display:inline-block}
.sb-modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9999;align-items:center;justify-content:center;padding:20px}
.sb-modal-bg.open{display:flex}
.sb-modal{background:#fff;border-radius:14px;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.sb-modal-head{display:flex;align-items:flex-start;gap:16px;padding:20px 20px 0}
.sb-modal-img{width:120px;height:120px;object-fit:cover;border-radius:10px;flex-shrink:0;background:#f8f8f8}
.sb-modal-info{flex:1;min-width:0}
.sb-modal-vendor{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#999;font-weight:600;margin-bottom:4px}
.sb-modal-title{font-size:16px;font-weight:700;color:#111;line-height:1.3;margin-bottom:6px}
.sb-modal-price{font-size:18px;font-weight:700;color:#111}
.sb-modal-body{padding:16px 20px 20px}
.sb-modal-close{position:absolute;top:14px;right:14px;background:none;border:none;font-size:22px;cursor:pointer;color:#666;line-height:1;padding:4px 8px;border-radius:6px}
.sb-modal-close:hover{background:#f0f0f0;color:#111}
.sb-modal-wrap{position:relative}
.sb-opt-group{margin-bottom:14px}
.sb-opt-group label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#555;margin-bottom:6px}
.sb-opt-group select{width:100%;padding:9px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;background:#fff;cursor:pointer}
.sb-qty-row{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.sb-qty-row label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#555}
.sb-qty{display:flex;align-items:center;border:1px solid #ddd;border-radius:8px;overflow:hidden}
.sb-qty button{width:36px;height:36px;background:none;border:none;font-size:18px;cursor:pointer;color:#111;transition:background .1s}
.sb-qty button:hover{background:#f5f5f5}
.sb-qty input{width:44px;height:36px;border:none;border-left:1px solid #ddd;border-right:1px solid #ddd;text-align:center;font-size:14px;font-weight:600}
.sb-modal-atc{width:100%;padding:13px;background:#111;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;transition:background .15s}
.sb-modal-atc:hover{background:#c0392b}
.sb-modal-atc.sb-added{background:#27ae60}
.sb-modal-atc:disabled{background:#999;cursor:not-allowed}
.sb-modal-oos{color:#c0392b;font-size:13px;font-weight:600;margin-bottom:8px}
.sb-toast{position:fixed;bottom:24px;right:24px;background:#111;color:#fff;padding:14px 18px;border-radius:10px;font-size:14px;font-weight:500;z-index:99999;display:flex;align-items:center;gap:12px;box-shadow:0 8px 24px rgba(0,0,0,.25);transform:translateY(20px);opacity:0;transition:transform .3s,opacity .3s;pointer-events:none}
.sb-toast.show{transform:translateY(0);opacity:1;pointer-events:auto}
.sb-toast a{color:#4fc3f7;text-decoration:none;font-weight:600}
.sb-toast a:hover{text-decoration:underline}
@media(max-width:900px){.sb-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}}
@media(max-width:768px){.shop-all-wrapper{flex-direction:column;padding:16px 14px;gap:0}.sb-mob{display:block}.sb-sidebar{width:100%;display:none;border:1px solid #e0e0e0;border-radius:10px;padding:16px;margin-bottom:16px;background:#fafafa}.sb-sidebar.open{display:block}.sb-grid{grid-template-columns:repeat(2,1fr);gap:12px}.sb-card-title{font-size:12px}.sb-top{margin-bottom:12px}.sb-sort select{font-size:12px;padding:6px 8px}.sb-card-overlay{opacity:1}.sb-modal{margin:10px}}
@media(max-width:400px){.sb-grid{grid-template-columns:repeat(2,1fr);gap:8px}.sb-card-body{padding:8px}.shop-all-wrapper{padding:12px 10px}}
Price: Low to High
Price: High to Low
A – Z
Z – A
var SB_ALLP=[], SB_ACT={vendor:[],type:[],flavour:[],size:[],nic:[],avail:[]}, SB_PER=24, SB_MPROD=null;
var SB_FTAGS={
fruity:[“strawberry”,”mango”,”peach”,”watermelon”,”grape”,”lemon”,”blueberry”,”raspberry”,”rasberry”,”cherry”,”apple”,”pineapple”,”kiwi”,”melon”,”citrus”,”tropical”,”dragonfruit”,”dragon fruit”,”blue razz”,”razz”,”passion fruit”,”guava”,”lychee”,”pomegranate”,”cranberry”,”blackberry”,”acai”,”slapple”,”fruit”,”berry”],
menthol:[“menthol”,”mint”,”cool”,”ice”,”freeze”,”spearmint”,”peppermint”,”polar”,”arctic”,”glacier”,”frost”,”chilled”,”iced”],
dessert:[“custard”,”vanilla”,”caramel”,”cookie”,”cake”,”donut”,”doughnut”,”cream”,”cheesecake”,”waffle”,”pastry”,”baked”,”pudding”,”tart”,”eclair”,”churro”,”tiramisu”,”brulee”,”salted caramel”,”creamy caramel”,”white chocolate”,”whipped”,”glaze”,”maple glaze”,”ice cream”,”creamy”,”dessert”,”desert”],
tobacco:[“tobacco”,”cigar”,”cuban”,”pipe”,”ryo”,”virginia”,”burley”],
candy:[“candy”,”gummy”,”gummies”,”sour”,”sugar”,”cotton candy”,”bubblegum”,”sweet”,”hard candy”,”jolly”,”skittle”,”starburst”,”nerds”,”taffy”,”lollipop”,”absolute”],
beverage:[“coffee”,”latte”,”tea”,”cola”,”soda”,”juice”,”lemonade”,”energy”,”espresso”,”mocha”,”macchiato”,”horchata”,”milkshake”,”smoothie”,”punch”,”slushie”,”slush”,”beverage”,”cold brew”,”cappuccino”,”americano”],
bakery:[“bread”,”muffin”,”cinnamon”,”tart”,”pie”,”brownie”,”scone”,”danish”,”croissant”,”biscuit”,”wafer”,”pretzel”,”pancake”,”french toast”,”oatmeal”,”granola”,”breakfast”,”bakery”,”smores”,”s’mores”,”buttermilk”],
cereal:[“cereal”,”granola”,”corn”,”pops”,”crunch”,”loops”,”flakes”,”wheat”,”oat”],
nut:[“hazelnut”,”peanut”,”almond”,”walnut”,”pistachio”,”pecan”,”cashew”,”peanut butter”,”nutty”],
floral:[“floral”,”rose”,”hibiscus”,”lavender”,”jasmine”,”elderflower”,”violet”,”cucumber”],
tropical:[“tropical”,”coconut”,”papaya”,”starfruit”,”guava”,”lychee”,”dragonfruit”]
};
var SB_STAGS={“30ml”:”30ML”,”60ml”:”60ML”,”100ml”:”100ML”,”120ml”:”120ML”};
var SB_NIC=[“nicotine level”,”nicotine strength”,”nicotine”];
function sbGetF(p){var tags=(p.tags||[]).map(function(t){return t.toLowerCase();});var res=[];Object.keys(SB_FTAGS).forEach(function(k){var match=tags.some(function(t){return SB_FTAGS[k].some(function(w){return t.indexOf(w)!==-1;});});if(match&&res.indexOf(k)===-1)res.push(k);});return res;}
function sbGetS(p){var tags=(p.tags||[]).map(function(t){return t.toLowerCase();});var res=[];Object.keys(SB_STAGS).forEach(function(k){if(tags.indexOf(k)!==-1&&res.indexOf(SB_STAGS[k])===-1)res.push(SB_STAGS[k]);});return res;}
function sbGetN(p){var res=[];(p.variants||[]).forEach(function(v){(p.options||[]).forEach(function(opt,idx){if(SB_NIC.indexOf(opt.name.toLowerCase())!==-1){var val=(v[“option”+(idx+1)]||””).toLowerCase().trim();if(val&&res.indexOf(val)===-1)res.push(val);}});});return res;}
function sbGetPr(p){var vs=p.variants||[];if(!vs.length)return 0;return vs.reduce(function(mn,v){var pr=parseFloat(v.price)||0;return pr!==0&&mn===0?pr:Math.min(mn,pr);},0);}
function sbFmtPr(p){var pr=sbGetPr(p);return pr?(“$”+pr.toFixed(2)):””;}
function sbIsAvail(p){return(p.variants||[]).some(function(v){return v.available;});}
function sbTog(id){var fg=document.getElementById(id);if(!fg)return;if(fg.className.indexOf(“open”)!==-1){fg.className=fg.className.replace(” open”,””);}else{fg.className=fg.className+” open”;}}
function sbMobTog(){var s=document.getElementById(“sbSidebar”);var b=document.getElementById(“sbMobBtn”);var n=sbActCnt();if(s.className.indexOf(“open”)!==-1){s.className=s.className.replace(” open”,””);b.innerHTML=’Filters ‘+(n||””)+’‘;}else{s.className=s.className+” open”;b.innerHTML=’Hide Filters ‘+(n||””)+’‘;}}
function sbActCnt(){var t=0;[“vendor”,”type”,”flavour”,”size”,”nic”,”avail”].forEach(function(k){t=t+(SB_ACT[k]?SB_ACT[k].length:0);});return t;}
function sbBuild(){var vc={},tc={},fc={},sc={},nc={},ac={“In Stock”:0,”Out of Stock”:0};SB_ALLP.forEach(function(p){var v=p.vendor||””;if(v)vc[v]=(vc[v]||0)+1;var t=p.product_type||””;if(t)tc[t]=(tc[t]||0)+1;sbGetF(p).forEach(function(f){fc[f]=(fc[f]||0)+1;});sbGetS(p).forEach(function(s){sc[s]=(sc[s]||0)+1;});sbGetN(p).forEach(function(n){nc[n]=(nc[n]||0)+1;});if(sbIsAvail(p))ac[“In Stock”]++;else ac[“Out of Stock”]++;});
function pop(ulId,obj,sort){var ul=document.getElementById(ulId);if(!ul)return;var keys=Object.keys(obj);if(sort===”alpha”)keys.sort();else if(sort===”num”)keys.sort(function(a,b){return(parseInt(a)||0)-(parseInt(b)||0);});ul.innerHTML=””;keys.forEach(function(k){var li=document.createElement(“li”);li.innerHTML=’“;ul.appendChild(li);});}
pop(“sbfVendor”,vc,”alpha”);pop(“sbfType”,tc,”alpha”);pop(“sbfFlavour”,fc,”alpha”);pop(“sbfSize”,sc,”alpha”);pop(“sbfNic”,nc,”num”);pop(“sbfAvail”,ac,”alpha”);}
function sbChk(el){var k=el.closest(“[data-k]”).getAttribute(“data-k”);var v=el.value;if(el.checked){if(SB_ACT[k].indexOf(v)===-1)SB_ACT[k].push(v);}else{SB_ACT[k]=SB_ACT[k].filter(function(x){return x!==v;});}sbRender();sbPills();}
function sbClearAll(){[“vendor”,”type”,”flavour”,”size”,”nic”,”avail”].forEach(function(k){SB_ACT[k]=[];});document.querySelectorAll(“.sb-ul input[type=checkbox]”).forEach(function(c){c.checked=false;});sbRender();sbPills();}
function sbRmPill(k,v){SB_ACT[k]=SB_ACT[k].filter(function(x){return x!==v;});document.querySelectorAll(“.sb-ul input[type=checkbox]”).forEach(function(c){if(c.value===v&&c.closest(“[data-k]”).getAttribute(“data-k”)===k)c.checked=false;});sbRender();sbPills();}
function sbPills(){var pills=document.getElementById(“sbPills”);var clr=document.getElementById(“sbClear”);var mc=document.getElementById(“sbMobCount”);if(!pills)return;pills.innerHTML=””;var total=0;[“vendor”,”type”,”flavour”,”size”,”nic”,”avail”].forEach(function(k){(SB_ACT[k]||[]).forEach(function(v){total++;var span=document.createElement(“span”);span.className=”sb-pill”;span.innerHTML=v+” x”;span.onclick=(function(kk,vv){return function(){sbRmPill(kk,vv);};})(k,v);pills.appendChild(span);});});clr.className=”sb-clear”+(total?” on”:””);if(mc){mc.textContent=total||””;mc.className=”sb-mob-count”+(total?” on”:””);}}
function sbFilt(ps){return ps.filter(function(p){if(SB_ACT.vendor.length&&SB_ACT.vendor.indexOf(p.vendor)===-1)return false;if(SB_ACT.type.length&&SB_ACT.type.indexOf(p.product_type)===-1)return false;if(SB_ACT.flavour.length){var pf=sbGetF(p);if(!SB_ACT.flavour.some(function(f){return pf.indexOf(f)!==-1;}))return false;}if(SB_ACT.size.length){var ps2=sbGetS(p);if(!SB_ACT.size.some(function(s){return ps2.indexOf(s)!==-1;}))return false;}if(SB_ACT.nic.length){var pn=sbGetN(p);if(!SB_ACT.nic.some(function(n){return pn.indexOf(n)!==-1;}))return false;}if(SB_ACT.avail.length){var av=sbIsAvail(p)?”In Stock”:”Out of Stock”;if(SB_ACT.avail.indexOf(av)===-1)return false;}return true;});}
function sbSrt(ps){var sel=document.getElementById(“sbSort”);var v=sel?sel.value:”featured”;var arr=ps.slice();if(v===”asc”)arr.sort(function(a,b){return sbGetPr(a)-sbGetPr(b);});else if(v===”desc”)arr.sort(function(a,b){return sbGetPr(b)-sbGetPr(a);});else if(v===”az”)arr.sort(function(a,b){return a.title.localeCompare(b.title);});else if(v===”za”)arr.sort(function(a,b){return b.title.localeCompare(a.title);});return arr;}
function sbRender(){var grid=document.getElementById(“sbGrid”);var cnt=document.getElementById(“sbCount”);if(!grid)return;var filt=sbFilt(SB_ALLP);var sorted=sbSrt(filt);var total=sorted.length;var slice=sorted.slice(0,SB_PER);if(cnt)cnt.textContent=total+” product”+(total!==1?”s”:””);grid.innerHTML=””;if(!slice.length){grid.innerHTML=’
‘;return;}
slice.forEach(function(p){
var img=p.images&&p.images[0]?p.images[0].src:””;
var pr=sbFmtPr(p);
var av=sbIsAvail(p);
var single=p.variants&&p.variants.length===1;
var card=document.createElement(“div”);
card.className=”sb-card”;
var overlayBtns=””;
if(!av){
overlayBtns=’‘;
} else if(single){
overlayBtns=’‘;
} else {
overlayBtns=’‘;
}
card.innerHTML=’‘+
‘
(img?’
‘
‘+
‘
‘+
‘
‘+(pr?’
‘:””) +(!av?’
‘:””)+’
‘;
grid.appendChild(card);
});
}
var SB_TOAST_TIMER=null;
function sbShowToast(msg){
var t=document.getElementById(“sbToast”);
var m=document.getElementById(“sbToastMsg”);
if(!t)return;
m.textContent=msg;
t.className=”sb-toast show”;
if(SB_TOAST_TIMER)clearTimeout(SB_TOAST_TIMER);
SB_TOAST_TIMER=setTimeout(function(){t.className=”sb-toast”;},4000);
}
function sbAtcPost(variantId, qty, btn, label){
if(btn){btn.disabled=true;btn.textContent=”Adding…”;}
var xhr=new XMLHttpRequest();
xhr.open(“POST”,”/cart/add.js”,true);
xhr.setRequestHeader(“Content-Type”,”application/json”);
xhr.setRequestHeader(“Accept”,”application/json”);
xhr.onload=function(){
if(xhr.status===200){
if(btn){btn.textContent=”Added!”;btn.className=btn.className+” sb-added”;}
sbShowToast((label||”Item”)+” added to cart”);
sbUpdateCartCount();
setTimeout(function(){if(btn){btn.disabled=false;btn.textContent=btn.className.indexOf(“sb-modal-atc”)!==-1?”Add to Cart”:”Add to Cart”;btn.className=btn.className.replace(” sb-added”,””);}},2000);
} else {
var err=JSON.parse(xhr.responseText);
if(btn){btn.disabled=false;btn.textContent=”Add to Cart”;}
sbShowToast(err.description||”Could not add to cart”);
}
};
xhr.send(JSON.stringify({id:variantId,quantity:qty||1}));
}
function sbUpdateCartCount(){
var xhr=new XMLHttpRequest();
xhr.open(“GET”,”/cart.js”,true);
xhr.onload=function(){
if(xhr.status===200){
var cart=JSON.parse(xhr.responseText);
var counts=document.querySelectorAll(“.cart-count,.js-cart-count,[data-cart-count]”);
counts.forEach(function(el){el.textContent=cart.item_count;});
}
};
xhr.send();
}
function sbDirectAtc(e,variantId,btn){
e.preventDefault();e.stopPropagation();
sbAtcPost(variantId,1,btn,”Item”);
}
function sbQvOpen(e,productId){
e.preventDefault();e.stopPropagation();
var p=null;
for(var i=0;i!==SB_ALLP.length;i++){if(SB_ALLP[i].id===productId){p=SB_ALLP[i];break;}}
if(!p)return;
SB_MPROD=p;
document.getElementById(“sbMImg”).src=p.images&&p.images[0]?p.images[0].src:””;
document.getElementById(“sbMVendor”).textContent=p.vendor||””;
document.getElementById(“sbMTitle”).textContent=p.title||””;
document.getElementById(“sbMQty”).value=1;
sbModalBuildOpts(p);
sbModalUpdatePrice();
document.getElementById(“sbModalBg”).className=”sb-modal-bg open”;
document.body.style.overflow=”hidden”;
}
function sbModalBuildOpts(p){
var opts=document.getElementById(“sbMOpts”);
opts.innerHTML=””;
(p.options||[]).forEach(function(opt,idx){
var vals=[];
(p.variants||[]).forEach(function(v){
var val=v[“option”+(idx+1)];
if(val&&vals.indexOf(val)===-1)vals.push(val);
});
var div=document.createElement(“div”);
div.className=”sb-opt-group”;
var selHtml=’‘+vals.map(function(v){return”+v+”;}).join(“”)+””;
div.innerHTML=selHtml;
opts.appendChild(div);
});
}
function sbModalGetVariant(){
if(!SB_MPROD)return null;
var selects=document.querySelectorAll(“#sbMOpts select”);
var chosen=[];
selects.forEach(function(s){chosen.push(s.value);});
var found=null;
(SB_MPROD.variants||[]).forEach(function(v){
var match=true;
chosen.forEach(function(c,i){if(v[“option”+(i+1)]!==c)match=false;});
if(match)found=v;
});
return found;
}
function sbModalUpdatePrice(){
var v=sbModalGetVariant();
var priceEl=document.getElementById(“sbMPrice”);
var btn=document.getElementById(“sbMBtn”);
var oos=document.getElementById(“sbMOos”);
if(v){
priceEl.textContent=v.price?”$”+parseFloat(v.price).toFixed(2):””;
if(v.available){
btn.disabled=false;btn.textContent=”Add to Cart”;
oos.style.display=”none”;
} else {
btn.disabled=true;btn.textContent=”Out of Stock”;
oos.style.display=”block”;
}
} else {
priceEl.textContent=””;
btn.disabled=true;
}
}
function sbModalAtc(){
var v=sbModalGetVariant();
if(!v||!v.available)return;
var qty=parseInt(document.getElementById(“sbMQty”).value)||1;
var btn=document.getElementById(“sbMBtn”);
sbAtcPost(v.id,qty,btn,SB_MPROD?SB_MPROD.title:”Item”);
}
function sbQtyAdj(delta){
var inp=document.getElementById(“sbMQty”);
var val=parseInt(inp.value)||1;
val=val+delta;
if(val!==0&&val!==100) inp.value=val;
}
function sbModalHide(){
document.getElementById(“sbModalBg”).className=”sb-modal-bg”;
document.body.style.overflow=””;
SB_MPROD=null;
}
function sbModalClose(e){
if(e.target.id===”sbModalBg”)sbModalHide();
}
function sbLoad(){var page=1;SB_ALLP=[];function fetch1(){var xhr=new XMLHttpRequest();xhr.open(“GET”,”/products.json?limit=250&page=”+page,true);xhr.onload=function(){if(xhr.status!==200)return;var data=JSON.parse(xhr.responseText);var prods=data.products||[];SB_ALLP=SB_ALLP.concat(prods);if(prods.length===250){page++;fetch1();}else{sbBuild();sbRender();}};xhr.send();}fetch1();}
document.addEventListener(“DOMContentLoaded”,sbLoad);
if(document.readyState===”complete”||document.readyState===”interactive”){sbLoad();}
