1<!doctype html> 2<html lang="en"> 3 <head> 4 <!--LOOMI SDK--> 5<!--DO NOT EDIT--> 6<link rel="preconnect" href="https://live.visually-io.com/" crossorigin data-em-disable> 7<link rel="dns-prefetch" href="https://live.visually-io.com/" data-em-disable>
8<script> 9 (()=> { 10 const env = 2; 11 var store = "naakbar.myshopify.com"; 12 var alias = store.replace(".myshopify.com", "").replaceAll("-", "_").toUpperCase(); 13 var jitsuKey = "js.12429414"; 14 var themeId = 186884456752; 15 var role = "main"; 16 window.loomi_ctx = {...(window.loomi_ctx || {}),storeAlias:alias,jitsuKey,env,themeId,role}; 17 (()=>{window.loomi_ctx.cc=1})() 18 19 20 21 var product = {}; 22 var variants = []; 23 24 variants.push({id:50970992935216,policy:"deny",price:4800,iq:72}); 25 26 product.variants = variants; 27 product.oos = !true; 28 product.price = 4800 ; 29 window.loomi_ctx.current_product=product; 30 window.loomi_ctx.productId=10099179225392; 31 window.loomi_ctx.variantId = 50970992935216; 32 33 34 window.loomi_ctx.blockingConcent = ; 35 loomi_ctx.ttl=1779053127; 36 37 !function(){var n,t,e;!function(n){n.JSCondition="jsCondition",n.JSFunction="jsFunction",n.JSEvent="jsEvent",n.Selector="selector",n.ElementEvent="elementEvent",n.PageLoad="pageLoad",n.Timeout="timeout",n.Inactivity="inactivity",n.ExitIntent="exitIntent",n.Conjunction="conjunction"}(n||(n={})),function(n){n[n.PAUSED=4]="PAUSED"}(t||(t={})),function(n){n[n.LOCAL=0]="LOCAL",n[n.STAGE=1]="STAGE",n[n.PROD=2]="PROD",n[n.TEST=3]="TEST"}(e||(e={}));var r,i="lmi_preview";function o(){return o=Object.assign?Object.assign.bind():function(n){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var r in e)({}).hasOwnProperty.call(e,r)&&(n[r]=e[r])}return n},o.apply(null,arguments)}function c(n,t){n.prototype=Object.create(t.prototype),n.prototype.constructor=n,a(n,t)}function a(n,t){return a=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,t){return n.__proto__=t,n},a(n,t)}!function(n){n.USE_CASE="USE_CASE",n.ADD_TO_CART="ADD_TO_CART"}(r||(r={})),window.addEventListener("load",function(){setTimeout(function(){},2e3)});var u="vslyCtags",s=function(){return new Date(1e3*Math.floor(Date.now()/1e3))};function l(n,t,e,r){return void 0===t&&(t=500),void 0===e&&(e=4),new Promise(function(i,o){n()?i(0):0!==e?setTimeout(function(){r&&r()&&o("condition rejected "+f(function(){return n.toString()})),l(n,t,e-1).then(i).catch(o)},t):o("condition rejected "+f(function(){return n.toString()}))})}function f(n,t){void 0===t&&(t=void 0);try{return n()}catch(n){return t}}var d=function(n){return n&&decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(n).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null};function v(){return m(function(){var n=new Function(document.querySelector('script[id="__st"]').textContent+";return __st.cid.toString()")();return n&&window.localStorage.setItem("vsly__st",n),!0}),f(function(){return window.__st.cid.toString()})||window.localStorage.getItem("vsly__st")}function m(n,t,e){void 0===t&&(t=5),void 0===e&&(e=500),t>=0&&!f(n)&&setTimeout(function(){f(n)||m(n,t-1)},e)}var w=/*#__PURE__*/function(){function n(n,t){this._value=void 0,this._addedAt=void 0,this._value=n,this._addedAt=t||(new Date).getTime()}var t=n.prototype;return t.value=function(){return this._value},t.addedAt=function(){return this._addedAt},n}(),g=/*#__PURE__*/function(){function n(n,t){this.backend=void 0,this.ttlMillis=void 0,this.backend=n,this.ttlMillis=t}var t=n.prototype;return t.isValid=function(n){return!!n&&(new Date).getTime()-n.addedAt()<=this.ttlMillis},t.get=function(n){var t=this.backend.get(n),e=this.isValid(t);if(t&&e)return t.value();e||this.backend.remove(n)},t.set=function(n,t,e){var r=new w(t,e);this.backend.set(n,r)},n}(),p=/*#__PURE__*/function(){function n(n){this.namespace=void 0,this.namespace="vsly_cache_"+n,window[this.namespace]={}}var t=n.prototype;return t.get=function(n){var t=this;return f(function(){return window[t.namespace][n]})},t.remove=function(n){var t=this;f(function(){return delete window[t.namespace][n]})},t.set=function(n,t){window[this.namespace][n]=t},n}(),h=/*#__PURE__*/function(){function n(n){this.namespace=void 0,this.namespace="vsly_cache_"+n}var t=n.prototype;return t.get=function(n){var t=this;return f(function(){var e=sessionStorage.getItem(t.namespace+"_"+n);if(e){var r=JSON.parse(e);return new w(r._value,r._addedAt)}})},t.remove=function(n){sessionStorage.removeItem(this.namespace+"_"+n)},t.set=function(n,t){sessionStorage.setItem(this.namespace+"_"+n,JSON.stringify(t))},n}(),_=/*#__PURE__*/function(n){function t(t,e){return n.call(this,new h(t),e)||this}return c(t,n),t}
37(g),y=/*#__PURE__*/function(n){function t(t,e){return n.call(this,new p(t),e)||this}return c(t,n),t}(g),S=function(n,t){void 0===t&&(t=8397271938200529);for(var e,r=3735928559^t,i=1103547991^t,o=0;o<n.length;o++)e=n.charCodeAt(o),r=Math.imul(r^e,2654435761),i=Math.imul(i^e,1597334677);return r=Math.imul(r^r>>>16,2246822507)^Math.imul(i^i>>>13,3266489909),""+(4294967296*(2097151&(i=Math.imul(i^i>>>16,2246822507)^Math.imul(r^r>>>13,3266489909)))+(r>>>0))};function I(){return f(function(){return window.Shopify.country})||f(function(){return window.visually.country})}var P,O="visually",b="widgets";function A(){var n=f(function(){return window.loomi_ctx.cart});if(n)return n;var t=localStorage.getItem("loomi-cart");if(t)try{return JSON.parse(t)}catch(n){}}window.IntersectionObserver&&new IntersectionObserver(function(n,t){n.forEach(function(n){if(n.isIntersecting){var e=n.target;(function(n){var t=n.getAttribute("lmw"),e=n.getAttribute("lmwv");if(t&&e){var r=t+e;return l(function(){return f(function(){return!!window[O][b][r]})&&f(function(){return!!window.preact})},50,500).then(function(){f(function(){return window[O][b][r]("#"+n.id)})}),!0}return!1})(e)&&t.unobserve(e)}})},{root:null,rootMargin:window.vslyDeferWidgetsMargin||"100px",threshold:.1}),function(n){n.CART_CHANGE="CART_CHANGE",n.LOYALTY_CHANGE="LOYALTY_CHANGE"}(P||(P={}));var E=function(){return window.loomi_ctx.session.id};function x(n){return JSON.parse(localStorage.getItem(n)||"[]")}function T(n,t,e,r){n=n||[],t=t||[];var i=f(function(){return t.filter(function(t){return!n.find(e(t))})})||[],o=[].concat(n,i).slice(0,25);return o.length>0&&localStorage.setItem(r,JSON.stringify(o)),o}var C,D="vsly_params_history",N="vsly_visited_pages";!function(n){n.MOBILE="MOBILE",n.DESKTOP="DESKTOP"}(C||(C={}));var L=function(){return edgetag("getUserId")},k="lmi_type",M="lmi_from",R="lmi_class",j="lmi_utm_data",U={utm_source:"source",utm_medium:"medium",utm_campaign:"campaign",utm_term:"term",utm_content:"content"},J=function(n,t){void 0===t&&(t=3);for(var e=n,r=0;r<t;r++)try{var i=decodeURIComponent(e);if(i===e)break;e=i}catch(n){break}return e};function F(){var n,t,e,r=(n=function(n){if(function(n){return!n||"{}"===JSON.stringify(n)}(n))return null;var t={};return n.campaign&&(t.campaign=n.campaign),n.medium&&(t.medium=n.medium),n.source&&(t.source=n.source),n.term&&(t.term=n.term),n.content&&(t.content=n.content),t}(f(function(){return function(n){void 0===n&&(n=window.location.search);var t={utm:{},lmi_params:{}};return f(function(){return new URLSearchParams(n)}).forEach(function(n,e){if(n){var r=U[e],i=J(n);r?t.utm[r]=i:function(n){return f(function(){return[R,M,k].includes(n)})}(e)&&(t.lmi_params[e]=i)}}),t}().utm})),t=[],null!=(e=localStorage.getItem(j))&&(t=[].concat(JSON.parse(e)).slice(0,20)),n&&(n.ts=s(),t=[n].concat(t)),t);return localStorage.setItem(j,JSON.stringify(r)),r}function B(){var n=F();return f(function(){return n.filter(function(n){return n.campaign}).reduce(function(n,t){return t.ts>n.ts?t:n},n[0]).campaign})||""}var H=function(){try{var n=function(){if(!K)return Promise.resolve(new Promise(function(n,t){var e=indexedDB.open(q,1);e.onerror=function(n){t("IDB e:o"+n.target.error)},e.onsuccess=function(t){n(K=t.target.result)},e.onupgradeneeded=function(n){n.target.result.createObjectStore(G,{keyPath:"id"}).createIndex("id","id",{unique:!0})}})).then(function(){})}();return Promise.resolve(n&&n.then?n.then(function(){return K}):K)}catch(n){return Promise.reject(n)}},q="VISUALLY_IO",G=q,K=null;function V(){var n=new URL(window.location.href);return n.protocol+"//"+n.hostname+n.pathname}var Y="__eventn_id";function W(n,t,e){void 0===e&&(e=Y);var r=z(n,t);f(function(){return localStorage.setItem(e,r)}),function(n,t,e,r){f(function(){return window.loomi_ctx.cc})&&!f(function(){return(f(function(){return window.Shopify.customerPrivacy.analyticsProcessingAllowed})||f(function(){return window.Shopify.customerPrivacy.userCanBeTracked})||f(function(){return window.visually.analyticsProcessingAllowed}))()})||(document.cookie=encodeURIComponent(n)+"="+t+"; path=/; expires=Fri, 31 Dec 9999 23:59:59 GMT"+(e?"; domain="+e:"")+(r?"; secure":""))}(e,r,document.location.hostname.replace("www.","").replace("checkout.",""),"http:"!==document.location.protocol)}function $(n){return{firstSeen:f(function(){return parseInt(n.split(".")[1])},null),id:f(function(){return n.split(".")[0]})}}function z(n,t){return n+"."+t}function Z(){return Math.trunc((new Date).getTime()/1e3)}var Q=function(n){return(new Date).getTime()/1e3-n<=7200},X="vsly_vid",nn="lmi_debug";function tn(n){return f(function(){return new URL(window.location.href).searchParams.get(n)||void 0})}function en(){try{var n=f(function(){return window.vslyAntiFlickerReveal},void 0);n&&n()}catch(n){}}new _("p",18e5),new y("recs_cache",300001);var rn,on=new Map;function cn(n){return an(n)?"http://localhost:8080":"https://"+function(n){return void 0===n&&(n=window.loomi_ctx.env),n===e.STAGE?"sdk.loomi-stg.xyz":"live.visually-io.com"}()}function an(n){return[e.TEST,e.LOCAL].includes(n)}!function(n){n.NONE="none",n.YOTPO="yotpo"}(rn||(rn={}));var un="vsly_session";function sn(n){return J((n||"").replace("+"," "))}function ln(){var n=window.loomi_ctx.storeAlias,t={id:S(n+window.loomi_ctx.userId+s()+B()+vn()),utm_campaign:B(),last_interaction:new Date,landing_page:f(function(){return location.href},""),start_at:new Date};return fn(t),t}function fn(n){var t=JSON.stringify(n);localStorage.setItem(un,t),window.loomi_ctx.session=n}function dn(){var n=function(){window.loomi_ctx=window.loomi_ctx||{};var n=window.loomi_ctx.session||f(function(){var n=JSON.parse(localStorage.getItem(un));return n.last_interaction=new Date(n.last_interaction),n.start_at=new Date(n.start_at),n})||ln();return function(n){var t=new Date,e=n.last_interaction;return(t.valueOf()-e.valueOf())/6e4>30||sn(B())!==sn(n.utm_campaign)||n.last_interaction.getDate()!==t.getDate()}(n)&&(n=ln()),window.loomi_ctx.session=n,n}();n.last_interaction=new Date,fn(n)}var vn=function(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)},mn=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","NO","IS","LI"],wn=function(n){void 0===n&&(n=!0);var t=window.loomi_ctx.consent;t.allowed=n,t.fin||(t.fin=gn())},gn=function(){return(new Date).getTime()},pn=function(){return window.Shopify.customerPrivacy},hn=function(){return Promise.resolve()};(function(){try{if(window.vsly_init=!0,window.vslyIntegrationType="static","number"==typeof(c=f(function(){return window.loomi_ctx.ttl}))&&Number.isFinite(c)&&!(c<=0)&&c<Math.floor(Date.now()/1e3))return console.log("sdk blocked"),Promise.resolve();window.loomi_ctx.sdk_version="0.12.64";var n=window.loomi_ctx,t=function(n,t){try{return f(dn),f(function(){var n=window.loomi_ctx.ctags||[];0===n.length?window.loomi_ctx.ctags=JSON.parse(localStorage.getItem(u)||"[]"):localStorage.setItem(u,JSON.stringify(n)),f(function(){var n=JSON.parse(localStorage.getItem("vsl
37yCustomCtags")||"[]");n&&n.length>0&&(window.loomi_ctx.ctags=[].concat(window.loomi_ctx.ctags||[],n))})}),Promise.resolve(function(n,t){try{var e=(c=function(n){var t=function(n){try{var t=d(n),e=$(t);if(t)return{id:e.id,firstSeen:e.firstSeen||Z()}}catch(n){}}(n),e=function(n){var t=window.localStorage.getItem(n),e=$(t);if(t)return{id:e.id,firstSeen:e.firstSeen||Z()}}(n);if(!t&&!e){var r=function(){var n=Math.random().toString(36).substring(2,12),t=Z();return{newId:n,newEpoch:t,value:z(n,t)}}(),i=r.newId,o=r.newEpoch;return W(i,o,n),{id:i,firstSeen:o}}if(!e&&t)return W(t.id,t.firstSeen,n),t;if(!t&&e)return W(e.id,e.firstSeen,n),e;var c=Math.min(t.firstSeen,e.firstSeen),a=t.firstSeen<=e.firstSeen?t.id:e.id;return function(n,t){return n.firstSeen===t.firstSeen&&n.id!==t.id}(t,e)&&(a=t.id<=e.id?t.id:e.id),e.id==t.id&&e.firstSeen==t.firstSeen||W(a,c,n),{id:a,firstSeen:c}}(Y),{id:c.id,firstSession:Q(a=c.firstSeen),firstSeen:a}),r=function(n,t){var e=function(){var n=f(function(){return A().items.map(function(n){return{variantId:n.variant_id||0,quantity:n.quantity||0,productId:n.product_id||0,price:n.price||0}})})||[],t={path:window.location.pathname,host:window.location.hostname};f(function(){return n.length})>0&&(t.cartItems=n);var e=f(function(){return A().token});e&&(t.cartToken=e);var r=F();r&&(t.trafficSources=r),t.productsSeenInSession=function(){var n=f(function(){return window.loomi_ctx.sessionProducts});if(n)return n;var t=localStorage.getItem("loomi_session_products"),e=t?JSON.parse(t):[];return f(function(){return e.filter(function(n){return""!=n.handle}).reverse().slice(0,20)})}(),t.isCustomer=!!v(),t.query=window.location.search||"";var i=f(function(){return(("spa"==window.vslyIntegrationType?f(function(){return A().attributes.map(function(n){return n.key})}):f(function(){return Object.keys(A().attributes)}))||[]).filter(function(n){return!n.startsWith("vsly")&&n.length<20}).slice(0,15)});return i&&(t.cartAttributes=i),t}();e.storeAlias=n;var r=v();r&&(e.clientId=r),e.anonymousId=t.id,e.firstSeen=t.firstSeen,e.firstSession=t.firstSession,e.gaId=f(function(){return document.cookie.split(";").map(function(n){return n.split("=")}).find(function(n){return"_ga"==n[0].trim()})[1]},"");var i=window.loomi_ctx;e.customerTags=f(function(){return i.ctags.slice(0,20)}),e.landingPage=f(function(){return i.session.landing_page}),e.hasSubs=!!f(function(){return(n=A(),f(function(){return n.items.map(function(n){return f(function(){return n.selling_plan_allocation.selling_plan.name.toLowerCase()})}).filter(function(n){return!!n})},[])).length>0;var n});var c,a=(c="vsly_edgetag",m(function(){return L()&&localStorage.setItem(c,L()),!0}),f(L)||localStorage.getItem(c));a&&(e.edgetag=a);var u=function(){try{var n=f(function(){return new URL(window.location.href)});if(f(function(){return n.searchParams.get("forceOverride")})){var t=f(function(){return n.searchParams.get("targeting")});if(t)return JSON.parse(atob(t))}}catch(n){!function(){var n;(window.location.search.includes("lmi_debug")||f(function(){return window.vsly_fbs}))&&(n=console).error.apply(n,["loomi-editor"].concat([].slice.call(arguments)))}("preview overrides",n)}return{}}(),l=x(D),w=function(){var n,t=x(N);function e(n){return new Date(n.ts).valueOf()}function r(){var n=new URL(location.href);return["vslyvid","vslywgid","vslysid","lmi_preview","targeting","vsly_vid"].forEach(function(t){return n.searchParams.delete(t)}),n.search||""}return(n=N,Promise.resolve(H()).then(function(t){return new Promise(function(e,r){var i=t.transaction([G],"readonly").objectStore(G).get(n);i.onerror=function(n){r("IDB e:r"+n.target.error)},i.onsuccess=function(n){e(n.target.result)}})})).then(function(n){var i,o={ts:new Date,name:V(),search:f(r,"")},c=!!o.search,a=(f(function(){return n.visits})||t||[]).filter(function(n){return!c||!(n.name===o.name&&!n.search)}).filter(function(n){return!(n.name===o.name&&(o.search===n.search||c&&!n.search))}).sort(function(n,t){return e(t)-e(n)}).slice(0,500);a.unshift(o),(i={id:N,visits:a},Promise.resolve(H()).then(function(n){return new Promise(function(t,e){var r=n.transaction([G],"readwrite").objectStore(G).put(i);r.onerror=function(n){e("IDB e:w"+n.target.error)},r.onsuccess=function(){t("")}})})).catch()}).catch(),T([{ts:s(),name:V()}],t,function(n){return function(t){return n.name===t.name}},N)}(),g=JSON.parse(localStorage.getItem("loomi_purchased_products")||"[]"),p=o({deviceKind:f(function(){return window.loomi_ctx.deviceOverride},void 0)},{}),h=!!f(function(){return navigator.userAgent.includes("Macintosh")&&"ontouchend"in document}),_=f(function(){return window.innerWidth},0),y=f(function(){return window.vslyDesktopBreakpoint}
37)||960,S=f(function(){return d("cart_currency")})||f(function(){return A().currency})||"",I=f(function(){return i.current_product});if(I){e.oos=f(function(){return I.oos}),e.price=f(function(){return I.price}),e.iq=f(function(){return I.variants.reduce(function(n,t){return t.iq+n},0)}),e.productId=f(function(){var n=function(){var n={},t=window.loomi_ctx||{};t.productId&&(n.productId=t.productId);var e=f(function(){var n=new URL(location.href).searchParams,t="variant";return n.has(t)&&function(n){var t=Number(n),e=isNaN(t)?Number((""+n).replace(/[^\d.]+/g,""))||void 0:t;if(void 0!==e&&0!==e)return""+e}(n.get(t))})||t.variantId;return e&&(n.variantId=e),n}().productId;return Number.isFinite(Number(n))?n.toString():""},"");var P=1*i.variantId;Number.isFinite(P)&&(e.vid=P)}var O=f(E);"spa"==window.vslyIntegrationType&&(e.spa=!0);var b=f(function(){return i.ttl});return o({cartCurrency:S},e,{queryHistory:l,isIPadPro:h,windowInnerWidth:_,desktopBreakpoint:y,visitedPages:w,ttl:Number.isFinite(b)?b:0,purchasedLineItems:g,sid:O},p||{},u||{})}(n,e);return Promise.resolve(function(n,t){try{var e=function(n){return btoa(unescape(encodeURIComponent(JSON.stringify(n))))}(t),r=(u=function(n){var t="/api/allocator/web/public/v2/allocate";return an(n)&&(t="/allocate"),{cfgUrl:""+cn(n)+t}}(n).cfgUrl,s=function(){[i,X].map(function(n){var t=tn(n);t&&sessionStorage.setItem(n,t)});var n=sessionStorage.getItem(i),t=sessionStorage.getItem(X);return{previewKey:n,debugAllocator:tn(nn),previewVariantId:t}}(),l=s.previewKey,f=s.debugAllocator,d=s.previewVariantId,v=new URL(u),l&&v.searchParams.append(i,l),f&&v.searchParams.append(nn,"true"),d&&v.searchParams.append(X,d),v);r.searchParams.append("q",e);var o=S(r.href),c=window.vslyNativeFetch||window.fetch,a=on.has(o)?on.get(o):c(r.href).finally(function(){return on.delete(o)});return on.set(o,a),Promise.resolve(a).then(function(n){if(n.ok)return Promise.resolve(n.json());throw new Error("failed to load config: "+n.statusText)})}catch(n){return Promise.reject(n)}var u,s,l,f,d,v}(t,r)).then(function(n){return f(function(){window.loomi_ctx.audiences=n.audiences,f(function(){return n.audiences&&localStorage.setItem("vsly_audiences",JSON.stringify(n.audiences))}),window.loomi_ctx.testedThemes=n.testedThemes||[]}),function(n){var t=n.currentVariant;window.loomi_ctx=o({},window.loomi_ctx||{});var e=f(function(){return t.pid});e&&(window.loomi_ctx.productId=""+e);var r=f(function(){return t.vid});r&&(window.loomi_ctx.variantId=""+r);var i=f(function(){return t.price});i&&(window.loomi_ctx.variantPrice=i);var c=f(function(){return t.meta});c&&(window.loomi_ctx.productMeta=""+c)}(n),T(n.queryHistory,r.queryHistory,function(n){return function(t){return t.v===n.v&&t.k===n.k}},D),function(n){var t;(t=n.experiments)&&t.findIndex(function(n){var t=f(function(){return n.clientTargetingFormula.toString()},"")||"";return t.includes("CartItemHasTag")||t.includes("CartItemHasCollection")||t.includes("AllCartItemsHasTag")})>-1||!0===f(function(){return n.flags["sdk-enable-cart-enrichment"]},!1)&&(n.flags["sdk-enable-cart-enrichment"]=!1)}(n),{configuration:n,tracking:e}})}catch(n){return Promise.reject(n)}var c,a}(n,t))}catch(n){return Promise.reject(n)}}(n.storeAlias,n.env);(r=function(){var n=I();return!!n&&!mn.includes(n)},new Promise(function(n,t){var e,i=(e=window.loomi_ctx).consent||(e.consent={});i.init=gn(),(I()?hn():l(I,50,200)).then(function(){r()&&(wn(),n())}),(f(function(){return pn().analyticsProcessingAllowed})?hn():l(function(){return f(function(){return pn().analyticsProcessingAllowed})},50,200)).then(function(){var e=pn().analyticsProcessingAllowed()||r();wn(e),e?n():t()}),i.ccListener||(document.addEventListener("visitorConsentCollected",function(e){var i=e.detail.analyticsAllowed||r();wn(i),i?n():t()}),i.ccListener=!0)})).catch();var e=new Promise(function(n){"function"==typeof window.loomi_ctx.run?n():window.addEventListener("visually_loaded",function(){return n()},{once:!0})});return Promise.all([t,e]).then(function(n){var t,e,r,i=n[0],o=i.configuration,c=i.tracking;(t="vsly-a",e="https://assets.visually.io/v/visually-a.js?cb="+window.loomi_ctx.sdk_version,void 0===r&&(r={async:!1,defer:!1}),new Promise(function(n,i){var o=document.getElementById(t);o?n(document.getElementById(t)):((o=document.createElement("script")).id=t,o.src=e,o.async=r.async||!1,o.defer=r.defer||!1,o.setAttribute("data-em-disable",""),o.onload=function(){return n(o)},o.onerror=function(){return i(new Error("Failed to load "+e))},document.head.appendChild(o))})).catch(),window.loomi_ctx.run(o,c)}).catch(function(n){return console.error(n)}).finally(en)}catch(n){return Promise.reject(n)}var r,c}
37)().then(function(){return console.log("vsly sdk init")})}(); 38 39 })() 40</script>
40 41<link href="https://assets.visually.io/vsly/lib/visually.js" rel="preload" as="script" data-em-disable>
42<script rel="prefetch" type="text/javascript" src="https://assets.visually.io/vsly/lib/visually.js" data-em-disable></script>
42 43<link href="https://assets.visually.io/widgets/vsly-preact.min.js" rel="preload" as="script" data-em-disable>
44<script data-vsly="preact2" type="text/javascript" src="https://assets.visually.io/widgets/vsly-preact.min.js" data-em-disable></script>
44 45<!--LOOMI SDK--> 46 47 48 <!-- Start of Shoplift scripts --> 49 <!-- 2026-06-05T16:28:31.4865751Z --> 50<style>.shoplift-hide { opacity: 0 !important; }</style> 51<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
52<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-09-24T13:05:43.5221877Z */(function(){"use strict";var te=document.createElement("style");te.textContent=`#shoplift-preview-control{position:fixed;max-width:332px;height:56px;background-color:#141414;z-index:9999;bottom:20px;display:flex;border-radius:8px;box-shadow:13px 22px 7px #0000,9px 14px 7px #00000003,5px 8px 6px #0000000d,2px 4px 4px #00000017,1px 1px 2px #0000001a,0 0 #0000001a;align-items:center;margin:0 auto;left:16px;right:16px;opacity:0;transform:translateY(20px);visibility:hidden;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s .4s}#shoplift-preview-control.visible{opacity:1;transform:translateY(0);visibility:visible;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s 0s}#shoplift-preview-control *{font-family:Inter,sans-serif;color:#fff;box-sizing:border-box;font-size:16px}#shoplift-preview-variant-title{font-weight:400;line-height:140%;font-size:16px;text-align:start;letter-spacing:-.16px;flex-grow:1;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}#shoplift-preview-variant-selector{position:relative;display:block;padding:6px 0;height:100%;min-width:0;flex:1 1 auto}#shoplift-preview-variant-menu-trigger{border:none;cursor:pointer;width:100%;background-color:transparent;padding:0 16px;border-left:1px solid #333;border-right:1px solid #333;height:100%;display:flex;align-items:center;justify-content:start;gap:8px}#shoplift-preview-variant-selector .menu-variant-label{width:24px;height:24px;border-radius:50%;padding:6px;display:flex;justify-content:center;align-items:center;font-size:12px;font-style:normal;font-weight:600;line-height:100%;letter-spacing:-.12px;flex-shrink:0}#shoplift-preview-variant-selector .preview-variant-menu{position:absolute;bottom:110%;transform:translate3d(0,20px,0);visibility:hidden;pointer-events:none;opacity:0;cursor:pointer;background-color:#141414;border:1px solid #141414;border-radius:6px;width:100%;max-height:156px;overflow-y:auto;box-shadow:0 8px 16px #0003;z-index:1;transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s .3s}#shoplift-preview-variant-selector .preview-variant-menu.preview-variant-menu__visible{visibility:visible;pointer-events:auto;opacity:100;transform:translateZ(0);transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s 0s}@media screen and (max-width:400px){#shoplift-preview-variant-selector .preview-variant-menu{position:fixed;left:0;right:0;width:auto;bottom:110%}}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item{padding:12px 16px;display:flex;overflow:hidden}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item .menu-variant-label{margin-right:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item span{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;white-space:nowrap;color:#f6f6f6;font-size:14px;font-style:normal;font-weight:500}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:hover{background-color:#545454}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:last-of-type{border-bottom-left-radius:6px;border-bottom-right-radius:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}#shoplift-preview-control div:has(#shoplift-exit-preview-button){padding:0 16px}#shoplift-exit-preview-button{padding:6px 8px;font-weight:500;line-height:75%;border-radius:4px;background-color:transparent;border:none;text-decoration:none}#shoplift-exit-preview-button:hover{cursor:pointer;background-color:#333}#shoplift-preview-subscription-warning{position:relative;display:flex;align-items:center;gap:6px;padding:6px 10px;margin:0 4px;border-left:1px solid #333;cursor:help;outline:none}#shoplift-preview-subscription-warning__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background-color:#f59e0b;color:#141414!important;font-weight:700;font-size:12px!important;line-height:1;flex-shrink:0}#shoplift-preview-subscription-warning__label{font-size:13px!important;font-weight:500;color:#fbbf24!important;text-wrap:nowrap;white-space:nowrap}#shoplift-preview-subscription-warning__tooltip{position:absolute;bottom:calc(100% + 8px);right:0;max-width:320px;width:max-content;padding:10px 12px;border-radius:6px;background-color:#1f1f1f;color:#fff!important;font-size:12px!important;line-height:1.4!important;box-shadow:0 8px 16px #0000004d;z-index:10000;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s .2s;pointer-events:none}#shoplift-preview-subscription-warning__tooltip.shoplift-preview-subscription-warning__tooltip--visible{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s 0s}#shoplift-preview-subscription-warning:focus-visible{box-shadow:inset 0 0 0 2px #f59e0b;border-radius:4px}#shoplift-preview-control:has(#shoplift-preview-subscription-warning){max-width:480px}/*$vite$:1*/`,document.head.appendChild(te);var fe=" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x
527|;\\s\\w+;$|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\b\\w+/1\\.0;|\\bbw/|\\bdlc\\b|\\bort/|\\bperl\\b|\\btime/|\\||^[<\\(;]|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[\\w\\-]+/[\\w]+$|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^\\w+/\\d\\.\\d\\s\\([\\w@]+\\)$|^active|^ad muncher|^amaya|^apache/|^avsdevicesdk/|^azure|^biglotron|^blackbox exporter|^bot|^clamav[ /]|^claude-code/|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^exodusmovement|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\((?:compatible;)?(?:\\s?[\\w\\d-.]+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^ps_daily/|^python|^rank|^read|^reed|^remove\\.bg/|^rest|^rss|^snapchat|^sora |^space bison|^stape/|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|abuse|advisor|agent\\b|analyzer|archive|ask jeeves/teoma|attracta|audit|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|collapsify\\b|convertify|cookiehubverify/|crawl|cursor/|cypress/|dareboost|datanyze|dejaclick|detect|discovery|dmbrowser|download|exaleadcloudview|feed|firephp|foregenix|functionize|grab|hardenize\\b|headless|hotjar|httrack|hubspot marketing grader|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|linktiger|mail\\.ru/|manager|manus-user/|marketgoo/|measure|monitor\\b|neustar wpm|node\\b|nutch|offbyone|openvas|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|playwright|powermarks|preview|productfinder|prospectingstudio|proxy|ptst[ /]\\d|radar|readable/|retriever|rexx;|rigor|rss\\b|scrape|securityheaders|selenium|server|silktide|sindup/|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|testlocally|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|watchtowr|webglance|webkit2png|whatcms/|xtate/",ge=/bot|crawl|http|lighthouse|scan|search|spider/i,z;function me(){if(z instanceof RegExp)return z;try{z=new RegExp(fe,"i")}catch{z=ge}return z}var ye=a=>typeof a=="string"&&a!=="";function ve(a){return ye(a)&&me().test(a)}var we=ve;class X{timestamp;constructor(){this.timestamp=new Date}}class be extends X{type;testId;hypothesisId;constructor(e,t,i){super(),this.type=3,this.testId=e,this.hypothesisId=t,this.timestamp=i}}class Se extends X{type;path;constructor(e){super(),this.type=4,this.path=e}}class Ce extends X{type;cart;constructor(e){super(),this.type=5,this.cart=e}}class ie extends Error{isBot;constructor(){super(),this.isBot=!0}}function Te(a,e,t){for(const i of e.selectors){const s=a.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)t(e.testId,e.hypothesisId)}re(a,e,(i,s,r,o,n)=>n(s,r),t)}function U(a,e,t){for(const i of e.selectors)ne(a,e.testId,e.hypothesisId,i,t??(()=>{}));re(a,e,ne,t??(()=>{}))}function se(a){return a.urlPatterns.reduce((e,t)=>{switch(t.operator){case"contains":return e+`.*${t}.*`;case"endsWith":return e+`.*${t}`;case"startsWith":return e+`${t}.*`}},"")}function re(a,e,t,i){new MutationObserver(()=>{for(const r of e.selectors)t(a,e.testId,e.hypothesisId,r,i)}).observe(a.documentElement,{childList:!0,subtree:!0})}function ne(a,e,t,i,s){const r=a.querySelectorAll(i.cssSelector);for(let o=0;o<r.length;o++){let n=r.item(o);if(n instanceof HTMLElement&&n.dataset.shoplift!==""){n.dataset.shoplift="";for(const l of i.actions.sort(Re))n=Ie(a,i.cssSelector,n,l)}}return r.length>0&&s?(s(e,t),!0):!1}function Ie(a,e,t,i){switch(i.type){case"innerHtml":t.innerHTML=i.value;break;case"attribute":Pe(t,i.scope,i.value);break;case"css":Ae(a,e,i.value);break;case"js":ke(a,t,i);break;case"copy":return Ee(t);case"remove":xe(t);break;case"move":_e(t,parseInt(i.value));break}return t}function Pe(a,e,t){a.setAttribute(e,t)}function Ae(a,e,t){const i=a.createElement("style");i.innerHTML=`${e} { ${t} }`,a.getElementsByTagName("head")[0]?.appendChild(i)}function ke(a,e,t){Function("document","element",`"use strict"; ${t.value}`)(a,e)}function Ee(a){const e=a.cloneNode(!0);if(!a.parentNode)throw"Can't copy node outside of DOM";return a.parentNode.insertBefore(e,a.nextSibling),e}function xe(a){a.remove()}function _e(a,e){if(e===0)return;const t=Array.prototype.slice.call(a.parentElement.children).indexOf(a),i=Math.min(Math.max(t+e,0),a.parentElement.children.length-1);a.parentElement.children.item(i).insertAdjacentElement(e>0?"afterend":"beforebegin",a)}function Re(a,e){return oe(a)-oe(e)}function oe(a){return a.type==="copy"||a.type==="remove"?0:1}
52const M={Template:0,UrlRedirect:2,Script:3,Price:5},De="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.96001%207.90004C9.86501%207.90004%209.77001%207.86504%209.69501%207.79004L6.43501%204.53004C6.19501%204.29004%205.80501%204.29004%205.56501%204.53004L2.30501%207.79004C2.16001%207.93504%201.92001%207.93504%201.77501%207.79004C1.63001%207.64504%201.63001%207.40504%201.77501%207.26004L5.03501%204.00004C5.56501%203.47004%206.43001%203.47004%206.96501%204.00004L10.225%207.26004C10.37%207.40504%2010.37%207.64504%2010.225%207.79004C10.15%207.86004%2010.055%207.90004%209.96001%207.90004Z'%20fill='white'/%3e%3c/svg%3e",Ve="data:image/svg+xml,%3csvg%20width='14'%20height='24'%20viewBox='0%200%2014%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.3976%2014.5255C12.2833%2013.8788%2012.0498%2013.3024%2011.6952%2012.7961C11.3416%2012.2898%2010.9209%2011.8353%2010.4353%2011.4317C9.94868%2011.0291%209.43546%2010.6488%208.89565%2010.292C8.48487%2010.049%208.09577%209.78565%207.72637%209.50402C7.35697%209.2224%207.08016%208.89503%206.89694%208.51987C6.71273%208.14471%206.67826%207.69533%206.79055%207.1697C6.86345%206.83216%206.97476%206.54647%207.12351%206.31162C7.27324%206.07778%207.47124%205.89986%207.7175%205.77684C7.96377%205.65483%208.21989%205.59383%208.48389%205.59383C8.88087%205.59383%209.17639%205.7016%209.3734%205.91714C9.56943%206.13268%209.68271%206.42345%209.71424%206.78946C9.74576%207.15547%209.72015%207.55401%209.63839%207.98509C9.55663%208.41617%209.43645%208.84724%209.27687%209.27934L13.5127%208.80149C13.9638%207.52656%2014.1017%206.42447%2013.9264%205.49725C13.751%204.56901%2013.2664%203.85122%2012.4724%203.34491C12.239%203.19648%2011.9779%203.07041%2011.6893%202.96569L12.0026%201.50979L9.86397%200L7.3875%201.50979L7.11169%202.78878C6.65166%202.8874%206.21724%203.01957%205.8114%203.19038C4.85292%203.594%204.06684%204.15115%203.45117%204.86385C2.83452%205.57655%202.42571%206.40108%202.22378%207.33847C2.06616%208.06947%202.04942%208.70796%202.17551%209.25087C2.30061%209.7948%202.52028%2010.2828%202.8355%2010.7139C3.14974%2011.145%203.51816%2011.5344%203.93977%2011.881C4.36039%2012.2288%204.782%2012.5521%205.20164%2012.851C5.68334%2013.1702%206.13844%2013.5169%206.56497%2013.8921C6.99052%2014.2672%207.31954%2014.7125%207.55004%2015.228C7.78055%2015.7445%207.81502%2016.3769%207.65347%2017.1262C7.56482%2017.5389%207.43676%2017.8765%207.27028%2018.1388C7.10381%2018.4011%206.89596%2018.5983%206.64772%2018.7295C6.3985%2018.8606%206.12071%2018.9267%205.8114%2018.9267C5.21641%2018.9267%204.79776%2018.6034%204.62833%2018.1632C4.4589%2017.7229%204.47367%2017.2583%204.60075%2016.5639C4.72782%2015.8705%205.05092%2015.1395%205.37107%2014.3699H1.17665C1.17665%2014.3699%200.207341%2016.1115%200.0310135%2017.6762C-0.0655232%2018.5302%200.0635208%2019.2653%200.41519%2019.8844C0.76686%2020.5036%201.33032%2020.9814%202.10655%2021.319C2.39222%2021.443%202.7104%2021.5447%203.05813%2021.623L2.54589%2024H7.17473L7.7047%2021.5386C8.08493%2021.442%208.43857%2021.3231%208.76562%2021.1787C9.73985%2020.7476%2010.52%2020.1427%2011.1071%2019.3649C11.6932%2018.5871%2012.0873%2017.7291%2012.2892%2016.7917C12.4744%2015.9295%2012.5099%2015.1741%2012.3966%2014.5275L12.3976%2014.5255Z'%20fill='white'/%3e%3c/svg%3e";async function Oe(a){let e=a.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";const t=atob(e),i=Uint8Array.from(t,o=>
52o.charCodeAt(0)),s=new Blob([i]).stream().pipeThrough(new DecompressionStream("gzip")),r=await new Response(s).text();return JSON.parse(r)}function F(a,e){return typeof e=="string"&&/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+(?:Z|[+-]\d+)/.test(e)?new Date(e):e}function ee(a,e){return e}function q(a,e=!1,t=!1,i=","){const s=a/100;if(t){const o=Math.round(s).toLocaleString("en-US");return i!==","?o.replace(/,/g,i):o}else{const r=e?",":".",o=s.toFixed(2).split("."),n=parseInt(o[0],10),l=o[1]??"00",c=n.toLocaleString("en-US");return i!==","?`${c.replace(/,/g,i)}${r}${l}`:e?`${c.replace(/,/g,".")}${r}${l}`:`${c}${r}${l}`}}function H(a,e,t,i){const s=e.replace("{{amount}}",q(a,!1,!1)).replace("{{amount_no_decimals}}",q(a,!1,!0)).replace("{{amount_with_comma_separator}}",q(a,!0,!1)).replace("{{amount_no_decimals_with_comma_separator}}",q(a,!0,!0)).replace("{{amount_with_space_separator}}",q(a,!1,!1," ")).replace("{{amount_no_decimals_with_space_separator}}",q(a,!1,!0," ")).replace("{{amount_with_apostrophe_separator}}",q(a,!1,!1,"'")).replace("{{amount_no_decimals_with_apostrophe_separator}}",q(a,!1,!0,"'")).replace("{{amount_with_period_and_space_separator}}",q(a,!1,!1,". ")).replace("{{amount_no_decimals_with_period_and_space_separator}}",q(a,!1,!0,". "));return i?`${s} ${t}`:s}function ae(a){return a.replace(/[^\d.,\s-]/g,"").trim()}function j(a){const e=new Map;for(const[t,i,s]of a.variants)e.set(t,{priceInCents:i,compareAtPriceInCents:s});return e}function Le(a,e,t,i){const{priceInCents:s,compareAtPriceInCents:r}=t,{moneyFormat:o,currency:n,currencyCodeEnabled:l}=i;if(a.getAttribute("data-sl-attribute-p")===e)a.innerHTML=H(s,o,n,l);else if(a.getAttribute("data-sl-attribute-cap")===e)r<=0||r<=s?a.remove():a.innerHTML=H(r,o,n,l);else if(a.getAttribute("data-sl-attribute-discount")===e&&!(r<=0||r<=s)){const d=Math.round((r-s)/r*100),u=ae(H(r-s,o,n,!1)),h=a.getAttribute("data-sl-format")||"percent";h==="percent"?a.textContent=`-${d}%`:h==="amount"?a.textContent=`-${u}`:h==="both"&&(a.textContent=`-${d}% (-${u})`)}}function $e(a){const e=[],t={id:"url-pattern",operator:"contains",value:"/"};for(const[i,s,r]of a.variants){e.push({id:`p-${i}`,cssSelector:`[data-sl-attribute-p="${i}"]`,urlPatterns:[t],actions:[{id:`p-action-${i}`,type:"innerHtml",scope:"price",value:H(s,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]});const o=r<=0||r<=s;if(e.push({id:`cap-${i}`,cssSelector:`[data-sl-attribute-cap="${i}"]`,urlPatterns:[t],actions:[{id:`cap-action-${i}`,type:o?"remove":"innerHtml",scope:"compare-at-price",value:o?"":H(r,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]}),!o&&r>s){const n=Math.round((r-s)/r*100),l=ae(H(r-s,a.moneyFormat,a.currency,!1));e.push({id:`d-${i}`,cssSelector:`[data-sl-attribute-discount="${i}"]`,urlPatterns:[t],actions:[{id:`d-action-${i}`,type:"js",scope:null,value:`var format = element.getAttribute('data-sl-format') || 'percent'; if (format === 'percent') { element.textContent = '-${n}%'; } else if (format === 'amount') { element.textContent = '-${l}'; } else if (format === 'both') { element.textContent = '-${n}% (-${l})'; }`}]})}}return e}const Me=a=>{let e=5381;for(let t=0;t<a.length;t++)e=(e*33^a.charCodeAt(t))>>>0;return e.toString(36)},qe=()=>Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4),He=a=>btoa(JSON.stringify(a)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),K=a=>a.replace(/#slr-[a-z0-9]+$/,""),tt="modulepreload",it=function(a){return"/"+a},st={},Ne=function(e,t,i){let s=Promise.resolve();function r(o){const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=o,window.dispatchEvent(n),!n.defaultPrevented)throw o}return s.then(o=>{for(const n of o||[])n.status==="rejected"&&r(n.reason);return e().catch(r)})};function le(a,e,t){const i=t?a.plans.filter(c=>!c.variantId||c.variantId===t):a.plans,s=[],r=[];for(const c of i)c.direction==="decrease"?(s.push(c.existingShopifyPlanId),r.push(c.createdShopifyPlanId)):(s.push(c.createdShopifyPlanId),r.push(c.existingShopifyPlanId));const o=e?s:r,n=e?r:s;if(t)for(const c of a.plans)for(const d of[c.existingShopifyPlanId,c.createdShopifyPlanId])d&&!o.includes(d)&&!n.includes(d)&&n.push(d);const l={};for(let c=0;c<n.length;c++){const d=n[c],u=o[c];d&&u&&(l[d]=u)}return{showPlanIds:o,hidePlanIds:n,swapMap:l}}function ce(a,e,t){const i=e?a.plans.find(r=>r.variantId===e):void 0;if(i)return i.direction;if(t){const r=a.plans.find(o=>o.productId===t);if(r)return r.direction}return a.plans.find(r=>!r.variantId)?.direction??null}function J(a,e){const t=e?a.plans.filter(r=>!r.productId||r.productId===e):a.plans,i={};for(const r of t)i[r.existingShopifyPlanId]=r.existingDiscountAmount,i[r.createdShopifyPlanId]=r.existingDiscountAmount;
52const s=Math.max(...Object.values(i),0);return{discountMap:i,maxDiscount:s}}function W(a){const e=document.querySelector('form[action*="/cart/add"] input[name="product-id"]')?.value;if(e)return e;if(a){for(const r of Array.from(document.querySelectorAll("[data-sl-attribute-p]"))){const o=r.getAttribute("data-sl-attribute-p");if(!o)continue;const n=a.variants.find(l=>l[0]===o);if(n?.[3])return n[3]}const s=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(s){const r=a.variants.find(o=>o[0]===s);if(r?.[3])return r[3]}}const t=window,i=t.ShopifyAnalytics?.meta?.product?.id??t.meta?.product?.id;return i!=null?String(i):null}function D(a,e){return a.widget.selectors[e]??[]}function N(a,e){return a.replace(/[\d.]+%/,`${e}%`)}function $(a,e){const t=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);let i=t.nextNode();for(;i;){if(i.nodeValue!==null){const s=e(i.nodeValue);if(s!==i.nodeValue){i.nodeValue=s;return}}i=t.nextNode()}}function de(a,e){return a===null?!1:a==="decrease"?!e:e}async function Ue(a){if(a.subscriptionSwapDone)return;const e=a.getActiveAssignment();if(!e)return;const t=a.getHypothesis(e.hypothesisId);if(!t?.subscriptionData)return;a.subscriptionSwapDone=!0;const i=t.subscriptionData,s=t.isControl,r=[...new Set(i.plans.map(d=>d.direction))].join(",");a.log(`[SUB-SWAP] ${s?"A":"B"} side, directions=${r}`);const o=i.plans.some(d=>d.variantId);let n=!1,l=!1;function c(){if(!l){l=!0;try{const d=o?document.querySelector("select[name='id'], input[name='id']")?.value:void 0,{showPlanIds:u,hidePlanIds:h,swapMap:p}=le(i,s,d);a.swapMap=p;const b=D(i,"widgetParent"),E=D(i,"subscriptionPlans"),S=D(i,"subscriptionInput");if(!b.length||!E.length||!S.length)return;const C=document.querySelector(b[0].selector);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(E[0].selector);if(!_?.shadowRoot)return;const T=S[0].selector;let m=null;if(i.widget.widgetType==="buttons"||i.widget.widgetType==="radio"){const y=Array.from(_.shadowRoot.querySelectorAll(T));if(!y.length)return;for(const v of y){const g=v.closest("label");g&&(u.includes(v.value)?g.style.display="":h.includes(v.value)&&(g.style.display="none"))}const w=y.some(v=>u.includes(v.value)&&v.checked),I=y.some(v=>h.includes(v.value)&&v.checked);if((w||I)&&(n=!1),!w&&!n){n=!0;for(const v of y)if(u.includes(v.value)){v.closest("label")?.click(),v.dispatchEvent(new Event("change",{bubbles:!0}));break}}const f=y.find(v=>v.checked);m=f&&u.includes(f.value)?f.value:u[0]??null}else if(i.widget.widgetType==="dropdown"){const y=_.shadowRoot.querySelector("select");if(!y)return;for(const w of Array.from(y.options))h.includes(w.value)&&(w.style.display="none",w.disabled=!0);if(h.includes(y.value)){const w=Array.from(y.options).find(I=>u.includes(I.value));w&&(y.value=w.value,y.dispatchEvent(new Event("change",{bubbles:!0})))}m=u.includes(y.value)?y.value:u[0]??null}if(m){const y=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const w of y)w.value!==m&&(w.value=m)}}finally{l=!1}}}if(a.subscriptionHideWrongPlans=c,a.swapMap=le(i,s).swapMap,c(),o){const d=document.querySelector("select[name='id'], input[name='id']");d&&d.addEventListener("change",c)}}function B(a){const e=D(a,"widgetParent");return e.length?document.querySelector(e[0].selector)?.shadowRoot??null:null}function Y(a,e){const t=D(a,"subscriptionPlans");return t.length?e.querySelector(t[0].selector)?.shadowRoot??null:null}function Z(a,e){const t=new URLSearchParams(window.location.search).get("variant");if(t)return t;{const i=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(i)return i}return a.size>0?[...a.keys()][0]:void 0}function G(a,e){return H(a,e.moneyFormat,e.currency,e.currencyCodeEnabled)}function Fe({originalFetch:a,swapMap:e,slptValue:t,getSelectedPlanId:i,log:s}){if(window.fetch.__shoplift_intercepted)return s("[SUB-INTERCEPT] already installed â skipping"),()=>{};function r(n){if(i){const l=i();if(l)return e[l]??l}return e[n]??n}const o=function(n,l){if((typeof n=="string"?n:n instanceof URL?n.href:n.url).includes("/cart/add")&&l?.body)try{if(l.body instanceof FormData){const d=l.body.get("selling_plan");d?l.body.set("selling_plan",r(String(d))):(!d||d==="")&&t&&l.body.set("properties[_slpt]",t)}
52else if(typeof l.body=="string"){const d=JSON.parse(l.body);if(d.items)for(const u of d.items){const h=String(u.selling_plan??"");h?u.selling_plan=r(h):!u.selling_plan&&t&&(u.properties||(u.properties={}),u.properties._slpt=t)}else if(d.id){const u=String(d.selling_plan??"");u?d.selling_plan=r(u):!d.selling_plan&&t&&(d.properties||(d.properties={}),d.properties._slpt=t)}l.body=JSON.stringify(d)}}catch(d){s("[SUB-INTERCEPT] body parse failed; cart-add proceeds with un-swapped plan",d)}return a.call(window,n,l)};return o.__shoplift_intercepted=!0,window.fetch=o,function(){window.fetch===o&&(window.fetch=a)}}function Be({log:a}){if(window.fetch.__shoplift_intercepted)return a("[SUB-PREVIEW-BLOCK] already installed â skipping"),()=>{};const e=window.fetch,t=function(i,s){const r=typeof i=="string"?i:i instanceof URL?i.href:i.url;return r.includes("/cart/add")?(a("[SUB-PREVIEW-BLOCK] cart-add blocked in preview mode",{url:r}),Promise.resolve(new Response(JSON.stringify({id:0,properties:{},quantity:0,variant_id:0,key:"preview",title:"Preview â cart-add blocked",price:0,original_price:0,line_price:0,original_line_price:0,total_discount:0,discounts:[],preview:!0}),{status:200,headers:{"Content-Type":"application/json"}}))):e.call(window,i,s)};return t.__shoplift_intercepted=!0,window.fetch=t,function(){window.fetch===t&&(window.fetch=e)}}function pe({data:a,runUpdates:e,debounceMs:t=150}){let i=null;function s(){i&&clearTimeout(i),e(),i=setTimeout(e,t)}let r=null;const o=[],n={childList:!0,subtree:!0,characterData:!0,attributes:!0};function l(h){for(const p of o)p.disconnect();o.length=0;for(const p of Array.from(h.querySelectorAll("*")))if(p.shadowRoot){const b=new MutationObserver(s);b.observe(p.shadowRoot,n),o.push(b)}}function c(){const h=B(a);return h?(r&&r.disconnect(),l(h),r=new MutationObserver(p=>{p.some(b=>b.type==="childList"&&b.addedNodes.length>0)&&l(h),s()}),r.observe(h,n),!0):!1}const d=document.body||document.documentElement,u=new MutationObserver(()=>{c()&&s()});return u.observe(d,{childList:!0,subtree:!0}),c()&&s(),e(),function(){i&&(clearTimeout(i),i=null),u.disconnect(),r&&(r.disconnect(),r=null);for(const p of o)p.disconnect();o.length=0}}async function ze(a){if(a.subscriptionPriceDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=t?.subscriptionData?null:a.findActiveSubscriptionTestControl(),s=t?.subscriptionData?t:i?.hypothesis;if(!s?.subscriptionData)return;const r=t?.subscriptionData?e.testId:i.testId;a.subscriptionPriceDone=!0;const o=s.subscriptionData,n=s.isControl,l=s.priceData,c=o.widget.widgetType;let d=W(l),u=J(o,d),h=u.discountMap,p=u.maxDiscount;function b(){const g=W(l);g!==d&&(d=g,u=J(o,d),h=u.discountMap,p=u.maxDiscount,a.log(`[SUB-PRICE] scope refreshed side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`))}a.log(`[SUB-PRICE] side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`),a.updatePriceTestHiddenInputs(r,n?"control":"variant",!1);function E(){if(!l)return null;const g=j(l),P=Z(g),A=ce(o,P,d);if(!de(A,n))return null;const k=P?g.get(P):void 0;return k?{formattedVariantPrice:G(k.priceInCents,l),formattedDiscounted:G(k.priceInCents*(1-p/100),l)}:null}Fe({originalFetch:a.fetch,swapMap:a.swapMap??{},slptValue:a.slptValue??void 0,log:a.log,getSelectedPlanId:()=>{const g=B(o);if(!g)return null;const P=Y(o,g);if(!P)return null;const A=D(o,"subscriptionInput"),k=A.length?A[0].selector:'input[name="rc_plan"]';return P.querySelector(`${k}:checked`)?.value??null}});function S(g){const P=D(o,"subscriptionDiscount");for(const A of P)if(A.selector.includes("badge")||A.selector.includes("__badge")){const k=g.querySelector(A.selector);k?.textContent&&!k.textContent.includes(`${p}%`)&&$(k,x=>N(x,p))}}function C(g){const P=E();if(!P)return;const A=D(o,"subscriptionCompareAt");for(const k of A){const x=g.querySelector(k.selector)||g.querySelector(`[part~="${k.selector}"]`);x?.textContent&&!x.textContent.includes(P.formattedVariantPrice)&&$(x,R=>/\d/.test(R)?P.formattedVariantPrice:R)}}function _(g,P){const A=D(o,"subscriptionCompareAt"),k=P===0?"none":"";for(const x of A){const R=g.querySelector(x.selector)||g.querySelector(`[part~="${x.selector}"]`);R&&(k==="none"?R.style.display!=="none"&&(R.style.display="none"):R.style.display==="none"&&(R.style.display=""))}}function T(g){const P=D(o,"subscriptionInput"),A=P.length?P[0].selector:'input[name="rc_plan"]',k=D(o,"subscriptionPlanDiscount"),x=k.length?k[0].selector:".rc-plans-button__discount";for(const R of Array.from(g.querySelectorAll("label"))){const O=R.querySelector(A),V=R.querySelector(x);
52if(O&&V){const L=h[O.value];if(L!==void 0){if(L===0)V.style.display!=="none"&&(V.style.display="none");else if(V.style.display==="none"&&(V.style.display=""),V.textContent){const Q=V.textContent.match(/[\d.]+%/)?.[0];Q&&Q!==`${L}%`&&$(V,et=>N(et,L))}}}}}function m(g){const P=g.querySelector("select");if(P)for(const A of Array.from(P.options)){const k=h[A.value];if(k!==void 0&&A.textContent){const x=A.textContent.match(/[\d.]+%/)?.[0];x&&x!==`${k}%`&&(A.textContent=N(A.textContent,k))}}}function y(g,P){const k=D(o,"subscriptionDiscount").filter(x=>x.selector.includes("benefit")||x.selector==="rc-benefits");for(const x of k){const R=g.querySelector(x.selector);if(R?.shadowRoot){for(const O of Array.from(R.shadowRoot.querySelectorAll("li")))if(O.textContent?.includes("Save")){const V=O;if(P===0)V.style.display!=="none"&&(V.style.display="none");else{V.style.display==="none"&&(V.style.display="");const L=O.textContent.match(/[\d.]+%/)?.[0];L&&L!==`${P}%`&&$(O,Q=>N(Q,P))}}}}}let w=!1;function I(){if(!w){w=!0;try{if(b(),d!==null&&Object.keys(h).length===0)return;const g=B(o);if(!g)return;S(g),l&&C(g);const P=Y(o,g);let A=p;if(P){const k=D(o,"subscriptionInput"),x=k.length?k[0].selector:'input[name="rc_plan"]',R=P.querySelector(`${x}:checked`);if(R){const O=h[R.value];O!==void 0&&(A=O)}c==="buttons"||c==="radio"?T(P):m(P)}_(g,A),y(g,A)}finally{w=!1}}}function f(){const g=E();if(!g)return;const P=B(o);if(!P)return;const A=D(o,"onetimeToggle"),k=A.length?A[0].selector:'input[value="onetime"]';if(!P.querySelector(k)?.checked)return;const R=D(o,"subscriptionPrice");for(const O of R){const V=P.querySelector(O.selector)||P.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(g.formattedDiscounted)&&$(V,L=>/\d/.test(L)?g.formattedDiscounted:L)}}function v(){a.subscriptionHideWrongPlans&&a.subscriptionHideWrongPlans(),I(),a.subscriptionUpdateOneTime&&a.subscriptionUpdateOneTime(),f()}pe({data:o,runUpdates:v})}async function We(a){if(a.subscriptionOneTimeDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=!!(t?.subscriptionData&&t.priceData),s=i?null:a.findActiveSubscriptionTestControl(),r=i?t:s?.hypothesis;if(!r?.subscriptionData||!r.priceData)return;const o=i?e.testId:s.testId;a.subscriptionOneTimeDone=!0;const n=r.subscriptionData,l=r.priceData,c=j(l),d=r.isControl,u=d?"control":"variant";a.slptValue=`${o}:${u}:f`,a.updatePriceTestHiddenInputs(o,u,!1);function h(){const p=B(n);if(!p)return;const b=Z(c);if(!b)return;const E=W(l),S=ce(n,b,E);if(!de(S,d))return;const C=c.get(b);if(!C)return;const _=H(C.priceInCents,l.moneyFormat,l.currency,l.currencyCodeEnabled),T=D(n,"onetimePrice");if(!T.length)return;const m=D(n,"onetimeContainer"),y=m.length?m[0].selector:'[part~="rc-purchase-option__onetime"]',I=p.querySelector(y)??p;for(const f of T){let v=null;try{v=I.querySelector(f.selector)}catch{v=null}v??=I.querySelector(`[part~="${f.selector}"]`),v&&v.textContent&&!v.textContent.includes(_)&&$(v,g=>/\d/.test(g)?_:g)}}a.subscriptionUpdateOneTime=h,h()}async function Ge(a,e){const{subscriptionPreviewRender:t}=await Ne(async()=>{const{subscriptionPreviewRender:i}=await Promise.resolve().then(()=>Xe);return{subscriptionPreviewRender:i}},void 0);return t(a.subscriptionData,a.priceData,a.isControl,e)}function je(a,e){const t=a.widget.selectors.widgetParent??[],i=a.widget.selectors.subscriptionPlans??[],s=a.widget.selectors.subscriptionInput??[];if(!t.length||!i.length||!s.length){e("[SUB-GLOBAL-HIDE] Missing required selectors â skipping");return}const r=t[0].selector,o=i[0].selector,n=s[0].selector;let l=!1,c=null,d=!1;function u(){if(!d){d=!0;try{h()}finally{d=!1}}}function h(){const C=document.querySelector(r);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(o);if(!_?.shadowRoot)return;_.shadowRoot!==c&&(c=_.shadowRoot,l=!1);let T=0;if(a.widget.widgetType==="buttons"||a.widget.widgetType==="radio"){const m=Array.from(_.shadowRoot.querySelectorAll(n));for(const f of m)if(a.planIds.includes(f.value)){f.disabled||(f.disabled=!0);const v=f.closest("label");v&&v.style.display!=="none"&&(v.style.display="none",T++)}const y=m.filter(f=>!a.planIds.includes(f.value));if(!y.some(f=>f.checked)&&!l&&y.length>0){l=!0;const f=y[0];f.closest("label")?.click(),f.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible plan input=${f.value}`)}const I=y.find(f=>f.checked)??y[0];
52if(I){const f=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const v of f)v.value!==I.value&&(v.value=I.value,e(`[SUB-GLOBAL-HIDE] Mirrored plan id ${I.value} to form selling_plan input`))}}else if(a.widget.widgetType==="dropdown"){const m=_.shadowRoot.querySelector("select");if(!m)return;for(const I of Array.from(m.options))a.planIds.includes(I.value)&&(I.style.display!=="none"&&(I.style.display="none"),I.disabled||(I.disabled=!0),T++);const y=Array.from(m.options).filter(I=>!a.planIds.includes(I.value)),w=y.some(I=>I.value===m.value);y.length>0&&!w&&!l&&(l=!0,m.value=y[0].value,m.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible option=${y[0].value}`))}T>0&&e(`[SUB-GLOBAL-HIDE] Hidden ${T} B-side plan buttons`)}const p={childList:!0,subtree:!0,characterData:!0};let b=null;function E(C){b?.disconnect(),b=new MutationObserver(()=>u()),b.observe(C,p)}function S(){const C=document.querySelector(r);if(!C?.shadowRoot)return!1;u(),new MutationObserver(()=>{u();const m=C.shadowRoot.querySelector(o);m?.shadowRoot&&E(m.shadowRoot)}).observe(C.shadowRoot,p);const T=C.shadowRoot.querySelector(o);return T?.shadowRoot&&E(T.shadowRoot),!0}if(!S()){e("[SUB-GLOBAL-HIDE] Widget not in DOM yet â waiting via MutationObserver");const C=new MutationObserver(()=>{S()&&C.disconnect()});C.observe(document.body??document.documentElement,{childList:!0,subtree:!0})}}const ue="Limited preview",Ke="Add-to-cart and checkout prices won't reflect this test until it launches â test selling plans are not created in your subscription app until after a test is launched.",Je=5e3;function Ye(){const a=document.createElement("div");a.id="shoplift-preview-subscription-warning";const e=document.createElement("span");e.id="shoplift-preview-subscription-warning__icon",e.setAttribute("aria-hidden","true"),e.textContent="!";const t=document.createElement("span");t.id="shoplift-preview-subscription-warning__label",t.textContent=ue;const i=document.createElement("div");i.id="shoplift-preview-subscription-warning__tooltip",i.setAttribute("role","tooltip"),i.textContent=Ke,a.appendChild(e),a.appendChild(t),a.appendChild(i),a.setAttribute("tabindex","0"),a.setAttribute("aria-describedby",i.id),a.setAttribute("aria-label",ue);let s=null;function r(){s!==null&&(clearTimeout(s),s=null)}function o(){i.classList.add("shoplift-preview-subscription-warning__tooltip--visible")}function n(){i.classList.remove("shoplift-preview-subscription-warning__tooltip--visible")}function l(){o(),r(),s=setTimeout(()=>{n(),s=null},Je)}function c(){r(),o()}function d(){s===null&&n()}a.addEventListener("mouseenter",c),a.addEventListener("mouseleave",d),a.addEventListener("focus",c),a.addEventListener("blur",d);function u(p){try{const b=p.target;if(!(b instanceof Element))return;(b.closest('form[action*="/cart/add"] button[type="submit"], form[action*="/cart/add"] input[type="submit"]')!==null||b.closest('[name="add"], button[name="add"], [data-add-to-cart], button[data-add-to-cart]')!==null)&&l()}catch{}}document.addEventListener("click",u,!0);function h(){r(),document.removeEventListener("click",u,!0),a.removeEventListener("mouseenter",c),a.removeEventListener("mouseleave",d),a.removeEventListener("focus",c),a.removeEventListener("blur",d),a.remove()}return{root:a,tooltip:i,cleanup:h}}let he=!1;class Ze{DATA_SL_ATTRIBUTE_P="data-sl-attribute-p";DATA_SL_TEST_ID="data-sl-test-id";VIEWPORT_TRACK_THRESHOLD=.5;temporarySessionKey="Shoplift_Session";essentialSessionKey="Shoplift_Essential";analyticsSessionKey="Shoplift_Analytics";priceSelectorsSessionKey="Shoplift_PriceSelectors_v2";shop;host;eventHost;disableReferrerOverride;legacySessionKey;cssHideClass;testConfigs;inactiveTestConfigs;hiddenSubscriptionPlans;testsFilteredByAudience;sendPageView;shopliftDebug;gaConfig;telemetryEnabled;getCountryTimeout;geoViaShopify;resolvedRegion=null;state;subscriptionPreviewWarningCleanup=null;shopifyAnalyticsId;cookie=document.cookie;isSyncing=!1;isSyncingGA=!1;fetch;localStorageSet;localStorageGet;sessionStorageSet=window.sessionStorage.setItem.bind(window.sessionStorage);sessionStorageGet=window.sessionStorage.getItem.bind(window.sessionStorage);
52urlParams=new URLSearchParams(window.location.search);device;logHistory;activeViewportObservers=new Map;clientIdRetryCount=0;constructor(e,t,i,s,r,o,n,l,c,d,u,h,p,b=!1){this.shop=e,this.host=t,this.eventHost=i,this.disableReferrerOverride=l,this.logHistory=[],this.legacySessionKey=`SHOPLIFT_SESSION_${this.shop}`,this.cssHideClass=s?"shoplift-hide":"",this.testConfigs=u.map(S=>({...S,startAt:new Date(S.startAt),statusHistory:S.statusHistory.map(C=>({...C,createdAt:new Date(C.createdAt)}))})),this.inactiveTestConfigs=h,this.hiddenSubscriptionPlans=p,this.sendPageView=!!r,this.shopliftDebug=o===!0,this.telemetryEnabled=c===!0,this.geoViaShopify=b===!0,this.gaConfig=n!=={"sendEvents":false,"mode":"gtag"}?n:{sendEvents:!1},this.fetch=window.fetch.bind(window),this.localStorageSet=window.localStorage.setItem.bind(window.localStorage),this.localStorageGet=window.localStorage.getItem.bind(window.localStorage);const E=this.getDeviceType();this.device=E!=="tablet"?E:"mobile",this.state=this.loadState(),this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.testsFilteredByAudience=u.filter(S=>
52S.status=="active"),this.getCountryTimeout=d===1000?1e3:d,window.__slReadCookie=S=>{const C=this.getCookie(S);if(C===null)return null;try{return decodeURIComponent(C)}catch{return C}},this.log("State Loaded",JSON.stringify(this.state))}deriveCategoryFromExistingTests(){if(!this.state.temporary.testCategory&&this.state.essential.visitorTests.length>0){const e=this.state.essential.visitorTests.some(t=>{if(!t.hypothesisId)return!1;const i=this.getHypothesis(t.hypothesisId);return i&&["theme","basicScript","price"].includes(i.type)});this.state.temporary.testCategory=e?"global":"conditional",this.persistTemporaryState(),this.log("Derived test category from existing visitorTests: %s",this.state.temporary.testCategory)}}async init(){try{if(this.log("Shoplift script initializing"),window.Shopify&&window.Shopify.designMode){this.log("Skipping script for design mode");return}if(window.location.href.includes("slScreenshot=true")){this.log("Skipping script for screenshot");return}if(window.location.hostname.endsWith(".edgemesh.com")){this.log("Skipping script for preview");return}if(window.location.href.includes("isShopliftMerchant")){const o=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",o),this.state.temporary.isMerchant=o,this.persistTemporaryState()}if(this.state.temporary.isMerchant){this.log("Setting up preview for merchant"),typeof window.shoplift!="object"&&this.setShopliftStub(),this.state.temporary.previewConfig||this.hidePage(),await this.initPreview(),document.querySelector("#sl-preview-bar-hide")?.remove();return}if(this.state.temporary.previewConfig=void 0,we(navigator.userAgent))return;const e=Date.now(),t=!this.state.temporary.lastSeen||e-this.state.temporary.lastSeen>1800*1e3;(!this.state.temporary.entryPage||t)&&(this.state.temporary.entryPage=K(window.location.href)),this.state.temporary.lastSeen=e,this.persistTemporaryState(),window.__slEntryPage=this.state.temporary.entryPage??"";const i=this.state.essential.visitorTests.filter(o=>o.hypothesisId&&+o.createdAt>Date.now()-6e4);if(i.length===0)this.sendDiagnosticTelemetry("page-landed",null);else for(const o of i)this.sendDiagnosticTelemetry("page-landed",o.testId,{hypothesisId:o.hypothesisId,isControl:o.assignedTo==="control",testType:o.testType??"unknown"});if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const o=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(n=>n?.json());this.log(`IP: ${o}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),ee)}).catch()}if(this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.monitorConsentChange(),this.checkForThemePreview())return;if(!this.disableReferrerOverride&&this.state.temporary.originalReferrer!=null){this.log(`Overriding referrer from '${document.referrer}' to '${this.state.temporary.originalReferrer}'`);const o=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>o,enumerable:!0,configurable:!0})}if(await this.refreshVisitor(this.shopifyAnalyticsId),await this.handleVisitorTest()){this.log("Redirecting for visitor test");return}this.setShoplift(),this.showPage(),this.ensureCartAttributesForExistingPriceTests(!1);const r=this.state.essential.visitorTests.some(o=>(o.hypothesisId?this.getHypothesis(o.hypothesisId):void 0)?.subscriptionData!=null)||Object.values(this.state.temporary.testReservations??{}).some(o=>this.getHypothesis(o.hypothesisId)?.subscriptionData!=null);this.hiddenSubscriptionPlans&&!r&&(this.log(`[SUB-GLOBAL] Visitor not in subscription test â hiding ${this.hiddenSubscriptionPlans.planIds.length} B-side plans`),je(this.hiddenSubscriptionPlans,o=>this.log(o))),await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange(),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(e){if(e instanceof ie)return;throw e}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(e){switch(e){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(e){return e.title?e.title:e.type==="price"?e.isControl?"Original prices":"Variant prices":e.isControl?"Original":"Untitled variant "+e.label.toUpperCase()}
52async initPreview(){const e=this.urlParams.get("previewConfig");if(e){this.state.temporary.previewConfig=void 0,this.log("Setting up the preview"),this.log("Found preview config, writing to temporary state");const t=await Oe(e);if(this.state.temporary.previewConfig=t,this.state.temporary.previewConfig.testTypeCategory===M.Price){this.hidePage(!0);const s=this.state.temporary.previewConfig;let r=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/${s.isDraft||!1}`;s.shopifyProductId&&(r+=`?productId=${s.shopifyProductId}`);const o=await this.makeJsonRequest({method:"get",url:r}).catch(n=>(this.log("Error getting domSelectors",n),null));if(s.variants.forEach(n=>n.domSelectors=o[n.id]?.domSelectors),s.isDraft){const n=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/subscription-preview`,l=await this.makeJsonRequest({method:"get",url:n}).catch(c=>(this.log("No subscription preview data for draft (test may not have a subscription widget)",c),null));l?.subscriptionData&&s.variants.forEach(c=>{c.subscriptionData=l.subscriptionData,c.priceData=l.priceData})}}this.persistTemporaryState();const i=new URL(window.location.toString());i.searchParams.delete("previewConfig"),this.queueRedirect(i)}else if(this.state.temporary.previewConfig){this.showPage();const t=this.state.temporary.previewConfig;if(t.testTypeCategory===M.Template&&this.handleTemplatePreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.UrlRedirect&&this.handleUrlPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Script&&this.handleScriptPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Price){const i=await this.handlePricePreview(t);t.isDraft?await this.handleSubscriptionPricePreview(t):await this.handleSubscriptionLivePreview(t),i&&this.initPreviewControls(t)}}}initPreviewControls(e){document.addEventListener("DOMContentLoaded",()=>{const t=e.variants.find(b=>b.id===e.currentVariant),i=t?.label||"a",s=e.variants,r=document.createElement("div");r.id="shoplift-preview-control";const o=document.createElement("div"),n=document.createElement("img");n.src=Ve,n.height=24,n.width=14,o.style.padding="0 16px",o.style.lineHeight="100%",o.appendChild(n),r.appendChild(o);const l=document.createElement("div");l.id="shoplift-preview-variant-selector";const c=document.createElement("button");c.id="shoplift-preview-variant-menu-trigger";const d=document.createElement("div");d.className="menu-variant-label",d.style.backgroundColor=this.getVariantColor(i).bg,d.style.color=this.getVariantColor(i).text,d.innerText=i.toUpperCase(),c.appendChild(d);const u=document.createElement("span");if(u.id="shoplift-preview-variant-title",u.innerText=t?this.getDefaultVariantTitle(t):"Untitled variant "+i.toUpperCase(),c.appendChild(u),s.length>1){const b=document.createElement("img");b.src=De,b.width=12,b.height=12,b.style.height="12px",b.style.width="12px",c.appendChild(b);const E=document.createElement("div");E.className="preview-variant-menu";for(const S of e.variants.filter(C=>C.id!==e.currentVariant)){const C=document.createElement("div");C.className="preview-variant-menu--item";const _=document.createElement("div");_.className="menu-variant-label",_.style.backgroundColor=this.getVariantColor(S.label).bg,_.style.color=this.getVariantColor(S.label).text,_.style.flexShrink="0",_.innerText=S.label.toUpperCase(),C.appendChild(_);const T=document.createElement("span");T.innerText=this.getDefaultVariantTitle(S),C.appendChild(T),C.addEventListener("click",()=>{this.pickVariant(S.id)}),E.appendChild(C)}l.appendChild(E),c.addEventListener("click",()=>{E.className!=="preview-variant-menu preview-variant-menu__visible"?E.classList.add("preview-variant-menu__visible"):E.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",S=>{S.target instanceof Element&&!c.contains(S.target)&&E.className==="preview-variant-menu preview-variant-menu__visible"&&E.classList.remove("preview-variant-menu__visible")})}else c.style.pointerEvents="none",d.style.margin="0";if(l.appendChild(c),r.appendChild(l),e.hasSubscription){this.subscriptionPreviewWarningCleanup?.();const b=Ye();r.appendChild(b.root),this.subscriptionPreviewWarningCleanup=b.cleanup}const h=document.createElement("div"),p=document.createElement("button");p.id="shoplift-exit-preview-button",p.innerText="Exit",h.appendChild(p),p.addEventListener("click",()=>{this.exitPreview()}),r.appendChild(h),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.add("visible")})}),this.ensureCartAttributesForExistingPriceTests(!0)}pickVariant(e){if(this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig,i=new URL(window.location.toString());if(t.testTypeCategory===M.UrlRedirect){const s=t.variants.find(r=>r.id===t.currentVariant)?.redirectUrl;if(i.pathname===s){const r=t.variants.find(o=>o.id===e)?.redirectUrl;r&&(i.pathname=r)}}if(t.testTypeCategory===M.Template){const s=t.variants.find(r=>r.id===t.currentVariant)?.pathName;if(s&&i.pathname===s){const r=t.variants.find(o=>o.id===e)?.pathName;r&&r!==s&&(i.pathname=r)}}t.currentVariant=e,this.persistTemporaryState(),this.queueRedirect(i)}}exitPreview(){const e=new URL(window.location.toString());if(this.state.temporary.previewConfig?.testTypeCategory===M.Template&&e.searchParams.delete("view"),this.state.temporary.previewConfig?.testTypeCategory===M.Script&&e.searchParams.delete("slVariant"),this.state.temporary.previewConfig?.testTypeCategory===M.UrlRedirect){const i=this.state.temporary.previewConfig.variants.filter(r=>!r.isControl&&r.redirectUrl!==null).map(r=>r.redirectUrl),s=this.state.temporary.previewConfig.variants.find(r=>r.label==="a")?.redirectUrl;i.includes(e.pathname)&&s&&(e.pathname=s)}this.state.temporary.isMerchant=!1,e.searchParams.delete("isShopliftMerchant"),this.state.temporary.previewConfig=void 0,this.persistTemporaryState(),this.subscriptionPreviewWarningCleanup?.(),this.subscriptionPreviewWarningCleanup=null,this.hidePage(),this.queueRedirect(e)}handleTemplatePreview(e){const t=e.currentVariant,i=e.variants.find(l=>l.id===t);if(!i)return!1;const s=e.variants.find(l=>l.isControl);if(!s)return!1;this.log("Setting up template preview for type",s.type);
52const r=new URL(window.location.toString()),o=r.searchParams.get("view"),n=i.type===s.type;return!n&&!i.isControl&&template.suffix===s.affix&&this.typeFromTemplate()===s.type&&i.pathName!==null?(this.log("Hit control template type, redirecting to the variant url"),this.hidePage(),r.pathname=i.pathName,this.queueRedirect(r),!0):(!i.isControl&&this.typeFromTemplate()==i.type&&template.suffix===s.affix&&n&&o!==(i.affix||"__DEFAULT__")&&(this.log("Template type and affix match control, updating the view param"),r.searchParams.delete("view"),this.log("Setting the new viewParam to",i.affix||"__DEFAULT__"),this.hidePage(),r.searchParams.set("view",i.affix||"__DEFAULT__"),this.queueRedirect(r)),o!==null&&o!==(i.affix||"__DEFAULT__")&&(r.searchParams.delete("view"),this.hidePage(),this.queueRedirect(r)),!0)}handleUrlPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t),s=e.variants.find(o=>o.isControl)?.redirectUrl;if(!i)return!1;this.log("Setting up URL redirect preview");const r=new URL(window.location.toString());return r.pathname===s&&!i.isControl&&i.redirectUrl!==null&&(this.log("Url matches control, redirecting"),this.hidePage(),r.pathname=i.redirectUrl,this.queueRedirect(r)),!0}handleScriptPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t);if(!i)return!1;this.log("Setting up script preview");const s=new URL(window.location.toString());return s.searchParams.get("slVariant")!==i.id&&(this.log("current id doesn't match the variant, redirecting"),s.searchParams.delete("slVariant"),this.log("Setting the new slVariantParam"),this.hidePage(),s.searchParams.set("slVariant",i.id),this.queueRedirect(s)),!0}async handlePricePreview(e){const t=e.currentVariant,i=e.variants.find(s=>s.id===t);return i?(this.log("Setting up price preview"),i.domSelectors&&i.domSelectors.length>0&&(U(document,{testId:e.testId,hypothesisId:i.id,selectors:i.domSelectors}),this.ensureCartAttributesForExistingPriceTests(!0)),!0):!1}async handleSubscriptionPricePreview(e){const t=e.variants.find(i=>i.id===e.currentVariant);t?.subscriptionData&&(this.log("Setting up subscription price preview"),await Ge({id:t.id,isControl:t.isControl,subscriptionData:t.subscriptionData,priceData:t.priceData},(i,...s)=>this.log(i,...s)))}async handleSubscriptionLivePreview(e){this.testConfigs.find(s=>s.id===e.testId)?.hypotheses.find(s=>s.id===e.currentVariant)?.subscriptionData&&(this.log("Setting up subscription live preview"),this.subscriptionSwapDone=!1,this.subscriptionOneTimeDone=!1,this.subscriptionPriceDone=!1,await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange())}async finalize(){const e=await this.getCartState();e!==null&&this.queueCartUpdate(e),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),t)return this.log("Forcing variant for hypothesis '%s'",s),!0;if(i!==null)return this.log("Forcing hypothesis '%s'",i),s===i;const r=this.testConfigs.find(n=>n.hypotheses.some(l=>l.id===s));if(!r)return this.log("No test found for hypothesis '%s'",s),!1;const o=this.state.essential.visitorTests.find(n=>n.testId===r.id);return o?(this.log("Active visitor test found",s),o.hypothesisId===s):(await this.manuallySplitVisitor(r),this.testConfigs.some(n=>n.hypotheses.some(l=>l.id===s&&this.state.essential.visitorTests.some(c=>c.hypothesisId===l.id))))},setAnalyticsConsent:async s=>{await this.onConsentChange(s,!0)},getVisitorData:()=>({visitor:this.state.analytics.visitor,visitorTests:this.state.essential.visitorTests.filter(s=>!s.isInvalid).map(s=>{const{shouldSendToGa:r,savedAt:o,...n}=s;return n})})}}setShopliftStub(){this.log("Setting up stubbed public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:s=>Promise.resolve(t||s===i),setAnalyticsConsent:()=>Promise.resolve(),getVisitorData:()=>({visitor:null,visitorTests:[]})}}async manuallySplitVisitor(e){this.log("Starting manual split for test '%s'",e.id),await this.handleVisitorTest([e]);const t=this.getReservationForTest(e.id);t&&!t.isRealized&&t.entryCriteriaKey&&(this.log("Realizing manual API reservation for test '%s'",e.id),this.realizeReservationForCriteria(t.entryCriteriaKey)),this.saveState(),this.syncAllEvents()}async handleVisitorTest(e){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests),this.pruneStaleVisitorTests(),this.deriveC
52ategoryFromExistingTests(),this.clearStaleReservations();let t=e?e.filter(i=>this.testsFilteredByAudience.some(s=>s.id===i.id)):[...this.testsForUrl(this.testsFilteredByAudience),...this.domTestsForUrl(this.testsFilteredByAudience)];try{if(t.length===0)return this.log("No tests found"),!1;this.log("Checking for existing visitor test on page");const i=this.getCurrentVisitorHypothesis(t);if(i){this.log("Found current visitor test");const l=this.considerRedirect(i);return l&&(this.log("Redirecting for current visitor test"),this.redirect(i)),l}const s=this.getReservationForCurrentPage();if(s){this.log("Found matching reservation for current page: %s",s.testId);const l=this.getHypothesis(s.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(s.entryCriteriaKey);const c=this.considerRedirect(l);return c&&this.redirect(l),c}}this.log("No active test relation for test page");const r=this.testsForUrl(this.inactiveTestConfigs.filter(l=>this.testIsPaused(l)&&l.hypotheses.some(c=>this.state.essential.visitorTests.some(d=>d.hypothesisId===c.id)))).map(l=>l.id);if(r.length>0)return this.log("Visitor has paused tests for test page, skipping test assignment: %o",r),!1;if(!this.state.temporary.testCategory){const l=this.testsFilteredByAudience.filter(d=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d))),c=this.testsFilteredByAudience.filter(d=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d)));if(this.log("Category dice roll - global tests: %o, conditional tests: %o",l.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)})),c.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)}))),l.length>0&&c.length>0){const d=l.length,u=c.length,h=d+u,p=Math.random()*h;this.state.temporary.testCategory=p<d?"global":"conditional",this.log("Category dice roll: rolled %.2f of %d (global weight: %d, conditional weight: %d), selected '%s'",p,h,d,u,this.state.temporary.testCategory)}else l.length>0?(this.state.temporary.testCategory="global",this.log("Only global tests available, setting category to global")):(this.state.temporary.testCategory="conditional",this.log("Only conditional tests available, setting category to conditional"));this.persistTemporaryState()}const o=this.state.temporary.testCategory;if(this.log("Visitor test category: %s",o),o==="global"){const l=this.testsFilteredByAudience.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:global");t=t.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}else{const l=this.testsFilteredByAudience.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:conditional");t=t.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}if(t.length===0)return this.log("No tests remaining after category filter"),!1;this.createReservations(t);const n=this.getReservationForCurrentPage();if(n&&!n.isRealized){const l=this.getHypothesis(n.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(n.entryCriteriaKey);const c=this.considerRedirect(l);return c&&(this.log("Redirecting for new test"),this.redirect(l)),c}}return!1}finally{this.includeInDomTests(),this.saveState()}}includeInDomTests(){this.applyControlForAudienceFilteredPriceTests();const e=this.getDomTestsForCurrentUrl(),t=this.getVisitorDomHypothesis(e);for(const i of e){this.log("Evaluating dom test '%s'",i.id);const s=i.hypotheses.some(p=>p.type==="price");if(this.state.essential.visitorTests.find(p=>p.testId===i.id&&p.isInvalid&&!p.hypothesisId)){if(this.log("Visitor is blocked from test '%s', applying control prices if price test",i.id),s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for blocked visitor, no metrics tracked")}),this.updatePriceTestHiddenInputs(i.id,"control",!1))}continue}const o=this.getReservationForTest(i.id);let n=null,l=!1;const c=t.find(p=>i.hypotheses.some(b=>p.id===b.id));if(o)n=this.getHypothesis(o.hypothesisId)??null,this.log("Using reserved hypothesis '%s' for test '%s'",o.hypothesisId,i.id);else if(c)n=c,this.log("Using existing hypothesis assignment for test '%s'",i.id);else if(s){const p=this.visitorActiveTestTypeWithReservations();p?(l=!0,this.log("Visitor already in test type '%s', treating as non-test for price test '%s'",p,i.id)):n=this.pickHypothesis(i)}else n=this.pickHypothesis(i);if(l&&s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.log("Applying control prices for non-test visitor on price test '%s' (Map-based)",i.id),this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for non-test visitor, no metrics tracked")}
52),this.updatePriceTestHiddenInputs(i.id,"control",!1));continue}if(!n){this.log("Failed to pick hypothesis for test");continue}this.sendDiagnosticTelemetry("assignment",i.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const d=i.bayesianRevision??4,u=n.type==="price",h=d>=5;if(u&&h){if(this.log(`Price test with Map-based lookup (v${d}): ${i.id}`),!n.priceData){this.log("No price data for hypothesis '%s', skipping",n.id);continue}const p=n.isControl?"control":"variant";this.log(`Setting up Map-based price test for ${p} (test: ${i.id})`),this.applyPriceTestWithMapLookup(i.id,n,i.hypotheses,b=>{const E=this.getReservationForTest(b);E&&!E.isRealized&&E.entryCriteriaKey?this.realizeReservationForCriteria(E.entryCriteriaKey):this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(u&&!h){this.log(`Price test without viewport tracking (v${d}): ${i.id}`);const p=this.getDomSelectorsForHypothesis(n);if(p.length===0)continue;U(document,{testId:i.id,hypothesisId:n.id,selectors:p},b=>{this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(!n.domSelectors||n.domSelectors.length===0){this.log("No selectors found, skipping hypothesis");continue}U(document,{testId:i.id,hypothesisId:n.id,selectors:n.domSelectors},p=>{this.queueAddVisitorToTest(p,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()})}}considerRedirect(e){if(this.log("Considering redirect for hypothesis '%s'",e.id),e.isControl)return this.log("Skipping redirect for control"),!1;if(e.type==="basicScript"||e.type==="manualScript")return this.log("Skipping redirect for script test"),!1;const t=this.state.essential.visitorTests.find(o=>o.hypothesisId===e.id),i=new URL(window.location.toString()),r=new URLSearchParams(window.location.search).get("view");if(e.type==="theme"){if(!(e.themeId===themeId)){if(this.log("Theme id '%s' is not hypothesis theme ID '%s'",e.themeId,themeId),this.isAppProxyPath())return this.log("On App Proxy path, skipping theme redirect to avoid infinite loop"),!1;if(t&&t.themeId!==e.themeId&&(t.themeId===themeId||!this.isThemePreview()))this.log("On old theme, redirecting and updating local visitor"),t.themeId=e.themeId;else if(this.isThemePreview())return this.log("On non-test theme, skipping redirect"),!1;return this.log("Hiding page to redirect for theme test"),this.hidePage(),!0}return!1}else if(e.type!=="dom"&&e.type!=="price"&&e.affix!==template.suffix&&e.affix!==r||e.redirectPath&&!i.pathname.endsWith(e.redirectPath))return this.log("Hiding page to redirect for template test"),this.hidePage(),!0;return this.log("Not redirecting"),!1}redirect(e){if(this.log("Redirecting to hypothesis '%s'",e.id),e.isControl)return;const t=new URL(window.location.toString());if(t.searchParams.delete("view"),e.redirectPath){const n=RegExp("^(/w{2}-w{2})/").exec(t.pathname);if(n&&n.length>1){const l=n[1];t.pathname=`${l}${e.redirectPath}`}else t.pathname=e.redirectPath}else e.type==="theme"?(t.searchParams.set("_ab","0"),t.searchParams.set("_fd","0"),t.searchParams.set("_sc","1"),t.searchParams.set("preview_theme_id",e.themeId.toString())):e.type!=="urlRedirect"&&t.searchParams.set("view",e.affix);const i=this.state.essential.visitorTests.find(n=>n.hypothesisId===e.id)?.testId,s=t.pathname+t.search,r=window.location.pathname+window.location.search,o=K(t.hash);if(i&&s!==r&&!o){const n=qe(),l=He({v:2,t:i,n,fh:Me(window.location.pathname+window.location.search)});t.hash=`slr-${n}`;const c=new Date(Date.now()+3e4).toUTCString();document.cookie=`shoplift_redirect=${l};domain=.${window.location.hostname};path=/;SameSite=Strict;expires=${c}`}s===r&&this.showPage(),this.queueRedirect(t)}async refreshVisitor(e){if(e===null||!this.state.essential.isFirstLoad||!this.testConfigs.some(i=>i.visitorOption!=="all"))return;this.log("Refreshing visitor"),this.hidePage();const t=await this.getVisitor(e);t&&t.id&&this.updateLocalVisitor(t)}buildBaseVisitor(){return{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.device,country:null,...this.state.essential.initialState}}getInitialState(){const e=this.getUTMValue("utm_source")??"",t=this.getUTMValue("utm_medium")??"",i=this.getUTMValue("utm_campaign")??"",s=this.getUTMValue("utm_content")??"",r=window.document.referrer,o=this.device;return{createdAt:new Date,utmSource:e,utmMedium:t,utmCampaign:i,utmContent:s,referrer:r,device:o}}checkForThemePreview(){return this.log("Checking for theme preview"),window.location.hostname.endsWith(".shopifypreview.com")?(this.log("on shopify preview domain"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!1):this.isThemePreview()?this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("On active theme test, remov
52ing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&!this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("Visitor is on an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.state.essential.isFirstLoad?(this.log("No visitor found on theme preview, redirecting to main theme"),this.redirectToMainTheme(),!0):this.inactiveTestConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Current theme is an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.testConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Falling back to clearing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):(this.log("No tests on current theme, skipping script"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!0):(this.log("Not on theme preview"),this.clearThemeBar(!0,!1,this.state),!1)}redirectToMainTheme(){this.hidePage();const e=new URL(window.location.toString());e.searchParams.set("preview_theme_id",""),this.queueRedirect(e)}testsForUrl(e){const t=new URL(window.location.href),i=this.typeFromTemplate();return e.filter(s=>s.hypotheses.some(r=>r.type!=="dom"&&r.type!=="price"&&(r.isControl&&r.type===i&&r.affix===template.suffix||r.type==="theme"||r.isControl&&r.type==="urlRedirect"&&r.redirectPath&&t.pathname.endsWith(r.redirectPath)||r.type==="basicScript"))&&(s.ignoreTestViewParameterEnforcement||!t.searchParams.has("view")||s.hypotheses.map(r=>r.affix).includes(t.searchParams.get("view")??"")))}domTestsForUrl(e){const t=new URL(window.location.href);return e.filter(i=>i.hypotheses.some(s=>s.type!=="dom"&&s.type!=="price"?!1:s.type==="price"&&s.priceData&&s.priceData.variants.length>0?!0:s.domSelectors&&s.domSelectors.some(r=>new RegExp(se(r)).test(K(t.toString())))))}async filterTestsByAudience(e,t,i){const s=[],r=e.some(n=>(n.requiresRegion||this.geoViaShopify&&n.requiresCountry)&&!i.some(l=>l.testId===n.id));this.resolvedRegion===null&&r&&(this.log("Hiding page to wait for Shopify region resolution"),this.hidePage(),await this.waitForResolvedRegion()),window.__slRegion=this.resolvedRegion??"";let o=t.country;this.geoViaShopify?o=this.resolvedRegion?this.resolvedRegion.slice(0,2):o:!o&&e.some(n=>n.requiresCountry&&!i.some(l=>l.testId===n.id))&&(this.log("Hiding page to check geoip"),this.hidePage(),o=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/get-country`,signal:AbortSignal.timeout(this.getCountryTimeout)}).catch(n=>(this.log("Error getting country",n),null)));for(const n of e){if(this.log("Checking audience for test '%s'",n.id),this.state.essential.visitorTests.some(d=>d.testId===n.id&&d.hypothesisId==null)){console.log(`Skipping blocked test '${n.id}'`);continue}const l=this.visitorCreatedDuringTestActive(n.statusHistory);(i.some(d=>d.testId===n.id&&(n.device==="all"||n.device===t.device&&n.device===this.device))||this.isTargetAudience(n,t,l,o))&&(this.log("Visitor is in audience for test '%s'",n.id),s.push(n))}this.testsFilteredByAudience=s}async waitForResolvedRegion(e=1500,t=50){const i=Date.now();for(;this.resolvedRegion===null&&Date.now()-i<e;)await new Promise(s=>window.setTimeout(s,t))}isTargetAudience(e,t,i,s){const r=this.getChannel(t);return(e.device==="all"||e.device===t.device&&e.device===this.device)&&(e.visitorOption==="all"||e.visitorOption==="new"&&i||e.visitorOption==="returning"&&!i)&&(e.targetAudiences.length===0||e.targetAudiences.reduce((o,n)=>o||n.reduce((l,c)=>l&&c(t,i,r,s),!0),!1))}visitorCreatedDuringTestActive(e){let t="";for(const i of e){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;t=i.status}return t==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(e){return e.flatMap(t=>t.hypotheses).find(t=>t.type!=="dom"&&t.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getVisitorDomHypothesis(e){return e.flatMap(t=>t.hypotheses).filter(t=>(t.type==="dom"||t.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getHypothesis(e){return this.testConfigs.filter(t=>t.hypotheses.some(i=>i.id===e)).map(t=>t.hypotheses.find(i=>i.id===e))[0]}getActiveAssignment(){if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;return t.currentVariant&&t.testId?{testId:t.testId,hypothesisId:t.currentVariant}:null}const e=this.state.essential.visitorTests.find(t=>t.hypothesisId);return e?.hypothesisId?{testId:e.testId,hypothesisId:e.hypothesisId}:null}findActiveSubscriptionTestControl(){for(const e of this.testConfigs){const t=e.hypotheses.find(i=>i.isControl);if(t?.subscriptionData)return{testId:e.id,hypothesis:t}}return null}getDomSelectorsForHypothesis(e){if(!e)return[];if(e.domSelectors&&e.domSelectors.length>0)return e.domSelectors;if(e.priceData){const t=`${this.priceSelectorsSessionKey}_${e.id}`;try{const s=sessionStorage.getItem(t);if(s){const r=JSON.parse(s);return e.domSelectors=r,this.log("Loaded %d price selectors from cache for hypothesis '%s'",r.length,e.id),r}}catch{}const i=$e(e.priceData);e.domSelectors=i;try{sessionStorage.setItem(t,JSON.stringify(i)),this.log("Generated and cached %d price selectors for hypothesis '%s'",i.length,e.id)}catch{this.log("Generated %d price selectors for hypothesis '%s' (cache unavailable)",i.length,e.id)}return i}return[]}hasThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(e){return this.hasThemeTest(e)&&this.hasTestThatIsNotThemeTest(e)}testIsPaused(e){return e.status==="paused"||e.status==="incompatible"||e.status==="suspended"}visitorActiveTestType(){const e=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==t.hypothesisId)));return e.length===0?null:e.some(t=>t.isThemeTest)?"theme":"templateOrUrlRedirect"}getReservationType(e){return e==="price"||this.isTemplateTestType(e)?"deferred":"immediate"}isTemplateTestType(e){return["product","collection","landing","index","cart","search","blog","article","collectionList"].includes(e)}getEntryCriteriaKey(e){const t=e.hypotheses.find(i=>i.isControl);if(!t)return`unknown:${e.id}`;switch(t.type){case"theme":return"global:theme";case"basicScript":return"global:autoApi";case"price":return"global:price";case"manualScript":return`conditional:manualApi:${e.id}`;case"urlRedirect":return`conditional:url:${t.redirectPath||"unknown"}`;default:return`conditional:template:${t.type}`}}isGlobalEntryCriteria(e){return e.startsWith("global:")}groupTestsByEntryCriteria(e){const t=new Map;for(const i of e){const s=this.getEntryCriteriaKey(i),r=t.get(s)||[];r.push(i),t.set(s,r)}return t}doesCurrentPageMatchEntryCriteria(e){if(this.isGlobalEntryCriteria(e))return!0;
52if(e==="conditional:manualApi")return!1;if(e.startsWith("conditional:url:")){const t=e.replace("conditional:url:","");return window.location.pathname.endsWith(t)}if(e.startsWith("conditional:template:")){const t=e.replace("conditional:template:","");return this.typeFromTemplate()===t}return!1}hasActiveReservation(){const e=this.getActiveReservations();return Object.values(e).some(t=>!t.isRealized)}getActiveReservation(){const e=this.getActiveReservations();return Object.values(e).find(t=>!t.isRealized)??null}clearStaleReservations(){const e=this.state.temporary.testReservations;if(!e)return;let t=!1;for(const[i,s]of Object.entries(e)){const r=this.testConfigs.find(n=>n.id===s.testId);if(!r){this.log("Test '%s' no longer in config, clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0;continue}if(r.status!=="active"){this.log("Test '%s' status is '%s', clearing reservation for criteria '%s'",s.testId,r.status,i),delete e[i],t=!0;continue}this.testsFilteredByAudience.some(n=>n.id===s.testId)||(this.log("Visitor no longer passes audience for test '%s', clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0)}t&&this.persistTemporaryState()}createReservations(e){if(this.state.temporary.testReservations||(this.state.temporary.testReservations={}),this.state.temporary.rolledEntryCriteria||(this.state.temporary.rolledEntryCriteria=[]),this.state.temporary.testCategory==="global"){this.createSingleReservation(e,"global");return}const i=e.filter(n=>this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n))),s=e.filter(n=>!this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n)));this.log("Conditional tests split - matching current page: %d, not matching: %d",i.length,s.length),i.length>0&&this.log("Tests matching current page (same pool): %o",i.map(n=>({id:n.id,title:n.title,criteria:this.getEntryCriteriaKey(n)})));const r=`conditional:current-page:${this.typeFromTemplate()}`;if(i.length>0&&!this.state.temporary.rolledEntryCriteria.includes(r)){this.createSingleReservation(i,r);for(const n of i){const l=this.getEntryCriteriaKey(n);this.state.temporary.rolledEntryCriteria.includes(l)||this.state.temporary.rolledEntryCriteria.push(l)}}const o=this.groupTestsByEntryCriteria(s);for(const[n,l]of o){if(this.state.temporary.rolledEntryCriteria.includes(n)){this.log("Already rolled for criteria '%s', skipping",n);continue}if(l.some(S=>this.state.essential.visitorTests.some(C=>C.testId===S.id))){this.log("Visitor already has VT for criteria '%s', skipping",n),this.state.temporary.rolledEntryCriteria.push(n);continue}const d=[...l].sort((S,C)=>S.id.localeCompare(C.id));this.log("Test dice roll for criteria '%s' - available tests: %o",n,d.map(S=>({id:S.id,title:S.title})));const u=Math.floor(Math.random()*d.length),h=d[u];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",u+1,l.length,h.id,h.title);const p=this.pickHypothesis(h);if(!p){this.log("No hypothesis picked for test '%s'",h.id);continue}this.sendDiagnosticTelemetry("assignment",h.id,{hypothesisId:p.id,isControl:p.isControl,testType:p.type});const b=this.getReservationType(p.type),E={testId:h.id,hypothesisId:p.id,testType:p.type,reservationType:b,isThemeTest:p.type==="theme",themeId:p.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:n};this.state.temporary.testReservations[n]=E,this.state.temporary.rolledEntryCriteria.push(n),this.log("Created %s reservation for test '%s' (criteria: %s)",b,h.id,n);for(const S of l)S.id!==h.id&&this.markTestAsBlocked(S,n)}this.persistTemporaryState()}createSingleReservation(e,t){if(this.state.temporary.rolledEntryCriteria.includes(t)){this.log("Already rolled for pool '%s', skipping",t);return}if(e.some(u=>this.state.essential.visitorTests.some(h=>h.testId===u.id&&!h.isInvalid))){this.log("Visitor already has VT for pool '%s', skipping",t),this.state.temporary.rolledEntryCriteria.push(t);return}if(e.length===0){this.log("No tests in pool '%s'",t);return}const s=[...e].sort((u,h)=>u.id.localeCompare(h.id));this.log("Test dice roll for pool '%s' - available tests: %o",t,s.map(u=>({id:u.id,title:u.title,criteria:this.getEntryCriteriaKey(u)})));const r=Math.floor(Math.random()*s.length),o=s[r];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",r,e.length,o.id,o.title);const n=this.pickHypothesis(o);if(!n){this.log("No hypothesis picked for test '%s'",o.id);return}this.sendDiagnosticTelemetry("assignment",o.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const l=this.getReservationType(n.type),c=this.getEntryCriteriaKey(o),d={testId:o.id,hypothesisId:n.id,testType:n.type,reservationType:l,isThemeTest:n.type==="theme",themeId:n.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:c};this.state.temporary.testReservations[c]=d,this.state.temporary.rolledEntryCriteria.push(t),this.log("Created %s reservation for test '%s' from pool '%s' (criteria: %s)",l,o.id,t,c);for(const u of e)u.id!==o.id&&this.markTestAsBlocked(u,`pool:${t}`);this.persistTemporaryState()}markTestAsBlocked(e,t){this.state.essential.visitorTests.some(i=>i.testId===e.id)||(this.log("Blocking visitor from test '%s' (reason: %s)",e.id,t),this.state.essential.visitorTests.push({createdAt:new Date,testId:e.id,hypothesisId:null,isThemeTest:e.hypotheses.some(i=>
52i.type==="theme"),shouldSendToGa:!1,isSaved:!0,isInvalid:!0,themeId:void 0}))}realizeReservationForCriteria(e){const t=this.state.temporary.testReservations?.[e];if(!t)return this.log("No reservation found for criteria '%s'",e),!1;if(t.isRealized)return this.log("Reservation already realized for criteria '%s'",e),!1;if(this.state.essential.visitorTests.some(s=>s.testId===t.testId&&!s.isInvalid))return this.log("Visitor already assigned to test '%s'",t.testId),!1;const i=this.getHypothesis(t.hypothesisId);return i?(t.isRealized=!0,this.persistTemporaryState(),this.queueAddVisitorToTest(t.testId,i),this.saveState(),this.log("Realized reservation for test '%s' (criteria: %s)",t.testId,e),!0):(this.log("Hypothesis '%s' not found",t.hypothesisId),!1)}getActiveReservations(){return this.state.temporary.testReservations??{}}getReservationForCurrentPage(){const e=this.getActiveReservations();for(const[t,i]of Object.entries(e)){if(i.isRealized)continue;const s=this.testConfigs.find(r=>r.id===i.testId);if(!(!s||s.status!=="active")&&this.doesCurrentPageMatchEntryCriteria(t))return i}return null}getReservationForTest(e){const t=this.getActiveReservations();return Object.values(t).find(i=>i.testId===e)??null}getReservationTestType(){const e=this.getActiveReservations(),t=Object.values(e);if(t.length===0)return null;for(const i of t)if(i.isThemeTest)return"theme";for(const i of t)if(i.testType==="price")return"price";return t.some(i=>!i.isRealized)?"templateOrUrlRedirect":null}hasPriceTests(e){return e.some(t=>t.hypotheses.some(i=>i.type==="price"))}_priceTestProductIds=null;getPriceTestProductIds(){if(this._priceTestProductIds)return this._priceTestProductIds;const e=new Set;for(const t of this.testConfigs)for(const i of t.hypotheses)if(i.type==="price"){for(const s of i.domSelectors||[]){const r=s.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);r?.[1]&&e.add(r[1])}if(i.priceData?.variants)for(const[s]of i.priceData.variants)e.add(s)}return this._priceTestProductIds=e,this.log("Built price test product ID cache with %d products",e.size),e}isProductInAnyPriceTest(e){return this.getPriceTestProductIds().has(e)}visitorActiveTestTypeWithReservations(){const e=this.getActiveReservations();for(const r of Object.values(e)){if(r.isThemeTest)return"theme";if(r.testType==="price")return"price"}if(Object.values(e).some(r=>!r.isRealized)){if(this.state.temporary.testCategory==="global")for(const o of Object.values(e)){if(o.testType==="theme")return"theme";if(o.testType==="price")return"price";if(o.testType==="basicScript")return"theme"}return"templateOrUrlRedirect"}const i=this.state.essential.visitorTests.filter(r=>!r.isInvalid&&this.testConfigs.some(o=>o.hypotheses.some(n=>n.id===r.hypothesisId)));return i.length===0?null:i.some(r=>this.getHypothesis(r.hypothesisId)?.type==="price")?"price":i.some(r=>r.isThemeTest)?"theme":"templateOrUrlRedirect"}applyControlForAudienceFilteredPriceTests(){const e=this.testConfigs.filter(s=>s.status==="active"&&s.hypotheses.some(r=>r.type==="price"));if(e.length===0)return;const t=this.testsFilteredByAudience.filter(s=>s.hypotheses.some(r=>r.type==="price")),i=e.filter(s=>!t.some(r=>r.id===s.id));if(i.length!==0){this.log("Found %d price tests filtered by audience, applying control selectors",i.length);for(const s of i){const r=s.hypotheses.find(c=>c.isControl),o=this.getDomSelectorsForHypothesis(r);if(o.length===0){this.log("No control selectors for audience-filtered price test '%s'",s.id);continue}const n=new URL(window.location.href);o.some(c=>{try{return new RegExp(se(c)).test(K(n.toString()))}catch{return!1}})&&(this.log("Applying control selectors for audience-filtered price test '%s'",s.id),U(document,{testId:s.id,hypothesisId:r.id,selectors:o},()=>{}),this.updatePriceTestHiddenInputs(s.id,"control",!1))}}}pickHypothesis(e){let t=Math.random();const i=e.hypotheses.reduce((r,o)=>r+o.visitorCount,0);return e.hypotheses.sort((r,o)=>r.isControl?o.isControl?0:-1:o.isControl?1:0).reduce((r,o)=>{if(r!==null)return r;const l=e.hypotheses.reduce((c,d)=>c&&d.visitorCount>20,!0)?o.visitorCount/i-o.trafficPercentage:0;return t<=o.trafficPercentage-l?o:(t-=o.trafficPercentage-l,null)},null)}typeFromTemplate(){switch(template.type){case"list-collections":return"collectionList";case"page":return"landing";case"article":case"blog":case"cart":case"collection":case"index":case"product":case"search":return template.type;default:return null}}queueRedirect(e){this.saveState(),this.disableReferrerOverride||(this.log(`Saving temporary referrer override '${document.referrer}'`),this.state.temporary.originalReferrer=document.referrer,this.persistTemporaryState()),window.setTimeout(()=>window.location.assign(e),0),window.setTimeout(()=>{this.syncAllEvents()},2e3)}scheduleRetrySync(){this.clientIdRetryCount>=5||(this.clientIdRetryCount++,window.setTimeout(()=>{this.syncAllEvents()},500))}async syncAllEvents(){const e=async()=>
52{if(this.isSyncing){window.setTimeout(()=>{(async()=>await e())()},500);return}try{if(this.isSyncing=!0,this.syncGAEvents(),this.shopifyAnalyticsId||(this.shopifyAnalyticsId=this.getShopifyAnalyticsId()),!this.shopifyAnalyticsId){this.scheduleRetrySync();return}await this.syncEvents()}finally{this.isSyncing=!1}};await e()}async syncEvents(){if(!this.state.essential.consentApproved||!this.shopifyAnalyticsId||this.state.analytics.queue.length===0)return;const e=this.state.analytics.queue.length,t=this.state.analytics.queue.splice(0,e);this.log("Syncing %s events",e);try{const i={shop:this.shop,visitorDetails:{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.state.analytics.visitor?.device??this.device,country:this.state.analytics.visitor?.country??null,...this.state.essential.initialState},events:this.state.essential.visitorTests.filter(r=>!r.isInvalid&&!r.isSaved&&r.hypothesisId!=null).map(r=>new be(r.testId,r.hypothesisId,r.createdAt)).concat(t)};await this.sendEvents(i);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved&&o.hypothesisId!=null))this.sendDiagnosticTelemetry("event-delivered",r.testId,{hypothesisId:r.hypothesisId,isControl:r.assignedTo==="control",testType:r.testType??"unknown"});const s=await this.getVisitor(this.shopifyAnalyticsId);s!==null&&this.updateLocalVisitor(s);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved))r.isSaved=!0,r.savedAt=Date.now()}catch{this.state.analytics.queue.splice(0,0,...t)}finally{this.saveState()}}syncGAEvents(){if(!this.gaConfig.sendEvents){if(he)return;he=!0,this.log("UseGtag is false â skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const e=this.state.essential.visitorTests.filter(t=>t.shouldSendToGa);e.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",e.length),Promise.allSettled(e.map(t=>this.sendGAEvent(t))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(e){return new Promise(t=>{this.log("Sending GA Event for test %s, hypothesis %s",e.testId,e.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",e.hypothesisId),e.shouldSendToGa=!1,this.persistEssentialState(),t()},s={exp_variant_string:`SL-${e.testId}-${e.hypothesisId}`};
52this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(o,n,l){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}this.gaConfig.mode==="gtag"?r("event","experience_impression",{...s,event_callback:i}):(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"experience_impression",...s,eventCallback:i}))})}updateLocalVisitor(e){let t;({visitorTests:t,...this.state.analytics.visitor}=e),this.log("updateLocalVisitor - server returned %d tests: %o",t.length,t.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isInvalid:s.isInvalid}))),this.log("updateLocalVisitor - local has %d tests: %o",this.state.essential.visitorTests.length,this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid})));const i=300*1e3;for(const s of this.state.essential.visitorTests.filter(r=>r.isSaved&&(!r.savedAt||Date.now()-r.savedAt>i)&&!t.some(o=>o.testId===r.testId)))this.log("updateLocalVisitor - marking LOCAL test as INVALID (isSaved && not in server): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),s.isInvalid=!0;for(const s of t){const r=this.state.essential.visitorTests.findIndex(n=>n.testId===s.testId);if(!(r!==-1))this.log("updateLocalVisitor - ADDING server test (not found locally): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),this.state.essential.visitorTests.push(s);else{const n=this.state.essential.visitorTests.at(r);this.log("updateLocalVisitor - REPLACING local test with server test: testId=%s, local hypothesisId=%s -> server hypothesisId=%s, local isInvalid=%s -> false",s.testId,n?.hypothesisId,s.hypothesisId,n?.isInvalid),s.isInvalid=!1,s.shouldSendToGa=n?.shouldSe
52ndToGa??!1,s.testType=n?.testType,s.assignedTo=n?.assignedTo,s.testTitle=n?.testTitle,this.state.essential.visitorTests.splice(r,1,s)}}this.log("updateLocalVisitor - FINAL local tests: %o",this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid}))),this.state.analytics.visitor.storedAt=new Date}async getVisitor(e){try{return await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/by-key/${this.shop}/${e}`})}catch{return null}}async sendEvents(e){await this.makeRequest({method:"post",url:`${this.eventHost}/api/v0/events`,data:JSON.stringify(e)})}sendDiagnosticTelemetry(e,t,i){if(!this.telemetryEnabled||!navigator.sendBeacon)return;const s=this.state.essential.consentApproved,r=JSON.stringify({shop:this.shop,testId:t,checkpoint:e,device:this.device,...s?{visitorId:this.shopifyAnalyticsId??"unknown"}:{},clientTimestamp:Date.now(),consentApproved:s,hasConsentInteraction:this.state.essential.hasConsentInteraction,...i});navigator.sendBeacon(`${this.eventHost}/api/v0/telemetry`,new Blob([r],{type:"text/plain"}))}getUTMValue(e){const i=decodeURIComponent(window.location.search.substring(1)).split("&");for(let s=0;s<i.length;s++){const r=i[s].split("=");if(r[0]===e)return r[1]||null}return null}hidePage(e){this.log("Hiding page"),this.cssHideClass&&!window.document.documentElement.classList.contains(this.cssHideClass)&&(window.document.documentElement.classList.add(this.cssHideClass),e||setTimeout(this.removeAsyncHide(this.cssHideClass),2e3))}showPage(){this.cssHideClass&&this.removeAsyncHide(this.cssHideClass)()}getDeviceType(){function e(){let i=!1;return(function(s){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}function t(){let i=!1;return(function(s){(/android|ipad|playbook|silk/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
52sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}return e()?"mobile":t()?"tablet":"desktop"}removeAsyncHide(e){return()=>{e&&window.document.documentElement.classList.remove(e)}}async getCartState(){try{let e=await this.makeJsonRequest({method:"get",url:`${window.location.origin}/cart.js`});return e===null||(e.note===null&&(e=await this.makeJsonRequest({method:"post",url:`${window.location.origin}/cart/update.js`,data:JSON.stringify({note:""})})),e==null)?null:{token:e.token,total_price:e.total_price,total_discount:e.total_discount,currency:e.currency,items_subtotal_price:e.items_subtotal_price,items:e.items.map(t=>({quantity:t.quantity,variant_id:t.variant_id,key:t.key,price:t.price,final_line_price:t.final_line_price,sku:t.sku,product_id:t.product_id}))}}catch(e){return this.log("Error sending cart info",e),null}}ensureCartAttributesForExistingPriceTests(e){try{if(this.log("Checking visitor assignments for active price tests"),e&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;this.log("Using preview config for merchant:",t.testId);let i="variant";if(t.variants&&t.variants.length>0){const s=t.variants.find(r=>r.id===t.currentVariant);s&&s.isControl&&(i="control")}this.log("Merchant preview - updating hidden inputs:",t.testId,i),this.updatePriceTestHiddenInputs(t.testId,i,!0);return}for(const t of this.state.essential.visitorTests){const i=this.testConfigs.find(o=>o.id===t.testId);if(!i){this.log("Test config not found:",t.testId);continue}const s=i.hypotheses.find(o=>o.id===t.hypothesisId);if(!s||s.type!=="price")continue;const r=s.isControl?"control":"variant";this.log("Updating hidden inputs for price test:",t.testId,r),this.updatePriceTestHiddenInputs(t.testId,r,e)}}catch(t){this.log("Error ensuring cart attributes for existing price tests:",t)}}subscriptionSwapDone=!1;subscriptionHideWrongPlans=null;subscriptionPriceDone=!1;subscriptionUpdateOneTime=null;subscriptionOneTimeDone=!1;swapMap=null;slptValue=null;async subscriptionSwap(){await Ue(this)}async subscriptionPriceChange(){await ze(this)}async subscriptionOneTimePrice(){await We(this)}updatePriceTestHiddenInputs(e,t,i){try{this.cleanupPriceTestObservers();const s=`${e}:${t}:${i?"t":"f"}`,r=T=>{const m=T.getAttribute("data-sl-pid");if(!m)return!0;if(i&&this.state.temporary.previewConfig){const w=this.state.temporary.previewConfig,I=t==="control"?"a":"b",f=w.variants.find(v=>v.label===I);if(!f)return!1;for(const v of f.domSelectors||[]){const g=v.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(g){const P=g[1];if(this.log(`Extracted ID from selector: ${P}, comparing to: ${m}`),P===m)return this.log("Product ID match found in preview config:",m,"variant:",f.label),!0}else this.log(`Could not extract ID from selector: ${v.cssSelector}`)}return this.log("No product ID match in preview config for:",m,"variant:",I),!1}const y=this.testConfigs.find(w=>w.id===e);if(!y)return this.log("Test config not found for testId:",e),!1;for(const w of y.hypotheses||[]){for(const I of w.domSelectors||[]){const f=I.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(f&&f[1]===m)return this.log("Product ID match found in domSelectors:",m,"for test:",e),!0}if(w.priceData?.variants){for(const I of w.priceData.variants)if(I[0]===m)return this.log("Product ID match found in priceData:",m,"for test:",e),!0}}return this.log("No product ID match for:",m,"in test:",e),!1},o=new Set;let n=!1,l=null;const c=(T,m)=>{if(document.querySelectorAll("[data-sl-attribute-p]").forEach(w=>{if(w instanceof Element&&w.nodeType===Node.ELEMENT_NODE&&w.isConnected&&document.contains(w))try{T.observe(w,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(I){this.log(`Failed to observe element (${m}):`,I)}}),document.body&&document.body.isConnected)try{T.observe(document.body,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(w){this.log(`Failed to observe document.body (${m}):`,w)}},d=(T,m,y,w)=>{const I=T.filter(f=>{const v=f.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);return v&&v[1]===w});this.log(`Applying ${y} DOM selectors, total: ${T.length}, filtered: ${I.length}`),I.length>0&&U(document,{testId:e,hypothesisId:m,selectors:I})},u=(T,m)=>{this.log(`Applying DOM selector changes for product ID: ${T}`),m.disconnect(),n=!0;try{if(i&&this.state.temporary.previewConfig){const y=t==="control"?"a":"b",w=this.state.temporary.previewConfig.variants.find(I=>I.label===y);if(!w?.domSelectors){this.log(`No DOM selectors found for preview variant: ${y}`);return}d(w.domSelectors,w.id,"preview config",T)}else{const y=this.testConfigs.find(I=>I.id===e);if(!y){this.log(`No test config found for testId: ${e}`);return}const w=y.hypotheses.find(I=>t==="control"?I.isControl:!I.isControl);if(!w?.domSelectors){this.log(`No DOM selectors found for assignment: ${t}`);return}d(w.domSelectors,w.id,"live config",T)}}finally{l!==null&&clearTimeout(l),l=window.setTimeout(()=>{n=!1,l=null,c(m,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")}
52,50)}},h=new MutationObserver(T=>{if(!n)for(const m of T){if(m.type!=="childList"&&m.type!=="characterData")continue;let y=m.target;m.type==="characterData"&&(y=m.target.parentElement||m.target.parentNode);let w=y,I=w.getAttribute("data-sl-attribute-p");for(;!I&&w.parentElement;)w=w.parentElement,I=w.getAttribute("data-sl-attribute-p");if(!I)continue;const f=w.innerHTML||w.textContent||"";let v="";m.type==="characterData"&&m.oldValue!==null&&(v=m.oldValue),this.log(`innerHTML changed on element with data-sl-attribute-p="${I}"`),v&&this.log(`Previous content: "${v}"`),this.log(`Current content: "${f}"`),u(I,h)}});c(h,"initial setup"),o.add(h);const p=new MutationObserver(T=>{T.forEach(m=>{m.addedNodes.forEach(y=>{if(y.nodeType===Node.ELEMENT_NODE){const w=y;E(w);const I=w.matches('input[name="properties[_slpt]"]')?[w]:w.querySelectorAll('input[name="properties[_slpt]"]');I.length>0&&this.log(`MutationObserver found ${I.length} new hidden input(s)`),I.forEach(f=>{const v=f.getAttribute("data-sl-pid");if(this.log(`MutationObserver checking new input with data-sl-pid="${v}"`),r(f))f.value!==s&&(f.value=s,this.log("Updated newly added hidden input:",s)),S(f);else{const g=f.getAttribute("data-sl-pid");g&&this.isProductInAnyPriceTest(g)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",g):(f.remove(),this.log("Removed newly added non-matching hidden input for product ID:",g))}})}})})});o.add(p);const b=new MutationObserver(T=>{T.forEach(m=>{if(m.type==="attributes"&&m.attributeName==="data-sl-pid"){const y=m.target;if(this.log("AttributeObserver detected data-sl-pid attribute change on:",y.tagName),y.matches('input[name="properties[_slpt]"]')){const w=y,I=m.oldValue,f=w.getAttribute("data-sl-pid");this.log(`data-sl-pid changed from "${I}" to "${f}" - triggering payment placement updates`),r(w)?(w.value!==s&&(w.value=s,this.log("Updated hidden input after data-sl-pid change:",s)),f&&u(f,h),this.log("Re-running payment placement updates after variant change"),E(document.body)):f&&this.isProductInAnyPriceTest(f)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",f):(w.remove(),this.log("Removed non-matching hidden input after data-sl-pid change:",f))}}})});o.add(b);const E=T=>{T.tagName==="SHOPIFY-PAYMENT-TERMS"&&(this.log("MutationObserver found new shopify-payment-terms element"),this.updateShopifyPaymentTerms(e,t));const m=T.querySelectorAll("shopify-payment-terms");m.length>0&&(this.log(`MutationObserver found ${m.length} shopify-payment-terms in added node`),this.updateShopifyPaymentTerms(e,t)),T.tagName==="AFTERPAY-PLACEMENT"&&(this.log("MutationObserver found new afterpay-placement element"),this.updateAfterpayPlacements(e,t,"afterpay"));const y=T.querySelectorAll("afterpay-placement");y.length>0&&(this.log(`MutationObserver found ${y.length} afterpay-placement in added node`),this.updateAfterpayPlacements(e,t,"afterpay")),T.tagName==="SQUARE-PLACEMENT"&&(this.log("MutationObserver found new square-placement element"),this.updateAfterpayPlacements(e,t,"square"));const w=T.querySelectorAll("square-placement");w.length>0&&(this.log(`MutationObserver found ${w.length} square-placement in added node`),this.updateAfterpayPlacements(e,t,"square")),T.tagName==="KLARNA-PLACEMENT"&&(this.log("MutationObserver found new klarna-placement element"),this.updateKlarnaPlacements(e,t));const I=T.querySelectorAll("klarna-placement");I.length>0&&(this.log(`MutationObserver found ${I.length} klarna-placement in added node`),this.updateKlarnaPlacements(e,t))},S=T=>{b.observe(T,{attributes:!0,attributeFilter:["data-sl-pid"],attributeOldValue:!0,subtree:!1});const m=T.getAttribute("data-sl-pid");this.log(`Started AttributeObserver on specific input with data-sl-pid="${m}"`)},C=()=>{const T=document.querySelectorAll('input[name="properties[_slpt]"]');this.log(`Found ${T.length} existing hidden inputs to check`),T.forEach(m=>{const y=m.getAttribute("data-sl-pid");this.log(`Checking existing input with data-sl-pid="${y}"`),r(m)?(m.value=s,this.log("Updated existing hidden input:",s),y&&(this.log("Applying initial DOM selector changes for existing product"),u(y,h)),S(m)):y&&this.isProductInAnyPriceTest(y)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",
52y):(m.remove(),this.log("Removed non-matching hidden input for product ID:",y))})},_=()=>{document.body?(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver on document.body"),C(),E(document.body)):document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.body&&(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver after DOMContentLoaded"),C(),E(document.body))}):(this.log("Set timeout on observer"),setTimeout(_,10))};_(),window.__shopliftPriceTestObservers=o,window.__shopliftPriceTestValue=s,this.log("Set up DOM observer for price test hidden inputs")}catch(s){this.log("Error updating price test hidden inputs:",s)}}updateKlarnaPlacements(e,t){this.updatePlacementElements(e,t,"klarna-placement",(i,s)=>{i.setAttribute("data-purchase-amount",s.toString())})}cleanupPriceTestObservers(){const e=window.__shopliftPriceTestObservers;e&&(e.forEach(t=>{t.disconnect()}),e.clear(),this.log("Cleaned up existing price test observers")),delete window.__shopliftPriceTestObservers,delete window.__shopliftPriceTestValue}updateAfterpayPlacements(e,t,i="afterpay"){const s=i==="square"?"square-placement":"afterpay-placement";if(document.querySelectorAll(s).length===0){this.log(`No ${s} elements found on page - early return`);return}this.updatePlacementElements(e,t,s,(o,n)=>{if(i==="afterpay"){const l=(n/100).toFixed(2);o.setAttribute("data-amount",l)}else o.setAttribute("data-amount",n.toString())}),this.log("updateAfterpayPlacements completed")}updatePlacementElements(e,t,i,s){const r=document.querySelectorAll(i);if(r.length===0){this.log(`No ${i} elements found - early return`);return}let o;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const l=t==="control"?"a":"b",c=this.state.temporary.previewConfig.variants.find(d=>d.label===l);if(!c?.domSelectors){this.log(`No variant found for label ${l} in preview config for ${i}`);return}o=c.domSelectors,this.log(`Using preview config for ${i} in merchant mode, variant: ${l}`)}else{const l=this.testConfigs.find(d=>d.id===e);if(!l){this.log(`No testConfig found for id: ${e} - early return`);return}
52const c=l.hypotheses.find(d=>t==="control"?d.isControl:!d.isControl);if(!c?.domSelectors){this.log(`No hypothesis or domSelectors found for assignment: ${t} - early return`);return}o=c.domSelectors}const n=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);r.forEach(l=>{let c=null;const d=l.parentElement;if(d&&(c=d.querySelector('input[name="properties[_slpt]"]')),c||(c=l.querySelector('input[name="properties[_slpt]"]')),!c){this.log(`No hidden input found for ${i} element`);return}const u=c.getAttribute("data-sl-pid");if(!u){this.log("Hidden input has no data-sl-pid attribute - skipping");return}const h=o.find(S=>{const C=S.cssSelector.match(n);return C&&C[1]===u});if(!h){this.log(`No matching selector found for productId: ${u} - skipping element`);return}const p=h.actions.find(S=>S.scope==="price");if(!p?.value){this.log("No price action or value found - skipping element");return}const b=parseFloat(p.value.replace(/[^0-9.]/g,""));if(Number.isNaN(b)){this.log(`Invalid price "${p.value}" for product ${u} - skipping`);return}const E=Math.round(b*100);s(l,E)}),this.log(`updatePlacementElements completed for ${i}`)}updateShopifyPaymentTerms(e,t){const i=document.querySelectorAll("shopify-payment-terms");if(i.length===0)return;this.log("Store using shopify payments");let s;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const o=t==="control"?"a":"b",n=this.state.temporary.previewConfig.variants.find(l=>l.label===o);if(!n||!n.domSelectors){this.log(`No variant found for label ${o} in preview config`);return}s=n.domSelectors,this.log(`Using preview config for shopify-payment-terms in merchant mode, variant: ${o}`)}else{const o=this.testConfigs.find(l=>l.id===e);if(!o)return;const n=o.hypotheses.find(l=>t==="control"?l.isControl===!0:l.isControl===!1);if(!n||!n.domSelectors)return;s=n.domSelectors}const r=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);i.forEach(o=>{const n=o.getAttribute("variant-id");if(!n)return;const l=s.find(c=>{const d=c.cssSelector.match(r);return d&&d[1]===n});if(l){const c=l.actions.find(d=>d.scope==="price");if(c&&c.value){const d=o.getAttribute("shopify-meta");if(d)try{const u=JSON.parse(d);if(u.variants&&Array.isArray(u.variants)){const h=u.variants.find(p=>p.id?.toString()===n);if(h){h.full_price=c.value;const p=parseFloat(c.value.replace(/[^0-9.]/g,""));if(h.number_of_payment_terms&&h.number_of_payment_terms>1){const b=p/h.number_of_payment_terms;h.price_per_term=`$${b.toFixed(2)}`}o.setAttribute("shopify-meta",JSON.stringify(u))}}}catch(u){this.log("Error parsing/updating shoplift-meta:",u)}}}})}async makeJsonRequest(e){const t=await this.makeRequest(e);return t===null?null:JSON.parse(await t.text(),F)}async makeRequest(e){const{url:t,method:i,headers:s,data:r,signal:o}=e,n=new Headers;if(s)for(const c in s)n.append(c,s[c]);(!s||!s.Accept)&&n.append("Accept","application/json"),(!s||!s["Content-Type"])&&n.append("Content-Type","application/json"),(this.eventHost.includes("ngrok.io")||this.eventHost.includes("ngrok-free.app"))&&n.append("ngrok-skip-browser-warning","1234");const l=await this.fetch(t,{method:i,headers:n,body:r,signal:o});if(!l.ok){if(l.status===204)return null;if(l.status===422){const c=await l.json();if(typeof c<"u"&&c.isBot)throw new ie}throw new Error(`Error sending shoplift request ${l.status}`)}return l}queueAddVisitorToTest(e,t){if(this.state.essential.visitorTests.some(s=>s.testId===e))return;const i=this.testConfigs.find(s=>s.id===e);if(this.state.essential.visitorTests.push({createdAt:new Date,testId:e,hypothesisId:t.id,isThemeTest:t.type==="theme",themeId:t.themeId,isSaved:!1,isInvalid:!1,shouldSendToGa:!0,testType:t.type,assignedTo:t.isControl?"control":"variant",testTitle:i?.title}),t.type==="price"){const s=t.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",e,s),this.updatePriceTestHiddenInputs(e,s,!1)}}queueCartUpdate(e){this.queueEvent(new Ce(e))}queuePageView(e){this.queueEvent(new Se(e))}queueEvent(e){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(e)}legacyGetLocalStorageVisitor(){const e=this.localStorageGet(this.legacySessionKey);if(e)try{return JSON.parse(e,F)}catch{}return null}pruneStaleVisitorTests(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(t=>t.id==e.testId)||this.inactiveTestConfigs.filter(t=>this.testIsPaused(t)).some(t=>t.id===e.testId))}pruneStateAndSave(){this.pruneStaleVisitorTests(),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const e=this.loadAnalyticsState(),t={analytics:e,essential:this.loadEssentialState(e),temporary:this.loadTemporaryState()},i=this.legacyGetLocalStorageVisitor(),s=this.legacyGetCookieVisitor(),r=[i,s].filter(o=>o!==null).sort((o,n)=>+n.storedAt-+o.storedAt)[0];return t.analytics.visitor===null&&r&&({visitorTests:t.essential.visitorTests,...t.analytics.visitor}=r,t.essential.isFirstLoad=!1,t.essential.initialState={createdAt:r.createdAt,referrer:r.referrer,utmCampaign:r.utmCampaign,utmContent:r.utmContent,utmMedium:r.utmMedium,utmSource:r.utmSource,device:r.device},this.deleteCookie("SHOPLIFT"),this.deleteLocalStorage(this.legacySessionKey)),!t.essential.consentApproved&&t.essential.hasConsentInteraction&&this.deleteLocalStorage(this.analyticsSessionKey),t}loadEssentialState(e){const t=this.loadLocalStorage(this.essentialSessionKey),i=this.loadCookie(this.essentialSessionKey),s=this.getInitialState();e.visitor?.device&&(s.device=e.visitor.device);const r={timestamp:new Date,consentApproved:!1,hasConsentInteraction:!1,debugMode:!1,initialState:s,visitorTests:[],isFirstLoad:!0},o=[t,i].filter(n=>n!==null).sort((n,l)=>+l.timestamp-+n.timestamp)[0]??r;return o.initialState||(e.visitor!==null?o.initialState=e.visitor:(o.initialState=s,o.initialState.createdAt=o.timestamp)),o}loadAnalyticsState(){const e=this.loadLocalStorage(this.analyticsSessionKey),t=this.loadCookie(this.analyticsSessionKey),i={timestamp:new Date,visitor:null,queue:[]},s=[e,t].filter(r=>r!==null).sort((r,o)=>+o.timestamp-+r.timestamp)[0]??i;return s.queue.length===0&&e&&e.queue.length>1&&(s.queue=e.queue),s}loadTemporaryState(){const e=this.sessionStorageGet(this.temporarySessionKey),t=e?JSON.parse(e,F):null,i=this.loadCookie(this.temporarySessionKey);return t??i??{isMerchant:!1,timestamp:new Date}}persistEssentialState(){this.log("Persisting essential state"),this.state.essential.isFirstLoad=!1,this.state.essential.timestamp=new Date,this.persistLocalStorageState(this.essentialSessionKey,this.state.essential),this.persist
52CookieState(this.essentialSessionKey,this.state.essential)}persistAnalyticsState(){this.log("Persisting analytics state"),this.state.essential.consentApproved&&(this.state.analytics.timestamp=new Date,this.persistLocalStorageState(this.analyticsSessionKey,this.state.analytics),this.persistCookieState(this.analyticsSessionKey,{...this.state.analytics,queue:[]}))}persistTemporaryState(){this.log("Setting temporary session state"),this.state.temporary.timestamp=new Date,this.sessionStorageSet(this.temporarySessionKey,JSON.stringify(this.state.temporary)),this.persistCookieState(this.temporarySessionKey,this.state.temporary,!0)}loadLocalStorage(e){const t=this.localStorageGet(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}loadCookie(e){const t=this.getCookie(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}persistLocalStorageState(e,t){this.localStorageSet(e,JSON.stringify(t))}persistCookieState(e,t,i=!1){const s=JSON.stringify(t),r=i?"":`expires=${new Date(new Date().getTime()+864e5*365).toUTCString()};`;document.cookie=`${e}=${s};domain=.${window.location.hostname};path=/;SameSite=Strict;${r}`}deleteCookie(e){const t=new Date(0).toUTCString();document.cookie=`${e}=;domain=.${window.location.hostname};path=/;expires=${t};`}deleteLocalStorage(e){window.localStorage.removeItem(e)}getChannel(e){return[{"name":"cross-network","test":(v) => new RegExp(".*cross-network.*", "i").test(v.utmCampaign)},{"name":"direct","test":(v) => v.utmSource === "" && v.utmMedium === ""},{"name":"paid-shopping","test":(v) => (new RegExp("^(?:Google|IGShopping|aax-us-east\.amazon-adsystem\.com|aax\.amazon-adsystem\.com|alibaba|alibaba\.com|amazon|amazon\.co\.uk|amazon\.com|apps\.shopify\.com|checkout\.shopify\.com|checkout\.stripe\.com|cr\.shopping\.naver\.com|cr2\.shopping\.naver\.com|ebay|ebay\.co\.uk|ebay\.com|ebay\.com\.au|ebay\.de|etsy|etsy\.com|m\.alibaba\.com|m\.shopping\.naver\.com|mercadolibre|mercadolibre\.com|mercadolibre\.com\.ar|mercadolibre\.com\.mx|message\.alibaba\.com|msearch\.shopping\.naver\.com|nl\.shopping\.net|no\.shopping\.net|offer\.alibaba\.com|one\.walmart\.com|order\.shopping\.yahoo\.co\.jp|partners\.shopify\.com|s3\.amazonaws\.com|se\.shopping\.net|shop\.app|shopify|shopify\.com|shopping\.naver\.com|shopping\.yahoo\.co\.jp|shopping\.yahoo\.com|shopzilla|shopzilla\.com|simplycodes\.com|store\.shopping\.yahoo\.co\.jp|stripe|stripe\.com|uk\.shopping\.net|walmart|walmart\.com)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
52andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|kakao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.o
52pera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"display","test":(v) => new RegExp("^(?:display|banner|expandable|interstitial|cpm)$", "i").test(v.utmMedium)},{"name":"paid-other","test":(v) => new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)}
52,{"name":"organic-shopping","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|yandex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)},{"name":"organic-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|k
52akao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.opera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) || new RegExp("^(?:social|social-network|social-media|sm|social network|social media)$", "i").test(v.utmMedium)},{"name":"organic-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) || new RegExp("^(.*video.*)$", "i").test(v.utmMedium)},{"name":"organic-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
52andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || v.utmMedium.toLowerCase() === "organic"},{"name":"referral","test":(v) => new RegExp("^(?:referral|app|link)$", "i").test(v.utmMedium)},{"name":"email","test":(v) => new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmMedium) || new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmSource)},{"name":"affiliate","test":(v) => v.utmMedium.toLowerCase() === "affiliate"},{"name":"audio","test":(v) => v.utmMedium.toLowerCase() === "audio"},{"name":"sms","test":(v) => v.utmSource.toLowerCase() === "sms" || v.utmMedium.toLowerCase() === "sms"},{"name":"mobile-push-notification","test":(v) => v.utmSource.toLowerCase() === "firebase" || new RegExp("(?:.*mobile.*|.*notification.*|push$)", "i").test(v.utmMedium)}].find(i=>i.test(e))?.name??"other"}getShopifyAnalyticsId(){const e=this.getCookie("_shopify_y");if(e)return e;try{const t=this.localStorageGet("Shoplift_ClientId");if(t)return t}catch{}return null}legacyGetCookieVisitor(){const e=this.getCookie("SHOPLIFT");return e===null?null:JSON.parse(e,F)}getCookie(e){const t=this.cookie.split("; ").filter(i=>i.split("=").at(0)===e).at(0);return t===void 0?null:t.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",e=>{(async()=>await this.onConsentChange(e.detail.analyticsAllowed,!0))()}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let e=0;const t=()=>{this.loadShopifyConsentApi()||e++<10&&window.setTimeout(t,100)};t()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const e=async()=>{if(!window.Shopify){this.log("Shopify object missing... suddenly?");return}if(window.Shopify.customerPrivacy===void 0){this.log("Shopify CustomerPrivacy api still missing, trying again in 1000ms"),t=window.setTimeout(()=>{(async()=>await e())()},1e3);return}if(this.geoViaShopify){const s=window.Shopify.customerPrivacy.getRegion?.();this.resolvedRegion=typeof s=="string"?s.replace(/-/g,""):""}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let t=window.setTimeout(()=>{(async()=>await e())()},5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(t),i){this.log("Error loading consent tracking",i);return}await e()})()}),!0}return!1}async onConsentChange(e,t){try{if(this.log("Consent change detected",e,t),this.state.essential.consentApproved=e,this.state.essential.hasConsentInteraction=t,!this.state.essential.consentApproved){this.state.essential.hasConsentInteraction&&(this.state.analytics.queue.length=0),this.saveState();return}this.cookie=document.cookie,this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.saveState(),await this.syncAllEvents()}catch(i){this.log("Error syncing on consent change",i)}}isThemePreview(){return isThemePreview||themeRole!=="main"}isAppProxyPath(){const e=["/apps/","/tools/","/a/"],t=window.location.pathname;return e.some(i=>t.startsWith(i))}clearThemeBar(e,t,i){const s=structuredClone(i);this.log("Looking for theme bar"),this.waitForElement(null,"body").then(r=>this.waitForElement(r,"#preview-bar-iframe, #PBarNextFrameWrapper").then(o=>(this.log("Found theme bar"),t&&(this.log("Removing theme bar"),o.remove()),e?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},ee)}):Promise.resolve(null)))).catch(r=>console.error(r))}waitForElement(e,t){return new Promise(i=>{const s=document.querySelector(t);if(s){i(s);return}const r=new MutationObserver(o=>{const n=document.querySelector(t);if(n){r.disconnect(),i(n);return}});r.observe(e??document.documentElement,{childList:!0})})}setDebug(e){this.state.essential.debugMode=e,this.saveState()}log(e,...t){let i=0;const s=e.replace(/%[sdoOfF]/g,r=>{if(i>=t.length)return r;const o=t[i++];return r==="%o"||r==="%O"?JSON.stringify(o):String(o)});this.logHistory.push(`[${new Date().toISOString()}][SL] ${s}`),!(!this.state.essential.debugMode&&!this.shopliftDebug)&&console.debug(`[SL] ${e}`,...t)}debugState(){return{state:this.state,storage:{essential:this.loadLocalStorage(this.essentialSessionKey),analytics:this.loadLocalStorage(this.analyticsSessionKey)},params:{shop:this.shop,host:this.host,eventHost:this.eventHost,cssHideClass:this.cssHideClass,testConfigs:this.testConfigs,inactiveTestConfigs:this.inactiveTestConfigs,sendPageView:this.sendPageView,isShopifyMerchantCookie
52:this.getCookie("is_shopify_merchant"),themeId,url:window.location.href,isThemePreview,themeRole,gaConfig:this.gaConfig},logHistory:this.logHistory}}createViewportObserver(e,t={}){const{threshold:i=this.VIEWPORT_TRACK_THRESHOLD,triggerOnce:s=!0}=t,r=new Set;return new IntersectionObserver(o=>{o.forEach(n=>{if(n.isIntersecting&&!r.has(n.target)){const l=n.target,c=l.getAttribute(this.DATA_SL_TEST_ID);c&&(e(c,l),s&&r.add(l))}})},{threshold:i})}applyChangesWithViewport(e,t,i,s){const r=t.selectorsForViewportTracking??t.selectors,o=n=>{if(this.state.essential.visitorTests.some(h=>h.testId===n)||this.activeViewportObservers.has(n))return;const l=[];if(r.forEach(h=>{e.querySelectorAll(h.cssSelector).forEach(b=>l.push(b))}),l.length===0)return;let c=!1;const d=()=>{c||(c=!0,i(n),u.disconnect(),this.activeViewportObservers.delete(n))},u=this.createViewportObserver(()=>{d()},{triggerOnce:!0,...s});this.activeViewportObservers.set(n,u),this.log(`Created viewport observer for test ${n}, observing ${l.length} elements`),l.forEach(h=>{h.setAttribute(this.DATA_SL_TEST_ID,String(n)),u.observe(h)}),setTimeout(()=>{c||l.forEach(h=>{const p=h.getBoundingClientRect(),b=s?.threshold??this.VIEWPORT_TRACK_THRESHOLD,E=Math.min(p.bottom,window.innerHeight)-Math.max(p.top,0),S=Math.min(p.right,window.innerWidth)-Math.max(p.left,0);p.top<window.innerHeight&&p.bottom>0&&p.left<window.innerWidth&&p.right>0&&E>0&&S>0&&E>=p.height*b&&(this.log(`Price element already visible in viewport for test ${n}:`,h),d())})},100)};t.selectors.length>0&&U(e,t,()=>{}),Te(e,{testId:t.testId,hypothesisId:t.hypothesisId,selectors:r},n=>{o(n)})}applyPriceTestWithMapLookup(e,t,i,s){if(!t.priceData){this.log("No price data for hypothesis '%s'",t.id);return}this.log("Hypothesis '%s' isControl=%s, priceData has %d variants",t.id,t.isControl,t.priceData.variants.length);const r=t.priceData.variants.slice(0,3);for(const[S,C,_]of r)this.log(" Sample priceData: variant=%s, price=%d, compareAt=%d",S,C,_);const o=j(t.priceData),n=new Set;for(const S of i)if(S.priceData)for(const[C]of S.priceData.variants)n.add(C);this.log("Price test Map lookup: %d products in hypothesis, %d total products to track",o.size,n.size);const l=t.priceData,c=new WeakSet;let d=!1;const u="[data-sl-attribute-p], [data-sl-attribute-cap], [data-sl-attribute-discount]",h=S=>{if(c.has(S))return;const C=S.getAttribute("data-sl-attribute-p"),_=S.getAttribute("data-sl-attribute-cap"),T=S.getAttribute("data-sl-attribute-discount"),m=C||_||T;if(!m||!n.has(m))return;c.add(S);const y=o.get(m);y&&(this.log("Applying price for product %s: %d cents (compare at: %d cents)",m,y.priceInCents,y.compareAtPriceInCents),Le(S,m,y,l),this.log("Applied price to element for product %s",m)),!d&&!this.state.essential.visitorTests.some(w=>w.testId===e)&&(S.setAttribute(this.DATA_SL_TEST_ID,String(e)),this.setupElementViewportTracking(S,e,()=>{d||(d=!0,s(e))}))},p=()=>{const S=document.querySelectorAll(u);this.log("Scanning for price elements, found: %d",S.length),S.forEach(h)},b=new MutationObserver(S=>{for(const C of S)C.type==="childList"&&C.addedNodes.forEach(_=>{if(_.nodeType===Node.ELEMENT_NODE){const T=_;(T.hasAttribute("data-sl-attribute-p")||T.hasAttribute("data-sl-attribute-cap")||T.hasAttribute("data-sl-attribute-discount"))&&h(T),T.querySelectorAll(u).forEach(h)}}),C.type==="attributes"&&C.target instanceof Element&&h(C.target)}),E=document.body||document.documentElement;b.observe(E,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-sl-attribute-p","data-sl-attribute-cap","data-sl-attribute-discount"]}),this.log("MutationObserver started for price elements"),p(),document.readyState==="loading"&&document.addEventListener("DOMContentLoaded",()=>{this.log("DOMContentLoaded - rescanning for price elements"),p()}),setTimeout(()=>{this.log("Delayed rescan for price elements"),p()},100),setTimeout(()=>{this.log("Final rescan for price elements"),p()},500)}setupElementViewportTracking(e,t,i){const s=this.VIEWPORT_TRACK_THRESHOLD,r=e.getBoundingClientRect(),o=Math.min(r.bottom,window.innerHeight)-Math.max(r.top,0),n=Math.min(r.right,window.innerWidth)-Math.max(r.left,0);if(r.top<window.innerHeight&&r.bottom>0&&r.left<window.innerWidth&&r.right>0&&o>0&&n>0&&o>=r.height*s){this.log("Price element already visible for test %s",t),i();return}const c=new IntersectionObserver(d=>{for(const u of d)if(u.isIntersecting&&u.intersectionRatio>=s){this.log("Price element entered viewport for test %s",t),c.disconnect(),i();break}},{threshold:s});c.observe(e)}debug(){const e=this.debugState();console.log(JSON.stringify(e,ee,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new Ze("naakbar.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",false,false,false,{"sendEvents":false,"mode":"gtag"},false,false,1000,[],[{"id":"019db121-04e6-7096-872c-ccb86568382d","bayesianRevision":5,"status":"incompatible","hypotheses":[{"id":"019dac1c-aba6-7c41-9060-e51f1f4fc78a","type":"product","themeId":186884456752,"affix":"v2_pdp","isControl":true,"redirectPath":null},{"id":"019dac1c-aba6-7cb8-aac0-87181ac46bb9","type":"product","themeId":186884456752,"affix":"sl-8FAE07C7","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"019ff7b5-7eef-71e8-a713-85c918687ea1","bayesianRevision":5,"status":"suspended","hypotheses":[{"id":"019ff7ad-12ca-7256-838f-46b82911bb91","type":"product","themeId":186884456752,"affix":"basic-units","isControl":true,"redirectPath":null},{"id":"019ff7ad-7d6e-756a-9965-6ef35510bb90","type":"product","themeId":186884456752,"affix":"basic-units-test","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false}
52],null,false),await window.shopliftInstance.init())})();async function Qe(a,e,t,i){const s=Be({log:i});if(t)return i("[SUB-PREVIEW] A side â no overlay applied; widget renders naturally"),s;const r=a.widget.widgetType,o=e?j(e):null;let n=W(e),l=J(a,n),c=l.discountMap,d=l.maxDiscount;function u(){const f=W(e);f!==n&&(n=f,l=J(a,n),c=l.discountMap,d=l.maxDiscount,i(`[SUB-PREVIEW] scope refreshed currentProductId=${n??"n/a"}, maxDiscount=${d}`))}i(`[SUB-PREVIEW] side=B, currentProductId=${n??"n/a"}, maxDiscount=${d}`);function h(f){if(!e||!o)return null;const v=Z(o),g=v?o.get(v):void 0;return g?{formattedVariantPrice:G(g.priceInCents,e),formattedDiscounted:G(g.priceInCents*(1-f/100),e)}:null}function p(f){const v=Y(a,f);if(!v)return d;const g=D(a,"subscriptionInput"),P=g.length?g[0].selector:'input[name="rc_plan"]',A=v.querySelector(`${P}:checked`);if(A){const k=c[A.value];if(k!==void 0)return k}return d}function b(f){const v=D(a,"subscriptionDiscount");for(const g of v)if(g.selector.includes("badge")||g.selector.includes("__badge")){const P=f.querySelector(g.selector);P?.textContent&&!P.textContent.includes(`${d}%`)&&$(P,A=>N(A,d))}}function E(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionCompareAt");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedVariantPrice)&&$(k,x=>/\d/.test(x)?g.formattedVariantPrice:x)}}function S(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionPrice");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedDiscounted)&&$(k,x=>/\d/.test(x)?g.formattedDiscounted:x)}}function C(f){const v=D(a,"subscriptionInput"),g=v.length?v[0].selector:'input[name="rc_plan"]',P=D(a,"subscriptionPlanDiscount"),A=P.length?P[0].selector:".rc-plans-button__discount";for(const k of Array.from(f.querySelectorAll("label"))){const x=k.querySelector(g),R=k.querySelector(A);if(x&&R?.textContent){const O=c[x.value];if(O!==void 0){const V=R.textContent.match(/[\d.]+%/)?.[0];V&&V!==`${O}%`&&$(R,L=>N(L,O))}}}}function _(f){const v=f.querySelector("select");if(v)for(const g of Array.from(v.options)){const P=c[g.value];if(P!==void 0&&g.textContent){const A=g.textContent.match(/[\d.]+%/)?.[0];A&&A!==`${P}%`&&(g.textContent=N(g.textContent,P))}}}function T(f){const v=D(a,"onetimePrice");if(!v.length||!e||!o)return;const g=Z(o),P=g?o.get(g):void 0;if(!P)return;const A=G(P.priceInCents,e),k=D(a,"onetimeContainer"),x=k.length?k[0].selector:'[part~="rc-purchase-option__onetime"]',R=f.querySelector(x);if(R)for(const O of v){const V=R.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(A)&&$(V,L=>/\d/.test(L)?A:L)}}function m(f,v){const P=D(a,"subscriptionDiscount").filter(A=>A.selector.includes("benefit")||A.selector==="rc-benefits");for(const A of P){const k=f.querySelector(A.selector);if(k?.shadowRoot){for(const x of Array.from(k.shadowRoot.querySelectorAll("li")))if(x.textContent?.includes("Save")){const R=x.textContent.match(/[\d.]+%/)?.[0];R&&R!==`${v}%`&&$(x,O=>N(O,v))}}}}let y=!1;function w(){if(!y){y=!0;try{u();const f=B(a);if(!f)return;const v=p(f);b(f),E(f,v),S(f,v),T(f);const g=Y(a,f);g&&(r==="buttons"||r==="radio"?C(g):_(g)),m(f,v)}finally{y=!1}}}const I=pe({data:a,runUpdates:w});return function(){I(),s()}}const Xe=Object.freeze(Object.defineProperty({__proto__:null,subscriptionPreviewRender:Qe},Symbol.toStringTag,{value:"Module"}))})(); })("/", { suffix: "basic-bags-15-servings", type: "product" }, "main", 186884456752, false)</script>
52 53 <!-- End of Shoplift scripts --> 54 55
55<script id="pandectes-rules">� /* PANDECTES-GDPR: DO NOT MODIFY AUTO GENERATED CODE OF THIS SCRIPT */� � window.PandectesSettings = {"store":{"id":50706808986,"plan":"basic","theme":"shopify-boilerplate-v2/main","primaryLocale":"fr","adminMode":false,"headless":false,"storefrontRootDomain":"","checkoutRootDomain":"","storefrontAccessToken":""},"impressions":{"enabled":false,"timezone":"America/New_York"},"tsPublished":1779375603,"declaration":{"showPurpose":false,"showProvider":false,"declIntroText":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies.","showDateGenerated":true},"language":{"unpublished":[],"languageMode":"Single","fallbackLanguage":"en","languageDetection":"browser","languagesSupported":[]},"texts":{"managed":{"headerText":{"en":"We respect your privacy"},"consentText":{"en":"This website uses cookies to ensure you get the best experience."},"linkText":{"en":"Learn more"},"imprintText":{"en":"Imprint"},"googleLinkText":{"en":"Google's Privacy Terms"},"allowButtonText":{"en":"Accept"},"denyButtonText":{"en":"Decline"},"dismissButtonText":{"en":"Ok"},"leaveSiteButtonText":{"en":"Leave this site"},"preferencesButtonText":{"en":"Preferences"},"cookiePolicyText":{"en":"Cookie policy"},"preferencesPopupTitleText":{"en":"Manage consent preferences"},"preferencesPopupIntroText":{"en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."},"preferencesPopupSaveButtonText":{"en":"Save preferences"},"preferencesPopupCloseButtonText":{"en":"Close"},"preferencesPopupAcceptAllButtonText":{"en":"Accept all"},"preferencesPopupRejectAllButtonText":{"en":"Reject all"},"cookiesDetailsText":{"en":"Cookies details"},"preferencesPopupAlwaysAllowedText":{"en":"Always allowed"},"accessSectionParagraphText":{"en":"You have the right to request access to your data at any time."},"accessSectionTitleText":{"en":"Data portability"},"accessSectionAccountInfoActionText":{"en":"Personal data"},"accessSectionDownloadReportActionText":{"en":"Request export"},"accessSectionGDPRRequestsActionText":{"en":"Data subject requests"},"accessSectionOrdersRecordsActionText":{"en":"Orders"},"rectificationSectionParagraphText":{"en":"You have the right to request your data to be updated whenever you think it is appropriate."},"rectificationSectionTitleText":{"en":"Data Rectification"},"rectificationCommentPlaceholder":{"en":"Describe what you want to be updated"},"rectificationCommentValidationError":{"en":"Comment is required"},"rectificationSectionEditAccountActionText":{"en":"Request an update"},"erasureSectionTitleText":{"en":"Right to be forgotten"},"erasureSectionParagraphText":{"en":"You have the right to ask all your data to be erased. After that, you will no longer be able to access your account."},"erasureSectionRequestDeletionActionText":{"en":"Request personal data deletion"},"consentDate":{"en":"Consent date"},"consentId":{"en":"Consent ID"},"consentSectionChangeConsentActionText":{"en":"Change consent preference"},"consentSectionConsentedText":{"en":"You consented to the cookies policy of this website on"},"consentSectionNoConsentText":{"en":"You have not consented to the cookies policy of this website."},"consentSectionTitleText":{"en":"Your cookie consent"},"consentStatus":{"en":"Consent preference"},"confirmationFailureMessage":{"en":"Your request was not verified. Please try again and if problem persists, contact store owner for assistance"},"confirmationFailureTitle":{"en":"A problem occurred"},"confirmationSuccessMessage":{"en":"We will soon get back to you as to your request."},"confirmationSuccessTitle":{"en":"Your request is verified"},"guestsSupportEmailFailureMessage":{"en":"Your request was not submitted. Please try again and if problem persists, contact store owner for assistance."},"guestsSupportEmailFailureTitle":{"en":"A problem occurred"},"guestsSupportEmailPlaceholder":{"en":"E-mail address"},"guestsSupportEmailSuccessMessage":{"en":"If you are registered as a customer of this store, you will soon receive an email with instructions on how to proceed."}
55,"guestsSupportEmailSuccessTitle":{"en":"Thank you for your request"},"guestsSupportEmailValidationError":{"en":"Email is not valid"},"guestsSupportInfoText":{"en":"Please login with your customer account to further proceed."},"submitButton":{"en":"Submit"},"submittingButton":{"en":"Submitting..."},"cancelButton":{"en":"Cancel"},"declIntroText":{"en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."},"declName":{"en":"Name"},"declPurpose":{"en":"Purpose"},"declType":{"en":"Type"},"declRetention":{"en":"Retention"},"declProvider":{"en":"Provider"},"declFirstParty":{"en":"First-party"},"declThirdParty":{"en":"Third-party"},"declSeconds":{"en":"seconds"},"declMinutes":{"en":"minutes"},"declHours":{"en":"hours"},"declWeeks":{"en":"week(s)"},"declDays":{"en":"days"},"declMonths":{"en":"months"},"declYears":{"en":"years"},"declSession":{"en":"Session"},"declDomain":{"en":"Domain"},"declPath":{"en":"Path"}}
55,"categories":{"strictlyNecessaryCookiesTitleText":{"en":"Strictly necessary cookies"},"strictlyNecessaryCookiesDescriptionText":{"en":"These cookies are essential in order to enable you to move around the website and use its features, such as accessing secure areas of the website. The website cannot function properly without these cookies."},"functionalityCookiesTitleText":{"en":"Functional cookies"},"functionalityCookiesDescriptionText":{"en":"These cookies enable the site to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly."},"performanceCookiesTitleText":{"en":"Performance cookies"},"performanceCookiesDescriptionText":{"en":"These cookies enable us to monitor and improve the performance of our website. For example, they allow us to count visits, identify traffic sources and see which parts of the site are most popular."},"targetingCookiesTitleText":{"en":"Targeting cookies"},"targetingCookiesDescriptionText":{"en":"These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising."},"unclassifiedCookiesTitleText":{"en":"Unclassified cookies"},"unclassifiedCookiesDescriptionText":{"en":"Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies."}},"auto":{}},"library":{"previewMode":false,"fadeInTimeout":0,"defaultBlocked":7,"showLink":true,"showImprintLink":false,"showGoogleLink":false,"enabled":true,"cookie":{"expiryDays":365,"secure":true,"domain":""},"dismissOnScroll":false,"dismissOnWindowClick":false,"dismissOnTimeout":false,"palette":{"popup":{"background":"#FFFFFF","backgroundForCalculations":{"a":1,"b":255,"g":255,"r":255},"text":"#000000"},"button":{"background":"transparent","backgroundForCalculations":{"a":1,"b":255,"g":255,"r":255},"text":"#000000","textForCalculation":{"a":1,"b":0,"g":0,"r":0},"border":"#000000"}},"content":{"href":"https://tonyricher.myshopify.com/policies/privacy-policy","imprintHref":"/","close":"✕","target":"","logo":"<img class=\"cc-banner-logo\" style=\"max-height: 40px;\" src=\"https://cdn.shopify.com/s/files/1/0507/0680/8986/t/19/assets/pandectes-logo.png?v=1779375602?v=1779375603638\" alt=\"Cookie banner\" />"},"window":"<div role=\"dialog\" aria-label=\"{{header}}\" aria-describedby=\"cookieconsent:desc\" id=\"pandectes-banner\" class=\"cc-window-wrapper cc-top-wrapper\"><div class=\"pd-cookie-banner-window cc-window {{classes}}\">{{children}}</div></div>","compliance":{"opt-both":"<div class=\"cc-compliance cc-highlight\">{{deny}}{{allow}}</div>"},"type":"opt-both","layouts":{"basic":"{{logo}}{{messagelink}}{{compliance}}{{close}}"},"position":"top","theme":"wired","revokable":true,"animateRevokable":false,"revokableReset":false,"revokableLogoUrl":"https://cdn.shopify.com/s/files/1/0507/0680/8986/t/19/assets/pandectes-reopen-logo.png?v=1779375603","revokablePlacement":"bottom-left","revokableMarginHorizontal":15,"revokableMarginVertical":15,"static":false,"autoAttach":true,"hasTransition":true,"blacklistPage":[""],"elements":{"close":"<button aria-label=\"Close\" type=\"button\" class=\"cc-close\">{{close}}</button>","dismiss":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-dismiss\">{{dismiss}}</button>","allow":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-allow\">{{allow}}</button>","deny":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-deny\">{{deny}}</button>","preferences":"<button type=\"button\" class=\"cc-btn cc-settings\" aria-controls=\"pd-cp-preferences\" onclick=\"Pandectes.fn.openPreferences()\">{{preferences}}</button>"}},"geolocation":{"brOnly":false,"caOnly":false,"chOnly":false,"euOnly":false,"jpOnly":false,"thOnly":false,"canadaOnly":false,"canadaLaw25":false,"canadaPipeda":false,"globalVisibility":true},"dsr":{"guestsSupport":false,"accessSectionDownloadReportAuto":false},"banner":{"resetTs":1706439519,"extraCss":" .cc-banner-logo {max-width: 24em!important;} @media(min-width: 768px) {.cc-window.cc-floating{max-width: 24em!important;width: 24em!important;}} .cc-message, .pd-cookie-banner-window .cc-header, .cc-logo {text-align: left} .cc-window-wrapper{z-index: 2147483647;} .cc-window{z-index: 2147483647;font-family: inherit;} .pd-cookie-banner-window .cc-header{font-family: inherit;} .pd-cp-ui{font-family: inherit; background-color: #FFFFFF;color:#000000;} button.pd-cp-btn, a.pd-cp-btn{} input + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 0.3)} .pd-cp-scrolling-section::-webkit-scrollbar{background-color: rgba(0, 0, 0, 0.3)} input:checked + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 1)} .pd-cp-scrolling-section::-webkit-scrollbar-thumb {background-color: rgba(0, 0, 0, 1)} .pd-cp-ui-close{color:#000000;} .pd-cp-preferences-slider:before{background-color: #FFFFFF} .pd-cp-title:before {border-color: #000000!important} .pd-cp-preferences-slider{background-color:#000000} .pd-cp-toggle{color:#000000!important} @media(max-width:699px) {.pd-cp-ui-close-top svg {fill: #000000}} .pd-cp-toggle:hover,.pd-cp-toggle:visited,.pd-cp-toggle:active{color:#000000!important} .pd-cookie-banner-window {box-shadow: 0 0 18px rgb(0 0 0 / 20%);} ","customJavascript":{},"showPoweredBy":false,"logoHeight":40,"hybridStrict":false,"cookiesBlockedByDefault":"7","isActive":false,"implicitSavePreferences":false,"cookieIcon":false,"blockBots":false,"showCookiesDetails":true,"hasTransition":true,"blockingPage":false,"showOnlyLandingPage":false,"leaveSiteUrl":"https://www.google.com","linkRespectStoreLang":false},"cookies":{"0":[{"name":"keep_alive","type":"http","domain":"tonyricher.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","session":false,"expires":30,"unit":"declMinutes","purpose":{"en":"Used in connection with buyer localization."}},{"name":"secure_customer_sig","type":"http","domain":"tonyricher.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Used in connection with customer login."}},{"name":"localization","type":"http","domain":"tonyricher.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Shopify store localization"}},{"name":"cart_currency","type":"http","domain":"tonyricher.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"2 ","session":false,"expires":2,"unit":"declSession","purpose":{"en":"The cookie is necessary for the secure checkout and payment function on the website. This function is provided by shopify.com."}},{"name":"_cmp_a","type":"http","domain":".tonyricher.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 day(s)","session":false,"expires":1,"unit":"declDays","purpose":{"en":"Used for managing customer privacy settings."}}],"1":[],"2":[{"name":"_shopify_y","type":"http","domain":".tonyricher.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Shopify analytics."}}
55,{"name":"_shopify_s","type":"http","domain":".tonyricher.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","session":false,"expires":30,"unit":"declMinutes","purpose":{"en":"Shopify analytics."}},{"name":"_orig_referrer","type":"http","domain":".tonyricher.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"2 ","session":false,"expires":2,"unit":"declSession","purpose":{"en":"Tracks landing pages."}},{"name":"_landing_page","type":"http","domain":".tonyricher.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"2 ","session":false,"expires":2,"unit":"declSession","purpose":{"en":"Tracks landing pages."}}],"4":[],"8":[]},"blocker":{"isActive":false,"googleConsentMode":{"id":"","analyticsId":"","isActive":false,"adStorageCategory":4,"analyticsStorageCategory":2,"personalizationStorageCategory":1,"functionalityStorageCategory":1,"customEvent":true,"securityStorageCategory":0,"redactData":true,"urlPassthrough":false,"dataLayerProperty":"dataLayer"},"facebookPixel":{"id":"","isActive":false,"ldu":false},"amazon":{},"microsoft":{},"rakuten":{"isActive":false,"cmp":false,"ccpa":false},"gpcIsActive":false,"clarity":{},"defaultBlocked":7,"patterns":{"whiteList":[],"blackList":{"1":[],"2":[],"4":[],"8":[]},"iframesWhiteList":[],"iframesBlackList":{"1":[],"2":[],"4":[],"8":[]},"beaconsWhiteList":[],"beaconsBlackList":{"1":[],"2":[],"4":[],"8":[]}}}}� � !function(){"use strict";window.PandectesRules=window.PandectesRules||{},window.PandectesRules.manualBlacklist={1:[],2:[],4:[]},window.PandectesRules.blacklistedIFrames={1:[],2:[],4:[]},window.PandectesRules.blacklistedCss={1:[],2:[],4:[]},window.PandectesRules.blacklistedBeacons={1:[],2:[],4:[]};const e="javascript/blocked",t=["US-CA","US-VA","US-CT","US-UT","US-CO","US-MT","US-TX","US-OR","US-IA","US-NE","US-NH","US-DE","US-NJ","US-TN","US-MN","US-RI","US-IN","US-KY"],n=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","GB","LI","NO","IS"];function a(e){return new RegExp(e.replace(/[/\\.+?$()]/g,"\\$&").replace("*","(.*)"))}const o=(e,t="log")=>{new URLSearchParams(window.location.search).get("log")&&console[t](`PandectesRules: ${e}`)};function s(e){const t=document.createElement("script");t.async=!0,t.src=e,document.head.appendChild(t)}const r=window.PandectesRulesSettings||window.PandectesSettings,i=function(){if(void 0!==window.dataLayer&&Array.isArray(window.dataLayer)){if(window.dataLayer.some((e=>"pandectes_full_scan"===e.event)))return!0}return!1}(),c=((e="_pandectes_gdpr")=>{const t=("; "+document.cookie).split("; "+e+"=");let n;if(t.length<2)n={};else{const e=t.pop().split(";");n=window.atob(e.shift())}const a=(e=>{try{return JSON.parse(e)}catch(e){return!1}})(n);return!1!==a?a:n})(),{banner:{isActive:d},blocker:{defaultBlocked:l,patterns:u}}=r,g=c&&null!==c.preferences&&void 0!==c.preferences?c.preferences:null,p=i?0:d?null===g?l:g:0,f={1:!(1&p),2:!(2&p),4:!(4&p)},{blackList:w,whiteList:h,iframesBlackList:y,iframesWhiteList:m,beaconsBlackList:b,beaconsWhiteList:_}=u,k={blackList:[],whiteList:[],iframesBlackList:{1:[],2:[],4:[],8:[]},iframesWhiteList:[],beaconsBlackList:{1:[],2:[],4:[],8:[]},beaconsWhiteList:[]};[1,2,4].map((e=>{f[e]||(k.blackList.push(...w[e].length?w[e].map(a):[]),k.iframesBlackList[e]=y[e].length?y[e].map(a):[],k.beaconsBlackList[e]=b[e].length?b[e].map(a):[])})),k.whiteList=h.length?h.map(a):[],k.iframesWhiteList=m.length?m.map(a):[],k.beaconsWhiteList=_.length?_.map(a):[];const v={scripts:[],iframes:{1:[],2:[],4:[]},beacons:{1:[],2:[],4:[]},css:{1:[],2:[],4:[]}},S=(t,n)=>t&&(!n||n!==e)&&(!k.blackList||k.blackList.some((e=>e.test(t))))&&(!k.whiteList||k.whiteList.every((e=>!e.test(t)))),L=(e,t)=>{const n=k.iframesBlackList[t],a=k.iframesWhiteList;return e&&(!n||n.some((t=>t.test(e))))&&(!a||a.every((t=>!t.test(e))))},C=(e,t)=>{const n=k.beaconsBlackList[t],a=k.beaconsWhiteList;return e&&(!n||n.some((t=>t.test(e))))&&(!a||a.every((t=>!t.test(e))))},A=new MutationObserver((e=>{for(let t=0;t<e.length;t++){const{addedNodes:n}=e[t];for(let e=0;e<n.length;e++){const t=n[e],a=t.dataset&&t.dataset.cookiecategory;if(1===t.nodeType&&"LINK"===t.tagName){const e=t.dataset&&t.dataset.href;if(e&&a)switch(a){case"functionality":case"C0001":v.css[1].push(e);break;case"performance":case"C0002":v.css[2].push(e);break;case"targeting":case"C0003":v.css[4].push(e)}}}}}));var E=new MutationObserver((t=>{for(let n=0;n<t.length;n++){const{addedNodes:a}=t[n];for(let t=0;t<a.length;t++){const n=a[t],s=n.src||n.dataset&&n.dataset.src,r=n.dataset&&n.dataset.cookiecategory;if(1===n.nodeType&&"IFRAME"===n.tagName){if(s){let e=!1;L(s,1)||"functionality"===r||"C0001"===r?(e=!0,v.iframes[1].push(s)):L(s,2)||"performance"===r||"C0002"===r?(e=!0,v.iframes[2].push(s)):(L(s,4)||"targeting"===r||"C0003"===r)&&(e=!0,v.iframes[4].push(s)),e&&(n.removeAttribute("src"),n.setAttribute("data-src",s))}}else if(1===n.nodeType&&"IMG"===n.tagName){if(s){let e=!1;C(s,1)?(e=!0,v.beacons[1].push(s)):C(s,2)?(e=!0,v.beacons[2].push(s)):C(s,4)&&(e=!0,v.beacons[4].push(s)),e&&(n.removeAttribute("src"),n.setAttribute("data-src",s))}}
55else if(1===n.nodeType&&"SCRIPT"===n.tagName){const t=n.type;let a=!1;if(S(s,t)?(o(`rule blocked: ${s}`),a=!0):s&&r?o(`manually blocked @ ${r}: ${s}`):r&&o(`manually blocked @ ${r}: inline code`),a){v.scripts.push([n,t]),n.type=e;const a=function(t){n.getAttribute("type")===e&&t.preventDefault(),n.removeEventListener("beforescriptexecute",a)};n.addEventListener("beforescriptexecute",a),n.parentElement&&n.parentElement.removeChild(n)}}}}}));const P=document.createElement,$={src:Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype,"src"),type:Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype,"type")};window.PandectesRules.unblockCss=e=>{const t=v.css[e]||[];t.length&&o(`Unblocking CSS for ${e}`),t.forEach((e=>{const t=document.querySelector(`link[data-href^="${e}"]`);t.removeAttribute("data-href"),t.href=e})),v.css[e]=[]},window.PandectesRules.unblockIFrames=e=>{const t=v.iframes[e]||[];t.length&&o(`Unblocking IFrames for ${e}`),k.iframesBlackList[e]=[],t.forEach((e=>{const t=document.querySelector(`iframe[data-src^="${e}"]`);t.removeAttribute("data-src"),t.src=e})),v.iframes[e]=[]},window.PandectesRules.unblockBeacons=e=>{const t=v.beacons[e]||[];t.length&&o(`Unblocking Beacons for ${e}`),k.beaconsBlackList[e]=[],t.forEach((e=>{const t=document.querySelector(`img[data-src^="${e}"]`);t.removeAttribute("data-src"),t.src=e})),v.beacons[e]=[]},window.PandectesRules.unblockInlineScripts=function(e){const t=1===e?"functionality":2===e?"performance":"targeting",n=document.querySelectorAll(`script[type="javascript/blocked"][data-cookiecategory="${t}"]`);o(`unblockInlineScripts: ${n.length} in ${t}`),n.forEach((function(e){const t=document.createElement("script");for(let n=0;n<e.attributes.length;n++){const a=e.attributes[n];"type"!==a.name&&"data-cookiecategory"!==a.name&&t.setAttribute(a.name,a.value)}t.type="text/javascript",e.hasAttribute("src")?t.src=e.getAttribute("src"):t.textContent=e.textContent,e.parentNode.replaceChild(t,e)}))},window.PandectesRules.unblockInlineCss=function(e){const t=1===e?"functionality":2===e?"performance":"targeting",n=document.querySelectorAll(`link[data-cookiecategory="${t}"]`);o(`unblockInlineCss: ${n.length} in ${t}`),n.forEach((function(e){e.href=e.getAttribute("data-href")}))},window.PandectesRules.unblock=function(e){e.length<1?(k.blackList=[],k.whiteList=[],k.iframesBlackList=[],k.iframesWhiteList=[]):(k.blackList&&(k.blackList=k.blackList.filter((t=>e.every((e=>"string"==typeof e?!t.test(e):e instanceof RegExp?t.toString()!==e.toString():void 0))))),k.whiteList&&(k.whiteList=[...k.whiteList,...e.map((e=>{if("string"==typeof e){const t=".*"+a(e)+".*";if(k.whiteList.every((e=>e.toString()!==t.toString())))return new RegExp(t)}else if(e instanceof RegExp&&k.whiteList.every((t=>t.toString()!==e.toString())))return e;return null})).filter(Boolean)]));let t=0;
55[...v.scripts].forEach((([e,n],a)=>{if(function(e){const t=e.getAttribute("src");return k.blackList&&k.blackList.every((e=>!e.test(t)))||k.whiteList&&k.whiteList.some((e=>e.test(t)))}(e)){const o=document.createElement("script");for(let t=0;t<e.attributes.length;t++){let n=e.attributes[t];"src"!==n.name&&"type"!==n.name&&o.setAttribute(n.name,e.attributes[t].value)}o.setAttribute("src",e.src),o.setAttribute("type",n||"application/javascript"),document.head.appendChild(o),v.scripts.splice(a-t,1),t++}})),0==k.blackList.length&&0===k.iframesBlackList[1].length&&0===k.iframesBlackList[2].length&&0===k.iframesBlackList[4].length&&0===k.beaconsBlackList[1].length&&0===k.beaconsBlackList[2].length&&0===k.beaconsBlackList[4].length&&(o("Disconnecting observers"),E.disconnect(),A.disconnect())};const{store:{adminMode:T,headless:B,storefrontRootDomain:R,checkoutRootDomain:I,storefrontAccessToken:O},banner:{isActive:U},blocker:z}=r,{defaultBlocked:D}=z;U&&function(e){if(window.Shopify&&window.Shopify.customerPrivacy)return void e();let t=null;window.Shopify&&window.Shopify.loadFeatures&&window.Shopify.trackingConsent?e():t=setInterval((()=>{window.Shopify&&window.Shopify.loadFeatures&&(clearInterval(t),window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],(t=>{t?o("Shopify.customerPrivacy API - failed to load"):(o(`shouldShowBanner() -> ${window.Shopify.trackingConsent.shouldShowBanner()} | saleOfDataRegion() -> ${window.Shopify.trackingConsent.saleOfDataRegion()}`),e())})))}),10)}((()=>{!function(){const e=window.Shopify.trackingConsent;if(!1!==e.shouldShowBanner()||null!==g||7!==D)try{const t=T&&!(window.Shopify&&window.Shopify.AdminBarInjector);let n={preferences:!(1&p)||i||t,analytics:!(2&p)||i||t,marketing:!(4&p)||i||t};B&&(n.headlessStorefront=!0,n.storefrontRootDomain=R?.length?R:window.location.hostname,n.checkoutRootDomain=I?.length?I:`checkout.${window.location.hostname}`,n.storefrontAccessToken=O?.length?O:""),e.firstPartyMarketingAllowed()===n.marketing&&e.analyticsProcessingAllowed()===n.analytics&&e.preferencesProcessingAllowed()===n.preferences||e.setTrackingConsent(n,(function(e){e&&e.error?o("Shopify.customerPrivacy API - failed to setTrackingConsent"):o(`setTrackingConsent(${JSON.stringify(n)})`)}))}catch(e){o("Shopify.customerPrivacy API - exception")}}(),function(){if(B){const e=window.Shopify.trackingConsent,t=e.currentVisitorConsent();if(navigator.globalPrivacyControl&&""===t.sale_of_data){const t={sale_of_data:!1,headlessStorefront:!0};t.storefrontRootDomain=R?.length?R:window.location.hostname,t.checkoutRootDomain=I?.length?I:`checkout.${window.location.hostname}`,t.storefrontAccessToken=O?.length?O:"",e.setTrackingConsent(t,(function(e){e&&e.error?o(`Shopify.customerPrivacy API - failed to setTrackingConsent({${JSON.stringify(t)})`):o(`setTrackingConsent(${JSON.stringify(t)})`)}))}}}()}));const N="[Pandectes :: Google Consent Mode debug]:";function j(...e){const t=e[0],n=e[1],a=e[2];if("consent"!==t)return"config"===t?"config":void 0;const{ad_storage:o,ad_user_data:s,ad_personalization:r,functionality_storage:i,analytics_storage:c,personalization_storage:d,security_storage:l}=a,u={Command:t,Mode:n,ad_storage:o,ad_user_data:s,ad_personalization:r,functionality_storage:i,analytics_storage:c,personalization_storage:d,security_storage:l};return console.table(u),"default"===n&&("denied"===o&&"denied"===s&&"denied"===r&&"denied"===i&&"denied"===c&&"denied"===d||console.warn(`${N} all types in a "default" command should be set to "denied" except for security_storage that should be set to "granted"`)),n}let M=!1,x=!1;function q(e){e&&("default"===e?(M=!0,x&&console.warn(`${N} "default" command was sent but there was already an "update" command before it.`)):"update"===e?(x=!0,M||console.warn(`${N} "update" command was sent but there was no "default" command before it.`)):"config"===e&&(M||console.warn(`${N} a tag read consent state before a "default" command was sent.`)))}function F(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}const{banner:{isActive:W,hybridStrict:H},geolocation:{caOnly:G=!1,euOnly:J=!1,brOnly:K=!1,jpOnly:V=!1,thOnly:Z=!1,chOnly:Y=!1,zaOnly:X=!1,canadaOnly:Q=!1,globalVisibility:ee=!0},blocker:{defaultBlocked:te=7,googleConsentMode:{isActive:ne,onlyGtm:ae=!1,id:oe="",analyticsId:se="",adwordsId:re="",redactData:ie,urlPassthrough:ce,adStorageCategory:de,analyticsStorageCategory:le,functionalityStorageCategory:ue,personalizationStorageCategory:ge,securityStorageCategory:pe,dataLayerProperty:fe="dataLayer",waitForUpdate:we=0,useNativeChannel:he=!1,debugMode:ye=!1}}}=r;function me(){window[fe].push(arguments)}window[fe]=window[fe]||[];const be={hasInitialized:!1,useNativeChannel:!1,ads_data_redaction:!1,url_passthrough:!1,data_layer_property:"dataLayer",storage:{ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted",analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"}};if(W&&ne)if(ye&&(_e=fe||"dataLayer",window[_e].forEach((e=>{q(j(...F(e)))})),window[_e].push=function(...e){return q(j(...F(e[0]))),Array.prototype.push.apply(this,e)}),ae){const e="https://www.googletagmanager.com";if(oe.length){const t=oe.split(",");window[be.data_layer_property].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});for(let n=0;n<t.length;n++){const a="dataLayer"!==be.data_layer_property?`&l=${be.data_layer_property}`:"";s(`${e}/gtm.js?id=${t[n].trim()}${a}`)}}}else{const e=0===(te&de)?"granted":"denied",a=0===(te&le)?"granted":"denied",o=0===(te&ue)?"granted":"denied",r=0===(te&ge)?"granted":"denied",i=0===(te&pe)?"granted":"denied";be.hasInitialized=!0,be.useNativeChannel=he,be.url_passthrough=ce,be.ads_data_redaction="denied"===e&&ie,be.storage.ad_storage=e,be.storage.ad_user_data=e,be.storage.ad_personalization=e,be.storage.analytics_storage=a,be.storage.functionality_storage=o,be.storage.personalization_storage=r,be.storage.security_storage=i,be.data_layer_property=fe||"dataLayer",me("set","developer_id.dMTZkMj",!0),be.ads_data_redaction&&me("set","ads_data_redaction",be.ads_data_redaction),be.url_passthrough&&me("set","url_passthrough",be.url_passthrough),function(){const e=p!==te?{wait_for_update:we||500}:we?{wait_for_update:we}:{};ee&&!H?me("consent","default",{...be.storage,...e}):(me("consent","default",{...be.storage,...e,region:[...J||H?n:[],...G&&!H?t:[],...K&&!H?["BR"]:[],...V&&!H?["JP"]:[],...!1===Q||H?[]:["CA"],...Z&&!H?["TH"]:[],...Y&&!H?["CH"]:[],...X&&
55!H?["ZA"]:[]]}),me("consent","default",{ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted",analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted",...e}));if(null!==g){const e=0===(p&de)?"granted":"denied",t=0===(p&le)?"granted":"denied",n=0===(p&ue)?"granted":"denied",a=0===(p&ge)?"granted":"denied",o=0===(p&pe)?"granted":"denied";be.storage.ad_storage=e,be.storage.ad_user_data=e,be.storage.ad_personalization=e,be.storage.analytics_storage=t,be.storage.functionality_storage=n,be.storage.personalization_storage=a,be.storage.security_storage=o,me("consent","update",be.storage)}me("js",new Date);const a="https://www.googletagmanager.com";if(oe.length){const e=oe.split(",");window[be.data_layer_property].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});for(let t=0;t<e.length;t++){const n="dataLayer"!==be.data_layer_property?`&l=${be.data_layer_property}`:"";s(`${a}/gtm.js?id=${e[t].trim()}${n}`)}}if(se.length){const e=se.split(",");for(let t=0;t<e.length;t++){const n=e[t].trim();n.length&&(s(`${a}
55/gtag/js?id=${n}`),me("config",n,{send_page_view:!be.useNativeChannel}))}}if(re.length){const e=re.split(",");for(let t=0;t<e.length;t++){const n=e[t].trim();n.length&&(s(`${a}/gtag/js?id=${n}`),me("config",n,{allow_enhanced_conversions:!0}))}}}()}var _e;function ke(e,t,n=100,a=5e3){const o=e===window&&t.startsWith("window.")?t.substring(7):t;return new Promise(((s,r)=>{let i=null;const c=()=>{i&&clearTimeout(i)};(()=>{const d=Date.now(),l=()=>{const u=function(e,t){if(!t)return e;if(null==e)return;return t.split(".").reduce(((e,t)=>{if(null!=e)return e[t]}),e)}(e,o);return null!=u?(c(),s({value:u})):Date.now()-d>=a?(c(),r(new Error(`Property path "${t}" not found within ${a}ms.`))):void(i=setTimeout(l,n))};l()})()}))}const{blocker:{klaviyoIsActive:ve,googleConsentMode:{adStorageCategory:Se}}}=r;ve&&window.addEventListener("PandectesEvent_OnConsent",(function(e){const{preferences:t,consentType:n}=e.detail;if(null!=t&&"default"!==n){const e=0===(t&Se)?"granted":"denied";ke(window,"klaviyo").then((()=>{const t=["identify",{ad_personalization:e,ad_user_data:e}];window.klaviyo.push(t)})).catch((()=>{console.warn("Klaviyo object not found on window")}))}}));const{banner:{revokableTrigger:Le}}=r;if(Le){const e=async()=>{for await(let e of((e,t=1e3,n=1e4)=>{const a=new WeakMap;return{async*[Symbol.asyncIterator](){const o=Date.now();for(;Date.now()-o<n;){const n=document.querySelectorAll(e);for(const e of n)a.has(e)||(a.set(e,!0),yield e);await new Promise((e=>setTimeout(e,t)))}}}})('a[href*="reopenbanner" i]'))e.onclick=e=>{e.preventDefault(),window.Pandectes.fn.revokeConsent()}};"loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e()}const{banner:{isActive:Ce},blocker:{defaultBlocked:Ae=7,microsoft:{isActive:Ee,uetTags:Pe,dataLayerProperty:$e="uetq"}={isActive:!1,uetTags:"",dataLayerProperty:"uetq"},clarity:{isActive:Te,id:Be}={isActive:!1,id:""}}}=r,Re={hasInitialized:!1,data_layer_property:"uetq",storage:{ad_storage:"granted"}};if(Ce&&Ee){if(function(e,t,n){const a=new Date;a.setTime(a.getTime()+24*n*60*60*1e3);const o="expires="+a.toUTCString();document.cookie=`${e}=${t}; ${o}; path=/; secure; samesite=strict`}("_uetmsdns","0",365),Pe.length){const e=Pe.split(",");for(let t=0;t<e.length;t++)e[t].trim().length&&Me(e[t])}const e=4&Ae?"denied":"granted";if(Re.hasInitialized=!0,Re.storage.ad_storage=e,window[$e]=window[$e]||[],window[$e].push("consent","default",Re.storage),null!==g){const e=4&p?"denied":"granted";Re.storage.ad_storage=e,window[$e].push("consent","update",Re.storage)}window.addEventListener("PandectesEvent_OnConsent",(e=>{["new","revoke"].includes(e.detail?.consentType)&&(4&e.detail?.preferences?window[$e].push("consent","update",{ad_storage:"denied"}):window[$e].push("consent","update",{ad_storage:"granted"}))}))}var Ie,Oe,Ue,ze,De,Ne,je;function Me(e){const t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="//bat.bing.com/bat.js",t.onload=function(){const t={ti:e,cookieFlags:"SameSite=None;Secure"};t.q=window[$e],window[$e]=new UET(t),window[$e].push("pageLoad")},document.head.appendChild(t)}Te&&Ce&&(Be.length&&(Ie=window,Oe=document,ze="script",De=Be,Ie[Ue="clarity"]=Ie[Ue]||function(){(Ie[Ue].q=Ie[Ue].q||[]).push(arguments)},(Ne=Oe.createElement(ze)).async=1,Ne.src="https://www.clarity.ms/tag/"+De,(je=Oe.getElementsByTagName(ze)[0]).parentNode.insertBefore(Ne,je)),window.addEventListener("PandectesEvent_OnConsent",(e=>{["new","revoke"].includes(e.detail?.consentType)&&"function"==typeof window.clarity&&(2&e.detail?.preferences?window.clarity("consent",!1):window.clarity("consent"))})));(r?.blocker?.amazon?.enabled??!1)&&((()=>{if(window.amznConsent||document.querySelector("script[data-amzn-consent]"))return;const e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://c.amazon-adsystem.com/aat/amzn-consent.js",e.dataset.amznConsent="true",document.head.appendChild(e)})(),window.addEventListener("PandectesEvent_OnConsent",(function(e){const{preferences:t}=e.detail;if(null!=t){const e=!(4&t);ke(window,"amznConsent").then((({value:t})=>{let n=window?.Shopify?.customerPrivacy?.getRegion();n?.length>2&&(n=n.substr(0,2));
55const a=t();n&&2==n.length&&a.setCountryCode(n),a.setEnableAdStorage(e).setEnableUserData(e).build()})).catch((e=>{console.log(e),console.warn("window.amznConsent not found")}))}}))),window.PandectesRules.gcm=be;const{banner:{isActive:xe},blocker:{isActive:qe}}=r;o(`Prefs: ${p} | Banner: ${xe?"on":"off"} | Blocker: ${qe?"on":"off"}`);const Fe=null===g&&/\/checkouts\//.test(window.location.pathname);0!==p&&!1===i&&qe&&!Fe&&(o("Blocker will execute"),document.createElement=function(...t){if("script"!==t[0].toLowerCase())return P.bind?P.bind(document)(...t):P;const n=P.bind(document)(...t);try{Object.defineProperties(n,{src:{...$.src,set(t){S(t,n.type)&&$.type.set.call(this,e),$.src.set.call(this,t)}},type:{...$.type,get(){const t=$.type.get.call(this);return t===e||S(this.src,t)?null:t},set(t){const a=S(n.src,n.type)?e:t;$.type.set.call(this,a)}}}),n.setAttribute=function(t,a){if("type"===t){const t=S(n.src,n.type)?e:a;$.type.set.call(n,t)}else"src"===t?(S(a,n.type)&&$.type.set.call(n,e),$.src.set.call(n,a)):HTMLScriptElement.prototype.setAttribute.call(n,t,a)}}catch(e){console.warn("PandectesRules: unable to prevent script execution for script src ",n.src,".\n",'A likely cause would be because you are using a third-party browser extension that monkey patches the "document.createElement" function.')}return n},E.observe(document.documentElement,{childList:!0,subtree:!0}),A.observe(document.documentElement,{childList:!0,subtree:!0}))}(); 56�</script>
vendor: 72 bytes, lines 56-59
56 57<script 58 async 59 src="https://www.googletagmanager.com/gtag/js?id=
59AW-6318682449
vendor: 49 bytes, lines 59-62
59" 60 data-cookiecategory="C0003" 61 ></script> 62
62<script data-cookiecategory="C0003"> 63
vendor: 152 bytes, lines 63-68
63window.dataLayer = window.dataLayer || []; 64 function gtag() { 65 dataLayer.push(arguments); 66 } 67 gtag('js', new Date()); 68 gtag('config', "
68AW-6318682449
vendor: 6 bytes, lines 68-69
68"); 69
69</script>
69<script type="text/plain" data-usercentrics="Microsoft Clarity"> 70 (function (c, l, a, r, i, t, y) { 71 c[a] = 72 c[a] || 73 function () { 74 (c[a].q = c[a].q || []).push(arguments); 75 }; 76 t = l.createElement(r); 77 t.async = 1; 78 t.src = 'https://www.clarity.ms/tag/' + i; 79 y = l.getElementsByTagName(r)[0]; 80 y.parentNode.insertBefore(t, y); 81 })(window, document, 'clarity', 'script', 'xxnoxwwyae'); 82</script>
82 83<meta charset="utf-8"> 84 <meta name="viewport" content="width=device-width,initial-scale=1"> 85 <meta name="theme-color" content="#000000"><link rel="icon" type="image/png" href="//www.naak.com/cdn/shop/files/Favicon_-_64_x_64_px.png?crop=center&height=32&v=1738537468&width=32"><title> 86 näak BOOST⢠Energy Drink Mix 60 â§ Salted Cucumber â§ Bag 87 – Näak NA</title><meta name="description" content="All-natural 60g carbs + high-sodium drink mix for steady and fast-acting energy with extra sodium for hot days and heavy sweaters. The packaging you will receive may be different."> 88 89 90 91 92<link rel="preload" as="image" href="//www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=1200" imagesizes="(min-width: 1024px) 50vw, 100vw" fetchpriority="high"> 93 94<meta property="og:site_name" content="Näak NA"> 95<meta property="og:url" content="https://www.naak.com/products/boost-drink-mix-60-salted-cucumber-bag"> 96<meta property="og:title" content="näak BOOST⢠Energy Drink Mix 60 â§ Salted Cucumber â§ Bag"><meta property="og:image" content="http://www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=1200"> 97 <meta property="og:image:secure_url" content="https://www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=1200"><meta property="og:type" content="website"> 98<meta name="twitter:card" content="summary_large_image">
99<script type="application/ld+json"> 100 { 101 "@context": "https://schema.org", 102 "@graph": [ 103 { 104 "@type": "Organization", 105 "@id": "https:\/\/www.naak.com\/#organization", 106 "name": "Näak NA", 107 "url": "https:\/\/www.naak.com", 108 "description": "We make performance and sustainable nutrition to help you go longer and farther. Explore Ultra Energy⢠drink mixes, bars, waffles, gels and purees. Get your free nutrition plan today!", 109 "email": "[email protected]" 110 }, 111 { 112 "@type": "WebSite", 113 "@id": "https:\/\/www.naak.com\/#website", 114 "name": "Näak NA", 115 "url": "https:\/\/www.naak.com", 116 "publisher": { 117 "@id": "https:\/\/www.naak.com\/#organization" 118 }, 119 "potentialAction": { 120 "@type": "SearchAction", 121 "target": { 122 "@type": "EntryPoint", 123 "urlTemplate": "https:\/\/www.naak.com\/search?q={search_term_string}" 124 }, 125 "query-input": "required name=search_term_string" 126 } 127 } 128 ] 129 } 130</script>
vendor: 1 bytes, line 130
130
131<script type="application/ld+json"> 132 { 133 "@context": "https://schema.org", 134 "@graph": [ 135 { 136 "@type": "Product", 137 "@id": "https:\/\/www.naak.com\/products\/boost-drink-mix-60-salted-cucumber-bag#product", 138 "name": "BOOST⢠Drink Mix 60 · Salted Cucumber · Bag", 139 "description": "All-natural 60g carbs + high-sodium drink mix for steady and fast-acting energy with extra sodium for hot days and heavy sweaters.\nThe packaging you will receive may be different.", 140 "url": "https:\/\/www.naak.com\/products\/boost-drink-mix-60-salted-cucumber-bag", 141 "sku": "BE-DM-CU-BG-01-CA", 142 "brand": { 143 "@type": "Brand", 144 "name": "Näak" 145 }, 146 "category": "Drink Mixes", 147 "image": [{ 148 "@type": "ImageObject", 149 "url": "https:\/\/www.naak.com\/cdn\/shop\/files\/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130\u0026width=1600", 150 "caption": "Näak NA Drink Mixes BOOST⢠Drink Mix 60 · Salted Cucumber · Bag" 151 }], 152 "offers": [{ 153 "@type": "Offer", 154 "url": "https:\/\/www.naak.com\/products\/boost-drink-mix-60-salted-cucumber-bag?variant=50970992935216", 155 "sku": "BE-DM-CU-BG-01-CA", 156 "price": 48.0, 157 "priceCurrency": "USD", 158 "availability": "https://schema.org/InStock", 159 "itemCondition": "https://schema.org/NewCondition", 160 "seller": { 161 "@id": "https:\/\/www.naak.com\/#organization" 162 } 163 } 164], 165 "aggregateRating": { 166 "@type": "AggregateRating", 167 "ratingValue": "5.0", 168 "reviewCount": 8, 169 "bestRating": "5.0", 170 "worstRating": 1 171 } 172 }, 173 { 174 "@type": "BreadcrumbList", 175 "itemListElement": [ 176 { 177 "@type": "ListItem", 178 "position": 1, 179 "name": "Home", 180 "item": "https:\/\/www.naak.com" 181 }, 182 { 183 "@type": "ListItem", 184 "position": 2, 185 "name": "All products", 186 "item": "https:\/\/www.naak.com\/collections\/all" 187 }, 188 { 189 "@type": "ListItem", 190 "position": 3, 191 "name": "BOOST⢠Drink Mix 60 · Salted Cucumber · Bag", 192 "item": "https:\/\/www.naak.com\/products\/boost-drink-mix-60-salted-cucumber-bag" 193 } 194 ] 195 } 196 ] 197 } 198</script>
198 199<link href="//www.naak.com/cdn/shop/t/335/assets/app.css?v=180490310481434994361790690532" rel="stylesheet" type="text/css" media="all" /> 200 201 202 203<link 204 rel="preload" 205 as="font" 206 href="//www.naak.com/cdn/shop/t/335/assets/Gotham-Book.woff2?v=12903021498071736711785253586" 207 type="font/woff2" 208 crossorigin 209 fetchpriority="low" 210> 211<link 212 rel="preload" 213 as="font" 214 href="//www.naak.com/cdn/shop/t/335/assets/Gotham-Medium.woff2?v=35539213883941330071785253585" 215 type="font/woff2" 216 crossorigin 217 fetchpriority="low" 218> 219 220<style data-shopify> 221 :root { 222 --color-primary: #000000; 223 --color-offwhite: #f6f6f6; 224 --color-accent: #fff200; 225 --color-muted: #a3a3a3; 226 --color-surface: #f3f3f3; 227 --font-body-family: "Gotham", sans-serif; 228 --font-body-style: normal; 229 --font-body-weight: 400; 230 } 231</style>
232<script type="application/json" id="BoilerplateMoney"> 233 { 234 "format": "${{amount}}", 235 "currency": "USD" 236 } 237</script>
237<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 237
237
238<script type="importmap"> 239 { 240 "imports": { 241 "@boilerplate/cart": "//www.naak.com/cdn/shop/t/335/assets/cart.js?v=55704357077109611521790000716" 242 } 243 } 244</script>
vendor: 1 bytes, line 244
244
245<script type="application/json" id="BoilerplateModuleUrls"> 246 { 247 "collectionFacets": "//www.naak.com/cdn/shop/t/335/assets/collection-facets.js?v=107285634282139304331790690533", 248 "productPage": "//www.naak.com/cdn/shop/t/335/assets/product-page.js?v=173811756240290351531790690533", 249 "announcementBar": "//www.naak.com/cdn/shop/t/335/assets/announcement-bar.js?v=160055163860794502451785253584", 250 "trustBar": "//www.naak.com/cdn/shop/t/335/assets/trust-bar.js?v=33354286794038072461785253586", 251 "userReviews": "//www.naak.com/cdn/shop/t/335/assets/user-reviews.js?v=13637785631456474261785253587", 252 "userReviewsV2": "//www.naak.com/cdn/shop/t/335/assets/user-reviews-v2.js?v=30868949931488162221785253586", 253 "athleteCards": "//www.naak.com/cdn/shop/t/335/assets/athlete-cards.js?v=171244763370331151421785253585", 254 "galleryCarousel": "//www.naak.com/cdn/shop/t/335/assets/gallery-carousel.js?v=158726342410000070431785253586", 255 "fullWidthVideo": "//www.naak.com/cdn/shop/t/335/assets/full-width-video.js?v=53803976191327787441785253586", 256 "searchDrawer": "//www.naak.com/cdn/shop/t/335/assets/search-drawer.js?v=62466861263933134201785253584", 257 "searchPage": "//www.naak.com/cdn/shop/t/335/assets/search-page.js?v=71245251793034703741785928112", 258 "listCollections": "//www.naak.com/cdn/shop/t/335/assets/list-collections.js?v=180409741315517286111785253584", 259 "blogPage": "//www.naak.com/cdn/shop/t/335/assets/blog-page.js?v=14838856939115349961785253586", 260 "articlePage": "//www.naak.com/cdn/shop/t/335/assets/article-page.js?v=170530424603030238131785253585", 261 "productCard": "//www.naak.com/cdn/shop/t/335/assets/product-card.js?v=139077932648126842161790000717", 262 "collectionCarousel": "//www.naak.com/cdn/shop/t/335/assets/collection-carousel.js?v=82746987927128333991785253585", 263 "eventsCarousel": "//www.naak.com/cdn/shop/t/335/assets/events-carousel.js?v=134733755459729497151785253586", 264 "brandStorytellingCarousel": "//www.naak.com/cdn/shop/t/335/assets/brand-storytelling-carousel.js?v=126237548797881773281785253586", 265 "blogCarousel": "//www.naak.com/cdn/shop/t/335/assets/blog-carousel.js?v=84571061347578065291785253586", 266 "productHighlightsSlider": "//www.naak.com/cdn/shop/t/335/assets/product-highlights-slider.js?v=179993523373220095351785253587", 267 "productRecommendationsCarousel": "//www.naak.com/cdn/shop/t/335/assets/product-recommendations-carousel.js?v=166858339
267687415823131785253584", 268 "showcase": "//www.naak.com/cdn/shop/t/335/assets/showcase.js?v=27699735492282828711788336147", 269 "nutritionGuide": "//www.naak.com/cdn/shop/t/335/assets/nutrition-guide.js?v=76788188561723187531785253584", 270 "localizationSelector": "//www.naak.com/cdn/shop/t/335/assets/localization-selector.js?v=148762191850722173971786371921" 271 } 272</script>
vendor: 1 bytes, line 272
272
273<script> 274 /* 275 Paliers cadeaux du panier (ex. « 2x free purées » dès 30) : le module panier ne les recalcule qu'au 276 chargement de la page et après ses propres actions. Les sections LP (pop-in, ATC, collection, VSL) 277 ajoutent au panier en direct via /cart/add.js : elles appellent cette fonction juste après, sinon le 278 cadeau n'apparaît qu'au rechargement (constaté le 2026-09-28 sur la LP UTMB). 279 Anti-rebond de 400 ms : plusieurs notifications rapprochées ne déclenchent qu'un recalcul. 280 */ 281 window.fnlSyncCartRewards = function () { 282 clearTimeout(window.__fnlRewardsTimer); 283 window.__fnlRewardsTimer = setTimeout(function () { 284 import('@boilerplate/cart') 285 .then(function (m) { return m.refreshCartUI && m.refreshCartUI(); }) 286 .catch(function (e) { console.error('[Cart rewards sync]', e); }); 287 }, 400); 288 }; 289</script>
vendor: 1 bytes, line 289
289
290<script type="module" src="//www.naak.com/cdn/shop/t/335/assets/app.js?v=38869594119698373601786546381"></script>
vendor: 1 bytes, line 290
290
291<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
291<meta name="google-site-verification" content="OmTndwrTUTj8l0cTWSVm67D1U0dOwiE_z-YCtwy5rKg"> 292<meta name="google-site-verification" content="m9tCyzZ7GmAIEvmLzA-FQWFsS9vaI5P9-1gTDg8JebA"> 293<meta name="google-site-verification" content="Yt3GL2I_Nsgb1YL8ymTu2045pgTYTIaAck4VtFEF1is"> 294<meta name="facebook-domain-verification" content="92rtuv90qkv23wq7ahood12yj93dvx"> 295<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/12429414/digital_wallets/dialog"> 296<meta id="in-context-paypal-metadata" data-shop-id="12429414" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 297<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="buy" href="/cart/50970992935216:1?ucp/version=2026-08-25&context/payment/0/handler=dev.shopify.shop_pay" payment="dev.shopify.shop_pay com.google.pay dev.shopify.card"><link rel="alternate" hreflang="x-default" href="https://www.naak.com/products/boost-drink-mix-60-salted-cucumber-bag"> 298<link rel="alternate" hreflang="en" href="https://www.naak.com/products/boost-drink-mix-60-salted-cucumber-bag"> 299<link rel="alternate" hreflang="fr" href="https://www.naak.com/fr/products/boost-drink-mix-60-salted-cucumber-bag"> 300<link rel="alternate" type="application/json+oembed" href="https://www.naak.com/products/boost-drink-mix-60-salted-cucumber-bag.oembed">
301<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=34996528"></script>
301 302<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
303<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=34996528&shop_id=12429414" crossorigin="anonymous"></script>
vendor: 1 bytes, line 303
303
304<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":12429414,"countryCode":"CA","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/12429414","merchantName":"Näak NA","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","interac","jcb"],"total":{"type":"pending","label":"Näak NA","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 304
304
305<script id="shopify-features" type="application/json">{"accessToken":"cdfff98b98634065b32f5c0f825e205c","betas":["rich-media-storefront-analytics"],"domain":"www.naak.com","predictiveSearch":true,"shopId":12429414,"locale":"en"}</script>
vendor: 1 bytes, line 305
305
306<script>var Shopify = Shopify || {}; 307Shopify.shop = "naakbar.myshopify.com"; 308Shopify.locale = "en"; 309Shopify.currency = {"active":"USD","rate":"0.701646"}; 310Shopify.country = "US"; 311Shopify.theme = {"name":"naak-na-new-theme\/main","id":186884456752,"schema_name":"Shopify Boilerplate V2","schema_version":"2.0.0","theme_store_id":null,"role":"main"}; 312Shopify.theme.handle = "null"; 313Shopify.theme.style = {"id":null,"handle":null}; 314Shopify.cdnHost = "www.naak.com/cdn"; 315Shopify.routes = Shopify.routes || {}; 316Shopify.routes.root = "/"; 317Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 318Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 319Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 320Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 320
320
321<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 321
321
322<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 322
322
323<script> 324 window.ShopifyPay = window.ShopifyPay || {}; 325 window.ShopifyPay.apiHost = "shop.app\/pay"; 326 window.ShopifyPay.redirectState = null; 327</script>
vendor: 1 bytes, line 327
327
328<script> 329 window.Shopify = window.Shopify || {}; 330 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 331 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 332 window.Shopify.SignInWithShop.eligible = true; 333</script>
vendor: 1 bytes, line 333
333
334<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
vendor: 1 bytes, line 334
334
335<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 335
335
336<script type="module"> 337 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 338 339 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 340 341</script>
vendor: 1 bytes, line 341
341
342<script> 343 window.Shopify = window.Shopify || {}; 344 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 345 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 346</script>
vendor: 1 bytes, line 346
346
347<script id="__st">var __st={"a":12429414,"offset":-14400,"reqid":"facdffff-2280-452f-8d2c-3baf856a8eee-1791074901","pageurl":"www.naak.com\/products\/boost-drink-mix-60-salted-cucumber-bag","u":"35587d269302","p":"product","rtyp":"product","rid":10099179225392};</script>
vendor: 1 bytes, line 347
347
348<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 348
348
349<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 349
349
350<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.naak.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 350
350
351<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.naak.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
351<script crossorigin="anonymous" defer="defer" src="//www.naak.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 351
351
352<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 352
352
353<script> 354 window.Shopify = window.Shopify || {}; 355 window.Shopify.MCP = window.Shopify.MCP || {}; 356 window.Shopify.MCP.enabled = true; 357 window.Shopify.MCP.shop = "naakbar.myshopify.com"; 358 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.naak.com\/api\/mcp"; 359 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 360</script>
vendor: 1 bytes, line 360
360
361<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.naak.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 362</script>
vendor: 1 bytes, line 362
362
363<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.naak.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 364</script>
vendor: 1 bytes, line 364
364
365<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 366 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 367</script>
vendor: 1 bytes, line 367
367
368<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 369</script>
369 370<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.naak.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 371<style id="shopify-accelerated-checkout-cart"> 372 #shopify-buyer-consent { 373 margin-top: 1em; 374 display: inline-block; 375 width: 100%; 376} 377 378#shopify-buyer-consent.hidden { 379 display: none; 380} 381 382#shopify-subscription-policy-button { 383 background: none; 384 border: none; 385 padding: 0; 386 text-decoration: underline; 387 font-size: inherit; 388 cursor: pointer; 389} 390 391#shopify-subscription-policy-button::before { 392 box-shadow: none; 393} 394 395 </style> 396
397<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
397 398 <!-- BEGIN app block: shopify://apps/addingwell/blocks/aw-gtm/c8ed21e7-0ac8-4249-8c91-cbdde850b5b8 -->
398<script 399 type="module" 400> 401 setTimeout(async function () { 402 const keySessionStorage = 'aw_settings'; 403 let __AW__settings = JSON.parse(sessionStorage.getItem(keySessionStorage)); 404 if(!__AW__settings) { 405 const awSettings = await fetch( 406 "/apps/addingwell-proxy", 407 { 408 method: "GET", 409 redirect: "follow", 410 headers: {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'} 411 } 412 ); 413 if (awSettings.ok) { 414 __AW__settings = await awSettings.json(); 415 sessionStorage.setItem(keySessionStorage, JSON.stringify(__AW__settings)); 416 } else { 417 console.error('Addingwell - Loading proxy error', awSettings.status); 418 return; 419 } 420 } 421 422 if(__AW__settings.insertGtmTag && __AW__settings.gtmId) { 423 let __AW__gtmUrl = 'https://www.googletagmanager.com/gtm.js'; 424 let __AW__isAddingwellCdn = false; 425 if(__AW__settings.insertGtmUrl && __AW__settings.gtmUrl) { 426 __AW__gtmUrl = __AW__settings.gtmUrl; 427 __AW__isAddingwellCdn = __AW__settings.isAddingwellCdn; 428 } 429 430 (function(w,d,s,l,i){ 431 w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'}); 432 var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; 433 j.async=true; 434 j.src=`${__AW__gtmUrl}?${__AW__isAddingwellCdn ? 'awl' : 'id'}=`+(__AW__isAddingwellCdn ? i.replace(/^GTM-/, '') : i)+dl;f.parentNode.insertBefore(j,f); 435 })(window,document,'script',`${__AW__settings.dataLayerVariableName}`,`${__AW__settings.gtmId}`); 436 } 437 438 const __AW__getEventNameWithSuffix = (eventName) => { 439 return eventName + (__AW__settings.dataLayerEventSuffix ? "_" + __AW__settings.dataLayerEventSuffix : ""); 440 } 441 442 function __AW__waitForShopifyYCookie(maxAttempts, intervalMs) { 443 return new Promise(function(resolve) { 444 let attempts = 0; 445 maxAttempts = maxAttempts || 5; 446 intervalMs = intervalMs || 200; 447 function check() { 448 const match = document.cookie.match(/(?:^|;\s*)_shopify_y=([^;]*)/); 449 if (match) { 450 resolve(match[1]); 451 } else if (attempts < maxAttempts) { 452 attempts++; 453 setTimeout(check, intervalMs); 454 } else { 455 console.warn('[AW] _shopify_y cookie not found after consent'); 456 resolve(null); 457 } 458 } 459 check(); 460 }); 461 } 462 463 const __AW__CONSENT_KEY = 'aw_consent_state'; 464 465 function __AW__getConsentState() { 466 try { 467 if (window.Shopify?.customerPrivacy?.currentVisitorConsent) { 468 return JSON.stringify(window.Shopify.customerPrivacy.currentVisitorConsent()); 469 } 470 } catch(e) {} 471 return null; 472 } 473 474 function __AW__isEmptyConsent(stateStr) { 475 try { 476 return Object.values(JSON.parse(stateStr)).every(v => v === ''); 477 } catch(e) {} 478 return true; 479 } 480 481 let __AW__prevConsentState = __AW__getConsentState() ?? localStorage.getItem(__AW__CONSENT_KEY); 482 483 document.addEventListener('visitorConsentCollected', async function(event) { 484 const currentConsentState = __AW__getConsentState(); 485 486 if (currentConsentState !== null && currentConsentState === __AW__prevConsentState) { 487 return; 488 } 489 490 __AW__prevConsentState = currentConsentState; 491 492 if (currentConsentState !== null) { 493 if (__AW__isEmptyConsent(currentConsentState)) { 494 localStorage.removeItem(__AW__CONSENT_KEY); 495 } else { 496 localStorage.setItem(__AW__CONSENT_KEY, currentConsentState); 497 } 498 } 499 500 window.Shopify.analytics.publish('addingwell:shopify_update_consent', {visitorConsentCollected: true}); 501 502 const shopifyY = await __AW__waitForShopifyYCookie(); 503 if (!shopifyY) return; 504 505 window[__AW__settings.dataLayerVariableName] = window[__AW__settings.dataLayerVariableName] || []; 506 window[__AW__settings.dataLayerVariableName].push({ 507 event: __AW__getEventNameWithSuffix('shopify_consent_updated'), 508 }); 509 }); 510 511 if(__AW__settings.enableDataLayer) { 512 const MAX_ITEMS_BATCH = 10; 513 const sendBatchEvents = (items, eventName, eventObject) => { 514 let batch = []; 515 for(let i = 0; i < items.length; i++) { 516 batch.push(items[i]); 517 if(batch.length === MAX_ITEMS_BATCH || i === items.length - 1) { 518 const eventClone = { 519 ...eventObject, 520 ecommerce: { 521 ...eventObject.ecommerce, 522 items: [...batch] 523 } 524 }; 525 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 526 window[__AW__settings.dataLayerVariableName].push({ 527 ...{'event': __AW__getEventNameWithSuffix(eventName)}, 528 ...eventClone 529 }); 530 531 batch = []; 532 } 533 } 534 } 535 536 function __AW__filterNullOrEmpty(obj) { 537 let filteredObj = {}; 538 539 for (let key in obj) { 540 if (obj.hasOwnProperty(key)) { 541 let value = obj[key]; 542 543 // If value is an object (and not null), recursively filter sub-elements 544 if (typeof value === "object" && value !== null && value !== undefined) { 545 let filteredSubObject = __AW__filterNullOrEmpty(value); 546 547 // Add the filtered sub-object only if it's not empty 548 if (Object.keys(filteredSubObject).length > 0) { 549 filteredObj[key] = filteredSubObject; 550 } 551 } else { 552 // Add the value only if it's neither null nor an empty string 553 if (value !== null && value !== "" && value !== undefined) { 554 filteredObj[key] = value; 555 } 556 } 557 } 558 } 559 return filteredObj; 560 } 561 562 function getPageType(value) { 563 const pageTypeMapping = { 564 404: '404', 565 article: 'article', 566 blog: 'blog', 567 cart: 'cart', 568 collection: 'collection', 569 gift_card: 'gift_card', 570 index: 'homepage', 571 product: 'product', 572 search: 'searchresults', 573 'customers/login': 'login', 574 'customers/register': 'sign_up' 575 }; 576 return pageTypeMapping[value] || 'other'; 577 } 578 let __AW__cartReady = false;
579 const cartRegex = /\/cart\/(add|change|update)(\.js|\.json)?(\?.*)?$/; 580 const pendingCartEventName = "aw_pending_cart_event"; 581 let awCartQueue = Promise.resolve(); 582 583 function pushDataLayerEvents() { 584 initCart(); 585 window[__AW__settings.dataLayerVariableName] = window[__AW__settings.dataLayerVariableName] || []; // init data layer if doesn't already exist 586 const templateName = "product"; 587 588 const getFormattedPrice = (priceInCents) => priceInCents/100; 589 /********************** 590 * DATALAYER SECTIONS 591 ***********************/ 592 /** 593 * DATALAYER: User Data 594 * Build user_data properties. 595 */ 596 let newCustomer = true; 597 window.__AW__CommonData = { 598 user_data: { 599 new_customer: newCustomer, 600 } 601 }; 602 603 604 605 window.__AW__CommonData.country = "US" 606 window.__AW__CommonData.market = "united-states" 607 window.__AW__CommonData.marketId = 77830029616 608 609 610 window.__AW__CommonData.language = "en-US"; 611 612 window.__AW__CommonData = __AW__filterNullOrEmpty(window.__AW__CommonData); 613 614 // Ajout du hash SHA256 des champs sensibles de user_data (version robuste) 615 async function sha256(str) { 616 if (!str) return undefined; 617 if (!(window.crypto && window.crypto.subtle)) { 618 console.error('Crypto.subtle non supporté, hash impossible pour :', str); 619 return undefined; 620 } 621 try { 622 const buf = await window.crypto.subtle.digest('SHA-256', new TextEncoder().encode(str)); 623 return Array.from(new Uint8Array(buf)).map(x => x.toString(16).padStart(2, '0')).join(''); 624 } catch (e) { 625 console.error('Erreur lors du hash SHA256 pour', str, e); 626 return undefined; 627 } 628 } 629 async function getUserDataHash(user_data) { 630 const hashObj = {}; 631 if (!user_data) return hashObj; 632 try { 633 if (user_data.email_address) hashObj.email_address = await sha256(user_data.email_address); 634 if (user_data.phone_number) hashObj.phone_number = await sha256(user_data.phone_number); 635 if (user_data.address && typeof user_data.address === 'object') { 636 hashObj.address = {}; 637 if (user_data.address.first_name) hashObj.address.first_name = await sha256(user_data.address.first_name); 638 if (user_data.address.last_name) hashObj.address.last_name = await sha256(user_data.address.last_name); 639 if (user_data.address.street) hashObj.address.street = await sha256(user_data.address.street); 640 if (user_data.address.city) hashObj.address.city = await sha256(user_data.address.city); 641 if (user_data.address.region) hashObj.address.region = await sha256(user_data.address.region); 642 if (user_data.address.postal_code) hashObj.address.postal_code = await sha256(user_data.address.postal_code); 643 if (user_data.address.country) hashObj.address.country = await sha256(user_data.address.country); 644 } 645 } catch (e) { 646 console.error('Erreur lors du hash user_data_hashed', e); 647 } 648 return __AW__filterNullOrEmpty(hashObj); 649 } 650 (async function() { 651 if (window.__AW__CommonData && window.__AW__CommonData.user_data) { 652 window.__AW__CommonData.user_data_hashed = await getUserDataHash(window.__AW__CommonData.user_data); 653 } 654 })(); 655 656 window.__AW__CommonData["page_type"] = getPageType(templateName); 657 window.__AW__CommonData["theme"] = window?.Shopify?.theme; 658 window[__AW__settings.dataLayerVariableName].push(window.__AW__CommonData); 659 660 window[__AW__settings.dataLayerVariableName].push({"event": __AW__getEventNameWithSuffix("page_view")}); 661 662 /** DATALAYER: select_item handoff */ 663 const pendingSelectItemName = "aw_pending_select_item"; 664 665 const __AW__pushSelectItem = (payload) => { 666 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 667 window[__AW__settings.dataLayerVariableName].push(payload); 668 }; 669 670 const __AW__flushPendingSelectItem = () => { 671 let pending = null; 672 try { 673 pending = sessionStorage.getItem(pendingSelectItemName); 674 sessionStorage.removeItem(pendingSelectItemName); 675 } catch (e) { 676 return; 677 } 678 if (!pending) return; 679 try { 680 __AW__pushSelectItem(JSON.parse(pending)); 681 } catch (e) { 682 console.warn('[AW] pending select_item error', e); 683 } 684 }; 685 686 __AW__flushPendingSelectItem(); 687 688 689 /** 690 * DATALAYER: 404 Pages 691 * Fire on 404 Pages */ 692 693 694 695 /** 696 * DATALAYER: Blog Articles 697 * Fire on Blog Article Pages */ 698 699 700 701 702 703 704 /** DATALAYER: Product List Page (Collections, Category) 705 * Fire on all product listing pages. */ 706 707 const __AW__transformNumberToString = (value) => { 708 if (value !== null && value !== undefined && typeof value === 'number') { 709 return value.toString(); 710 } 711 /** By Default return the current value */ 712 return value; 713 }; 714 715 let discountPrice = 0.00; 716 717 718 /** DATALAYER: Product Page 719 * Fire on all Product View pages. */ 720 721 722 var dl_ecom_quantity = 1; 723 var dl_ecom_price = getFormattedPrice(4800); 724 var dl_ecom_value = dl_ecom_quantity * dl_ecom_price; 725 726 var __AW__itemVariant = {"id":50970992935216,"title":"1 bag - 15 servings","option1":"1 bag - 15 servings","option2":null,"option3":null,"sku":"BE-DM-CU-BG-01-CA","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"BOOST⢠Drink Mix 60 · Salted Cucumber · Bag - 1 bag - 15 servings","public_title":"1 bag - 15 servings","options":["1 bag - 15 servings"],"price":4800,"weight":0,"compare_at_price":null,"inventory_quantity":50,"inventory_management":"shopify","inventory_policy":"deny","barcode":null,"requires_selling_plan":false,"unit_price":320,"unit_price_measurement":{"measured_type":"count","quantity_value":"15.0","quantity_unit":"item","reference_value":1,"reference_unit":"item"},"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":4080}],"price":4080,"compare_at_price":4800,"per_delivery_price":4080,"unit_price":272,"
726selling_plan_id":692439580976,"selling_plan_group_id":"eceb5dec9e45638dea1dbe91ef2100ca7cabc898"}],"quantity_rule":{"min":1,"max":null,"increment":1}}; 727 var __AW__itemVariantQuantity = 72 728 729 730 discountPrice = 0.00; 731 732 733 734 735 736 737 738 739 740 741 742 const awEcommerceProduct = { 743 ecommerce: { 744 currency: "USD", 745 value: dl_ecom_value, 746 'items': [{ 747 'item_id' : __AW__transformNumberToString(10099179225392), 748 'item_variant' : __AW__itemVariant?.title || null, 749 'item_variant_title' : __AW__itemVariant?.title || null, 750 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id || null), 751 'item_product_id' : __AW__transformNumberToString(10099179225392), 752 'item_product_title' : "BOOST⢠Drink Mix 60 · Salted Cucumber · Bag", 753 'item_name' : "BOOST⢠Drink Mix 60 · Salted Cucumber · Bag", 754 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku || null), 755 'discount' : discountPrice, 756 'price' : dl_ecom_price, 757 'item_brand' : "Näak", 758 'item_category' : "Drink Mixes", 759 'item_list_id' : null, 760 'item_list_name' : null, 761 'quantity' : dl_ecom_quantity, 762 'inventory_quantity' : __AW__itemVariantQuantity, 763 'url' : "\/products\/boost-drink-mix-60-salted-cucumber-bag", 764 'selling_plan_id' : null, 765 'selling_plan_name' : null 766 }] 767 } 768 }; 769 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 770 window[__AW__settings.dataLayerVariableName].push({ 771 ...{'event': __AW__getEventNameWithSuffix('view_item')}, 772 ...awEcommerceProduct 773 }); 774 775 776 777 /** DATALAYER: Cart View 778 * Fire anytime a user views their cart (non-dynamic) */ 779 780 781 let drawerCartAlreadyOpened = false; 782 let pendingViewCartTimeout = null; 783 784 let stateObserver = null; 785 let domObserver = null; 786 787 function initCart() { 788 fetch(`${window.Shopify?.routes?.root || "/"}cart.js?adw=1&init=1`, { 789 credentials: 'same-origin', 790 headers: { 'Accept': 'application/json' } 791 }).then(r => r.ok ? r.json() : null) 792 .then(freshCart => { 793 if (freshCart) { 794 window.__AW__slaveShopifyCart = freshCart; 795 } else { 796 window.__AW__slaveShopifyCart = { items: [] }; 797 } 798 __AW__cartReady = true; 799 }) 800 .catch(e => { 801 console.warn('[AW] Cart hydration failed', e); 802 window.__AW__slaveShopifyCart = { items: [] }; 803 __AW__cartReady = true; 804 }) 805 .finally(() => { 806 // A snapshot left by a non-AJAX add to cart (form submit + reload) can only be synced once the cart is ready 807 if (sessionStorage.getItem(pendingCartEventName)) { 808 scheduleCartSync(); 809 } 810 }); 811 } 812 813 function fireViewCartOncePerOpen() { 814 if (pendingViewCartTimeout) return; 815 816 drawerCartAlreadyOpened = true; 817 818 pendingViewCartTimeout = setTimeout(() => { 819 pendingViewCartTimeout = null; 820 if (!__AW__cartReady) return; 821 const ecommerceDataLayer = { 822 ecommerce: { 823 currency: window.__AW__slaveShopifyCart.currency, 824 value: window.__AW__slaveShopifyCart.total_price / 100, 825 items: window.__AW__slaveShopifyCart.items.map(item => { 826 const price = (item.discounted_price ?? item.price) / 100; 827 const discount = (item.price - (item.discounted_price ?? 0)) / 100; 828 829 let coupon = ""; 830 if (Array.isArray(item?.discounts)) { 831 coupon = item.discounts 832 .filter(d => typeof d?.title === "string") 833 .map(d => d.title) 834 .join(", "); 835 } 836 837 return { 838 item_id: __AW__transformNumberToString(item.product_id), 839 item_variant: item.variant_title, 840 item_variant_title: item.variant_title, 841 item_variant_id: __AW__transformNumberToString(item.variant_id), 842 item_product_id: __AW__transformNumberToString(item.product_id), 843 item_product_title: item.product_title, 844 item_name: item.product_title, 845 price, 846 discount, 847 item_brand: item.vendor, 848 item_category: item.product_type, 849 item_list_name: item.collection || "", 850 item_list_id: "", 851 quantity: item.quantity, 852 sku: __AW__transformNumberToString(item.sku), 853 coupon, 854 url: item.url, 855 selling_plan_id : item?.selling_plan_allocation?.selling_plan?.id, 856 selling_plan_name : item?.selling_plan_allocation?.selling_plan?.name 857 858 }; 859 }) 860 } 861 }; 862 863 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 864 window[__AW__settings.dataLayerVariableName].push({ 865 event: __AW__getEventNameWithSuffix("view_cart"), 866 ...ecommerceDataLayer 867 }); 868 }, 1000); 869 } 870 871 function resetOnClose() { 872 drawerCartAlreadyOpened = false;
873 if (pendingViewCartTimeout) { 874 clearTimeout(pendingViewCartTimeout); 875 pendingViewCartTimeout = null; 876 } 877 } 878 879 function getTargets() { 880 const cartDrawer = document.querySelector("cart-drawer"); 881 const dialog = 882 document.querySelector("cart-drawer dialog") || 883 document.querySelector("cart-drawer-component dialog") || 884 document.querySelector("cart-drawer-component dialog[ref='dialog']"); 885 886 return { cartDrawer, dialog }; 887 } 888 889 function isCartOpen({ cartDrawer, dialog }) { 890 const openByDialog = !!dialog && (dialog.open || dialog.hasAttribute("open")); 891 const openByClass = !!cartDrawer && cartDrawer.classList.contains("active"); 892 const openByAttr = !!cartDrawer && cartDrawer.hasAttribute("open"); 893 return openByDialog || openByClass || openByAttr; 894 } 895 896 function attachStateObserver() { 897 const { cartDrawer, dialog } = getTargets(); 898 899 if (stateObserver) stateObserver.disconnect(); 900 901 stateObserver = new MutationObserver(() => { 902 const openNow = isCartOpen(getTargets()); 903 904 if (openNow) { 905 if (!drawerCartAlreadyOpened) fireViewCartOncePerOpen(); 906 } else { 907 resetOnClose(); 908 } 909 }); 910 911 if (cartDrawer) { 912 stateObserver.observe(cartDrawer, { 913 attributes: true, 914 attributeFilter: ["class", "open"] 915 }); 916 } 917 918 if (dialog) { 919 stateObserver.observe(dialog, { 920 attributes: true, 921 attributeFilter: ["open"] 922 }); 923 } 924 925 const openNow = isCartOpen(getTargets()); 926 if (openNow) { 927 if (!drawerCartAlreadyOpened) fireViewCartOncePerOpen(); 928 } else { 929 resetOnClose(); 930 } 931 } 932 933 function observeCartDrawerOpen() { 934 attachStateObserver(); 935 936 if (domObserver) domObserver.disconnect(); 937 938 domObserver = new MutationObserver(() => { 939 attachStateObserver(); 940 }); 941 942 domObserver.observe(document.documentElement, { 943 childList: true, 944 subtree: true 945 }); 946 } 947 948 observeCartDrawerOpen(); 949 950 951 /** DATALAYER: Search Results */ 952 var searchPage = new RegExp("search", "g"); 953 if(document.location.pathname.match(searchPage)){ 954 var __AW__items = []; 955 956 957 const awEcommerceSearch = { 958 search_term: null, 959 results_count: null, 960 ecommerce: { 961 currency: "USD", 962 items : [] 963 } 964 }; 965 sendBatchEvents(__AW__items, "search", awEcommerceSearch); 966 } 967 968 969 document.addEventListener('click', async function(e) { 970 const btn = e.target.closest('[href*="/cart/add"], [action*="/cart/add"], button[name="add"]'); 971 if (!btn || !__AW__cartReady) return; 972 snapshotCart(); 973 }, true); 974 975 patchFetch(); 976 patchXhr(); 977 978 function snapshotCart() { 979 try { 980 sessionStorage.setItem( 981 pendingCartEventName, 982 JSON.stringify(window.__AW__slaveShopifyCart ?? { items: [] }) 983 ); 984 } catch (e) { 985 console.warn('[AW] snapshot error', e); 986 } 987 } 988 989 function patchXhr() { 990 const nativeSend = typeof XMLHttpRequest === 'function' ? XMLHttpRequest.prototype?.send : null; 991 if (typeof nativeSend !== 'function' || nativeSend.__AW__patched) return; 992 993 XMLHttpRequest.prototype.send = function(body) { 994 this.addEventListener('load', () => { 995 try { 996 const abs = this.responseURL || ''; 997 const u = new URL(abs, location.origin); 998 const mt = u.pathname + (u.search || ''); 999 if (this.status === 200 && cartRegex.test(mt)) { 1000 scheduleCartSync(); 1001 } 1002 } catch (e) { 1003 console.error('[AW] XHR handler error', e); 1004 } 1005 }); 1006 return nativeSend.apply(this, arguments); 1007 }; 1008 1009 XMLHttpRequest.prototype.send.__AW__patched = true; 1010 } 1011 1012 function patchFetch() { 1013 const previousFetch = window.fetch; 1014 if (typeof previousFetch !== 'function' || previousFetch.__AW__patched) return; 1015 1016 window.fetch = async function (...args) { 1017 const resource = args[0]; 1018 try { 1019 1020 const url = resource instanceof Request ? resource.url : resource instanceof URL ? resource.href : String(resource); 1021 if (cartRegex.test(url)) { 1022 const response = await previousFetch.apply(this, args); 1023 if (response.ok) { 1024 scheduleCartSync(); 1025 } else { 1026 console.warn(`Fetch for ${url} failed with status: ${response.status}`); 1027 } 1028 return response; 1029 } 1030 } catch (error) { 1031 console.error('[AW] Fetch Wrapper Error:', error); 1032 } 1033 1034 return previousFetch.apply(this, args); 1035 }; 1036 1037 window.fetch.__AW__patched = true; 1038 } 1039 1040 function scheduleCartSync() { 1041 if (!__AW__cartReady) return; 1042 awCartQueue = awCartQueue 1043 .then(() => { 1044 if (!sessionStorage.getItem(pendingCartEventName)) snapshotCart(); 1045 return runCartSyncOnce(); 1046 }).catch(e => { 1047 console.error('[AW] scheduleCartSync error', e); 1048 }); 1049 } 1050 1051 async function runCartSyncOnce() { 1052 try { 1053 const response = await fetch(`${window.Shopify.routes.root || "/"}cart.js?adw=1`, { 1054 credentials: 'same-origin', 1055 headers: { 'Accept': 'application/json' } 1056 }); 1057 if (!response.ok) throw new Error('HTTP ' + response.status); 1058 const newCart = await response.json(); 1059 await compareCartData(newCart); 1060 } catch (error) { 1061 console.error('[AW] Error fetching /cart.js (singleton):', error); 1062 } 1063 } 1064 1065 function compareCartData(newCartData) { 1066 return new Promise((resolve) => { 1067 setTimeout(() => { 1068 try { 1069 const oldCartData = sessionStorage.getItem(pendingCartEventName) ? JSON.parse(sessionStorage.getItem(pendingCartEventName)) : {items: []}; 1070 newCartData = newCartData || {items: []}; 1071 const cartItemKey = item => `${item.variant_id ?? item.id}:${item.selling_plan_allocation?.selling_plan?.id ?? ''}`; 1072 const oldItems = new Map(oldCartData.items.map(item => [cartItemKey(item), item])); 1073 const newItems = new Map(newCartData.items.map(item => [cartItemKey(item), item])); 1074
1075 newItems.forEach((newItem, key) => { 1076 const oldItem = oldItems.get(key); 1077 const eventName = "add_to_cart"; 1078 if (!oldItem) { 1079 handleCartDataLayer(eventName, newItem.quantity, newItem); 1080 } else if (newItem.quantity > oldItem.quantity) { 1081 handleCartDataLayer(eventName, newItem.quantity - oldItem.quantity, newItem); 1082 } 1083 }); 1084 1085 oldItems.forEach((oldItem, key) => { 1086 const newItem = newItems.get(key); 1087 const eventName = "remove_from_cart"; 1088 if (!newItem) { 1089 handleCartDataLayer(eventName, oldItem.quantity, oldItem); 1090 } else if (oldItem.quantity > newItem.quantity) { 1091 handleCartDataLayer(eventName, oldItem.quantity - newItem.quantity, newItem); 1092 } 1093 }); 1094 1095 sessionStorage.removeItem(pendingCartEventName); 1096 window.__AW__slaveShopifyCart = newCartData; 1097 } catch(e) { 1098 console.error('[AW] compareCartData error', e); 1099 sessionStorage.removeItem(pendingCartEventName); 1100 } finally { 1101 resolve(); 1102 } 1103 }, 500); 1104 }); 1105 } 1106 1107 function handleCartDataLayer(eventName, quantity, item) { 1108 const price = (item.discounted_price ?? item.price) / 100; 1109 const discount = (item.price - (item.discounted_price ?? 0)) / 100; 1110 const totalValue = price * quantity; 1111 let coupon = ""; 1112 if(Array.isArray(item?.discounts)) { 1113 coupon = item.discounts 1114 .filter(discount => typeof discount?.title === 'string') 1115 .map(discount => discount.title) 1116 .join(', '); 1117 } 1118 1119 const ecommerceCart = { 1120 ecommerce: { 1121 currency: "USD", 1122 value: totalValue, 1123 items: [{ 1124 item_id: __AW__transformNumberToString(item.product_id), 1125 item_variant: item.variant_title || "Default Variant", 1126 item_variant_id: __AW__transformNumberToString(item.variant_id), 1127 item_variant_title: item.variant_title || "Default Variant", 1128 item_name: item.product_title, 1129 item_product_id: __AW__transformNumberToString(item.product_id), 1130 item_product_title: item.product_title, 1131 sku: __AW__transformNumberToString(item.sku), 1132 discount: discount, 1133 price: price, 1134 item_brand: item.vendor, 1135 item_category: item.product_type, 1136 quantity: quantity, 1137 coupon: coupon, 1138 url: item?.url, 1139 selling_plan_id : item?.selling_plan_allocation?.selling_plan?.id, 1140 selling_plan_name : item?.selling_plan_allocation?.selling_plan?.name 1141 }] 1142 } 1143 }; 1144 1145 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1146 window[__AW__settings.dataLayerVariableName].push({ 1147 ...{ 'event': __AW__getEventNameWithSuffix(eventName) }, 1148 ...ecommerceCart 1149 }); 1150 1151 } 1152 } 1153 1154 if (document.readyState === 'loading') { 1155 // document still loading... 1156 document.addEventListener('DOMContentLoaded', () => { 1157 pushDataLayerEvents(); 1158 }); 1159 } else { 1160 // already loaded, chocs away! 1161 pushDataLayerEvents(); 1162 } 1163 } 1164 }, 0); 1165</script>
1165 1166 1167 1168<!-- END app block --><!-- BEGIN app block: shopify://apps/reamaze-live-chat-helpdesk/blocks/reamaze-config/ef7a830c-d722-47c6-883b-11db06c95733 --> 1169 1170
1170<script type="text/javascript" async src="https://cdn.reamaze.com/assets/reamaze-loader.js"></script>
1170 1171 1172
1172<script type="text/javascript"> 1173 var _support = _support || { 'ui': {}, 'user': {} }; 1174 _support.account = 'naakbar'; 1175 </script>
1175 1176 1177 1178 1179 1180 <!-- reamaze_embeddable_31347_s --> 1181<!-- Embeddable - Näak Contact Form Embed -->
1182<script type="text/javascript"> 1183 var _support = _support || { 'ui': {}, 'user': {} }; 1184 _support['account'] = 'naakbar'; 1185 _support['contact_custom_fields'] = _support['contact_custom_fields'] || {}; 1186 _support['contact_custom_fields']['rmz_form_id_31347'] = { 1187 'Order #': { 1188 pos: 1641661414166, 1189 type: 'text', 1190 value: '', 1191 required: false, 1192 placeholder: '', 1193 }, 1194 'Topic': { 1195 pos: 1641661434456, 1196 type: 'dropdown', 1197 value: ['Product information','My online order','A quality issue','Something else'], 1198 required: true, 1199 placeholder: 'Select Topic', 1200 defaultValue: 'undefined', 1201 } 1202 }; 1203</script>
1203 1204<!-- reamaze_embeddable_31347_e --> 1205 1206 1207 1208 1209 1210 1211 1212<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225
1225<script async src="https://static.klaviyo.com/onsite/js/HU4W5n/klaviyo.js?company_id=HU4W5n"></script>
1225 1226
1226<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
1226 1227 1228 1229
1229<script id="viewed_product"> 1230 if (item == null) { 1231 var _learnq = _learnq || []; 1232 1233 var MetafieldReviews = null 1234 var MetafieldYotpoRating = null 1235 var MetafieldYotpoCount = null 1236 var MetafieldLooxRating = null 1237 var MetafieldLooxCount = null 1238 var okendoProduct = null 1239 var okendoProductReviewCount = null 1240 var okendoProductReviewAverageValue = null 1241 try { 1242 // The following fields are used for Customer Hub recently viewed in order to add reviews. 1243 // This information is not part of __kla_viewed. Instead, it is part of __kla_viewed_reviewed_items 1244 MetafieldReviews = {"rating":{"scale_min":"1.0","scale_max":"5.0","value":"5.0"},"rating_count":8}; 1245 MetafieldYotpoRating = null 1246 MetafieldYotpoCount = null 1247 MetafieldLooxRating = null 1248 MetafieldLooxCount = null 1249 1250 okendoProduct = null 1251 // If the okendo metafield is not legacy, it will error, which then requires the new json formatted data 1252 if (okendoProduct && 'error' in okendoProduct) { 1253 okendoProduct = null 1254 } 1255 okendoProductReviewCount = okendoProduct ? okendoProduct.reviewCount : null 1256 okendoProductReviewAverageValue = okendoProduct ? okendoProduct.reviewAverageValue : null 1257 } catch (error) { 1258 console.error('Error in Klaviyo onsite reviews tracking:', error); 1259 } 1260 1261 var item = { 1262 Name: "BOOST⢠Drink Mix 60 · Salted Cucumber · Bag", 1263 ProductID: 10099179225392, 1264 Categories: ["All","All â minus utmb aid station sample pack","Best sellers","Cycling","Hiking","Malen Osa's collection","New Arrivals","Pau Capell's collection","Proven favorites, for every athlete.","Road Running","Special Offer","Sylvia Norksdar's collection","Trail running"], 1265 ImageURL: "https://www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197_grande.jpg?v=1786395130", 1266 URL: "https://www.naak.com/products/boost-drink-mix-60-salted-cucumber-bag", 1267 Brand: "Näak", 1268 Price: "$48.00", 1269 Value: "48.00", 1270 CompareAtPrice: "$0.00" 1271 }; 1272 _learnq.push(['track', 'Viewed Product', item]); 1273 _learnq.push(['trackViewedItem', { 1274 Title: item.Name, 1275 ItemId: item.ProductID, 1276 Categories: item.Categories, 1277 ImageUrl: item.ImageURL, 1278 Url: item.URL, 1279 Metadata: { 1280 Brand: item.Brand, 1281 Price: item.Price, 1282 Value: item.Value, 1283 CompareAtPrice: item.CompareAtPrice 1284 }, 1285 metafields:{ 1286 reviews: MetafieldReviews, 1287 yotpo:{ 1288 rating: MetafieldYotpoRating, 1289 count: MetafieldYotpoCount, 1290 }, 1291 loox:{ 1292 rating: MetafieldLooxRating, 1293 count: MetafieldLooxCount, 1294 }, 1295 okendo: { 1296 rating: okendoProductReviewAverageValue, 1297 count: okendoProductReviewCount, 1298 } 1299 } 1300 }]); 1301 } 1302 </script>
1302 1303 1304 1305 1306 1307 1308
1308<script> 1309 window.klaviyoReviewsProductDesignMode = false 1310 </script>
1310 1311 1312 1313 1314 <!-- BEGIN app snippet: customer-hub-data -->
1314<script> 1315 if (!window.customerHub) { 1316 window.customerHub = {}; 1317 } 1318 window.customerHub.storefrontRoutes = { 1319 login: "https://www.naak.com/customer_authentication/redirect?locale=en®ion_country=US?return_url=%2F%23k-hub", 1320 register: "https://shopify.com/12429414/account?locale=en®ion_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuYWFrYmFyLm15c2hvcGlmeS5jb20iLCJmbGFncyI6W10sImV4cCI6MTc5MTY3OTcwMSwibmJmIjoxNzkxMDc0OTAxfQ.SHWPjZDj8LUGcVo3jaKUbM7_T6GacYSFGtg1hXXO7pc?return_url=%2F%23k-hub", 1321 logout: "/account/logout", 1322 profile: "/account", 1323 addresses: "/account/addresses", 1324 }; 1325 1326 window.customerHub.userId = null; 1327 1328 window.customerHub.storeDomain = "naakbar.myshopify.com"; 1329 1330 1331 window.customerHub.activeProduct = { 1332 name: "BOOST⢠Drink Mix 60 · Salted Cucumber · Bag", 1333 category: null, 1334 imageUrl: "https://www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197_grande.jpg?v=1786395130", 1335 id: "10099179225392", 1336 link: "https://www.naak.com/products/boost-drink-mix-60-salted-cucumber-bag", 1337 options: [ 1338 1339 { 1340 name: "Quantity", 1341 values: [ 1342 1343 1344 1345 { 1346 name: "1 bag - 15 servings", 1347 colorHex: null, 1348 swatchImageUrl: null 1349 } 1350 1351 ] 1352 } 1353 1354 ], 1355 variants: [ 1356 1357 { 1358 id: "50970992935216", 1359 selectedOptions: [ 1360 1361 1362 { 1363 name: "Quantity", 1364 value: "1 bag - 15 servings" 1365 } 1366 1367 ], 1368 1369 imageUrl: null, 1370 1371 price: "4800", 1372 currency: "CAD", 1373 availableForSale: true, 1374 title: "1 bag - 15 servings", 1375 }, 1376 1377 ], 1378 };
1379 window.customerHub.activeProduct.variants.forEach((variant) => { 1380 1381 variant.price = `${variant.price.slice(0, -2)}.${variant.price.slice(-2)}`; 1382 }); 1383 1384 1385 1386 window.customerHub.storeLocale = { 1387 currentLanguage: 'en', 1388 currentCountry: 'US', 1389 availableLanguages: [ 1390 1391 { 1392 iso_code: 'en', 1393 endonym_name: 'English' 1394 }, 1395 1396 { 1397 iso_code: 'fr', 1398 endonym_name: 'français' 1399 } 1400 1401 ], 1402 availableCountries: [ 1403 1404 { 1405 iso_code: 'CA', 1406 name: 'Canada', 1407 currency_code: 'CAD' 1408 }, 1409 1410 { 1411 iso_code: 'HK', 1412 name: 'Hong Kong SAR', 1413 currency_code: 'HKD' 1414 }, 1415 1416 { 1417 iso_code: 'ID', 1418 name: 'Indonesia', 1419 currency_code: 'IDR' 1420 }, 1421 1422 { 1423 iso_code: 'JP', 1424 name: 'Japan', 1425 currency_code: 'JPY' 1426 }, 1427 1428 { 1429 iso_code: 'NZ', 1430 name: 'New Zealand', 1431 currency_code: 'NZD' 1432 }, 1433 1434 { 1435 iso_code: 'RU', 1436 name: 'Russia', 1437 currency_code: 'CAD' 1438 }, 1439 1440 { 1441 iso_code: 'SG', 1442 name: 'Singapore', 1443 currency_code: 'SGD' 1444 }, 1445 1446 { 1447 iso_code: 'KR', 1448 name: 'South Korea', 1449 currency_code: 'KRW' 1450 }, 1451 1452 { 1453 iso_code: 'TH', 1454 name: 'Thailand', 1455 currency_code: 'THB' 1456 }, 1457 1458 { 1459 iso_code: 'US', 1460 name: 'United States', 1461 currency_code: 'USD' 1462 } 1463 1464 ] 1465 }; 1466 1467</script>
1467 1468<!-- END app snippet --> 1469 1470 1471 1472 1473 1474 1475 1476<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
1477<script type="text/javascript"> 1478 (function (c, l, a, r, i, t, y) { 1479 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 1480 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 1481 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 1482 1483 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 1484 if (error) { 1485 console.error("Error loading Shopify features:", error); 1486 return; 1487 } 1488 1489 c[a]('consentv2', { 1490 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 1491 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 1492 source: 101, 1493 }); 1494 }); 1495 1496 l.addEventListener("visitorConsentCollected", function (e) { 1497 c[a]('consentv2', { 1498 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 1499 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 1500 source: 101, 1501 }); 1502 }); 1503 })(window, document, "clarity", "script", "xxnoxwwyae"); 1504</script>
1504 1505 1506 1507 1508<!-- END app block --><link href="https://cdn.shopify.com/extensions/01a0e810-6f0e-75a7-af9e-8d71945888fc/loop-subscriptions-276/assets/loop_widget.css" rel="stylesheet" type="text/css" media="all"> 1509<link rel="canonical" href="https://www.naak.com/products/boost-drink-mix-60-salted-cucumber-bag"> 1510<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1511<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 12429414,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1511
1511
1512<script> 1513 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1514</script>
vendor: 1 bytes, line 1514
1514
1515<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
1515).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 12429414,storefrontBaseUrl: "https://www.naak.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.naak.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2778923312","configuration":"{\"pixel_id\":\"655069044656418\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2744713520","configuration":"{\"projectId\":\"xxnoxwwyae\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]}
1515,"dataSharingState":"unrestricted"},{"id":"2386034992","configuration":"{\"shop\":\"naakbar.myshopify.com\", \"shopliftUrl\":\"https:\/\/events.shoplift.ai\/api\/events\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"dabcda9558be25394b12ce3ce899568b","type":"APP","apiClientId":7521861633,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1782513968","configuration":"{\"accountID\":\"HU4W5n\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"1345028400","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"929333552","configuration":"{\"shopId\":\"22888\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e46595b10fdc5e1674d5c89a8c843bb3","type":"APP","apiClientId":5443297,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"844562736","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-DC8W65XN7F\\\",\\\"AW-17807573393\\\",\\\"GT-P3MHB9T\\\"],\\\"target_country\\\":\\\"CA\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-DC8W65XN7F\\\",\\\"AW-17807573393\\\/_3g8CKesjNQbEJGDqKtC\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-DC8W65XN7F\\\",\\\"AW-17807573393\\\/FnU4CMeMj9QbEJGDqKtC\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-DC8W65XN7F\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-DC8W65XN7F\\\",\\\"AW-17807573393\\\/zNywCMSMj9QbEJGDqKtC\\\",\\\"MC-Q47TQHNRL7\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-DC8W65XN7F\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-DC8W65XN7F\\\",\\\"AW-17807573393\\\/sqUACKSsjNQbEJGDqKtC\\\",\\\"MC-Q47TQHNRL7\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-DC8W65XN7F\\\",\\\"AW-17807573393\\\/YCXlCK2sjNQbEJGDqKtC\\\",\\\"MC-Q47TQHNRL7\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-DC8W65XN7F\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-DC8W65XN7F\\\",\\\"AW-17807573393\\\/NG8wCMqMj9QbEJGDqKtC\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-DC8W65XN7F\\\",\\\"AW-17807573393\\\/7blrCKqsjNQbEJGDqKtC\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-DC8W65XN7F\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]}
1515,{"id":"169607472","configuration":"{\"tagID\":\"2613742984271\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"130908464","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Heatmap pixel"},{"id":"192479536","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"addingwell-pixel"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Näak NA","paymentSettings":{"currencyCode":"CAD"},"myshopifyDomain":"naakbar.myshopify.com","countryCode":"CA","storefrontUrl":"https:\/\/www.naak.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":48.0,"currencyCode":"USD"},"product":{"title":"BOOST⢠Drink Mix 60 · Salted Cucumber · Bag","vendor":"Näak","id":"10099179225392","untranslatedTitle":"BOOST⢠Drink Mix 60 · Salted Cucumber · Bag","url":"\/products\/boost-drink-mix-60-salted-cucumber-bag","type":"Drink Mixes"},"id":"50970992935216","image":{"src":"\/\/www.naak.com\/cdn\/shop\/files\/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130"},"sku":"BE-DM-CU-BG-01-CA","title":"1 bag - 15 servings","untranslatedTitle":"1 bag - 15 servings"}],"products":[{"id":"10099179225392","handle":"boost-drink-mix-60-salted-cucumber-bag","isCollective":null,"title":"BOOST⢠Drink Mix 60 · Salted Cucumber · Bag","type":"Drink Mixes","untranslatedTitle":"BOOST⢠Drink Mix 60 · Salted Cucumber · Bag","url":"\/products\/boost-drink-mix-60-salted-cucumber-bag","vendor":"Näak","remoteShopId":null,"variants":[{"id":"50970992935216","image":{"src":"\/\/www.naak.com\/cdn\/shop\/files\/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130"},"price":{"amount":48.0,"currencyCode":"USD"},"sku":"BE-DM-CU-BG-01-CA","title":"1 bag - 15 servings","untranslatedTitle":"1 bag - 15 servings"}]},{"id":"10095776137520","handle":"boost-gel-30-neutral","isCollective":null,"title":"BOOST⢠Gel 30 · Neutral","type":"Gels","untranslatedTitle":"BOOST⢠Gel 30 · Neutral","url":"\/products\/boost-gel-30-neutral","vendor":"Näak","remoteShopId":null,"variants":[{"id":"50829705871664","image":{"src":"\/\/www.naak.com\/cdn\/shop\/files\/naak-na-gel-boost-gel-30-neutral-1253784193.jpg?v=1786395369"},"price":{"amount":4.0,"currencyCode":"USD"},"sku":"BE-GL-NE-UN-V2-CA","title":"x1","untranslatedTitle":"x1"}]},{"id":"9763368075568","handle":"boost-drink-mix-60-neutral-bag","isCollective":null,"title":"BOOST⢠Drink Mix 60 · Neutral · Bag","type":"Drink mixes","untranslatedTitle":"BOOST⢠Drink Mix 60 · Neutral · Bag","url":"\/products\/boost-drink-mix-60-neutral-bag","vendor":"Näak","remoteShopId":null,"variants":[{"id":"49589358625072","image":{"src":"\/\/www.naak.com\/cdn\/shop\/files\/naak-drink-mixes-1-bag-15-servings-boost-drink-mix-60-neutral-bag-1253784187.jpg?v=1786395670"},"price":{"amount":48.0,"currencyCode":"USD"},"sku":"BE-DM-NE-BG-01-CA","title":"1 Bag - $3.20 \/ Serving","untranslatedTitle":"1 bag - 15 servings"}]},{"id":"15137969996080","handle":"boost-drink-mix-60-pomegranate-berries-bag","isCollective":null,"title":"BOOST⢠Drink Mix 60 · Pomegranate Berries · Bag","type":"Drink mixes","untranslatedTitle":"BOOST⢠Drink Mix 60 · Pomegranate Berries · Bag","url":"\/products\/boost-drink-m
1515ix-60-pomegranate-berries-bag","vendor":"Näak","remoteShopId":null,"variants":[{"id":"66999415079216","image":{"src":"\/\/www.naak.com\/cdn\/shop\/files\/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-pomegranate-berries-bag-1253784205.jpg?v=1786394588"},"price":{"amount":48.0,"currencyCode":"USD"},"sku":"BE-DM-GR-BG-01-CA","title":"1 bag - 15 servings","untranslatedTitle":"1 bag - 15 servings"}]},{"id":"10105197035824","handle":"naak-boost-drink-mix-60-variety-pack","isCollective":null,"title":"Boost⢠Drink Mix 60 · Variety Pack","type":"Drink mixes","untranslatedTitle":"Boost⢠Drink Mix 60 · Variety Pack","url":"\/products\/naak-boost-drink-mix-60-variety-pack","vendor":"Näak","remoteShopId":null,"variants":[{"id":"51095523393840","image":{"src":"\/\/www.naak.com\/cdn\/shop\/files\/naak-na-pack-boost-drink-mixes-variety-pack-1252656940.jpg?v=1785782289"},"price":{"amount":68.0,"currencyCode":"USD"},"sku":null,"title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10099180536112","handle":"boost-drink-mix-60-salted-cucumber-single-serve","isCollective":null,"title":"BOOST⢠Drink Mix 60 · Salted Cucumber · Single Serve","type":"Drink mixes","untranslatedTitle":"BOOST⢠Drink Mix 60 · Salted Cucumber · Single Serve","url":"\/products\/boost-drink-mix-60-salted-cucumber-single-serve","vendor":"Näak","remoteShopId":null,"variants":[{"id":"50971026522416","image":{"src":"\/\/www.naak.com\/cdn\/shop\/files\/naak-na-drink-mixes-boost-drink-mix-60-salted-cucumber-single-serve-1253784198.jpg?v=1786395069"},"price":{"amount":4.0,"currencyCode":"USD"},"sku":"BE-DM-CU-SU-01-CA","title":"x1","untranslatedTitle":"x1"}]},{"id":"15307766071600","handle":"2x-free-purees","isCollective":null,"title":"2x Free ULTRA⢠Purees","type":"Purees","untranslatedTitle":"2x Free ULTRA⢠Purees","url":"\/products\/2x-free-purees","vendor":"Näak","remoteShopId":null,"variants":[{"id":"67853263077680","image":{"src":"\/\/www.naak.com\/cdn\/shop\/files\/naak-purees-2x-free-ultra-purees-1260038316.jpg?v=1790396950"},"price":{"amount":7.0,"currencyCode":"USD"},"sku":null,"title":"Default Title","untranslatedTitle":"Default Title"}]}],"purchasingCompany":null},},"https://www.naak.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"186884456752","themePublished":"true","eventMetadataId":"73ef5700-e3a3-4462-b6f2-1b1b51a34a8d","pageType":"product","resourceId":"10099179225392","shopId":"12429414","storefrontBaseUrl":"https:\/\/www.naak.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":48.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"BOOST⢠Drink Mix 60 · Salted Cucumber · Bag\",\"vendor\":\"Näak\",\"id\":\"10099179225392\",\"untranslatedTitle\":\"BOOST⢠Drink Mix 60 · Salted Cucumber · Bag\",\"url\":\"\/products\/boost-drink-mix-60-salted-cucumber-bag\",\"type\":\"Drink Mixes\"},\"id\":\"50970992935216\",\"image\":{\"src\":\"\/\/www.naak.com\/cdn\/shop\/files\/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130\"},\"sku\":\"BE-DM-CU-BG-01-CA\",\"title\":\"1 bag - 15 servings\",\"untranslatedTitle\":\"1 bag - 15 servings\"}}]]"});})();</script>
1515<script> 1516 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1517 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1518 window.ShopifyAnalytics.meta.currency = 'USD'; 1519 var meta = {"product":{"id":10099179225392,"gid":"gid:\/\/shopify\/Product\/10099179225392","vendor":"Näak","type":"Drink Mixes","handle":"boost-drink-mix-60-salted-cucumber-bag","variants":[{"id":50970992935216,"price":4800,"name":"BOOST⢠Drink Mix 60 · Salted Cucumber · Bag - 1 bag - 15 servings","public_title":"1 bag - 15 servings","sku":"BE-DM-CU-BG-01-CA"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":10099179225392,"requestId":"facdffff-2280-452f-8d2c-3baf856a8eee-1791074901"}}; 1520 for (var attr in meta) { 1521 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1522 } 1523</script>
vendor: 1 bytes, line 1523
1523
1524<script class="analytics"> 1525 (function () { 1526 var customDocumentWrite = function(content) { 1527 var jquery = null; 1528 1529 if (window.jQuery) { 1530 jquery = window.jQuery; 1531 } else if (window.Checkout && window.Checkout.$) { 1532 jquery = window.Checkout.$; 1533 } 1534 1535 if (jquery) { 1536 jquery('body').append(content); 1537 } 1538 }; 1539 1540 var hasLoggedConversion = function(token) { 1541 if (token) { 1542 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1543 } 1544 return false; 1545 } 1546 1547 var setCookieIfConversion = function(token) { 1548 if (token) { 1549 var twoMonthsFromNow = new Date(Date.now()); 1550 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1551 1552 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1553 } 1554 } 1555 1556 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1557 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1558 if (trekkie.integrations) { 1559 return; 1560 } 1561 trekkie.methods = [ 1562 'identify', 1563 'page', 1564 'ready', 1565 'track', 1566 'trackForm', 1567 'trackLink' 1568 ]; 1569 trekkie.factory = function(method) { 1570 return function() { 1571 var args = Array.prototype.slice.call(arguments); 1572 args.unshift(method); 1573 trekkie.push(args); 1574 if (method == 'track' || method == 'page') { 1575 var pageUrl; 1576 try { 1577 pageUrl = window.location.href; 1578 } catch (e) {} 1579 var pageReferrer; 1580 try { 1581 pageReferrer = document.referrer; 1582 } catch (e) {} 1583 try { 1584 if (window.__TREKKIE_SHIM_QUEUE == null) { 1585 window.__TREKKIE_SHIM_QUEUE = []; 1586 } 1587 window.__TREKKIE_SHIM_QUEUE.push({ 1588 from: 'trekkie-stub', 1589 method: method, 1590 args: args.slice(1), 1591 pageContext: { 1592 url: pageUrl, 1593 referrer: pageReferrer 1594 } 1595 }); 1596 } catch (e) { 1597 // no-op 1598 } 1599 } 1600 return trekkie; 1601 }; 1602 }; 1603 for (var i = 0; i < trekkie.methods.length; i++) { 1604 var key = trekkie.methods[i]; 1605 trekkie[key] = trekkie.factory(key); 1606 } 1607 trekkie.load = function(config) { 1608 trekkie.config = config || {}; 1609 trekkie.config.initialDocumentCookie = document.cookie; 1610 var first = document.getElementsByTagName('script')[0]; 1611var script = document.createElement('script'); 1612script.type = 'text/javascript'; 1613script.onerror = function(e) { 1614 var scriptFallback = document.createElement('script'); 1615 scriptFallback.type = 'text/javascript'; 1616 scriptFallback.onerror = function(error) { 1617 var Monorail = { 1618 produce: function produce(monorailDomain, schemaId, payload) { 1619 var currentMs = new Date().getTime(); 1620 var event = { 1621 schema_id: schemaId, 1622 payload: payload, 1623 metadata: { 1624 event_created_at_ms: currentMs, 1625 event_sent_at_ms: currentMs 1626 } 1627 }; 1628 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1629 }, 1630 sendRequest: function sendRequest(endpointUrl, payload) { 1631 // Try the sendBeacon API 1632 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1633 var blobData = new window.Blob([payload], { 1634 type: 'text/plain' 1635 }); 1636 1637 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1638 return true; 1639 } // sendBeacon was not successful 1640 1641 } // XHR beacon 1642 1643 var xhr = new XMLHttpRequest(); 1644 1645 try { 1646 xhr.open('POST', endpointUrl); 1647 xhr.setRequestHeader('Content-Type', 'text/plain'); 1648 xhr.send(payload); 1649 } catch (e) { 1650 console.log(e); 1651 } 1652 1653 return false; 1654 }, 1655 isIos12: function isIos12() { 1656 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1657 } 1658 }; 1659 Monorail.produce('monorail-edge.shopifysvc.com', 1660 'trekkie_storefront_load_errors/1.1', 1661 {shop_id: 12429414, 1662 theme_id: 186884456752, 1663 app_name: "storefront", 1664 context_url: window.location.href, 1665 source_url: "//www.naak.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1666 1667 }; 1668 scriptFallback.async = true; 1669 scriptFallback.src = '//www.naak.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1670 first.parentNode.insertBefore(scriptFallback, first); 1671}; 1672script.async = true; 1673script.src = '//www.naak.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1674first.parentNode.insertBefore(script, first); 1675 1676 }; 1677 trekkie.load( 1678 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":12429414,"isMerchantRequest":null,"themeId":186884456752,"themeCityHash":"3492907534576220399","contentLanguage":"en","currency":"USD","eventMetadataId":"73ef5700-e3a3-4462-b6f2-1b1b51a34a8d"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1679 ); 1680 1681 var loaded = false;
1682 trekkie.ready(function() { 1683 if (loaded) return; 1684 loaded = true; 1685 1686 window.ShopifyAnalytics.lib = window.trekkie; 1687 1688 var originalDocumentWrite = document.write; 1689 document.write = customDocumentWrite; 1690 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1691 document.write = originalDocumentWrite; 1692 1693 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1694 var token = match? match[1]: undefined; 1695 if (!hasLoggedConversion(token)) { 1696 setCookieIfConversion(token); 1697 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"USD","variantId":50970992935216,"productId":10099179225392,"productGid":"gid:\/\/shopify\/Product\/10099179225392","name":"BOOST⢠Drink Mix 60 · Salted Cucumber · Bag - 1 bag - 15 servings","price":"48.00","sku":"BE-DM-CU-BG-01-CA","brand":"Näak","variant":"1 bag - 15 servings","category":"Drink Mixes","nonInteraction":true,"remote":false,"available":true},undefined,undefined,{"shopifyEmitted":true}); 1698 } 1699 }); 1700 1701 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":10099179225392,"requestId":"facdffff-2280-452f-8d2c-3baf856a8eee-1791074901","shopifyEmitted":true}); 1702 1703 var eventsListenerScript = document.createElement('script'); 1704 eventsListenerScript.async = true; 1705 eventsListenerScript.src = "//www.naak.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1706 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1707})();</script>
1707 1708
1708<script> 1709 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 1710 window.ga = function ga() { 1711 (window.ga.q = window.ga.q || []).push(arguments); 1712 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1713 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 1714 } 1715 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 1716 }; 1717 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1718 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 1719 } 1720 } 1721</script>
vendor: 1 bytes, line 1721
1721
1722<script 1723 defer 1724 src="https://www.naak.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1725 data-application="storefront-renderer" 1726 data-shop-id="12429414" 1727 data-render-region="gcp-us-central1" 1728 data-page-type="product" 1729 data-theme-instance-id="186884456752" 1730 data-theme-name="Shopify Boilerplate V2" 1731 data-theme-version="2.0.0" 1732 data-monorail-region="shop_domain" 1733 data-resource-timing-sampling-rate="10" 1734 data-shs="true" 1735 data-shs-beacon="true" 1736 data-shs-export-with-fetch="true" 1737 data-shs-logs-sample-rate="1" 1738 data-shs-beacon-endpoint="https://www.naak.com/api/collect" 1739></script>
1739 1740<meta name="shopify-y" content="00000000-0000-0000-5000-000000000000" data-expiration="1822632501000"><meta name="shopify-s" content="00000000-0000-0000-5000-000000000000" data-expiration="1791076701000"><meta name="new-cookie-storage-activated" content="t"> 1741</head> 1742 1743
1743<script src="//www.naak.com/cdn/shop/t/335/assets/loop_bundle.js?v=22391738680670039401785855395"></script>
1743 1744 <body 1745 x-data=" 1746 { 1747 openDrawer: (() => { 1748 try { 1749 return new URL(location.href).searchParams.get('cartDrawer') === 'open' ? 'cart' : null; 1750 } catch (_) { 1751 return null; 1752 } 1753 })(), 1754 productInfoPanel: 'ingredients', 1755 megaMenuIds: ['shop', 'explore'], 1756 megaMenuTab: 'shop', 1757 isMegaMenuOpen(id) { 1758 return id ? this.openDrawer === id : this.megaMenuIds.includes(this.openDrawer); 1759 }, 1760 isCartOpen() { return this.openDrawer === 'cart'; }, 1761 isFacetsOpen() { return this.openDrawer === 'facets'; }, 1762 isSearchOpen() { return this.openDrawer === 'search'; }, 1763 isLocaleOpen() { return this.openDrawer === 'locale'; }, 1764 openMegaMenu(id) { 1765 this.megaMenuTab = id; 1766 this.openDrawer = id; 1767 }, 1768 toggleMegaMenu(id) { 1769 if (this.isMegaMenuOpen() && this.megaMenuTab === id) { 1770 this.closeDrawers(); 1771 } else { 1772 this.megaMenuTab = id; 1773 this.openDrawer = id; 1774 } 1775 }, 1776 openCart() { this.openDrawer = 'cart'; }, 1777 openLocale() { 1778 this.openDrawer = 'locale'; 1779 window.dispatchEvent(new CustomEvent('boilerplate:locale-drawer:open')); 1780 }, 1781 openFacets() { 1782 this.openDrawer = 'facets'; 1783 window.dispatchEvent(new CustomEvent('boilerplate:collection-facets:sync', { detail: { open: true } })); 1784 }, 1785 closeDrawers() { 1786 if (this.openDrawer === 'facets') { 1787 window.dispatchEvent(new CustomEvent('boilerplate:collection-facets:sync', { detail: { open: false } })); 1788 } 1789 if (this.openDrawer === 'search') { 1790 window.dispatchEvent(new CustomEvent('boilerplate:search-drawer:close')); 1791 } 1792 this.openDrawer = null; 1793 }, 1794 openProductDrawer(id, panel) { 1795 if (id === 'product-reviews') { 1796 this.productInfoPanel = 'reviews'; 1797 this.openDrawer = 'product-details'; 1798 window.dispatchEvent(new CustomEvent('boilerplate:product-drawer-reviews:open')); 1799 return; 1800 } 1801 if (id === 'product-info') { 1802 if (panel) this.productInfoPanel = panel; 1803 this.openDrawer = 'product-details'; 1804 if (panel === 'reviews') { 1805 window.dispatchEvent(new CustomEvent('boilerplate:product-drawer-reviews:open')); 1806 } 1807 return; 1808 } 1809 if (id === 'product-flavor') { 1810 window.dispatchEvent(new CustomEvent('boilerplate:product-flavor-drawer:open')); 1811 } 1812 if (panel) this.productInfoPanel = panel; 1813 this.openDrawer = id; 1814 if (panel === 'reviews') { 1815 window.dispatchEvent(new CustomEvent('boilerplate:product-drawer-reviews:open')); 1816 } 1817 }, 1818 openSearch() { this.openDrawer = 'search'; }, 1819 toggleSearch() { 1820 if (this.openDrawer === 'search') { 1821 this.closeDrawers(); 1822 } else { 1823 this.openSearch(); 1824 window.dispatchEvent(new CustomEvent('boilerplate:search-drawer:open')); 1825 } 1826 }, 1827 toggleCart() { 1828 if (this.openDrawer === 'cart') { 1829 this.closeDrawers(); 1830 } else { 1831 window.dispatchEvent(new CustomEvent('boilerplate:cart-drawer:open')); 1832 } 1833 } 1834 } 1835 " 1836 @boilerplate:cart-drawer:open.window="openCart()" 1837 @boilerplate:cart-drawer:close.window="closeDrawers()" 1838 @boilerplate:locale-drawer:open.window="openDrawer = 'locale'" 1839 @boilerplate:search-drawer:open.window="openSearch()" 1840 @boilerplate:collection-facets:open.window="openFacets()" 1841 @boilerplate:collection-facets:close.window="closeDrawers()" 1842 class="relative min-h-lvh bg-white text-black template-product" 1843 :class="openDrawer ? 'overflow-hidden' : ''" 1844 > 1845
1845<script> 1846 window.boilerplateStrings = { 1847 product: { 1848 addToCart: "Add to cart", 1849 soldOut: "Sold out" 1850 } 1851 }; 1852 </script>
1852 1853 1854 <a class="sr-only focus:not-sr-only" href="#MainContent">Skip to content</a> 1855 1856 <!-- BEGIN sections: header-group --> 1857<div id="shopify-section-sections--27256355291440__announcement" class="shopify-section shopify-section-group-header-group announcement-bar-section"> 1858 1859 1860 1861 1862 1863 <div 1864 class="announcement-bar announcement-bar--reserving announcement-bar--primary " 1865 1866 > 1867 <div class="announcement-bar__inner"> 1868 <div class="announcement-bar__layout"> 1869 <div class="announcement-bar__spacer" aria-hidden="true"></div> 1870 1871 <div class="announcement-bar__message"> 1872 1873 1874 1875<div 1876 class="announcement-ticker announcement-bar__swiper w-full" 1877 data-announcement-bar 1878 data-autoplay="true" 1879 data-autoplay-speed="5000" 1880 data-loop="true" 1881 role="region" 1882 aria-label="Announcement bar" 1883 aria-roledescription="carousel" 1884 tabindex="0" 1885> 1886 <div class="announcement-ticker__track" data-announcement-track> 1887 1888 1889<div 1890 class="announcement-ticker__slide announcement-bar__slide flex h-full w-full items-center justify-center gap-[var(--announcement-gap)] text-center " 1891 style="--announcement-gap: 10px;" 1892 1893 1894> 1895 1896 1897<div 1898 class="product-text-block text-sm text-black/60" 1899 style="margin-top: 0px; margin-bottom: 0px;" 1900 1901> 1902 1903 <div class="rte"><p><strong>15% off subscriptions for members.</strong> <a href="/pages/membership-program" title="membership-program"><span style="text-decoration:underline">Join Now</span></a></p></div> 1904 1905</div> 1906 1907 1908 1909</div> 1910 1911 1912 1913<div 1914 class="announcement-ticker__slide announcement-bar__slide flex h-full w-full items-center justify-center gap-[var(--announcement-gap)] text-center " 1915 style="--announcement-gap: 10px; display: none;" 1916 data-announcement-slide-hidden 1917 1918> 1919 1920 1921<div 1922 class="product-text-block text-sm text-black/60" 1923 style="margin-top: 0px; margin-bottom: 0px;" 1924 1925> 1926 1927 <div class="rte"><p>New BOOST⢠Drink Mix Flavour. <a href="/products/boost-drink-mix-60-salted-cucumber-bag" title="BOOST⢠Drink Mix 60 · Salted Cucumber · Bag">Shop Now</a></p></div> 1928 1929</div> 1930 1931 1932 1933</div> 1934 1935 1936 1937<div 1938 class="announcement-ticker__slide announcement-bar__slide flex h-full w-full items-center justify-center gap-[var(--announcement-gap)] text-center " 1939 style="--announcement-gap: 10px; display: none;" 1940 data-announcement-slide-hidden 1941 1942> 1943 1944 1945<div 1946 class="product-text-block text-sm text-black/60" 1947 style="margin-top: 0px; margin-bottom: 8px;" 1948 1949> 1950 1951 <div class="rte"><p>Which product is right for you? <a href="/pages/take-the-quiz" title="Which product is right for you?">Take the quiz</a></p></div> 1952 1953</div> 1954 1955 1956 1957</div> 1958 1959 1960 1961 1962 </div> 1963</div> 1964 1965 1966 </div> 1967 1968 1969 <aside class="announcement-bar__aside max-lg:hidden"> 1970 <a href="/pages/store-locator" class="header__badge"> 1971 Find a store 1972 </a> 1973 1974 1975<button 1976 type="button" 1977 class="announcement-bar__locale " 1978 aria-label="Choose a region" 1979 aria-haspopup="dialog" 1980 @click="openLocale()" 1981> 1982 <span class="announcement-bar__locale-link"> 1983 <span>EN</span> 1984 <span 1985 class="announcement-bar__locale-separator" 1986 aria-hidden="true" 1987 >/</span> 1988 <span>$</span> 1989 </span> 1990</button> 1991 1992 </aside> 1993 1994 </div> 1995 </div> 1996 </div> 1997 1998 1999 2000</div><div id="shopify-section-sections--27256355291440__header" class="shopify-section shopify-section-group-header-group section-header"><header 2001 id="HeaderSection-sections--27256355291440__header" 2002 class="header header--product" 2003 2004 x-data=" 2005 { 2006 scrolled: false, 2007 scrollThreshold() { 2008 const bar = document.querySelector('.announcement-bar-section'); 2009 return (bar?.offsetHeight ?? 0) + 1; 2010 } 2011 } 2012 " 2013 x-init="scrolled = window.scrollY > scrollThreshold()" 2014 @scroll.window.passive="scrolled = window.scrollY > scrollThreshold()" 2015 :class="{ 'is-scrolled': scrolled }" 2016 aria-label="Näak NA" 2017> 2018 <div class="header__inner"><nav class="header__nav" aria-label="Main navigation"><button 2019 type="button" 2020 class="header__nav-link btn-link btn-link--s" 2021 data-mega-trigger="shop" 2022 :aria-expanded="isMegaMenuOpen('shop') ? 'true' : 'false'" 2023 aria-controls="MegaMenu-shop" 2024 @click.prevent="toggleMegaMenu('shop')" 2025 > 2026 Shop 2027 </button><button 2028 type="button" 2029 class="header__nav-link btn-link btn-link--s" 2030 data-mega-trigger="explore" 2031 :aria-expanded="isMegaMenuOpen('explore') ? 'true' : 'false'" 2032 aria-controls="MegaMenu-explore" 2033 @click.prevent="toggleMegaMenu('explore')" 2034 > 2035 Explore 2036 </button><a 2037 href="/pages/utmb-world-series" 2038 class="header__nav-lin btn-link btn-link--s max-lg:hidden" 2039 2040 > 2041 UTMB® World Series 2042 </a><a href="/pages/nutrition-calculator" class="header__badge max-lg:hidden"> 2043 Nutrition Calculator 2044 </a></nav><a href="/" class="header__logo" aria-label="Näak NA"><svg 2045 id="logo-header" 2046 class="" 2047 width="106" height="82" 2048 viewBox="0 0 106 82" 2049 fill="none" 2050 xmlns="http://www.w3.org/2000/svg" 2051 aria-hidden="true" 2052> 2053 <path d="M65.7688 56.8501C61.9819 56.8501 59.5891 59.8186 59.5891 63.3584C59.5891 66.8982 62.0177 69.831 65.7688 69.831C69.4842 69.831 71.9854 66.8625 71.9854 63.3226C71.9854 59.8186 69.4842 56.8501 65.7688 56.8501Z" fill="currentColor"/> 2054 <path d="M93.8836 49.4639H94.4119C94.6778 49.4639 94.8688 49.6495 94.8688 49.91C94.8688 50.1135 94.7538 50.2633 94.5672 50.3225L94.8867 50.8615H94.6488L94.365 50.3516H94.0869V50.8615H93.8836V49.4639ZM94.3416 51.3378C94.9738 51.3378 95.5011 50.8156 95.5011 50.1772C95.5011 49.5388 94.9738 49.0166 94.3416 49.0166C93.7104 49.0166 93.182 49.5388 93.182 50.1772C93.182 50.8156 93.7104 51.3378 94.3416 51.3378Z" fill="currentColor"/> 2055 <path d="M94.6726 49.9102C94.6726 49.7414 94.5743 49.6374 94.3643 49.6374H94.0861V50.1774H94.3475C94.562 50.1774 94.6726 50.079 94.6726 49.9102Z" fill="currentColor"/> 2056 <path d="M43.5117 56.8508C39.7248 56.8508 37.332 59.8193 37.332 63.3591C37.332 66.8978 39.7606 69.8305 43.5117 69.8305C47.2271 69.8305 49.7283 66.862 49.7283 63.3222C49.7283 59.8193 47.2271 56.8508 43.5117 56.8508Z" fill="currentColor"/> 2057 <path d="M90.9495 72.9768L84.0192 64.2167L82.3402 65.754V72.9768H78.4103V51.745
20577L82.3402 48.9415V61.1409L90.4491 53.7045H95.6301L86.7705 61.7133L96.0233 72.9768H90.9495ZM75.5941 72.9768H71.8061V70.3314C70.2355 72.1908 68.0549 73.4419 65.2332 73.4419C59.6601 73.4419 55.624 68.973 55.624 63.216C55.624 57.459 59.6958 53.2394 65.2332 53.2394C68.0549 53.2394 70.2355 54.5263 71.8061 56.3857L75.5941 53.7045V72.9768ZM94.3421 48.7962C95.1017 48.7962 95.7206 49.4223 95.7206 50.1826C95.7206 50.9429 95.1017 51.5578 94.3421 51.5578C93.5825 51.5578 92.9614 50.9317 92.9614 50.1714C92.9614 49.4111 93.5825 48.7962 94.3421 48.7962ZM53.3362 72.9768H49.5493V70.3303C47.9776 72.1897 45.7982 73.4419 42.9764 73.4419C37.4033 73.4419 33.3661 68.9719 33.3661 63.2149C33.3661 57.4579 37.439 53.2383 42.9764 53.2383C45.7982 53.2383 47.9776 54.5263 49.5493 56.3857L53.3362 53.7034V72.9768ZM31.0974 72.9768H27.1306V62.3573C27.1306 58.7459 25.2014 56.8508 22.5226 56.8508C19.5568 56.8508 17.4857 59.1384 17.4857 62.4289V72.9768H13.5558V53.7045L17.4142 56.4215C18.5212 54.4548 20.7364 53.2036 23.5235 53.2036C27.4534 53.2036 31.0974 55.7774 31.0974 61.2482V72.9768ZM40.2608 45.6577C41.7253 45.6577 42.8681 46.7669 42.8681 48.2327C42.8681 49.77 41.7253 50.8792 40.2608 50.8792C38.7605 50.8792 37.6178 49.77 37.6178 48.2327C37.6178 46.7669 38.7605 45.6577 40.2608 45.6577ZM47.5844 45.6577C49.0131 45.6577 50.1559 46.7669 50.1559 48.2327C50.1559 49.77 49.0131 50.8792 47.5844 50.8792C46.0841 50.8792 44.9402 49.77 44.9402 48.2327C44.9402 46.7669 46.0841 45.6577 47.5844 45.6577ZM97.3415 0L87.6139 9.14026L81.3527 6.72076L64.1608 18.0838L58.8703 16.7611L53.439 24.4613L43.4813 21.7443L25.0014 35.9909L15.4224 35.7874L0 55.2654V81.2986H106V16.1439L97.3415 0Z" fill="currentColor"/> 2058</svg> 2059</a><div class="header__actions"><button 2060 type="button" 2061 class="header__search-pill max-lg:hidden" 2062 aria-label="Search" 2063 aria-controls="search-drawer" 2064 :aria-expanded="isSearchOpen() ? 'true' : 'false'" 2065 @click="toggleSearch()" 2066 ><svg 2067 class="" 2068 aria-hidden="true" 2069 width="20" 2070 height="20" 2071 viewBox="0 0 20 20" 2072 fill="none" 2073 xmlns="http://www.w3.org/2000/svg" 2074 > 2075 <path d="M8.75 15C12.2018 15 15 12.2018 15 8.75C15 5.29822 12.2018 2.5 8.75 2.5C5.29822 2.5 2.5 5.29822 2.5 8.75C2.5 12.2018 5.29822 15 8.75 15Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 2076 <path d="M13.1694 13.1694L17.4999 17.4999" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 2077 </svg><span class="header__search-label">Search</span> 2078 </button> 2079 2080 <button 2081 type="button" 2082 class="header__search-mobile md:hidden" 2083 aria-label="Search" 2084 aria-controls="search-drawer" 2085 :aria-expanded="isSearchOpen() ? 'true' : 'false'" 2086 @click="toggleSearch()" 2087 ><svg 2088 class="" 2089 aria-hidden="true" 2090 width="20" 2091 height="20" 2092 viewBox="0 0 20 20" 2093 fill="none" 2094 xmlns="http://www.w3.org/2000/svg" 2095 > 2096 <path d="M8.75 15C12.2018 15 15 12.2018 15 8.75C15 5.29822 12.2018 2.5 8.75 2.5C5.29822 2.5 2.5 5.29822 2.5 8.75C2.5 12.2018 5.29822 15 8.75 15Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 2097 <path d="M13.1694 13.1694L17.4999 17.4999" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 2098 </svg></button><div class="header__icon-group"><a 2099 href="https://www.naak.com/customer_authentication/redirect?locale=en®ion_country=US" 2100 class="header__account btn-link btn-link--s max-lg:hidden" 2101 rel="nofollow" 2102 > 2103 Account 2104 </a><button 2105 type="button" 2106 class="header__icon-btn js-cart-open" 2107 aria-label="Cart" 2108 aria-controls="cart-drawer" 2109 :aria-expanded="isCartOpen() ? 'true' : 'false'" 2110 @click="toggleCart()" 2111 ><svg 2112 class="" 2113 aria-hidden="true" 2114 width="20" 2115 height="20" 2116 viewBox="0 0 16 16" 2117 fill="none" 2118 xmlns="http://www.w3.org/2000/svg" 2119 > 2120 <path d="M12.7 4.6001H3.3C3.02386 4.6001 2.8 4.82396 2.8 5.1001L2 13.3001C2 13.5762 2.22386 13.8001 2.5 13.8001H13.5C13.7761 13.8001 14 13.5762 14 13.3001L13.2 5.1001C13.2 4.82396 12.9761 4.6001 12.7 4.6001Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 2121 <path d="M10.5 6.7998L10.5 4.0998C10.5 3.43676 10.2366 2.80088 9.76777 2.33204C9.29893 1.8632 8.66304 1.5998 8 1.5998C7.33696 1.5998 6.70107 1.8632 6.23223 2.33204C5.76339 2.80088 5.5 3.43676 5.5 4.0998L5.5 6.7998" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 2122 <circle 2123 data-cart-dot 2124 cx="12.8001" 2125 cy="12.8001" 2126 r="3.2" 2127 fill="#FFF200"style="display:none"/> 2128 </svg></button> 2129 </div> 2130 </div> 2131 </div> 2132</header> 2133 2134 2135</div><section id="shopify-section-sections--27256355291440__mega-menu" class="shopify-section shopify-section-group-header-group mega-menu-section"><div 2136 id="MegaMenu" 2137 class="mega-menu" 2138 :class="{ 'pointer-events-none': !isMegaMenuOpen() }" 2139 role="dialog" 2140 aria-modal="true" 2141 aria-label="Main menu" 2142 x-show="isMegaMenuOpen()" 2143 @keydown.escape.window="isMegaMenuOpen() && closeDrawers()" 2144 style="display: none;" 2145> 2146 <button 2147 type="button" 2148 class="mega-menu__backdrop max-lg:hidden" 2149 aria-label="Close" 2150 x-show="isMegaMenuOpen()" 2151 x-transition:enter="transition-opacity ease-out duration-300" 2152 x-transition:enter-start="opacity-0" 2153 x-transition:enter-end="opacity-100" 2154 x-transition:leave="transition-opacity ease-in duration-300" 2155 x-transition:leave-start="opacity-100" 2156 x-transition:leave-end="opacity-0" 2157 @click="closeDrawers()" 2158 ></button> 2159 2160 <div 2161 class="mega-menu__drawer" 2162 x-show="isMegaMenuOpen()" 2163 x-transition:enter="transform transition ease-out duration-300" 2164 x-transition:enter-start="-translate-x-full" 2165 x-transition:enter-end="translate-x-0" 2166 x-transition:leave="transform transition ease-in duration-300" 2167 x-transition:leave-start="translate-x-0" 2168 x-transition:leave-end="-translate-x-full" 2169 > 2170 <div class="mega-menu__shell"><div class="mega-menu__tabs"> 2171 <div class="mega-menu__tabs-inner"> 2172 <div class="mega-menu__tabs-inner-left"> 2173 <button 2174 type="button" 2175 class="mega-menu__tab btn-link btn-link--s" 2176 :class="megaMenuTab === 'shop' ? 'mega-menu__tab--active' : 'mega-menu__tab--inactive'" 2177 :aria-expanded="isMegaMenuOpen() && megaMenuTab === 'shop' ? 'true' : 'false'" 2178 aria-controls="MegaMenu-shop" 2179 @click="openMegaMenu('shop')" 2180 > 2181 Shop 2182 </button> 2183 <button 2184 type="button" 2185 class="mega-menu__tab btn-link btn-link--s" 2186 :class="megaMenuTab === 'explore' ? 'mega-menu__tab--active' : 'mega-menu__tab--inactive'" 2187 :aria-expanded="isMegaMenuOpen() && megaMenuTab === 'explore' ? 'true' : 'false'" 2188 aria-controls="MegaMenu-explore" 2189 @click="openMegaMenu('explore')" 2190 > 2191 Explore 2192 </button><a href="/pages/utmb-world-series" class="mega-menu__badge"> 2193 UTMB Partner 2194 </a></div> 2195 </div> 2196 </div> 2197 2198 <div class="mega-menu__body"> 2199 <div 2200 id="MegaMenu-shop" 2201 class="mega-menu__panel" 2202 :class="megaMenuTab === 'shop' ? '' : 'mega-menu__panel--hidden'" 2203 :hidden="megaMenuTab !== 'shop'" 2204 > 2205 <div id="shopify-block-AR1UyN1JmRlloSEx3e__shop" class="shopify-block"><div 2206 class="mega-menu__panel-inner" 2207 2208> 2209 <div class="mega-menu__panel-content"><div id="shopify-block-AZWNKNHdwTWY2WkNkR__shop-category" class="shopify-block"><div class="mega-menu__category" ><a 2210 href="/collections/all-products" 2211 class="mega-menu__category-title no-underline transition-opacity hover:opacity-75" 2212 >Nutrition</a><div class="mega-menu__category-body"> 2213 <div id="shopify-block-AQ3ZpUEhDaEc5VXBIR__shop-large" class="shopify-block"><div class="mega-menu__large-zone" >
2214 <div id="shopify-block-AQ09HbkJicUkyYXlzZ__shop-large-gels" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2215 href="/collections/gels" 2216 class="mega-menu__link-item" 2217 >Gels</a></div> 2218</div> 2219<div id="shopify-block-AalMrNGp0bnFDTUdPV__shop-large-boissons" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2220 href="/collections/drink-mixes" 2221 class="mega-menu__link-item" 2222 >Drink Mixes</a></div> 2223</div> 2224<div id="shopify-block-ANEF2RHdjN2lzbzZLZ__shop-large-purees" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2225 href="/collections/ultra-energy-purees" 2226 class="mega-menu__link-item" 2227 >Purees</a></div> 2228</div> 2229<div id="shopify-block-AK0ZwcVIyaVRRSDFKL__shop-large-gaufres" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2230 href="/collections/energy-waffles" 2231 class="mega-menu__link-item" 2232 >Waffles</a></div> 2233</div> 2234<div id="shopify-block-ANktoMFgvZ0ZIclY0N__shop-large-barres" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2235 href="/collections/bars" 2236 class="mega-menu__link-item" 2237 >Bars</a></div> 2238</div> 2239<div id="shopify-block-AZCszN2VzeUFvdjlnQ__mega_menu_link_wGUxUi" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2240 href="/collections/ultra-recovery-protein-powders" 2241 class="mega-menu__link-item" 2242 >Recovery Mixes</a></div> 2243</div> 2244 2245</div> 2246 2247 2248</div> 2249 2250 <div id="shopify-block-AOFdjV1RrT2tLb1VNS__shop-secondary" class="shopify-block"><div class="mega-menu__secondary-zone" > 2251 <div id="shopify-block-Ad3hTOHFNT1p5ZVoxa__shop-secondary-ultra" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2252 href="/collections/ultra-energy" 2253 class="mega-menu__link-item" 2254 >ULTRA⢠energy line</a></div> 2255</div> 2256<div id="shopify-block-AQWdVVW51NmpWeUViV__shop-secondary-boost" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2257 href="/collections/boost-energy" 2258 class="mega-menu__link-item" 2259 >BOOST⢠energy line</a></div> 2260</div> 2261<div id="shopify-block-AODNSc3FUZVo2ODRnZ__shop-secondary-recovery" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2262 href="/collections/ultra-recovery-protein-powders" 2263 class="mega-menu__link-item" 2264 >RECOVERY⢠line</a></div> 2265</div> 2266 2267</div> 2268 2269 2270</div> 2271 2272 </div> 2273</div> 2274 2275 2276</div> 2277 2278 <div id="shopify-block-ANFpUN3VVS1ducURGN__shop-links" class="shopify-block"><div class="mega-menu__links-zone" > 2279 <div id="shopify-block-AejZPK2hGSnYwOGRuM__mega_menu_link_tG6Lax" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2280 href="/collections/new-arrivals" 2281 class="mega-menu__link-item" 2282 >New</a></div> 2283</div> 2284<div id="shopify-block-AM1VOd3dDREdnTW1Eb__shop-link-packs" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2285 href="/collections/packs" 2286 class="mega-menu__link-item" 2287 >Packs</a></div> 2288</div> 2289<div id="shopify-block-AN1ByZjRGNHNsdkNEU__shop-link-accessoires" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2290 href="/collections/gear-accessories" 2291 class="mega-menu__link-item" 2292 >Gear & Accessories</a></div> 2293</div> 2294<div id="shopify-block-AQTRJa2ZsN3BhTGk3V__mega_menu_link_8qLFXk" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2295 href="/collections/no-waste-deals" 2296 class="mega-menu__link-item" 2297 >No-waste deals</a></div> 2298</div> 2299 2300</div> 2301 2302 2303</div> 2304 2305</div><div id="shopify-block-AeU1yeUh6OFFnRGxtb__shop-featured" class="shopify-block"><div class="mega-menu__featured-zone" > 2306 <div id="shopify-block-AaXBpcmFMeDZYc1VWT__shop-featured-pack" class="shopify-block"><div class="mega-menu__featured-card" ><a href="/pages/nutrition-calculator" class="mega-menu__featured-card-link"><div class="mega-menu__featured-card-media"><img src="//www.naak.com/cdn/shop/files/Cocodona250_PreRace_Courntey-16.jpg?v=1785438254&width=600" alt="Calculate your nutrition plan" srcset="//www.naak.com/cdn/shop/files/Cocodona250_PreRace_Courntey-16.jpg?v=1785438254&width=222 222w, //www.naak.com/cdn/shop/files/Cocodona250_PreRace_Courntey-16.jpg?v=1785438254&width=444 444w, //www.naak.com/cdn/shop/files/Cocodona250_PreRace_Courntey-16.jpg?v=1785438254&width=600 600w" width="600" height="800" loading="lazy" class="mega-menu__featured-card-image" sizes="50vw"> 2307</div> 2308 <p class="mega-menu__featured-card-label">Calculate your nutrition plan</p></a></div> 2309</div> 2310<div id="shopify-block-AeHlEREI4QWppQkJUV__shop-featured-guide" class="shopify-block"><div class="mega-menu__featured-card" ><a href="/pages/naak-nutrition-guide" class="mega-menu__featured-card-link"><div class="mega-menu__featured-card-media"><img src="//www.naak.com/cdn/shop/files/hogan-2-mobile.jpg?v=1785434353&width=600" alt="The NÃAKLAB's nutrition guide" srcset="//www.naak.com/cdn/shop/files/hogan-2-mobile.jpg?v=1785434353&width=222 222w, //www.naak.com/cdn/shop/files/hogan-2-mobile.jpg?v=1785434353&width=444 444w, //www.naak.com/cdn/shop/files/hogan-2-mobile.jpg?v=1785434353&width=600 600w" width="600" height="399" loading="lazy" class="mega-menu__featured-card-image" sizes="50vw"> 2311</div> 2312 <p class="mega-menu__featured-card-label">The NÃAKLAB's nutrition guide</p></a></div> 2313</div> 2314 2315</div> 2316 2317 2318</div> 2319 2320</div> 2321 2322 2323</div> 2324 2325 </div> 2326 2327 <div 2328 id="MegaMenu-explore" 2329 class="mega-menu__panel mega-menu__panel--explore" 2330 :class="megaMenuTab === 'explore' ? '' : 'mega-menu__panel--hidden'" 2331 :hidden="megaMenuTab !== 'explore'" 2332 > 2333 <div id="shopify-block-Ab0RyM1ZBTXpSNjQxa__explore" class="shopify-block"><div 2334 class="mega-menu__panel-inner mega-menu__panel-inner--explore" 2335 2336> 2337 <div class="mega-menu__panel-content"><div id="shopify-block-AeUJpeEtzSDZpd2ZWR__explore-links" class="shopify-block"><div class="mega-menu__links-zone" >
2338 <div id="shopify-block-AQXc3OHlMQTJRQkZNM__explore-link-utmb" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2339 href="/pages/utmb-world-series" 2340 class="mega-menu__link-item" 2341 >näak x UTMB® World Series</a></div> 2342</div> 2343<div id="shopify-block-AWHA0V0YvdWFhWi9mT__mega_menu_link_p9NhgJ" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2344 href="/pages/ultra-energy-science" 2345 class="mega-menu__link-item" 2346 >Science</a></div> 2347</div> 2348<div id="shopify-block-AZWlOdDhRVmJUL2ZMd__explore-link-histoire" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2349 href="/pages/our-story" 2350 class="mega-menu__link-item" 2351 >Our Story</a></div> 2352</div> 2353<div id="shopify-block-AMU5XVDFXb3JtK3BFN__explore-link-athletes" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2354 href="/pages/naak-pro-team" 2355 class="mega-menu__link-item" 2356 >Athletes</a></div> 2357</div> 2358<div id="shopify-block-AdUVDb0wzeGpoaURHT__explore-link-impact" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2359 href="/pages/sustainability" 2360 class="mega-menu__link-item" 2361 >Sustainability</a></div> 2362</div> 2363<div id="shopify-block-AMzRobXpHd3NaQzNpN__explore-link-journal" class="shopify-block"><div class="mega-menu__link-wrap " ><a 2364 href="/blogs/articles" 2365 class="mega-menu__link-item" 2366 >Blog</a></div> 2367</div> 2368 2369</div> 2370 2371 2372</div> 2373 2374</div><div id="shopify-block-AWFBtYlNYbXNuTnJMN__explore-featured" class="shopify-block"><div class="mega-menu__featured-zone" > 2375 <div id="shopify-block-AWEs0MWd5bGY0cFdOR__explore-featured-utmb" class="shopify-block"><div class="mega-menu__featured-card" ><a href="/pages/utmb-world-series" class="mega-menu__featured-card-link"><div class="mega-menu__featured-card-media"><img src="//www.naak.com/cdn/shop/files/performance.jpg?v=1785429133&width=600" alt="UTMB x Näak" srcset="//www.naak.com/cdn/shop/files/performance.jpg?v=1785429133&width=222 222w, //www.naak.com/cdn/shop/files/performance.jpg?v=1785429133&width=444 444w, //www.naak.com/cdn/shop/files/performance.jpg?v=1785429133&width=600 600w" width="600" height="787" loading="lazy" class="mega-menu__featured-card-image" sizes="50vw" style="object-position:52.3786% 85.1557%;"> 2376</div> 2377 <p class="mega-menu__featured-card-label">UTMB x Näak</p></a></div> 2378</div> 2379<div id="shopify-block-ARHlOakVNa1poZyttQ__explore-featured-faq" class="shopify-block"><div class="mega-menu__featured-card" ><a href="/pages/faq" class="mega-menu__featured-card-link"><div class="mega-menu__featured-card-media"><img src="//www.naak.com/cdn/shop/files/naakbar-faq-bg.jpg?v=1739621715&width=600" alt="Frequently Asked Questions" srcset="//www.naak.com/cdn/shop/files/naakbar-faq-bg.jpg?v=1739621715&width=222 222w, //www.naak.com/cdn/shop/files/naakbar-faq-bg.jpg?v=1739621715&width=444 444w, //www.naak.com/cdn/shop/files/naakbar-faq-bg.jpg?v=1739621715&width=600 600w" width="600" height="581" loading="lazy" class="mega-menu__featured-card-image" sizes="50vw"> 2380</div> 2381 <p class="mega-menu__featured-card-label">Frequently Asked Questions</p></a></div> 2382</div> 2383 2384</div> 2385 2386 2387</div> 2388 2389</div> 2390 2391 2392</div> 2393 2394 </div> 2395 </div><footer class="mega-menu__footer"><a href="https://www.naak.com/customer_authentication/redirect?locale=en®ion_country=US" class="mega-menu__footer-link md:hidden"> 2396 Login 2397 </a><a href="/pages/store-locator" class="mega-menu__footer-link"> 2398 Find a store 2399 </a> 2400 2401<button 2402 type="button" 2403 class="mega-menu__footer-locale " 2404 aria-label="Choose a region" 2405 aria-haspopup="dialog" 2406 @click="openLocale()" 2407> 2408 <span class=""> 2409 <span>EN</span> 2410 <span 2411 class="mega-menu__footer-locale-separator" 2412 aria-hidden="true" 2413 >/</span> 2414 <span>$</span> 2415 </span> 2416</button> 2417 2418 </footer> 2419 </div><button 2420 type="button" 2421 class="mega-menu__close lg:hidden" 2422 @click="closeDrawers()" 2423 > 2424 Close 2425 </button> 2426 </div> 2427</div> 2428 2429 2430</section><div id="shopify-section-sections--27256355291440__search-drawer" class="shopify-section shopify-section-group-header-group section-search-drawer"> 2431 2432<div 2433 id="search-drawer" 2434 class="search-drawer js-search-drawer fixed inset-0 z-50 overflow-hidden text-black" 2435 role="dialog" 2436 aria-modal="true" 2437 aria-labelledby="search-drawer-title" 2438 data-search-drawer 2439 data-search-results-section-id="search-drawer-results" 2440 data-predictive-search-url="/search/suggest" 2441 data-search-url="/search" 2442 x-show="isSearchOpen()" 2443 :aria-hidden="isSearchOpen() ? 'false' : 'true'" 2444 @keydown.escape.window="isSearchOpen() && closeDrawers()" 2445 style="display: none;" 2446> 2447 <div 2448 class="search-drawer__overlay absolute inset-0 z-0 bg-black/30 transition-opacity duration-200 ease-in-out" 2449 aria-hidden="true" 2450 x-show="isSearchOpen()" 2451 x-transition:enter="ease-out duration-200" 2452 x-transition:enter-start="opacity-0" 2453 x-transition:enter-end="opacity-100" 2454 x-transition:leave="ease-in duration-200" 2455 x-transition:leave-start="opacity-100" 2456 x-transition:leave-end="opacity-0" 2457 @click="closeDrawers()" 2458 ></div> 2459 2460 <div class="search-drawer__stage absolute inset-0 z-10 pointer-events-none"> 2461 <div 2462 class="search-drawer__panel pointer-events-auto absolute top-0 right-0 flex h-lvh w-full max-w-[480px] will-change-transform" 2463 x-show="isSearchOpen()"
2464 x-transition:enter="transform ease-out duration-200 md:duration-350" 2465 x-transition:enter-start="translate-x-full" 2466 x-transition:enter-end="translate-x-0" 2467 x-transition:leave="transform ease-in duration-200 md:duration-350" 2468 x-transition:leave-start="translate-x-0" 2469 x-transition:leave-end="translate-x-full" 2470 x-data="{ searchQuery: '' }" 2471 @search-drawer:reset.window="searchQuery = ''" 2472 > 2473 <header class="search-drawer__header"> 2474 <p id="search-drawer-title" class="search-drawer__header-title"> 2475 Search 2476 </p> 2477 <button 2478 type="button" 2479 class="search-drawer__close" 2480 aria-label="Close" 2481 @click="closeDrawers()" 2482 > 2483 <svg class="size-4" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 2484 <path d="M4 4l12 12M16 4 4 16" stroke="currentColor" stroke-width="1.5"/> 2485 </svg> 2486 </button> 2487</header> 2488 2489 2490 <div class="search-drawer__scroll"> 2491 <div class="search-drawer__inner"> 2492 <form 2493 class="search-drawer__form" 2494 action="/search" 2495 method="get" 2496 role="search" 2497 data-search-drawer-form 2498 > 2499 <label class="sr-only" for="search-drawer-input">Search</label> 2500 <div 2501 class="search-drawer__field" 2502 :class="searchQuery.trim().length > 0 ? 'search-drawer__field--active' : ''" 2503 > 2504 <span class="search-drawer__field-icon" aria-hidden="true"> 2505 <svg 2506 class="size-4" 2507 aria-hidden="true" 2508 width="20" 2509 height="20" 2510 viewBox="0 0 20 20" 2511 fill="none" 2512 xmlns="http://www.w3.org/2000/svg" 2513 > 2514 <path d="M8.75 15C12.2018 15 15 12.2018 15 8.75C15 5.29822 12.2018 2.5 8.75 2.5C5.29822 2.5 2.5 5.29822 2.5 8.75C2.5 12.2018 5.29822 15 8.75 15Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 2515 <path d="M13.1694 13.1694L17.4999 17.4999" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 2516 </svg> 2517 </span> 2518 <input 2519 id="search-drawer-input" 2520 class="search-drawer__input" 2521 type="search" 2522 name="q" 2523 value="" 2524 placeholder="Search for a product, an answer to a question..." 2525 autocomplete="off" 2526 autocorrect="off" 2527 autocapitalize="off" 2528 spellcheck="false" 2529 data-search-drawer-input 2530 x-model="searchQuery" 2531 @boilerplate:search-drawer:open.window="setTimeout(() => $el.focus(), 350)" 2532 > 2533 </div> 2534 </form> 2535 2536 <div class="search-drawer__results" data-search-drawer-body> 2537 <div data-search-drawer-results> 2538 <div class="search-drawer__state search-drawer__state--empty" data-search-drawer-empty><section class="search-drawer-carousel" data-search-drawer-carousel-section="recommended"> 2539 <div class="search-drawer-carousel__head"> 2540 <p class="search-drawer-carousel__title">Recommended for you</p> 2541 <div class="search-drawer-carousel__nav"> 2542 <button 2543 type="button" 2544 class="search-drawer-carousel__nav-btn" 2545 data-search-drawer-prev="recommended" 2546 aria-label="Previous" 2547 > 2548 <svg 2549 class="size-4 rotate-180" 2550 width="16" 2551 height="16" 2552 viewBox="0 0 16 16" 2553 fill="none" 2554 xmlns="http://www.w3.org/2000/svg" 2555 > 2556 <path d="M8.67598 3.19976L13.476 7.99976L8.67598 12.7998" stroke="currentColor" stroke-width="1.5"/> 2557 <line x1="13.5" y1="8.04712" x2="1.5" y2="8.04712" stroke="currentColor" stroke-width="1.5"/> 2558 </svg> 2559 </button> 2560 <button 2561 type="button" 2562 class="search-drawer-carousel__nav-btn" 2563 data-search-drawer-next="recommended" 2564 aria-label="Next" 2565 > 2566 <svg 2567 class="size-4" 2568 width="16" 2569 height="16" 2570 viewBox="0 0 16 16" 2571 fill="none" 2572 xmlns="http://www.w3.org/2000/svg" 2573 > 2574 <path d="M8.67598 3.19976L13.476 7.99976L8.67598 12.7998" stroke="currentColor" stroke-width="1.5"/> 2575 <line x1="13.5" y1="8.04712" x2="1.5" y2="8.04712" stroke="currentColor" stroke-width="1.5"/> 2576 </svg> 2577 </button> 2578 </div> 2579 </div> 2580 2581 <div class="search-drawer-carousel__swiper swiper" data-search-drawer-carousel="recommended"> 2582 <div class="swiper-wrapper"> 2583 <div class="swiper-slide" >
2584 <a href="/products/boost-drink-mix-60-neutral-bag" class="search-product-card"> 2585 <div class="search-product-card__media"><img src="//www.naak.com/cdn/shop/files/naak-drink-mixes-1-bag-15-servings-boost-drink-mix-60-neutral-bag-1253784187.jpg?v=1786395670&width=840" alt="Näak Drink Mixes BOOST⢠Drink Mix 60 · Neutral · Bag" srcset="//www.naak.com/cdn/shop/files/naak-drink-mixes-1-bag-15-servings-boost-drink-mix-60-neutral-bag-1253784187.jpg?v=1786395670&width=210 210w, //www.naak.com/cdn/shop/files/naak-drink-mixes-1-bag-15-servings-boost-drink-mix-60-neutral-bag-1253784187.jpg?v=1786395670&width=420 420w, //www.naak.com/cdn/shop/files/naak-drink-mixes-1-bag-15-servings-boost-drink-mix-60-neutral-bag-1253784187.jpg?v=1786395670&width=840 840w" width="840" height="840" loading="lazy" class="search-product-card__image"> 2586</div> 2587 2588 <div class="search-product-card__body"> 2589 <div class="search-product-card__meta"><p class="search-product-card__range">ULTRA</p><p class="search-product-card__title">Drink Mix 60 · Neutral</p><p class="search-product-card__subtitle">High intensity â Natural carbohydrate-rich drink</p></div> 2590 2591 <div class="search-product-card__price"><span class="search-product-card__price-value">$48.00</span> 2592 </div> 2593 </div> 2594</a> 2595 2596 </div> 2597 </div> 2598 </div></section> 2599 2600<section class="search-drawer-carousel" data-search-drawer-carousel-section="journal"> 2601 <div class="search-drawer-carousel__head"> 2602 <p class="search-drawer-carousel__title">Journal</p> 2603 <div class="search-drawer-carousel__nav"> 2604 <button 2605 type="button" 2606 class="search-drawer-carousel__nav-btn" 2607 data-search-drawer-prev="journal" 2608 aria-label="Previous" 2609 > 2610 <svg 2611 class="size-4 rotate-180" 2612 width="16" 2613 height="16" 2614 viewBox="0 0 16 16" 2615 fill="none" 2616 xmlns="http://www.w3.org/2000/svg" 2617 > 2618 <path d="M8.67598 3.19976L13.476 7.99976L8.67598 12.7998" stroke="currentColor" stroke-width="1.5"/> 2619 <line x1="13.5" y1="8.04712" x2="1.5" y2="8.04712" stroke="currentColor" stroke-width="1.5"/> 2620 </svg> 2621 </button> 2622 <button 2623 type="button" 2624 class="search-drawer-carousel__nav-btn" 2625 data-search-drawer-next="journal" 2626 aria-label="Next" 2627 > 2628 <svg 2629 class="size-4" 2630 width="16" 2631 height="16" 2632 viewBox="0 0 16 16" 2633 fill="none" 2634 xmlns="http://www.w3.org/2000/svg" 2635 > 2636 <path d="M8.67598 3.19976L13.476 7.99976L8.67598 12.7998" stroke="currentColor" stroke-width="1.5"/> 2637 <line x1="13.5" y1="8.04712" x2="1.5" y2="8.04712" stroke="currentColor" stroke-width="1.5"/> 2638 </svg> 2639 </button> 2640 </div> 2641 </div> 2642 2643 <div class="search-drawer-carousel__swiper swiper" data-search-drawer-carousel="journal"> 2644 <div class="swiper-wrapper"> 2645 <div class="swiper-slide"> 2646 <a href="/blogs/articles/hardrock-100-legend-resilience-and-high-altitude-peaks-in-colorado" class="search-article-card"> 2647 <div class="search-article-card__media"><img src="//www.naak.com/cdn/shop/articles/Hardock_USAr_bfde3bc9-ec59-410a-aaec-e6e9b7327803.jpg?v=1784139907&width=1500" alt="Hardrock 100: Legend, Resilience, and High-Altitude Peaks in Colorado" srcset="//www.naak.com/cdn/shop/articles/Hardock_USAr_bfde3bc9-ec59-410a-aaec-e6e9b7327803.jpg?v=1784139907&width=210 210w, //www.naak.com/cdn/shop/articles/Hardock_USAr_bfde3bc9-ec59-410a-aaec-e6e9b7327803.jpg?v=1784139907&width=420 420w, //www.naak.com/cdn/shop/articles/Hardock_USAr_bfde3bc9-ec59-410a-aaec-e6e9b7327803.jpg?v=1784139907&width=600 600w, //www.naak.com/cdn/shop/articles/Hardock_USAr_bfde3bc9-ec59-410a-aaec-e6e9b7327803.jpg?v=1784139907&width=800 800w, //www.naak.com/cdn/shop/articles/Hardock_USAr_bfde3bc9-ec59-410a-aaec-e6e9b7327803.jpg?v=1784139907&width=1000 1000w, //www.naak.com/cdn/shop/articles/Hardock_USAr_bfde3bc9-ec59-410a-aaec-e6e9b7327803.jpg?v=1784139907&width=1200 1200w, //www.naak.com/cdn/shop/articles/Hardock_USAr_bfde3bc9-ec59-410a-aaec-e6e9b7327803.jpg?v=1784139907&width=1500 1500w" width="1500" height="525" loading="lazy" class="search-article-card__image"> 2648</div> 2649 2650 <div class="search-article-card__body"> 2651 <p class="search-article-card__title">
2651Hardrock 100: Legend, Resilience, and High-Altitude Peaks in Colorado</p></div> 2652</a> 2653 2654 </div><div class="swiper-slide"> 2655 <a href="/blogs/articles/gatza-trail-120g-h-carb-mastery" class="search-article-card"> 2656 <div class="search-article-card__media"><img src="//www.naak.com/cdn/shop/articles/Gatza_SP_3068636e-65dd-4418-82dc-d2f6822857b3.png?v=1782847136&width=1500" alt="Gatza Trail: 120g/h Carb Mastery" srcset="//www.naak.com/cdn/shop/articles/Gatza_SP_3068636e-65dd-4418-82dc-d2f6822857b3.png?v=1782847136&width=210 210w, //www.naak.com/cdn/shop/articles/Gatza_SP_3068636e-65dd-4418-82dc-d2f6822857b3.png?v=1782847136&width=420 420w, //www.naak.com/cdn/shop/articles/Gatza_SP_3068636e-65dd-4418-82dc-d2f6822857b3.png?v=1782847136&width=600 600w, //www.naak.com/cdn/shop/articles/Gatza_SP_3068636e-65dd-4418-82dc-d2f6822857b3.png?v=1782847136&width=800 800w, //www.naak.com/cdn/shop/articles/Gatza_SP_3068636e-65dd-4418-82dc-d2f6822857b3.png?v=1782847136&width=1000 1000w, //www.naak.com/cdn/shop/articles/Gatza_SP_3068636e-65dd-4418-82dc-d2f6822857b3.png?v=1782847136&width=1200 1200w, //www.naak.com/cdn/shop/articles/Gatza_SP_3068636e-65dd-4418-82dc-d2f6822857b3.png?v=1782847136&width=1500 1500w" width="1500" height="525" loading="lazy" class="search-article-card__image"> 2657</div> 2658 2659 <div class="search-article-card__body"> 2660 <p class="search-article-card__title">Gatza Trail: 120g/h Carb Mastery</p><div class="search-article-card__tags"> 2661 <span class="search-article-card__tag">Fueling Tips</span> 2662 </div></div> 2663</a> 2664 2665 </div><div class="swiper-slide"> 2666 <a href="/blogs/articles/ecotrail-paris-victory-in-the-city-of-light" class="search-article-card"> 2667 <div class="search-article-card__media"><img src="//www.naak.com/cdn/shop/articles/Eco_trail_FR_82814216-7c71-4311-bc1e-b609b6e3ac9f.png?v=1782846952&width=1500" alt="EcoTrail Paris: Victory in the City of Light" srcset="//www.naak.com/cdn/shop/articles/Eco_trail_FR_82814216-7c71-4311-bc1e-b609b6e3ac9f.png?v=1782846952&width=210 210w, //www.naak.com/cdn/shop/articles/Eco_trail_FR_82814216-7c71-4311-bc1e-b609b6e3ac9f.png?v=1782846952&width=420 420w, //www.naak.com/cdn/shop/articles/Eco_trail_FR_82814216-7c71-4311-bc1e-b609b6e3ac9f.png?v=1782846952&width=600 600w, //www.naak.com/cdn/shop/articles/Eco_trail_FR_82814216-7c71-4311-bc1e-b609b6e3ac9f.png?v=1782846952&width=800 800w, //www.naak.com/cdn/shop/articles/Eco_trail_FR_82814216-7c71-4311-bc1e-b609b6e3ac9f.png?v=1782846952&width=1000 1000w, //www.naak.com/cdn/shop/articles/Eco_trail_FR_82814216-7c71-4311-bc1e-b609b6e3ac9f.png?v=1782846952&width=1200 1200w, //www.naak.com/cdn/shop/articles/Eco_trail_FR_82814216-7c71-4311-bc1e-b609b6e3ac9f.png?v=1782846952&width=1500 1500w" width="1500" height="525" loading="lazy" class="search-article-card__image"> 2668</div> 2669 2670 <div class="search-article-card__body"> 2671 <p class="search-article-card__title">EcoTrail Paris: Victory in the City of Light</p><div class="search-article-card__tags"> 2672 <span class="search-article-card__tag">Fueling Tips</span> 2673 </div></div> 2674</a> 2675 2676 </div><div class="swiper-slide"> 2677 <a href="/blogs/articles/90km-du-mont-blanc-in-heat-management-and-adapting-carb-intake" class="search-article-card"> 2678 <div class="search-article-card__media"><img src="//www.naak.com/cdn/shop/articles/90k_FR.png?v=1782828609&width=1500" alt="90km du Mont-Blanc: A lesson in Heat Management and Adapting carb intake" srcset="//www.naak.com/cdn/shop/articles/90k_FR.png?v=1782828609&width=210 210w, //www.naak.com/cdn/shop/articles/90k_FR.png?v=1782828609&width=420 420w, //www.naak.com/cdn/shop/articles/90k_FR.png?v=1782828609&width=600 600w, //www.naak.com/cdn/shop/articles/90k_FR.png?v=1782828609&width=800 800w, //www.naak.com/cdn/shop/articles/90k_FR.png?v=1782828609&width=1000 1000w, //www.naak.com/cdn/shop/articles/90k_FR.png?v=1782828609&width=1200 1200w, //www.naak.com/cdn/shop/articles/90k_FR.png?v=1782828609&width=1500 1500w" width="1500" height="525" loading="lazy" class="search-article-card__image"> 2679</div> 2680 2681 <div class="search-article-card__body"> 2682 <p class="search-article-card__title">90km du Mont-Blanc: A lesson in Heat Management and Adapting carb intake</p><div class="search-article-card__tags">
2683 <span class="search-article-card__tag">Fueling Tips</span> 2684 </div></div> 2685</a> 2686 2687 </div><div class="swiper-slide"> 2688 <a href="/blogs/articles/lavaredo-ultra-trail-50k-chasing-joy-and-victory" class="search-article-card"> 2689 <div class="search-article-card__media"><img src="//www.naak.com/cdn/shop/articles/Lavaredo_IT.png?v=1782826355&width=1500" alt="Lavaredo Ultra Trail 50K: Chasing Joy and Victory in the Dolomites" srcset="//www.naak.com/cdn/shop/articles/Lavaredo_IT.png?v=1782826355&width=210 210w, //www.naak.com/cdn/shop/articles/Lavaredo_IT.png?v=1782826355&width=420 420w, //www.naak.com/cdn/shop/articles/Lavaredo_IT.png?v=1782826355&width=600 600w, //www.naak.com/cdn/shop/articles/Lavaredo_IT.png?v=1782826355&width=800 800w, //www.naak.com/cdn/shop/articles/Lavaredo_IT.png?v=1782826355&width=1000 1000w, //www.naak.com/cdn/shop/articles/Lavaredo_IT.png?v=1782826355&width=1200 1200w, //www.naak.com/cdn/shop/articles/Lavaredo_IT.png?v=1782826355&width=1500 1500w" width="1500" height="525" loading="lazy" class="search-article-card__image"> 2690</div> 2691 2692 <div class="search-article-card__body"> 2693 <p class="search-article-card__title">Lavaredo Ultra Trail 50K: Chasing Joy and Victory in the Dolomites</p><div class="search-article-card__tags"> 2694 <span class="search-article-card__tag">Fueling Tips</span> 2695 </div></div> 2696</a> 2697 2698 </div><div class="swiper-slide"> 2699 <a href="/blogs/articles/trail-100-andorra-by-utmb-conquering-heat-and-high-altitude" class="search-article-card"> 2700 <div class="search-article-card__media"><img src="//www.naak.com/cdn/shop/articles/Andorre_5b74bf8e-ee40-4598-b678-47a0342ee9e3.png?v=1782744796&width=1500" alt="Trail 100 Andorra by UTMB: Conquering Heat, Injury, and High-Altitude Self-Sufficiency" srcset="//www.naak.com/cdn/shop/articles/Andorre_5b74bf8e-ee40-4598-b678-47a0342ee9e3.png?v=1782744796&width=210 210w, //www.naak.com/cdn/shop/articles/Andorre_5b74bf8e-ee40-4598-b678-47a0342ee9e3.png?v=1782744796&width=420 420w, //www.naak.com/cdn/shop/articles/Andorre_5b74bf8e-ee40-4598-b678-47a0342ee9e3.png?v=1782744796&width=600 600w, //www.naak.com/cdn/shop/articles/Andorre_5b74bf8e-ee40-4598-b678-47a0342ee9e3.png?v=1782744796&width=800 800w, //www.naak.com/cdn/shop/articles/Andorre_5b74bf8e-ee40-4598-b678-47a0342ee9e3.png?v=1782744796&width=1000 1000w, //www.naak.com/cdn/shop/articles/Andorre_5b74bf8e-ee40-4598-b678-47a0342ee9e3.png?v=1782744796&width=1200 1200w, //www.naak.com/cdn/shop/articles/Andorre_5b74bf8e-ee40-4598-b678-47a0342ee9e3.png?v=1782744796&width=1500 1500w" width="1500" height="525" loading="lazy" class="search-article-card__image"> 2701</div> 2702 2703 <div class="search-article-card__body"> 2704 <p class="search-article-card__title">Trail 100 Andorra by UTMB: Conquering Heat, Injury, and High-Altitude Self-Sufficiency</p><div class="search-article-card__tags"> 2705 <span class="search-article-card__tag">Fueling Tips</span> 2706 </div></div> 2707</a> 2708 2709 </div> 2710 </div> 2711 </div></section> 2712 2713</div> 2714 2715 </div> 2716 </div> 2717 </div> 2718 </div> 2719 2720 <div 2721 class="search-drawer__footer" 2722 x-show="searchQuery.trim().length > 0" 2723 x-cloak 2724 style="display: none;" 2725 > 2726 <a 2727 href="/search" 2728 class="btn btn--primary search-drawer__footer-btn w-full" 2729 data-search-drawer-all-results 2730 > 2731 See all results 2732 </a> 2733 </div> 2734 </div> 2735 </div> 2736</div> 2737 2738
2739<script> 2740 window.Shopify = window.Shopify || {}; 2741 window.Shopify.routes = window.Shopify.routes || {}; 2742 if (!window.Shopify.routes.root) { 2743 window.Shopify.routes.root = "\/"; 2744 } 2745</script>
2745 2746 2747 2748</div><div id="shopify-section-sections--27256355291440__search-drawer-results" class="shopify-section shopify-section-group-header-group section-search-drawer-results"> 2749</div><div id="shopify-section-sections--27256355291440__cart-drawer" class="shopify-section shopify-section-group-header-group section-cart-drawer"> 2750
2751<script> 2752 window.Shopify = window.Shopify || {}; 2753 window.Shopify.routes = window.Shopify.routes || {}; 2754 if (!window.Shopify.routes.root) { 2755 window.Shopify.routes.root = "\/"; 2756 } 2757</script>
2757 2758
2759<script type="application/json" id="BoilerplateCartStrings"> 2760 { 2761 "title": "Cart", 2762 "filledTitle": "Your cart", 2763 "empty": "Your cart is empty.", 2764 "continueShopping": "Continue shopping", 2765 "total": "Total", 2766 "taxesNotice": "Taxes and shipping calculated at checkout.", 2767 "freeShippingHint": "Free shipping based on cart total.", 2768 "freeShippingRemaining": "[amount] away from free shipping", 2769 "freeShippingReached": "You\u0026#39;ve unlocked free shipping.", 2770 "note": "Order note", 2771 "checkout": "Checkout", 2772 "update": "Update cart", 2773 "remove": "Remove", 2774 "quantity": "Quantity", 2775 "increaseQuantity": "Increase quantity", 2776 "decreaseQuantity": "Decrease quantity", 2777 "price": "Price", 2778 "priceSale": "Sale price", 2779 "priceRegular": "Regular price", 2780 "discountApplied": "Code applied.", 2781 "discountInvalid": "Invalid or expired code.", 2782 "discountError": "Could not apply code.", 2783 "freeShippingGoalCents": 7000 2784 } 2785</script>
2785 2786 2787 2788
2789<script type="application/json" id="BoilerplateCartRewardsConfig"> 2790 { 2791 "tiers": [{ 2792 "id": "reward_tier_bar", 2793 "thresholdCents": 3000, 2794 "variantId": 67853263077680, 2795 "title": "2x Free Purees", 2796 "allowRemove": true, 2797 "showQuantity": false 2798 }] 2799 } 2800</script>
2800 2801 2802 2803 2804<div 2805 id="cart-drawer" 2806 class="cart-drawer js-cart-drawer fixed inset-0 z-50 overflow-hidden text-black" 2807 role="dialog" 2808 aria-modal="true" 2809 aria-labelledby="cart-drawer-title" 2810 x-show="isCartOpen()" 2811 :aria-hidden="isCartOpen() ? 'false' : 'true'" 2812 @keydown.escape.window="isCartOpen() && closeDrawers()" 2813 style="display: none;" 2814> 2815 <div 2816 class="cart-drawer__overlay absolute inset-0 z-0 bg-black/50 transition-opacity duration-200 ease-in-out" 2817 aria-hidden="true" 2818 x-show="isCartOpen()" 2819 x-transition:enter="ease-out duration-200" 2820 x-transition:enter-start="opacity-0" 2821 x-transition:enter-end="opacity-100" 2822 x-transition:leave="ease-in duration-200" 2823 x-transition:leave-start="opacity-100" 2824 x-transition:leave-end="opacity-0" 2825 @click="closeDrawers()" 2826 ></div> 2827 2828 <div class="cart-drawer__stage absolute inset-0 z-10 focus:outline-none pointer-events-none"> 2829 <div 2830 class="cart-drawer__panel js-cart-panel pointer-events-auto ml-auto flex h-dvh max-h-dvh w-full flex-col overflow-hidden lg:max-w-[520px] transform transition duration-200 ease-in-out sm:duration-350" 2831 x-show="isCartOpen()" 2832 x-transition:enter="transform ease-out duration-200 sm:duration-350" 2833 x-transition:enter-start="translate-x-full" 2834 x-transition:enter-end="translate-x-0" 2835 x-transition:leave="transform ease-in duration-200 sm:duration-350" 2836 x-transition:leave-start="translate-x-0" 2837 x-transition:leave-end="translate-x-full" 2838 > 2839 <header class="cart-drawer__header" data-cart-drawer-header> 2840 <p id="cart-drawer-title" class="cart-drawer__header-title"> 2841 <span class="cart-drawer__header-label">Cart</span> 2842 2843 </p> 2844 <button 2845 type="button" 2846 class="cart-drawer__close" 2847 aria-label="Close" 2848 @click="closeDrawers()" 2849 > 2850 <svg class="size-4" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 2851 <path d="M4 4l12 12M16 4 4 16" stroke="currentColor" stroke-width="1.5"/> 2852 </svg> 2853 </button> 2854</header> 2855 2856 2857 <div class="cart-drawer__content flex min-h-0 flex-1 flex-col overflow-hidden"> 2858 2859 <div class="cart-drawer__main flex min-h-0 flex-1 flex-col" data-cart-drawer-root data-cart-max-quantity="11"> 2860 2861 2862 2863<div class="cart-drawer__empty"> 2864 2865 <p class="cart-drawer__empty-title">Your cart is empty.</p> 2866 2867 2868 <div class="cart-drawer__empty-recommendations"> 2869 2870 <p class="cart-drawer__empty-subtitle">Our best sellers</p> 2871 2872 2873 2874 2875 <div class="cart-drawer__cross-sell-list"> 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 </div> 2893 2894 2895 2896 <a 2897 href="/collections/all" 2898 class="btn btn--primary cart-drawer__empty-cta w-full" 2899 @click="closeDrawers()" 2900 > 2901 2902 <span class="hidden md:inline">All our products</span> 2903 2904 2905 <span class="md:hidden">See more</span> 2906 2907 2908 </a> 2909 2910 </div> 2911</div> 2912 2913 2914 </div> 2915 2916 2917 2918 <div data-cart-drawer-trust-host> 2919 2920 2921 2922 <div class="cart-drawer__trust" role="list"> 2923 2924 2925 <p class="cart-drawer__trust-item" role="listitem" > 2926 48h Shipping 2927 </p> 2928 2929 2930 2931 <p class="cart-drawer__trust-item" role="listitem" > 2932 30-day Returns 2933 </p> 2934 2935 2936 2937 <p class="cart-drawer__trust-item" role="listitem" > 2938 Secure payment 2939 </p> 2940 2941 2942 </div> 2943 2944 2945 </div> 2946 </div> 2947 </div> 2948 </div> 2949</div> 2950
2951<script defer="defer"> 2952 window.Loop = {}; 2953 window.Loop.bundleCartAllItems = []; 2954 initLoopBundle("LOOP_BUNDLE_DRAWER_CONTAINER_CLASS"); 2955</script>
2955 2956 2957 2958</div> 2959<!-- END sections: header-group --> 2960 2961 <main id="MainContent" role="main" class="MainContent"><div id="shopify-section-template--27273399271728__main" class="shopify-section shopify-section-product-section section-main-product"> 2962 2963 2964 2965 2966 2967 2968 2969 2970 <div 2971 class="product-section" 2972 style=" 2973 --info-share: 50%; 2974 --column-gap: 0px; 2975 --product-info-pt: 28px; 2976 --margin-bottom: 0px; 2977 " 2978 > 2979 <div 2980 class="product-section__layout" 2981 style="padding-bottom: 0px; margin-bottom: var(--margin-bottom);" 2982 > 2983 <div class="product-section__gallery product-section__gallery--sticky"> 2984 2985 2986 2987<div 2988 class="product-media-gallery" 2989 data-product-media-gallery 2990 data-initial-slide="0" 2991 data-media-count="1" 2992 2993> 2994 2995 <div class="product-media-gallery__mobile lg:hidden"> 2996 <div class="product-media-gallery__mobile-stage"> 2997 2998 2999 3000 <div 3001 class="product-media-gallery__badges" 3002 3003 aria-hidden="false" 3004 3005 > 3006 3007 <span 3008 class="product-badge product-badge--black" 3009 data-product-card-sale-badge 3010 3011 hidden 3012 3013 ></span> 3014 3015 3016 3017 3018 3019 3020 <span class="product-badge product-badge--black" data-product-card-tag>New</span> 3021 3022 3023 3024 </div> 3025 3026 3027 3028 3029 <div 3030 class="product-media-gallery__scroll" 3031 data-product-media-scroll 3032 tabindex="0" 3033 role="region" 3034 aria-label="Product gallery" 3035 > 3036 <div class="product-media-gallery__track"> 3037 3038 3039 3040 3041<div 3042 class="product-media-gallery__cell product-media-gallery__slide snap-center" 3043 data-media-id="44387623534896" 3044 data-focal-x="50" 3045 data-focal-y="50" 3046 style="--gallery-focal-x: 50%;" 3047> 3048 3049 <img src="//www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=1440" alt="Näak NA Drink Mixes BOOST⢠Drink Mix 60 · Salted Cucumber · Bag" srcset="//www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=400 400w, //www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=600 600w, //www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=800 800w, //www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=1000 1000w, //www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=1200 1200w, //www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=1440 1440w" width="1440" height="1440" loading="eager" fetchpriority="high" sizes="(min-width: 1024px) 50vw, 100vw" class="product-media-gallery__image"> 3050 3051</div> 3052 3053 3054 3055 3056 3057 3058 </div> 3059 </div> 3060 3061 3062 </div> 3063 </div> 3064 3065 <div class="product-media-gallery__desktop hidden lg:flex lg:justify-end"> 3066 3067 <div class="product-media-gallery__frame"> 3068 3069 3070 3071 3072 3073 3074 <div 3075 class="product-media-gallery__badges" 3076 3077 aria-hidden="false" 3078 3079 > 3080 3081 <span 3082 class="product-badge product-badge--black" 3083 data-product-card-sale-badge 3084 3085 hidden 3086 3087 ></span> 3088 3089 3090 3091 3092 3093 3094 <span class="product-badge product-badge--black" data-product-card-tag>New</span> 3095 3096 3097 3098 </div> 3099 3100 3101 3102 3103 3104<div 3105 class="product-media-gallery__cell product-media-gallery__cell--hero" 3106 data-media-id="44387623534896" 3107 data-focal-x="50" 3108 data-focal-y="50" 3109 style="--gallery-focal-x: 50%;" 3110> 3111 3112 <img src="//www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=1440" alt="Näak NA Drink Mixes BOOST⢠Drink Mix 60 · Salted Cucumber · Bag" srcset="//www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-m
3112ix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=400 400w, //www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=600 600w, //www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=800 800w, //www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=1000 1000w, //www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=1200 1200w, //www.naak.com/cdn/shop/files/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130&width=1440 1440w" width="1440" height="1440" loading="eager" fetchpriority="high" sizes="(min-width: 1024px) 50vw, 100vw" class="product-media-gallery__image"> 3113 3114</div> 3115 3116 3117 3118 3119 3120 </div> 3121 </div> 3122 3123</div> 3124 3125 3126 3127 3128 </div> 3129 3130 <div class="product-section__info" data-main-product> 3131 <div class="product-section__info-inner"> 3132 3133 3134 3135<nav 3136 class="product-breadcrumbs" 3137 style="padding-bottom: 24px; 3138" 3139 aria-label="Product breadcrumb" 3140 3141> 3142 <a href="/" class="product-breadcrumbs__link">Home</a> 3143 3144 3145 <span class="product-breadcrumbs__sep" aria-hidden="true">/</span> 3146 <a href="/collections/boost-energy" class="product-breadcrumbs__link">BOOST⢠Energy Line</a> 3147 3148 3149 3150 3151 <span class="product-breadcrumbs__sep" aria-hidden="true">/</span> 3152 <span class="product-breadcrumbs__current" aria-current="page">Drink Mix 60 · Salted Cucumber</span> 3153</nav> 3154 3155 3156 3157 3158 3159<div class="product-family-switch" style="padding-bottom: 24px; 3160" > 3161 <div class="product-family-switch__track" role="tablist" aria-label="Product family"><a 3162 href="/products/boost-gel-30-neutral" 3163 class="product-family-switch__pill" 3164 aria-label="Gel" 3165 role="tab" 3166 >Gel</a><span 3167 class="product-family-switch__pill is-selected" 3168 aria-current="page" 3169 role="tab" 3170 >Drink Mix</span></div> 3171 </div> 3172 3173 3174 3175 3176<h1 class="product-title" style="padding-bottom: 16px; 3177" >BOOST⢠Drink Mix 60 · Salted Cucumber · Bag</h1> 3178 3179 3180 3181 3182<div 3183 class="product-reviews-summary" 3184 style="padding-bottom: 16px; 3185" 3186 3187 > 3188 <button 3189 type="button" 3190 class="product-reviews-summary__rating" 3191 @click="openProductDrawer('product-details', 'reviews')" 3192 aria-label="Rated 5.0 out of 5.0" 3193 > 3194 <svg 3195 class="product-reviews-summary__star" 3196 width="12" 3197 height="12" 3198 viewBox="0 0 12 12" 3199 fill="none" 3200 xmlns="http://www.w3.org/2000/svg" 3201 > 3202 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 3203 </svg> 3204 <span class="product-reviews-summary__score">5.0</span> 3205 </button> 3206 3207 <span class="product-reviews-summary__sep" aria-hidden="true">/</span> 3208 3209 <button 3210 type="button" 3211 class="product-reviews-summary__link" 3212 @click="openProductDrawer('product-details', 'reviews')" 3213 >8 athlete reviews</button> 3214 3215 <span class="product-reviews-summary__sep" aria-hidden="true">/</span> 3216 3217 3218 3219 <span class="product-reviews-summary__orders"> 3220 +630 orders 3221 </span> 3222 3223 </div> 3224 3225 3226 3227 3228<div class="product-tags-row" style="padding-bottom: 24px; 3229" > 3230 <span 3231 class="product-badge product-badge--black" 3232 data-product-card-sale-badge 3233 hidden 3234 ></span> 3235 3236 <span class="product-tags-row__chip">Hot days, heavy sweaters</span> 3237 3238 3239 3240</div> 3241 3242 3243 3244 3245 3246 3247 <div class="product-description rte" style="padding-bottom: 16px; 3248" > 3249 <p>All-natural 60g carbs + high-sodium drink mix for steady and fast-acting energy with extra sodium for hot days and heavy sweaters.</p> 3250<p><em>The packaging you will receive may be different.</em></p> 3251 </div> 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264<div class="product-trust-logos" style="padding-bottom: 16px; 3265" > 3266 3267
3268 3269</div> 3270 3271 3272 3273<div 3274 class="product-section__divider-wrap" 3275 style="padding-top: 0px; padding-bottom: 24px; 3276" 3277 3278> 3279 <hr class="product-section__divider"> 3280</div> 3281 3282 3283 3284 3285 3286 <div 3287 class="product-form flex flex-col" 3288 style="padding-top: 0px; padding-bottom: 8px; 3289" 3290 3291 > 3292 3293<div class="product-flavor-switch" > 3294 <div class="product-flavor-switch__meta"> 3295 <p class="product-flavor-switch__label"> 3296 <span class="product-flavor-switch__name">Flavour</span><span class="product-flavor-switch__value">Neutral</span></p><button 3297 type="button" 3298 class="product-flavor-switch__help" 3299 @click="openProductDrawer('product-flavor')" 3300 >Which flavor to choose?</button></div> 3301 3302 <div class="product-flavor-switch__options" role="list"><a 3303 href="/products/boost-drink-mix-60-neutral-bag" 3304 class="product-flavor-switch__thumb" 3305 role="listitem" 3306 3307 aria-label="Drink Mix 60 · Neutral" 3308 3309 3310 ><img src="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0002_Boost-drink-mix-bag-neutral.png?v=1785766991&width=240" alt="Drink Mix 60 · Neutral" srcset="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0002_Boost-drink-mix-bag-neutral.png?v=1785766991&width=40 40w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0002_Boost-drink-mix-bag-neutral.png?v=1785766991&width=80 80w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0002_Boost-drink-mix-bag-neutral.png?v=1785766991&width=160 160w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0002_Boost-drink-mix-bag-neutral.png?v=1785766991&width=240 240w" width="240" height="240" loading="lazy" class="product-flavor-switch__thumb-image"> 3311<span class="product-flavor-switch__thumb-tooltip" aria-hidden="true">Drink Mix 60 · Neutral</span></a><a 3312 href="/products/boost-drink-mix-60-salted-cucumber-bag" 3313 class="product-flavor-switch__thumb is-selected" 3314 role="listitem" 3315 3316 aria-label="Drink Mix 60 · Salted Cucumber" 3317 3318 3319 aria-current="true" 3320 3321 ><img src="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0001_boost_salted_cucumber.png?v=1785767499&width=240" alt="Drink Mix 60 · Salted Cucumber" srcset="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0001_boost_salted_cucumber.png?v=1785767499&width=40 40w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0001_boost_salted_cucumber.png?v=1785767499&width=80 80w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0001_boost_salted_cucumber.png?v=1785767499&width=160 160w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0001_boost_salted_cucumber.png?v=1785767499&width=240 240w" width="240" height="240" loading="lazy" class="product-flavor-switch__thumb-image"> 3322<span class="product-flavor-switch__thumb-tooltip" aria-hidden="true">Drink Mix 60 · Salted Cucumber</span></a><a 3323 href="/products/boost-drink-mix-60-pomegranate-berries-bag" 3324 class="product-flavor-switch__thumb is-sold-out" 3325 role="listitem" 3326 3327 aria-label="Drink Mix 60 · Pomegranate Berries â Sold out" 3328 3329 3330 ><img src="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0000_Boostdrink-mix-bag-pomegranate-berries.png?v=1785767741&width=240" alt="Drink Mix 60 · Pomegranate Berries" srcset="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0000_Boostdrink-mix-bag-pomegranate-berries.png?v=1785767741&width=40 40w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0000_Boostdrink-mix-bag-pomegranate-berries.png?v=1785767741&width=80 80w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0000_Boostdrink-mix-bag-pomegranate-berries.png?v=1785767741&width=160 160w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0000_Boostdrink-mix-bag-pomegranate-berries.png?v=1785767741&width=240 240w" width="240" height="240" loading="lazy" class="product-flavor-switch__thumb-image"> 3331<span class="product-flavor-switch__thumb-tooltip" aria-hidden="true">Drink Mix 60 · Pomegranate Berries</span></a><a
3332 href="/products/naak-boost-drink-mix-60-variety-pack" 3333 class="product-flavor-switch__thumb" 3334 role="listitem" 3335 3336 aria-label="Boost⢠Drink Mix 60 · Variety Pack" 3337 3338 3339 ><img src="//www.naak.com/cdn/shop/files/Final_Website_-_Boost_Drink_Mixes_850ca78b-2538-45bc-9892-acf4c40d8050.png?v=1785852096&width=240" alt="Boost⢠Drink Mix 60 · Variety Pack" srcset="//www.naak.com/cdn/shop/files/Final_Website_-_Boost_Drink_Mixes_850ca78b-2538-45bc-9892-acf4c40d8050.png?v=1785852096&width=40 40w, //www.naak.com/cdn/shop/files/Final_Website_-_Boost_Drink_Mixes_850ca78b-2538-45bc-9892-acf4c40d8050.png?v=1785852096&width=80 80w, //www.naak.com/cdn/shop/files/Final_Website_-_Boost_Drink_Mixes_850ca78b-2538-45bc-9892-acf4c40d8050.png?v=1785852096&width=160 160w, //www.naak.com/cdn/shop/files/Final_Website_-_Boost_Drink_Mixes_850ca78b-2538-45bc-9892-acf4c40d8050.png?v=1785852096&width=240 240w" width="240" height="240" loading="lazy" class="product-flavor-switch__thumb-image"> 3340<span class="product-flavor-switch__thumb-tooltip" aria-hidden="true">Boost⢠Drink Mix 60 · Variety Pack</span></a></div> 3341 </div><div 3342 id="product-flavor-drawer" 3343 class="product-drawer product-drawer--flavor cart-drawer fixed inset-0 z-[80] overflow-hidden text-black" 3344 role="dialog" 3345 aria-modal="true" 3346 aria-labelledby="product-flavor-drawer-title" 3347 x-data="productFlavorDrawer($el)" 3348 x-show="openDrawer === 'product-flavor'" 3349 :aria-hidden="openDrawer === 'product-flavor' ? 'false' : 'true'" 3350 @keydown.escape.window="openDrawer === 'product-flavor' && closeDrawers()" 3351 @boilerplate:product-flavor-drawer:open.window="resetSelection()" 3352 style="display: none;" 3353> 3354
3354<script type="application/json" data-product-flavor-drawer-config> 3355 { 3356 "currentProductId": 10099179225392, 3357 "flavors": [{ 3358 "id": 9763368075568, 3359 "url": "\/products\/boost-drink-mix-60-neutral-bag", 3360 "title": "Drink Mix 60 · Neutral", 3361 "available": true 3362 },{ 3363 "id": 10099179225392, 3364 "url": "\/products\/boost-drink-mix-60-salted-cucumber-bag", 3365 "title": "Drink Mix 60 · Salted Cucumber", 3366 "available": true 3367 },{ 3368 "id": 15137969996080, 3369 "url": "\/products\/boost-drink-mix-60-pomegranate-berries-bag", 3370 "title": "Drink Mix 60 · Pomegranate Berries", 3371 "available": false 3372 },{ 3373 "id": 10105197035824, 3374 "url": "\/products\/naak-boost-drink-mix-60-variety-pack", 3375 "title": "Boost⢠Drink Mix 60 · Variety Pack", 3376 "available": true 3377 }] 3378 } 3379 </script>
3379 3380 <div 3381 class="cart-drawer__overlay absolute inset-0 z-0 bg-black/50 transition-opacity duration-200 ease-in-out" 3382 aria-hidden="true" 3383 x-show="openDrawer === 'product-flavor'" 3384 x-transition:enter="ease-out duration-200" 3385 x-transition:enter-start="opacity-0" 3386 x-transition:enter-end="opacity-100" 3387 x-transition:leave="ease-in duration-200" 3388 x-transition:leave-start="opacity-100" 3389 x-transition:leave-end="opacity-0" 3390 @click="closeDrawers()" 3391 ></div> 3392 3393 <div class="cart-drawer__stage absolute inset-0 z-10 pointer-events-none focus:outline-none"> 3394 <div 3395 class="cart-drawer__panel js-product-flavor-drawer-panel pointer-events-auto ml-auto flex h-lvh w-full max-w-[520px] transform transition duration-200 ease-in-out sm:duration-350" 3396 x-show="openDrawer === 'product-flavor'" 3397 x-transition:enter="transform ease-out duration-200 sm:duration-350" 3398 x-transition:enter-start="translate-x-full" 3399 x-transition:enter-end="translate-x-0" 3400 x-transition:leave="transform ease-in duration-200 sm:duration-350" 3401 x-transition:leave-start="translate-x-0" 3402 x-transition:leave-end="translate-x-full" 3403 > 3404 <header class="cart-drawer__header"> 3405 <p id="product-flavor-drawer-title" class="cart-drawer__header-title"> 3406 <span class="cart-drawer__header-count">Choose Your Flavor</span> 3407 </p> 3408 <button 3409 type="button" 3410 class="cart-drawer__close" 3411 aria-label="Close" 3412 @click="closeDrawers()" 3413 > 3414 <svg class="size-4" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 3415 <path d="M4 4l12 12M16 4 4 16" stroke="currentColor" stroke-width="1.5"/> 3416 </svg> 3417 </button> 3418</header> 3419 3420 3421 <div class="cart-drawer__content flex min-h-0 flex-1 flex-col overflow-y-auto"> 3422 <div class="product-flavor-drawer__body"> 3423 <div class="product-flavor-drawer__intro"> 3424 <h2 class="product-flavor-drawer__heading">Match your taste to your needs</h2><p class="product-flavor-drawer__intro-text">Built on the same 60g carb + sodium base, each flavor delivers a unique functional benefit to optimize your performance.</p></div> 3425 3426 <div class="product-flavor-drawer__grid" role="list"><button 3427 type="button" 3428 class="product-flavor-drawer__card" 3429 role="listitem" 3430 3431 data-flavor-id="9763368075568" 3432 3433 3434 @click="selectedId = 9763368075568" 3435 :class="{ 'is-selected': selectedId === 9763368075568 }" 3436 :aria-pressed="selectedId === 9763368075568 ? 'true' : 'false'" 3437 3438 3439 aria-label="Choose Drink Mix 60 · Neutral" 3440 3441 > 3442 <div class="product-flavor-drawer__media"><img src="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0002_Boost-drink-mix-bag-neutral.png?v=1785766991&width=420" alt="" srcset="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0002_Boost-drink-mix-bag-neutral.png?v=1785766991&width=210 210w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0002_Boost-drink-mix-bag-neutral.png?v=1785766991&width=420 420w" width="420" height="420" loading="lazy" class="product-flavor-drawer__image" sizes="210px"> 3443</div> 3444 3445 <div class="product-flavor-drawer__card-header"> 3446 <span class="product-flavor-drawer__radio" aria-hidden="true"> 3447 <span class="product-flavor-drawer__radio-dot"></span> 3448 </span><span class="product-flavor-drawer__name">Drink Mix 60 · Neutral</span></div> 3449 3450 <div class="product-flavor-drawer__details"><p class="product-flavor-drawer__ratio">2:1 glucose:fructose ratio</p><p class="product-flavor-drawer__description">Neutral flavour and low sweetness to avoid flavour fatigue, with 125mg of added sodium</p><p class="product-flavor-drawer__best-for"> 3451 <span class="product-flavor-drawer__best-for-label">Best for</span>
3452 <span class="product-flavor-drawer__best-for-value">fight flavour fatigue</span> 3453 </p><div class="product-flavor-drawer__meters"><div class="product-flavor-drawer__meter"> 3454 <p class="product-flavor-drawer__meter-label">Sodium Content</p> 3455 <div 3456 class="product-flavor-drawer__meter-segs" 3457 role="img" 3458 aria-label="Sodium Content: 1 out of 5" 3459 ><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span></div> 3460 </div><div class="product-flavor-drawer__meter"> 3461 <p class="product-flavor-drawer__meter-label">Sweetness</p> 3462 <div 3463 class="product-flavor-drawer__meter-segs" 3464 role="img" 3465 aria-label="Sweetness: 1 out of 5" 3466 ><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span></div> 3467 </div></div></div> 3468 </button><button 3469 type="button" 3470 class="product-flavor-drawer__card is-selected" 3471 role="listitem" 3472 3473 data-flavor-id="10099179225392" 3474 3475 3476 @click="selectedId = 10099179225392" 3477 :class="{ 'is-selected': selectedId === 10099179225392 }" 3478 :aria-pressed="selectedId === 10099179225392 ? 'true' : 'false'" 3479 3480 3481 aria-label="Choose Drink Mix 60 · Salted Cucumber" 3482 3483 > 3484 <div class="product-flavor-drawer__media"><img src="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0001_boost_salted_cucumber.png?v=1785767499&width=420" alt="" srcset="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0001_boost_salted_cucumber.png?v=1785767499&width=210 210w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0001_boost_salted_cucumber.png?v=1785767499&width=420 420w" width="420" height="420" loading="lazy" class="product-flavor-drawer__image" sizes="210px"> 3485</div> 3486 3487 <div class="product-flavor-drawer__card-header"> 3488 <span class="product-flavor-drawer__radio" aria-hidden="true"> 3489 <span class="product-flavor-drawer__radio-dot"></span> 3490 </span><span class="product-flavor-drawer__name">Drink Mix 60 · Salted Cucumber</span></div> 3491 3492 <div class="product-flavor-drawer__details"><p class="product-flavor-drawer__ratio">500MG Sodium</p><p class="product-flavor-drawer__description">Twice the sodium of our neutral mix with a subtle cucumber flavour, perfect for hot days and heavy sweaters.</p><p class="product-flavor-drawer__best-for"> 3493 <span class="product-flavor-drawer__best-for-label">Best for</span> 3494 <span class="product-flavor-drawer__best-for-value">Replenish the minerals lost in sweat</span> 3495 </p><div class="product-flavor-drawer__meters"><div class="product-flavor-drawer__meter"> 3496 <p class="product-flavor-drawer__meter-label">Sodium Content</p> 3497 <div 3498 class="product-flavor-drawer__meter-segs" 3499 role="img" 3500 aria-label="Sodium Content: 3 out of 5" 3501 ><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span></div> 3502 </div><div class="product-flavor-drawer__meter"> 3503 <p class="product-flavor-drawer__meter-label">Sweetness</p> 3504 <div 3505 class="product-flavor-drawer__meter-segs" 3506 role="img" 3507 aria-label="Sweetness: 1 out of 5" 3508 ><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span></div> 3509 </div></div></div> 3510 </button><button 3511 type="button" 3512 class="product-flavor-drawer__card is-sold-out" 3513 role="listitem" 3514 3515 data-flavor-id="15137969996080" 3516 3517 3518 disabled 3519 aria-disabled="true" 3520 aria-pressed="false" 3521 3522
3523 aria-label="Choose Drink Mix 60 · Pomegranate Berries" 3524 3525 > 3526 <div class="product-flavor-drawer__media is-sold-out"><img src="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0000_Boostdrink-mix-bag-pomegranate-berries.png?v=1785767741&width=420" alt="" srcset="//www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0000_Boostdrink-mix-bag-pomegranate-berries.png?v=1785767741&width=210 210w, //www.naak.com/cdn/shop/files/Product-Flavor-selector_0008s_0000_Boostdrink-mix-bag-pomegranate-berries.png?v=1785767741&width=420 420w" width="420" height="420" loading="lazy" class="product-flavor-drawer__image" sizes="210px"> 3527</div> 3528 3529 <div class="product-flavor-drawer__card-header"> 3530 <span class="product-flavor-drawer__radio" aria-hidden="true"> 3531 <span class="product-flavor-drawer__radio-dot"></span> 3532 </span><span class="product-flavor-drawer__name">Drink Mix 60 · Pomegranate Berries</span></div> 3533 3534 <div class="product-flavor-drawer__details"><p class="product-flavor-drawer__ratio">1:1 Glucose:Fructose</p><p class="product-flavor-drawer__description">Sweet pomegranate flavour for high-carb fueling, optimized to unlock intake rates up to 120g per hour.</p><p class="product-flavor-drawer__best-for"> 3535 <span class="product-flavor-drawer__best-for-label">Best for</span> 3536 <span class="product-flavor-drawer__best-for-value">High-carb fueling</span> 3537 </p><div class="product-flavor-drawer__meters"><div class="product-flavor-drawer__meter"> 3538 <p class="product-flavor-drawer__meter-label">Sodium Content</p> 3539 <div 3540 class="product-flavor-drawer__meter-segs" 3541 role="img" 3542 aria-label="Sodium Content: 2 out of 5" 3543 ><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span><span class="product-flavor-drawer__meter-seg"></span></div> 3544 </div><div class="product-flavor-drawer__meter"> 3545 <p class="product-flavor-drawer__meter-label">Sweetness</p> 3546 <div 3547 class="product-flavor-drawer__meter-segs" 3548 role="img" 3549 aria-label="Sweetness: 4 out of 5" 3550 ><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg is-filled"></span><span class="product-flavor-drawer__meter-seg"></span></div> 3551 </div></div></div> 3552 </button><button 3553 type="button" 3554 class="product-flavor-drawer__card" 3555 role="listitem" 3556 3557 data-flavor-id="10105197035824" 3558 3559 3560 @click="selectedId = 10105197035824" 3561 :class="{ 'is-selected': selectedId === 10105197035824 }" 3562 :aria-pressed="selectedId === 10105197035824 ? 'true' : 'false'" 3563 3564 3565 aria-label="Choose Boost⢠Drink Mix 60 · Variety Pack" 3566 3567 > 3568 <div class="product-flavor-drawer__media"><img src="//www.naak.com/cdn/shop/files/Final_Website_-_Boost_Drink_Mixes_850ca78b-2538-45bc-9892-acf4c40d8050.png?v=1785852096&width=420" alt="" srcset="//www.naak.com/cdn/shop/files/Final_Website_-_Boost_Drink_Mixes_850ca78b-2538-45bc-9892-acf4c40d8050.png?v=1785852096&width=210 210w, //www.naak.com/cdn/shop/files/Final_Website_-_Boost_Drink_Mixes_850ca78b-2538-45bc-9892-acf4c40d8050.png?v=1785852096&width=420 420w" width="420" height="420" loading="lazy" class="product-flavor-drawer__image" sizes="210px"> 3569</div> 3570 3571 <div class="product-flavor-drawer__card-header">
3572 <span class="product-flavor-drawer__radio" aria-hidden="true"> 3573 <span class="product-flavor-drawer__radio-dot"></span> 3574 </span><span class="product-flavor-drawer__name">Boost⢠Drink Mix 60 · Variety Pack</span></div> 3575 3576 3577 </button></div><p class="product-flavor-drawer__help"><span class="product-flavor-drawer__help-prefix">Still hesitating?</span><a href="/pages/nutrition-calculator" class="product-flavor-drawer__help-link">Calculate your nutrition needs â 3578 </a></p></div> 3579 </div> 3580 3581 <div class="product-flavor-drawer__footer"> 3582 <a 3583 class="product-flavor-drawer__continue" 3584 x-bind:href="getSelected() ? getSelected().url : '#'" 3585 @click="continueWithSelected($event)" 3586 x-bind:aria-disabled="!getSelected() || !getSelected().available ? 'true' : 'false'" 3587 > 3588 <span>Continue with</span> 3589 <span x-text="getSelected() ? getSelected().title : ''"></span> 3590 </a> 3591 </div> 3592 </div> 3593 </div> 3594</div> 3595 3596 3597 3598 3599 3600 3601<div class="product-format-switch" > 3602 <p class="product-format-switch__label"> 3603 <span class="product-format-switch__name">Format</span><span class="product-format-switch__value">Bag 975g</span></p> 3604 3605 <div 3606 class="product-format-switch__options" 3607 role="list" 3608 aria-label="Format" 3609 ><a 3610 href="/products/boost-drink-mix-60-salted-cucumber-single-serve" 3611 class="product-format-switch__pill" 3612 aria-label="Packet" 3613 role="listitem" 3614 >Packet</a><span 3615 class="product-format-switch__pill is-selected" 3616 aria-current="true" 3617 role="listitem" 3618 >Bag</span></div> 3619 </div> 3620 3621 3622 3623 3624 3625 3626 3627<div 3628 class="product-quantity-breaks product-quantity-option" 3629 style="margin-top: 0px; margin-bottom: 0px;" 3630 data-quantity-breaks 3631 data-base-quantity="1" 3632 data-package-label-singular="Drink Mix" 3633 data-package-label-plural="Drink Mixs" 3634 data-unit-price-suffix-type="units" 3635 data-servings-per-package="15" 3636 data-serving-label-singular="" 3637 data-serving-label-plural="" 3638 data-unit-price-suffix=" / unit" 3639 3640 3641> 3642 <p class="product-quantity-option__label"> 3643 <span class="product-quantity-option__name">Quantity</span> 3644 <span class="product-quantity-option__note" data-quantity-breaks-summary></span> 3645 </p> 3646 3647 <fieldset class="product-quantity-breaks__fieldset product-quantity-option__fieldset"> 3648 <legend class="sr-only">Quantity</legend> 3649 <div class="product-quantity-breaks__options product-quantity-option__options"> 3650 3651 3652 3653<div class="product-quantity-breaks__value" > 3654 <label 3655 for="qty-break-AWG9VTUVIYmVrTlBOd__quantity_break_tier_xYPFMy" 3656 class="product-quantity-breaks__pill is-selected" 3657 data-quantity-break-pill 3658 data-number="1" 3659 data-reduction="0" 3660 data-multiplication="1" 3661 3662 data-default="true" 3663 3664 > 3665 <input 3666 type="radio" 3667 id="qty-break-AWG9VTUVIYmVrTlBOd__quantity_break_tier_xYPFMy" 3668 name="product-10099179225392-quantity-break" 3669 value="AWG9VTUVIYmVrTlBOd__quantity_break_tier_xYPFMy" 3670 class="sr-only" 3671 data-quantity-break 3672 aria-label="x1" 3673 3674 3675 checked 3676 3677 > 3678 <span class="product-quantity-breaks__pill-label">x1</span> 3679 3680 </label> 3681</div> 3682 3683 3684 3685 3686<div class="product-quantity-breaks__value" > 3687 <label 3688 for="qty-break-ATkxyVEQwbm56YnFpN__quantity_break_tier_dLqmft" 3689 class="product-quantity-breaks__pill" 3690 data-quantity-break-pill 3691 data-number="2" 3692 data-reduction="0" 3693 data-multiplication="2" 3694 3695 > 3696 <input 3697 type="radio" 3698 id="qty-break-ATkxyVEQwbm56YnFpN__quantity_break_tier_dLqmft" 3699 name="product-10099179225392-quantity-break" 3700 value="ATkxyVEQwbm56YnFpN__quantity_break_tier_dLqmft" 3701 class="sr-only" 3702 data-quantity-break 3703 aria-label="x2" 3704 3705 3706 > 3707 <span class="product-quantity-breaks__pill-label">x2</span> 3708 3709 </label> 3710</div> 3711 3712 3713 3714 3715<div class="product-quantity-breaks__value" > 3716 <label 3717 for="qty-break-AcnpDeHk5K0NtUkN2c__quantity_break_tier_dEnXUd" 3718 class="product-quantity-breaks__pill" 3719 data-quantity-break-pill 3720 data-number="3" 3721 data-reduction="0" 3722 data-multiplication="3" 3723 3724 > 3725 <input 3726 type="radio" 3727 id="qty-break-AcnpDeHk5K0NtUkN2c__quantity_break_tier_dEnXUd" 3728 name="product-10099179225392-quantity-break" 3729 value="AcnpDeHk5K0NtUkN2c__quantity_break_tier_dEnXUd" 3730 class="sr-only" 3731 data-quantity-break 3732 aria-label="x3" 3733 3734 3735 > 3736 <span class="product-quantity-breaks__pill-label">x3</span> 3737 3738 </label> 3739</div> 3740 3741 3742 3743 </div> 3744 </fieldset> 3745</div> 3746 3747 3748 3749<div id="shopify-block-Aa3N5bGFDUCtadDV6Q__loop_subscriptions_loop_widget_FMi7Ya" class="shopify-block shopify-app-block"><div id="loop-widget-container-id-10099179225392" class="loop-widget-container loop-display-none"></div> 3750 3751 3752<!-- BEGIN app snippet: loop_skeleton_loader --><div id="loop-widget-skeleton-container-id-10099179225392" class="loop-widget-skeleton-container"> 3753 <div class="loop-widget-skeleton-purchase-options-container"> 3754 <div class="loop-widget-skeleton-purchase-option"> 3755 <div class="loop-widget-skeleton-purchase-option-header"> 3756 <div class="loop-widget-skeleton-spg-label-discount-wrapper"> 3757 <div class="loop-widget-skeleton-radio-placeholder skeleton-box"></div> 3758 <div class="loop-widget-skeleton-label-placeholder skeleton-box"></div> 3759 <div class="loop-widget-skeleton-discount-badge-placeholder skeleton-box"></div> 3760 </div> 3761 <div class="loop-widget-skeleton-purchase-option-price-container"> 3762 <div class="loop-widget-skeleton-price-placeholder skeleton-box"></div> 3763 </div> 3764 </div> 3765 <div class="loop-widget-skeleton-spg-container"> 3766 <div class="loop-widget-skeleton-selector-label-placeholder skeleton-box"></div> 3767 <div class="loop-widget-skeleton-selector-placeholder skeleton-box"></div> 3768 <div class="loop-widget-skeleton-description-placeholder skeleton-box"></div> 3769 </div> 3770 </div> 3771 <div class="loop-widget-skeleton-purchase-option loop-widget-skeleton-purchase-option-border-top loop-widget-skeleton-purchase-option-onetime"> 3772 <div class="loop-widget-skeleton-purchase-option-header"> 3773 <div class="loop-widget-skeleton-spg-label-discount-wrapper"> 3774 <div class="loop-widget-skeleton-radio-placeholder skeleton-box"></div> 3775 <div class="loop-widget-skeleton-label-placeholder skeleton-box"></div> 3776 <div class="loop-widget-skeleton-discount-badge-placeholder skeleton-box"></div> 3777 </div> 3778 <div class="loop-widget-skeleton-purchase-option-price-container"> 3779 <div class="loop-widget-skeleton-price-placeholder skeleton-box"></div> 3780 </div> 3781 </div> 3782 </div> 3783 </div> 3784</div><!-- END app snippet -->
3785<script type="text/javascript" src="https://cdn.shopify.com/extensions/01a0e810-6f0e-75a7-af9e-8d71945888fc/loop-subscriptions-276/assets/loop_widget.js" defer></script>
3785 3786
3787<script> 3788 try { 3789 const productObject = {"id":10099179225392,"title":"BOOST⢠Drink Mix 60 · Salted Cucumber · Bag","handle":"boost-drink-mix-60-salted-cucumber-bag","description":"\u003cp\u003eAll-natural 60g carbs + high-sodium drink mix for steady and fast-acting energy with extra sodium for hot days and heavy sweaters.\u003c\/p\u003e\n\u003cp\u003e\u003cem\u003eThe packaging you will receive may be different.\u003c\/em\u003e\u003c\/p\u003e","published_at":"2026-03-09T14:18:33-04:00","created_at":"2026-03-07T12:38:10-05:00","vendor":"Näak","type":"Drink Mixes","tags":["Boost","new","pfs:label-New"],"price":4800,"price_min":4800,"price_max":4800,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":50970992935216,"title":"1 bag - 15 servings","option1":"1 bag - 15 servings","option2":null,"option3":null,"sku":"BE-DM-CU-BG-01-CA","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"BOOST⢠Drink Mix 60 · Salted Cucumber · Bag - 1 bag - 15 servings","public_title":"1 bag - 15 servings","options":["1 bag - 15 servings"],"price":4800,"weight":0,"compare_at_price":null,"inventory_quantity":50,"inventory_management":"shopify","inventory_policy":"deny","barcode":null,"requires_selling_plan":false,"unit_price":320,"unit_price_measurement":{"measured_type":"count","quantity_value":"15.0","quantity_unit":"item","reference_value":1,"reference_unit":"item"},"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":4080}],"price":4080,"compare_at_price":4800,"per_delivery_price":4080,"unit_price":272,"
3789selling_plan_id":692439580976,"selling_plan_group_id":"eceb5dec9e45638dea1dbe91ef2100ca7cabc898"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/www.naak.com\/cdn\/shop\/files\/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130"],"featured_image":"\/\/www.naak.com\/cdn\/shop\/files\/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130","options":["Quantity"],"media":[{"alt":"Näak NA Drink Mixes BOOST⢠Drink Mix 60 · Salted Cucumber · Bag","id":44387623534896,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/www.naak.com\/cdn\/shop\/files\/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130"},"aspect_ratio":1.0,"height":1600,"media_type":"image","src":"\/\/www.naak.com\/cdn\/shop\/files\/naak-na-drink-mixes-1-bag-15-servings-boost-drink-mix-60-salted-cucumber-bag-1253784197.jpg?v=1786395130","width":1600}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"eceb5dec9e45638dea1dbe91ef2100ca7cabc898","name":"Subscribe and Save 15%","options":[{"name":"Deliver every","position":1,"values":["1 month"]}],"selling_plans":[{"id":692439580976,"name":"Deliver every 1 month","description":"\u003cul\u003e\n \u003cli\u003eâ Save 15% on every order\u003c\/li\u003e\n \u003cli\u003eâ Unlock exclusive member rewards\u003c\/li\u003e\n \u003cli\u003eâ Pause, skip or cancel anytime\u003c\/li\u003e\n\n\u003c\/ul\u003e","options":[{"name":"Deliver every","position":1,"value":"1 month"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":15}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"5284869"}],"content":"\u003cp\u003eAll-natural 60g carbs + high-sodium drink mix for steady and fast-acting energy with extra sodium for hot days and heavy sweaters.\u003c\/p\u003e\n\u003cp\u003e\u003cem\u003eThe packaging you will receive may be different.\u003c\/em\u003e\u003c\/p\u003e"}; 3790 window.LOOP_WIDGET = { 3791 [productObject.id]: { 3792 product: productObject, 3793 prepaidSellingPlans: {}, 3794 productBundleData: {}, 3795 templateName: "basic-bags-15-servings", 3796 preferences: [], 3797 texts: [], 3798 storeJson: {}, 3799 } 3800 }; 3801 3802 function renderLoopWidget(productId) { 3803 if (window.LoopSubscriptions && typeof window.LoopSubscriptions.startLoopWidget === "function") { 3804 window.LoopSubscriptions.startLoopWidget(productId); 3805 } else { 3806 setTimeout(() => renderLoopWidget(productId), 5); 3807 } 3808 } 3809 renderLoopWidget(productObject.id); 3810 } catch (error) { 3811 console.error(`Error loading Loop subscriptions widget: error${error?.message}`, "error", error); 3812 } 3813</script>
3813 3814 3815 3816</div> 3817 3818<div 3819 class="product-buy-buttons" 3820 style="margin-top: 8px; margin-bottom: 0px;" 3821 3822> 3823 3824 <div 3825 class="sr-only" 3826 aria-live="polite" 3827 role="status" 3828 aria-atomic="true" 3829 data-product-form-live 3830 ></div> 3831 3832 <form method="post" action="/cart/add" id="ProductForm-template--27273399271728__main-AOFFwQ0JsV0p0VkE2T__buy_buttons" accept-charset="UTF-8" class="product-buy-buttons__form flex flex-col gap-2" enctype="multipart/form-data" data-main-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 3833 <input 3834 type="hidden" 3835 name="id" 3836 value="50970992935216" 3837 data-main-product-variant-id 3838 > 3839 3840 3841 <input 3842 type="hidden" 3843 name="quantity" 3844 value="1" 3845 class="quantity__input" 3846 data-product-quantity 3847 > 3848 3849 3850 <p 3851 class="hidden text-sm text-red-700" 3852 data-product-form-error 3853 role="alert" 3854 ></p><div class="product-buy-buttons__row" id="klaviyo-bis-anchor"> 3855 3856 3857 3858 3859 3860 3861 3862<div 3863 class="product-add-to-cart-button min-w-0 flex-1" 3864 3865 3866> 3867 <button 3868 type="submit" 3869 name="add" 3870 id="klaviyo-bis-anchor-submit" 3871 class="product-atc-button product-atc-button--priced btn btn--primary w-full min-w-0" 3872 data-main-product-submit 3873 data-label-add="Add" 3874 data-label-sold-out="Sold out" 3875 3876 > 3877 <span class="product-atc-button__content" data-main-product-submit-default> 3878 <span 3879 data-main-product-submit-action 3880 data-label-add="Add" 3881 data-label-sold-out="Sold out" 3882 > 3883 3884 Add 3885 3886 </span> 3887 <span 3888 class="product-atc-button__sep" 3889 data-main-product-submit-sep 3890 3891 aria-hidden="true" 3892 >/</span 3893 > 3894 <span 3895 class="product-atc-button__price-group" 3896 data-main-product-submit-price-group 3897 3898 > 3899 <span class="product-atc-button__prices"> 3900 <span data-main-product-submit-price>$48.00</span> 3901 <s 3902 class="product-atc-button__compare" 3903 data-main-product-submit-compare 3904 hidden 3905 ></s> 3906 </span> 3907 </span> 3908 </span> 3909 3910 3911 <span 3912 class="product-atc-button__state product-atc-button__state--loading" 3913 data-main-product-submit-loading 3914 hidden 3915 aria-hidden="true" 3916 ><svg 3917 class="product-atc-button__loader" 3918 viewBox="0 0 442 231" 3919 fill="none" 3920 xmlns="http://www.w3.org/2000/svg" 3921 aria-hidden="true" 3922 focusable="false" 3923> 3924 <defs> 3925 <mask id="atc-loader-AblN4eGJpd0ZCK0M4c__add-to-cart" maskUnits="userSpaceOnUse" x="0" y="0" width="442" height="231"> 3926 <g class="product-atc-button__loader-fill"> 3927 <rect x="0" y="0" width="442" height="231" fill="white" /> 3928 </g> 3929 </mask> 3930 </defs> 3931 3932 <path 3933 class="product-atc-button__loader-outline" 3934 d="M442 67.3174V230.446H0L64.3086 149.227L104.251 150.075L181.309 90.6699L222.831 101.999L245.478 69.8906L267.538 75.4062L339.225 28.0244L365.334 38.1133L405.896 0L442 67.3174Z" 3935 fill="none" 3936 stroke="currentColor" 3937 stroke-width="1.5" 3938 opacity="0.2" 3939 /> 3940 3941 <path 3942 class="product-atc-button__loader-mountain" 3943 d="M442 67.3174V230.446H0L64.3086 149.227L104.251 150.075L181.309 90.6699L222.831 101.999L245.478 69.8906L267.538 75.4062L339.225 28.0244L365.334 38.1133L405.896 0L442 67.3174Z" 3944 fill="currentColor" 3945 mask="url(#atc-loader-AblN4eGJpd0ZCK0M4c__add-to-cart)" 3946 /> 3947</svg> 3948 3949 <span class="sr-only">Addingâ¦</span> 3950 </span> 3951 3952 3953 3954 <span 3955 class="product-atc-button__state product-atc-button__state--added" 3956 data-main-product-submit-added 3957 hidden 3958 aria-hidden="true" 3959 > 3960 <svg 3961 class="product-atc-button__check" 3962 width="16" 3963 height="16"
3964 viewBox="0 0 16 16" 3965 fill="none" 3966 aria-hidden="true" 3967 > 3968 <path d="M3 8.5L6.5 12L13 4" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"/> 3969 </svg> 3970 <span>Added</span> 3971 </span> 3972 3973 </button> 3974</div> 3975 3976 3977 3978 3979 </div> 3980 3981 <a 3982 id="klaviyo-bis-trigger" 3983 class="klaviyo-bis-trigger btn btn--secondary notify-me-bis w-full" 3984 href="#" 3985 3986 hidden 3987 3988 >Notify me when back in stock</a> 3989 3990 3991 3992 3993<p class="product-buy-buttons__shipping">Shipped within 48h</p><input type="hidden" name="product-id" value="10099179225392" /><input type="hidden" name="section-id" value="template--27273399271728__main" /></form> 3994 3995</div> 3996 3997 3998 3999 4000
4000<script type="application/json" data-main-product-variants> 4001 [{ 4002 "id": 50970992935216, 4003 "available": true, 4004 "options": ["1 bag - 15 servings"], 4005 "price_cents": 4800, 4006 "compare_at_cents": 0, 4007 "featured_media_id": null, 4008 "inventory_quantity": 72, 4009 "inventory_management": "shopify", 4010 "inventory_policy": "deny", 4011 "quantity_rule_min": 1, 4012 "quantity_rule_max": null, 4013 "quantity_rule_increment": 1 4014 }] 4015 </script>
4015 4016 </div> 4017 4018 4019 4020 4021 4022<div 4023 class="product-info-links" 4024 data-drawer-show-naak="true" 4025 data-drawer-show-ingredients="true" 4026 style="padding-bottom: 24px; 4027" 4028 4029><button 4030 type="button" 4031 class="product-info-links__link" 4032 @click="openProductDrawer('product-details', 'ingredients')" 4033 > 4034 Ingredients and nutrition facts 4035 </button><button 4036 type="button" 4037 class="product-info-links__link" 4038 @click="openProductDrawer('product-details', 'faq')" 4039 > 4040 FAQ 4041 </button><button 4042 type="button" 4043 class="product-info-links__link" 4044 @click="openProductDrawer('product-details', 'naak-plus')" 4045 > 4046 näak+ advantages 4047 </button></div> 4048 4049 4050 4051<div class="product-nutrition-plan-cta-container" style="padding-bottom: 24px; 4052"> 4053 <a 4054 href="/pages/nutrition-calculator" 4055 class="product-nutrition-plan-cta" 4056 4057 4058 > 4059 <span class="product-nutrition-plan-cta__label">Get your personalized nutrition plan</span> 4060 <svg 4061 class="product-nutrition-plan-cta__icon" 4062 width="16" 4063 height="16" 4064 viewBox="0 0 16 16" 4065 fill="none" 4066 xmlns="http://www.w3.org/2000/svg" 4067 > 4068 <path d="M8.67598 3.19976L13.476 7.99976L8.67598 12.7998" stroke="currentColor" stroke-width="1.5"/> 4069 <line x1="13.5" y1="8.04712" x2="1.5" y2="8.04712" stroke="currentColor" stroke-width="1.5"/> 4070 </svg> 4071 </a> 4072</div> 4073 4074 4075 4076 4077 4078 4079 <section 4080 class="product-upsell" 4081 style="padding-bottom: 0px; 4082" 4083 aria-label="Often purchased with" 4084 data-product-upsell 4085 data-product-id="10099179225392" 4086 data-intent="complementary" 4087 data-limit="2" 4088 data-design-mode="false" 4089 aria-busy="true" 4090 4091 > 4092 <p class="product-upsell__heading">Often purchased with</p> 4093 <template data-product-upsell-template> 4094 <article class="product-upsell-card" data-product-upsell-card> 4095 <a href="#" class="product-upsell-card__media" data-product-upsell-link tabindex="-1" aria-hidden="true"> 4096 <div class="product-upsell-card__image-wrap" data-product-upsell-image-wrap hidden> 4097 <img 4098 class="product-upsell-card__image" 4099 data-product-upsell-image 4100 alt="" 4101 loading="lazy" 4102 width="84" 4103 height="102" 4104 > 4105 </div> 4106 <div class="product-upsell-card__image-placeholder" data-product-upsell-image-placeholder aria-hidden="true"></div> 4107 </a> 4108 4109 <div class="product-upsell-card__body"> 4110 <div class="product-upsell-card__meta"> 4111 <p class="product-upsell-card__title"> 4112 <a href="#" class="product-upsell-card__title-link" data-product-upsell-link data-product-upsell-title></a> 4113 </p> 4114 <p class="product-upsell-card__subtitle" data-product-upsell-subtitle hidden></p> 4115 </div> 4116 4117 <div class="product-upsell-card__footer"> 4118 <div class="product-upsell-card__price"> 4119 <span class="product-upsell-card__price-current" data-product-upsell-price></span> 4120 <s class="product-upsell-card__price-compare" data-product-upsell-compare hidden></s> 4121 </div> 4122 4123 <form method="post" action="/cart/add" class="product-upsell-card__form" data-add-to-cart-form> 4124 <input type="hidden" name="id" value="" data-product-upsell-variant-id> 4125 <input type="hidden" name="quantity" value="1"> 4126 <button 4127 type="submit" 4128 class="product-upsell-card__add product-atc-button" 4129 data-add-to-cart-submit 4130 data-product-upsell-add 4131 > 4132 <span class="product-atc-button__content" data-product-upsell-add-label> 4133 Add 4134 </span> 4135 <span 4136 class="product-atc-button__state product-atc-button__state--loading" 4137 data-atc-submit-loading 4138 hidden 4139 aria-hidden="true" 4140 > 4141 <svg 4142 class="product-atc-button__loader" 4143 viewBox="0 0 442 231" 4144 fill="none" 4145 xmlns="http://www.w3.org/2000/svg" 4146 aria-hidden="true" 4147 focusable="false" 4148> 4149 <defs> 4150 <mask id="upsell-atc-loader" maskUnits="userSpaceOnUse" x="0" y="0" width="442" height="231"> 4151 <g class="product-atc-button__loader-fill"> 4152 <rect x="0" y="0" width="442" height="231" fill="white" /> 4153 </g> 4154 </mask> 4155 </defs> 4156 4157 <path 4158 class="product-atc-button__loader-outline" 4159 d="M442 67.3174V230.446H0L64.3086 149.227L104.251 150.075L181.309 90.6699L222.831 101.999L245.478 69.8906L267.538 75.4062L339.225 28.0244L365.334 38.1133L405.896 0L442 67.3174Z" 4160 fill="none" 4161 stroke="currentColor" 4162 stroke-width="1.5" 4163 opacity="0.2" 4164 /> 4165 4166 <path 4167 class="product-atc-button__loader-mountain" 4168 d="M442 67.3174V230.446H0L64.3086 149.227L104.251 150.075L181.309 90.6699L222.831 101.999L245.478 69.8906L267.538 75.4062L339.225 28.0244L365.334 38.1133L405.896 0L442 67.3174Z" 4169 fill="currentColor" 4170 mask="url(#upsell-atc-loader)" 4171 /> 4172</svg> 4173
4174 <span class="sr-only">Addingâ¦</span> 4175 </span> 4176 </button> 4177 </form> 4178 </div> 4179 </div> 4180</article> 4181 4182 </template> 4183 <div class="product-upsell__list" data-product-upsell-list hidden></div> 4184 <div class="product-upsell__skeletons" data-product-upsell-skeletons> 4185 4186 <article class="product-upsell-card product-upsell-card--skeleton" aria-hidden="true"> 4187 <div class="product-upsell-card__media"> 4188 <div class="product-upsell-card__skeleton-block product-upsell-card__skeleton-block--media"></div> 4189 </div> 4190 4191 <div class="product-upsell-card__body"> 4192 <div class="product-upsell-card__meta"> 4193 <div class="product-upsell-card__skeleton-block product-upsell-card__skeleton-block--title"></div> 4194 <div class="product-upsell-card__skeleton-block product-upsell-card__skeleton-block--subtitle"></div> 4195 </div> 4196 4197 <div class="product-upsell-card__footer"> 4198 <div class="product-upsell-card__skeleton-block product-upsell-card__skeleton-block--price"></div> 4199 <div class="product-upsell-card__skeleton-block product-upsell-card__skeleton-block--button"></div> 4200 </div> 4201 </div> 4202</article> 4203 4204 4205 <article class="product-upsell-card product-upsell-card--skeleton" aria-hidden="true"> 4206 <div class="product-upsell-card__media"> 4207 <div class="product-upsell-card__skeleton-block product-upsell-card__skeleton-block--media"></div> 4208 </div> 4209 4210 <div class="product-upsell-card__body"> 4211 <div class="product-upsell-card__meta"> 4212 <div class="product-upsell-card__skeleton-block product-upsell-card__skeleton-block--title"></div> 4213 <div class="product-upsell-card__skeleton-block product-upsell-card__skeleton-block--subtitle"></div> 4214 </div> 4215 4216 <div class="product-upsell-card__footer"> 4217 <div class="product-upsell-card__skeleton-block product-upsell-card__skeleton-block--price"></div> 4218 <div class="product-upsell-card__skeleton-block product-upsell-card__skeleton-block--button"></div> 4219 </div> 4220 </div> 4221</article> 4222 4223 4224 </div> 4225 <p class="sr-only" data-product-upsell-loading aria-live="polite"> 4226 Loading recommendations⦠4227 </p> 4228 <p class="product-upsell__empty text-sm text-[#757575]" data-product-upsell-empty hidden> 4229 4230 No recommendations at the moment. 4231 4232 </p> 4233 </section> 4234 4235 4236 4237 4238 4239 4240 </div> 4241 </div> 4242 </div> 4243 </div> 4244 4245 4246 4247 4248 4249<div 4250 id="product-details-drawer" 4251 class="product-drawer product-drawer--details cart-drawer fixed inset-0 z-50 overflow-hidden text-black" 4252 role="dialog" 4253 aria-modal="true" 4254 aria-labelledby="product-details-drawer-title" 4255 x-show="openDrawer === 'product-details'" 4256 :aria-hidden="openDrawer === 'product-details' ? 'false' : 'true'" 4257 @keydown.escape.window="openDrawer === 'product-details' && closeDrawers()" 4258 x-init=" 4259 const panels = 'reviews,ingredients,faq,naak-plus'.split(','); 4260 if (!panels.includes(productInfoPanel)) { 4261 productInfoPanel = panels[0] || 'naak-plus'; 4262 } 4263 " 4264 style="display: none;" 4265> 4266 <div 4267 class="cart-drawer__overlay absolute inset-0 z-0 bg-black/50 transition-opacity duration-200 ease-in-out" 4268 aria-hidden="true" 4269 x-show="openDrawer === 'product-details'" 4270 x-transition:enter="ease-out duration-200" 4271 x-transition:enter-start="opacity-0" 4272 x-transition:enter-end="opacity-100" 4273 x-transition:leave="ease-in duration-200" 4274 x-transition:leave-start="opacity-100" 4275 x-transition:leave-end="opacity-0" 4276 @click="closeDrawers()" 4277 ></div> 4278 4279 <div class="cart-drawer__stage absolute inset-0 z-10 pointer-events-none focus:outline-none"> 4280 <div 4281 class="cart-drawer__panel js-product-drawer-panel pointer-events-auto ml-auto flex h-lvh w-full max-w-[520px] transform transition duration-200 ease-in-out sm:duration-350" 4282 x-show="openDrawer === 'product-details'" 4283 x-transition:enter="transform ease-out duration-200 sm:duration-350" 4284 x-transition:enter-start="translate-x-full" 4285 x-transition:enter-end="translate-x-0" 4286 x-transition:leave="transform ease-in duration-200 sm:duration-350" 4287 x-transition:leave-start="translate-x-0" 4288 x-transition:leave-end="translate-x-full" 4289 > 4290 <header class="cart-drawer__header"> 4291 <p id="product-details-drawer-title" class="cart-drawer__header-title"> 4292 <span class="cart-drawer__header-count">Product Details</span> 4293 </p> 4294 <button 4295 type="button" 4296 class="cart-drawer__close" 4297 aria-label="Close" 4298 @click="closeDrawers()" 4299 > 4300 <svg class="size-4" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 4301 <path d="M4 4l12 12M16 4 4 16" stroke="currentColor" stroke-width="1.5"/> 4302 </svg> 4303 </button> 4304</header> 4305 4306 4307 <nav 4308 class="product-drawer__tabs" 4309 role="tablist" 4310 aria-label="Product details sections" 4311><button 4312 type="button" 4313 role="tab" 4314 class="product-drawer__tab" 4315 data-product-drawer-reviews-tab 4316 :class="productInfoPanel === 'reviews' && 'is-active'" 4317 :aria-selected="productInfoPanel === 'reviews' ? 'true' : 'false'" 4318 @click="productInfoPanel = 'reviews'; window.dispatchEvent(new CustomEvent('boilerplate:product-drawer-reviews:open'))" 4319 > 4320 reviews (8) 4321 </button><button 4322 type="button" 4323 role="tab" 4324 class="product-drawer__tab" 4325 :class="productInfoPanel === 'ingredients' && 'is-active'" 4326 :aria-selected="productInfoPanel === 'ingredients' ? 'true' : 'false'" 4327 @click="productInfoPanel = 'ingredients'" 4328 >Ingredients and nutrition facts</button><button 4329 type="button" 4330 role="tab" 4331 class="product-drawer__tab" 4332 :class="productInfoPanel === 'faq' && 'is-active'" 4333 :aria-selected="productInfoPanel === 'faq' ? 'true' : 'false'" 4334 @click="productInfoPanel = 'faq'" 4335 >FAQ</button><button 4336 type="button" 4337 role="tab" 4338 class="product-drawer__tab" 4339 :class="productInfoPanel === 'naak-plus' && 'is-active'" 4340 :aria-selected="productInfoPanel === 'naak-plus' ? 'true' : 'false'" 4341 @click="productInfoPanel = 'naak-plus'" 4342 >Näak+ benefits</button></nav> 4343 4344 4345 <div class="cart-drawer__content flex min-h-0 flex-1 flex-col overflow-y-auto"> 4346 <div class="product-drawer__body"><div x-show="productInfoPanel === 'reviews'" x-cloak> 4347 <div 4348 class="product-drawer__panel-section product-drawer-reviews" 4349 data-product-drawer-reviews 4350 data-product-id="10099179225392" 4351 > 4352
4352<script type="application/json" data-product-drawer-reviews-config> 4353 { 4354 "shopDomain": "naakbar.myshopify.com", 4355 "apiToken": "wqClGBkqgFE2kqdr7LGClX6xw7I", 4356 "productId": 10099179225392, 4357 "productHandle": "boost-drink-mix-60-salted-cucumber-bag", 4358 "productTitle": "BOOST⢠Drink Mix 60 · Salted Cucumber · Bag", 4359 "perPage": 15, 4360 "minRating": 3, 4361 "summary": { 4362 "rating": "5.0", 4363 "reviewCount": 8, 4364 "ordersLabel": null 4365 }, 4366 "strings": { 4367 "loading": "Loading reviewsâ¦", 4368 "loadingMore": "Loadingâ¦", 4369 "loadMore": "Load more reviews", 4370 "error": "Unable to load reviews right now.", 4371 "errorConfig": "Set the Judge.me private API token in theme settings.", 4372 "errorPermissions": "Invalid Judge.me token â use the public API token (not the private one).", 4373 "errorNetwork": "Unable to reach Judge.me. Check the public token and your connection.", 4374 "verified": "Verified", 4375 "ratingAria": "Rating __RATING__ out of 5", 4376 "globalNotePrefix": "Overall rating from", 4377 "athletesCount": "8 athletes" 4378 } 4379 } 4380 </script>
4380 4381 4382 <header class="product-drawer-reviews__summary"> 4383 <div class="product-drawer-reviews__summary-main"><p class="product-drawer-reviews__score">5.0</p><div class="product-drawer-reviews__summary-stats"><p class="product-drawer-reviews__summary-note"> 4384 <span>Overall rating from</span> 4385 <span class="product-drawer-reviews__summary-note-count">8 athletes</span> 4386 </p><p class="product-drawer-reviews__summary-orders"> 4387 +630 orders 4388 </p></div> 4389 </div> 4390 4391 <div class="product-drawer-reviews__histogram" data-product-drawer-reviews-histogram><div 4392 class="product-drawer-reviews__histogram-row" 4393 data-histogram-rating="5" 4394 > 4395 <div class="product-drawer-reviews__histogram-stars" aria-hidden="true"><svg 4396 class="product-drawer-reviews__histogram-star" 4397 width="12" 4398 height="12" 4399 viewBox="0 0 12 12" 4400 fill="none" 4401 xmlns="http://www.w3.org/2000/svg" 4402 > 4403 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4404 </svg><svg 4405 class="product-drawer-reviews__histogram-star" 4406 width="12" 4407 height="12" 4408 viewBox="0 0 12 12" 4409 fill="none" 4410 xmlns="http://www.w3.org/2000/svg" 4411 > 4412 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4413 </svg><svg 4414 class="product-drawer-reviews__histogram-star" 4415 width="12" 4416 height="12" 4417 viewBox="0 0 12 12" 4418 fill="none" 4419 xmlns="http://www.w3.org/2000/svg" 4420 > 4421 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4422 </svg><svg 4423 class="product-drawer-reviews__histogram-star" 4424 width="12" 4425 height="12" 4426 viewBox="0 0 12 12" 4427 fill="none" 4428 xmlns="http://www.w3.org/2000/svg" 4429 > 4430 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4431 </svg><svg 4432 class="product-drawer-reviews__histogram-star" 4433 width="12" 4434 height="12"
4435 viewBox="0 0 12 12" 4436 fill="none" 4437 xmlns="http://www.w3.org/2000/svg" 4438 > 4439 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4440 </svg></div> 4441 <span class="product-drawer-reviews__histogram-count" data-histogram-count> 4442 (0) 4443 </span> 4444 </div><div 4445 class="product-drawer-reviews__histogram-row" 4446 data-histogram-rating="4" 4447 > 4448 <div class="product-drawer-reviews__histogram-stars" aria-hidden="true"><svg 4449 class="product-drawer-reviews__histogram-star" 4450 width="12" 4451 height="12" 4452 viewBox="0 0 12 12" 4453 fill="none" 4454 xmlns="http://www.w3.org/2000/svg" 4455 > 4456 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4457 </svg><svg 4458 class="product-drawer-reviews__histogram-star" 4459 width="12" 4460 height="12" 4461 viewBox="0 0 12 12" 4462 fill="none" 4463 xmlns="http://www.w3.org/2000/svg" 4464 > 4465 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4466 </svg><svg 4467 class="product-drawer-reviews__histogram-star" 4468 width="12" 4469 height="12" 4470 viewBox="0 0 12 12" 4471 fill="none" 4472 xmlns="http://www.w3.org/2000/svg" 4473 > 4474 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4475 </svg><svg 4476 class="product-drawer-reviews__histogram-star" 4477 width="12" 4478 height="12" 4479 viewBox="0 0 12 12" 4480 fill="none" 4481 xmlns="http://www.w3.org/2000/svg" 4482 > 4483 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4484 </svg></div>
4485 <span class="product-drawer-reviews__histogram-count" data-histogram-count> 4486 (0) 4487 </span> 4488 </div><div 4489 class="product-drawer-reviews__histogram-row" 4490 data-histogram-rating="3" 4491 > 4492 <div class="product-drawer-reviews__histogram-stars" aria-hidden="true"><svg 4493 class="product-drawer-reviews__histogram-star" 4494 width="12" 4495 height="12" 4496 viewBox="0 0 12 12" 4497 fill="none" 4498 xmlns="http://www.w3.org/2000/svg" 4499 > 4500 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4501 </svg><svg 4502 class="product-drawer-reviews__histogram-star" 4503 width="12" 4504 height="12" 4505 viewBox="0 0 12 12" 4506 fill="none" 4507 xmlns="http://www.w3.org/2000/svg" 4508 > 4509 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4510 </svg><svg 4511 class="product-drawer-reviews__histogram-star" 4512 width="12" 4513 height="12" 4514 viewBox="0 0 12 12" 4515 fill="none" 4516 xmlns="http://www.w3.org/2000/svg" 4517 > 4518 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 4519 </svg></div> 4520 <span class="product-drawer-reviews__histogram-count" data-histogram-count> 4521 (0) 4522 </span> 4523 </div></div> 4524 </header> 4525 4526 <div class="product-drawer-reviews__content"> 4527 <div class="product-drawer-reviews__status" data-product-drawer-reviews-status hidden> 4528 <p class="product-drawer__placeholder" data-product-drawer-reviews-message></p> 4529 </div> 4530 4531 <div class="product-drawer-reviews__list" data-product-drawer-reviews-list role="list"></div> 4532 4533 <div class="product-drawer-reviews__footer" data-product-drawer-reviews-footer hidden> 4534 <button 4535 type="button" 4536 class="product-drawer-reviews__load-more btn btn--primary-outline" 4537 data-product-drawer-reviews-load-more 4538 > 4539 Load more reviews 4540 </button> 4541 </div> 4542 </div> 4543 </div> 4544 </div><div x-show="productInfoPanel === 'ingredients'" x-cloak> 4545 4546<div class="product-drawer__panel-section product-drawer-composition"> 4547 <p class="product-drawer-composition__title">Composition</p> 4548 4549 <div class="product-drawer-composition__sections"><div class="product-drawer-composition__block product-drawer-composition__block--ingredients"> 4550 <div class="product-drawer-composition__head"> 4551 <p class="product-drawer-composition__label">Ingredients</p> 4552 4553 </div><div class="product-drawer-composition__text"> 4554 <div class="product-drawer-composition__richtext"> 4555 <div class="metafield-rich_text_field"><p><strong>Ingredients</strong>: Sugars (Isomaltulose*, tapioca maltodextrin), Natural cucumber flavor, Sea salt, Citric Acid, Potassium citrate. </p></div> 4556 </div> 4557 </div><p class="product-drawer-composition__allergens">May contain traces of: gluten, eggs, fish, peanuts, tree nuts, soy, milk, celery, mustard, sesame.<br /> 4558Made in an Informed Sport certified facility.</p></div><div class="product-drawer-composition__block product-drawer-composition__block--nutrition"> 4559 <p class="product-drawer-composition__label">Nutrition facts</p> 4560 4561 <div class="product-drawer-composition__nutrition-image"> 4562 <img src="//www.naak.com/cdn/shop/files/BOOST_DM_CA_SC_d4f7f31d-733d-49c3-801a-13121435b072.jpg?v=1785418764&width=1200" alt="" srcset="//www.naak.com/cdn/shop/files/BOOST_DM_CA_SC_d4f7f31d-733d-49c3-801a-13121435b072.jpg?v=1785418764&width=400 400w, //www.naak.com/cdn/shop/files/BOOST_DM_CA_SC_d4f7f31d-733d-49c3-801a-13121435b072.jpg?v=1785418764&width=600 600w, //www.naak.com/cdn/shop/files/BOOST_DM_CA_SC_d4f7f31d-733d-49c3-801a-13121435b072.jpg?v=1785418764&width=800 800w, //www.naak.com/cdn/shop/files/BOOST_DM_CA_SC_d4f7f31d-733d-49c3-801a-13121435b072.jpg?v=1785418764&width=1000 1000w, //www.naak.com/cdn/shop/files/BOOST_DM_CA_SC_d4f7f31d-733d-49c3-801a-13121435b072.jpg?v=1785418764&width=1200 1200w" width="1200" height="1646" loading="lazy" class="product-drawer-composition__nutrition-img" sizes="(min-width: 520px) 472px, 100vw"> 4563 </div> 4564 </div><div class="product-drawer-composition__block product-drawer-composition__block--dietary"> 4565 <p class="product-drawer-composition__label">Dietary info</p> 4566 <div class="product-drawer-composition__text"> 4567 <div class="product-drawer-composition__richtext"> 4568 <div class="metafield-rich_text_field"><p>Vegan*<br /> 4569Gluten Free*<br /> 4570GMO Free*<br /> 4571<br /> 4572*but not independently certified as such</p></div> 4573 </div> 4574 </div> 4575 </div></div> 4576 </div> 4577 </div><div x-show="productInfoPanel === 'faq'" x-cloak> 4578 4579<div 4580 class="product-drawer__panel-section product-drawer-faq" 4581 x-data='{ openFaq: "faq-1" }' 4582 > 4583 <p class="product-drawer-faq__title">Everything you need to know</p> 4584 4585 4586 <div class="product-drawer-faq__list"> 4587 4588 <div class="product-drawer-faq__item" :class="openFaq === 'faq-1' && 'is-open'"> 4589 <button 4590 type="button" 4591 class="product-drawer-faq__trigger" 4592 :aria-expanded="openFaq === 'faq-1' ? 'true' : 'false'" 4593 @click="openFaq = openFaq === 'faq-1' ? null : 'faq-1'" 4594 >
4595 <span class="product-drawer-faq__question">What is näak BOOST⢠Drink Mix 60?</span> 4596 <span 4597 class="product-drawer-faq__icon" 4598 :class="openFaq === 'faq-1' && 'is-open'" 4599 aria-hidden="true" 4600 > 4601 <svg 4602 class="product-drawer-faq__icon-svg" 4603 width="16" 4604 height="16" 4605 viewBox="0 0 16 16" 4606 fill="none" 4607 xmlns="http://www.w3.org/2000/svg" 4608 > 4609 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4610 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4611 </svg> 4612 </span> 4613 </button><div 4614 class="product-drawer-faq__panel" 4615 x-show="openFaq === 'faq-1'" 4616 x-collapse 4617 style="display: none;" 4618 > 4619 <div class="product-drawer-faq__answer"><p>näak BOOST⢠Drink Mix is an optimized carb energy drink mix designed to fuel endurance athletes. Each portion delivers 60g of carbohydrates and 250mg of sodium to fuel moderate to high-intensity efforts without using artificial ingredients or heavy flavorings.</p></div> 4620 </div> 4621 </div> 4622 4623 <div class="product-drawer-faq__item" :class="openFaq === 'faq-2' && 'is-open'"> 4624 <button 4625 type="button" 4626 class="product-drawer-faq__trigger" 4627 :aria-expanded="openFaq === 'faq-2' ? 'true' : 'false'" 4628 @click="openFaq = openFaq === 'faq-2' ? null : 'faq-2'" 4629 > 4630 <span class="product-drawer-faq__question">What does näak BOOST⢠Drink Mix 60 Salted Cucumber taste like?</span> 4631 <span 4632 class="product-drawer-faq__icon" 4633 :class="openFaq === 'faq-2' && 'is-open'" 4634 aria-hidden="true" 4635 > 4636 <svg 4637 class="product-drawer-faq__icon-svg" 4638 width="16" 4639 height="16" 4640 viewBox="0 0 16 16" 4641 fill="none" 4642 xmlns="http://www.w3.org/2000/svg" 4643 > 4644 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4645 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4646 </svg> 4647 </span> 4648 </button><div 4649 class="product-drawer-faq__panel" 4650 x-show="openFaq === 'faq-2'" 4651 x-collapse 4652 style="display: none;" 4653 > 4654 <div class="product-drawer-faq__answer"><p>It has a very mild, lightly sweetened and light taste, making it drink very easily. It is specifically formulated to eliminate "flavor fatigue" and that sticky, sugary mouth feel that often causes runners to reject sweet gels and sports drinks late in a marathon or trail race.</p></div> 4655 </div> 4656 </div> 4657 4658 <div class="product-drawer-faq__item" :class="openFaq === 'faq-3' && 'is-open'"> 4659 <button 4660 type="button" 4661 class="product-drawer-faq__trigger" 4662 :aria-expanded="openFaq === 'faq-3' ? 'true' : 'false'" 4663 @click="openFaq = openFaq === 'faq-3' ? null : 'faq-3'" 4664 > 4665 <span class="product-drawer-faq__question">When should I use näak BOOST⢠Drink Mix 60?</span> 4666 <span 4667 class="product-drawer-faq__icon" 4668 :class="openFaq === 'faq-3' && 'is-open'" 4669 aria-hidden="true" 4670 > 4671 <svg 4672 class="product-drawer-faq__icon-svg" 4673 width="16" 4674 height="16" 4675 viewBox="0 0 16 16" 4676 fill="none" 4677 xmlns="http://www.w3.org/2000/svg" 4678 > 4679 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4680 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4681 </svg> 4682 </span> 4683 </button><div 4684 class="product-drawer-faq__panel" 4685 x-show="openFaq === 'faq-3'" 4686 x-collapse 4687 style="display: none;" 4688 > 4689 <div class="product-drawer-faq__answer"><p>Use BOOST⢠Drink Mix during any high-intensity training session, long run, or race where you need fast-acting and stable energy. Engineered for endurance, it is equally effective for runners, cyclists, and triathletes. Incorporating it into your training sessions also allows you to train your gut, ensuring your digestive system is fully adapted and race-day ready.</p></div> 4690 </div> 4691 </div> 4692 4693 <div class="product-drawer-faq__item" :class="openFaq === 'faq-4' && 'is-open'"> 4694 <button 4695 type="button" 4696 class="product-drawer-faq__trigger" 4697 :aria-expanded="openFaq === 'faq-4' ? 'true' : 'false'" 4698 @click="openFaq = openFaq === 'faq-4' ? null : 'faq-4'" 4699 >
4700 <span class="product-drawer-faq__question">What is the difference between näak BOOST⢠Drink Mix 60 and other sports drink mixes?</span> 4701 <span 4702 class="product-drawer-faq__icon" 4703 :class="openFaq === 'faq-4' && 'is-open'" 4704 aria-hidden="true" 4705 > 4706 <svg 4707 class="product-drawer-faq__icon-svg" 4708 width="16" 4709 height="16" 4710 viewBox="0 0 16 16" 4711 fill="none" 4712 xmlns="http://www.w3.org/2000/svg" 4713 > 4714 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4715 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4716 </svg> 4717 </span> 4718 </button><div 4719 class="product-drawer-faq__panel" 4720 x-show="openFaq === 'faq-4'" 4721 x-collapse 4722 style="display: none;" 4723 > 4724 <div class="product-drawer-faq__answer"><p>Unlike other sports drink mixes, näak BOOST⢠provides 60g of carbohydrate and is made with 100% natural ingredients that are inherently gentler on the gut. It has a light taste profile to deliver energy while avoiding flavor fatigue. Traditional sports drinks, by contrast, often rely on lower carb doses packed with heavy artificial flavors, chemical additives, and high sweetness, which can quickly saturate your palate and cause nausea during long endurance efforts..</p></div> 4725 </div> 4726 </div> 4727 4728 <div class="product-drawer-faq__item" :class="openFaq === 'faq-5' && 'is-open'"> 4729 <button 4730 type="button" 4731 class="product-drawer-faq__trigger" 4732 :aria-expanded="openFaq === 'faq-5' ? 'true' : 'false'" 4733 @click="openFaq = openFaq === 'faq-5' ? null : 'faq-5'" 4734 > 4735 <span class="product-drawer-faq__question">Is näak BOOST⢠Drink Mix 60 easy to digest?</span> 4736 <span 4737 class="product-drawer-faq__icon" 4738 :class="openFaq === 'faq-5' && 'is-open'" 4739 aria-hidden="true" 4740 > 4741 <svg 4742 class="product-drawer-faq__icon-svg" 4743 width="16" 4744 height="16" 4745 viewBox="0 0 16 16" 4746 fill="none" 4747 xmlns="http://www.w3.org/2000/svg" 4748 > 4749 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4750 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4751 </svg> 4752 </span> 4753 </button><div 4754 class="product-drawer-faq__panel" 4755 x-show="openFaq === 'faq-5'" 4756 x-collapse 4757 style="display: none;" 4758 > 4759 <div class="product-drawer-faq__answer"><p>Yes. It is specifically formulated with 100% natural, clean ingredients that are gentle on the stomach under intense running conditions. This prevents the stomach bloating and severe GI distress common with lower-quality, highly-processed sugar sports drinks.</p></div> 4760 </div> 4761 </div> 4762 4763 <div class="product-drawer-faq__item" :class="openFaq === 'faq-6' && 'is-open'"> 4764 <button 4765 type="button" 4766 class="product-drawer-faq__trigger" 4767 :aria-expanded="openFaq === 'faq-6' ? 'true' : 'false'" 4768 @click="openFaq = openFaq === 'faq-6' ? null : 'faq-6'" 4769 > 4770 <span class="product-drawer-faq__question">How do I use näak BOOST⢠Drink Mix 60 and how much do I need?</span> 4771 <span 4772 class="product-drawer-faq__icon" 4773 :class="openFaq === 'faq-6' && 'is-open'" 4774 aria-hidden="true" 4775 > 4776 <svg 4777 class="product-drawer-faq__icon-svg" 4778 width="16" 4779 height="16" 4780 viewBox="0 0 16 16" 4781 fill="none" 4782 xmlns="http://www.w3.org/2000/svg" 4783 > 4784 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4785 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4786 </svg> 4787 </span> 4788 </button><div 4789 class="product-drawer-faq__panel" 4790 x-show="openFaq === 'faq-6'" 4791 x-collapse 4792 style="display: none;" 4793 > 4794 <div class="product-drawer-faq__answer"><p>Mix one serving into 500ml (17 oz) of water and consume every hour during your activity. For endurance efforts longer than 90 minutes, you should aim for a minimum of 60 grams of c
4794arbohydrates per hour depending on your intensity and tolerance (and up to to 90g/h). To easily hit this target, you can mix and combine different products from the BOOST⢠energy system to customize your hourly intake and meet your specific goals.</p></div> 4795 </div> 4796 </div> 4797 4798 <div class="product-drawer-faq__item" :class="openFaq === 'faq-7' && 'is-open'"> 4799 <button 4800 type="button" 4801 class="product-drawer-faq__trigger" 4802 :aria-expanded="openFaq === 'faq-7' ? 'true' : 'false'" 4803 @click="openFaq = openFaq === 'faq-7' ? null : 'faq-7'" 4804 > 4805 <span class="product-drawer-faq__question">What allergens does Näak BOOST⢠Drink Mix 60 Salted Cucumber contain?</span> 4806 <span 4807 class="product-drawer-faq__icon" 4808 :class="openFaq === 'faq-7' && 'is-open'" 4809 aria-hidden="true" 4810 > 4811 <svg 4812 class="product-drawer-faq__icon-svg" 4813 width="16" 4814 height="16" 4815 viewBox="0 0 16 16" 4816 fill="none" 4817 xmlns="http://www.w3.org/2000/svg" 4818 > 4819 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4820 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4821 </svg> 4822 </span> 4823 </button><div 4824 class="product-drawer-faq__panel" 4825 x-show="openFaq === 'faq-7'" 4826 x-collapse 4827 style="display: none;" 4828 > 4829 <div class="product-drawer-faq__answer"><p>näak BOOST⢠Drink Mix Salted Cucumber is free from all major allergens. It is 100% plant-based, vegan, non-GMO, and naturally gluten-free. It uses only clean-label, natural ingredients to ensure it is completely safe and gentle for runners with food sensitivities or strict dietary preferences.</p></div> 4830 </div> 4831 </div> 4832 4833 <div class="product-drawer-faq__item" :class="openFaq === 'faq-8' && 'is-open'"> 4834 <button 4835 type="button" 4836 class="product-drawer-faq__trigger" 4837 :aria-expanded="openFaq === 'faq-8' ? 'true' : 'false'" 4838 @click="openFaq = openFaq === 'faq-8' ? null : 'faq-8'" 4839 > 4840 <span class="product-drawer-faq__question">Is näak BOOST⢠Drink Mix 60 Informed Sport certified?</span> 4841 <span 4842 class="product-drawer-faq__icon" 4843 :class="openFaq === 'faq-8' && 'is-open'" 4844 aria-hidden="true" 4845 > 4846 <svg 4847 class="product-drawer-faq__icon-svg" 4848 width="16" 4849 height="16" 4850 viewBox="0 0 16 16" 4851 fill="none" 4852 xmlns="http://www.w3.org/2000/svg" 4853 > 4854 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4855 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4856 </svg> 4857 </span> 4858 </button><div 4859 class="product-drawer-faq__panel" 4860 x-show="openFaq === 'faq-8'" 4861 x-collapse 4862 style="display: none;" 4863 > 4864 <div class="product-drawer-faq__answer"><p>Yes. Every production batch of näak BOOST⢠Drink Mix is rigorously tested and certified by the Informed Sport program. This guarantees the mix is entirely free of over 250 WADA (World Anti-Doping Agency) prohibited substances, giving competitive, elite, and drug-tested athletes total peace of mind at the start line.</p></div> 4865 </div> 4866 </div> 4867 4868 <div class="product-drawer-faq__item" :class="openFaq === 'faq-9' && 'is-open'"> 4869 <button 4870 type="button" 4871 class="product-drawer-faq__trigger" 4872 :aria-expanded="openFaq === 'faq-9' ? 'true' : 'false'" 4873 @click="openFaq = openFaq === 'faq-9' ? null : 'faq-9'" 4874 > 4875 <span class="product-drawer-faq__question">What types of carbs are in näak BOOST⢠Drink Mix 60 Salted Cucumber?</span>
4876 <span 4877 class="product-drawer-faq__icon" 4878 :class="openFaq === 'faq-9' && 'is-open'" 4879 aria-hidden="true" 4880 > 4881 <svg 4882 class="product-drawer-faq__icon-svg" 4883 width="16" 4884 height="16" 4885 viewBox="0 0 16 16" 4886 fill="none" 4887 xmlns="http://www.w3.org/2000/svg" 4888 > 4889 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4890 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 4891 </svg> 4892 </span> 4893 </button><div 4894 class="product-drawer-faq__panel" 4895 x-show="openFaq === 'faq-9'" 4896 x-collapse 4897 style="display: none;" 4898 > 4899 <div class="product-drawer-faq__answer"><p>The mix uses a precise combination of simple and complex carbohydrates, specifically utilizing a scientifically backed 2:1 glucose-to-fructose ratio. It delivers this optimal ratio by blending tapioca maltodextrin with beet-derived isomaltulose. This specific combination of ingredients ensures a rapid, immediate energy delivery to start, followed by a slow, controlled release of glucose to prevent sharp blood sugar spikes and subsequent energy crashes.</p></div> 4900 </div> 4901 </div></div> 4902 </div> 4903 </div><div x-show="productInfoPanel === 'naak-plus'" x-cloak> 4904 <div class="product-drawer__panel-section product-drawer-naak"> 4905 <div class="product-drawer-naak__intro"> 4906 <p class="product-drawer-naak__title">Save 15% with a Näak subscription</p> 4907 <p class="product-drawer-naak__lead">Enjoy your favourite products with subscriber-only benefits.</p> 4908 </div> 4909 4910 <ul class="product-drawer-naak__benefits" role="list"> 4911 <li class="product-drawer-naak__benefit"> 4912 <span class="product-drawer-naak__mark" aria-hidden="true">/</span> 4913 <p class="product-drawer-naak__text"> 4914 <strong>15% off</strong> every recurring order 4915 </p> 4916 </li> 4917 <li class="product-drawer-naak__benefit"> 4918 <span class="product-drawer-naak__mark" aria-hidden="true">/</span> 4919 <p class="product-drawer-naak__text"> 4920 <strong>Modify, pause or cancel</strong> your subscription anytime 4921 </p> 4922 </li> 4923 <li class="product-drawer-naak__benefit"> 4924 <span class="product-drawer-naak__mark" aria-hidden="true">/</span> 4925 <p class="product-drawer-naak__text"> 4926 <strong>Early access</strong> to new products 4927 </p> 4928 </li> 4929 <li class="product-drawer-naak__benefit"> 4930 <span class="product-drawer-naak__mark" aria-hidden="true">/</span> 4931 <p class="product-drawer-naak__text"> 4932 <strong>Exclusive access</strong> to sales and limited offers 4933 </p> 4934 </li> 4935 <li class="product-drawer-naak__benefit"> 4936 <span class="product-drawer-naak__mark" aria-hidden="true">/</span> 4937 <p class="product-drawer-naak__text"> 4938 <strong>Partner perks</strong> with our partners 4939 </p> 4940 </li> 4941 <li class="product-drawer-naak__benefit"> 4942 <span class="product-drawer-naak__mark" aria-hidden="true">/</span> 4943 <p class="product-drawer-naak__text"> 4944 Invitations to <strong>exclusive events</strong> 4945 </p> 4946 </li> 4947 <li class="product-drawer-naak__benefit"> 4948 <span class="product-drawer-naak__mark" aria-hidden="true">/</span> 4949 <p class="product-drawer-naak__text"> 4950 <strong>Tips and recommendations</strong> from our ambassador athletes 4951 </p> 4952 </li> 4953 <li class="product-drawer-naak__benefit"> 4954 <span class="product-drawer-naak__mark" aria-hidden="true">/</span> 4955 <p class="product-drawer-naak__text"> 4956 <strong>Access to our nutrition calculator</strong> and sync with your sports watch 4957 </p> 4958 </li> 4959 </ul> 4960</div> 4961 4962 </div></div> 4963 </div> 4964 4965 <div class="product-drawer__footer"> 4966 <button 4967 type="button" 4968 class="product-drawer__continue" 4969 @click="closeDrawers()" 4970 > 4971 All clear · Continue 4972 </button> 4973 </div> 4974 </div> 4975 </div> 4976</div> 4977 4978 4979 4980</div><section id="shopify-section-template--27273399271728__product-specs" class="shopify-section section-product-specs"><section 4981 class="product-specs" 4982 style=" 4983 --product-specs-padding-top: 120px; 4984 --product-specs-padding-bottom: 120px; 4985 " 4986 aria-label="Product specifications" 4987 4988> 4989 <div class="product-specs__grid"> 4990 <div class="product-specs__intro" > 4991 <p class="product-specs__heading" > 4992 BOOST⢠Drink Mix 60 · Salted Cucumber 4993 </p> 4994<div class="product-specs__description rte" > 4995 <div class="metafield-rich_text_field"><p>Fuel your high-intensity efforts with this easy-to-sip drink mix that delivers 60g of carbs and 500mg of sodium, perfect for hot days and heavy sweaters. Fast-absorbing, gut-friendly, and engineered for performance.</p></div> 4996 </div> 4997<div class="product-specs__logos" > 4998 <div 4999 class="pdp-logo-tooltip-host product-specs__logo product-specs__logo--has-tooltip" 5000 data-pdp-logo-tooltip 5001 5002> 5003 <button 5004 type="button" 5005 class="pdp-logo-tooltip__trigger product-specs__logo-trigger" 5006 aria-expanded="false" 5007 aria-describedby="product-specs-logo-tooltip-AZGlPMW40UGVJTGVGR__product_specs_logo_XfVj4h" 5008 > 5009 <img src="//www.naak.com/cdn/shop/files/informed.png?v=1785427660&width=240" alt="informed.png" srcset="//www.naak.com/cdn/shop/files/informed.png?v=1785427660&width=80 80w, //www.naak.com/cdn/shop/files/informed.png?v=1785427660&width=120 120w, //www.naak.com/cdn/shop/files/informed.png?v=1785427660&width=160 160w, //www.naak.com/cdn/shop/files/informed.png?v=1785427660&width=200 200w, //www.naak.com/cdn/shop/files/informed.png?v=1785427660&width=240 240w" width="240" height="300" loading="lazy" class="product-specs__logo-image" sizes="120px"> 5010 </button> 5011 <span id="product-specs-logo-tooltip-AZGlPMW40UGVJTGVGR__product_specs_logo_XfVj4h" class="pdp-logo-tooltip" role="tooltip">Tested for banned substances</span> 5012</div> 5013 5014 5015 5016 5017 5018</div> 5019 5020 5021 5022</div> 5023 5024 5025<div 5026 class="product-specs__details" 5027 x-data="{ openAccordion: null }" 5028 x-init="
5029 const defaultTrigger = $el.querySelector('[data-default-open]'); 5030 if (defaultTrigger) { 5031 openAccordion = defaultTrigger.dataset.accordionId; 5032 } 5033 " 5034 5035> 5036 <div class="product-specs__stats-line" > 5037 <div class="product-specs__stat" ><div class="product-specs__stat-value-row"><span class="product-specs__stat-value">60</span><span class="product-specs__stat-unit"> 5038 g 5039 </span></div><p class="product-specs__stat-label">Carbohydrates 5040</p> 5041 </div> 5042<div class="product-specs__stat" ><div class="product-specs__stat-value-row"><span class="product-specs__stat-value">500</span><span class="product-specs__stat-unit"> 5043 mg 5044 </span></div><p class="product-specs__stat-label">Sodium 5045</p> 5046 </div> 5047<div class="product-specs__stat" ><div class="product-specs__stat-value-row"><span class="product-specs__stat-value">2:1</span><span class="product-specs__stat-unit"> 5048 ratio 5049 </span></div><p class="product-specs__stat-label"></p> 5050 </div> 5051<button 5052 type="button" 5053 class="product-specs__nutrition-link" 5054 @click="openProductDrawer('product-details', 'ingredients')" 5055 5056 > 5057 Full nutrition facts 5058 </button> 5059 5060</div> 5061 5062 5063<div class="product-specs-accordion" > 5064 <button 5065 type="button" 5066 class="product-specs-accordion__trigger" 5067 id="ProductSpecsAccordion-ASjJMRENxTGJSYi9wM__accordion-sensory-trigger" 5068 data-accordion-id="ASjJMRENxTGJSYi9wM__accordion-sensory" 5069 data-default-open 5070 :aria-expanded="openAccordion === 'ASjJMRENxTGJSYi9wM__accordion-sensory' ? 'true' : 'false'" 5071 aria-controls="ProductSpecsAccordion-ASjJMRENxTGJSYi9wM__accordion-sensory" 5072 @click="openAccordion = openAccordion === 'ASjJMRENxTGJSYi9wM__accordion-sensory' ? null : 'ASjJMRENxTGJSYi9wM__accordion-sensory'" 5073 ><span class="product-specs-accordion__title">Sensory profile</span><span 5074 class="product-specs-accordion__icon" 5075 :class="openAccordion === 'ASjJMRENxTGJSYi9wM__accordion-sensory' && 'is-open'" 5076 aria-hidden="true" 5077 > 5078 <svg 5079 class="product-specs-accordion__icon-svg" 5080 width="16" 5081 height="16" 5082 viewBox="0 0 16 16" 5083 fill="none" 5084 xmlns="http://www.w3.org/2000/svg" 5085 > 5086 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 5087 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 5088 </svg> 5089 </span> 5090 </button> 5091 5092 <div 5093 id="ProductSpecsAccordion-ASjJMRENxTGJSYi9wM__accordion-sensory" 5094 class="product-specs-accordion__panel" 5095 role="region" 5096 aria-labelledby="ProductSpecsAccordion-ASjJMRENxTGJSYi9wM__accordion-sensory-trigger" 5097 x-show="openAccordion === 'ASjJMRENxTGJSYi9wM__accordion-sensory'" 5098 x-collapse 5099 style="display: none;" 5100 > 5101 <div class="product-specs-accordion__content"> 5102 <div > 5103 <div class="product-specs-scale product-specs-scale--desktop"><p class="product-specs-scale__label">Taste</p><div class="product-specs-scale__track"> 5104 <div class="product-specs-scale__segments" role="img" aria-label="Taste: 2/5"><span 5105 class="product-specs-scale__segment is-filled" 5106 aria-hidden="true" 5107 ></span><span 5108 class="product-specs-scale__segment is-filled" 5109 aria-hidden="true" 5110 ></span><span 5111 class="product-specs-scale__segment" 5112 aria-hidden="true" 5113 ></span><span 5114 class="product-specs-scale__segment" 5115 aria-hidden="true" 5116 ></span><span 5117 class="product-specs-scale__segment" 5118 aria-hidden="true" 5119 ></span></div><div class="product-specs-scale__anchors"><span class="product-specs-scale__anchor">Light</span><span class="product-specs-scale__anchor product-specs-scale__anchor--end">Intense</span></div></div> 5120</div> 5121 5122 </div> 5123<div > 5124 <div class="product-specs-scale product-specs-scale--desktop"><p class="product-specs-scale__label">Sweetness</p><div class="product-specs-scale__track"> 5125 <div class="product-specs-scale__segments" role="img" aria-label="Sweetness: 1/5"><span 5126 class="product-specs-scale__segment is-filled" 5127 aria-hidden="true" 5128 ></span><span 5129 class="product-specs-scale__segment" 5130 aria-hidden="true" 5131 ></span><span 5132 class="product-specs-scale__segment" 5133 aria-hidden="true" 5134 ></span><span 5135 class="product-specs-scale__segment" 5136 aria-hidden="true" 5137 ></span><span 5138 class="product-specs-scale__segment" 5139 aria-hidden="true" 5140 ></span></div><div class="product-specs-scale__anchors"><span class="product-specs-scale__anchor">Low</span><span class="product-specs-scale__anchor product-specs-scale__anchor--end">High</span></div></div> 5141</div> 5142 5143 </div> 5144<div > 5145 <div class="product-specs-scale product-specs-scale--desktop"><p class="product-specs-scale__label">Saltiness</p><div class="product-specs-scale__track"> 5146 <div class="product-specs-scale__segments" role="img" aria-label="Saltiness: 3/5"><span 5147 class="product-specs-scale__segment is-filled" 5148 aria-hidden="true" 5149 ></span><span 5150 class="product-specs-scale__segment is-filled" 5151 aria-hidden="true" 5152 ></span><span 5153 class="product-specs-scale__segment is-filled" 5154 aria-hidden="true" 5155 ></span><span 5156 class="product-specs-scale__segment" 5157 aria-hidden="true" 5158 ></span><span 5159 class="product-specs-scale__segment" 5160 aria-hidden="true" 5161 ></span></div><div class="product-specs-scale__anchors"><span class="product-specs-scale__anchor">Low</span><span class="product-specs-scale__anchor product-specs-scale__anchor--end">High</span></div></div> 5162</div> 5163 5164 </div> 5165<div > 5166 <div class="product-specs-scale product-specs-scale--desktop"><p class="product-specs-scale__label">Acidity</p><div class="product-specs-scale__track"> 5167 <div class="product-specs-scale__segments" role="img" aria-label="Acidity: 1/5"><span 5168 class="product-specs-scale__segment is-filled" 5169 aria-hidden="true" 5170 ></span><span 5171 class="product-specs-scale__segment" 5172 aria-hidden="true" 5173 ></span><span 5174 class="product-specs-scale__segment" 5175 aria-hidden="true" 5176 ></span><span 5177 class="product-specs-scale__segment" 5178 aria-hidden="true" 5179 ></span><span 5180 class="product-specs-scale__segment" 5181 aria-hidden="true" 5182 ></span></div><div class="product-specs-scale__anchors"><span class="product-specs-scale__anchor">Low</span><span class="product-specs-scale__anchor product-specs-scale__anchor--end">High</span></div></div> 5183</div> 5184 5185 </div> 5186 5187 </div> 5188 </div> 5189</div> 5190 5191 5192<div class="product-specs-accordion" > 5193 <button 5194 type="button" 5195 class="product-specs-accordion__trigger" 5196 id="ProductSpecsAccordion-AOG1wOXlrTDNVYStaZ__accordion-specs-trigger" 5197 data-accordion-id="AOG1wOXlrTDNVYStaZ__accordion-specs" 5198 5199 :aria-expanded="openAccordion === 'AOG1wOXlrTDNVYStaZ__accordion-specs' ? 'true' : 'false'" 5200 aria-controls="ProductSpecsAccordion-AOG1wOXlrTDNVYStaZ__accordion-specs" 5201 @click="openAccordion = openAccordion === 'AOG1wOXlrTDNVYStaZ__accordion-specs' ? null : 'AOG1wOXlrTDNVYStaZ__accordion-specs'" 5202 ><span class="product-specs-accordion__title">Specifications</span><span 5203 class="product-specs-accordion__icon" 5204 :class="openAccordion === 'AOG1wOXlrTDNVYStaZ__accordion-specs' && 'is-open'" 5205 aria-hidden="true" 5206 > 5207 <svg 5208 class="product-specs-accordion__icon-svg" 5209 width="16" 5210 height="16"
5211 viewBox="0 0 16 16" 5212 fill="none" 5213 xmlns="http://www.w3.org/2000/svg" 5214 > 5215 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 5216 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 5217 </svg> 5218 </span> 5219 </button> 5220 5221 <div 5222 id="ProductSpecsAccordion-AOG1wOXlrTDNVYStaZ__accordion-specs" 5223 class="product-specs-accordion__panel" 5224 role="region" 5225 aria-labelledby="ProductSpecsAccordion-AOG1wOXlrTDNVYStaZ__accordion-specs-trigger" 5226 x-show="openAccordion === 'AOG1wOXlrTDNVYStaZ__accordion-specs'" 5227 x-collapse 5228 style="display: none;" 5229 > 5230 <div class="product-specs-accordion__content"> 5231 <div class="product-specs-spec-table" > 5232 <div class="product-specs-spec-row" ><p class="product-specs-spec-row__label">Target Usage</p><p class="product-specs-spec-row__value">High-Intensity ⧠Racing ⧠Performance ⧠Endurance</p></div> 5233<div class="product-specs-spec-row" ><p class="product-specs-spec-row__label">Target Activities</p><p class="product-specs-spec-row__value">Trail Running ⧠Road Running ⧠Cycling ⧠Triathlon</p></div> 5234<div class="product-specs-spec-row" ><p class="product-specs-spec-row__label">Recommended Hourly Target</p><p class="product-specs-spec-row__value">60-90g carbs / hour</p></div> 5235<div class="product-specs-spec-row" ><p class="product-specs-spec-row__label">Carbohydrates Base</p><p class="product-specs-spec-row__value">60G ⧠1:1 ⧠Agave powder + Tapioca Maltodextrine</p></div> 5236<div class="product-specs-spec-row" ><p class="product-specs-spec-row__label">Taste Property</p><p class="product-specs-spec-row__value">Light Salted Cucumber Flavor ⧠Low Sweetness</p></div> 5237<div class="product-specs-spec-row" ><p class="product-specs-spec-row__label">Additional information</p><p class="product-specs-spec-row__value">Gluten free · soy free · lactose free · vegan · nut free · non-GMO</p></div> 5238 5239 5240</div> 5241 5242 5243 5244 </div> 5245 </div> 5246</div> 5247 5248 5249<div class="product-specs-accordion" > 5250 <button 5251 type="button" 5252 class="product-specs-accordion__trigger" 5253 id="ProductSpecsAccordion-AZ3BMMWlVcmdHRklKc__accordion-when-trigger" 5254 data-accordion-id="AZ3BMMWlVcmdHRklKc__accordion-when" 5255 data-default-open 5256 :aria-expanded="openAccordion === 'AZ3BMMWlVcmdHRklKc__accordion-when' ? 'true' : 'false'" 5257 aria-controls="ProductSpecsAccordion-AZ3BMMWlVcmdHRklKc__accordion-when" 5258 @click="openAccordion = openAccordion === 'AZ3BMMWlVcmdHRklKc__accordion-when' ? null : 'AZ3BMMWlVcmdHRklKc__accordion-when'" 5259 ><span class="product-specs-accordion__title">How to use</span><span 5260 class="product-specs-accordion__icon" 5261 :class="openAccordion === 'AZ3BMMWlVcmdHRklKc__accordion-when' && 'is-open'" 5262 aria-hidden="true" 5263 > 5264 <svg 5265 class="product-specs-accordion__icon-svg" 5266 width="16" 5267 height="16" 5268 viewBox="0 0 16 16" 5269 fill="none" 5270 xmlns="http://www.w3.org/2000/svg" 5271 > 5272 <path d="M0 8H16" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 5273 <path d="M8 0L8 15.9999" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/> 5274 </svg> 5275 </span> 5276 </button> 5277 5278 <div 5279 id="ProductSpecsAccordion-AZ3BMMWlVcmdHRklKc__accordion-when" 5280 class="product-specs-accordion__panel" 5281 role="region" 5282 aria-labelledby="ProductSpecsAccordion-AZ3BMMWlVcmdHRklKc__accordion-when-trigger" 5283 x-show="openAccordion === 'AZ3BMMWlVcmdHRklKc__accordion-when'" 5284 x-collapse 5285 style="display: none;" 5286 > 5287 <div class="product-specs-accordion__content"> 5288 <div class="product-specs__richtext rte" > 5289 <div class="metafield-rich_text_field"><p><strong>Add 1.5 scoops/1 single packet to 500 ml of water and shake well.</strong><br /> 5290Drink 1 serving every 60 minutes, sipping consistently.*<br /> 5291Customize your intake to meet your carb and sodium needs.<br /> 5292<br /> 5293*Based on a minimum recommendation of 60g of carbohydrates per hour for high-intensity efforts.</p></div> 5294 </div> 5295 5296 </div> 5297 </div> 5298</div> 5299 5300 5301 5302</div> 5303 5304 5305 5306 </div> 5307</section> 5308 5309 5310</section><section id="shopify-section-template--27273399271728__product_highlights_slider_Ub34mC" class="shopify-section section-product-highlights-slider"><section 5311 class="product-highlights-slider" 5312 data-product-highlights-slider 5313 aria-label="BOOST⢠energy system, engineered for performance." 5314 5315 > 5316 <div class="product-highlights-slider__head"> 5317 <h2 class="product-highlights-slider__title">BOOST⢠energy system, engineered for performance.</h2><div class="product-highlights-slider__nav"> 5318 <button 5319 type="button" 5320 class="product-highlights-slider__nav-btn" 5321 data-product-highlights-slider-prev 5322 aria-label="Previous" 5323 > 5324 <svg 5325 class="size-4 rotate-180" 5326 width="16" 5327 height="16"
5328 viewBox="0 0 16 16" 5329 fill="none" 5330 xmlns="http://www.w3.org/2000/svg" 5331 > 5332 <path d="M8.67598 3.19976L13.476 7.99976L8.67598 12.7998" stroke="currentColor" stroke-width="1.5"/> 5333 <line x1="13.5" y1="8.04712" x2="1.5" y2="8.04712" stroke="currentColor" stroke-width="1.5"/> 5334 </svg> 5335 </button> 5336 <button 5337 type="button" 5338 class="product-highlights-slider__nav-btn" 5339 data-product-highlights-slider-next 5340 aria-label="Next" 5341 > 5342 <svg 5343 class="size-4" 5344 width="16" 5345 height="16" 5346 viewBox="0 0 16 16" 5347 fill="none" 5348 xmlns="http://www.w3.org/2000/svg" 5349 > 5350 <path d="M8.67598 3.19976L13.476 7.99976L8.67598 12.7998" stroke="currentColor" stroke-width="1.5"/> 5351 <line x1="13.5" y1="8.04712" x2="1.5" y2="8.04712" stroke="currentColor" stroke-width="1.5"/> 5352 </svg> 5353 </button> 5354 </div></div> 5355 5356 <div class="product-highlights-slider__track"> 5357 <div 5358 class="product-highlights-slider__swiper swiper" 5359 data-product-highlights-slider-slider 5360 role="region" 5361 aria-roledescription="carousel" 5362 > 5363 <div class="swiper-wrapper"><div class="swiper-slide"> 5364 <div class="product-highlights-slider__card"><div class="product-highlights-slider__card-media"><img src="//www.naak.com/cdn/shop/files/BOOST_CAT_1.jpg?v=1785419470&width=828" alt="BOOST_CAT_1.jpg" srcset="//www.naak.com/cdn/shop/files/BOOST_CAT_1.jpg?v=1785419470&width=275 275w, //www.naak.com/cdn/shop/files/BOOST_CAT_1.jpg?v=1785419470&width=414 414w, //www.naak.com/cdn/shop/files/BOOST_CAT_1.jpg?v=1785419470&width=550 550w, //www.naak.com/cdn/shop/files/BOOST_CAT_1.jpg?v=1785419470&width=828 828w" width="828" height="1104" loading="lazy" class="product-highlights-slider__card-image" sizes="(min-width: 768px) 414px, 275px"> 5365</div><div class="product-highlights-slider__card-text"><p class="product-highlights-slider__card-title">All-natural ingredients</p><p class="product-highlights-slider__card-description">Real-food energy, designed for a clean and efficient delivery.</p></div></div> 5366 </div><div class="swiper-slide"> 5367 <div class="product-highlights-slider__card"><div class="product-highlights-slider__card-media"><img src="//www.naak.com/cdn/shop/files/BOOST_CAT_2.jpg?v=1785419464&width=828" alt="BOOST_CAT_2.jpg" srcset="//www.naak.com/cdn/shop/files/BOOST_CAT_2.jpg?v=1785419464&width=275 275w, //www.naak.com/cdn/shop/files/BOOST_CAT_2.jpg?v=1785419464&width=414 414w, //www.naak.com/cdn/shop/files/BOOST_CAT_2.jpg?v=1785419464&width=550 550w, //www.naak.com/cdn/shop/files/BOOST_CAT_2.jpg?v=1785419464&width=828 828w" width="828" height="1104" loading="lazy" class="product-highlights-slider__card-image" sizes="(min-width: 768px) 414px, 275px"> 5368</div><div class="product-highlights-slider__card-text"><p class="product-highlights-slider__card-title">Optimized carb fuel system</p><p class="product-highlights-slider__card-description">Simple and complex sources for steady, sustained energy.</p></div></div> 5369 </div><div class="swiper-slide"> 5370 <div class="product-highlights-slider__card"><div class="product-highlights-slider__card-media"><img src="//www.naak.com/cdn/shop/files/BOOST_CAT_3.jpg?v=1785419443&width=828" alt="BOOST_CAT_3.jpg" srcset="//www.naak.com/cdn/shop/files/BOOST_CAT_3.jpg?v=1785419443&width=275 275w, //www.naak.com/cdn/shop/files/BOOST_CAT_3.jpg?v=1785419443&width=414 414w, //www.naak.com/cdn/shop/files/BOOST_CAT_3.jpg?v=1785419443&width=550 550w, //www.naak.com/cdn/shop/files/BOOST_CAT_3.jpg?v=1785419443&width=828 828w" width="828" height="1104" loading="lazy" class="product-highlights-slider__card-image" sizes="(min-width: 768px) 414px, 275px"> 5371</div><div class="product-highlights-slider__card-text"><p class="product-highlights-slider__card-title">Purpose-driven flavours</p><p class="product-highlights-slider__card-description">Each with their functional benefits</p></div></div> 5372 </div><div class="swiper-slide"> 5373 <div class="product-highlights-slider__card"><div class="product-highlights-slider__card-media"><img src="//www.naak.com/cdn/shop/files/BOOST_CAT_4.jpg?v=1785419472&width=828" alt="BOOST_CAT_4.jpg" srcset="//www.naak.com/cdn/shop/files/BOOST_CAT_4.jpg?v=1785419472&width=275 275w, //www.naak.com/cdn/shop/files/BOOST_CAT_4.jpg?v=1785419472&width=414 414w, //www.naak.com/cdn/shop/files/BOOST_CAT_4.jpg?v=1785419472&width=550 550w, //www.naak.com/cdn/shop/files/BOOST_CAT_4.jpg?v=1785419472&width=828 828w" width="828" height="1104" loading="lazy" class="product-highlights-slider__card-image" sizes="(min-width: 768px) 414px, 275px"> 5374</div><div class="product-highlights-slider__card-text"><p class="product-highlights-slider__card-title">Informed Sports certified</p><p class="product-highlights-slider__card-description">for a total peace of mind.</p></div></div> 5375 </div></div> 5376 </div> 5377 </div></section> 5378</section><section id="shopify-section-template--27273399271728__editorial-quote" class="shopify-section section-editorial-quote"><section 5379 class="editorial-quote" 5380 style="--editorial-quote-overlay: 0.0;" 5381 aria-label="Editorial quote" 5382 5383 ><div class="editorial-quote__media" aria-hidden="true"><div class="hidden md:block editorial-quote__media-layer"> 5384 <img src="//www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=2500" alt="" srcset="//www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=750 750w, //www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=1100 1100w, //www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=1500 1500w, //www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=1800 1800w, //www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=2400 2400w, //www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=2500 2500w" width="2500" height="1563" loading="lazy" class="editorial-quote__media-item editorial-quote__media-item--desktop" sizes="100vw"> 5385 </div><div class="editorial-quote__media-layer block md:hidden"> 5386 <img src="//www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=1500" alt="" srcset="//www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=375 375w, //www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=550 550w, //www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=750 750w, //www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=1100 1100w, //www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=1200 1200w, //www.naak.com/cdn/shop/files/Malen_Osa.jpg?v=1785419578&width=1500 1500w" width="1500" height="938" loading="lazy" class="editorial-quote__media-item editorial-quote__media-item--mobile" sizes="100vw"> 5387 </div><div class="editorial-quote__overlay" aria-hidden="true"></div> 5388 </div><div class="editorial-quote__inner">
5389 <figure class="editorial-quote__card"><blockquote class="editorial-quote__text"> 5390 <p>« BOOST⢠Drink Mix is my go-to for both training and racing. It makes it easy to hit my carb targets while staying hydrated. »</p> 5391 </blockquote><figcaption class="editorial-quote__meta"><p class="editorial-quote__author">Malen Osa</p><p class="editorial-quote__detail">1st Lavaredo Ultra Trail by UTMB 2026 · Trail / Ultra</p></figcaption></figure> 5392 </div></section> 5393</section><section id="shopify-section-template--27273399271728__product_recommendations_carousel_rUjKhj" class="shopify-section section-product-recommendations-carousel"><section 5394 class="collection-carousel product-recommendations-carousel is-loading" 5395 data-collection-carousel 5396 data-product-recommendations-carousel 5397 data-section-id="template--27273399271728__product_recommendations_carousel_rUjKhj" 5398 data-product-id="10099179225392" 5399 data-intent="complementary" 5400 data-limit="6" 5401 data-empty-hint="No products to display. Select a collection or enable Shopify recommendations." 5402 data-design-mode="false" 5403 aria-label="Frequently purchased together" 5404 aria-busy="true" 5405 5406 > 5407 <div class="collection-carousel__head"> 5408 <h2 class="collection-carousel__title">Frequently purchased together</h2> 5409 </div> 5410 <p class="sr-only">Loading recommended productsâ¦</p> 5411 </section> 5412</section><section id="shopify-section-template--27273399271728__image_with_text_6FPjkh" class="shopify-section section-image-with-text"><section 5413 class="image-with-text image-with-text--image-right" 5414 style=" 5415 --image-with-text-padding-top: 24px; 5416 --image-with-text-padding-bottom: 24px; 5417 --image-with-text-media-min-height-mobile: 480px; 5418 --image-with-text-media-min-height-desktop: 820px; 5419 " 5420 aria-label="LOREM IPSUM" 5421> 5422 <div class="image-with-text__wrapper"><div class="image-with-text__media"><div class="hidden md:block image-with-text__media-frame"> 5423 <img src="//www.naak.com/cdn/shop/files/Sustainability_desktop.webp?v=1785436003&width=2500" alt="Sustainability_desktop.webp" srcset="//www.naak.com/cdn/shop/files/Sustainability_desktop.webp?v=1785436003&width=400 400w, //www.naak.com/cdn/shop/files/Sustainability_desktop.webp?v=1785436003&width=600 600w, //www.naak.com/cdn/shop/files/Sustainability_desktop.webp?v=1785436003&width=800 800w, //www.naak.com/cdn/shop/files/Sustainability_desktop.webp?v=1785436003&width=1000 1000w, //www.naak.com/cdn/shop/files/Sustainability_desktop.webp?v=1785436003&width=1200 1200w, //www.naak.com/cdn/shop/files/Sustainability_desktop.webp?v=1785436003&width=1600 1600w" width="2500" height="3107" loading="lazy" class="image-with-text__image" sizes="(min-width: 768px) 50vw, 100vw"> 5424 </div><div class="block md:hidden image-with-text__media-frame"> 5425 <img src="//www.naak.com/cdn/shop/files/Sustainability_mobile.webp?v=1785436092&width=1000" alt="Sustainability_mobile.webp" srcset="//www.naak.com/cdn/shop/files/Sustainability_mobile.webp?v=1785436092&width=400 400w, //www.naak.com/cdn/shop/files/Sustainability_mobile.webp?v=1785436092&width=600 600w, //www.naak.com/cdn/shop/files/Sustainability_mobile.webp?v=1785436092&width=800 800w, //www.naak.com/cdn/shop/files/Sustainability_mobile.webp?v=1785436092&width=1000 1000w" width="1000" height="1250" loading="lazy" class="image-with-text__image" sizes="100vw"> 5426 </div></div><div class="image-with-text__panel"> 5427 <div class="image-with-text__content"><h2 class="image-with-text__title image-with-text__title--h2" > 5428 2à less water, <br /> 54292à less CO2. 5430 </h2><div class="image-with-text__body"><div class="image-with-text__richtext rte" > 5431 <div class="metafield-rich_text_field"><p><strong>Sugar</strong><br /> 5432Beet sugar* vs Fructose: 10à less water to produce 1kg of sugar<br /> 5433<em>*Isomaltulose is made from beet sugar</em><br /> 5434<br /> 5435<strong>Starch</strong><br /> 5436Tapioca starch* vs Corn starch: uses 2à less CO2 to produce the same amount of starch.<br /> 5437<em>*Maltodextrin is made from starch.</em></p></div> 5438 </div></div><a 5439 href="/pages/sustainability" 5440 class="btn btn--primary-outline" 5441 5442 > 5443 LEARN MORE 5444 </a></div> 5445 </div> 5446 </div> 5447</section> 5448 5449 5450</section><section id="shopify-section-template--27273399271728__product_pdp_links_YGUChK" class="shopify-section section-product-pdp-links"><section 5451 class="product-pdp-links" 5452 aria-label="Product links" 5453 5454 > 5455 <div class="product-pdp-links__list"><button 5456 type="button" 5457 class="product-pdp-links__item" 5458 @click="openProductDrawer('product-details', 'faq')" 5459 >
5460 <span class="product-pdp-links__label">FAQ · All you need to know</span> 5461 <svg 5462 class="product-pdp-links__icon" 5463 width="16" 5464 height="16" 5465 viewBox="0 0 16 16" 5466 fill="none" 5467 xmlns="http://www.w3.org/2000/svg" 5468 > 5469 <path d="M8.67598 3.19976L13.476 7.99976L8.67598 12.7998" stroke="currentColor" stroke-width="1.5"/> 5470 <line x1="13.5" y1="8.04712" x2="1.5" y2="8.04712" stroke="currentColor" stroke-width="1.5"/> 5471 </svg> 5472 </button><button 5473 type="button" 5474 class="product-pdp-links__item" 5475 @click="openProductDrawer('product-details', 'reviews')" 5476 aria-label="Rated 5.0 out of 5.0" 5477 > 5478 <span class="product-pdp-links__reviews-meta"> 5479 <span class="product-pdp-links__label">Reviews (8)</span> 5480 <span class="product-pdp-links__stars" aria-hidden="true"><svg 5481 class="product-pdp-links__star" 5482 width="12" 5483 height="12" 5484 viewBox="0 0 12 12" 5485 fill="none" 5486 xmlns="http://www.w3.org/2000/svg" 5487 > 5488 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 5489 </svg> 5490<svg 5491 class="product-pdp-links__star" 5492 width="12" 5493 height="12" 5494 viewBox="0 0 12 12" 5495 fill="none" 5496 xmlns="http://www.w3.org/2000/svg" 5497 > 5498 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 5499 </svg> 5500<svg 5501 class="product-pdp-links__star" 5502 width="12" 5503 height="12" 5504 viewBox="0 0 12 12" 5505 fill="none" 5506 xmlns="http://www.w3.org/2000/svg" 5507 > 5508 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 5509 </svg> 5510<svg 5511 class="product-pdp-links__star" 5512 width="12" 5513 height="12" 5514 viewBox="0 0 12 12" 5515 fill="none" 5516 xmlns="http://www.w3.org/2000/svg" 5517 > 5518 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 5519 </svg> 5520<svg 5521 class="product-pdp-links__star" 5522 width="12" 5523 height="12"
5524 viewBox="0 0 12 12" 5525 fill="none" 5526 xmlns="http://www.w3.org/2000/svg" 5527 > 5528 <path d="M5.70941 0.145073C5.80605 -0.0487729 6.08263 -0.0487733 6.17926 0.145072L7.82361 3.4435C7.86182 3.52016 7.93503 3.57335 8.01974 3.58601L11.6649 4.1306C11.8791 4.1626 11.9646 4.42565 11.8101 4.57745L9.1812 7.16059C9.1201 7.22062 9.09214 7.30669 9.10628 7.39116L9.71475 11.0262C9.7505 11.2398 9.52675 11.4024 9.33463 11.3023L6.06556 9.60038C5.98958 9.56082 5.89909 9.56082 5.82312 9.60038L2.55404 11.3023C2.36192 11.4024 2.13817 11.2398 2.17393 11.0262L2.7824 7.39116C2.79654 7.30669 2.76857 7.22062 2.70748 7.16059L0.0786117 4.57745C-0.0758841 4.42565 0.00958318 4.1626 0.223804 4.1306L3.86893 3.58601C3.95364 3.57335 4.02685 3.52016 4.06507 3.4435L5.70941 0.145073Z" fill="currentColor"/> 5529 </svg> 5530<span class="product-pdp-links__rating">5.0</span> 5531 </span> 5532 </span> 5533 <svg 5534 class="product-pdp-links__icon" 5535 width="16" 5536 height="16" 5537 viewBox="0 0 16 16" 5538 fill="none" 5539 xmlns="http://www.w3.org/2000/svg" 5540 > 5541 <path d="M8.67598 3.19976L13.476 7.99976L8.67598 12.7998" stroke="currentColor" stroke-width="1.5"/> 5542 <line x1="13.5" y1="8.04712" x2="1.5" y2="8.04712" stroke="currentColor" stroke-width="1.5"/> 5543 </svg> 5544 </button><a href="/pages/nutrition-calculator" class="product-pdp-links__item" > 5545 <span class="product-pdp-links__label">Get your personalized nutrition plan</span> 5546 <svg 5547 class="product-pdp-links__icon" 5548 width="16" 5549 height="16" 5550 viewBox="0 0 16 16" 5551 fill="none" 5552 xmlns="http://www.w3.org/2000/svg" 5553 > 5554 <path d="M8.67598 3.19976L13.476 7.99976L8.67598 12.7998" stroke="currentColor" stroke-width="1.5"/> 5555 <line x1="13.5" y1="8.04712" x2="1.5" y2="8.04712" stroke="currentColor" stroke-width="1.5"/> 5556 </svg> 5557 </a></div></section> 5558 5559 5560</section> 5561 </main> 5562 5563 <!-- BEGIN sections: footer-group --> 5564<section id="shopify-section-sections--27256355258672__trust-bar" class="shopify-section shopify-section-group-footer-group section-trust-bar"><section 5565 class="trust-bar" 5566 aria-label="Trust and reassurance" 5567 5568 > 5569 <div 5570 class="trust-bar__swiper" 5571 data-trust-bar 5572 role="region" 5573 aria-roledescription="carousel" 5574 aria-label="Trust and reassurance" 5575 > 5576 <div class="trust-bar__track" data-trust-bar-track><div class="trust-bar__slide" > 5577 <div class="trust-bar__item"><p class="trust-bar__title">Free delivery from 70$</p><p class="trust-bar__description">Fast, tracked worldwide shipping.</p></div> 5578 </div><div class="trust-bar__slide" > 5579 <div class="trust-bar__item"><p class="trust-bar__title">Natural & sustainable ingredients</p><p class="trust-bar__description">Selected for their effectiveness and low impact.</p></div> 5580 </div><div class="trust-bar__slide" > 5581 <div class="trust-bar__item"><p class="trust-bar__title">Flexible subscription</p><p class="trust-bar__description">Change, pause or cancel anytime.</p></div> 5582 </div></div><div class="trust-bar__progress" data-trust-bar-progress aria-hidden="true"><button 5583 type="button" 5584 class="trust-bar__progress-segment is-active" 5585 data-trust-bar-segment 5586 aria-label="Free delivery from 70$" 5587 ></button><button 5588 type="button" 5589 class="trust-bar__progress-segment" 5590 data-trust-bar-segment 5591 aria-label="Natural & sustainable ingredients" 5592 ></button><button 5593 type="button" 5594 class="trust-bar__progress-segment" 5595 data-trust-bar-segment 5596 aria-label="Flexible subscription" 5597 ></button></div></div> 5598 </section> 5599</section><div id="shopify-section-sections--27256355258672__footer" class="shopify-section shopify-section-group-footer-group section-footer"><footer 5600 class="footer" 5601 role="contentinfo" 5602 aria-label="Footer navigation" 5603 5604> 5605 <div class="footer-main"> 5606 <div class="footer-logo footer-logo--mobile"><a id="logo-footer" href="/" class="footer-logo__link text-currentColor" aria-label="Näak NA">
5607 <svg width="296" height="227" viewBox="0 0 296 227" fill="none" xmlns="http://www.w3.org/2000/svg"> 5608 <path d="M183.656 158.735C173.082 158.735 166.4 167.024 166.4 176.908C166.4 186.792 173.181 194.98 183.656 194.98C194.031 194.98 201.016 186.692 201.016 176.808C201.016 167.024 194.031 158.735 183.656 158.735Z" fill="currentColor"/> 5609 <path d="M262.165 138.112H263.641C264.383 138.112 264.917 138.63 264.917 139.357C264.917 139.926 264.595 140.344 264.074 140.509L264.967 142.014H264.302L263.51 140.59H262.733V142.014H262.165V138.112ZM263.444 143.344C265.21 143.344 266.682 141.886 266.682 140.103C266.682 138.321 265.21 136.863 263.444 136.863C261.682 136.863 260.206 138.321 260.206 140.103C260.206 141.886 261.682 143.344 263.444 143.344Z" fill="currentColor"/> 5610 <path d="M264.369 139.358C264.369 138.887 264.094 138.596 263.508 138.596H262.731V140.104H263.461C264.06 140.104 264.369 139.829 264.369 139.358Z" fill="currentColor"/> 5611 <path d="M121.504 158.737C110.93 158.737 104.248 167.026 104.248 176.91C104.248 186.79 111.029 194.979 121.504 194.979C131.88 194.979 138.864 186.69 138.864 176.807C138.864 167.026 131.88 158.737 121.504 158.737Z" fill="currentColor"/> 5612 <path d="M253.972 203.764L234.62 179.304L229.931 183.597V203.764H218.957V144.483L229.931 136.653V170.716L252.575 149.952H267.043L242.303 172.314L268.141 203.764H253.972ZM211.093 203.764H200.515V196.378C196.129 201.569 190.04 205.063 182.161 205.063C166.598 205.063 155.327 192.585 155.327 176.51C155.327 160.436 166.698 148.654 182.161 148.654C190.04 148.654 196.129 152.247 200.515 157.439L211.093 149.952V203.764ZM263.446 136.247C265.567 136.247 267.295 137.996 267.295 140.119C267.295 142.241 265.567 143.958 263.446 143.958C261.325 143.958 259.59 142.21 259.59 140.087C259.59 137.964 261.325 136.247 263.446 136.247ZM148.939 203.764H138.364V196.375C133.975 201.566 127.889 205.063 120.01 205.063C104.447 205.063 93.1734 192.581 93.1734 176.507C93.1734 160.432 104.547 148.651 120.01 148.651C127.889 148.651 133.975 152.247 138.364 157.439L148.939 149.949V203.764ZM86.8379 203.764H75.7609V174.113C75.7609 164.029 70.3737 158.737 62.8934 158.737C54.6114 158.737 48.828 165.125 48.828 174.312V203.764H37.8539V149.952L48.6283 157.539C51.7197 152.047 57.9054 148.554 65.6883 148.554C76.6624 148.554 86.8379 155.74 86.8379 171.016V203.764ZM112.426 127.484C116.516 127.484 119.707 130.581 119.707 134.674C119.707 138.967 116.516 142.063 112.426 142.063C108.237 142.063 105.046 138.967 105.046 134.674C105.046 130.581 108.237 127.484 112.426 127.484ZM132.877 127.484C136.867 127.484 140.058 130.581 140.058 134.674C140.058 138.967 136.867 142.063 132.877 142.063C128.688 142.063 125.494 138.967 125.494 134.674C125.494 130.581 128.688 127.484 132.877 127.484ZM271.822 0L244.658 25.5212L227.174 18.7655L179.166 50.493L164.392 46.7998L149.226 68.3001L121.42 60.714L69.8153 100.493L43.0665 99.9246L0 154.311V227H296V45.0766L271.822 0Z" fill="currentColor"/> 5613 </svg> 5614</a> 5615</div> 5616 5617 <div class="footer-logo footer-logo--desktop"><a id="logo-footer" href="/" class="footer-logo__link text-currentColor" aria-label="Näak NA"> 5618 <svg width="296" height="227" viewBox="0 0 296 227" fill="none" xmlns="http://www.w3.org/2000/svg"> 5619 <path d="M183.656 158.735C173.082 158.735 166.4 167.024 166.4 176.908C166.4 186.792 173.181 194.98 183.656 194.98C194.031 194.98 201.016 186.692 201.016 176.808C201.016 167.024 194.031 158.735 183.656 158.735Z" fill="currentColor"/> 5620 <path d="M262.165 138.112H263.641C264.383 138.112 264.917 138.63 264.917 139.357C264.917 139.926 264.595 140.344 264.074 140.509L264.967 142.014H264.302L263.51 140.59H262.733V142.014H262.165V138.112ZM263.444 143.344C265.21 143.344 266.682 141.886 266.682 140.103C266.682 138.321 265.21 136.863 263.444 136.863C261.682 136.863 260.206 138.321 260.206 140.103C260.206 141.886 261.682 143.344 263.444 143.344Z" fill="currentColor"/> 5621 <path d="M264.369 139.358C264.369 138.887 264.094 138.596 263.508 138.596H262.731V140.104H263.461C264.06 140.104 264.369 139.829 264.369 139.358Z" fill="currentColor"/> 5622 <path d="M121.504 158.737C110.93 158.737 104.248 167.026 104.248 176.91C104.248 186.79 111.029 194.979 121.504 194.979C131.88 194.979 138.864 186.69 138.864 176.807C138.864 167.026 131.88 158.737 121.504 158.737Z" fill="currentColor"/> 5623 <path d="M253.972 203.764L234.62 179.304L229.931 183.597V203.764H218.957V144.483L229.931 136.653V170.716L252.575 149.952H267.043L242.303 172.314L268.141 203.764H253.972ZM211.093 203.764H200.515V196.378C196.129 201.569 190.04 205.063 182.161 205.063C166.598 205.063 155.327 192.585 155.327 176.51C155.327 160.436 166.698 148.654 182.161 148.654C190.04 148.654 196.129 152.247 200.515 157.439L211.093 149.952V203.764ZM263.446 136.247C265.567 136.247 267.295 137.996 267.295 140.119C267.295 142.241 265.567 143.958 263.446 143.958C261.325 143.958 259.59 142.21 259.59 140.087C259.59 137.964 261.325 136.247 263.446 136.247ZM148.939 203.764H138.364V196.375C133.975 201.566 127.889 205.063 120.01 205.063C104.447 205.063 93.1734 192.581 93.1734 176.507C93.1734 160.432 104.547 148.651 120.01 148.651C127.889 148.651 133.975 152.247 138.364 157.439L148.939 149.949V203.764ZM86.8379 203.764H75.7609V174.113C75.7609 164.029 70.3737 158.737 62.8934 158.737C54.6114 158.737 48.828 165.125 48.828 174.312V203.764H37.8539V149.952L48.6283 157.539C51.7197 152.047 57.9054 148.554 65.6883 148.554C76.6624 148.554 86.8379 155.74 86.8379 171.016V203.764ZM112.426 127.484C116.516 127.484 119.707 130.581 119.707 134.674C119.707 138.967 116.516 142.063 112.426 142.063C108.237 142.063 105.046 138.967 105.046 134.674C105.046 130.581 108.237 127.484 112.426 127.484ZM132.877 127.484C136.867 127.484 140.058 130.581 140.058 134.674C140.058 138.967 136.867 142.063 132.877 142.063C128.688 142.063 125.494 138.967 125.494 134.674C125.494 130.581 128.688 127.484 132.877 127.484ZM271.822 0L244.658 25.5212L227.174 18.7655L179.166 50.493L164.392 46.7998L149.226 68.3001L121.42 60.714L69.8153 100.493L43.0665 99.9246L0 154.311V227H296V45.0766L271.822 0Z" fill="currentColor"/> 5624 </svg> 5625</a> 5626</div> 5627 5628 <div class="footer-content"> 5629 <div class="footer-panel footer-panel--newsletter"> 5630 <div class="footer-panel__inner footer-panel__inner--newsletter"> 5631 <div class="footer-aside"><nav class="footer-social" aria-label="Social media"><a 5632 href="https://www.facebook.com/naakbar" 5633 class="footer-social__link" 5634 target="_blank" 5635 rel="noopener noreferrer" 5636 aria-label="Facebook" 5637 ><svg 5638 class="size-4 text-white" 5639 width="10" 5640 height="16"
5641 viewBox="0 0 10 16" 5642 fill="none" 5643 xmlns="http://www.w3.org/2000/svg" 5644 > 5645 <path d="M9.34473 8.9995L9.86346 6.104H6.62096V4.225C6.62096 3.433 7.07375 2.6605 8.52608 2.6605H10V0.1955C10 0.1955 8.66262 0 7.38359 0C4.7135 0 2.96826 1.387 2.96826 3.8975V6.1045H0V9H2.96826V16H6.62096V9L9.34473 8.9995Z" fill="currentColor"/> 5646 </svg></a><a 5647 href="https://www.instagram.com/naakbars/" 5648 class="footer-social__link" 5649 target="_blank" 5650 rel="noopener noreferrer" 5651 aria-label="Instagram" 5652 ><svg 5653 class="size-4 text-white" 5654 width="16" 5655 height="16" 5656 viewBox="0 0 16 16" 5657 fill="none" 5658 xmlns="http://www.w3.org/2000/svg" 5659 > 5660 <path d="M8.00015 0C5.82743 0 5.55499 0.00921734 4.70168 0.048135C3.85016 0.0869812 3.26861 0.22224 2.75973 0.419973C2.23365 0.624421 1.7875 0.897988 1.34275 1.34273C0.897988 1.78747 0.624421 2.23367 0.419997 2.75975C0.222217 3.26861 0.0870051 3.85016 0.0481112 4.70168C0.00919353 5.55499 0 5.82743 0 8.00015C0 10.1728 0.00919353 10.4453 0.0481112 11.2986C0.0870051 12.1501 0.222217 12.7317 0.419997 13.2405C0.624445 13.7666 0.898012 14.2127 1.34275 14.6575C1.78752 15.1023 2.23365 15.3758 2.75973 15.5803C3.26861 15.778 3.85016 15.9133 4.70168 15.9521C5.55499 15.991 5.82743 16.0003 8.00015 16.0003C10.1728 16.0003 10.4453 15.991 11.2986 15.9521C12.1501 15.9133 12.7317 15.778 13.2405 15.5803C13.7666 15.3758 14.2127 15.1023 14.6575 14.6575C15.1023 14.2127 15.3758 13.7666 15.5803 13.2405C15.778 12.7317 15.9133 12.1501 15.9521 11.2986C15.991 10.4453 16.0003 10.1728 16.0003 8.00015C16.0003 5.82743 15.991 5.55499 15.9521 4.70168C15.9133 3.85016 15.778 3.26861 15.5803 2.75975C15.3758 2.23367 15.1023 1.78747 14.6575 1.34273C14.2127 0.897988 13.7666 0.624421 13.2405 0.419973C12.7317 0.22224 12.1501 0.0869812 11.2986 0.048135C10.4453 0.00921734 10.1728 0 8.00015 0ZM8.00015 1.44145C10.1362 1.44145 10.3893 1.44962 11.2329 1.48811C12.0129 1.52367 12.4365 1.654 12.7184 1.76356C13.0918 1.9087 13.3583 2.08205 13.6382 2.362C13.9182 2.64195 14.0916 2.90846 14.2367 3.28187C14.3463 3.56378 14.4766 3.98739 14.5121 4.76739C14.5506 5.61098 14.5588 5.86402 14.5588 8.00013C14.5588 10.1362 14.5506 10.3893 14.5121 11.2329C14.4766 12.0129 14.3463 12.4365 14.2367 12.7184C14.0916 13.0918 13.9182 13.3583 13.6382 13.6382C13.3583 13.9182 13.0918 14.0916 12.7184 14.2367C12.4365 14.3463 12.0129 14.4766 11.2329 14.5121C10.3894 14.5506 10.1364 14.5588 8.00013 14.5588C5.86385 14.5588 5.61089 14.5506 4.76739 14.5121C3.98737 14.4766 3.56378 14.3463 3.2819 14.2367C2.90844 14.0916 2.64195 13.9182 2.36202 13.6382C2.08207 13.3583 1.9087 13.0918 1.76356 12.7184C1.654 12.4365 1.5237 12.0129 1.48811 11.2329C1.44962 10.3893 1.44145 10.1362 1.44145 8.00013C1.44145 5.86402 1.44962 5.61098 1.48811 4.76739C1.5237 3.98737 1.654 3.56378 1.76356 3.2819C1.9087 2.90844 2.08207 2.64195 2.362 2.36202C2.64195 2.08205 2.90846 1.9087 3.28187 1.76356C3.56378 1.654 3.98739 1.52367 4.76739 1.48811C5.61098 1.44962 5.86402 1.44145 8.00013 1.44145" fill="currentColor"/> 5661 <path d="M8.00035 10.6673C6.52752 10.6673 5.33361 9.47334 5.33361 8.00056C5.33361 6.52774 6.52752 5.33382 8.00035 5.33382C9.47312 5.33382 10.667 6.52774 10.667 8.00056C10.667 9.47334 9.47312 10.6673 8.00035 10.6673ZM8.00035 3.89237C5.73143 3.89237 3.89215 5.73164 3.89215 8.00056C3.89215 10.2694 5.73143 12.1087 8.00035 12.1087C10.2692 12.1087 12.1085 10.2694 12.1085 8.00056C12.1085 5.73164 10.2692 3.89237 8.00035 3.89237ZM13.2308 3.73005C13.2308 4.26028 12.801 4.69006 12.2708 4.69006C11.7406 4.69006 11.3108 4.26028 11.3108 3.73005C11.3108 3.19985 11.7406 2.77002 12.2708 2.77002C12.801 2.77002 13.2308 3.19985 13.2308 3.73005Z" fill="currentColor"/> 5662 </svg></a><a 5663 href="https://x.com/naakbars" 5664 class="footer-social__link" 5665 target="_blank" 5666 rel="noopener noreferrer" 5667 aria-label="X" 5668 ><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 5669 <path d="M9.52165 6.77486L15.4777 0H14.066L8.89582 5.88229L4.76436 0H0L6.2466 8.896L0 16H1.41166L6.87244 9.78743L11.2356 16H16L9.52165 6.77486ZM7.58885 8.97371L6.95596 8.088L1.91986 1.04H4.08793L8.15117 6.728L8.78406 7.61371L14.0672 15.008H11.8991L7.58885 8.97371Z" fill="white"/> 5670 </svg></a><a 5671 href="https://www.youtube.com/@naak" 5672 class="footer-social__link" 5673 target="_blank" 5674 rel="noopener noreferrer" 5675 aria-label="YouTube" 5676 ><svg 5677 class="size-4 text-white" 5678 width="20" 5679 height="16"
5680 viewBox="0 0 20 16" 5681 fill="none" 5682 xmlns="http://www.w3.org/2000/svg" 5683 > 5684 <path fill-rule="evenodd" clip-rule="evenodd" d="M10 0C7.69889 0 5.5098 0.145938 3.53257 0.409298C1.42768 0.689646 0 2.50729 0 4.52451V11.4755C0 13.4927 1.42768 15.3104 3.53257 15.5907C5.5098 15.8541 7.69889 16 10 16C12.3011 16 14.4902 15.8541 16.4674 15.5907C18.5723 15.3104 20 13.4927 20 11.4755V4.52452C20 2.50729 18.5723 0.689646 16.4674 0.409298C14.4902 0.145938 12.3011 0 10 0ZM8.49851 4.66915C8.28298 4.54204 8.01452 4.53872 7.7958 4.66043C7.57706 4.78215 7.44186 5.0101 7.44186 5.25714V10.7429C7.44186 10.9899 7.57706 11.2178 7.7958 11.3395C8.01452 11.4613 8.28298 11.4579 8.49851 11.3308L13.1497 8.58798C13.3598 8.46409 13.4884 8.24082 13.4884 8C13.4884 7.75918 13.3598 7.53591 13.1497 7.41202L8.49851 4.66915Z" fill="currentColor"/> 5685 </svg></a><a 5686 href="https://www.tiktok.com/@naakbars" 5687 class="footer-social__link" 5688 target="_blank" 5689 rel="noopener noreferrer" 5690 aria-label="TikTok" 5691 ><svg class="size-4 text-white" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"> 5692 <path d="M11.5 1h-2v8.5a2 2 0 11-2-2v-2a4 4 0 104 4V5.5a5.9 5.9 0 003.5 1.1v-2A3.5 3.5 0 0111.5 1z"/> 5693 </svg></a><a 5694 href="https://www.strava.com/clubs/naak" 5695 class="footer-social__link" 5696 target="_blank" 5697 rel="noopener noreferrer" 5698 aria-label="Strava" 5699 ><svg class="size-4 text-white" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"> 5700 <path d="M6.5 2L3 9h2.5l1-2h2l1 2H12L8.5 2H6.5zm1 1.8L8.7 7H6.3l1.2-3.2z"/> 5701 <path d="M9.5 9l1 2 1-2h1.5L11 13.5 9 9h.5z"/> 5702 </svg></a></nav> 5703<div class="footer-bcorp text-white" aria-label="Certified B Corporation"><svg 5704 class="footer-bcorp__logo" 5705 width="76" 5706 height="105" 5707 viewBox="0 0 76 129" 5708 fill="none" 5709 xmlns="http://www.w3.org/2000/svg" 5710 aria-hidden="true" 5711 > 5712 <path d="M22.1865 36.939H37.8895C41.7092 36.939 46.747 36.939 49.3485 38.5187C52.2014 40.2163 54.4413 43.305 54.4413 47.557C54.4413 52.1625 52.0206 55.6206 48.0124 57.2554V57.3811C53.3489 58.4736 56.2568 62.474 56.2568 67.8105C56.2568 74.1766 51.7063 80.244 43.1003 80.244H22.1865V36.939ZM27.9474 55.5499H39.4771C46.0239 55.5499 48.6961 53.1843 48.6961 48.6337C48.6961 42.6291 44.4521 41.7803 39.4771 41.7803H27.9474V55.5499ZM27.9474 75.3791H42.3851C47.3522 75.3791 50.5116 72.3454 50.5116 67.6219C50.5116 61.9789 45.9611 60.407 41.1118 60.407H27.9474V75.3791Z" fill="currentColor"/> 5713 <path d="M70.9937 58.5993C70.9937 76.7858 56.2496 91.53 38.0552 91.53C19.8686 91.53 5.12448 76.7858 5.12448 58.5993C5.12448 40.4127 19.8686 25.6686 38.0552 25.6686C56.2496 25.6764 70.9937 40.4206 70.9937 58.5993ZM38.063 20.6543C17.1179 20.6543 0.133789 37.6384 0.133789 58.5835C0.133789 79.5287 17.1179 96.5128 38.063 96.5128C59.0161 96.5128 76.0001 79.5287 76.0001 58.5835C76.0001 37.6384 59.0161 20.6543 38.063 20.6543Z" fill="currentColor"/> 5714 <path d="M75.9133 104.521H0.204102V109.496H75.9133V104.521Z" fill="currentColor"/> 5715 <path d="M73.5482 99.0438C73.6425 99.0438 73.7289 99.0359 73.8154 99.0359C73.894 99.0281 73.9726 99.0124 74.0355 98.9888C74.1062 98.9574 74.1533 98.9102 74.1926 98.8552C74.2319 98.7923 74.2477 98.7137 74.2477 98.6115C74.2477 98.5251 74.2319 98.4465 74.2005 98.3993C74.1691 98.3443 74.1219 98.305 74.0669 98.2815C74.0119 98.25 73.9569 98.2343 73.8783 98.2186C73.8075 98.2107 73.7447 98.2107 73.6661 98.2107H73.1238V99.0517H73.5482V99.0438ZM73.7289 97.8649C74.0433 97.8649 74.2712 97.9278 74.4284 98.0535C74.5777 98.1793 74.6563 98.3679 74.6563 98.6273C74.6563 98.8709 74.5856 99.036 74.4599 99.1538C74.3262 99.2639 74.1612 99.3267 73.9569 99.3503L74.7114 100.514H74.2712L73.5482 99.3739H73.1159V100.514H72.6994V97.8728H73.7289V97.8649ZM71.8741 99.9476C71.9606 100.183 72.0942 100.396 72.2671 100.569C72.4321 100.741 72.6286 100.875 72.8565 100.977C73.0766 101.072 73.3281 101.119 73.5875 101.119C73.8547 101.119 74.0983 101.072 74.3184 100.977C74.5463 100.875 74.7428 100.741 74.9078 100.569C75.0729 100.396 75.2065 100.191 75.2929 99.9476C75.3873 99.7119 75.4423 99.4604 75.4423 99.1853C75.4423 98.9102 75.3951 98.6587 75.2929 98.4229C75.1986 98.1871 75.065 97.9828 74.9078 97.8099C74.7349 97.637 74.5385 97.5034 74.3184 97.4091C74.0983 97.3148 73.8468 97.2597 73.5875 97.2597C73.3281 97.2597 73.0766 97.3148 72.8565 97.4091C72.6286 97.5112 72.4243 97.6448 72.2671 97.8099C72.0942 97.9828 71.9684 98.1871 71.8741 98.4229C71.7798 98.6587 71.7327 98.9023 71.7327 99.1853C71.7248 99.4525 71.772 99.7119 71.8741 99.9476ZM71.4969 98.2893C71.6148 98.0142 71.7798 97.7863 71.9842 97.582C72.1885 97.3776 72.4321 97.2283 72.7072 97.1104C72.9823 96.9925 73.281 96.9375 73.5796 96.9375C73.894 96.9375 74.1848 96.9925 74.4677 97.1104C74.7349 97.2283 74.9786 97.3776 75.1751 97.582C75.3794 97.7863 75.5523 98.0221 75.6623 98.2893C75.7881 98.5644 75.8431 98.863 75.8431 99.1853C75.8431 99.5075 75.7881 99.8062 75.6623 100.081C75.5444 100.364 75.3794 100.6 75.1751 100.804C74.9707 101.017 74.7349 101.166 74.4677 101.284C74.1848 101.394 73.894 101.449 73.5796 101.449C73.2731 101.449 72.9823 101.394 72.7072 101.284C72.4321 101.166 72.1885 101.017 71.9842 100.804C71.7798 100.6 71.6148 100.364 71.4969 100.081C71.3711 99.8062 71.324 99.5075 71.324 99.1853C71.3161 98.863 71.3711 98.5644 71.4969 98.2893Z" fill="currentColor"/> 5716 <path d="M9.38402 3.97683C9.20326 3.68604 8.98319 3.43454 8.71598 3.22234C8.44876 3.00227 8.14224 2.83723 7.80429 2.71148C7.46634 2.59359 7.11267 2.53071 6.74328 2.53071C6.06738 2.53071 5.49364 2.66432 5.01422 2.92368C4.54266 3.18304 4.15755 3.53671 3.86676 3.97683C3.57596 4.41696 3.3559 4.91996 3.22229 5.48583C3.08868 6.0517 3.01795 6.6333 3.01795 7.23061C3.01795 7.80434 3.08082 8.36235 3.22229 8.90465C3.3559 9.44694 3.5681 9.93422 3.86676 10.3743
5716C4.15755 10.8066 4.54266 11.1603 5.01422 11.4196C5.48578 11.679 6.05952 11.8126 6.74328 11.8126C7.66282 11.8126 8.38588 11.5297 8.89674 10.9717C9.41546 10.4058 9.72983 9.66701 9.84772 8.74746H12.7635C12.685 9.60413 12.4885 10.3743 12.1662 11.066C11.844 11.7576 11.4275 12.347 10.9009 12.8265C10.3743 13.3137 9.76127 13.6831 9.06179 13.9425C8.36231 14.194 7.58423 14.3276 6.74328 14.3276C5.69799 14.3276 4.75486 14.1468 3.91391 13.7775C3.07296 13.4159 2.37348 12.9129 1.79189 12.2685C1.21815 11.6318 0.778029 10.8773 0.471515 10.0128C0.165 9.14829 0.0078125 8.22089 0.0078125 7.22275C0.0078125 6.20103 0.15714 5.25005 0.471515 4.37766C0.778029 3.50527 1.21815 2.73506 1.79189 2.09059C2.36562 1.43826 3.07296 0.927403 3.91391 0.558014C4.747 0.188624 5.69013 0 6.74328 0C7.49778 0 8.21298 0.110031 8.88102 0.322233C9.54907 0.542295 10.1542 0.85667 10.6808 1.27322C11.2074 1.68976 11.6475 2.20062 11.9933 2.81365C12.3391 3.42668 12.5592 4.13402 12.6457 4.91996H9.72983C9.67482 4.57414 9.56479 4.25977 9.38402 3.97683Z" fill="currentColor"/> 5717 <path d="M16.6853 11.6318C17.094 12.0248 17.6834 12.2291 18.4458 12.2291C18.9959 12.2291 19.4675 12.0955 19.8683 11.8205C20.2613 11.5454 20.5049 11.2546 20.5992 10.9481H22.9963C22.6112 12.1348 22.0218 12.9915 21.228 13.5024C20.4342 14.0132 19.4754 14.2726 18.3515 14.2726C17.5734 14.2726 16.866 14.1468 16.2452 13.8953C15.6164 13.6438 15.0898 13.2902 14.6497 12.8343C14.2174 12.3785 13.8795 11.8283 13.6437 11.1839C13.4079 10.5472 13.29 9.8399 13.29 9.07754C13.29 8.33877 13.4079 7.64714 13.6516 7.01053C13.8952 6.37393 14.241 5.81591 14.689 5.35221C15.137 4.88851 15.6714 4.51912 16.2923 4.2519C16.9132 3.98468 17.597 3.85107 18.3515 3.85107C19.1924 3.85107 19.9312 4.01612 20.5599 4.33835C21.1887 4.66845 21.6995 5.10071 22.1004 5.65087C22.5012 6.20102 22.792 6.82977 22.9728 7.52925C23.1535 8.22873 23.2164 8.96751 23.1614 9.73773H16.0094C16.0487 10.5944 16.2687 11.2389 16.6853 11.6318ZM19.7583 6.42108C19.4282 6.06741 18.9331 5.88665 18.2729 5.88665C17.8406 5.88665 17.4791 5.95738 17.1883 6.10671C16.8975 6.25604 16.6696 6.4368 16.4967 6.649C16.3237 6.86907 16.2059 7.09699 16.1351 7.34063C16.0644 7.58427 16.0251 7.79647 16.0094 7.99295H20.4421C20.3163 7.30133 20.0884 6.77475 19.7583 6.42108Z" fill="currentColor"/> 5718 <path d="M26.9812 4.09485V5.93394H27.0205C27.1462 5.62743 27.3191 5.34449 27.5392 5.07727C27.7593 4.81791 28.0029 4.58999 28.2858 4.40923C28.5688 4.22846 28.8674 4.07913 29.1897 3.97696C29.5119 3.87479 29.842 3.82764 30.1878 3.82764C30.3686 3.82764 30.5651 3.85907 30.7851 3.92195V6.45266C30.6594 6.42908 30.5022 6.4055 30.3214 6.38979C30.1406 6.37407 29.9677 6.35835 29.8027 6.35835C29.3076 6.35835 28.8832 6.4448 28.5373 6.60985C28.1915 6.77489 27.9165 7.00282 27.7043 7.29361C27.492 7.58441 27.3427 7.9145 27.2563 8.29961C27.1698 8.68472 27.1227 9.10126 27.1227 9.54925V14.0212H24.4033V4.09485H26.9812Z" fill="currentColor"/> 5719 <path d="M38.0625 4.09481V5.91818H36.0662V10.8303C36.0662 11.294 36.1448 11.6005 36.2941 11.7498C36.4434 11.8992 36.7578 11.9777 37.2137 11.9777C37.3708 11.9777 37.5123 11.9699 37.6538 11.962C37.7952 11.9463 37.9289 11.9306 38.0546 11.907V14.0133C37.8267 14.0526 37.5673 14.0762 37.2844 14.0919C37.0015 14.1076 36.7264 14.1155 36.4592 14.1155C36.0347 14.1155 35.6339 14.0841 35.2645 14.029C34.8873 13.974 34.5572 13.864 34.2664 13.6911C33.9756 13.526 33.7555 13.2903 33.5826 12.9837C33.4176 12.6772 33.3311 12.2764 33.3311 11.7734V5.92604H31.6807V4.10267H33.3311V1.13184H36.0505V4.10267H38.0625V4.09481Z" fill="currentColor"/> 5720 <path d="M39.6504 2.56223V0.314453H42.3697V2.56223H39.6504ZM42.3697 4.0948V14.0055H39.6504V4.0948H42.3697Z" fill="currentColor"/> 5721 <path d="M43.4541 5.91817V4.0948H45.081V3.32459C45.081 2.44434 45.3561 1.72128 45.9062 1.1554C46.4564 0.58953 47.2895 0.314453 48.3976 0.314453C48.6413 0.314453 48.8849 0.322313 49.1286 0.345891C49.3722 0.36161 49.608 0.385188 49.8359 0.393047V2.42862C49.5137 2.38932 49.1836 2.3736 48.8378 2.3736C48.4684 2.3736 48.2011 2.46006 48.044 2.63296C47.8868 2.80587 47.8082 3.09666 47.8082 3.50535V4.10266H49.6866V5.92603H47.8082V14.0212H45.081V5.92603H43.4541V5.91817Z" fill="currentColor"/> 5722 <path d="M51.5254 2.56223V0.314453H54.2447V2.56223H51.5254ZM54.2526 4.0948V14.0055H51.5254V4.0948H54.2526Z" fill="currentColor"/> 5723 <path d="M58.5446 11.6319C58.9533 12.0249 59.5427 12.2292 60.3051 12.2292C60.8553 12.2292 61.3268 12.0956 61.7276 11.8206C62.1206 11.5455 62.3643 11.2547 62.4586 10.9482H64.8557C64.4706 12.1349 63.8811 12.9916 63.0952 13.5025C62.3014 14.0133 61.3425 14.2727 60.2187 14.2727C59.4406 14.2727 58.7332 14.1469 58.1123 13.8954C57.4836 13.6439 56.957 13.2903 56.5169 12.8344C56.0846 12.3786 55.7467 11.8284 55.5109 11.1839C55.2751 10.5473 55.1572 9.84 55.1572 9.07764C55.1572 8.33886 55.283 7.64724 55.5188 7.01063C55.7624 6.35044 56.1082 5.80029 56.5562 5.33659C57.0042 4.87288 57.5386 4.50349 58.1595 4.23628C58.7804 3.96906 59.4642 3.83545 60.2187 3.83545C61.0596 3.83545 61.7984 4.000
57235 62.4271 4.32273C63.0559 4.65282 63.5667 5.08509 63.9676 5.63524C64.3684 6.1854 64.6592 6.81414 64.84 7.51363C65.0207 8.21311 65.0836 8.95189 65.0364 9.72211H57.8844C57.9159 10.5945 58.1359 11.239 58.5446 11.6319ZM61.6255 6.42118C61.3032 6.06751 60.8002 5.88674 60.1401 5.88674C59.7078 5.88674 59.3463 5.95748 59.0555 6.1068C58.7647 6.25613 58.5368 6.4369 58.3638 6.6491C58.1909 6.86916 58.073 7.09708 58.0023 7.34072C57.9316 7.58436 57.8923 7.79656 57.8766 7.99305H62.3014C62.1756 7.30143 61.9477 6.77485 61.6255 6.42118Z" fill="currentColor"/> 5724 <path d="M73.2964 12.7479C72.9742 13.2823 72.5576 13.6753 72.0389 13.9111C71.5202 14.1469 70.9386 14.2648 70.2863 14.2648C69.5475 14.2648 68.8952 14.1233 68.3293 13.8325C67.7634 13.5417 67.2997 13.1566 66.9382 12.6615C66.5767 12.1663 66.3016 11.6004 66.113 10.9638C65.9243 10.3272 65.8379 9.65918 65.8379 8.96756C65.8379 8.29951 65.9322 7.6629 66.113 7.04201C66.2937 6.42112 66.5767 5.87883 66.9382 5.39941C67.2997 4.92785 67.7634 4.54274 68.3057 4.2598C68.8559 3.96901 69.4925 3.82754 70.2234 3.82754C70.8129 3.82754 71.3709 3.95329 71.8975 4.20479C72.4319 4.45629 72.8484 4.81782 73.155 5.3051H73.1942V0.322266H75.9136V14.0133H73.3279V12.7479H73.2964ZM73.1785 7.84367C73.0999 7.46642 72.9742 7.13633 72.7856 6.84553C72.5969 6.55473 72.3612 6.32681 72.0625 6.14605C71.7717 5.96528 71.3945 5.87883 70.9543 5.87883C70.5142 5.87883 70.1291 5.96528 69.8226 6.14605C69.5161 6.32681 69.2724 6.56259 69.0838 6.85339C68.903 7.14419 68.7694 7.48214 68.683 7.85939C68.5965 8.23664 68.5572 8.6296 68.5572 9.03829C68.5572 9.4234 68.6044 9.80851 68.6908 10.1858C68.7773 10.5709 68.9266 10.9088 69.1231 11.2153C69.3196 11.514 69.5711 11.7576 69.8697 11.9463C70.1684 12.1349 70.5299 12.2213 70.9543 12.2213C71.4023 12.2213 71.7717 12.1349 72.0782 11.9541C72.3769 11.7733 72.6205 11.5376 72.8013 11.231C72.982 10.9324 73.1078 10.5866 73.1864 10.2093C73.265 9.82423 73.3043 9.43126 73.3043 9.02257C73.2964 8.61388 73.2571 8.22092 73.1785 7.84367Z" fill="currentColor"/> 5725 <path d="M6.8455 119.266C6.71189 118.307 5.79234 117.576 4.73919 117.576C2.83723 117.576 2.12202 119.195 2.12202 120.885C2.12202 122.488 2.83723 124.107 4.73919 124.107C6.03598 124.107 6.7669 123.219 6.92409 121.946H8.98324C8.76318 124.351 7.10486 125.891 4.73919 125.891C1.75264 125.891 0 123.659 0 120.885C0 118.024 1.75264 115.792 4.73919 115.792C6.86122 115.792 8.63743 117.034 8.89679 119.266H6.8455Z" fill="currentColor"/> 5726 <path d="M13.4082 118.496C15.6088 118.496 17.0235 119.95 17.0235 122.182C17.0235 124.398 15.6088 125.852 13.4082 125.852C11.2233 125.852 9.80078 124.39 9.80078 122.182C9.80078 119.957 11.2233 118.496 13.4082 118.496ZM13.4082 124.414C14.7207 124.414 15.1058 123.29 15.1058 122.19C15.1058 121.066 14.7129 119.95 13.4082 119.95C12.1114 119.95 11.7185 121.073 11.7185 122.19C11.7185 123.29 12.1114 124.414 13.4082 124.414Z" fill="currentColor"/> 5727 <path d="M18.21 118.676H20.0333V119.973H20.0648C20.4106 119.092 21.3616 118.487 22.2968 118.487C22.4304 118.487 22.5955 118.511 22.7134 118.55V120.334C22.5326 120.295 22.2497 120.271 22.0217 120.271C20.6149 120.271 20.1276 121.285 20.1276 122.511V125.655H18.21V118.676Z" fill="currentColor"/> 5728 <path d="M23.46 118.684H25.2834V119.572H25.307C25.7628 118.834 26.5173 118.496 27.3818 118.496C29.5746 118.496 30.557 120.264 30.557 122.245C30.557 124.107 29.5353 125.852 27.4919 125.852C26.6588 125.852 25.8571 125.49 25.4013 124.799H25.3698V128.123H23.4521V118.684H23.46ZM28.6393 122.197C28.6393 121.089 28.1913 119.942 26.9653 119.942C25.7078 119.942 25.307 121.066 25.307 122.197C25.307 123.329 25.7392 124.414 26.981 124.414C28.2385 124.414 28.6393 123.329 28.6393 122.197Z" fill="currentColor"/> 5729 <path d="M34.7617 118.496C36.9623 118.496 38.3849 119.95 38.3849 122.182C38.3849 124.398 36.9623 125.852 34.7617 125.852C32.5768 125.852 31.1621 124.39 31.1621 122.182C31.1621 119.957 32.5768 118.496 34.7617 118.496ZM34.7617 124.414C36.0742 124.414 36.4672 123.29 36.4672 122.19C36.4672 121.066 36.0742 119.95 34.7617 119.95C33.4649 119.95 33.0719 121.073 33.0719 122.19C33.0798 123.29 33.4728 124.414 34.7617 124.414Z" fill="currentColor"/> 5730 <path d="M39.5713 118.676H41.3947V119.973H41.4261C41.772 119.092 42.7229 118.487 43.6503 118.487C43.784 118.487 43.949 118.511 44.0669 118.55V120.334C43.894 120.295 43.611 120.271 43.3753 12
57300.271C41.9684 120.271 41.4812 121.285 41.4812 122.511V125.655H39.5635V118.676H39.5713Z" fill="currentColor"/> 5731 <path d="M44.6331 120.83C44.7431 119.03 46.3464 118.496 47.9183 118.496C49.3094 118.496 50.9835 118.802 50.9835 120.476V124.107C50.9835 124.744 51.0463 125.373 51.2271 125.663H49.278C49.2151 125.443 49.1522 125.215 49.1444 124.987C48.5392 125.624 47.6511 125.852 46.7944 125.852C45.4741 125.852 44.4209 125.192 44.4209 123.761C44.4209 122.182 45.6077 121.804 46.7944 121.639C47.9733 121.466 49.0658 121.506 49.0658 120.72C49.0658 119.895 48.492 119.777 47.824 119.777C47.0931 119.777 46.6215 120.075 46.5508 120.83H44.6331ZM49.0579 122.252C48.7278 122.535 48.0598 122.551 47.4625 122.661C46.8652 122.779 46.3307 122.983 46.3307 123.691C46.3307 124.406 46.8809 124.579 47.5096 124.579C49.0029 124.579 49.0658 123.392 49.0658 122.975V122.252H49.0579Z" fill="currentColor"/> 5732 <path d="M54.8504 118.684H56.2572V119.965H54.8504V123.423C54.8504 124.075 55.0154 124.233 55.6599 124.233C55.8643 124.233 56.0529 124.217 56.2572 124.177V125.679C55.935 125.734 55.5106 125.749 55.1333 125.749C53.9623 125.749 52.9327 125.474 52.9327 124.091V119.973H51.7695V118.692H52.9327V116.601H54.8504V118.684Z" fill="currentColor"/> 5733 <path d="M59.6208 117.608H57.7031V116.028H59.6208V117.608ZM57.7031 118.684H59.6208V125.663H57.7031V118.684Z" fill="currentColor"/> 5734 <path d="M64.5097 118.496C66.7104 118.496 68.1329 119.95 68.1329 122.182C68.1329 124.398 66.7104 125.852 64.5097 125.852C62.3248 125.852 60.9102 124.39 60.9102 122.182C60.9102 119.957 62.3248 118.496 64.5097 118.496ZM64.5097 124.414C65.8223 124.414 66.2152 123.29 66.2152 122.19C66.2152 121.066 65.8223 119.95 64.5097 119.95C63.2129 119.95 62.82 121.073 62.82 122.19C62.82 123.29 63.2129 124.414 64.5097 124.414Z" fill="currentColor"/> 5735 <path d="M69.3672 118.684H71.1906V119.659H71.2299C71.7171 118.873 72.5502 118.496 73.3676 118.496C75.4032 118.496 75.9219 119.643 75.9219 121.372V125.663H74.0042V121.718C74.0042 120.57 73.6663 120.005 72.7781 120.005C71.7329 120.005 71.2927 120.586 71.2927 122.009V125.671H69.375V118.684H69.3672Z" fill="currentColor"/> 5736 </svg></div> 5737</div> 5738 5739 <div class="footer-newsletter-wrap"><div class="footer-newsletter"> 5740 <div class="footer-newsletter__intro"><p class="footer-newsletter__heading">JOIN THE NÃAK+ COMMUNITY</p><div class="footer-newsletter__body"><div class="footer-newsletter__text rte"><p>Save 15% on every subscription order, unlock members-only benefits, access exclusive events, and more.</p></div></div> 5741 </div><form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="footer-newsletter__form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="contact[tags]" value="newsletter"> 5742 <div class="footer-newsletter__fields"> 5743 <div class="footer-newsletter__field"> 5744 <input 5745 type="email" 5746 name="contact[email]" 5747 id="FooterNewsletter-sections--27256355258672__footer" 5748 placeholder="Your email" 5749 class="footer-newsletter__input" 5750 aria-label="Your email" 5751 required 5752 autocomplete="email" 5753 > 5754 <button type="submit" class="footer-newsletter__submit" aria-label="Subscribe to newsletter"><svg 5755 class="footer-newsletter__submit-icon" 5756 width="16" 5757 height="16" 5758 viewBox="0 0 16 16" 5759 fill="none" 5760 xmlns="http://www.w3.org/2000/svg" 5761 > 5762 <path d="M8.67598 3.19976L13.476 7.99976L8.67598 12.7998" stroke="currentColor" stroke-width="1.5"/> 5763 <line x1="13.5" y1="8.04712" x2="1.5" y2="8.04712" stroke="currentColor" stroke-width="1.5"/> 5764 </svg></button> 5765 </div> 5766 5767 <label class="footer-newsletter__consent"> 5768 <input 5769 class="footer-newsletter__checkbox" 5770 type="checkbox" 5771 name="contact[accepts_marketing]" 5772 value="true" 5773 required 5774 > 5775 <span class="footer-newsletter__consent-text">I accept the <a href="/policies/privacy-policy" class="footer-newsletter__consent-link">Privacy Policy</a>.</span> 5776 </label> 5777 </div></form></div> 5778</div> 5779 </div> 5780 </div> 5781 5782 <nav class="footer-panel footer-panel--menus" aria-label="Footer navigation"><div class="footer-menus footer-menus--desktop"><div class="footer-menu__column" > 5783 <p class="footer-menu__title">SHOP</p> 5784 <ul class="footer-menu__list" role="list"><li> 5785 <a 5786 href="/collections/ultra-energy" 5787 class="footer-menu__link" 5788 5789 >ULTRAâ¢</a> 5790 </li><li> 5791 <a 5792 href="/collections/boost-energy" 5793 class="footer-menu__link" 5794 5795 >BOOSTâ¢</a> 5796 </li><li> 5797 <a 5798 href="/collections/ultra-recovery-protein-powders" 5799 class="footer-menu__link" 5800 5801 >RECOVERYâ¢</a> 5802 </li><li> 5803 <a 5804 href="/collections/packs" 5805 class="footer-menu__link" 5806 5807 >Packs</a> 5808 </li><li> 5809 <a 5810 href="/collections/accessories" 5811 class="footer-menu__link" 5812 5813 >Accessories</a> 5814 </li><li> 5815 <a 5816 href="/collections/no-waste-deals" 5817 class="footer-menu__link" 5818 5819 >No-waste deals</a> 5820 </li></ul> 5821 </div><div class="footer-menu__column" > 5822 <p class="footer-menu__title">HELP</p> 5823 <ul class="footer-menu__list" role="list"><li> 5824 <a 5825 href="/pages/faq" 5826 class="footer-menu__link" 5827 5828 >Frequently Asked Questions (FAQ)</a> 5829 </li><li> 5830 <a 5831 href="https://shopify.com/12429414/account/orders?locale=en®ion_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuYWFrYmFyLm15c2hvcGlmeS5jb20iLCJmbGFncyI6W10sImV4cCI6MTc5MTY3OTcwMSwibmJmIjoxNzkxMDc0OTAxfQ.SHWPjZDj8
5831LUGcVo3jaKUbM7_T6GacYSFGtg1hXXO7pc" 5832 class="footer-menu__link" 5833 5834 >Track my order</a> 5835 </li><li> 5836 <a 5837 href="https://shopify.com/12429414/account/profile?locale=en®ion_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuYWFrYmFyLm15c2hvcGlmeS5jb20iLCJmbGFncyI6W10sImV4cCI6MTc5MTY3OTcwMSwibmJmIjoxNzkxMDc0OTAxfQ.SHWPjZDj8LUGcVo3jaKUbM7_T6GacYSFGtg1hXXO7pc" 5838 class="footer-menu__link" 5839 5840 >My account</a> 5841 </li><li> 5842 <a 5843 href="/pages/contact-us" 5844 class="footer-menu__link" 5845 5846 >Contact us</a> 5847 </li></ul> 5848 </div><div class="footer-menu__column" > 5849 <p class="footer-menu__title">Services</p> 5850 <ul class="footer-menu__list" role="list"><li> 5851 <a 5852 href="/pages/store-locator" 5853 class="footer-menu__link" 5854 5855 >Find a store</a> 5856 </li><li> 5857 <a 5858 href="/pages/membership-program" 5859 class="footer-menu__link" 5860 5861 >NÃAK+ membership program</a> 5862 </li><li> 5863 <a 5864 href="https://www.b2b-canada.naak.com/new-retailer" 5865 class="footer-menu__link" 5866 5867 >Become a distributor</a> 5868 </li><li> 5869 <a 5870 href="https://naak.typeform.com/to/fgFR7Yap" 5871 class="footer-menu__link" 5872 5873 >Become an ambassador</a> 5874 </li><li> 5875 <a 5876 href="https://form.typeform.com/to/OnVabA5w?typeform-source=naak.typeform.com" 5877 class="footer-menu__link" 5878 5879 >Events request</a> 5880 </li><li> 5881 <a 5882 href="/pages/jobs" 5883 class="footer-menu__link" 5884 5885 >Careers</a> 5886 </li></ul> 5887 </div><div class="footer-menu__column" > 5888 <p class="footer-menu__title">NÃAK</p> 5889 <ul class="footer-menu__list" role="list"><li> 5890 <a 5891 href="/pages/utmb-world-series" 5892 class="footer-menu__link" 5893 5894 >UTMB® World Series x näak</a> 5895 </li><li> 5896 <a 5897 href="/pages/our-story" 5898 class="footer-menu__link" 5899 5900 >Our Story</a> 5901 </li><li> 5902 <a 5903 href="/blog/articles" 5904 class="footer-menu__link" 5905 5906 >Blog</a> 5907 </li></ul> 5908 </div></div><div class="footer-menus footer-menus--mobile"><details class="footer-accordion" > 5909 <summary class="footer-accordion__summary"> 5910 <span class="footer-accordion__title">SHOP</span> 5911 <span class="footer-accordion__chevron" aria-hidden="true"></span> 5912 </summary> 5913 <ul class="footer-accordion__links" role="list"><li> 5914 <a 5915 href="/collections/ultra-energy" 5916 class="footer-menu__link" 5917 5918 >ULTRAâ¢</a> 5919 </li><li> 5920 <a 5921 href="/collections/boost-energy" 5922 class="footer-menu__link" 5923 5924 >BOOSTâ¢</a> 5925 </li><li> 5926 <a 5927 href="/collections/ultra-recovery-protein-powders" 5928 class="footer-menu__link" 5929 5930 >RECOVERYâ¢</a> 5931 </li><li> 5932 <a 5933 href="/collections/packs" 5934 class="footer-menu__link" 5935 5936 >Packs</a> 5937 </li><li> 5938 <a 5939 href="/collections/accessories" 5940 class="footer-menu__link" 5941 5942 >Accessories</a> 5943 </li><li> 5944 <a 5945 href="/collections/no-waste-deals" 5946 class="footer-menu__link" 5947 5948 >No-waste deals</a> 5949 </li></ul> 5950 </details>
5950<details class="footer-accordion" > 5951 <summary class="footer-accordion__summary"> 5952 <span class="footer-accordion__title">HELP</span> 5953 <span class="footer-accordion__chevron" aria-hidden="true"></span> 5954 </summary> 5955 <ul class="footer-accordion__links" role="list"><li> 5956 <a 5957 href="/pages/faq" 5958 class="footer-menu__link" 5959 5960 >Frequently Asked Questions (FAQ)</a> 5961 </li><li> 5962 <a 5963 href="https://shopify.com/12429414/account/orders?locale=en®ion_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuYWFrYmFyLm15c2hvcGlmeS5jb20iLCJmbGFncyI6W10sImV4cCI6MTc5MTY3OTcwMSwibmJmIjoxNzkxMDc0OTAxfQ.SHWPjZDj8LUGcVo3jaKUbM7_T6GacYSFGtg1hXXO7pc" 5964 class="footer-menu__link" 5965 5966 >Track my order</a> 5967 </li><li> 5968 <a 5969 href="https://shopify.com/12429414/account/profile?locale=en®ion_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuYWFrYmFyLm15c2hvcGlmeS5jb20iLCJmbGFncyI6W10sImV4cCI6MTc5MTY3OTcwMSwibmJmIjoxNzkxMDc0OTAxfQ.SHWPjZDj8LUGcVo3jaKUbM7_T6GacYSFGtg1hXXO7pc" 5970 class="footer-menu__link" 5971 5972 >My account</a> 5973 </li><li> 5974 <a 5975 href="/pages/contact-us" 5976 class="footer-menu__link" 5977 5978 >Contact us</a> 5979 </li></ul> 5980 </details><details class="footer-accordion" > 5981 <summary class="footer-accordion__summary"> 5982 <span class="footer-accordion__title">Services</span> 5983 <span class="footer-accordion__chevron" aria-hidden="true"></span> 5984 </summary> 5985 <ul class="footer-accordion__links" role="list"><li> 5986 <a 5987 href="/pages/store-locator" 5988 class="footer-menu__link" 5989 5990 >Find a store</a> 5991 </li><li> 5992 <a 5993 href="/pages/membership-program" 5994 class="footer-menu__link" 5995 5996 >NÃAK+ membership program</a> 5997 </li><li> 5998 <a 5999 href="https://www.b2b-canada.naak.com/new-retailer" 6000 class="footer-menu__link" 6001 6002 >Become a distributor</a> 6003 </li><li> 6004 <a 6005 href="https://naak.typeform.com/to/fgFR7Yap" 6006 class="footer-menu__link" 6007 6008 >Become an ambassador</a> 6009 </li><li> 6010 <a 6011 href="https://form.typeform.com/to/OnVabA5w?typeform-source=naak.typeform.com" 6012 class="footer-menu__link" 6013 6014 >Events request</a> 6015 </li><li> 6016 <a 6017 href="/pages/jobs" 6018 class="footer-menu__link" 6019 6020 >Careers</a> 6021 </li></ul> 6022 </details><details class="footer-accordion" > 6023 <summary class="footer-accordion__summary"> 6024 <span class="footer-accordion__title">NÃAK</span> 6025 <span class="footer-accordion__chevron" aria-hidden="true"></span> 6026 </summary> 6027 <ul class="footer-accordion__links" role="list"><li> 6028 <a 6029 href="/pages/utmb-world-series" 6030 class="footer-menu__link" 6031 6032 >UTMB® World Series x näak</a> 6033 </li><li> 6034 <a 6035 href="/pages/our-story" 6036 class="footer-menu__link" 6037 6038 >Our Story</a> 6039 </li><li> 6040 <a 6041 href="/blog/articles" 6042 class="footer-menu__link" 6043 6044 >Blog</a> 6045 </li></ul> 6046 </details></div></nav> 6047 </div> 6048 </div><div class="footer-legal"> 6049 <nav class="footer-legal__policies" aria-label="Legal links"><a href="/policies/terms-of-service" class="footer-legal__link">Terms of service</a><a href="/policies/privacy-policy" class="footer-legal__link">Privacy policy</a></nav> 6050 6051 <div class="footer-legal__meta"> 6052 <p class="footer-legal__copyright"> 6053 © 2026 6054 Näak NA by <a href="https://tonyricher.fr" target="_blank" rel="noreferrer" >Tony.</a> 6055 </p> 6056 <div class="footer-legal__meta-end"> 6057 <a href="/pages/store-locator" class="header__badge md:hidden"> 6058 Find a store 6059 </a> 6060 6061 6062<button 6063 type="button" 6064 class="footer-legal__locale "
6065 aria-label="Choose a region" 6066 aria-haspopup="dialog" 6067 @click="openLocale()" 6068> 6069 <span class=""> 6070 <span>EN</span> 6071 <span 6072 class="text-[#818181]" 6073 aria-hidden="true" 6074 >/</span> 6075 <span>$</span> 6076 </span> 6077</button> 6078 6079 </div> 6080 </div> 6081</div> 6082</footer> 6083 6084 6085</div> 6086<!-- END sections: footer-group --> 6087 6088 6089
6090<script type="application/json" id="StoreNetworkConfig"> 6091 { 6092 "currentShop": "naakbar.myshopify.com", 6093 "currentCountry": "US", 6094 "currentLanguage": "en", 6095 "currentCurrency": { 6096 "iso": "USD", 6097 "symbol": "$" 6098 }, 6099 "returnTo": "\/products\/boost-drink-mix-60-salted-cucumber-bag", 6100 "storeNetworkUrl": "\/\/www.naak.com\/cdn\/shop\/t\/335\/assets\/store-network.json?v=120238248950443774701786436431", 6101 "availableCountries": [{ 6102 "code": "CA", 6103 "name": "Canada", 6104 "currency": { 6105 "iso": "CAD", 6106 "symbol": "$" 6107 } 6108 },{ 6109 "code": "HK", 6110 "name": "Hong Kong SAR", 6111 "currency": { 6112 "iso": "HKD", 6113 "symbol": "$" 6114 } 6115 },{ 6116 "code": "ID", 6117 "name": "Indonesia", 6118 "currency": { 6119 "iso": "IDR", 6120 "symbol": "Rp" 6121 } 6122 },{ 6123 "code": "JP", 6124 "name": "Japan", 6125 "currency": { 6126 "iso": "JPY", 6127 "symbol": "Â¥" 6128 } 6129 },{ 6130 "code": "NZ", 6131 "name": "New Zealand", 6132 "currency": { 6133 "iso": "NZD", 6134 "symbol": "$" 6135 } 6136 },{ 6137 "code": "RU", 6138 "name": "Russia", 6139 "currency": { 6140 "iso": "CAD", 6141 "symbol": "$" 6142 } 6143 },{ 6144 "code": "SG", 6145 "name": "Singapore", 6146 "currency": { 6147 "iso": "SGD", 6148 "symbol": "$" 6149 } 6150 },{ 6151 "code": "KR", 6152 "name": "South Korea", 6153 "currency": { 6154 "iso": "KRW", 6155 "symbol": "â©" 6156 } 6157 },{ 6158 "code": "TH", 6159 "name": "Thailand", 6160 "currency": { 6161 "iso": "THB", 6162 "symbol": "฿" 6163 } 6164 },{ 6165 "code": "US", 6166 "name": "United States", 6167 "currency": { 6168 "iso": "USD", 6169 "symbol": "$" 6170 } 6171 }], 6172 "availableLanguages": [{ 6173 "code": "en", 6174 "name": "English", 6175 "rootUrl": "\/" 6176 },{ 6177 "code": "fr", 6178 "name": "français", 6179 "rootUrl": "\/fr" 6180 }], 6181 "i18n": { 6182 "intro": "You are currently shopping from __COUNTRY__, and your order will be billed in __CURRENCY__.", 6183 "confirm": "Confirm choice", 6184 "chooseRegion": "Choose a region", 6185 "countryLabel": "Country", 6186 "languageLabel": "Language", 6187 "searchCountry": "Search a country", 6188 "noCountryResults": "No country found" 6189 } 6190 } 6191</script>
6191 6192 6193<div 6194 id="localization-drawer" 6195 class="localization-drawer js-localization-drawer fixed inset-0 z-50 overflow-hidden text-black" 6196 role="dialog" 6197 aria-modal="true" 6198 aria-labelledby="localization-drawer-title" 6199 data-localization-drawer 6200 x-show="isLocaleOpen()" 6201 :aria-hidden="isLocaleOpen() ? 'false' : 'true'" 6202 @keydown.escape.window="isLocaleOpen() && closeDrawers()" 6203 style="display: none;" 6204> 6205 <div 6206 class="localization-drawer__overlay absolute inset-0 z-0 bg-black/50 transition-opacity duration-200 ease-in-out" 6207 aria-hidden="true" 6208 x-show="isLocaleOpen()" 6209 x-transition:enter="ease-out duration-200" 6210 x-transition:enter-start="opacity-0" 6211 x-transition:enter-end="opacity-100" 6212 x-transition:leave="ease-in duration-200" 6213 x-transition:leave-start="opacity-100" 6214 x-transition:leave-end="opacity-0" 6215 @click="closeDrawers()" 6216 ></div> 6217 6218 <div class="localization-drawer__stage absolute inset-0 z-10 pointer-events-none"> 6219 <div 6220 class="localization-drawer__panel pointer-events-auto ml-auto flex h-dvh max-h-dvh w-full flex-col overflow-hidden bg-white lg:max-w-[520px]" 6221 x-show="isLocaleOpen()" 6222 x-transition:enter="transform ease-out duration-200 sm:duration-350" 6223 x-transition:enter-start="max-lg:translate-y-full lg:translate-x-full" 6224 x-transition:enter-end="max-lg:translate-y-0 lg:translate-x-0" 6225 x-transition:leave="transform ease-in duration-200 sm:duration-350" 6226 x-transition:leave-start="max-lg:translate-y-0 lg:translate-x-0" 6227 x-transition:leave-end="max-lg:translate-y-full lg:translate-x-full" 6228 > 6229 <header class="localization-drawer__header"> 6230 <p id="localization-drawer-title" class="localization-drawer__title"> 6231 Choose a region 6232 </p> 6233 <button 6234 type="button" 6235 class="localization-drawer__close" 6236 aria-label="Close" 6237 @click="closeDrawers()" 6238 > 6239 <svg class="size-4" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 6240 <path d="M4 4l12 12M16 4 4 16" stroke="currentColor" stroke-width="1.5"/> 6241 </svg> 6242 </button> 6243 </header> 6244 6245 <div class="localization-drawer__body"> 6246 <p class="localization-drawer__intro" data-localization-intro>You are currently shopping from United States, and your order will be billed in USD ($). 6247 </p> 6248 6249 <div class="localization-drawer__fields"> 6250 <div class="localization-drawer__field" data-localization-field="country"> 6251 <button 6252 type="button" 6253 class="localization-drawer__select" 6254 aria-expanded="false" 6255 aria-controls="LocalizationCountryList" 6256 data-localization-select="country" 6257 > 6258 <span class="localization-drawer__select-value" data-localization-select-label="country"> 6259 United States 6260 </span> 6261 <svg class="localization-drawer__chevron size-2.5" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"> 6262 <path d="M4 6l4 4 4-4" stroke="currentColor" stroke-width="1.5"/> 6263 </svg> 6264 </button> 6265 <div 6266 class="localization-drawer__dropdown" 6267 hidden 6268 data-localization-dropdown="country" 6269 > 6270 <div class="localization-drawer__search"> 6271 <label class="sr-only" for="LocalizationCountrySearch"> 6272 Search a country 6273 </label> 6274 <div class="localization-drawer__search-field" data-localization-country-search-field> 6275 <span class="localization-drawer__search-icon" aria-hidden="true"> 6276 <svg 6277 class="size-4" 6278 aria-hidden="true" 6279 width="20" 6280 height="20" 6281 viewBox="0 0 20 20" 6282 fill="none" 6283 xmlns="http://www.w3.org/2000/svg" 6284 > 6285 <path d="M8.75 15C12.2018 15 15 12.2018 15 8.75C15 5.29822 12.2018 2.5 8.75 2.5C5.29822 2.5 2.5 5.29822 2.5 8.75C2.5 12.2018 5.29822 15 8.75 15Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 6286 <path d="M13.1694 13.1694L17.4999 17.4999" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 6287 </svg> 6288 </span> 6289 <input 6290 id="LocalizationCountrySearch" 6291 type="search" 6292 class="localization-drawer__search-input" 6293 placeholder="Search a country" 6294 autocomplete="off" 6295 autocorrect="off" 6296 autocapitalize="off" 6297 spellcheck="false" 6298 enterkeyhint="search" 6299 role="combobox" 6300 aria-autocomplete="list" 6301 aria-controls="LocalizationCountryList" 6302 aria-expanded="false" 6303 data-localization-country-search 6304 > 6305 </div> 6306 </div> 6307 <ul 6308 id="LocalizationCountryList" 6309 class="localization-drawer__list" 6310 role="listbox"
6311 data-localization-list="country" 6312 ></ul> 6313 </div> 6314 </div> 6315 6316 <div class="localization-drawer__field" data-localization-field="language"> 6317 <button 6318 type="button" 6319 class="localization-drawer__select" 6320 aria-expanded="false" 6321 aria-controls="LocalizationLanguageList" 6322 data-localization-select="language" 6323 > 6324 <span class="localization-drawer__select-value" data-localization-select-label="language"> 6325 English 6326 </span> 6327 <svg class="localization-drawer__chevron size-2.5" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"> 6328 <path d="M4 6l4 4 4-4" stroke="currentColor" stroke-width="1.5"/> 6329 </svg> 6330 </button> 6331 <div 6332 class="localization-drawer__dropdown" 6333 hidden 6334 data-localization-dropdown="language" 6335 > 6336 <ul 6337 id="LocalizationLanguageList" 6338 class="localization-drawer__list" 6339 role="listbox" 6340 data-localization-list="language" 6341 ></ul> 6342 </div> 6343 </div> 6344 6345 <button 6346 type="button" 6347 class="localization-drawer__confirm" 6348 data-localization-confirm 6349 > 6350 Confirm choice 6351 </button> 6352 </div> 6353 </div> 6354 6355 <form method="post" action="/localization" id="LocalizationForm" accept-charset="UTF-8" class="localization-drawer__form sr-only" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/products/boost-drink-mix-60-salted-cucumber-bag" /> 6356 <input type="hidden" name="country_code" value="US" data-localization-input="country"> 6357 <input type="hidden" name="language_code" value="en" data-localization-input="language"> 6358 <input type="hidden" name="return_to" value="/products/boost-drink-mix-60-salted-cucumber-bag"> 6359 </form> 6360 </div> 6361 </div> 6362</div> 6363
6364<script> 6365 (function () { 6366 var KLAVIYO_ONSITE_SRC = 'https://a.klaviyo.com/media/js/onsite/onsite.js'; 6367 function decodeHtmlEntities(value) { 6368 if (!value) return ''; 6369 var el = document.createElement('textarea'); 6370 el.innerHTML = String(value); 6371 return el.value; 6372 } 6373 6374 var bisStrings = { 6375 headline: decodeHtmlEntities("Back in stock alert"), 6376 body: decodeHtmlEntities("Leave your email and we\u0026#39;ll notify you as soon as this product is available again."), 6377 emailLabel: decodeHtmlEntities("Email address"), 6378 submit: decodeHtmlEntities("Notify me"), 6379 success: decodeHtmlEntities("You\u0026#39;re on the list. We\u0026#39;ll email you when it\u0026#39;s back."), 6380 close: decodeHtmlEntities("Close"), 6381 error: decodeHtmlEntities("Something went wrong. Please try again.") 6382 }; 6383 var bisButtonLabel = decodeHtmlEntities("Notify me when back in stock"); 6384 6385 var bisConfig = { 6386 trigger: { 6387 product_page_text: bisButtonLabel, 6388 product_page_class: 'btn btn--secondary notify-me-bis w-full', 6389 product_page_text_align: 'center', 6390 product_page_margin: '0', 6391 collection_page_text: bisButtonLabel, 6392 collection_page_class: 'btn btn--secondary notify-me-bis product-card__bis-trigger w-full', 6393 collection_page_text_align: 'center', 6394 collection_page_margin: '0', 6395 alternate_anchor: 'klaviyo-bis-trigger', 6396 replace_anchor: true 6397 }, 6398 modal: { 6399 headline: bisStrings.headline, 6400 body_content: bisStrings.body, 6401 email_field_label: bisStrings.emailLabel, 6402 button_label: bisStrings.submit, 6403 subscription_success_label: bisStrings.success, 6404 footer_content: '', 6405 additional_styles: "@font-face{font-family:'Gotham';src:url('\/\/www.naak.com\/cdn\/shop\/t\/335\/assets\/Gotham-Book.woff2?v=12903021498071736711785253586') format('woff2');font-weight:400;font-style:normal;font-display:swap;}@font-face{font-family:'Gotham';src:url('\/\/www.naak.com\/cdn\/shop\/t\/335\/assets\/Gotham-Medium.woff2?v=35539213883941330071785253585') format('woff2');font-weight:500;font-style:normal;font-display:swap;}@font-face{font-family:'Gotham';src:url('\/\/www.naak.com\/cdn\/shop\/t\/335\/assets\/Gotham-Bold.woff2?v=104252140039233375851785253585') format('woff2');font-weight:700;font-style:normal;font-display:swap;}#klaviyo-bis-modal,#klaviyo-bis-modal *{box-sizing:border-box;}body.fadein{background:rgba(0,0,0,0.55)!important;}#klaviyo-bis-modal{position:fixed!important;inset:0!important;display:flex!important;align-items:flex-start;justify-content:center;padding:10px;overflow-y:auto;font-family:'Gotham',sans-serif;color:#000000;background:transparent!important;}@media (min-width:768px){#klaviyo-bis-modal{align-items:center;}}#klaviyo-bis-modal #container{position:relative;max-width:480px;width:100%;margin:0;padding:32px 24px 24px;background:#fff;border-radius:0;box-shadow:none;border:0;flex-shrink:0;}#klaviyo-bis-modal .close,#klaviyo-bis-modal button.close.klaviyo-bis-close{position:absolute;top:8px;right:8px;z-index:2;display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#a3a3a3;font-family:'Gotham',sans-serif;font-size:28px;font-weight:400;line-height:1;cursor:pointer;opacity:1;transition:color 150ms ease;}#klaviyo-bis-modal .close:hover,#klaviyo-bis-modal button.close.klaviyo-bis-close:hover{color:#000000;}#klaviyo-bis-modal h3.modal-title{margin:0 36px 12px 0;padding:0;border:0;font-family:'Gotham',sans-serif;font-weight:500;font-size:14px;line-height:1.3;letter-spacing:0.02em;text-transform:uppercase;color:#000000;}#klaviyo-bis-modal #container\u003ep{margin:0 0 20px;padding:0;font-family:'Gotham',sans-serif;font-weight:400;font-size:14px;line-height:1.5;color:#000000;}#klaviyo-bis-modal form.form-horizontal,#klaviyo-bis-modal .form-group,#klaviyo-bis-modal .col-sm-12,#klaviyo-bis-modal .control-group,#klaviyo-bis-modal .submit-container{float:none;width:100%;}#klaviyo-bis-modal .form-group,#klaviyo-bis-modal .col-sm-12{margin:0;padding:0;}#klaviyo-bis-modal .form-group+.form-group,#klaviyo-bis-modal .form-group+.control-group,#klaviyo-bis-modal .control-group.submit-container{margin:12px 0 0!important;padding:0!important;}#klaviyo-bis-modal #variant_select{margin:0 0 12px;}#klaviyo-bis-modal select#variants{display:block;width:100%;height:50px;min-height:50px;margin:0;padding:0 40px 0 16px;border:1px solid #000000;border-radius:0;background:#fff;color:#000000;font-family:'Gotham',sans-serif;font-size:14px;font-weight:400;line-height:1.3;appearance:none;-webkit-appearance:none;box-shadow:none;}#klaviyo-bis-modal input#email,.klaviyo-bis-modal input#email,#klaviyo-bis-modal .form-control:not(select){display:block;width:100%;height:50px;min-height:50px;margin:0;padding:0 16px;border:1px solid #000000;border-radius:0;background:#fff;background-image:none;color:#000000;font-family:'Gotham',sans-serif;font-size:14px;font-weight:400;line-height:1.3;appearance:none;-webkit-appearance:none;box-shadow:none;}#klaviyo-bis-modal input#email::placeholder{color:#a3a3a3;opacity:1;}#klaviyo-bis-modal select#variants:focus,#klaviyo-bis-modal input#email:focus{outline:2px solid #000000;outline-offset:2px;}#klaviyo-bis-modal button.btn,#klaviyo-bis-modal button.btn-success,#klaviyo-bis-modal button.btn-lg,#klaviyo-bis-modal .col-xs-12{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;height:50px;margin:0;padding:0 52px;border:1px solid transparent;border-radius:0;background:#fff200;color:#000000;font-family:'Gotham',sans-serif;font-size:12px;font-weight:500;line-height:1.2;letter-spacing:0.02em;text-transform:uppercase;cursor:pointer;box-shadow:none;transition:opacity 150ms ease;}#klaviyo-bis-modal button.btn:hover,#klaviyo-bis-modal button.btn-success:hover{opacity:0.9;background:#fff200;color:#000000;}#klaviyo-bis-modal #error_message,#klaviyo-bis-modal .error_message,#klaviyo-bis-modal .alert-danger{margin:12px 0 0;padding:12px 16px;border:0;border-radius:0;background:#fcd6d7;color:#C72E2F;font-family:'Gotham',sans-serif;font-size:14px;font-weight:400;line-height:1.5;}#klaviyo-bis-modal #completed_message,#klaviyo-bis-modal .completed_message,#klaviyo-bis-modal .alert-success{margin:12px 0 0;padding:12px 16px;border:0;border-radius:0;background:#d3efcd;color:#1B9500;font-family:'Gotham',sans-serif;font-size:14px;font-weight:400;line-height:1.5;}#klaviyo-bis-modal .error_message,#klaviyo-bis-modal .completed_message{display:none;}#klaviyo-bis-modal.complete .completed_message,#klaviyo-bis-modal .complete .completed_message{display:block;}#klaviyo-bis-modal #completed_message a,#klaviyo-bis-modal .completed_message a.klaviyo-bis-close{display:inline-block;margin-top:8px;color:#000000;font-family:'Gotham',sans-serif;font-size:12px;font-weight:500;line-height:1.2;letter-spacing:0.02em;text-transform:uppercase;text-decoration:underline;text-underline-offset:2px;}#klaviyo-bis-modal #newsletter_subscription,#klaviyo-bis-modal .small-print{display:none!important;}", 6406 font_family: 'Gotham, sans-serif', 6407 headers_font_family: 'Gotham, sans-serif', 6408 drop_background_color: "#000000", 6409 background_color: '#ffffff', 6410 text_color: "#000000", 6411 button_text_color: "#000000", 6412 button_background_color: "#fff200", 6413 close_button_color: "#a3a3a3", 6414 error_background_color: '#fcd6d7', 6415 error_text_color: '#C72E2F', 6416 success_background_color: '#d3efcd', 6417 success_text_color: '#1B9500' 6418 } 6419 }; 6420 6421 window.boilerplateKlaviyo = { 6422 account: "HU4W5n",
6423 strings: bisStrings 6424 }; 6425 6426 function initKlaviyoBackInStock() { 6427 if (window.__klaviyoBisEnabled) return; 6428 if (!window.klaviyo || typeof window.klaviyo.enable !== 'function') { 6429 window.setTimeout(initKlaviyoBackInStock, 50); 6430 return; 6431 } 6432 6433 window.klaviyo = window.klaviyo || []; 6434 window.klaviyo.init({ 6435 account: "HU4W5n", 6436 platform: 'shopify', 6437 collection_urls: ['/'] 6438 }); 6439 window.klaviyo.enable('backinstock', bisConfig); 6440 window.__klaviyoBisEnabled = true; 6441 } 6442 6443 var existingScript = document.querySelector('script[src*="klaviyo.com/media/js/onsite/onsite.js"]'); 6444 if (existingScript) { 6445 if (existingScript.readyState === 'complete' || existingScript.readyState === 'loaded') { 6446 initKlaviyoBackInStock(); 6447 } else { 6448 existingScript.addEventListener('load', initKlaviyoBackInStock); 6449 } 6450 initKlaviyoBackInStock(); 6451 } else { 6452 var script = document.createElement('script'); 6453 script.src = KLAVIYO_ONSITE_SRC; 6454 script.async = true; 6455 script.addEventListener('load', initKlaviyoBackInStock); 6456 document.head.appendChild(script); 6457 } 6458 6459 /* Modale cards (hors PDP) â API Client Klaviyo, même look que la PDP */ 6460 function ensureCardBisModal() { 6461 var existing = document.getElementById('boilerplate-bis-modal'); 6462 if (existing) return existing; 6463 6464 var strings = window.boilerplateKlaviyo.strings; 6465 var modal = document.createElement('div'); 6466 modal.id = 'boilerplate-bis-modal'; 6467 modal.className = 'boilerplate-bis-modal'; 6468 modal.hidden = true; 6469 modal.setAttribute('role', 'dialog'); 6470 modal.setAttribute('aria-modal', 'true'); 6471 modal.innerHTML = 6472 '<div class="boilerplate-bis-modal__backdrop" data-boilerplate-bis-close></div>' + 6473 '<div class="boilerplate-bis-modal__panel" id="container">' + 6474 '<button type="button" class="boilerplate-bis-modal__close close klaviyo-bis-close" data-boilerplate-bis-close aria-label="' + strings.close + '">Ã</button>' + 6475 '<h3 class="modal-title boilerplate-bis-modal__title"></h3>' + 6476 '<p class="boilerplate-bis-modal__body"></p>' + 6477 '<form class="boilerplate-bis-modal__form form-horizontal" novalidate>' + 6478 '<input type="hidden" name="variant_id" data-boilerplate-bis-variant>' + 6479 '<div class="form-group">' + 6480 '<input type="email" name="email" id="boilerplate-bis-email" class="form-control input-lg" required autocomplete="email" placeholder="' + strings.emailLabel + '">' + 6481 '</div>' + 6482 '<div class="submit-container">' + 6483 '<button type="submit" class="btn btn-success btn-lg">' + strings.submit + '</button>' + 6484 '</div>' + 6485 '<p class="boilerplate-bis-modal__error alert-danger" data-boilerplate-bis-error hidden></p>' + 6486 '<p class="boilerplate-bis-modal__success alert-success" data-boilerplate-bis-success hidden></p>' + 6487 '</form>' + 6488 '</div>'; 6489 document.body.appendChild(modal); 6490 6491 modal.addEventListener('click', function (event) { 6492 if (event.target.closest('[data-boilerplate-bis-close]')) { 6493 closeCardBisModal(); 6494 } 6495 }); 6496 6497 modal.querySelector('form').addEventListener('submit', function (event) { 6498 event.preventDefault(); 6499 submitCardBis(modal); 6500 }); 6501 6502 document.addEventListener('keydown', function (event) { 6503 if (event.key === 'Escape' && !modal.hidden) closeCardBisModal(); 6504 }); 6505 6506 return modal; 6507 } 6508 6509 function closeCardBisModal() { 6510 var modal = document.getElementById('boilerplate-bis-modal'); 6511 if (!modal) return; 6512 modal.hidden = true; 6513 document.body.classList.remove('boilerplate-bis-modal-open'); 6514 } 6515 6516 function openCardBisModal(options) { 6517 var modal = ensureCardBisModal(); 6518 var strings = window.boilerplateKlaviyo.strings; 6519 var variantId = options && options.variantId; 6520 if (!variantId) return; 6521 6522 modal.querySelector('.boilerplate-bis-modal__title').textContent = strings.headline; 6523 modal.querySelector('.boilerplate-bis-modal__body').textContent = strings.body; 6524 modal.querySelector('[data-boilerplate-bis-variant]').value =
6524String(variantId); 6525 modal.querySelector('#boilerplate-bis-email').value = ''; 6526 modal.querySelector('[data-boilerplate-bis-error]').hidden = true; 6527 modal.querySelector('[data-boilerplate-bis-success]').hidden = true; 6528 modal.querySelector('form').hidden = false; 6529 modal.hidden = false; 6530 document.body.classList.add('boilerplate-bis-modal-open'); 6531 window.setTimeout(function () { 6532 modal.querySelector('#boilerplate-bis-email')?.focus(); 6533 }, 50); 6534 } 6535 6536 function submitCardBis(modal) { 6537 var strings = window.boilerplateKlaviyo.strings; 6538 var account = window.boilerplateKlaviyo.account; 6539 var email = modal.querySelector('#boilerplate-bis-email')?.value?.trim(); 6540 var variantId = modal.querySelector('[data-boilerplate-bis-variant]')?.value; 6541 var errorEl = modal.querySelector('[data-boilerplate-bis-error]'); 6542 var successEl = modal.querySelector('[data-boilerplate-bis-success]'); 6543 var form = modal.querySelector('form'); 6544 var submitBtn = form.querySelector('button[type="submit"]'); 6545 6546 errorEl.hidden = true; 6547 successEl.hidden = true; 6548 6549 if (!email || !variantId || !account) { 6550 errorEl.textContent = strings.error; 6551 errorEl.hidden = false; 6552 return; 6553 } 6554 6555 submitBtn.disabled = true; 6556 6557 fetch('https://a.klaviyo.com/client/back-in-stock-subscriptions/?company_id=' + encodeURIComponent(account), { 6558 method: 'POST', 6559 headers: { 6560 'Content-Type': 'application/json', 6561 revision: '2024-10-15' 6562 }, 6563 body: JSON.stringify({ 6564 data: { 6565 type: 'back-in-stock-subscription', 6566 attributes: { 6567 channels: ['EMAIL'], 6568 profile: { 6569 data: { 6570 type: 'profile', 6571 attributes: { email: email } 6572 } 6573 } 6574 }, 6575 relationships: { 6576 variant: { 6577 data: { 6578 type: 'catalog-variant', 6579 id: '$shopify:::$default:::' + variantId 6580 } 6581 } 6582 } 6583 } 6584 }) 6585 }) 6586 .then(function (response) { 6587 if (!response.ok && response.status !== 202) { 6588 throw new Error('bis_failed'); 6589 } 6590 form.hidden = true; 6591 successEl.textContent = strings.success; 6592 successEl.hidden = false; 6593 }) 6594 .catch(function () { 6595 errorEl.textContent = strings.error; 6596 errorEl.hidden = false; 6597 }) 6598 .finally(function () { 6599 submitBtn.disabled = false; 6600 }); 6601 } 6602 6603 window.boilerplateKlaviyo.openCardBis = openCardBisModal; 6604 window.boilerplateKlaviyo.closeCardBis = closeCardBisModal; 6605 })(); 6606</script>
6606 6607 6608<style> 6609 .boilerplate-bis-modal[hidden] { display: none !important; } 6610 .boilerplate-bis-modal { 6611 position: fixed; 6612 inset: 0; 6613 z-index: 999999; 6614 display: flex; 6615 align-items: flex-start; 6616 justify-content: center; 6617 padding: 10px; 6618 overflow-y: auto; 6619 } 6620 @media (min-width: 768px) { 6621 .boilerplate-bis-modal { align-items: center; } 6622 } 6623 .boilerplate-bis-modal__backdrop { 6624 position: fixed; 6625 inset: 0; 6626 background: #000000; 6627 opacity: 0.55; 6628 } 6629 .boilerplate-bis-modal__panel { 6630 position: relative; 6631 z-index: 1; 6632 max-width: 480px; 6633 width: 100%; 6634 margin: 0; 6635 padding: 32px 24px 24px; 6636 background: #fff; 6637 } 6638 .boilerplate-bis-modal__close { 6639 position: absolute; 6640 top: 8px; 6641 right: 8px; 6642 z-index: 2; 6643 display: flex; 6644 align-items: center; 6645 justify-content: center; 6646 width: 32px; 6647 height: 32px; 6648 margin: 0; 6649 padding: 0; 6650 border: 0; 6651 background: transparent; 6652 color: #a3a3a3; 6653 font-family: Gotham, sans-serif; 6654 font-size: 28px; 6655 font-weight: 400; 6656 line-height: 1; 6657 cursor: pointer; 6658 } 6659 .boilerplate-bis-modal__title { 6660 margin: 0 36px 12px 0; 6661 font-family: Gotham, sans-serif; 6662 font-weight: 500; 6663 font-size: 14px; 6664 line-height: 1.3; 6665 letter-spacing: 0.02em; 6666 text-transform: uppercase; 6667 color: #000000; 6668 } 6669 .boilerplate-bis-modal__body { 6670 margin: 0 0 20px; 6671 font-family: Gotham, sans-serif; 6672 font-size: 14px; 6673 line-height: 1.5; 6674 color: #000000; 6675 } 6676 .boilerplate-bis-modal__form .form-control { 6677 display: block; 6678 width: 100%; 6679 height: 50px; 6680 min-height: 50px; 6681 margin: 0; 6682 padding: 0 16px; 6683 border: 1px solid #000000; 6684 border-radius: 0; 6685 background: #fff; 6686 color: #000000; 6687 font-family: Gotham, sans-serif; 6688 font-size: 14px; 6689 } 6690 .boilerplate-bis-modal__form .submit-container { margin-top: 12px; } 6691 .boilerplate-bis-modal__form .btn { 6692 display: flex; 6693 align-items: center; 6694 justify-content: center; 6695 width: 100%; 6696 min-height: 50px; 6697 height: 50px; 6698 margin: 0; 6699 padding: 0 52px; 6700 border: 0; 6701 border-radius: 0; 6702 background: #fff200; 6703 color: #000000; 6704 font-family: Gotham, sans-serif; 6705 font-size: 12px; 6706 font-weight: 500; 6707 line-height: 1.2; 6708 letter-spacing: 0.02em; 6709 text-transform: uppercase; 6710 cursor: pointer; 6711 } 6712 .boilerplate-bis-modal__error, 6713 .boilerplate-bis-modal__success { 6714 margin: 12px 0 0; 6715 padding: 12px 16px; 6716 font-family: Gotham, sans-serif; 6717 font-size: 14px; 6718 line-height: 1.5; 6719 } 6720 .boilerplate-bis-modal__error { background: #fcd6d7; color: #C72E2F; } 6721 .boilerplate-bis-modal__success { background: #d3efcd; color: #1B9500; } 6722 body.boilerplate-bis-modal-open { overflow: hidden; } 6723</style><div id="shopify-block-AVHA5RnJOL2hMREZ4M__9870218667133425710" class="shopify-block shopify-app-block">
6723<script type="text/javascript" defer="defer" src="https://cdn.shopify.com/extensions/45cb970e-18e7-44a9-825a-a249ce2fb185/naak-nutrition-calculator-43/assets/naak-race-quiz-global.js"></script>
6723 6724
6725<script type="application/json" data-naak-race-quiz-global-data> 6726{ 6727 6728 "backend_url": "https:\/\/naak-nutrition-calculator.molsoftapps.com", 6729 "shop": "naakbar.myshopify.com" 6730} 6731</script>
6731 6732 6733 6734</div>
6734<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
6734 6735</body> 6736</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.