{"product_id":"body-butter-cart","title":"Build Your Own Body Butter (Cart)","description":"\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,700;0,900;1,700\u0026family=Poppins:wght@400;600;800\u0026display=swap');\n.product-form,.product-form__input,variant-selects,variant-radios,.price-per-item__container,.product-form__quantity,.product-form__buttons,product-form,.quantity__label{display:none!important}\n#skbm .skbm-go2{background:#fff;color:var(--rose);border:2px solid var(--rose)}\n.skbm-btns{display:flex;flex-direction:column;gap:10px;flex:1}\n.skbm{--cream:#FBF3E7;--pink:#E58DB2;--rose:#C2577F;--ink:#3A2A1E;--card1:#F6E3EC;--card2:#F8ECDD;\n font-family:'Poppins',sans-serif;color:var(--ink);background:var(--cream);max-width:560px;margin:0 auto 40px;border-radius:0 0 28px 28px;overflow:hidden;box-shadow:0 10px 40px rgba(58,42,30,.08)}\n.skbm *{box-sizing:border-box}\n.skbm-top{background:var(--pink);color:#fff;padding:26px 24px 8px;position:relative}\n.skbm-top .brand{font-weight:800;font-size:12px;letter-spacing:.24em}\n.skbm-top h1{font-family:'Playfair Display',serif;font-weight:900;font-size:52px;line-height:1;margin:4px 0 0;color:#fff!important}\n.skbm-top .cart{position:absolute;right:22px;top:24px;text-align:right}\n.skbm-top .cart b{display:block;font-family:'Playfair Display',serif;font-size:22px;line-height:1.1}\n.skbm-top .cart span{font-size:11px;letter-spacing:.14em;opacity:.95}\n.skbm-drip{display:block;width:100%;height:46px;margin-top:-1px}\n.skbm-body{padding:6px 22px 26px}\n.skbm h2{font-family:'Playfair Display',serif;font-weight:900;color:var(--rose)!important;font-size:30px;margin:6px 0 2px}\n.skbm .hint{font-size:13px;opacity:.8;margin:0 0 14px}\n.skbm-step{background:var(--card1);border-radius:20px;padding:16px;margin:0 0 12px}\n.skbm-step:nth-child(even){background:var(--card2)}\n.skbm-step h3{font-weight:800;font-size:14px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;font-family:'Poppins',sans-serif!important;color:var(--ink)!important}\n.skbm-pills{display:flex;gap:8px;flex-wrap:wrap}\n.skbm-pill{flex:1;min-width:90px;border:2px solid var(--ink);background:#fff;border-radius:999px;padding:10px 8px;font:600 14px 'Poppins',sans-serif;color:var(--ink);cursor:pointer;text-align:center}\n.skbm-pill small{display:block;font-weight:400;font-size:11px;opacity:.75}\n.skbm-pill.on{background:var(--rose);border-color:var(--rose);color:#fff}\n.skbm-pill:disabled{opacity:.35;cursor:not-allowed}\n.skbm-scoops{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}\n.skbm-scoop{background:none;border:0;cursor:pointer;padding:6px 2px;border-radius:16px;text-align:center;position:relative;font-family:'Poppins',sans-serif;color:var(--ink)}\n.skbm-scoop svg{width:64px;height:52px;display:block;margin:0 auto 4px;transition:transform .15s}\n.skbm-scoop:hover svg{transform:translateY(-3px)}\n.skbm-scoop b{display:block;font-size:12px;line-height:1.2;font-weight:600}\n.skbm-scoop .ring{position:absolute;left:50%;top:2px;width:76px;height:64px;margin-left:-38px;border:3px solid #2B4BA8;border-radius:50%;opacity:0;transform:rotate(-8deg) scale(.9);transition:.15s}\n.skbm-scoop.on .ring{opacity:1;transform:rotate(-8deg) scale(1)}\n.skbm-scoop .n{position:absolute;right:6px;top:2px;background:var(--rose);color:#fff;font-size:11px;font-weight:800;width:20px;height:20px;border-radius:50%;line-height:20px;display:none}\n.skbm-scoop.on .n{display:block}\n.skbm-note{font-family:'Playfair Display',serif;font-style:italic;color:#2B4BA8;font-size:16px;min-height:22px;margin:10px 0 0}\n.skbm-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}\n.skbm-price{font-family:'Playfair Display',serif;font-weight:900;font-size:34px}\n.skbm-add{flex:1;background:var(--rose);color:#fff;border:0;border-radius:999px;padding:16px;font:800 15px 'Poppins',sans-serif;letter-spacing:.06em;cursor:pointer}\n.skbm-add:disabled{background:#d9c3cc;cursor:not-allowed}\n.skbm-jars{margin-top:16px;border-top:2px dotted var(--rose);padding-top:12px;font-size:14px;display:none}\n.skbm-jars ol{margin:6px 0 10px;padding-left:20px}\n.skbm-go{display:block;text-align:center;border:2px solid var(--ink);border-radius:999px;padding:12px;font-weight:800;color:var(--ink)!important;text-decoration:none!important}\n.skbm-foot{display:flex;align-items:center;justify-content:space-between;margin-top:22px}\n.skbm-foot p{font-family:'Playfair Display',serif;font-weight:700;font-size:20px;margin:0}\n.skbm-stamp{width:96px;height:96px;border:3px solid var(--rose);border-radius:50%;color:var(--rose);font-weight:800;font-size:11px;letter-spacing:.12em;display:flex;align-items:center;justify-content:center;text-align:center;transform:rotate(-12deg);line-height:1.3}\n.skbm-side{position:absolute;left:-9999px}\n@media(max-width:520px){.skbm-top .cart{position:static;text-align:left;margin-top:8px}}\n@media(max-width:420px){.skbm-top h1{font-size:46px}.skbm-top .cart b{font-size:20px}.skbm-scoop svg{width:54px;height:44px}.skbm-scoop b{font-size:11px}}\n\u003c\/style\u003e\n\u003cdiv class=\"skbm\" id=\"skbm\"\u003e\n \u003cdiv class=\"skbm-top\"\u003e\n  \u003cdiv class=\"brand\"\u003eTHE SKINCARE BAKERY\u003c\/div\u003e\n  \u003ch1\u003eMenu\u003c\/h1\u003e\n  \u003cdiv class=\"cart\"\u003e\n\u003cb id=\"skbm-cartname\"\u003eToday's Cart\u003c\/b\u003e\u003cspan\u003ehand-scooped to order\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n \u003csvg class=\"skbm-drip\" viewbox=\"0 0 560 46\" preserveaspectratio=\"none\"\u003e\u003cpath fill=\"#E58DB2\" d=\"M0 0h560v10c-14 0-14 30-28 30s-12-30-26-30-10 18-24 18-12-18-26-18-14 34-30 34-14-34-28-34-10 14-24 14-12-14-26-14-14 26-28 26-12-26-26-26-12 20-26 20-12-20-26-20-14 32-30 32-14-32-28-32-10 16-24 16-12-16-26-16-14 28-28 28-12-28-26-28-12 14-26 14-12-14-26-14-14 30-30 30S14 10 0 10z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"skbm-body\"\u003e\n  \u003ch2\u003eThe scoops\u003c\/h2\u003e\n  \u003cp class=\"hint\"\u003ebuild your own jar, hand-scooped fresh for you\u003c\/p\u003e\n  \u003cdiv class=\"skbm-step\"\u003e\n\u003ch3\u003e1 · Pick your jar\u003c\/h3\u003e\n\u003cdiv class=\"skbm-pills\" id=\"skbm-size\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"skbm-step\"\u003e\n\u003ch3\u003e2 · How many flavors?\u003c\/h3\u003e\n\u003cdiv class=\"skbm-pills\" id=\"skbm-count\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"skbm-step\"\u003e\n\u003ch3\u003e3 · Circle your flavor\u003cspan id=\"skbm-s\"\u003es\u003c\/span\u003e\n\u003c\/h3\u003e\n\u003cdiv class=\"skbm-scoops\" id=\"skbm-scoops\"\u003e\u003c\/div\u003e\n\u003cp class=\"skbm-note\" id=\"skbm-note\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"skbm-row\"\u003e\n\u003cdiv class=\"skbm-price\" id=\"skbm-price\"\u003e\u003c\/div\u003e\n   \u003cdiv class=\"skbm-btns\"\u003e\n\u003cbutton class=\"skbm-add\" id=\"skbm-checkout\" disabled\u003eADD \u0026amp; CHECKOUT\u003c\/button\u003e\u003cbutton class=\"skbm-add skbm-go2\" id=\"skbm-more\" disabled\u003eADD \u0026amp; BUILD ANOTHER JAR\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"skbm-jars\" id=\"skbm-jars\"\u003e\n\u003cb\u003eIn your bag:\u003c\/b\u003e\u003col id=\"skbm-list\"\u003e\u003c\/ol\u003e\n\u003ca class=\"skbm-go\" href=\"\/checkout\"\u003eCHECKOUT →\u003c\/a\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"skbm-foot\"\u003e\n\u003cp\u003escooped fresh\u003cbr\u003efor you 🧁\u003c\/p\u003e\n\u003cdiv class=\"skbm-stamp\"\u003eSCOOPED\u003cbr\u003eFRESH\u003cbr\u003eON LIVE\u003c\/div\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp style=\"font-size:12px;opacity:.7;text-align:center;max-width:560px;margin:0 auto\"\u003eIngredients \u0026amp; details: whipped body butter, hand-scooped to order. Made fresh, for external use only.\u003c\/p\u003e\n\u003cscript\u003e\n(function(){\nvar PAL={cream:\"#F1E4C8\",vanilla:\"#EBCDB5\",caramel:\"#C88745\",cocoa:\"#8C5A43\",chocolate:\"#6B4030\",pink:\"#F2B5C9\",berry:\"#C24B6E\",strawberry:\"#E8798F\",lavender:\"#C9B6E4\",purple:\"#9C7BC4\",mint:\"#BFE3CF\",blue:\"#B8D8EE\",gold:\"#E6C26E\",peach:\"#F6C4A3\",white:\"#FAF6F0\",coconut:\"#F4EEE2\",pistachio:\"#C8D7A0\",red:\"#C8323C\",black:\"#2C2422\"};\nvar COUNTS=[1,2,4],SIZES=[],FLAVORS=[],CART=\"Today's Cart\",size=0,count=1,picks=[],jars=[];\nvar $=function(id){return document.getElementById(id)};\nfunction shade(hex,amt){var n=parseInt(hex.slice(1),16),r=(n\u003e\u003e16)+amt,g=(n\u003e\u003e8\u0026255)+amt,b=(n\u0026255)+amt;r=Math.max(0,Math.min(255,r));g=Math.max(0,Math.min(255,g));b=Math.max(0,Math.min(255,b));return '#'+((1\u003c\u003c24)+(r\u003c\u003c16)+(g\u003c\u003c8)+b).toString(16).slice(1)}\nfunction scoopSVG(c){return '\u003csvg viewBox=\"0 0 64 52\"\u003e\u003cellipse cx=\"32\" cy=\"47\" rx=\"24\" ry=\"4\" fill=\"rgba(58,42,30,.12)\"\/\u003e\u003cpath d=\"M8 40c0-18 10-32 24-32s24 14 24 32c-3 3-6-1-9 2s-6-2-9 1-6-1-9 1-6-2-9 0-6-2-9 0z\" fill=\"'+c+'\"\/\u003e\u003cpath d=\"M8 40c3 2 5 0 8 1s6 3 9 1 6 1 9-1 6 2 9 0 7 1 10-1\" fill=\"none\" stroke=\"'+shade(c,-28)+'\" stroke-width=\"2\" stroke-linecap=\"round\"\/\u003e\u003cpath d=\"M18 20c3-5 7-8 12-9\" stroke=\"rgba(255,255,255,.7)\" stroke-width=\"3\" fill=\"none\" stroke-linecap=\"round\"\/\u003e\u003cpath d=\"M22 30c6 3 14 3 20 0\" stroke=\"'+shade(c,-18)+'\" stroke-width=\"1.6\" fill=\"none\" stroke-linecap=\"round\" opacity=\".6\"\/\u003e\u003c\/svg\u003e'}\nfunction render(){\n if(!SIZES.length)return;\n $('skbm-size').innerHTML=SIZES.map(function(s,i){return '\u003cbutton class=\"skbm-pill'+(i==size?' on':'')+'\" data-s=\"'+i+'\"'+(s.ok?'':' disabled')+'\u003e'+s.label+'\u003csmall\u003e'+(s.ok?s.price:'sold out')+'\u003c\/small\u003e\u003c\/button\u003e'}).join('');\n $('skbm-count').innerHTML=COUNTS.map(function(c){var dis=c\u003eSIZES[size].max||c\u003eFLAVORS.length;return '\u003cbutton class=\"skbm-pill'+(c==count?' on':'')+'\" data-c=\"'+c+'\"'+(dis?' disabled':'')+'\u003e'+(c==4?'All four':c==1?'One':'Two')+'\u003csmall\u003e'+(c==1?'single scoop':c==2?'half \u0026 half':'8 oz only')+'\u003c\/small\u003e\u003c\/button\u003e'}).join('');\n $('skbm-scoops').innerHTML=FLAVORS.map(function(f,i){var k=picks.indexOf(i);return '\u003cbutton class=\"skbm-scoop'+(k\u003e-1?' on':'')+'\" data-f=\"'+i+'\"\u003e\u003cspan class=\"ring\"\u003e\u003c\/span\u003e\u003cspan class=\"n\"\u003e'+(k+1)+'\u003c\/span\u003e'+scoopSVG(f.color)+'\u003cb\u003e'+f.name+'\u003c\/b\u003e\u003c\/button\u003e'}).join('');\n $('skbm-s').style.display=count\u003e1?'':'none';\n var left=count-picks.length;\n $('skbm-note').textContent=left\u003e0?('circle '+left+' more'):(SIZES[size].label+' — '+picks.map(function(i){return FLAVORS[i].name}).join(' + '));\n $('skbm-price').textContent=SIZES[size].price;\n $('skbm-checkout').disabled=$('skbm-more').disabled=left!==0||!SIZES[size].ok;\n}\n$('skbm').addEventListener('click',function(e){\n var b=e.target.closest('button');if(!b||b.disabled||b.classList.contains('skbm-add'))return;\n if(b.dataset.s!=null){size=+b.dataset.s;if(count\u003eSIZES[size].max)count=SIZES[size].max;picks=picks.slice(0,count);}\n else if(b.dataset.c!=null){count=+b.dataset.c;picks=picks.slice(0,count);}\n else if(b.dataset.f!=null){var i=+b.dataset.f,k=picks.indexOf(i);if(k\u003e-1)picks.splice(k,1);else{if(count==1)picks=[i];else if(picks.length\u003ccount)picks.push(i);}}\n render();\n});\nfunction add(go){\n var s=SIZES[size],props={'Cart':CART,'Flavors':picks.map(function(i){return FLAVORS[i].name}).join(' + ')};\n picks.forEach(function(i,n){props['Scoop '+(n+1)]=FLAVORS[i].name});\n var btn=go?$('skbm-checkout'):$('skbm-more');btn.disabled=true;btn.textContent='ADDING…';\n fetch('\/cart\/add.js',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({items:[{id:s.id,quantity:1,properties:props}]})})\n .then(function(r){if(!r.ok)throw 0;return r.json()})\n .then(function(){if(go){location.href='\/checkout';return}\n  jars.push(s.label+' — '+props['Flavors']);$('skbm-list').innerHTML=jars.map(function(j){return '\u003cli\u003e'+j+'\u003c\/li\u003e'}).join('');$('skbm-jars').style.display='block';\n  btn.textContent='ADDED! BUILD YOUR NEXT JAR';picks=[];setTimeout(function(){btn.textContent='ADD \u0026 BUILD ANOTHER JAR';render()},1400);\n  document.querySelectorAll('.cart-count-bubble span[aria-hidden]').forEach(function(el){el.textContent=(+el.textContent||0)+1});})\n .catch(function(){btn.textContent='TRY AGAIN';btn.disabled=false});\n}\n$('skbm-checkout').onclick=function(){add(true)};$('skbm-more').onclick=function(){add(false)};\nvar h=location.pathname.split('\/products\/')[1];h=h?h.split(\/[\/?#]\/)[0]:'body-butter-cart';\nfetch('\/products\/'+h+'.js').then(function(r){return r.json()}).then(function(p){\n p.tags.forEach(function(t){var m=t.match(\/^scent:\\s*(.+)$\/i),c=t.match(\/^cart:\\s*(.+)$\/i);\n  if(c)CART=c[1].trim();\n  if(m){var parts=m[1].split('|'),nm=parts[0].trim(),col=(parts[1]||'cream').trim().toLowerCase();FLAVORS.push({name:nm,color:\/^#?[0-9a-f]{6}$\/.test(col)?(col[0]=='#'?col:'#'+col):(PAL[col]||PAL.cream)});}});\n FLAVORS=FLAVORS.slice(0,4);$('skbm-cartname').textContent=CART;\n SIZES=p.variants.map(function(v){var l=v.title;return {id:v.id,label:l,ok:v.available,price:'$'+(v.price\/100).toFixed(2).replace(\/\\.00$\/,''),max:\/8|10\/.test(l)?4:2}});\n var firstOk=SIZES.findIndex(function(s){return s.ok});size=firstOk\u003e-1?firstOk:0;render();\n});\n})();\n\u003c\/script\u003e","brand":"The Skincare Bakery","offers":[{"title":"4 oz","offer_id":46007674142743,"sku":null,"price":18.0,"currency_code":"USD","in_stock":true},{"title":"8 oz","offer_id":46007674175511,"sku":null,"price":32.0,"currency_code":"USD","in_stock":true}],"url":"https:\/\/www.theskincarebakery.com\/products\/body-butter-cart","provider":"The Skincare Bakery","version":"1.0","type":"link"}