1<!doctype html> 2 3<html lang="en" dir="ltr"> 4 <head> 5<!-- Start of Shoplift scripts --> 6<!-- 2026-02-16T21:33:33.0808390Z --> 7<style>.shoplift-hide { opacity: 0 !important; }</style> 8<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
9<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-03-08T21:04:20.2102423Z */(function(){"use strict";var $=document.createElement("style");$.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}/*$vite$:1*/`,document.head.appendChild($);var B=" daum[ /]| deusu/| yadirectfetcher|(?:^|[^g])news(?!sapphire)|(?<! (?:channel/|google/))google(?!(app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!(?: ya| yandex|^job|inapp;) ?)search|(?<!(?:lib))http|(?<![hg]m)score|@[a-z][\\w-]+\\.|\\(\\)|\\.com|\\b\\d{13}\\b|^<|^[\\w \\.\\-\\(?:\\):]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[^ ]{50,}$|^\\d+\\b|^\\w+/[\\w\\(\\)]*$|^active|^ad muncher|^amaya|^avsdevicesdk/|^biglotron|^bot|^bw/|^clamav[ /]|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d \\(compatible;?\\)$|^mozilla/\\d\\.\\d \\w*$|^navermailapp|^netsurf|^offline|^owler|^postman|^python|^rank|^read|^reed|^rest|^rss|^snapchat|^space bison|^svn|^swcd |^taringa|^thumbor/|^track|^valid|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|^{{.*}}$|admin|analyzer|archive|ask jeeves/teoma|bit\\.ly/|bluecoat drtr|browsex|burpcollaborator|capture|catch|check|chrome-lighthouse|chromeframe|classifier|clean|cloud|crawl|cypress/|dareboost|datanyze|dejaclick|detect|dmbrowser|download|evc-batch/|feed|firep
9hp|gomezagent|headless|httrack|hubspot marketing grader|hydra|ibisbrowser|images|insight|inspect|iplabel|ips-agent|java(?!;)|library|mail\\.ru/|manager|measure|neustar wpm|node|nutch|offbyone|optimize|pageburst|pagespeed|parser|perl|phantomjs|pingdom|powermarks|preview|proxy|ptst[ /]\\d|reputation|resolver|retriever|rexx;|rigor|rss\\b|scan|scrape|server|sogou|sparkler/|speedcurve|spider|splash|statuscake|synapse|synthetic|tools|torrent|trace|transcoder|url|virtuoso|wappalyzer|watch|webglance|webkit2png|whatcms/|zgrab",G=/bot|spider|crawl|http|lighthouse/i,V;function K(){if(V instanceof RegExp)return V;try{V=new RegExp(B,"i")}catch{V=G}return V}function j(l){return!!l&&K().test(l)}class L{timestamp;constructor(){this.timestamp=new Date}}class W extends L{type;testId;hypothesisId;constructor(t,e,i){super(),this.type=3,this.testId=t,this.hypothesisId=e,this.timestamp=i}}class J extends L{type;path;constructor(t){super(),this.type=4,this.path=t}}class Y extends L{type;cart;constructor(t){super(),this.type=5,this.cart=t}}class D extends Error{isBot;constructor(){super(),this.isBot=!0}}function Z(l,t,e){for(const i of t.selectors){const s=l.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)e(t.testId,t.hypothesisId)}H(l,t,(i,s,r,o,n)=>n(s,r),e)}function x(l,t,e){for(const i of t.selectors)F(l,t.testId,t.hypothesisId,i,e??(()=>{}));H(l,t,F,e??(()=>{}))}function M(l){return l.urlPatterns.reduce((t,e)=>{switch(e.operator){case"contains":return t+`.*${e}.*`;case"endsWith":return t+`.*${e}`;case"startsWith":return t+`${e}.*`}},"")}function H(l,t,e,i){new MutationObserver(()=>{for(const r of t.selectors)e(l,t.testId,t.hypothesisId,r,i)}).observe(l.documentElement,{childList:!0,subtree:!0})}function F(l,t,e,i,s){const r=l.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 a of i.actions.sort(ot))n=Q(l,i.cssSelector,n,a)}}return r.length>0&&s?(s(t,e),!0):!1}function Q(l,t,e,i){switch(i.type){case"innerHtml":e.innerHTML=i.value;break;case"attribute":X(e,i.scope,i.value);break;case"css":tt(l,t,i.value);break;case"js":et(l,e,i);break;case"copy":return it(e);case"remove":st(e);break;case"move":rt(e,parseInt(i.value));break}return e}function X(l,t,e){l.setAttribute(t,e)}function tt(l,t,e){const i=l.createElement("style");i.innerHTML=`${t} { ${e} }`,l.getElementsByTagName("head")[0]?.appendChild(i)}function et(l,t,e){Function("document","element",`"use strict"; ${e.value}`)(l,t)}function it(l){const t=l.cloneNode(!0);if(!l.parentNode)throw"Can't copy node outside of DOM";return l.parentNode.insertBefore(t,l.nextSibling),t}function st(l){l.remove()}function rt(l,t){if(t===0)return;const e=Array.prototype.slice.call(l.parentElement.children).indexOf(l),i=Math.min(Math.max(e+t,0),l.parentElement.children.length-1);l.parentElement.children.item(i).insertAdjacentElement(t>0?"afterend":"beforebegin",l)}function ot(l,t){return N(l)-N(t)}function N(l){return l.type==="copy"||l.type==="remove"?0:1}var P=(l=>(l[l.Template=0]="Template",l[l.Theme=1]="Theme",l[l.UrlRedirect=2]="UrlRedirect",l[l.Script=3]="Script",l[l.Dom=4]="Dom",l[l.Price=5]="Price",l))(P||{});const nt="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",at="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%200L
97.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 lt(l){let t=l.replace(/-/g,"+").replace(/_/g,"/");for(;t.length%4;)t+="=";const e=atob(t),i=Uint8Array.from(e,o=>
9o.charCodeAt(0)),s=new Blob([i]).stream().pipeThrough(new DecompressionStream("gzip")),r=await new Response(s).text();return JSON.parse(r)}function _(l,t){return typeof t=="string"&&/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+(?:Z|[+-]\d+)/.test(t)?new Date(t):t}function O(l,t){return t}function k(l,t=!1,e=!1,i=","){const s=l/100;if(e){const o=Math.round(s).toLocaleString("en-US");return i!==","?o.replace(/,/g,i):o}else{const r=t?",":".",o=s.toFixed(2).split("."),n=parseInt(o[0],10),a=o[1]??"00",c=n.toLocaleString("en-US");return i!==","?`${c.replace(/,/g,i)}${r}${a}`:t?`${c.replace(/,/g,".")}${r}${a}`:`${c}${r}${a}`}}function R(l,t,e,i){const s=t.replace("{{amount}}",k(l,!1,!1)).replace("{{amount_no_decimals}}",k(l,!1,!0)).replace("{{amount_with_comma_separator}}",k(l,!0,!1)).replace("{{amount_no_decimals_with_comma_separator}}",k(l,!0,!0)).replace("{{amount_with_space_separator}}",k(l,!1,!1," ")).replace("{{amount_no_decimals_with_space_separator}}",k(l,!1,!0," ")).replace("{{amount_with_apostrophe_separator}}",k(l,!1,!1,"'")).replace("{{amount_no_decimals_with_apostrophe_separator}}",k(l,!1,!0,"'")).replace("{{amount_with_period_and_space_separator}}",k(l,!1,!1,". ")).replace("{{amount_no_decimals_with_period_and_space_separator}}",k(l,!1,!0,". "));return i?`${s} ${e}`:s}function q(l){return l.replace(/[^\d.,\s-]/g,"").trim()}function ct(l){const t=new Map;for(const[e,i,s]of l.v)t.set(e,{priceInCents:i,compareAtPriceInCents:s});return t}function dt(l,t,e,i){const{priceInCents:s,compareAtPriceInCents:r}=e,{mf:o,c:n,cce:a}=i;if(l.getAttribute("data-sl-attribute-p")===t)l.innerHTML=R(s,o,n,a);else if(l.getAttribute("data-sl-attribute-cap")===t)r<=0||r<=s?l.remove():l.innerHTML=R(r,o,n,a);else if(l.getAttribute("data-sl-attribute-discount")===t&&!(r<=0||r<=s)){const h=Math.round((r-s)/r*100),u=q(R(r-s,o,n,!1)),p=l.getAttribute("data-sl-format")||"percent";p==="percent"?l.textContent=`-${h}%`:p==="amount"?l.textContent=`-${u}`:p==="both"&&(l.textContent=`-${h}% (-${u})`)}}function ht(l){const t=[],e={id:"url-pattern",operator:"contains",value:"/"};for(const[i,s,r]of l.v){t.push({id:`p-${i}`,cssSelector:`[data-sl-attribute-p="${i}"]`,urlPatterns:[e],actions:[{id:`p-action-${i}`,type:"innerHtml",scope:"price",value:R(s,l.mf,l.c,l.cce)}]});const o=r<=0||r<=s;if(t.push({id:`cap-${i}`,cssSelector:`[data-sl-attribute-cap="${i}"]`,urlPatterns:[e],actions:[{id:`cap-action-${i}`,type:o?"remove":"innerHtml",scope:"compare-at-price",value:o?"":R(r,l.mf,l.c,l.cce)}]}),!o&&r>s){const n=Math.round((r-s)/r*100),a=q(R(r-s,l.mf,l.c,!1));t.push({id:`d-${i}`,cssSelector:`[data-sl-attribute-discount="${i}"]`,urlPatterns:[e],actions:[{id:`d-action-${i}`,type:"js",scope:null,value:`(function(doc, el) { var format = el.getAttribute('data-sl-format') || 'percent'; if (format === 'percent') { el.textContent = '-${n}%'; } else if (format === 'amount') { el.textContent = '-${a}'; } else if (format === 'both') { el.textContent = '-${n}% (-${a})'; } })`}]})}}return t}let U=!1;class pt{constructor(t,e,i,s,r,o,n,a,c,h,u){this.shop=t,this.host=e,this.eventHost=i,this.disableReferrerOverride=a,this.logHistory=[],this.legacySessionKey=`SHOPLIFT_SESSION_${this.shop}`,this.cssHideClass=s?"shoplift-hide":"",this.testConfigs=h.map(d=>({...d,startAt:new Date(d.startAt),statusHistory:d.statusHistory.map(v=>({...v,createdAt:new Date(v.createdAt)}))})),this.inactiveTestConfigs=u,this.sendPageView=!!r,this.shopliftDebug=o===!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 p=this.getDeviceType();this.device=p!=="tablet"?p:"mobile",this.state=this.loadState(),this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.testsFilteredByAudience=h.filter(d=>d.status=="active"),this.getCountryTimeout=c===1000?1e3:c,this.log("State Loaded",JSON.stringify(this.state))}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";legacySessionKey;cssHideClass;testConfigs;inactiveTestConfigs;testsFilteredByAudience;sendPageView;shopliftDebug;gaConfig;getCountryTimeout;state;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);
9urlParams=new URLSearchParams(window.location.search);device;logHistory;activeViewportObservers=new Map;deriveCategoryFromExistingTests(){if(!this.state.temporary.testCategory&&this.state.essential.visitorTests.length>0){const t=this.state.essential.visitorTests.some(e=>{if(!e.hypothesisId)return!1;const i=this.getHypothesis(e.hypothesisId);return i&&["theme","basicScript","price"].includes(i.type)});this.state.temporary.testCategory=t?"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 e=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",e),this.state.temporary.isMerchant=e,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,j(navigator.userAgent))return;if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const e=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(i=>i?.json());this.log(`IP: ${e}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),O)}).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 e=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>e,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),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(t){if(t instanceof D)return;throw t}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(t){switch(t){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(t){return t.title?t.title:t.type==="price"?t.isControl?"Original prices":"Variant prices":t.isControl?"Original":"Untitled variant "+t.label.toUpperCase()}async initPreview(){const t=this.urlParams.get("previewConfig");if(t){this.state.temporary.previewConfig=void 0,this.log("Setting up the preview"),this.log("Found preview config, writing to temporary state");const e=await lt(t);if(this.state.temporary.previewConfig=e,this.state.temporary.previewConfig.testTypeCategory===P.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));
9s.variants.forEach(n=>n.domSelectors=o[n.id]?.domSelectors)}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 e=this.state.temporary.previewConfig;e.testTypeCategory===P.Template&&this.handleTemplatePreview(e)&&this.initPreviewControls(e),e.testTypeCategory===P.UrlRedirect&&this.handleUrlPreview(e)&&this.initPreviewControls(e),e.testTypeCategory===P.Script&&this.handleScriptPreview(e)&&this.initPreviewControls(e),e.testTypeCategory===P.Price&&await this.handlePricePreview(e)&&this.initPreviewControls(e)}}initPreviewControls(t){document.addEventListener("DOMContentLoaded",()=>{const e=t.variants.find(v=>v.id===t.currentVariant),i=e?.label||"a",s=t.variants,r=document.createElement("div");r.id="shoplift-preview-control";const o=document.createElement("div"),n=document.createElement("img");n.src=at,n.height=24,n.width=14,o.style.padding="0 16px",o.style.lineHeight="100%",o.appendChild(n),r.appendChild(o);const a=document.createElement("div");a.id="shoplift-preview-variant-selector";const c=document.createElement("button");c.id="shoplift-preview-variant-menu-trigger";const h=document.createElement("div");h.className="menu-variant-label",h.style.backgroundColor=this.getVariantColor(i).bg,h.style.color=this.getVariantColor(i).text,h.innerText=i.toUpperCase(),c.appendChild(h);const u=document.createElement("span");if(u.id="shoplift-preview-variant-title",u.innerText=e?this.getDefaultVariantTitle(e):"Untitled variant "+i.toUpperCase(),c.appendChild(u),s.length>1){const v=document.createElement("img");v.src=nt,v.width=12,v.height=12,v.style.height="12px",v.style.width="12px",c.appendChild(v);const T=document.createElement("div");T.className="preview-variant-menu";for(const m of t.variants.filter(S=>S.id!==t.currentVariant)){const S=document.createElement("div");S.className="preview-variant-menu--item";const A=document.createElement("div");A.className="menu-variant-label",A.style.backgroundColor=this.getVariantColor(m.label).bg,A.style.color=this.getVariantColor(m.label).text,A.style.flexShrink="0",A.innerText=m.label.toUpperCase(),S.appendChild(A);const y=document.createElement("span");y.innerText=this.getDefaultVariantTitle(m),S.appendChild(y),S.addEventListener("click",()=>{this.pickVariant(m.id)}),T.appendChild(S)}a.appendChild(T),c.addEventListener("click",()=>{T.className!=="preview-variant-menu preview-variant-menu__visible"?T.classList.add("preview-variant-menu__visible"):T.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",m=>{m.target instanceof Element&&!c.contains(m.target)&&T.className==="preview-variant-menu preview-variant-menu__visible"&&T.classList.remove("preview-variant-menu__visible")})}else c.style.pointerEvents="none",h.style.margin="0";a.appendChild(c),r.appendChild(a);const p=document.createElement("div"),d=document.createElement("button");d.id="shoplift-exit-preview-button",d.innerText="Exit",p.appendChild(d),d.addEventListener("click",()=>{this.exitPreview()}),r.appendChild(p),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.add("visible")})}),this.ensureCartAttributesForExistingPriceTests(!0)}pickVariant(t){if(this.state.temporary.previewConfig){const e=this.state.temporary.previewConfig,i=new URL(window.location.toString());if(e.testTypeCategory===P.UrlRedirect){const s=e.variants.find(r=>r.id===e.currentVariant)?.redirectUrl;if(i.pathname===s){const r=e.variants.find(o=>o.id===t)?.redirectUrl;r&&(i.pathname=r)}}if(e.testTypeCategory===P.Template){const s=e.variants.find(r=>r.id===e.currentVariant)?.pathName;if(s&&i.pathname===s){const r=e.variants.find(o=>o.id===t)?.pathName;r&&r!==s&&(i.pathname=r)}}e.currentVariant=t,this.persistTemporaryState(),this.queueRedirect(i)}}exitPreview(){const t=new URL(window.location.toString());if(this.state.temporary.previewConfig?.testTypeCategory===P.Template&&t.searchParams.delete("view"),this.state.temporary.previewConfig?.testTypeCategory===P.Script&&t.searchParams.delete("slVariant"),this.state.temporary.previewConfig?.testTypeCategory===P.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(t.pathname)&&s&&(t.pathname=s)}this.state.temporary.isMerchant=!1,t.searchParams.delete("isShopliftMerchant"),this.state.temporary.previewConfig=void 0,this.persistTemporaryState(),this.hidePage(),this.queueRedirect(t)}handleTemplatePreview(t){const e=t.currentVariant,i=t.variants.find(a=>a.id===e);if(!i)return!1;const s=t.variants.find(a=>a.isControl);if(!s)return!1;this.log("Setting up template preview for type",s.type);
9const 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(t){const e=t.currentVariant,i=t.variants.find(o=>o.id===e),s=t.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(t){const e=t.currentVariant,i=t.variants.find(o=>o.id===e);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(t){const e=t.currentVariant,i=t.variants.find(s=>s.id===e);return i?(this.log("Setting up price preview"),i.domSelectors&&i.domSelectors.length>0&&(x(document,{testId:t.testId,hypothesisId:i.id,selectors:i.domSelectors}),this.ensureCartAttributesForExistingPriceTests(!0)),!0):!1}async finalize(){const t=await this.getCartState();t!==null&&this.queueCartUpdate(t),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const e=this.urlParams.get("slVariant")==="true",i=e?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),e)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(a=>a.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(a=>a.id===s&&this.state.essential.visitorTests.some(c=>c.hypothesisId===a.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 e=this.urlParams.get("slVariant")==="true",i=e?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:s=>Promise.resolve(e||s===i),setAnalyticsConsent:()=>Promise.resolve(),getVisitorData:()=>({visitor:null,visitorTests:[]})}}async manuallySplitVisitor(t){this.log("Starting manual split for test '%s'",t.id),await this.handleVisitorTest([t]);const e=this.getReservationForTest(t.id);e&&!e.isRealized&&e.entryCriteriaKey&&(this.log("Realizing manual API reservation for test '%s'",t.id),this.realizeReservationForCriteria(e.entryCriteriaKey)),this.saveState(),this.syncAllEvents()}async handleVisitorTest(t){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests),this.pruneStaleVisitorTests(),this.deriveC
9ategoryFromExistingTests(),this.clearStaleReservations();let e=t?t.filter(i=>this.testsFilteredByAudience.some(s=>s.id===i.id)):[...this.testsForUrl(this.testsFilteredByAudience),...this.domTestsForUrl(this.testsFilteredByAudience)];try{if(e.length===0)return this.log("No tests found"),!1;this.log("Checking for existing visitor test on page");const i=this.getCurrentVisitorHypothesis(e);if(i){this.log("Found current visitor test");const a=this.considerRedirect(i);return a&&(this.log("Redirecting for current visitor test"),this.redirect(i)),a}const s=this.getReservationForCurrentPage();if(s){this.log("Found matching reservation for current page: %s",s.testId);const a=this.getHypothesis(s.hypothesisId);if(a){a.type!=="price"&&this.realizeReservationForCriteria(s.entryCriteriaKey);const c=this.considerRedirect(a);return c&&this.redirect(a),c}}this.log("No active test relation for test page");const r=this.testsForUrl(this.inactiveTestConfigs.filter(a=>this.testIsPaused(a)&&a.hypotheses.some(c=>this.state.essential.visitorTests.some(h=>h.hypothesisId===c.id)))).map(a=>a.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 a=this.testsFilteredByAudience.filter(h=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(h))),c=this.testsFilteredByAudience.filter(h=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(h)));if(this.log("Category dice roll - global tests: %o, conditional tests: %o",a.map(h=>({id:h.id,title:h.title,criteria:this.getEntryCriteriaKey(h)})),c.map(h=>({id:h.id,title:h.title,criteria:this.getEntryCriteriaKey(h)}))),a.length>0&&c.length>0){const h=a.length,u=c.length,p=h+u,d=Math.random()*p;this.state.temporary.testCategory=d<h?"global":"conditional",this.log("Category dice roll: rolled %.2f of %d (global weight: %d, conditional weight: %d), selected '%s'",d,p,h,u,this.state.temporary.testCategory)}else a.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 a=this.testsFilteredByAudience.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of a)this.markTestAsBlocked(c,"category:global");e=e.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}else{const a=this.testsFilteredByAudience.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of a)this.markTestAsBlocked(c,"category:conditional");e=e.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}if(e.length===0)return this.log("No tests remaining after category filter"),!1;this.createReservations(e);const n=this.getReservationForCurrentPage();if(n&&!n.isRealized){const a=this.getHypothesis(n.hypothesisId);if(a){a.type!=="price"&&this.realizeReservationForCriteria(n.entryCriteriaKey);const c=this.considerRedirect(a);return c&&(this.log("Redirecting for new test"),this.redirect(a)),c}}return!1}finally{this.includeInDomTests(),this.saveState()}}includeInDomTests(){this.applyControlForAudienceFilteredPriceTests();const t=this.getDomTestsForCurrentUrl(),e=this.getVisitorDomHypothesis(t);for(const i of t){this.log("Evaluating dom test '%s'",i.id);const s=i.hypotheses.some(d=>d.type==="price");if(this.state.essential.visitorTests.find(d=>d.testId===i.id&&d.isInvalid&&!d.hypothesisId)){if(this.log("Visitor is blocked from test '%s', applying control prices if price test",i.id),s){const d=i.hypotheses.find(v=>v.isControl);d?.priceData&&(this.applyPriceTestWithMapLookup(i.id,d,[d],()=>{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,a=!1;const c=e.find(d=>i.hypotheses.some(v=>d.id===v.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 d=this.visitorActiveTestTypeWithReservations();d?(a=!0,this.log("Visitor already in test type '%s', treating as non-test for price test '%s'",d,i.id)):n=this.pickHypothesis(i)}else n=this.pickHypothesis(i);if(a&&s){const d=i.hypotheses.find(v=>v.isControl);d?.priceData&&(this.log("Applying control prices for non-test visitor on price test '%s' (Map-based)",i.id),this.applyPriceTestWithMapLookup(i.id,d,[d],()=>{this.log("Control prices applied for non-test visitor, no metrics tracked")}
9),this.updatePriceTestHiddenInputs(i.id,"control",!1));continue}if(!n){this.log("Failed to pick hypothesis for test");continue}const h=i.bayesianRevision??4,u=n.type==="price",p=h>=5;if(u&&p){if(this.log(`Price test with Map-based lookup (v${h}): ${i.id}`),!n.priceData){this.log("No price data for hypothesis '%s', skipping",n.id);continue}const d=n.isControl?"control":"variant";this.log(`Setting up Map-based price test for ${d} (test: ${i.id})`),this.applyPriceTestWithMapLookup(i.id,n,i.hypotheses,v=>{const T=this.getReservationForTest(v);T&&!T.isRealized&&T.entryCriteriaKey?this.realizeReservationForCriteria(T.entryCriteriaKey):this.queueAddVisitorToTest(v,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(u&&!p){this.log(`Price test without viewport tracking (v${h}): ${i.id}`);const d=this.getDomSelectorsForHypothesis(n);if(d.length===0)continue;x(document,{testId:i.id,hypothesisId:n.id,selectors:d},v=>{this.queueAddVisitorToTest(v,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}x(document,{testId:i.id,hypothesisId:n.id,selectors:n.domSelectors},d=>{this.queueAddVisitorToTest(d,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()})}}considerRedirect(t){if(this.log("Considering redirect for hypothesis '%s'",t.id),t.isControl)return this.log("Skipping redirect for control"),!1;if(t.type==="basicScript"||t.type==="manualScript")return this.log("Skipping redirect for script test"),!1;const e=this.state.essential.visitorTests.find(o=>o.hypothesisId===t.id),i=new URL(window.location.toString()),r=new URLSearchParams(window.location.search).get("view");if(t.type==="theme"){if(!(t.themeId===themeId)){if(this.log("Theme id '%s' is not hypothesis theme ID '%s'",t.themeId,themeId),this.isAppProxyPath())return this.log("On App Proxy path, skipping theme redirect to avoid infinite loop"),!1;if(e&&e.themeId!==t.themeId&&(e.themeId===themeId||!this.isThemePreview()))this.log("On old theme, redirecting and updating local visitor"),e.themeId=t.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(t.type!=="dom"&&t.type!=="price"&&t.affix!==template.suffix&&t.affix!==r||t.redirectPath&&!i.pathname.endsWith(t.redirectPath))return this.log("Hiding page to redirect for template test"),this.hidePage(),!0;return this.log("Not redirecting"),!1}redirect(t){if(this.log("Redirecting to hypothesis '%s'",t.id),t.isControl)return;const e=new URL(window.location.toString());if(e.searchParams.delete("view"),t.redirectPath){const i=RegExp("^(/w{2}-w{2})/").exec(e.pathname);if(i&&i.length>1){const s=i[1];e.pathname=`${s}${t.redirectPath}`}else e.pathname=t.redirectPath}else t.type==="theme"?(e.searchParams.set("_ab","0"),e.searchParams.set("_fd","0"),e.searchParams.set("_sc","1"),e.searchParams.set("preview_theme_id",t.themeId.toString())):t.type!=="urlRedirect"&&e.searchParams.set("view",t.affix);this.queueRedirect(e)}async refreshVisitor(t){if(t===null||!this.state.essential.isFirstLoad||!this.testConfigs.some(i=>i.visitorOption!=="all"))return;this.log("Refreshing visitor"),this.hidePage();const e=await this.getVisitor(t);e&&e.id&&this.updateLocalVisitor(e)}buildBaseVisitor(){return{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.device,country:null,...this.state.essential.initialState}}getInitialState(){const t=this.getUTMValue("utm_source")??"",e=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:t,utmMedium:e,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(t=>t.isThemeTest&&t.hypothesisId!=null&&this.getHypothesis(t.hypothesisId)&&t.themeId===themeId)?(this.log("On active theme test, remov
9ing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):this.state.essential.visitorTests.some(t=>t.isThemeTest&&t.hypothesisId!=null&&!this.getHypothesis(t.hypothesisId)&&t.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(t=>t.hypotheses.some(e=>e.themeId===themeId))?(this.log("Current theme is an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.testConfigs.some(t=>t.hypotheses.some(e=>e.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 t=new URL(window.location.toString());t.searchParams.set("preview_theme_id",""),this.queueRedirect(t)}testsForUrl(t){const e=new URL(window.location.href),i=this.typeFromTemplate();return t.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&&e.pathname.endsWith(r.redirectPath)||r.type==="basicScript"))&&(s.ignoreTestViewParameterEnforcement||!e.searchParams.has("view")||s.hypotheses.map(r=>r.affix).includes(e.searchParams.get("view")??"")))}domTestsForUrl(t){const e=new URL(window.location.href);return t.filter(i=>i.hypotheses.some(s=>s.type!=="dom"&&s.type!=="price"?!1:s.type==="price"&&s.priceData&&s.priceData.v.length>0?!0:s.domSelectors&&s.domSelectors.some(r=>new RegExp(M(r)).test(e.toString()))))}async filterTestsByAudience(t,e,i){const s=[];let r=e.country;!r&&t.some(o=>o.requiresCountry&&!i.some(n=>n.testId===o.id))&&(this.log("Hiding page to check geoip"),this.hidePage(),r=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/get-country`,signal:AbortSignal.timeout(this.getCountryTimeout)}).catch(o=>(this.log("Error getting country",o),null)));for(const o of t){if(this.log("Checking audience for test '%s'",o.id),this.state.essential.visitorTests.some(c=>c.testId===o.id&&c.hypothesisId==null)){console.log(`Skipping blocked test '${o.id}'`);continue}const n=this.visitorCreatedDuringTestActive(o.statusHistory);(i.some(c=>c.testId===o.id&&(o.device==="all"||o.device===e.device&&o.device===this.device))||this.isTargetAudience(o,e,n,r))&&(this.log("Visitor is in audience for test '%s'",o.id),s.push(o))}this.testsFilteredByAudience=s}isTargetAudience(t,e,i,s){const r=this.getChannel(e);return(t.device==="all"||t.device===e.device&&t.device===this.device)&&(t.visitorOption==="all"||t.visitorOption==="new"&&i||t.visitorOption==="returning"&&!i)&&(t.targetAudiences.length===0||t.targetAudiences.reduce((o,n)=>o||n.reduce((a,c)=>a&&c(e,i,r,s),!0),!1))}visitorCreatedDuringTestActive(t){let e="";for(const i of t){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;e=i.status}return e==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(t){return t.flatMap(e=>e.hypotheses).find(e=>e.type!=="dom"&&e.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===e.id))}getVisitorDomHypothesis(t){return t.flatMap(e=>e.hypotheses).filter(e=>(e.type==="dom"||e.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===e.id))}getHypothesis(t){return this.testConfigs.filter(e=>e.hypotheses.some(i=>i.id===t)).map(e=>e.hypotheses.find(i=>i.id===t))[0]}getDomSelectorsForHypothesis(t){if(!t)return[];if(t.domSelectors&&t.domSelectors.length>0)return t.domSelectors;if(t.priceData){const e=`${this.priceSelectorsSessionKey}_${t.id}`;try{const s=sessionStorage.getItem(e);if(s){const r=JSON.parse(s);return t.domSelectors=r,this.log("Loaded %d price selectors from cache for hypothesis '%s'",r.length,t.id),r}}catch{}const i=ht(t.priceData);t.domSelectors=i;try{sessionStorage.setItem(e,JSON.stringify(i)),this.log("Generated and cached %d price selectors for hypothesis '%s'",i.length,t.id)}catch{this.log("Generated %d price selectors for hypothesis '%s' (cache unavailable)",i.length,t.id)}return i}return[]}hasThemeTest(t){return t.some(e=>e.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(t){return t.some(e=>e.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(t){return this.hasThemeTest(t)&&this.hasTestThatIsNotThemeTest(t)}testIsPaused(t){return t.status==="paused"||t.status==="incompatible"||t.status==="suspended"}visitorActiveTestType(){const t=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==e.hypothesisId)));return t.length===0?null:t.some(e=>e.isThemeTest)?"theme":"templateOrUrlRedirect"}getReservationType(t){return t==="price"||this.isTemplateTestType(t)?"deferred":"immediate"}isTemplateTestType(t){return["product","collection","landing","index","cart","search","blog","article","collectionList"].includes(t)}getEntryCriteriaKey(t){const e=t.hypotheses.find(i=>i.isControl);if(!e)return`unknown:${t.id}`;switch(e.type){case"theme":return"global:theme";case"basicScript":return"global:autoApi";case"price":return"global:price";case"manualScript":return`conditional:manualApi:${t.id}`;case"urlRedirect":return`conditional:url:${e.redirectPath||"unknown"}`;default:return`conditional:template:${e.type}`}}isGlobalEntryCriteria(t){return t.startsWith("global:")}groupTestsByEntryCriteria(t){const e=new Map;for(const i of t){const s=this.getEntryCriteriaKey(i),r=e.get(s)||[];r.push(i),e.set(s,r)}return e}doesCurrentPageMatchEntryCriteria(t){if(this.isGlobalEntryCriteria(t))return!0;
9if(t==="conditional:manualApi")return!1;if(t.startsWith("conditional:url:")){const e=t.replace("conditional:url:","");return window.location.pathname.endsWith(e)}if(t.startsWith("conditional:template:")){const e=t.replace("conditional:template:","");return this.typeFromTemplate()===e}return!1}hasActiveReservation(){const t=this.getActiveReservations();return Object.values(t).some(e=>!e.isRealized)}getActiveReservation(){const t=this.getActiveReservations();return Object.values(t).find(e=>!e.isRealized)??null}clearStaleReservations(){const t=this.state.temporary.testReservations;if(!t)return;let e=!1;for(const[i,s]of Object.entries(t)){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 t[i],e=!0;continue}if(r.status!=="active"){this.log("Test '%s' status is '%s', clearing reservation for criteria '%s'",s.testId,r.status,i),delete t[i],e=!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 t[i],e=!0)}e&&this.persistTemporaryState()}createReservations(t){if(this.state.temporary.testReservations||(this.state.temporary.testReservations={}),this.state.temporary.rolledEntryCriteria||(this.state.temporary.rolledEntryCriteria=[]),this.state.temporary.testCategory==="global"){this.createSingleReservation(t,"global");return}const i=t.filter(n=>this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n))),s=t.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 a=this.getEntryCriteriaKey(n);this.state.temporary.rolledEntryCriteria.includes(a)||this.state.temporary.rolledEntryCriteria.push(a)}}const o=this.groupTestsByEntryCriteria(s);for(const[n,a]of o){if(this.state.temporary.rolledEntryCriteria.includes(n)){this.log("Already rolled for criteria '%s', skipping",n);continue}if(a.some(m=>this.state.essential.visitorTests.some(S=>S.testId===m.id))){this.log("Visitor already has VT for criteria '%s', skipping",n),this.state.temporary.rolledEntryCriteria.push(n);continue}const h=[...a].sort((m,S)=>m.id.localeCompare(S.id));this.log("Test dice roll for criteria '%s' - available tests: %o",n,h.map(m=>({id:m.id,title:m.title})));const u=Math.floor(Math.random()*h.length),p=h[u];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",u+1,a.length,p.id,p.title);const d=this.pickHypothesis(p);if(!d){this.log("No hypothesis picked for test '%s'",p.id);continue}const v=this.getReservationType(d.type),T={testId:p.id,hypothesisId:d.id,testType:d.type,reservationType:v,isThemeTest:d.type==="theme",themeId:d.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:n};this.state.temporary.testReservations[n]=T,this.state.temporary.rolledEntryCriteria.push(n),this.log("Created %s reservation for test '%s' (criteria: %s)",v,p.id,n);for(const m of a)m.id!==p.id&&this.markTestAsBlocked(m,n)}this.persistTemporaryState()}createSingleReservation(t,e){if(this.state.temporary.rolledEntryCriteria.includes(e)){this.log("Already rolled for pool '%s', skipping",e);return}if(t.some(u=>this.state.essential.visitorTests.some(p=>p.testId===u.id&&!p.isInvalid))){this.log("Visitor already has VT for pool '%s', skipping",e),this.state.temporary.rolledEntryCriteria.push(e);return}if(t.length===0){this.log("No tests in pool '%s'",e);return}const s=[...t].sort((u,p)=>u.id.localeCompare(p.id));this.log("Test dice roll for pool '%s' - available tests: %o",e,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,t.length,o.id,o.title);const n=this.pickHypothesis(o);if(!n){this.log("No hypothesis picked for test '%s'",o.id);return}const a=this.getReservationType(n.type),c=this.getEntryCriteriaKey(o),h={testId:o.id,hypothesisId:n.id,testType:n.type,reservationType:a,isThemeTest:n.type==="theme",themeId:n.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:c};this.state.temporary.testReservations[c]=h,this.state.temporary.rolledEntryCriteria.push(e),this.log("Created %s reservation for test '%s' from pool '%s' (criteria: %s)",a,o.id,e,c);for(const u of t)u.id!==o.id&&this.markTestAsBlocked(u,`pool:${e}`);this.persistTemporaryState()}markTestAsBlocked(t,e){this.state.essential.visitorTests.some(i=>i.testId===t.id)||(this.log("Blocking visitor from test '%s' (reason: %s)",t.id,e),this.state.essential.visitorTests.push({createdAt:new Date,testId:t.id,hypothesisId:null,isThemeTest:t.hypotheses.some(i=>
9i.type==="theme"),shouldSendToGa:!1,isSaved:!0,isInvalid:!0,themeId:void 0}))}realizeReservationForCriteria(t){const e=this.state.temporary.testReservations?.[t];if(!e)return this.log("No reservation found for criteria '%s'",t),!1;if(e.isRealized)return this.log("Reservation already realized for criteria '%s'",t),!1;if(this.state.essential.visitorTests.some(s=>s.testId===e.testId&&!s.isInvalid))return this.log("Visitor already assigned to test '%s'",e.testId),!1;const i=this.getHypothesis(e.hypothesisId);return i?(e.isRealized=!0,this.persistTemporaryState(),this.queueAddVisitorToTest(e.testId,i),this.saveState(),this.log("Realized reservation for test '%s' (criteria: %s)",e.testId,t),!0):(this.log("Hypothesis '%s' not found",e.hypothesisId),!1)}getActiveReservations(){return this.state.temporary.testReservations??{}}getReservationForCurrentPage(){const t=this.getActiveReservations();for(const[e,i]of Object.entries(t)){if(i.isRealized)continue;const s=this.testConfigs.find(r=>r.id===i.testId);if(!(!s||s.status!=="active")&&this.doesCurrentPageMatchEntryCriteria(e))return i}return null}getReservationForTest(t){const e=this.getActiveReservations();return Object.values(e).find(i=>i.testId===t)??null}getReservationTestType(){const t=this.getActiveReservations(),e=Object.values(t);if(e.length===0)return null;for(const i of e)if(i.isThemeTest)return"theme";for(const i of e)if(i.testType==="price")return"price";return e.some(i=>!i.isRealized)?"templateOrUrlRedirect":null}hasPriceTests(t){return t.some(e=>e.hypotheses.some(i=>i.type==="price"))}_priceTestProductIds=null;getPriceTestProductIds(){if(this._priceTestProductIds)return this._priceTestProductIds;const t=new Set;for(const e of this.testConfigs)for(const i of e.hypotheses)if(i.type==="price"){for(const s of i.domSelectors||[]){const r=s.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);r?.[1]&&t.add(r[1])}if(i.priceData?.v)for(const[s]of i.priceData.v)t.add(s)}return this._priceTestProductIds=t,this.log("Built price test product ID cache with %d products",t.size),t}isProductInAnyPriceTest(t){return this.getPriceTestProductIds().has(t)}visitorActiveTestTypeWithReservations(){const t=this.getActiveReservations();for(const r of Object.values(t)){if(r.isThemeTest)return"theme";if(r.testType==="price")return"price"}if(Object.values(t).some(r=>!r.isRealized)){if(this.state.temporary.testCategory==="global")for(const o of Object.values(t)){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 t=this.testConfigs.filter(s=>s.status==="active"&&s.hypotheses.some(r=>r.type==="price"));if(t.length===0)return;const e=this.testsFilteredByAudience.filter(s=>s.hypotheses.some(r=>r.type==="price")),i=t.filter(s=>!e.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(M(c)).test(n.toString())}catch{return!1}})&&(this.log("Applying control selectors for audience-filtered price test '%s'",s.id),x(document,{testId:s.id,hypothesisId:r.id,selectors:o},()=>{this.log("Control selectors applied for audience-filtered visitor, no metrics tracked")}),this.updatePriceTestHiddenInputs(s.id,"control",!1))}}}pickHypothesis(t){let e=Math.random();const i=t.hypotheses.reduce((r,o)=>r+o.visitorCount,0);return t.hypotheses.sort((r,o)=>r.isControl?o.isControl?0:-1:o.isControl?1:0).reduce((r,o)=>{if(r!==null)return r;const a=t.hypotheses.reduce((c,h)=>c&&h.visitorCount>20,!0)?o.visitorCount/i-o.trafficPercentage:0;return e<=o.trafficPercentage-a?o:(e-=o.trafficPercentage,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(t){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(t),0),window.setTimeout(()=>{this.syncAllEvents()},2e3)}async syncAllEvents(){const t=async()=>
9{if(this.isSyncing){window.setTimeout(()=>{(async()=>await t())()},500);return}try{this.isSyncing=!0,this.syncGAEvents(),await this.syncEvents()}finally{this.isSyncing=!1}};await t()}async syncEvents(){if(!this.state.essential.consentApproved||!this.shopifyAnalyticsId||this.state.analytics.queue.length===0)return;const t=this.state.analytics.queue.length,e=this.state.analytics.queue.splice(0,t);this.log("Syncing %s events",t);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 W(r.testId,r.hypothesisId,r.createdAt)).concat(e)};await this.sendEvents(i);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,...e)}finally{this.saveState()}}syncGAEvents(){if(!this.gaConfig.sendEvents){if(U)return;U=!0,this.log("UseGtag is false — skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const t=this.state.essential.visitorTests.filter(e=>e.shouldSendToGa);t.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",t.length),Promise.allSettled(t.map(e=>this.sendGAEvent(e))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(t){return new Promise(e=>{this.log("Sending GA Event for test %s, hypothesis %s",t.testId,t.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",t.hypothesisId),t.shouldSendToGa=!1,this.persistEssentialState(),e()},s={exp_variant_string:`SL-${t.testId}-${t.hypothesisId}`};
9this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(o,n,a){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(t){let e;({visitorTests:e,...this.state.analytics.visitor}=t),this.log("updateLocalVisitor - server returned %d tests: %o",e.length,e.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)&&!e.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 e){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
9ndToGa??!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(t){try{return await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/by-key/${this.shop}/${t}`})}catch{return null}}async sendEvents(t){await this.makeRequest({method:"post",url:`${this.eventHost}/api/v0/events`,data:JSON.stringify(t)})}getUTMValue(t){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]===t)return r[1]||null}return null}hidePage(t){this.log("Hiding page"),this.cssHideClass&&!window.document.documentElement.classList.contains(this.cssHideClass)&&(window.document.documentElement.classList.add(this.cssHideClass),t||setTimeout(this.removeAsyncHide(this.cssHideClass),2e3))}showPage(){this.cssHideClass&&this.removeAsyncHide(this.cssHideClass)()}getDeviceType(){function t(){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 e(){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 )|
9sy(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 t()?"mobile":e()?"tablet":"desktop"}removeAsyncHide(t){return()=>{t&&window.document.documentElement.classList.remove(t)}}async getCartState(){try{let t=await this.makeJsonRequest({method:"get",url:`${window.location.origin}/cart.js`});return t===null||(t.note===null&&(t=await this.makeJsonRequest({method:"post",url:`${window.location.origin}/cart/update.js`,data:JSON.stringify({note:""})})),t==null)?null:{token:t.token,total_price:t.total_price,total_discount:t.total_discount,currency:t.currency,items_subtotal_price:t.items_subtotal_price,items:t.items.map(e=>({quantity:e.quantity,variant_id:e.variant_id,key:e.key,price:e.price,final_line_price:e.final_line_price,sku:e.sku,product_id:e.product_id}))}}catch(t){return this.log("Error sending cart info",t),null}}ensureCartAttributesForExistingPriceTests(t){try{if(this.log("Checking visitor assignments for active price tests"),t&&this.state.temporary.previewConfig){const e=this.state.temporary.previewConfig;this.log("Using preview config for merchant:",e.testId);let i="variant";if(e.variants&&e.variants.length>0){const s=e.variants.find(r=>r.id===e.currentVariant);s&&s.isControl&&(i="control")}this.log("Merchant preview - updating hidden inputs:",e.testId,i),this.updatePriceTestHiddenInputs(e.testId,i,!0);return}for(const e of this.state.essential.visitorTests){const i=this.testConfigs.find(o=>o.id===e.testId);if(!i){this.log("Test config not found:",e.testId);continue}const s=i.hypotheses.find(o=>o.id===e.hypothesisId);if(!s||s.type!=="price")continue;const r=s.isControl?"control":"variant";this.log("Updating hidden inputs for price test:",e.testId,r),this.updatePriceTestHiddenInputs(e.testId,r,t)}}catch(e){this.log("Error ensuring cart attributes for existing price tests:",e)}}updatePriceTestHiddenInputs(t,e,i){try{this.cleanupPriceTestObservers();const s=`${t}:${e}:${i?"t":"f"}`,r=y=>{const f=y.getAttribute("data-sl-pid");if(!f)return!0;if(i&&this.state.temporary.previewConfig){const g=this.state.temporary.previewConfig,b=e==="control"?"a":"b",C=g.variants.find(I=>I.label===b);if(!C)return!1;for(const I of C.domSelectors||[]){const E=I.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(E){const z=E[1];if(this.log(`Extracted ID from selector: ${z}, comparing to: ${f}`),z===f)return this.log("Product ID match found in preview config:",f,"variant:",C.label),!0}else this.log(`Could not extract ID from selector: ${I.cssSelector}`)}return this.log("No product ID match in preview config for:",f,"variant:",b),!1}const w=this.testConfigs.find(g=>g.id===t);if(!w)return this.log("Test config not found for testId:",t),!1;for(const g of w.hypotheses||[]){for(const b of g.domSelectors||[]){const C=b.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(C&&C[1]===f)return this.log("Product ID match found in domSelectors:",f,"for test:",t),!0}if(g.priceData?.v){for(const b of g.priceData.v)if(b[0]===f)return this.log("Product ID match found in priceData:",f,"for test:",t),!0}}return this.log("No product ID match for:",f,"in test:",t),!1},o=new Set;let n=!1,a=null;const c=(y,f)=>{if(document.querySelectorAll("[data-sl-attribute-p]").forEach(g=>{if(g instanceof Element&&g.nodeType===Node.ELEMENT_NODE&&g.isConnected&&document.contains(g))try{y.observe(g,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(b){this.log(`Failed to observe element (${f}):`,b)}}),document.body&&document.body.isConnected)try{y.observe(document.body,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(g){this.log(`Failed to observe document.body (${f}):`,g)}},h=(y,f,w,g)=>{const b=y.filter(C=>{const I=C.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);return I&&I[1]===g});this.log(`Applying ${w} DOM selectors, total: ${y.length}, filtered: ${b.length}`),b.length>0&&x(document,{testId:t,hypothesisId:f,selectors:b})},u=(y,f)=>{this.log(`Applying DOM selector changes for product ID: ${y}`),f.disconnect(),n=!0;try{if(i&&this.state.temporary.previewConfig){const w=e==="control"?"a":"b",g=this.state.temporary.previewConfig.variants.find(b=>b.label===w);if(!g?.domSelectors){this.log(`No DOM selectors found for preview variant: ${w}`);return}h(g.domSelectors,g.id,"preview config",y)}else{const w=this.testConfigs.find(b=>b.id===t);if(!w){this.log(`No test config found for testId: ${t}`);return}const g=w.hypotheses.find(b=>e==="control"?b.isControl:!b.isControl);if(!g?.domSelectors){this.log(`No DOM selectors found for assignment: ${e}`);return}h(g.domSelectors,g.id,"live config",y)}}finally{a!==null&&clearTimeout(a),a=window.setTimeout(()=>{n=!1,a=null,c(f,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")}
9,50)}},p=new MutationObserver(y=>{if(!n)for(const f of y){if(f.type!=="childList"&&f.type!=="characterData")continue;let w=f.target;f.type==="characterData"&&(w=f.target.parentElement||f.target.parentNode);let g=w,b=g.getAttribute("data-sl-attribute-p");for(;!b&&g.parentElement;)g=g.parentElement,b=g.getAttribute("data-sl-attribute-p");if(!b)continue;const C=g.innerHTML||g.textContent||"";let I="";f.type==="characterData"&&f.oldValue!==null&&(I=f.oldValue),this.log(`innerHTML changed on element with data-sl-attribute-p="${b}"`),I&&this.log(`Previous content: "${I}"`),this.log(`Current content: "${C}"`),u(b,p)}});c(p,"initial setup"),o.add(p);const d=new MutationObserver(y=>{y.forEach(f=>{f.addedNodes.forEach(w=>{if(w.nodeType===Node.ELEMENT_NODE){const g=w;T(g);const b=g.matches('input[name="properties[_slpt]"]')?[g]:g.querySelectorAll('input[name="properties[_slpt]"]');b.length>0&&this.log(`MutationObserver found ${b.length} new hidden input(s)`),b.forEach(C=>{const I=C.getAttribute("data-sl-pid");if(this.log(`MutationObserver checking new input with data-sl-pid="${I}"`),r(C))C.value!==s&&(C.value=s,this.log("Updated newly added hidden input:",s)),m(C);else{const E=C.getAttribute("data-sl-pid");E&&this.isProductInAnyPriceTest(E)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",E):(C.remove(),this.log("Removed newly added non-matching hidden input for product ID:",E))}})}})})});o.add(d);const v=new MutationObserver(y=>{y.forEach(f=>{if(f.type==="attributes"&&f.attributeName==="data-sl-pid"){const w=f.target;if(this.log("AttributeObserver detected data-sl-pid attribute change on:",w.tagName),w.matches('input[name="properties[_slpt]"]')){const g=w,b=f.oldValue,C=g.getAttribute("data-sl-pid");this.log(`data-sl-pid changed from "${b}" to "${C}" - triggering payment placement updates`),r(g)?(g.value!==s&&(g.value=s,this.log("Updated hidden input after data-sl-pid change:",s)),C&&u(C,p),this.log("Re-running payment placement updates after variant change"),T(document.body)):C&&this.isProductInAnyPriceTest(C)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",C):(g.remove(),this.log("Removed non-matching hidden input after data-sl-pid change:",C))}}})});o.add(v);const T=y=>{y.tagName==="SHOPIFY-PAYMENT-TERMS"&&(this.log("MutationObserver found new shopify-payment-terms element"),this.updateShopifyPaymentTerms(t,e));const f=y.querySelectorAll("shopify-payment-terms");f.length>0&&(this.log(`MutationObserver found ${f.length} shopify-payment-terms in added node`),this.updateShopifyPaymentTerms(t,e)),y.tagName==="AFTERPAY-PLACEMENT"&&(this.log("MutationObserver found new afterpay-placement element"),this.updateAfterpayPlacements(t,e,"afterpay"));const w=y.querySelectorAll("afterpay-placement");w.length>0&&(this.log(`MutationObserver found ${w.length} afterpay-placement in added node`),this.updateAfterpayPlacements(t,e,"afterpay")),y.tagName==="SQUARE-PLACEMENT"&&(this.log("MutationObserver found new square-placement element"),this.updateAfterpayPlacements(t,e,"square"));const g=y.querySelectorAll("square-placement");g.length>0&&(this.log(`MutationObserver found ${g.length} square-placement in added node`),this.updateAfterpayPlacements(t,e,"square")),y.tagName==="KLARNA-PLACEMENT"&&(this.log("MutationObserver found new klarna-placement element"),this.updateKlarnaPlacements(t,e));const b=y.querySelectorAll("klarna-placement");b.length>0&&(this.log(`MutationObserver found ${b.length} klarna-placement in added node`),this.updateKlarnaPlacements(t,e))},m=y=>{v.observe(y,{attributes:!0,attributeFilter:["data-sl-pid"],attributeOldValue:!0,subtree:!1});const f=y.getAttribute("data-sl-pid");this.log(`Started AttributeObserver on specific input with data-sl-pid="${f}"`)},S=()=>{const y=document.querySelectorAll('input[name="properties[_slpt]"]');this.log(`Found ${y.length} existing hidden inputs to check`),y.forEach(f=>{const w=f.getAttribute("data-sl-pid");this.log(`Checking existing input with data-sl-pid="${w}"`),r(f)?(f.value=s,this.log("Updated existing hidden input:",s),w&&(this.log("Applying initial DOM selector changes for existing product"),u(w,p)),m(f)):w&&this.isProductInAnyPriceTest(w)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",w):(f.remove(),this.log("Removed non-matching hidden input for product ID:",w))})},A=()=>{document.body?(d.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver on document.body"),S(),T(document.body)):document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.body&&(d.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver after DOMContentLoaded"),S(),T(document.body))}):(this.log("Set timeout on observer"),setTimeout(A,10))};A(),window.__shopliftPriceTestObservers=o,window.__shopliftPriceTestValue=s,this.log("Set up DOM observer for price test hidden input
9s")}catch(s){this.log("Error updating price test hidden inputs:",s)}}updateKlarnaPlacements(t,e){this.updatePlacementElements(t,e,"klarna-placement",(i,s)=>{i.setAttribute("data-purchase-amount",s.toString())})}cleanupPriceTestObservers(){const t=window.__shopliftPriceTestObservers;t&&(t.forEach(e=>{e.disconnect()}),t.clear(),this.log("Cleaned up existing price test observers")),delete window.__shopliftPriceTestObservers,delete window.__shopliftPriceTestValue}updateAfterpayPlacements(t,e,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(t,e,s,(o,n)=>{if(i==="afterpay"){const a=(n/100).toFixed(2);o.setAttribute("data-amount",a)}else o.setAttribute("data-amount",n.toString())}),this.log("updateAfterpayPlacements completed")}updatePlacementElements(t,e,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 a=e==="control"?"a":"b",c=this.state.temporary.previewConfig.variants.find(h=>h.label===a);if(!c?.domSelectors){this.log(`No variant found for label ${a} in preview config for ${i}`);return}o=c.domSelectors,this.log(`Using preview config for ${i} in merchant mode, variant: ${a}`)}else{const a=this.testConfigs.find(h=>h.id===t);if(!a){this.log(`No testConfig found for id: ${t} - early return`);return}const c=a.hypotheses.find(h=>e==="control"?h.isControl:!h.isControl);if(!c?.domSelectors){this.log(`No hypothesis or domSelectors found for assignment: ${e} - early return`);return}o=c.domSelectors}const n=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);r.forEach(a=>{let c=null;const h=a.parentElement;if(h&&(c=h.querySelector('input[name="properties[_slpt]"]')),c||(c=a.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 p=o.find(m=>{const S=m.cssSelector.match(n);return S&&S[1]===u});if(!p){this.log(`No matching selector found for productId: ${u} - skipping element`);return}const d=p.actions.find(m=>m.scope==="price");if(!d?.value){this.log("No price action or value found - skipping element");return}const v=parseFloat(d.value.replace(/[^0-9.]/g,""));if(Number.isNaN(v)){this.log(`Invalid price "${d.value}" for product ${u} - skipping`);return}const T=Math.round(v*100);s(a,T)}),this.log(`updatePlacementElements completed for ${i}`)}updateShopifyPaymentTerms(t,e){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=e==="control"?"a":"b",n=this.state.temporary.previewConfig.variants.find(a=>a.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(a=>a.id===t);if(!o)return;const n=o.hypotheses.find(a=>e==="control"?a.isControl===!0:a.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 a=s.find(c=>{const h=c.cssSelector.match(r);return h&&h[1]===n});if(a){const c=a.actions.find(h=>h.scope==="price");if(c&&c.value){const h=o.getAttribute("shopify-meta");if(h)try{const u=JSON.parse(h);if(u.variants&&Array.isArray(u.variants)){const p=u.variants.find(d=>d.id?.toString()===n);if(p){p.full_price=c.value;const d=parseFloat(c.value.replace(/[^0-9.]/g,""));if(p.number_of_payment_terms&&p.number_of_payment_terms>1){const v=d/p.number_of_payment_terms;p.price_per_term=`$${v.toFixed(2)}`}o.setAttribute("shopify-meta",JSON.stringify(u))}}}catch(u){this.log("Error parsing/updating shoplift-meta:",u)}}}})}
9async makeJsonRequest(t){const e=await this.makeRequest(t);return e===null?null:JSON.parse(await e.text(),_)}async makeRequest(t){const{url:e,method:i,headers:s,data:r,signal:o}=t,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 a=await this.fetch(e,{method:i,headers:n,body:r,signal:o});if(!a.ok){if(a.status===204)return null;if(a.status===422){const c=await a.json();if(typeof c<"u"&&c.isBot)throw new D}throw new Error(`Error sending shoplift request ${a.status}`)}return a}queueAddVisitorToTest(t,e){if(this.state.essential.visitorTests.some(s=>s.testId===t))return;const i=this.testConfigs.find(s=>s.id===t);if(this.state.essential.visitorTests.push({createdAt:new Date,testId:t,hypothesisId:e.id,isThemeTest:e.type==="theme",themeId:e.themeId,isSaved:!1,isInvalid:!1,shouldSendToGa:!0,testType:e.type,assignedTo:e.isControl?"control":"variant",testTitle:i?.title}),e.type==="price"){const s=e.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",t,s),this.updatePriceTestHiddenInputs(t,s,!1)}}queueCartUpdate(t){this.queueEvent(new Y(t))}queuePageView(t){this.queueEvent(new J(t))}queueEvent(t){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(t)}legacyGetLocalStorageVisitor(){const t=this.localStorageGet(this.legacySessionKey);if(t)try{return JSON.parse(t,_)}catch{}return null}pruneStaleVisitorTests(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(e=>e.id==t.testId)||this.inactiveTestConfigs.filter(e=>this.testIsPaused(e)).some(e=>e.id===t.testId))}pruneStateAndSave(){this.pruneStaleVisitorTests(),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const t=this.loadAnalyticsState(),e={analytics:t,essential:this.loadEssentialState(t),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 e.analytics.visitor===null&&r&&({visitorTests:e.essential.visitorTests,...e.analytics.visitor}=r,e.essential.isFirstLoad=!1,e.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)),!e.essential.consentApproved&&e.essential.hasConsentInteraction&&this.deleteLocalStorage(this.analyticsSessionKey),e}loadEssentialState(t){const e=this.loadLocalStorage(this.essentialSessionKey),i=this.loadCookie(this.essentialSessionKey),s=this.getInitialState();t.visitor?.device&&(s.device=t.visitor.device);const r={timestamp:new Date,consentApproved:!1,hasConsentInteraction:!1,debugMode:!1,initialState:s,visitorTests:[],isFirstLoad:!0},o=[e,i].filter(n=>n!==null).sort((n,a)=>+a.timestamp-+n.timestamp)[0]??r;return o.initialState||(t.visitor!==null?o.initialState=t.visitor:(o.initialState=s,o.initialState.createdAt=o.timestamp)),o}loadAnalyticsState(){const t=this.loadLocalStorage(this.analyticsSessionKey),e=this.loadCookie(this.analyticsSessionKey),i={timestamp:new Date,visitor:null,queue:[]},s=[t,e].filter(r=>r!==null).sort((r,o)=>+o.timestamp-+r.timestamp)[0]??i;return s.queue.length===0&&t&&t.queue.length>1&&(s.queue=t.queue),s}loadTemporaryState(){const t=this.sessionStorageGet(this.temporarySessionKey),e=t?JSON.parse(t,_):null,i=this.loadCookie(this.temporarySessionKey);return e??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
9CookieState(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(t){const e=this.localStorageGet(t);if(e===null)return null;try{return JSON.parse(e,_)}catch{return null}}loadCookie(t){const e=this.getCookie(t);if(e===null)return null;try{return JSON.parse(e,_)}catch{return null}}persistLocalStorageState(t,e){this.localStorageSet(t,JSON.stringify(e))}persistCookieState(t,e,i=!1){const s=JSON.stringify(e),r=i?"":`expires=${new Date(new Date().getTime()+864e5*365).toUTCString()};`;document.cookie=`${t}=${s};domain=.${window.location.hostname};path=/;SameSite=Strict;${r}`}deleteCookie(t){const e=new Date(0).toUTCString();document.cookie=`${t}=;domain=.${window.location.hostname};path=/;expires=${e};`}deleteLocalStorage(t){window.localStorage.removeItem(t)}getChannel(t){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
9andex\.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
9pera\.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)}
9,{"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
9akao|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
9andex\.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(t))?.name??"other"}getShopifyAnalyticsId(){return this.getCookie("_shopify_y")}legacyGetCookieVisitor(){const t=this.getCookie("SHOPLIFT");return t===null?null:JSON.parse(t,_)}getCookie(t){const e=this.cookie.split("; ").filter(i=>i.split("=").at(0)===t).at(0);return e===void 0?null:e.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",t=>{(async()=>await this.onConsentChange(t.detail.analyticsAllowed,!0))()}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let t=0;const e=()=>{this.loadShopifyConsentApi()||t++<10&&window.setTimeout(e,100)};e()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const t=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"),e=window.setTimeout(()=>{(async()=>await t())()},1e3);return}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let e=window.setTimeout(()=>{(async()=>await t())()},5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(e),i){this.log("Error loading consent tracking",i);return}await t()})()}),!0}return!1}async onConsentChange(t,e){try{if(this.log("Consent change detected",t,e),this.state.essential.consentApproved=t,this.state.essential.hasConsentInteraction=e,!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();for(const i of this.state.analytics.queue.filter(s=>s.type===1||s.type===2)){const s=i;s.shopifyAnalyticsId=this.shopifyAnalyticsId}this.saveState(),await this.syncAllEvents()}catch(i){this.log("Error syncing on consent change",i)}}isThemePreview(){return isThemePreview||themeRole!=="main"}isAppProxyPath(){const t=["/apps/","/tools/","/a/"],e=window.location.pathname;return t.some(i=>e.startsWith(i))}clearThemeBar(t,e,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"),e&&(this.log("Removing theme bar"),o.remove()),t?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},O)}):Promise.resolve(null)))).catch(r=>console.error(r))}waitForElement(t,e){return new Promise(i=>{const s=document.querySelector(e);if(s){i(s);return}const r=new MutationObserver(o=>{const n=document.querySelector(e);if(n){r.disconnect(),i(n);return}});r.observe(t??document.documentElement,{childList:!0})})}setDebug(t){this.state.essential.debugMode=t,this.saveState()}log(t,...e){let i=0;const s=t.replace(/%[sdoOfF]/g,r=>{if(i>=e.length)return r;const o=e[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] ${t}`,...e)}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
9:this.getCookie("is_shopify_merchant"),themeId,url:window.location.href,isThemePreview,themeRole,gaConfig:this.gaConfig},logHistory:this.logHistory}}createViewportObserver(t,e={}){const{threshold:i=this.VIEWPORT_TRACK_THRESHOLD,triggerOnce:s=!0}=e,r=new Set;return new IntersectionObserver(o=>{o.forEach(n=>{if(n.isIntersecting&&!r.has(n.target)){const a=n.target,c=a.getAttribute(this.DATA_SL_TEST_ID);c&&(t(c,a),s&&r.add(a))}})},{threshold:i})}applyChangesWithViewport(t,e,i,s){const r=e.selectorsForViewportTracking??e.selectors,o=n=>{if(this.state.essential.visitorTests.some(p=>p.testId===n)||this.activeViewportObservers.has(n))return;const a=[];if(r.forEach(p=>{t.querySelectorAll(p.cssSelector).forEach(v=>a.push(v))}),a.length===0)return;let c=!1;const h=()=>{c||(c=!0,i(n),u.disconnect(),this.activeViewportObservers.delete(n))},u=this.createViewportObserver(()=>{h()},{triggerOnce:!0,...s});this.activeViewportObservers.set(n,u),this.log(`Created viewport observer for test ${n}, observing ${a.length} elements`),a.forEach(p=>{p.setAttribute(this.DATA_SL_TEST_ID,String(n)),u.observe(p)}),setTimeout(()=>{c||a.forEach(p=>{const d=p.getBoundingClientRect(),v=s?.threshold??this.VIEWPORT_TRACK_THRESHOLD,T=Math.min(d.bottom,window.innerHeight)-Math.max(d.top,0),m=Math.min(d.right,window.innerWidth)-Math.max(d.left,0);d.top<window.innerHeight&&d.bottom>0&&d.left<window.innerWidth&&d.right>0&&T>0&&m>0&&T>=d.height*v&&(this.log(`Price element already visible in viewport for test ${n}:`,p),h())})},100)};e.selectors.length>0&&x(t,e,()=>{}),Z(t,{testId:e.testId,hypothesisId:e.hypothesisId,selectors:r},n=>{o(n)})}applyPriceTestWithMapLookup(t,e,i,s){if(!e.priceData){this.log("No price data for hypothesis '%s'",e.id);return}this.log("Hypothesis '%s' isControl=%s, priceData has %d variants",e.id,e.isControl,e.priceData.v.length);const r=e.priceData.v.slice(0,3);for(const[m,S,A]of r)this.log(" Sample priceData: variant=%s, price=%d, compareAt=%d",m,S,A);const o=ct(e.priceData),n=new Set;for(const m of i)if(m.priceData)for(const[S]of m.priceData.v)n.add(S);this.log("Price test Map lookup: %d products in hypothesis, %d total products to track",o.size,n.size);const a=e.priceData,c=new WeakSet;let h=!1;const u="[data-sl-attribute-p], [data-sl-attribute-cap], [data-sl-attribute-discount]",p=m=>{if(c.has(m))return;const S=m.getAttribute("data-sl-attribute-p"),A=m.getAttribute("data-sl-attribute-cap"),y=m.getAttribute("data-sl-attribute-discount"),f=S||A||y;if(!f||!n.has(f))return;c.add(m);const w=o.get(f);w&&(this.log("Applying price for product %s: %d cents (compare at: %d cents)",f,w.priceInCents,w.compareAtPriceInCents),dt(m,f,w,a),this.log("Applied price to element for product %s",f)),!h&&!this.state.essential.visitorTests.some(g=>g.testId===t)&&(m.setAttribute(this.DATA_SL_TEST_ID,String(t)),this.setupElementViewportTracking(m,t,()=>{h||(h=!0,s(t))}))},d=()=>{const m=document.querySelectorAll(u);this.log("Scanning for price elements, found: %d",m.length),m.forEach(p)},v=new MutationObserver(m=>{for(const S of m)S.type==="childList"&&S.addedNodes.forEach(A=>{if(A.nodeType===Node.ELEMENT_NODE){const y=A;(y.hasAttribute("data-sl-attribute-p")||y.hasAttribute("data-sl-attribute-cap")||y.hasAttribute("data-sl-attribute-discount"))&&p(y),y.querySelectorAll(u).forEach(p)}}),S.type==="attributes"&&S.target instanceof Element&&p(S.target)}),T=document.body||document.documentElement;v.observe(T,{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"),d(),document.readyState==="loading"&&document.addEventListener("DOMContentLoaded",()=>{this.log("DOMContentLoaded - rescanning for price elements"),d()}),setTimeout(()=>{this.log("Delayed rescan for price elements"),d()},100),setTimeout(()=>{this.log("Final rescan for price elements"),d()},500)}setupElementViewportTracking(t,e,i){const s=this.VIEWPORT_TRACK_THRESHOLD,r=t.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",e),i();return}const c=new IntersectionObserver(h=>{for(const u of h)if(u.isIntersecting&&u.intersectionRatio>=s){this.log("Price element entered viewport for test %s",e),c.disconnect(),i();break}},{threshold:s});c.observe(t)}debug(){const t=this.debugState();console.log(JSON.stringify(t,O,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new pt("radix-nutrition.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",false,false,false,{"sendEvents":false,"mode":"gtag"},false,1000,[],[{"id":"670ce0e1-ae93-4626-bf4d-d865a4641bb0","bayesianRevision":3,"status":"incompatible","hypotheses":[{"id":"449fcad7-06cd-461e-893e-b8b592c8f91b","type":"product","themeId":137900654654,"affix":"breakfast-product-page-v4","isControl":true,"redirectPath":null}
9,{"id":"0376aae4-8a65-4f3e-ab08-0cae048dcac5","type":"product","themeId":137900654654,"affix":"sl-9C1A09EC","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"0c0e27ca-7206-46bf-b6ca-06d208f561e0","bayesianRevision":3,"status":"incompatible","hypotheses":[{"id":"f92393c1-7304-4539-b42a-5e0c4251336b","type":"product","themeId":137900654654,"affix":"breakfast-product-page-v3","isControl":true,"redirectPath":null},{"id":"c5d3a0a0-8a0a-4b75-bdba-4a574f0cc112","type":"product","themeId":137900654654,"affix":"sl-FE848042","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"4a7f3b89-cfdd-4aeb-8fa7-3ce54d341c19","bayesianRevision":3,"status":"incompatible","hypotheses":[{"id":"758fa95d-31d8-4d08-a032-22a16a4b1d89","type":"product","themeId":137900654654,"affix":"free-breakfast-samples-v2","isControl":true,"redirectPath":null},{"id":"95de8dcc-2018-4fe4-a929-56d2493b27fe","type":"product","themeId":137900654654,"affix":"sl-9694D6C8","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false}]),await window.shopliftInstance.init())})()})(); })("/", { suffix: "", type: "search" }, "main", 139831115838, false)</script>
9 10<!-- End of Shoplift scripts --> 11 12 <meta charset="utf-8"> 13 <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=1.0"> 14 <meta name="theme-color" content="#16180e"> 15 16 <title>Search</title><meta name="description" content="Unlock premium health with Radix Nutrition! Experience the pinnacle of accessible everyday nutrition and optimize your metabolic function. Shop now!"><link rel="canonical" href="https://radixnutrition.com/search"><link rel="preconnect" href="https://cdn.shopify.com"> 17 <link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin> 18 <link rel="dns-prefetch" href="https://productreviews.shopifycdn.com"><link rel="preload" href="//radixnutrition.com/cdn/fonts/inter/inter_n4.b2a3f24c19b4de56e8871f609e73ca7f6d2e2bb9.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="//radixnutrition.com/cdn/fonts/inter/inter_n4.b2a3f24c19b4de56e8871f609e73ca7f6d2e2bb9.woff2" as="font" type="font/woff2" crossorigin><meta property="og:type" content="website"> 19 <meta property="og:title" content="Search"><meta property="og:image" content="http://radixnutrition.com/cdn/shop/files/Radix_social_sharing_image_1200x628px_V2.02.jpg?v=1719782618&width=2048"> 20 <meta property="og:image:secure_url" content="https://radixnutrition.com/cdn/shop/files/Radix_social_sharing_image_1200x628px_V2.02.jpg?v=1719782618&width=2048"> 21 <meta property="og:image:width" content="1200"> 22 <meta property="og:image:height" content="628"><meta property="og:description" content="Unlock premium health with Radix Nutrition! Experience the pinnacle of accessible everyday nutrition and optimize your metabolic function. Shop now!"><meta property="og:url" content="https://radixnutrition.com/search"> 23<meta property="og:site_name" content="Radix Nutrition"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Search"> 24 <meta name="twitter:description" content="Unlock premium health with Radix Nutrition! Experience the pinnacle of accessible everyday nutrition and optimize your metabolic function. Shop now!"><meta name="twitter:image" content="https://radixnutrition.com/cdn/shop/files/Radix_social_sharing_image_1200x628px_V2.02.jpg?crop=center&height=1200&v=1719782618&width=1200"> 25 <meta name="twitter:image:alt" content="">
25<script type="application/ld+json"> 26 { 27 "@context": "https://schema.org", 28 "@type": "BreadcrumbList", 29 "itemListElement": [{ 30 "@type": "ListItem", 31 "position": 1, 32 "name": "Home", 33 "item": "https://radixnutrition.com" 34 }] 35 } 36</script>
36<style>/* Typography (heading) */ 37 @font-face { 38 font-family: Inter; 39 font-weight: 400; 40 font-style: normal; 41 font-display: fallback; 42 src: url("//radixnutrition.com/cdn/fonts/inter/inter_n4.b2a3f24c19b4de56e8871f609e73ca7f6d2e2bb9.woff2") format("woff2"), 43 url("//radixnutrition.com/cdn/fonts/inter/inter_n4.af8052d517e0c9ffac7b814872cecc27ae1fa132.woff") format("woff"); 44} 45 46@font-face { 47 font-family: Inter; 48 font-weight: 400; 49 font-style: italic; 50 font-display: fallback; 51 src: url("//radixnutrition.com/cdn/fonts/inter/inter_i4.feae1981dda792ab80d117249d9c7e0f1017e5b3.woff2") format("woff2"), 52 url("//radixnutrition.com/cdn/fonts/inter/inter_i4.62773b7113d5e5f02c71486623cf828884c85c6e.woff") format("woff"); 53} 54 55/* Typography (body) */ 56 @font-face { 57 font-family: Inter; 58 font-weight: 400; 59 font-style: normal; 60 font-display: fallback; 61 src: url("//radixnutrition.com/cdn/fonts/inter/inter_n4.b2a3f24c19b4de56e8871f609e73ca7f6d2e2bb9.woff2") format("woff2"), 62 url("//radixnutrition.com/cdn/fonts/inter/inter_n4.af8052d517e0c9ffac7b814872cecc27ae1fa132.woff") format("woff"); 63} 64 65@font-face { 66 font-family: Inter; 67 font-weight: 400; 68 font-style: italic; 69 font-display: fallback; 70 src: url("//radixnutrition.com/cdn/fonts/inter/inter_i4.feae1981dda792ab80d117249d9c7e0f1017e5b3.woff2") format("woff2"), 71 url("//radixnutrition.com/cdn/fonts/inter/inter_i4.62773b7113d5e5f02c71486623cf828884c85c6e.woff") format("woff"); 72} 73 74@font-face { 75 font-family: Inter; 76 font-weight: 700; 77 font-style: normal; 78 font-display: fallback; 79 src: url("//radixnutrition.com/cdn/fonts/inter/inter_n7.02711e6b374660cfc7915d1afc1c204e633421e4.woff2") format("woff2"), 80 url("//radixnutrition.com/cdn/fonts/inter/inter_n7.6dab87426f6b8813070abd79972ceaf2f8d3b012.woff") format("woff"); 81} 82 83@font-face { 84 font-family: Inter; 85 font-weight: 700; 86 font-style: italic; 87 font-display: fallback; 88 src: url("//radixnutrition.com/cdn/fonts/inter/inter_i7.b377bcd4cc0f160622a22d638ae7e2cd9b86ea4c.woff2") format("woff2"), 89 url("//radixnutrition.com/cdn/fonts/inter/inter_i7.7c69a6a34e3bb44fcf6f975857e13b9a9b25beb4.woff") format("woff"); 90} 91 92:root { 93 /** 94 * --------------------------------------------------------------------- 95 * SPACING VARIABLES 96 * 97 * We are using a spacing inspired from frameworks like Tailwind CSS. 98 * --------------------------------------------------------------------- 99 */ 100 --spacing-0-5: 0.125rem; /* 2px */ 101 --spacing-1: 0.25rem; /* 4px */ 102 --spacing-1-5: 0.375rem; /* 6px */ 103 --spacing-2: 0.5rem; /* 8px */ 104 --spacing-2-5: 0.625rem; /* 10px */ 105 --spacing-3: 0.75rem; /* 12px */ 106 --spacing-3-5: 0.875rem; /* 14px */ 107 --spacing-4: 1rem; /* 16px */ 108 --spacing-4-5: 1.125rem; /* 18px */ 109 --spacing-5: 1.25rem; /* 20px */ 110 --spacing-5-5: 1.375rem; /* 22px */ 111 --spacing-6: 1.5rem; /* 24px */ 112 --spacing-6-5: 1.625rem; /* 26px */ 113 --spacing-7: 1.75rem; /* 28px */ 114 --spacing-7-5: 1.875rem; /* 30px */ 115 --spacing-8: 2rem; /* 32px */ 116 --spacing-8-5: 2.125rem; /* 34px */ 117 --spacing-9: 2.25rem; /* 36px */ 118 --spacing-9-5: 2.375rem; /* 38px */ 119 --spacing-10: 2.5rem; /* 40px */ 120 --spacing-11: 2.75rem; /* 44px */ 121 --spacing-12: 3rem; /* 48px */ 122 --spacing-14: 3.5rem; /* 56px */ 123 --spacing-16: 4rem; /* 64px */ 124 --spacing-18: 4.5rem; /* 72px */ 125 --spacing-20: 5rem; /* 80px */ 126 --spacing-24: 6rem; /* 96px */ 127 --spacing-28: 7rem; /* 112px */ 128 --spacing-32: 8rem; /* 128px */ 129 --spacing-36: 9rem; /* 144px */ 130 --spacing-40: 10rem; /* 160px */ 131 --spacing-44: 11rem; /* 176px */ 132 --spacing-48: 12rem; /* 192px */ 133 --spacing-52: 13rem; /* 208px */ 134 --spacing-56: 14rem; /* 224px */ 135 --spacing-60: 15rem; /* 240px */ 136 --spacing-64: 16rem; /* 256px */ 137 --spacing-72: 18rem; /* 288px */ 138 --spacing-80: 20rem; /* 320px */ 139 --spacing-96: 24rem; /* 384px */ 140 141 /* Container */ 142 --container-max-width: 1600px; 143 --container-narrow-max-width: 1350px; 144 --container-gutter: var(--spacing-5); 145 --section-outer-spacing-block: var(--spacing-14); 146 --section-inner-max-spacing-block: var(--spacing-12); 147 --section-inner-spacing-inline: var(--container-gutter); 148 --section-stack-spacing-block: var(--spacing-10); 149 150 /* Grid gutter */ 151 --grid-gutter: var(--spacing-5); 152 153 /* Product list settings */ 154 --product-list-row-gap: var(--spacing-8); 155 --product-list-column-gap: var(--grid-gutter); 156 157 /* Form settings */ 158 --input-gap: var(--spacing-2); 159 --input-height: 2.625rem; 160 --input-padding-inline: var(--spacing-4); 161 162 /* Other sizes */ 163 --sticky-area-height: calc(var(--sticky-announcement-bar-enabled, 0) * var(--announcement-bar-height, 0px) + var(--sticky-header-enabled, 0) * var(--header-height, 0px)); 164 165 /* RTL support */ 166 --transform-logical-flip: 1; 167 --transform-origin-start: left;
168 --transform-origin-end: right; 169 170 /** 171 * --------------------------------------------------------------------- 172 * TYPOGRAPHY 173 * --------------------------------------------------------------------- 174 */ 175 176 /* Font properties */ 177 --heading-font-family: Inter, sans-serif; 178 --heading-font-weight: 400; 179 --heading-font-style: normal; 180 --heading-text-transform: normal; 181 --heading-letter-spacing: -0.02em; 182 --text-font-family: Inter, sans-serif; 183 --text-font-weight: 400; 184 --text-font-style: normal; 185 --text-letter-spacing: 0.0em; 186 187 /* Font sizes */ 188 --text-h0: 3rem; 189 --text-h1: 2.5rem; 190 --text-h2: 2rem; 191 --text-h3: 1.5rem; 192 --text-h4: 1.375rem; 193 --text-h5: 1.125rem; 194 --text-h6: 1rem; 195 --text-xs: 0.6875rem; 196 --text-sm: 0.75rem; 197 --text-base: 0.875rem; 198 --text-lg: 1.125rem; 199 200 /** 201 * --------------------------------------------------------------------- 202 * COLORS 203 * --------------------------------------------------------------------- 204 */ 205 206 /* Color settings */--accent: 26 26 26; 207 --text-primary: 22 24 14; 208 --background-primary: 242 237 225; 209 --dialog-background: 242 237 225; 210 --border-color: var(--text-color, var(--text-primary)) / 0.12; 211 212 /* Button colors */ 213 --button-background-primary: 26 26 26; 214 --button-text-primary: 255 255 255; 215 --button-background-secondary: 26 26 26; 216 --button-text-secondary: 242 237 225; 217 218 /* Status colors */ 219 --success-background: 224 244 232; 220 --success-text: 0 163 65; 221 --warning-background: 255 246 233; 222 --warning-text: 255 183 74; 223 --error-background: 254 231 231; 224 --error-text: 248 58 58; 225 226 /* Product colors */ 227 --on-sale-text: 248 58 58; 228 --on-sale-badge-background: 248 58 58; 229 --on-sale-badge-text: 255 255 255; 230 --sold-out-badge-background: 0 0 0; 231 --sold-out-badge-text: 255 255 255; 232 --primary-badge-background: 128 60 238; 233 --primary-badge-text: 255 255 255; 234 --star-color: 255 183 74; 235 --product-card-background: 242 237 225; 236 --product-card-text: 26 26 26; 237 238 /* Header colors */ 239 --header-background: 22 24 14; 240 --header-text: 255 255 255; 241 242 /* Footer colors */ 243 --footer-background: 22 24 14; 244 --footer-text: 255 255 255; 245 246 /* Rounded variables (used for border radius) */ 247 --rounded-xs: 0.25rem; 248 --rounded-sm: 0.375rem; 249 --rounded: 0.75rem; 250 --rounded-lg: 1.5rem; 251 --rounded-full: 9999px; 252 253 --rounded-button: 3.75rem; 254 --rounded-input: 0.5rem; 255 256 /* Box shadow */ 257 --shadow-sm: 0 2px 8px rgb(var(--text-primary) / 0.1); 258 --shadow: 0 5px 15px rgb(var(--text-primary) / 0.1); 259 --shadow-md: 0 5px 30px rgb(var(--text-primary) / 0.1); 260 --shadow-block: 0px 18px 50px rgb(var(--text-primary) / 0.1); 261 262 /** 263 * --------------------------------------------------------------------- 264 * OTHER 265 * --------------------------------------------------------------------- 266 */ 267 268 --stagger-products-reveal-opacity: 0; 269 --cursor-close-svg-url: url(//radixnutrition.com/cdn/shop/t/314/assets/cursor-close.svg?v=147174565022153725511778198596); 270 --cursor-zoom-in-svg-url: url(//radixnutrition.com/cdn/shop/t/314/assets/cursor-zoom-in.svg?v=154953035094101115921778198596); 271 --cursor-zoom-out-svg-url: url(//radixnutrition.com/cdn/shop/t/314/assets/cursor-zoom-out.svg?v=16155520337305705181778198596); 272 --checkmark-svg-url: url(//radixnutrition.com/cdn/shop/t/314/assets/checkmark.svg?v=77552481021870063511778198596); 273 } 274 275 [dir="rtl"]:root { 276 /* RTL support */ 277 --transform-logical-flip: -1; 278 --transform-origin-start: right; 279 --transform-origin-end: left; 280 } 281 282 @media screen and (min-width: 700px) { 283 :root { 284 /* Typography (font size) */ 285 --text-h0: 4rem; 286 --text-h1: 3rem; 287 --text-h2: 2.5rem; 288 --text-h3: 2rem; 289 --text-h4: 1.625rem; 290 --text-h5: 1.25rem; 291 --text-h6: 1.125rem; 292 293 --text-xs: 0.6875rem; 294 --text-sm: 0.8125rem; 295 --text-base: 0.9375rem; 296 --text-lg: 1.1875rem; 297 298 /* Spacing */ 299 --container-gutter: 2rem; 300 --section-outer-spacing-block: var(--spacing-20); 301 --section-inner-max-spacing-block: var(--spacing-14); 302 --section-inner-spacing-inline: var(--spacing-14); 303 --section-stack-spacing-block: var(--spacing-12); 304 305 /* Grid gutter */ 306 --grid-gutter: var(--spacing-6); 307 308 /* Product list settings */ 309 --product-list-row-gap: var(--spacing-12); 310 311 /* Form settings */ 312 --input-gap: 1rem; 313 --input-height: 3.125rem; 314 --input-padding-inline: var(--spacing-5); 315 } 316 } 317 318 @media screen and (min-width: 1000px) { 319 :root { 320 /* Spacing settings */ 321 --container-gutter: var(--spacing-12); 322 --section-outer-spacing-block: var(--spacing-20); 323 --section-inner-max-spacing-block: var(--spacing-18); 324 --section-inner-spacing-inline: var(--spacing-18); 325 --section-stack-spacing-block: var(--spacing-12); 326 } 327 } 328 329 @media screen and (min-width: 1150px) { 330 :root { 331 /* Spacing settings */ 332 --container-gutter: var(--spacing-12); 333 --section-outer-spacing-block: var(--spacing-24); 334 --section-inner-max-spacing-block: var(--spacing-18); 335 --section-inner-spacing-inline: var(--spacing-18); 336 --section-stack-spacing-block: var(--spacing-12); 337 } 338 } 339 340 @media screen and (min-width: 1400px) { 341 :root { 342 /* Typography (font size) */ 343 --text-h0: 5rem; 344 --text-h1: 3.75rem; 345 --text-h2: 3rem; 346 --text-h3: 2.25rem; 347 --text-h4: 2rem; 348 --text-h5: 1.5rem; 349 --text-h6: 1.25rem; 350 351 --section-outer-spacing-block: var(--spacing-28); 352 --section-inner-max-spacing-block: var(--spacing-20); 353 --section-inner-spacing-inline: var(--spacing-20); 354 } 355 } 356 357 @media screen and (min-width: 1600px) { 358 :root { 359 --section-outer-spacing-block: var(--spacing-32); 360 --section-inner-max-spacing-block: var(--spacing-24); 361 --section-inner-spacing-inline: var(--spacing-24); 362 } 363 } 364 365 /** 366 * --------------------------------------------------------------------- 367 * LIQUID DEPENDANT CSS 368 * 369 * Our main CSS is Liquid free, but some very specific features depend on 370 * theme settings, so we have them here 371 * --------------------------------------------------------------------- 372 */@media screen and (pointer: fine) {
373 .button:not([disabled]):hover, .btn:not([disabled]):hover, .shopify-payment-button__button--unbranded:not([disabled]):hover { 374 --button-background-opacity: 0.85; 375 } 376 377 .button--subdued:not([disabled]):hover { 378 --button-background: var(--text-color) / .05 !important; 379 } 380 }</style>
380<script> 381 // This allows to expose several variables to the global scope, to be used in scripts 382 window.themeVariables = { 383 settings: { 384 showPageTransition: null, 385 staggerProductsApparition: true, 386 reduceDrawerAnimation: false, 387 reduceMenuAnimation: false, 388 headingApparition: "split_fade", 389 pageType: "search", 390 moneyFormat: "\u003cspan class=money\u003e ${{amount}} \u003c\/span\u003e", 391 moneyWithCurrencyFormat: "\u003cspan class=money\u003e ${{amount}} NZD \u003c\/span\u003e", 392 currencyCodeEnabled: false, 393 cartType: "popover", 394 showDiscount: true, 395 discountMode: "saving", 396 pageBackground: "#f2ede1", 397 textColor: "#16180e" 398 }, 399 400 strings: { 401 addedToCartWithTitle: "{{ product_title }} added to your cart", 402 accessibilityClose: "Close", 403 accessibilityNext: "Next", 404 accessibilityPrevious: "Previous", 405 closeGallery: "Close gallery", 406 zoomGallery: "Zoom", 407 errorGallery: "Image cannot be loaded", 408 searchNoResults: "No results could be found.", 409 addOrderNote: "Add order note", 410 editOrderNote: "Edit order note", 411 shippingEstimatorNoResults: "Sorry, we do not ship to your address.", 412 shippingEstimatorOneResult: "There is one shipping rate for your address:", 413 shippingEstimatorMultipleResults: "There are several shipping rates for your address:", 414 shippingEstimatorError: "One or more error occurred while retrieving shipping rates:" 415 }, 416 417 breakpoints: { 418 'sm': 'screen and (min-width: 700px)', 419 'md': 'screen and (min-width: 1000px)', 420 'lg': 'screen and (min-width: 1150px)', 421 'xl': 'screen and (min-width: 1400px)', 422 423 'sm-max': 'screen and (max-width: 699px)', 424 'md-max': 'screen and (max-width: 999px)', 425 'lg-max': 'screen and (max-width: 1149px)', 426 'xl-max': 'screen and (max-width: 1399px)' 427 } 428 }; 429 430 // For detecting native share 431 document.documentElement.classList.add(`native-share--${navigator.share ? 'enabled' : 'disabled'}`);</script>
431<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 431
431
432<script type="importmap">{ 433 "imports": { 434 "vendor": "//radixnutrition.com/cdn/shop/t/314/assets/vendor.min.js?v=150021648067352023321778198568", 435 "theme": "//radixnutrition.com/cdn/shop/t/314/assets/theme.js?v=40804283163904948221778198568", 436 "photoswipe": "//radixnutrition.com/cdn/shop/t/314/assets/photoswipe.min.js?v=13374349288281597431778198567" 437 } 438 } 439 </script>
439 440 441
441<script type="module" src="//radixnutrition.com/cdn/shop/t/314/assets/vendor.min.js?v=150021648067352023321778198568"></script>
441 442
442<script type="module" src="//radixnutrition.com/cdn/shop/t/314/assets/theme.js?v=40804283163904948221778198568"></script>
442 443 444
444<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
444<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/26773389374/digital_wallets/dialog"> 445<meta id="in-context-paypal-metadata" data-shop-id="26773389374" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="NZD"> 446<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
446<script async="async" src="/checkouts/internal/preloads.js?locale=en-NZ&default_configuration_id=4718654"></script>
446 447<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
448<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-NZ&default_configuration_id=4718654&shop_id=26773389374" crossorigin="anonymous"></script>
vendor: 1 bytes, line 448
448
449<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":26773389374,"countryCode":"NZ","currencyCode":"NZD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/26773389374","merchantName":"Radix Nutrition","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","jcb"],"total":{"type":"pending","label":"Radix Nutrition","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 449
449
450<script id="shopify-features" type="application/json">{"accessToken":"280b45a12f4b2a64132bca9b3d583efb","betas":["rich-media-storefront-analytics"],"domain":"radixnutrition.com","predictiveSearch":true,"shopId":26773389374,"locale":"en"}</script>
vendor: 1 bytes, line 450
450
451<script>var Shopify = Shopify || {}; 452Shopify.shop = "radix-nutrition.myshopify.com"; 453Shopify.locale = "en"; 454Shopify.currency = {"active":"NZD","rate":"1.0"}; 455Shopify.country = "NZ"; 456Shopify.theme = {"name":"Copy of radix26\/main","id":139831115838,"schema_name":"Impact","schema_version":"6.12.0","theme_store_id":null,"role":"main"}; 457Shopify.theme.handle = "null"; 458Shopify.theme.style = {"id":null,"handle":null}; 459Shopify.cdnHost = "radixnutrition.com/cdn"; 460Shopify.routes = Shopify.routes || {}; 461Shopify.routes.root = "/"; 462Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 463Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 464Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 465Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 465
465
466<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 466
466
467<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 467
467
468<script> 469 window.ShopifyPay = window.ShopifyPay || {}; 470 window.ShopifyPay.apiHost = "shop.app\/pay"; 471 window.ShopifyPay.redirectState = null; 472</script>
vendor: 1 bytes, line 472
472
473<script> 474 window.Shopify = window.Shopify || {}; 475 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 476 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 477 window.Shopify.SignInWithShop.eligible = true; 478</script>
vendor: 1 bytes, line 478
478
479<script id="shop-js-analytics" type="application/json">{"pageType":"search"}</script>
vendor: 1 bytes, line 479
479
480<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 480
480
481<script type="module"> 482 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 483 484 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 485 486</script>
vendor: 1 bytes, line 486
486
487<script> 488 window.Shopify = window.Shopify || {}; 489 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 490 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"]}; 491</script>
vendor: 1 bytes, line 491
491
492<script>(function() { 493 var isLoaded = false; 494 function asyncLoad() { 495 if (isLoaded) return; 496 isLoaded = true; 497 var urls = ["https:\/\/config.gorgias.chat\/bundle-loader\/01GYCCDX0DGTCVKBSMHCXNN6E5?source=shopify1click\u0026shop=radix-nutrition.myshopify.com","https:\/\/media.9gtb.com\/loader.js?g_cvt_id=fe971221-d6f3-4004-9219-67381908a88b\u0026shop=radix-nutrition.myshopify.com"]; 498 for (var i = 0; i < urls.length; i++) { 499 var s = document.createElement('script'); 500 s.type = 'text/javascript'; 501 s.async = true; 502 s.src = urls[i]; 503 var x = document.getElementsByTagName('script')[0]; 504 x.parentNode.insertBefore(s, x); 505 } 506 }; 507 if(window.attachEvent) { 508 window.attachEvent('onload', asyncLoad); 509 } else { 510 window.addEventListener('load', asyncLoad, false); 511 } 512})();</script>
vendor: 1 bytes, line 512
512
513<script id="__st">var __st={"a":26773389374,"offset":46800,"reqid":"0368a117-152e-4d3d-8b96-b3e6e6135525-1791599869","pageurl":"radixnutrition.com\/search","u":"292d6ada82cc","p":"searchresults"};</script>
vendor: 1 bytes, line 513
513
514<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 514
514
515<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 515
515
516<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//radixnutrition.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 516
516
517<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 = "//radixnutrition.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>
517<script crossorigin="anonymous" defer="defer" src="//radixnutrition.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 517
517
518<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 518
518
519<script> 520 window.Shopify = window.Shopify || {}; 521 window.Shopify.MCP = window.Shopify.MCP || {}; 522 window.Shopify.MCP.enabled = true; 523 window.Shopify.MCP.shop = "radix-nutrition.myshopify.com"; 524 window.Shopify.MCP.mcpEndpoint = "https:\/\/radixnutrition.com\/api\/mcp"; 525 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?\"\nSet policy_types to also get the store's written policies (full text and URL).\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."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question — e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 526</script>
vendor: 1 bytes, line 526
526
527<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("\/\/radixnutrition.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-f427de6a.js","sha256-ypGF+5vIq4Psw4WG7nsVtdd\/TCfsJWnrNuACdqLCElY=");})(); 528</script>
vendor: 1 bytes, line 528
528
529<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://radixnutrition.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 530</script>
vendor: 1 bytes, line 530
530
531<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 532 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); 533</script>
vendor: 1 bytes, line 533
533
534<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})}})); 535</script>
vendor: 1 bytes, line 535
535
536<script integrity="sha256-/LA1C2Bx6899fYCos0FS9qLj2opaGFm7AXrTUvBEb4s=" data-source-attribution="shopify.remote_product_tracking" data-shopify-remote-tracking="{"publisher_shop_id":26773389374,"theme_id":139831115838,"theme_published":true,"theme_store_id":0,"placement":"search","event_data":{"search_query":null},"recommendations_tracking_enabled":true}" defer="defer" src="//radixnutrition.com/cdn/shopifycloud/storefront/assets/storefront/remote_product_tracking-91d95044.js" crossorigin="anonymous"></script>
536 537<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://radixnutrition.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 538<style id="shopify-accelerated-checkout-cart"> 539 #shopify-buyer-consent { 540 margin-top: 1em; 541 display: inline-block; 542 width: 100%; 543} 544 545#shopify-buyer-consent.hidden { 546 display: none; 547} 548 549#shopify-subscription-policy-button { 550 background: none; 551 border: none; 552 padding: 0; 553 text-decoration: underline; 554 font-size: inherit; 555 cursor: pointer; 556} 557 558#shopify-subscription-policy-button::before { 559 box-shadow: none; 560} 561 562 </style> 563
564<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
564 565<link href="//radixnutrition.com/cdn/shop/t/314/assets/theme.css?v=70487686116486712421778198567" rel="stylesheet" type="text/css" media="all" /><!-- Podscribe tracking -->
566<script> 567(function (w, d) { 568 var id = 'podscribe-capture', 569 n = 'script'; 570 var e = d.createElement(n); 571 e.id = id; 572 e.async = true; 573 e.src = 'https://d34r8q7sht0t9k.cloudfront.net/tag.js'; 574 var s = d.getElementsByTagName(n)[0]; 575 s.parentNode.insertBefore(e, s); 576 e.addEventListener('load', function() { 577 w.podscribe('init', { 578 user_id: 'e57161e7-790c-4707-80c0-40a21e8f161e', 579 advertiser: 'radixnutritionc28e2a5c88ca44b487280652fd5d6df8' 580 }); 581 w.podscribe('view'); 582 }) 583})(window, document); 584</script>
584 585<!-- /Podscribe tracking --> 586 587<!-- Website pixel: Embed snippet in header to track purchases --> 588
588<script> 589 (function (w, d) { 590 var id = 'podscribe-capture', 591 n = 'script'; 592 var e = d.createElement(n); 593 e.id = id; 594 e.async = true; 595 e.src = 'https://d34r8q7sht0t9k.cloudfront.net/tag.js'; 596 var s = d.getElementsByTagName(n)[0]; 597 s.parentNode.insertBefore(e, s); 598 e.addEventListener('load', function() { 599 w.podscribe('init', { 600 user_id: 'e57161e7-790c-4707-80c0-40a21e8f161e', 601 advertiser: 'radixnutritionc28e2a5c88ca44b487280652fd5d6df8' 602 }); 603 w.podscribe('purchase', { 604 value: [PURCHASE_AMOUNT], 605 order_number: [ORDER_ID], 606 discount_code: [DISCOUNT_CODE], 607 hashed_email: [HASHED_EMAIL], 608 }); 609 }) 610 })(window, document); 611 </script>
611 612<!-- /Website pixel: Embed snippet in header to track purchases --> 613 614<meta name="google-site-verification" content="4UTMeyLgSgENq0VRKpOyMHDFPdRGSVcR3qiTI8IYGVg" /> 615<!-- BEGIN app block: shopify://apps/zoorix-cross-sell/blocks/zoorix-head/51fffd07-f9df-4d6a-b901-6d14b243dcad -->
616<script> 617 window.zoorixCartData = { 618 currency: "NZD", 619 currency_symbol: "$", 620 621 original_total_price: 0, 622 total_discount: 0, 623 item_count: 0, 624 items: [ 625 626 ] 627 628 }; 629 630 window.Zoorix = window.Zoorix || {}; 631 window.Zoorix.collectionsHash = {}; 632 633 634 635 636 window.Zoorix.moneyFormat = "\u003cspan class=money\u003e ${{amount}} \u003c\/span\u003e"; 637 window.Zoorix.moneyFormatWithCurrency = "\u003cspan class=money\u003e ${{amount}} NZD \u003c\/span\u003e"; 638 window.Zoorix.template = "search"; 639 640</script>
640 641 642<!--
642<script src="https://cdn.shopify.com/s/javascripts/currencies.js" async></script>
642-->
643<script async src=https://public.zoorix.com/domains/radix-nutrition.myshopify.com/zoorix.js></script>
643 644 645 646<!-- END app block --><!-- BEGIN app block: shopify://apps/simprosys-google-shopping-feed/blocks/core_settings_block/1f0b859e-9fa6-4007-97e8-4513aff5ff3b --><!-- BEGIN: GSF App Core Tags & Scripts by Simprosys Google Shopping Feed --> 647 648 <!-- BEGIN app snippet: gsf_verification_code --> 649 <meta name="google-site-verification" content="pQcsJis8GUzylrkkBPfmOPnEzx-kaS73XTomkZQBeGg" /> 650 651 652 653<!-- END app snippet --> 654 655 656 657 658 659 660 661 662 663<!-- END: GSF App Core Tags & Scripts by Simprosys Google Shopping Feed --> 664<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
665<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/radix-nutrition.myshopify.com"></script>
665 666 667
668<script defer data-gorgias-loader-convert src="https://content.9gtb.com/loader.js"></script>
668 669 670
671<script defer data-gorgias-loader-mailto-replace src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=radix-nutrition"></script>
671 672 673 674<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 675 676 677 678 679 680 681 682 683 684 685 686 687
687<script async src="https://static.klaviyo.com/onsite/js/WEDtBQ/klaviyo.js?company_id=WEDtBQ"></script>
687 688
688<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>
688 689 690 691 692 693 694 695
695<script> 696 window.klaviyoReviewsProductDesignMode = false 697 </script>
697 698 699 700 701 702 703 704 705 706 707<!-- END app block -->
707<script src="https://cdn.shopify.com/extensions/01a11b15-54c5-7255-96a1-1eeb432f5c53/pushowl-332/assets/pushowl-shopify.js" type="text/javascript" defer="defer"></script>
707 708<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
709<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: 26773389374,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "search"};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 709
709
710<script> 711 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 712</script>
vendor: 1 bytes, line 712
712
713<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}
713).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: 26773389374,storefrontBaseUrl: "https://radixnutrition.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://radixnutrition.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"1211498558","configuration":"{\"accountID\":\"WEDtBQ\",\"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":"289210430","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"AW-810151555\\\",\\\"GT-5TCHT4N\\\",\\\"G-42B1WV25BC\\\"],\\\"target_country\\\":\\\"NZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-SJB2G5Y7WM\\\",\\\"AW-810151555\\\/CmmcCNqrn-ICEIPdp4ID\\\",\\\"G-42B1WV25BC\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-SJB2G5Y7WM\\\",\\\"AW-810151555\\\/hh4QCNern-ICEIPdp4ID\\\",\\\"G-42B1WV25BC\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-SJB2G5Y7WM\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-SJB2G5Y7WM\\\",\\\"AW-810151555\\\/UfJcCNGrn-ICEIPdp4ID\\\",\\\"MC-Z7N0WQ4PS0\\\",\\\"G-42B1WV25BC\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-SJB2G5Y7WM\\\",\\\"AW-810151555\\\/7aEZCM2S6OIcEIPdp4ID\\\",\\\"MC-Z7N0WQ4PS0\\\",\\\"G-42B1WV25BC\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-SJB2G5Y7WM\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-SJB2G5Y7WM\\\",\\\"AW-810151555\\\/u0dSCMurn-ICEIPdp4ID\\\",\\\"MC-Z7N0WQ4PS0\\\",\\\"G-42B1WV25BC\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-SJB2G5Y7WM\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-SJB2G5Y7WM\\\",\\\"AW-810151555\\\/VS2iCN2rn-ICEIPdp4ID\\\",\\\"G-42B1WV25BC\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-SJB2G5Y7WM\\\",\\\"AW-810151555\\\/LXJ3CNSrn-ICEIPdp4ID\\\",\\\"G-42B1WV25BC\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-SJB2G5Y7WM\\\"}],\\\"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"]}
713,{"id":"135036990","configuration":"{\"subdomain\":\"radix-nutrition\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"42cd9b1f0fb7c1cae5cd21175cef6782","type":"APP","apiClientId":1615517,"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":"101154878","configuration":"{\"pixel_id\":\"1895325917409306\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","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":"4554814","configuration":"{\"myshopifyDomain\":\"radix-nutrition.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"23b97d18e2aa74363140dc29c9284e87","type":"APP","apiClientId":2775569,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"13631550","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"GTM - CW"},{"id":"23232574","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"New GTM pixel 17-07-24"},{"id":"114032702","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"GTM purchase Jan 2026"},{"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":"Radix Nutrition","paymentSettings":{"currencyCode":"NZD"},"myshopifyDomain":"radix-nutrition.myshopify.com","countryCode":"NZ","storefrontUrl":"https:\/\/radixnutrition.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://radixnutrition.com/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"139831115838","themePublished":"true","eventMetadataId":"204b34a9-86cb-4267-854a-a7d3fb8efec3","pageType":"searchresults","shopId":"26773389374","storefrontBaseUrl":"https:\/\/radixnutrition.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}],[\"search_submitted\",{\"searchResult\":{\"query\":\"\",\"productVariants\":[]}}]]"});})();</script>
713<script> 714 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 715 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 716 window.ShopifyAnalytics.meta.currency = 'NZD'; 717 var meta = {"products":[],"page":{"pageType":"searchresults","requestId":"0368a117-152e-4d3d-8b96-b3e6e6135525-1791599869"}}; 718 for (var attr in meta) { 719 window.ShopifyAnalytics.meta[attr] = meta[attr]; 720 } 721</script>
vendor: 1 bytes, line 721
721
722<script class="analytics"> 723 (function () { 724 var customDocumentWrite = function(content) { 725 var jquery = null; 726 727 if (window.jQuery) { 728 jquery = window.jQuery; 729 } else if (window.Checkout && window.Checkout.$) { 730 jquery = window.Checkout.$; 731 } 732 733 if (jquery) { 734 jquery('body').append(content); 735 } 736 }; 737 738 var hasLoggedConversion = function(token) { 739 if (token) { 740 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 741 } 742 return false; 743 } 744 745 var setCookieIfConversion = function(token) { 746 if (token) { 747 var twoMonthsFromNow = new Date(Date.now()); 748 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 749 750 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 751 } 752 } 753 754 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 755 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 756 if (trekkie.integrations) { 757 return; 758 } 759 trekkie.methods = [ 760 'identify', 761 'page', 762 'ready', 763 'track', 764 'trackForm', 765 'trackLink' 766 ]; 767 trekkie.factory = function(method) { 768 return function() { 769 var args = Array.prototype.slice.call(arguments); 770 args.unshift(method); 771 trekkie.push(args); 772 if (method == 'track' || method == 'page') { 773 var pageUrl; 774 try { 775 pageUrl = window.location.href; 776 } catch (e) {} 777 var pageReferrer; 778 try { 779 pageReferrer = document.referrer; 780 } catch (e) {} 781 try { 782 if (window.__TREKKIE_SHIM_QUEUE == null) { 783 window.__TREKKIE_SHIM_QUEUE = []; 784 } 785 window.__TREKKIE_SHIM_QUEUE.push({ 786 from: 'trekkie-stub', 787 method: method, 788 args: args.slice(1), 789 pageContext: { 790 url: pageUrl, 791 referrer: pageReferrer 792 } 793 }); 794 } catch (e) { 795 // no-op 796 } 797 } 798 return trekkie; 799 }; 800 }; 801 for (var i = 0; i < trekkie.methods.length; i++) { 802 var key = trekkie.methods[i]; 803 trekkie[key] = trekkie.factory(key); 804 } 805 trekkie.load = function(config) { 806 trekkie.config = config || {}; 807 trekkie.config.initialDocumentCookie = document.cookie; 808 var first = document.getElementsByTagName('script')[0]; 809var script = document.createElement('script'); 810script.type = 'text/javascript'; 811script.onerror = function(e) { 812 var scriptFallback = document.createElement('script'); 813 scriptFallback.type = 'text/javascript'; 814 scriptFallback.onerror = function(error) { 815 var Monorail = { 816 produce: function produce(monorailDomain, schemaId, payload) { 817 var currentMs = new Date().getTime(); 818 var event = { 819 schema_id: schemaId, 820 payload: payload, 821 metadata: { 822 event_created_at_ms: currentMs, 823 event_sent_at_ms: currentMs 824 } 825 }; 826 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 827 }, 828 sendRequest: function sendRequest(endpointUrl, payload) { 829 // Try the sendBeacon API 830 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 831 var blobData = new window.Blob([payload], { 832 type: 'text/plain' 833 }); 834 835 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 836 return true; 837 } // sendBeacon was not successful 838 839 } // XHR beacon 840 841 var xhr = new XMLHttpRequest(); 842 843 try { 844 xhr.open('POST', endpointUrl); 845 xhr.setRequestHeader('Content-Type', 'text/plain'); 846 xhr.send(payload); 847 } catch (e) { 848 console.log(e); 849 } 850 851 return false; 852 }, 853 isIos12: function isIos12() { 854 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 855 } 856 }; 857 Monorail.produce('monorail-edge.shopifysvc.com', 858 'trekkie_storefront_load_errors/1.1', 859 {shop_id: 26773389374, 860 theme_id: 139831115838, 861 app_name: "storefront", 862 context_url: window.location.href, 863 source_url: "//radixnutrition.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 864 865 }; 866 scriptFallback.async = true; 867 scriptFallback.src = '//radixnutrition.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 868 first.parentNode.insertBefore(scriptFallback, first); 869}; 870script.async = true; 871script.src = '//radixnutrition.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 872first.parentNode.insertBefore(script, first); 873 874 }; 875 trekkie.load( 876 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":26773389374,"isMerchantRequest":null,"themeId":139831115838,"themeCityHash":"3646295666536999302","contentLanguage":"en","currency":"NZD","eventMetadataId":"204b34a9-86cb-4267-854a-a7d3fb8efec3"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 877 ); 878 879 var loaded = false;
880 trekkie.ready(function() { 881 if (loaded) return; 882 loaded = true; 883 884 window.ShopifyAnalytics.lib = window.trekkie; 885 886 var originalDocumentWrite = document.write; 887 document.write = customDocumentWrite; 888 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 889 document.write = originalDocumentWrite; 890 891 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 892 var token = match? match[1]: undefined; 893 if (!hasLoggedConversion(token)) { 894 setCookieIfConversion(token); 895 window.ShopifyAnalytics.lib.track("Performed Search",{"query":null},undefined,undefined,{"shopifyEmitted":true}); 896 } 897 }); 898 899 window.ShopifyAnalytics.lib.page(null,{"pageType":"searchresults","requestId":"0368a117-152e-4d3d-8b96-b3e6e6135525-1791599869","shopifyEmitted":true}); 900 901 var eventsListenerScript = document.createElement('script'); 902 eventsListenerScript.async = true; 903 eventsListenerScript.src = "//radixnutrition.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 904 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 905})();</script>
905 906
906<script> 907 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 908 window.ga = function ga() { 909 (window.ga.q = window.ga.q || []).push(arguments); 910 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 911 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 912 } 913 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."); 914 }; 915 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 916 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 917 } 918 } 919</script>
vendor: 1 bytes, line 919
919
920<script 921 defer 922 src="https://radixnutrition.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js" 923 data-application="storefront-renderer" 924 data-shop-id="26773389374" 925 data-render-region="gcp-us-central1" 926 data-page-type="search" 927 data-theme-instance-id="139831115838" 928 data-theme-name="Impact" 929 data-theme-version="6.12.0" 930 data-monorail-region="shop_domain" 931 data-resource-timing-sampling-rate="10" 932 data-shs="true" 933 data-shs-beacon="true" 934 data-shs-export-with-fetch="true" 935 data-shs-logs-sample-rate="1" 936 data-shs-beacon-endpoint="https://radixnutrition.com/api/collect" 937></script>
937 938<meta name="shopify-y" content="e78caa90-6285-4d14-ad96-f372d9f8bbb8" data-expiration="1823157469000"><meta name="shopify-s" content="76f485a9-6808-4e34-8ecb-3f8e2e6ae985" data-expiration="1791601669000"> 939</head> 940 941 <body class="zoom-image--enabled"><!-- DRAWER --> 942<template id="drawer-default-template"> 943 <style> 944 [hidden] { 945 display: none !important; 946 } 947 </style> 948 949 <button part="outside-close-button" is="close-button" aria-label="Close"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24"> 950 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 951 </svg></button> 952 953 <div part="overlay"></div> 954 955 <div part="content"> 956 <header part="header"> 957 <slot name="header"></slot> 958 959 <button part="close-button" is="close-button" aria-label="Close"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24"> 960 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 961 </svg></button> 962 </header> 963 964 <div part="body"> 965 <slot></slot> 966 </div> 967 968 <footer part="footer"> 969 <slot name="footer"></slot> 970 </footer> 971 </div> 972</template> 973 974<!-- POPOVER --> 975<template id="popover-default-template"> 976 <button part="outside-close-button" is="close-button" aria-label="Close"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24"> 977 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 978 </svg></button> 979 980 <div part="overlay"></div> 981 982 <div part="content"> 983 <header part="title"> 984 <slot name="title"></slot> 985 </header> 986 987 <div part="body"> 988 <slot></slot> 989 </div> 990 </div> 991</template><a href="#main" class="skip-to-content sr-only">Skip to content</a><div class="sr-only" role="status" aria-live="polite" aria-atomic="true"> 992 <span id="status-announcement"></span> 993 </div> 994 995 <div class="sr-only" role="alert" aria-live="assertive" aria-atomic="true"> 996 <span id="error-announcement"></span> 997 </div><!-- BEGIN sections: header-group --> 998<aside id="shopify-section-sections--18588698050622__announcement-bar" class="shopify-section shopify-section-group-header-group shopify-section--announcement-bar"><style> 999 :root { 1000 --sticky-announcement-bar-enabled:0; 1001 }</style><height-observer variable="announcement-bar"> 1002 <div class="announcement-bar bg-custom text-custom"style="--background: 77 82 60; --text-color: 255 255 255;"><marquee-text scrolling-speed="30" class="announcement-bar__scrolling-list"><span class="announcement-bar__item" ><p class="bold text-xs" >New Zealand Made 1003</p> 1004 1005 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Gluten, Soy & Nut Free 1006</p> 1007 1008 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Free Shipping over $99 1009</p> 1010 1011 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >New Zealand Made 1012</p> 1013 1014 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Gluten, Soy & Nut Free 1015</p> 1016 1017 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Free Shipping over $99 1018</p> 1019 1020 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >New Zealand Made 1021</p> 1022 1023 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Gluten, Soy & Nut Free 1024</p> 1025 1026 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Free Shipping over $99 1027</p> 1028 1029 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >New Zealand Made 1030</p> 1031 1032 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Gluten, Soy & Nut Free 1033</p> 1034
1035 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Free Shipping over $99 1036</p> 1037 1038 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >New Zealand Made 1039</p> 1040 1041 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Gluten, Soy & Nut Free 1042</p> 1043 1044 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Free Shipping over $99 1045</p> 1046 1047 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >New Zealand Made 1048</p> 1049 1050 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Gluten, Soy & Nut Free 1051</p> 1052 1053 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Free Shipping over $99 1054</p> 1055 1056 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >New Zealand Made 1057</p> 1058 1059 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Gluten, Soy & Nut Free 1060</p> 1061 1062 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Free Shipping over $99 1063</p> 1064 1065 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >New Zealand Made 1066</p> 1067 1068 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Gluten, Soy & Nut Free 1069</p> 1070 1071 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Free Shipping over $99 1072</p> 1073 1074 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >New Zealand Made 1075</p> 1076 1077 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Gluten, Soy & Nut Free 1078</p> 1079 1080 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Free Shipping over $99 1081</p> 1082 1083 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >New Zealand Made 1084</p> 1085 1086 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Gluten, Soy & Nut Free 1087</p> 1088 1089 <span class="shape-circle shape--sm"></span><p class="bold text-xs" >Free Shipping over $99 1090</p> 1091 1092 <span class="shape-circle shape--sm"></span></span></marquee-text></div> 1093 </height-observer> 1094 1095
1095<script> 1096 document.documentElement.style.setProperty('--announcement-bar-height', Math.round(document.getElementById('shopify-section-sections--18588698050622__announcement-bar').clientHeight) + 'px'); 1097 </script>
1097</aside><header id="shopify-section-sections--18588698050622__header" class="shopify-section shopify-section-group-header-group shopify-section--header"><style> 1098 :root { 1099 --sticky-header-enabled:1; 1100 } 1101 1102 #shopify-section-sections--18588698050622__header { 1103 --header-grid-template: "main-nav logo secondary-nav" / minmax(0, 1fr) auto minmax(0, 1fr); 1104 --header-padding-block: var(--spacing-3); 1105 --header-background-opacity: 1.0; 1106 --header-background-blur-radius: 0px; 1107 --header-transparent-text-color: 255 255 255;--header-logo-width: 100px; 1108 --header-logo-height: 34px;position: sticky; 1109 top: 0; 1110 z-index: 10; 1111 }.shopify-section--announcement-bar ~ #shopify-section-sections--18588698050622__header { 1112 top: calc(var(--sticky-announcement-bar-enabled, 0) * var(--announcement-bar-height, 0px)); 1113 }@media screen and (min-width: 700px) { 1114 #shopify-section-sections--18588698050622__header {--header-logo-width: 120px; 1115 --header-logo-height: 41px;--header-padding-block: var(--spacing-6); 1116 } 1117 }@media screen and (min-width: 1150px) {#shopify-section-sections--18588698050622__header { 1118 --header-grid-template: "logo main-nav secondary-nav" / minmax(0, 1fr) fit-content(55%) minmax(0, 1fr); 1119 } 1120 }</style> 1121 1122<height-observer variable="header"> 1123 <store-header class="header" sticky> 1124 <div class="header__wrapper"><div class="header__main-nav"> 1125 <div class="header__icon-list"> 1126 <button type="button" class="tap-area lg:hidden" aria-controls="header-sidebar-menu"> 1127 <span class="sr-only">Menu</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-hamburger" viewBox="0 0 22 22"> 1128 <path d="M1 5h20M1 11h20M1 17h20" stroke="currentColor" stroke-linecap="round"></path> 1129 </svg></button> 1130 1131 <a href="/search" class="tap-area sm:hidden" aria-controls="search-drawer"> 1132 <span class="sr-only">Search</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-search" viewBox="0 0 22 22"> 1133 <circle cx="11" cy="10" r="7" fill="none" stroke="currentColor"></circle> 1134 <path d="m16 15 3 3" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1135 </svg></a><nav class="header__link-list justify-center wrap" role="navigation"> 1136 <ul class="contents" role="list"> 1137 1138 <li><a href="/pages/shop-by-goal" class="bold link-faded-reverse" >Shop by Goal</a></li> 1139 1140 <li><details class="relative" is="dropdown-disclosure" trigger="click"> 1141 <summary class="text-with-icon gap-2.5 bold link-faded-reverse" data-url="/collections/radix-products">Shop by Product<svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7"> 1142 <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path> 1143 </svg></summary> 1144 1145 <div class="dropdown-menu dropdown-menu--restrictable"> 1146 <ul class="contents" role="list"><li><a href="/collections/breakfasts" class="dropdown-menu__item group" > 1147 <span><span class="reversed-link">Breakfasts</span></span> 1148 </a></li><li><a href="/products/precision-whey-protein" class="dropdown-menu__item group" > 1149 <span><span class="reversed-link">Whey Protein </span></span> 1150 </a></li><li><a href="/products/precision-plant-protein" class="dropdown-menu__item group" > 1151 <span><span class="reversed-link">Plant Protein</span></span> 1152 </a></li><li><a href="/collections/protein-smoothies" class="dropdown-menu__item group" > 1153 <span><span class="reversed-link">Protein Smoothie</span></span> 1154 </a></li><li><a href="/collections/meals" class="dropdown-menu__item group" >
1155 <span><span class="reversed-link">Meals</span></span> 1156 </a></li><li><a href="/collections/radix-bundles" class="dropdown-menu__item group" > 1157 <span><span class="reversed-link">Bundles</span></span> 1158 </a></li><li><a href="/collections/elements-range" class="dropdown-menu__item group" > 1159 <span><span class="reversed-link">Elements Range</span></span> 1160 </a></li></ul> 1161 </div> 1162 </details></li> 1163 1164 <li><a href="/pages/about-us" class="bold link-faded-reverse" >Why Radix</a></li> 1165 1166 <li><a href="/blogs/radix-blog" class="bold link-faded-reverse" >Blog</a></li> 1167 1168 <li><a href="/products/precision-whey-protein-waikato-rugby-addition" class="bold link-faded-reverse" >Radix x Waikato Rugby Collab</a></li></ul> 1169 </nav></div> 1170 </div> 1171 <a href="/" class="header__logo"><span class="sr-only">Radix Nutrition</span><img src="//radixnutrition.com/cdn/shop/files/Radix_Logo_White_Large_e8a99d13-68a5-4ace-b411-8df2dbb24d89.png?v=1705349285&width=3748" alt="Radix Nutrition" srcset="//radixnutrition.com/cdn/shop/files/Radix_Logo_White_Large_e8a99d13-68a5-4ace-b411-8df2dbb24d89.png?v=1705349285&width=240 240w, //radixnutrition.com/cdn/shop/files/Radix_Logo_White_Large_e8a99d13-68a5-4ace-b411-8df2dbb24d89.png?v=1705349285&width=360 360w" width="3748" height="1266" sizes="120px" class="header__logo-image"></a> 1172 1173<div class="header__secondary-nav"><ul class="header__icon-list"><li class="hidden md:block shrink-0"><link rel="stylesheet" href="//radixnutrition.com/cdn/shop/t/314/assets/country-flags.css?v=80214991661122795261778198596" media="print" onload="this.media='all'; this.onload = null"><div class="relative"> 1174 <button type="button" class="text-with-icon gap-2.5 group" aria-label="Change country or currency" aria-controls="popover-localization-form-country-end-sections--18588698050622__header" aria-expanded="false"> 1175 <div class="h-stack gap-2"><span class="country-flags country-flags--NZ"></span><span class="bold text-sm">NZD $</span> 1176 </div><svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7"> 1177 <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path> 1178 </svg></button> 1179 1180 <x-popover id="popover-localization-form-country-end-sections--18588698050622__header" initial-focus="[aria-selected='true']" anchor-horizontal="end" anchor-vertical="end" class="popover"> 1181 <p class="h5" slot="title">Country</p><form method="post" action="/localization" id="localization-form-country-end-sections--18588698050622__header" accept-charset="UTF-8" class="shopify-localization-form" 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="/search" /><x-listbox class="popover-listbox popover-listbox--sm" role="listbox"><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AU" > 1182 <span class="country-flags country-flags--AU"></span> 1183 <span>Australia (AUD $)</span> 1184 </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NZ" aria-selected="true"> 1185 <span class="country-flags country-flags--NZ"></span> 1186 <span>New Zealand (NZD $)</span> 1187 </button></x-listbox></form></x-popover> 1188 </div></li><li> 1189 <a href="/search" class="hidden tap-area sm:block" aria-controls="search-drawer"> 1190 <span class="sr-only">Search</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-search" viewBox="0 0 22 22"> 1191 <circle cx="11" cy="10" r="7" fill="none" stroke="currentColor"></circle> 1192 <path d="m16 15 3 3" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1193 </svg></a> 1194 </li><li> 1195 <a href="https://radixnutrition.com/customer_authentication/redirect?locale=en®ion_country=NZ" class="hidden tap-area sm:block">
1196 <span class="sr-only">Login</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-account" viewBox="0 0 22 22"> 1197 <circle cx="11" cy="7" r="4" fill="none" stroke="currentColor"></circle> 1198 <path d="M3.5 19c1.421-2.974 4.247-5 7.5-5s6.079 2.026 7.5 5" fill="none" stroke="currentColor" stroke-linecap="round"></path> 1199 </svg></a> 1200 </li><li> 1201 <a href="/cart" data-no-instant class="relative block tap-area" aria-controls="cart-drawer"> 1202 <span class="sr-only">Cart</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-cart" viewBox="0 0 22 22"> 1203 <path d="M11 7H3.577A2 2 0 0 0 1.64 9.497l2.051 8A2 2 0 0 0 5.63 19H16.37a2 2 0 0 0 1.937-1.503l2.052-8A2 2 0 0 0 18.422 7H11Zm0 0V1" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1204 </svg><div class="header__cart-count"> 1205 <cart-count class="count-bubble opacity-0"> 1206 <span class="sr-only">0 items</span> 1207 <span aria-hidden="true">0</span> 1208 </cart-count> 1209 </div> 1210 </a> 1211 </li> 1212 </ul> 1213 </div> 1214 </div> 1215 </store-header> 1216</height-observer><navigation-drawer mobile-opening="bottom" open-from="left" id="header-sidebar-menu" class="navigation-drawer drawer lg:hidden" > 1217 <button is="close-button" aria-label="Close"class="sm-max:hidden"><svg role="presentation" stroke-width="2" focusable="false" width="19" height="19" class="icon icon-close" viewBox="0 0 24 24"> 1218 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 1219 </svg></button><div class="panel-list__wrapper"> 1220 <div class="panel"> 1221 <div class="panel__wrapper" > 1222 <div class="panel__scroller v-stack gap-8"><ul class="v-stack gap-4"> 1223<li class="h3 sm:h4"><a href="/pages/shop-by-goal" class="group block w-full"> 1224 <span><span class="reversed-link">Shop by Goal</span></span> 1225 </a></li> 1226<li class="h3 sm:h4"><button class="text-with-icon w-full group justify-between" aria-expanded="false" data-panel="1-0"> 1227 <span>Shop by Product</span> 1228 <span class="circle-chevron group-hover:colors group-expanded:colors"><svg role="presentation" focusable="false" width="5" height="8" class="icon icon-chevron-right-small reverse-icon" viewBox="0 0 5 8"> 1229 <path d="m.75 7 3-3-3-3" fill="none" stroke="currentColor" stroke-width="1.5"></path> 1230 </svg></span> 1231 </button></li> 1232<li class="h3 sm:h4"><a href="/pages/about-us" class="group block w-full"> 1233 <span><span class="reversed-link">Why Radix</span></span> 1234 </a></li> 1235<li class="h3 sm:h4"><a href="/blogs/radix-blog" class="group block w-full"> 1236 <span><span class="reversed-link">Blog</span></span> 1237 </a></li> 1238<li class="h3 sm:h4"><a href="/products/precision-whey-protein-waikato-rugby-addition" class="group block w-full"> 1239 <span><span class="reversed-link">Radix x Waikato Rugby Collab</span></span> 1240 </a></li></ul></div><div class="panel-footer v-stack gap-5"><div class="panel-footer__localization-wrapper h-stack gap-6 border-t md:hidden"><link rel="stylesheet" href="//radixnutrition.com/cdn/shop/t/314/assets/country-flags.css?v=80214991661122795261778198596" media="print" onload="this.media='all'; this.onload = null"><div class="relative"> 1241 <button type="button" class="text-with-icon gap-2.5 group" aria-label="Change country or currency" aria-controls="popover-localization-form-country--sections--18588698050622__header" aria-expanded="false"> 1242 <div class="h-stack gap-2"><span class="country-flags country-flags--NZ"></span><span class="bold text-sm">NZD $</span> 1243 </div><svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7"> 1244 <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path> 1245 </svg></button> 1246 1247 <x-popover id="popover-localization-form-country--sections--18588698050622__header" initial-focus="[aria-selected='true']" anchor-horizontal="end" anchor-vertical="start" class="popover"> 1248 <p class="h5" slot="title">Country</p><form method="post" action="/localization" id="localization-form-country--sections--18588698050622__header" accept-charset="UTF-8" class="shopify-localization-form" 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="/search" /><x-listbox class="popover-listbox popover-listbox--sm" role="listbox"><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AU" >
1249 <span class="country-flags country-flags--AU"></span> 1250 <span>Australia (AUD $)</span> 1251 </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NZ" aria-selected="true"> 1252 <span class="country-flags country-flags--NZ"></span> 1253 <span>New Zealand (NZD $)</span> 1254 </button></x-listbox></form></x-popover> 1255 </div><a href="/account" class="panel-footer__account-link bold text-sm">Account</a></div></div></div> 1256 </div><div class="panel gap-8"> 1257 <div class="panel__wrapper" hidden> 1258 <ul class="v-stack gap-4"> 1259 <li class="lg:hidden"> 1260 <button class="text-with-icon h6 text-subdued" data-panel="0"><svg role="presentation" focusable="false" width="7" height="10" class="icon icon-chevron-left reverse-icon" viewBox="0 0 7 10"> 1261 <path d="M6 1 2 5l4 4" fill="none" stroke="currentColor" stroke-width="2"></path> 1262 </svg>Shop by Product 1263 </button> 1264 </li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/breakfasts"><span><span class="reversed-link">Breakfasts</span></span> 1265 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/products/precision-whey-protein"><span><span class="reversed-link">Whey Protein </span></span> 1266 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/products/precision-plant-protein"><span><span class="reversed-link">Plant Protein</span></span> 1267 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/protein-smoothies"><span><span class="reversed-link">Protein Smoothie</span></span> 1268 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/meals"><span><span class="reversed-link">Meals</span></span> 1269 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/radix-bundles"><span><span class="reversed-link">Bundles</span></span> 1270 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/elements-range"><span><span class="reversed-link">Elements Range</span></span> 1271 </a></li></ul></div> 1272 </div></div></navigation-drawer>
1272<script> 1273 document.documentElement.style.setProperty('--header-height', Math.round(document.getElementById('shopify-section-sections--18588698050622__header').clientHeight) + 'px'); 1274</script>
1274 1275 1276</header> 1277<!-- END sections: header-group --><!-- BEGIN sections: overlay-group --> 1278<div id="shopify-section-sections--18588698083390__cart-drawer" class="shopify-section shopify-section-group-overlay-group"><cart-drawer class="cart-drawer drawer drawer--lg" id="cart-drawer"><button is="close-button" aria-label="Close"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24"> 1279 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 1280 </svg></button> 1281 1282 <div class="empty-state align-self-center"> 1283 <div class="empty-state__icon-wrapper"><svg role="presentation" stroke-width="1" focusable="false" width="32" height="32" class="icon icon-cart" viewBox="0 0 22 22"> 1284 <path d="M11 7H3.577A2 2 0 0 0 1.64 9.497l2.051 8A2 2 0 0 0 5.63 19H16.37a2 2 0 0 0 1.937-1.503l2.052-8A2 2 0 0 0 18.422 7H11Zm0 0V1" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1285 </svg><span class="count-bubble count-bubble--lg">0</span> 1286 </div> 1287 1288 <div class="prose"> 1289 <p class="h5">Your cart is empty</p> 1290<a class="button button--xl" 1291 1292 1293 1294 1295 1296 href="/collections/all" 1297 1298 1299 >Continue shopping</a></div> 1300 </div></cart-drawer> 1301 1302 1303</div><div id="shopify-section-sections--18588698083390__search-drawer" class="shopify-section shopify-section-group-overlay-group"><search-drawer class="search-drawer drawer drawer--lg" id="search-drawer"> 1304 <form action="/search" method="get" class="v-stack gap-5 sm:gap-8" role="search"> 1305 <div class="search-input"> 1306 <input type="search" name="q" placeholder="Search for..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" aria-label="Search"> 1307 <button type="reset" class="text-subdued">Clear</button> 1308 <button type="button" is="close-button"> 1309 <span class="sr-only">Close</span><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24"> 1310 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 1311 </svg></button> 1312 </div> 1313 1314 <predictive-search class="predictive-search" section-id="sections--18588698083390__search-drawer"><div slot="results"></div> 1315 1316 <div slot="loading"> 1317 <div class="v-stack gap-5 sm:gap-6 "> 1318 <div class="h-stack gap-4 sm:gap-5"><span class="skeleton skeleton--tab"></span><span class="skeleton skeleton--tab"></span><span class="skeleton skeleton--tab"></span></div> 1319 1320 <div class="v-stack gap-4 sm:gap-6"><div class="h-stack align-center gap-5 sm:gap-6"> 1321 <span class="skeleton skeleton--thumbnail"></span> 1322 1323 <div class="v-stack gap-3 w-full"> 1324 <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span> 1325 <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span> 1326 <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span> 1327 </div> 1328 </div><div class="h-stack align-center gap-5 sm:gap-6"> 1329 <span class="skeleton skeleton--thumbnail"></span> 1330 1331 <div class="v-stack gap-3 w-full"> 1332 <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span> 1333 <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span> 1334 <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span> 1335 </div> 1336 </div><div class="h-stack align-center gap-5 sm:gap-6"> 1337 <span class="skeleton skeleton--thumbnail"></span> 1338 1339 <div class="v-stack gap-3 w-full"> 1340 <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span> 1341 <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span> 1342 <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span> 1343 </div> 1344 </div><div class="h-stack align-center gap-5 sm:gap-6">
1345 <span class="skeleton skeleton--thumbnail"></span> 1346 1347 <div class="v-stack gap-3 w-full"> 1348 <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span> 1349 <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span> 1350 <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span> 1351 </div> 1352 </div></div> 1353 </div></div> 1354 </predictive-search> 1355 </form> 1356</search-drawer> 1357 1358</div> 1359<!-- END sections: overlay-group --><cart-notification-drawer open-from="bottom" class="quick-buy-drawer drawer"></cart-notification-drawer><main role="main" id="main" class="anchor"> 1360 <section id="shopify-section-template--18588697985086__main" class="shopify-section shopify-section--main-search"><style>#shopify-section-template--18588697985086__main { 1361 --product-list-gap: var(--product-list-row-gap) var(--spacing-2); 1362 --product-list-items-per-row: 2; 1363 --product-list-grid: auto-flow dense / repeat(var(--product-list-items-per-row), minmax(0, 1fr)); 1364 1365 --content-over-media-gap: var(--spacing-8); 1366 } 1367 1368 @media screen and (min-width: 700px) { 1369 #shopify-section-template--18588697985086__main { 1370 --product-list-gap: var(--product-list-row-gap) var(--product-list-column-gap); 1371 --product-list-items-per-row: 2; 1372 } 1373 } 1374 1375 @media screen and (min-width: 1000px) { 1376 #shopify-section-template--18588697985086__main { 1377 --product-list-items-per-row: 2; 1378 } 1379 } 1380 1381 @media screen and (min-width: 1200px) { 1382 #shopify-section-template--18588697985086__main { 1383 --product-list-items-per-row: 3; 1384 } 1385 } 1386 1387 @media screen and (min-width: 1400px) { 1388 #shopify-section-template--18588697985086__main { 1389 --product-list-items-per-row: 3; 1390 } 1391 } 1392</style><div class="container"> 1393 <div class="empty-state"> 1394 <h1 class="h2">Search</h1><form class="main-search-form" action="/search" method="get" role="search"> 1395 <div class="v-stack gap-6 sm:gap-12"> 1396 <div class="search-input"> 1397 <input type="search" name="q" value="" placeholder="Search for..." autocomplete="off" autocorrect="off" spellcheck="false" aria-label="Search"> 1398 <button type="submit"><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-search" viewBox="0 0 22 22"> 1399 <circle cx="11" cy="10" r="7" fill="none" stroke="currentColor"></circle> 1400 <path d="m16 15 3 3" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1401 </svg></button> 1402 </div><div class="justify-self-center"> 1403<button type="submit" class="button button--xl" 1404 1405 1406 1407 1408 1409 1410 1411 is="custom-button" 1412 >Search</button></div></div> 1413 </form></div> 1414 </div></section> 1415<!-- BEGIN sections: footer-group --> 1416<footer id="shopify-section-sections--18588698017854__footer" class="shopify-section shopify-section-group-footer-group shopify-section--footer"><style> 1417 @media screen and (min-width: 1000px) { 1418 #shopify-section-sections--18588698017854__footer {--footer-block-list-gap: var(--spacing-10);--footer-block-list-justify-content: space-between; 1419 } 1420 } 1421</style><div class="footer"> 1422 <div class="container"> 1423 <div class="footer__wrapper"><div class="footer__block-list empty:hidden"><div class="footer__block footer__block--newsletter" ><div class="v-stack gap-6"><p class="h3">Sign up for new stories and personal offers</p><form method="post" action="/contact#footer-newsletter" id="footer-newsletter" accept-charset="UTF-8" class="footer__newsletter-form form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="contact[tags]" value="newsletter"><div class="form-control" ><input id="input-sections--18588698017854__footer--contactemail" class="input is-floating" type="email" dir="ltr" name="contact[email]" placeholder=" " 1424 1425 1426 1427 1428 autocomplete="email" 1429 1430 enterkeyhint="send" 1431 required 1432 1433><label for="input-sections--18588698017854__footer--contactemail" class="floating-label">E-mail</label>
1433<div class="self-submit-button"> 1434 <button type="submit" class="circle-chevron hover:colors"> 1435 <span class="sr-only">Subscribe</span><svg role="presentation" focusable="false" width="5" height="8" class="icon icon-chevron-right-small reverse-icon" viewBox="0 0 5 8"> 1436 <path d="m.75 7 3-3-3-3" fill="none" stroke="currentColor" stroke-width="1.5"></path> 1437 </svg></button> 1438 </div></div></form></div> 1439 </div><div class="footer__block footer__block--menu" ><ul class="v-stack gap-3" role="list"><li> 1440 <a href="/pages/about-us" class="inline-block link-faded break-all">What We Do</a> 1441 </li><li> 1442 <a href="/pages/loyalty-program" class="inline-block link-faded break-all">Loyalty Program</a> 1443 </li><li> 1444 <a href="/blogs/radix-blog" class="inline-block link-faded break-all">Blog</a> 1445 </li><li> 1446 <a href="/pages/contact-us" class="inline-block link-faded break-all">Contact Us</a> 1447 </li></ul> 1448 </div><div class="footer__block footer__block--menu" ><ul class="v-stack gap-3" role="list"><li> 1449 <a href="/pages/about-us" class="inline-block link-faded break-all">About us</a> 1450 </li><li> 1451 <a href="/search" class="inline-block link-faded break-all">Search</a> 1452 </li><li> 1453 <a href="/policies/terms-of-service" class="inline-block link-faded break-all">Terms of Service</a> 1454 </li><li> 1455 <a href="/policies/refund-policy" class="inline-block link-faded break-all">Refund policy</a> 1456 </li><li> 1457 <a href="https://account.radixnutrition.co.nz" class="inline-block link-faded break-all">Wholesale Login</a> 1458 </li><li> 1459 <a href="/pages/radix-subscription" class="inline-block link-faded break-all">Subscriptions</a> 1460 </li><li> 1461 <a href="/pages/iron-within" class="inline-block link-faded break-all">Community</a> 1462 </li></ul> 1463 </div><div class="footer__block footer__block--text" ><p class="bold">About</p><div class="prose text-subdued"><p>Sustainable vitality is built through daily systems, not short-term fixes. Radix Nutrition exists to support that foundation.</p></div></div></div><div class="footer__aside empty:hidden"><div class="footer__aside-top"><ul class="social-media " role="list"><li> 1464 <a href="https://www.facebook.com/RadixNutrition" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Facebook"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-facebook" viewBox="0 0 24 24"> 1465 <path fill-rule="evenodd" clip-rule="evenodd" d="M10.183 21.85v-8.868H7.2V9.526h2.983V6.982a4.17 4.17 0 0 1 4.44-4.572 22.33 22.33 0 0 1 2.667.144v3.084h-1.83a1.44 1.44 0 0 0-1.713 1.68v2.208h3.423l-.447 3.456h-2.97v8.868h-3.57Z" fill="currentColor"/> 1466 </svg></a> 1467 </li><li> 1468 <a href="https://www.instagram.com/radixnutrition/" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Instagram"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-instagram" viewBox="0 0 24 24"> 1469 <path fill-rule="evenodd" clip-rule="evenodd" d="M12 2.4c-2.607 0-2.934.011-3.958.058-1.022.046-1.72.209-2.33.446a4.705 4.705 0 0 0-1.7 1.107 4.706 4.706 0 0 0-1.108 1.7c-.237.611-.4 1.31-.446 2.331C2.41 9.066 2.4 9.392 2.4 12c0 2.607.011 2.934.058 3.958.046 1.022.209 1.72.446 2.33a4.706 4.706 0 0 0 1.107 1.7c.534.535 1.07.863 1.7 1.108.611.237 1.309.4 2.33.446 1.025.047 1.352.058 3.959.058s2.934-.011 3.958-.058c1.022-.046 1.72-.209 2.33-.446a4.706 4.706 0 0 0 1.7-1.107 4.706 4.706 0 0 0 1.108-1.7c.237-.611.4-1.31.446-2.33.047-1.025.058-1.352.058-3.959s-.011-2.934-.058-3.958c-.047-1.022-.209-1.72-.446-2.33a4.706 4.706 0 0 0-1.107-1.7 4.705 4.705 0 0 0-1.7-1.108c-.611-.237-1.31-.4-2.331-.446C14.934 2.41 14.608 2.4 12 2.4Zm0 1.73c2.563 0 2.867.01 3.88.056.935.042 1.443.199 1.782.33.448.174.768.382 1.104.718.336.336.544.656.718 1.104.131.338.287.847.33 1.783.046 1.012.056 1.316.056 3.879 0 2.563-.01 2.867-.056 3.88-.043.935-.199 1.444-.33 1.782a2.974 2.974 0 0 1-.719 1.104 2.974 2.974 0 0 1-1.103.718c-.339.131-.847.288-1.783.33-1.012.046-1.316.056-3.88.056-2.563 0-2.866-.01-3.878-.056-.936-.042-1.445-.199-1.783-.33a2.974 2.974 0 0 1-1.104-.718 2.974 2.974 0 0 1-.718-1.104c-.131-.338-.288-.847-.33-1.783-.047-1.012-.056-1.316-.056-3.879 0-2.563.01-2.867.056-3.88.042-.935.199-1.443.33-1.782.174-.448.382-.768.718-1.104a2.974 2.974 0 0 1 1.104-.718c.338-.131.847-.288 1.783-.33C9.133 4.14 9.437 4.13 12 4.13Zm0 11.07a3.2 3.2 0 1 1 0-6.4 3.2 3.2 0 0 1 0 6.4Zm0-8.13a4.93 4.93 0 1 0 0 9.86 4.93 4.93 0 0 0 0-9.86Zm6.276-.194a1.152 1.152 0 1 1-2.304 0 1.152 1.152 0 0 1 2.304 0Z" fill="currentColor"/> 1470 </svg></a> 1471 </li><li> 1472 <a href="https://www.youtube.com/@radixnutrition" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on YouTube"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-youtube" viewBox="0 0 24 24"> 1473 <path fill-rule="evenodd" clip-rule="evenodd" d="M20.44 5.243c.929.244 1.66.963 1.909 1.876.451 1.654.451 5.106.451 5.106s0 3.452-.451 5.106a2.681 2.681 0 0 1-1.91 1.876c-1.684.443-8.439.443-8.439.443s-6.754 0-8.439-.443a2.682 2.682 0 0 1-1.91-1.876c-.45-1.654-.45-5.106-.45-5.106s0-3.452.45-5.106a2.681 2.681 0 0 1 1.91-1.876c1.685-.443 8.44-.443 8.44-.443s6.754 0 8.438.443Zm-5.004 6.982L9.792 15.36V9.091l5.646 3.134Z" fill="currentColor"/> 1474 </svg></a> 1475 </li><li> 1476 <a href="https://www.tiktok.com/@radixnutrition" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on TikTok"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-tiktok" viewB
1476ox="0 0 24 24"> 1477 <path d="M20.027 10.168a5.125 5.125 0 0 1-4.76-2.294v7.893a5.833 5.833 0 1 1-5.834-5.834c.122 0 .241.011.361.019v2.874c-.12-.014-.237-.036-.36-.036a2.977 2.977 0 0 0 0 5.954c1.644 0 3.096-1.295 3.096-2.94L12.56 2.4h2.75a5.122 5.122 0 0 0 4.72 4.573v3.195" fill="currentColor"/> 1478 </svg></a> 1479 </li></ul><div class="h-stack gap-6"><link rel="stylesheet" href="//radixnutrition.com/cdn/shop/t/314/assets/country-flags.css?v=80214991661122795261778198596" media="print" onload="this.media='all'; this.onload = null"><div class="relative"> 1480 <button type="button" class="text-with-icon gap-2.5 group" aria-label="Change country or currency" aria-controls="popover-localization-form-country--sections--18588698017854__footer" aria-expanded="false"> 1481 <div class="h-stack gap-2"><span class="country-flags country-flags--NZ"></span><span class="bold text-sm">New Zealand (NZD $)</span> 1482 </div><svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7"> 1483 <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path> 1484 </svg></button> 1485 1486 <x-popover id="popover-localization-form-country--sections--18588698017854__footer" initial-focus="[aria-selected='true']" anchor-horizontal="end" anchor-vertical="start" class="popover"> 1487 <p class="h5" slot="title">Country</p><form method="post" action="/localization" id="localization-form-country--sections--18588698017854__footer" accept-charset="UTF-8" class="shopify-localization-form" 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="/search" /><x-listbox class="popover-listbox popover-listbox--sm" role="listbox"><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AU" > 1488 <span class="country-flags country-flags--AU"></span> 1489 <span>Australia (AUD $)</span> 1490 </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NZ" aria-selected="true"> 1491 <span class="country-flags country-flags--NZ"></span> 1492 <span>New Zealand (NZD $)</span> 1493 </button></x-listbox></form></x-popover> 1494 </div></div></div><div class="footer__aside-bottom"><div class="footer__copyright v-stack gap-1"> 1495 <p class="text-sm text-subdued">© 2026, Radix Nutrition. <a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&utm_medium=shopify&utm_source=onlinestore">Powered by Shopify</a></p></div> 1496 </div> 1497 </div> 1498 </div> 1499 </div> 1500</div> 1501 1502</footer> 1503<!-- END sections: footer-group --></main> 1504 <div id="shopify-block-AbmZNMkJoZTRRcUIvb__10830403595879607806" class="shopify-block shopify-app-block"><style> 1505 .rio-withoutBranding .FloatingWidget .R-Logo, 1506 .rio-withoutBranding .CarouselWidget .R-ReviewsioLogo, 1507 .rio-withoutBranding .ElementsWidget .footer__reviewsLogo-container, 1508 .rio-withoutBranding .QnaWidget .footer__reviewsLogo-container, 1509 .rio-withoutBranding .MediaGalleryWidget-prefix .R-ReviewsioLogo, 1510 .rio-withoutBranding .RatingBarWidget .R-PlatformIcon { 1511 display: none !important; 1512 } 1513</style>
1514<script> 1515 window.__REVIEWS_EDITOR__ = false; 1516 window.__REVIEWS_DEMO_CONFIG__ = { 1517 store: 'ecommerce-demo-store', 1518 sku: 'bunch_of_flowers_sku;blue_flowers_sku;white_flowers_sku;pastel_flowers_sku;summer_selection_sku', 1519 widgetIds: { 1520 nuggets: 'W10cpKyjl72VtHv6', 1521 ugc: '7sG9C5qNeKpvhykZ', 1522 floating: 'GBvqmKV1Zy9H4Mpd', 1523 ratingBar: 'pxNMXi7FTlODgr8Q', 1524 survey: 'uLJcD7bFpGMf1Z0C' 1525 }, 1526 surveyCampaignId: '392' 1527 }; 1528 1529 1530 var reviewsIoStore = 'radix-nutrition.myshopify.com'; 1531 1532 1533 var reviewsIoEnableSyndication = false; 1534 1535 1536 1537 1538 var reviewsIoLang = 'en'; 1539 1540 1541</script>
1541 1542
1543<script defer src="https://cdn.shopify.com/extensions/01a0f781-40b0-734a-a579-a6ab0f7a7741/reviews-co-uk-product-and-merchant-review-collection-60/assets/reviewsio-preview.js"></script>
1543 1544 1545 1546 1547</div><div id="shopify-block-AY3pVa3ZJR0E3aHF6e__10436698916776057164" class="shopify-block shopify-app-block">
1547<script id="subscription-helper"> 1548 1549 function appstleStringSetting(value) { 1550 if (typeof value !== 'string') return value; 1551 try { return JSON.parse('"' + value + '"'); } catch { return value; } 1552 } 1553 function appstleJsonSetting(value) { 1554 if (typeof value !== 'string') return value; 1555 try { return JSON.parse(value); } catch { return null; } 1556 } 1557 1558 if (!window.AppstleIncluded) { 1559 window.AppstleIncluded = true; 1560 window.RS = Window.RS || {}; 1561 1562 RS.Config = { 1563 "selectors": { 1564 "payment_button_selectors": "form[action$='/cart/add'] .shopify-payment-button", 1565 "subscriptionLinkSelector": appstleStringSetting(""), 1566 "atcButtonPlacement": appstleStringSetting("BEFORE"), 1567 "subscriptionLinkPlacement": appstleStringSetting("BEFORE"), 1568 "cartRowSelector": appstleStringSetting(""), 1569 "cartLineItemSelector": appstleStringSetting(""), 1570 "cartLineItemPerQuantityPriceSelector": appstleStringSetting(""), 1571 "cartLineItemTotalPriceSelector": appstleStringSetting(""), 1572 "cartLineItemSellingPlanNameSelector": appstleStringSetting(""), 1573 "cartSubTotalSelector" : appstleStringSetting(""), 1574 "cartLineItemPriceSelector": appstleStringSetting(""), 1575 "cartLineItemPlacement": appstleStringSetting("BEFORE"), 1576 "cartHiddenAttributesSelector": appstleStringSetting(""), 1577 "buildABoxDiscountSelector": appstleStringSetting(""), 1578 }, 1579 "baseUrl": appstleStringSetting("https:\/\/subscription-admin.appstle.com"), 1580 "usedTranslation": "true", 1581 "enableCartWidgetFeature": appstleStringSetting("false"), 1582 "storefrontAnalyticsForwardingEnabled": appstleJsonSetting("false"), 1583 "appstleStorefrontAnalyticsPath": appstleStringSetting("https:\/\/subscription-admin.appstle.com\/assets\/js\/appstle-storefront-analytics.min.js?shop=radix-nutrition.myshopify.com\u0026v=1788072034987"), 1584 "useUrlWithCustomerId": appstleStringSetting("false"), 1585 "atcButtonSelector": appstleStringSetting(".purchase-details.has-quantity-box-true"), 1586 "moneyFormat": appstleStringSetting("\u003cspan class=money\u003e ${{amount}} \u003c\\\/span\u003e"), 1587 "oneTimePurchaseText": appstleStringSetting("One Time Purchase"), 1588 "minimumQuantityMessage": appstleStringSetting(""), 1589 "tapToSelectText": appstleStringSetting(""), 1590 "bundleDiscountTextV2": appstleStringSetting("bundle discount extra: {{bundleDiscount}} off"), 1591 "productPageUnitPriceSelectorV2": appstleStringSetting(null), 1592 "monthsFrequencyTextV2": appstleStringSetting("Months"), 1593 "monthlyLabelTextV2": appstleStringSetting("Monthly"), 1594 "monthFrequencyTextV2": appstleStringSetting("Month"), 1595 "weeksFrequencyTextV2": appstleStringSetting("Weeks"), 1596 "weeklyLabelTextV2": appstleStringSetting("Weekly"), 1597 "weekFrequencyTextV2": appstleStringSetting("Week"), 1598 "daysFrequencyTextV2": appstleStringSetting("Days"), 1599 "dayFrequencyTextV2": appstleStringSetting("day"), 1600 "yearsFrequencyTextV2": appstleStringSetting("Years"), 1601 "yearlyLabelTextV2": appstleStringSetting("Yearly"), 1602 "yearFrequencyTextV2": appstleStringSetting("Year"), 1603 "offFrequencyTextV2": appstleStringSetting("Off"), 1604 "prepayLabelTextV2": appstleStringSetting("Prepay"), 1605 "prepaidLabelTextV2": appstleStringSetting("Prepaid"), 1606 "prepaidSaveBadgeTextV2": appstleStringSetting("SAVE {{selectedDiscountPercentage}}"), 1607 "onetimeDescriptionTextV2": appstleStringSetting(""), 1608 "atcButtonTextV2": appstleStringSetting(""), 1609 "oneTimeFrequencyTextV2": appstleStringSetting("One Time"), 1610 "cancelAnytimeLabelTextV2": appstleStringSetting("Cancel Anytime"), 1611 "noSubscriptionLabelTextV2": appstleStringSetting("No Subscription"), 1612 "addToShipmentButtonTextV2": appstleStringSetting("Add to Shipment"), 1613 "addToShipmentProcessingV2": appstleStringSetting("Processing..."), 1614 "addToShipmentSuccessTextV2": appstleStringSetting("Success"), 1615 "addToShipmentErrorTextV2": appstleStringSetting("Error"), 1616 "addToShipmentTooltipTextV2": appstleStringSetting("Please avoid double delivery charges! Login to add this product to an upcoming delivery."), 1617 "frequencyCombinedWidgetTextV2": appstleStringSetting("Frequency"), 1618 "selectDeliverOptionV2": appstleStringSetting("select deliver option"), 1619 "subscribeAndSaveSuccessV2": appstleStringSetting("Subscribe success"), 1620 "unsubscribeFrequencyTextV2": appstleStringSetting("unsubscribe"), 1621 "deliveryEveryFrequencyTextV2": appstleStringSetting("Delivery Every"), 1622 "sellingPlanTitleTextNonPrepaid": appstleStringSetting("{{sellingPlanName}}"), 1623 "subscribeAndSaveInitalV2": appstleStringSetting("Subscribe \u0026 save"), 1624 "subscriptionDescriptionTextV2": appstleStringSetting(""), 1625 "atcButtonTextSelector": appstleStringSetting(""), 1626 "disableCartWidgetOnVariants": appstleStringSetting(""), 1627 "shop": appstleStringSetting("radix-nutrition.myshopify.com"), 1628 "deliveryText": appstleStringSetting("delivery"), 1629 "purchaseOptionsText": appstleStringSetting("Purchase Options"), 1630 "manageSubscriptionButtonText": appstleStringSetting("Manage Subscription"), 1631 "subscriptionOptionText": appstleStringSetting("Subscribe and save"), 1632 "sellingPlanSelectTitle": appstleStringSetting("Delivery Frequency"), 1633 "subscriptionPriceDisplayText": appstleStringSetting(""), 1634 "tooltipTitle": appstleStringSetting("More info"), 1635 "showTooltipOnClick": appstleStringSetting("false"), 1636 "tooltipDesctiption": appstleStringSetting("\u003cstrong\u003eHave complete control of your subscriptions\u003c\\\/strong\u003e\u003cbr\\\/\u003e\u003cbr\\\/\u003eSkip, reschedule, edit, or cancel deliveries anytime, based on your needs."), 1637 "tooltipDescriptionOnPrepaidPlan": appstleStringSetting("\u003cb\u003ePrepaid Plan Details\u003c\\\/b\u003e\u003c\\\/br\u003e Total price: {{totalPrice}} ( Price for every delivery: {{pricePerDelivery}})"), 1638 "tooltipDescriptionOnMultipleDiscount": appstleStringSetting("\u003cb\u003eDiscount Details\u003c\\\/b\u003e\u003c\\\/br\u003e Initial discount is {{discountOne}} and then {{discountTwo}}"), 1639 "manualTranslation": appstleStringSetting("false"), 1640 "tooltipDescriptionCustomization": appstleStringSetting("{{{defaultTooltipDescription}}} \u003c\\\/br\u003e {{{prepaidDetails}}} \u003c\\\/br\u003e {{{discountDetails}}}"), 1641 "orderStatusManageSubscriptionTitle": appstleStringSetting("Subscription"), 1642 "orderStatusManageSubscriptionDescription": appstleStringSetting("Continue to your account to view and manage your subscriptions. Please use the same email address that you used to buy the subscription."), 1643 "orderStatusManageSubscriptionButtonText": appstleStringSetting("Manage your subscription"), 1644 "subscriptionOptionSelectedByDefault" : appstleJsonSetting("false"), 1645 "totalPricePerDeliveryText" : appstleStringSetting("{{prepaidPerDeliveryPrice}}\\\/delivery"), 1646 "memberOnlySellingPlansJson": appstleJsonSetting("{}"), 1647 "nonMemberOnlySellingPlansJson": appstleJsonSetting("{}"), 1648 "sellingPlansJson": appstleJsonSetting("[{\"frequencyCount\":1,\"frequencyInterval\":\"MONTH\",\"billingFrequencyCount\":1,\"billingFrequencyInterval\":\"MONTH\",\"frequencyName\":\"Radix Monthly Subscription\",\"discountOffer\":15.0,\"afterCycle1\":0,\"discountType\":\"PERCENTAGE\",\"discountEnabled\":true,\"discountEnabledMasked\":true,\"id\":\"gid:\/\/shopify\/SellingPlan\/4911890494\",\"frequencyType\":\"ON_SPECIFIC_DAY\",\"specificDayValue\":1,\"specificDayEnabled\":true,\"prepaidFlag\":\"false\",\"idNew\":\"gid:\/\/shopify\/SellingPlan\/4911890494\",\"planType\":\"PAY_AS_YOU_GO\",\"deliveryPolicyPreAnchorBehavior\":\"ASAP\",\"freeTrialEnabled\":false,\"memberOnly\":false,\"nonMemberOnly\":false,\"formFieldJson\":\"[]\",\"upcomingOrderEmailBuffer\":2,\"frequencySequence\":0,\"groupName\":\"Radix Monthly Subscription [NEW]\",\"groupId\":1412661310,\"repeatingCycle\":false,\"defaultSelectedPlan\":false,\"inventoryPolicyReserve\":\"ON_SALE\",\"appstleCycles\":[]},{\"frequencyCount\":1,\"frequencyInterval\":\"MONTH\",\"billingFrequencyCount\":1,\"billingFrequencyInterval\":\"MONTH\",\"frequencyName\":\"Radix Monthly Subscription\",\"frequencyDescription\":\"\\u003cp\\u003e\\u003cmeta content\\u003d\\\"text\/
1648html; charset\\u003dus-ascii\\\" http-equiv\\u003d\\\"Content-Type\\\"\\u003eGet Radix delivered monthly and save 20%.\\u003c\/p\\u003e\\n\",\"discountOffer\":15.0,\"afterCycle1\":0,\"discountType\":\"PERCENTAGE\",\"discountEnabled\":true,\"discountEnabledMasked\":true,\"id\":\"gid:\/\/shopify\/SellingPlan\/6246301758\",\"frequencyType\":\"ON_PURCHASE_DAY\",\"specificDayEnabled\":false,\"cutOff\":0,\"prepaidFlag\":\"false\",\"idNew\":\"gid:\/\/shopify\/SellingPlan\/6246301758\",\"planType\":\"PAY_AS_YOU_GO\",\"deliveryPolicyPreAnchorBehavior\":\"ASAP\",\"freeTrialEnabled\":false,\"memberOnly\":false,\"nonMemberOnly\":false,\"formFieldJson\":\"[]\",\"upcomingOrderEmailBuffer\":2,\"frequencySequence\":0,\"groupName\":\"Radix Monthly Subscription [NEW] Copy\",\"groupId\":2741665854,\"repeatingCycle\":false,\"defaultSelectedPlan\":false,\"inventoryPolicyReserve\":\"ON_SALE\",\"appstleCycles\":[]}]"), 1649 "widgetEnabled": appstleJsonSetting("true"), 1650 "showFreeGiftPrice" : appstleJsonSetting("true"), 1651 "showFreeGiftComparePrice" : appstleJsonSetting("true"), 1652 "enableFreeGiftLayout" : appstleJsonSetting("false"), 1653 "freeGiftLabelText": appstleStringSetting("+ Free {{productName}}"), 1654 "freeGiftBadgeText": appstleStringSetting(""), 1655 "showTooltip" : appstleJsonSetting("true"), 1656 "showCartWidgetOnBundleItems" : appstleJsonSetting("false"), 1657 "prepaidOptionSelectedByDefault" : appstleJsonSetting("false"), 1658 "disablePassingSellingPlanAsLineProperties" : appstleJsonSetting("false"), 1659 "updateThemePrice" : appstleJsonSetting("false"), 1660 "sortByDefaultSequence": appstleJsonSetting("false"), 1661 "showSubOptionBeforeOneTime": appstleJsonSetting("false"), 1662 "detectVariantFromURLParams": appstleJsonSetting("false"), 1663 "disableQueryParamsUpdate": appstleJsonSetting("false"), 1664 "showStaticTooltip": appstleJsonSetting("false"), 1665 "showAppstleLink": appstleJsonSetting("false"), 1666 "sellingPlanTitleText" : appstleStringSetting("{{sellingPlanName}} ({{sellingPlanPrice}}\\\/delivery)"), 1667 "oneTimePriceText" : appstleStringSetting("{{price}}"), 1668 "selectedPayAsYouGoSellingPlanPriceText" : appstleStringSetting("{{price}}"), 1669 "selectedPrepaidSellingPlanPriceText" : appstleStringSetting(" {{totalPrice}}"), 1670 "selectedDiscountFormat" : appstleStringSetting(""), 1671 "manageSubscriptionBtnFormat" : appstleStringSetting("\u003ca href='apps\\\/subscriptions' class='appstle_manageSubBtn' \u003e\u003cbutton class='btn' style='padding: 2px 20px'\u003eManage Subscription\u003c\\\/button\u003e\u003ca\u003e\u003cbr\u003e\u003cbr\u003e"), 1672 "manageSubscriptionUrl" : appstleStringSetting("https:\\\/\\\/radixnutrition.co.nz\\\/apps\\\/subscriptions"), 1673 "appstlePlanId": appstleJsonSetting("351"), 1674 "showCheckoutSubscriptionBtn": appstleJsonSetting("true"), 1675 "priceSelector": appstleStringSetting(""), 1676 "reloadPriceSelector": appstleStringSetting(""), 1677 "landingPagePriceSelector": appstleStringSetting(""), 1678 "quickViewClickSelector": appstleStringSetting(""), 1679 "badgeTop": appstleStringSetting(""), 1680 "pricePlacement": appstleStringSetting("BEFORE"), 1681 "disableLoadingJquery": appstleJsonSetting("false"), 1682 "widgetEnabledOnSoldVariant": appstleStringSetting("false"), 1683 "switchRadioButtonWidget": appstleJsonSetting("false"), 1684 "appstlePlanName": appstleStringSetting("Business+Quickcheckout"), 1685 "appstlePlanFeatures": appstleJsonSetting("{\"analytics\": true, \"webhookAccess\": false, \"accessBundling\": true, \"enableAutoSync\": false, \"enableBundling\": true, \"enableSmsAlert\": true, \"accessBuildABox\": true, \"enableCampaigns\": false, \"enablePriceSync\": false, \"enableAutomation\": false, \"enableCartWidget\": true, \"accessAppstleMenu\": true, \"accessResendEmail\": true, \"enableAddressSync\": false, \"enableExternalApi\": false, \"enablePhasedRetry\": false, \"enableIntegrations\": true, \"enableQuickActions\": true, \"accessQuickCheckout\": true, \"accessSplitContract\": true, \"enableSummaryReports\": true, \"enableCustomEmailHtml\": true, \"enableWidgetPlacement\": true, \"enableCancellationFlow\": false, \"enableShippingProfiles\": true, \"accessZapierIntegration\": true, \"enableCustomEmailDomain\": true, \"enableDunningManagement\": true, \"enableExportActivityLog\": false, \"subscriptionOrderAmount\": 30000, \"accessGorgiasIntegration\": true, \"accessKlaviyoContactSync\": true, \"enableOrderConsolidation\": false, \"accessWidgetDe
1685signOptions\": true, \"enableImmediatePlaceOrder\": true, \"enableInventoryManagement\": true, \"accessMechanicsIntegration\": true, \"enableAdvancedSellingPlans\": true, \"accessOneTimeProductUpsells\": true, \"enableBillingIntervalChange\": true, \"enableProductSwapAutomation\": true, \"accessShopifyFlowIntegration\": true, \"enableCancellationManagement\": true, \"enableCustomerPortalSettings\": true, \"enableSubscriptionManagement\": true, \"accessKlaviyoEmailIntegration\": true, \"accessSubscriptionActivityLogs\": true, \"enableBackupPaymentMethodRetry\": false, \"accessSubscriberLoyaltyFeatures\": true, \"enableContractPriceModification\": true, \"accessManualSubscriptionCreation\": true, \"enableNextBillingDateModification\": true, \"accessCustomerPortalProductUpsells\": false, \"enableServerSideConversionTracking\": true, \"accessDiscountOnCancellationAttempt\": true, \"enableStorefrontAnalyticsForwarding\": true, \"accessAdvanceSubscriptionPlanOptions\": true, \"accessAdvancedCustomerPortalSettings\": true}"), 1686 "formMappingAttributeName": appstleStringSetting(""), 1687 "formMappingAttributeSelector": appstleStringSetting(""), 1688 "quickViewModalPollingSelector": appstleStringSetting(""), 1689 "scriptLoadDelay": appstleStringSetting("0"), 1690 "formatMoneyOverride": appstleStringSetting("false"), 1691 "enableAddToExistingSubscriptionFeature": appstleStringSetting("false"), 1692 "displayAddToExistingSubscriptionButtonForNotLoggedInV2": appstleStringSetting(null), 1693 "showAddToSubscriptionButtonOnlyOnSubscriptionProducts": appstleStringSetting("false"), 1694 "appstle_app_proxy_path_prefix": appstleStringSetting("apps\\\/subscriptions"), 1695 "updatePriceOnQuantityChange": appstleStringSetting(""), 1696 "widgetParentSelector": appstleStringSetting(""), 1697 "quantitySelector": appstleStringSetting(""), 1698 "enableAddJSInterceptor": appstleStringSetting("true"), 1699 "isDevEnabled": appstleJsonSetting(false), 1700 "forceReloadWidgetSelector": appstleStringSetting(""), 1701 "forceReloadOnFreqChange": appstleJsonSetting("false"), 1702 "showPrepaidPlanSeparately": appstleJsonSetting("false"), 1703 "debugLogsEnabled": appstleJsonSetting(false), 1704 "isUseStorefrontAPI": appstleJsonSetting(false), 1705 "reBuyEnabled": appstleStringSetting("false"), 1706 "loyaltyDetailsLabelText": appstleStringSetting(null), 1707 "loyaltyPerkDescriptionTextV2": appstleStringSetting("{{#isDiscountTypeFreeProduct}}\u003cdiv style='display: flex;'\u003e\u003cdiv style='height: 60px; width: 60px; flex-shrink: 0; margin-right: 10px;'\u003e\u003cimg style='width: 100%' src={{{featured_image}}}\u003e\u003c\\\/img\u003e\u003c\\\/div\u003e\u003cdiv\u003eAfter {{{billingCycleBlock}}} orders,\u003cspan style='color: #ffc000;font-weight: 700;';\u003e get a FREE {{freeProductName}} \u003c\\\/span\u003e\u003c\\\/div\u003e\u003cdiv\u003e{{\\\/isDiscountTypeFreeProduct}}{{#isDiscountTypePercentage}}After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan style='color: #ffc000;font-weight: 700;';\u003e{{{discount}}}% OFF your entire order\u003c\\\/span\u003e\u003c\\\/span\u003e.{{\\\/isDiscountTypePercentage}}{{#isDiscountTypeShipping}}After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan style='color: #ffc000;font-weight: 700;';\u003eshipping at {{{formatDiscountedPrice}}}\u003c\\\/span\u003e\u003c\\\/span\u003e.{{\\\/isDiscountTypeShipping}}{{#isDiscountTypeFixed}}After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan style='color: #ffc000;font-weight: 700;';\u003e{{{formatDiscountedPrice}}} OFF your entire order\u003c\\\/span\u003e\u003c\\\/span\u003e.{{\\\/isDiscountTypeFixed}}"), 1708 "widgetType": appstleStringSetting("WIDGET_TYPE_4"), 1709 "collectionWidgetType": appstleStringSetting("LEGACY"), 1710 "enableCompactProductPageWidget": appstleJsonSetting("false"), 1711 "enableCartDrawerWidget": appstleJsonSetting(false), 1712 "cartDrawerWidgetStyle": appstleJsonSetting(false), 1713 "cartDrawerWidgetInlineStyle": appstleStringSetting(null), 1714 "cartDrawerWidgetPanelStyle": appstleStringSetting(null), 1715 "cartDrawerWidgetSegmentedStyle": appstleStringSetting(null), 1716 "showOneTimeComparePrice": appstleJsonSetting("false"), 1717 "showCompareAtPriceForSubscription": appstleJsonSetting(false), 1718 "showCombinedSellingPlanCartWidget": appstleJsonSetting("false"), 1719 "combinedCartWidgetSelector": appstleStringSetting(""), 1720 "removeUnsubscribeOption": appstleJsonSetting(false), 1721 "widgetTemplateHtml": "{% raw %}\u003cdiv id=\"appstle-widget-template\"\u003e\n \u003cdiv class=\"appstle_sub_widget\" id=\"appstle_subscription_widget{{widgetId}}\"\u003e\n\u003cdiv class=\"appstle_widget_title\"\u003e{{{purchaseOptionsText}}}\u003c\/div\u003e\n \u003cdiv class=\"widgetSellingPlanWrapper\"\u003e\n{{^requires_selling_plan}}\n{{^showSubOptionBeforeOneTime}}\n \u003cdiv class=\"appstle_input_wrapper\"\u003e\n \u003cinput type=\"radio\" id=\"appstle_selling_plan_label_1{{widgetId}}\" name=\"selling_plan\" value=\"\" class=\"appstleSellingPlan{{widgetId}}\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\n \u003clabel for=\"appstle_selling_plan_label_1{{widgetId}}\"\u003e\n {{oneTimePuchaseText}}\n{{#showOneTimeComparePrice}}\n\u003cspan class=\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\"\u003e\n {{{oneTimePuchaseComparePriceAmount}}}\n\u003c\/span\u003e\n{{\/showOneTimeComparePrice}}\n \u003cspan class=\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\"\u003e{{{oneTimePuchaseAmount}}}\/{{{oneTimeFrequencyText}}}\u003c\/span\u003e\n \u003c\/label\u003e\n \u003c\/div\u003e\n{{\/showSubOptionBeforeOneTime}}\n{{\/requires_selling_plan}}\n {{#sellingPlanVariants}}\n \u003cdiv class=\"appstle_input_wrapper\"\u003e\n \u003cspan class=\"appstle_sellingPlan_discountText\"\u003e{{{formattedDiscountText}}}\u003c\/span\u003e\n \u003cinput type=\"radio\" class=\"appstleSellingPlan{{widgetId}}\" id=\"{{sellingPlanId}}\" value=\"{{sellingPlanId}}\" name=\"selling_plan\" {{#isChecked}}checked{{\/isChecked}}\u003e\n{{^prepaidFlag}}\n \u003clabel for=\"{{sellingPlanId}}\"\u003e\n {{{name}}}\n\u003cdiv class=\"appstle_span_wrapper\"\u003e\n \u003cspan class=\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\"\u003e{{{formattedPrice}}}\u003cspan\u003e\n\u003cspan class=\"appstle_lowercase appstle_sellingPlan_price appstle_formattext_block\"\u003e\/{{{sellingPlanFrequencyText}}}{{#isFrequencySubsequent}}{{\/isFrequencySubsequent}}\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/label\u003e\n{{\/prepaidFlag}}\n{{#prepaidFlag}}\n\u003clabel for=\"{{sellingPlanId}}\"\u003e\n {{{name}}}\n\u003cdiv class=\"appstle_span_wrapper\"\u003e\n \u003cspan class=\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\"\u003e{{{totalPrice}}}\u003c\/span\u003e\n\u003cspan class=\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block appstle_formattedPrepaidPerDeliveryPriceText\"\u003e\u0026nbsp;{{{formattedPrepaidPerDeliveryPriceText}}}\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/label\u003e\n{{\/prepaidFlag}}\n \u003c\/div\u003e\n {{\/sellingPlanVariants}}\n{{^requires_selling_plan}}\n{{#showSubOptionBeforeOneTime}}\n \u003cdiv class=\"appstle_input_wrapper\"\u003e\n \u003cinput type=\"radio\" id=\"appstle_selling_plan_label_1{{widgetId}}\" name=\"selling_plan\" value=\"\" class=\"appstleSellingPlan{{widgetId}}\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\n \u003clabel for=\"appstle_selling_plan_label_1{{widgetId}}\"\u003e\n {{oneTimePuchaseText}}\n{{#showOneTimeComparePrice}}\n\u003cspan class=\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\"\u003e\n {{{oneTimePuchaseComparePriceAmount}}}\n\u003c\/span\u003e\n{{\/showOneTimeComparePrice}}\n \u003cspan class=\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\"\u003e{{{oneTimePuchaseAmount}}}\/{{{oneTimeFrequencyText}}}\u003c\/span\u003e\n \u003c\/label\u003e\n \u003c\/div\u003e\n{{\/showSubOptionBeforeOneTime}}\n{{\/requires_selling_plan}}\n \u003c\/div\u003e\n{{#showStaticTooltip}}\n\u003cdiv class=\"appstle_tooltip_wrapper_static\"\u003e {{{toolTipDescription}}}\u003c\/div\u003e\n{{\/showStaticTooltip}}\n{{#showTooltip}}\n \u003cdiv data-appstle-icon=\"\" class=\"appstle_tooltip_wrapper\"\u003e\n \u003csvg width=\"90\" height=\"90\" viewBox=\"0 0 90 90\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"tooltip_subscription_svg\"\u003e\n \u003cpath\n d=\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8
1721635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\"\n \u003e\u003c\/path\u003e\n \u003c\/svg\u003e\n \u003cspan class=\"appstle_tooltip_title\"\u003e{{{tooltipTitle}}}\u003c\/span\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"appstle_tooltip\"\u003e\n \u003cdiv class=\"appstle_tooltip_content\"\u003e\n {{{toolTipDescription}}}\n \u003c\/div\u003e\n{{#showAppstleLink}}\n \u003cdiv class=\"appstle_tooltip_appstle\"\u003e\n \u003ca href=\"https:\/\/appstle.com\" class=\"appstle_link\" target=\"_blank\"\u003e\n POWERED BY APPSTLE\n \u003c\/a\u003e\n \u003c\/div\u003e\n{{\/showAppstleLink}}\n \u003c\/div\u003e\n{{\/showTooltip}}\n\u003cstyle\u003e\n.widgetSellingPlanWrapper {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 16px;\n grid-auto-rows: 1fr;\n margin-bottom: 6px;\nmargin-top: 10px\n}\n.widgetSellingPlanWrapper input {\n display: none;\n}\n.widgetSellingPlanWrapper label {\n border-radius: 10px;\n border: 1px solid rgba(var(--color-foreground, 0, 0, 0));\n padding: 0.5rem;\n display: flex !important;\n flex-direction: column;\n justify-content: center;
1721\n align-items: center;\n display: block;\n height: 100%;\n width: 100%;\n text-align: center;\ncursor: pointer;\n}\n.widgetSellingPlanWrapper input:checked+label {\n background-color: rgba(var(--color-foreground, 0, 0, 0));\n}\n.appstle_lowercase {\n text-transform: lowercase;\n}\n.appstle_input_wrapper {\n position: relative;\n}\nspan.appstle_sellingPlan_discountText {\n position: absolute;\n font-size: 1.2rem;\n background-color: rgba(var(--color-foreground, 0, 0, 0));\n color: rgba(var(--color-background, 255, 255, 255));\n border-radius: 3px;\n border: 2px solid rgba(var(--color-background, 255, 255, 255));\n padding: 1px 18px;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n white-space: nowrap;\n}\nspan.appstle_sellingPlan_discountText:empty {\n display: none !important;\n}\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\ntext-decoration: line-through;\n}\n.appstle_tooltip_wrapper {\n margin-bottom:10px;\n}\n.widgetSellingPlanWrapper input:checked+label {\n background-color: rgba(var(--color-foreground, 0, 0, 0));\n color: rgba(var(--color-background, 255, 255, 255));\n border: 2px solid rgba(var(--color-background, 255, 255, 255)) !important;\n}\n\u003c\/style\u003e\n\u003c\/div\u003e{% endraw %}", 1722 1723 "allWidgetTemplateHtml": "{\"WIDGET_TYPE_1\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_6\":\"{% raw %}\u003cdiv id=\\\"appstle-widget-template\\\"\u003e\\n \u003cdiv class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle_widget_title\\\"\u003e{{{purchaseOptionsText}}}\u003c\/div\u003e\\n \u003cdiv class=\\\"widgetSellingPlanWrapper\\\"\u003e\\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n \u003cdiv class=\\\"appstle_input_wrapper appstle_onetime_block\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-name-wrapper\\\"\u003e\\n {{oneTimePuchaseText}}\\n\u003cdiv class=\\\"appstle-cancel-text\\\"\u003e{{{noSubscriptionLabelTextV2}}}\u003c\/div\u003e\\n\u003c\/div\u003e\\n \u003cdiv class=\\\"appstle-selling-plan-detail-wrapper\\\"\u003e\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n{{#showOneTimeComparePrice}}\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\"\u003e\\n {{{oneTimePuchaseComparePriceAmount}}}\\n\u003c\/span\u003e\\n{{\/showOneTimeComparePrice}}\\n\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\"\u003e{{{oneTimePuchaseAmount}}}\u003c\/span\u003e\u003c\/div\u003e\\n\u003c\/div\u003e\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n{{\/showSubOptionBeforeOneTime}}\\n{{\/requires_selling_plan}}\\n {{#sellingPlanVariants}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \\n \u003cinput type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{\/isChecked}}\u003e\\n{{^prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-name-wrapper appstle-selling-plan-label-name\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle-cancel-text\\\"\u003e{{{cancelAnytimeLabelTextV2}}}\u003c\/div\u003e\\n\u003c\/div\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-detail-wrapper\\\"\u003e\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_formattedCompareAtPrice appstle_price_block\\\"\u003e{{{formattedCompareAtPrice}}}\u003c\/span\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{formattedPrice}}}
1723\u003c\/span\u003e\\n\\n\\n\u003c\/div\u003e \\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_formattext_block\\\"\u003e\u003c\/span\u003e\\n{{#showPricePerDay}}\u003cdiv class=\\\"appstle-perday-price\\\"\u003e{{{pricePerDay}}}\u003c\/div\u003e{{\/showPricePerDay}}\\n\u003cdiv class=\\\"appstle-frequency-description\\\"\u003e\\n{{{frequencyDescription}}} \\n\u003c\/div\u003e\\n \u003c\/div\u003e\\n \u003c\/label\u003e\\n{{#showFormattedDiscountText}}\\n \u003cspan class=\\\"appstle_sellingPlan_discountText\\\"\u003e{{{formattedDiscountText}}}\u003c\/span\u003e\\n{{\/showFormattedDiscountText}}\\n\u003cdiv class=\\\"appstle-sm-hide appstle-frequency-description\\\"\u003e{{{frequencyDescription}}} \u003c\/div\u003e \\n{{\/prepaidFlag}}\\n{{#prepaidFlag}}\\n\u003clabel for=\\\"{{sellingPlanId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-name-wrapper appstle-selling-plan-label-name\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle-cancel-text\\\"\u003e{{{cancelAnytimeLabelTextV2}}}\u003c\/div\u003e\\n\u003c\/div\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-detail-wrapper\\\"\u003e\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_formattedCompareAtPrice appstle_price_block\\\"\u003e{{{formattedCompareAtPrice}}}\u003c\/span\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{totalPrice}}}\u003c\/span\u003e\\n\\n\u003c\/div\u003e \\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block appstle_formattedPrepaidPerDeliveryPriceText\\\"\u003e{{{formattedPrepaidPerDeliveryPriceText}}}\u003c\/span\u003e\\n {{#showPricePerDay}}\u003cdiv class=\\\"appstle-perday-price\\\"\u003e{{{pricePerDay}}}\u003c\/div\u003e{{\/showPricePerDay}}\\n\u003cdiv class=\\\"\\\"\u003e\\n\u003cdiv class=\\\"appstle-frequency-description\\\"\u003e\\n{{{frequencyDescription}}} \\n\u003c\/div\u003e\\n\u003c\/div\u003e\\n\u003c\/div\u003e\\n\u003c\/label\u003e\\n{{#showFormattedDiscountText}}\\n \u003cspan class=\\\"appstle_sellingPlan_discountText\\\"\u003e{{{formattedDiscountText}}}\u003c\/span\u003e\\n{{\/showFormattedDiscountText}}\\n\u003cdiv class=\\\"appstle-sm-hide appstle-frequency-description\\\"\u003e{{{frequencyDescription}}} \u003c\/div\u003e \\n\\n{{\/prepaidFlag}}\\n \\n \u003c\/div\u003e\\n {{\/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n \u003cdiv class=\\\"appstle_input_wrapper appstle_onetime_block\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-name-wrapper\\\"\u003e\\n {{oneTimePuchaseText}}\\n\u003cdiv class=\\\"appstle-cancel-text\\\"\u003e{{{noSubscriptionLabelTextV2}}}\u003c\/div\u003e\\n\u003c\/div\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-detail-wrapper\\\"\u003e\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\"\u003e{{{oneTimePuchaseComparePriceAmount}}}\u003c\/span\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\"\u003e{{{oneTimePuchaseAmount}}}\u003c\/span\u003e\\n\\n\u003c\/div\u003e\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n{{\/showSubOptionBeforeOneTime}}\\n{{\/requires_selling_plan}}\\n \u003c\/div\u003e\\n{{#showStaticTooltip}}\\n\u003cdiv class=\\\"appstle_tooltip_wrapper_static\\\"\u003e {{{toolTipDescription}}}\u003c\/div\u003e\\n{{\/showStaticTooltip}}\\n{{#showTooltip}}\\n\u003cdiv class=\\\"appstle-tootltip-parent\\\"\u003e\\n \u003cdiv data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\"\u003e\\n \u003csvg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" class=\\\"tooltip_subscription_svg\\\"\u003e\\n \u003cpath\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8
1723635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n \u003e\u003c\/path\u003e\\n \u003c\/svg\u003e\\n \u003cspan class=\\\"appstle_tooltip_title\\\"\u003e{{{tooltipTitle}}}\u003c\/span\u003e\\n \u003c\/div\u003e\\n\u003cdiv class=\\\"appstle_tooltip\\\"\u003e\\n \u003cdiv class=\\\"appstle_tooltip_content\\\"\u003e\\n {{{toolTipDescription}}}\\n \u003c\/div\u003e\\n {{#showAppstleLink}}\\n \u003cdiv class=\\\"appstle_tooltip_appstle\\\"\u003e\\n \u003ca href=\\\"https:\/\/appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\"\u003e\\n POWERED BY APPSTLE \u003c\/a\u003e\\n \u003c\/div\u003e\\n {{\/showAppstleLink}}\\n \u003c\/div\u003e\\n\u003c\/div\u003e\\n{{\/showTooltip}}\\n\u003cstyle\u003e\\n.widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 1.5rem;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\nmargin-top: 10px;\\n}\\n\\n.widgetSellingPlanWrapper input {\\n display: none;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n border-radius: 10px;\\n border: 1px solid rgba(var(--color-foreground));\\n padding: 0.5rem;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\ncursor: pointer;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground)) !important;\\ncolor: rgba(var(--color-background)) !important;\\n}\\n.appstle_lowercase {\\n text-transform: lowercase;\\n}\\n\\n\\n.appstle_input_wrapper {\\n position: relative;\\n}\\n\\nspan.appstle_sellingPlan_discountText {\\n position: absolute;\\n background: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border-radius: 3px;\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n}\\n\\nspan.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n}\\ndiv.appstle_span_wrapper{\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n}\\n\u003c\/style\u003e\\n\u003cstyle\u003e\\n.widgetSellingPlanWrapper {\\n grid-template-columns: repeat(3, minmax(0, 1fr)) !important;\\n gap: 0.8rem !important;\\n}\\n\\n.appstle_sub_widget {\\n max-width: 100%!important;\\n} \\n\\n.widgetSellingPlanWrapper label {\\n height: auto !important;\\n border: none !important;\\n padding: 14px 5px !important;\\n display: flex !important;\\n justify-content: center !important;
1723\\n align-items: center !important;\\n flex-direction: column;\\n max-width: 100% !important;\\n width: unset !important;\\nline-height: 20px;\\n}\\n\\n.appstle_how_does_it_work {\\n line-height: 16px !important;\\n margin: 6px 0px;\\n color: rgba(var(--color-background));\\n}\\n@media screen and (max-width: 800px) {\\n .appstle_how_does_it_work {\\n text-align: right;\\n }\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_formattext_block {\\ntext-align: right !important;\\n display: block;\\n}\\n\\n.appstle_span_wrapper {\\n align-items: baseline;\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_discount_block.appstle_formattedPrepaidPerDeliveryPriceText {\\n display: block;\\n text-align: right;\\n}\\n\\n.appstle_input_wrapper {\\n display: flex;\\n height: 100% !important;\\nflex-direction: column;\\n}\\n\\n.appstle_sub_widget input[type=radio]+label:before {\\n content: \\\"\\\";\\n position: absolute;\\n inset: 0;\\n border-radius: 12px;\\n padding: 2px;\\n background: #121212;\\n -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);\\n -webkit-mask-composite: xor;\\n mask-composite: exclude;\\n pointer-events: none;\\n z-index: 0;\\n transition: all 0.2s;\\n}\\n\\n.appstle_sub_widget input[type=radio]:checked+label:before {\\n content: \\\"\\\";\\n position: absolute;\\n inset: 0;\\n border-radius: 12px;\\n \/\/ padding: 4px;\\n\/\/ background: linear-gradient(to right,#Fef58f,#7A3900);\\n\/\/background: #E53D29;\\n border: 2px transparent;\\n -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);\\n -webkit-mask-composite: xor;\\n mask-composite: exclude;\\n pointer-events: none;\\n z-index: 0;\\n}\\n\\nspan.appstle_sellingPlan_discountText {\\n background: rgba(var(--color-foreground));\\n border-radius: 100px !important;\\n padding: 0px 8px !important;\\n height: 20px;\\n display: flex !important;\\n justify-content: center;\\n align-items: center;\\n letter-spacing: 1px;\\nz-index: 2;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\ntext-decoration: line-through;\\n}\\n\\n\\nspan.appstle-popular {\\n position: absolute;\\n top: -40px;\\n background: black;\\n color: rgba(var(--color-background));\\n z-index: -3;\\n border-radius: 10px;\\n padding: 0px 10px 29px 10px;\\nleft: 0;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n border-radius: 14px;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n overflow: hidden;\\n}\\n\\n\\n.appstle-perday-price {\\ndisplay: none;\\n}\\n\\n .widgetSellingPlanWrapper {\\n grid-template-columns: repeat(1, minmax(0, 1fr)) !important;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n flex-direction: row;\\n justify-content: space-between !important;\\n align-items: flex-start !important;\\nwidth: 100% !important;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n text-align: left;\\n padding: 16px !important;\\nflex-basis: unset;\\n}\\n\\n.appstle_span_wrapper {\\n justify-content: flex-end !important;\\n}\\n\\n.appstle-perday-price {\\n text-align: right;\\n}\\n\\n.widgetSellingPlanWrapper {\\n gap: 15px !important;\\n}\\n\\nspan.appstle-popular {\\n width: calc(100% - 20px);\\n text-align: center;\\n letter-spacing: 2px;\\n top: -30px;\\nleft: 0;\\n}\\n\\nspan.appstle_sellingPlan_discountText { \\nleft: unset !important;\\n right: 15px;\\n transform: translate(0, -50%) !important;\\n}\\n.appstle-cancel-text {\\n text-align: left;\\n}\\n\\n.appstle_input_wrapper label {\\n text-align: left !important;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n width: 100% !important;\\n margin: 0 !important;\\n}\\n.appstle_input_wrapper {\\n width: 100% !important;\\nflex-direction: row;\\n}\\n.widgetSellingPlanWrapper input:checked+label+span {\\n background: rgba(var(--color-background)) !important;\\n color:rgba(var(--color-foreground)) !important;\\n border: 2px solid rgba(var(--color-foreground));\\n}\\n.appstle_onetime_block .appstle_span_wrapper {\\n grid-column: 2;\\n}\\n.appstle-frequency-description {\\n text-align: right !important;\\n}\\n\\n\\n.appstle-sm-hide {\\n display: none;\\n}\\n\\n@media screen and (min-width: 800px) {\\n.appstle-lg-show {\\n display: block;\\n}\\n.appstle-lg-hide {\\n display: none;\\n}\\n\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_formattedCompareAtPrice.appstle_price_block {\\n text-decoration: line-through;\\n display: block;\\n margin-right: 3px;\\n color: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label .appstle_sellingPlan_formattedCompareAtPrice {\\ncolor:rgba(var(--color-background));\\n} \\n\\n.appstle_span_wrapper \u003e * {\\nflex-shrink: 0\\n}\\n.appstle-selling-plan-detail-wrapper{\\ncolor: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label .appstle-selling-plan-detail-wrapper{\\ncolor: rgba(var(--color-background)) !important;\\n}\\n\\n\u003c\/style\u003e\\n\u003c\/div\u003e{% endraw %}\",\"WIDGET_TYPE_7\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_8\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_2\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_3\":\"{% raw %}
1723\u003cdiv id=\\\"appstle-widget-template\\\"\u003e\\n \u003cdiv class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle_widget_title\\\"\u003e{{{purchaseOptionsText}}}\u003c\/div\u003e\\n \u003cdiv class=\\\"widgetSellingPlanWrapper appstle_subscription_wrapper\\\"\u003e\\n{{#showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n \u003cdiv class=\\\"appstle_input_wrapper appstle_subscription_option\\\"\u003e\\n \u003cinput type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{\/isChecked}}\u003e\\n {{^prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{formattedPrice}}}\u003c\/span\u003e\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"\u003e\u0026nbsp;({{{secondFormattedDiscountText}}})\u003c\/span\u003e {{\/isFixedPrice}}{{\/showSecondFormattedDiscountText}}\\n\u003c\/div\u003e\\n \\n \u003c\/label\u003e\\n {{\/prepaidFlag}}\\n {{#prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{totalPrice}}}\u003c\/span\u003e\\n {{#showSecondFormattedDiscountText}}{{^isFixedPrice}}\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"\u003e\u0026nbsp;({{{secondFormattedDiscountText}}})\u003c\/span\u003e{{\/isFixedPrice}}{{\/showSecondFormattedDiscountText}}\\n {{#formattedPrepaidPerDeliveryPriceText}}\u003cspan class=\\\"appstle_formattedPrepaidPerDeliveryPriceText\\\"\u003e\u0026nbsp;({{{formattedPrepaidPerDeliveryPriceText}}})\u003c\/span\u003e{{\/formattedPrepaidPerDeliveryPriceText}}\\n \u003c\/div\u003e\\n \\n \u003c\/label\u003e\\n {{\/prepaidFlag}}\\n \\n \u003c\/div\u003e\\n {{\/sellingPlanVariants}}\\n{{\/showSubOptionBeforeOneTime}}\\n {{^requires_selling_plan}}\\n \u003cdiv class=\\\"appstle_input_wrapper appstle_onetime\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"{{sellingPlanId}}\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" class=\\\"appstle_widget_three\\\"\u003e\\n {{oneTimePuchaseText}}\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\"\u003e\\n{{#showOneTimeComparePrice}}\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\"\u003e\\n {{{oneTimePuchaseComparePriceAmount}}}\\n\u003c\/span\u003e\\n{{\/showOneTimeComparePrice}}\\n{{{oneTimePuchaseAmount}}}\u003c\/span\u003e\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n {{\/requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n \u003cdiv class=\\\"appstle_input_wrapper appstle_subscription_option\\\"\u003e\\n \u003cinput type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{\/isChecked}}\u003e\\n {{^prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{formattedPrice}}}\u003c\/span\u003e\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"\u003e\u0026nbsp;({{{secondFormattedDiscountText}}})\u003c\/span\u003e {{\/isFixedPrice}}{{\/showSecondFormattedDiscountText}}\\n\u003c\/div\u003e\\n \\n \u003c\/label\u003e\\n {{\/prepaidFlag}}\\n {{#prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{totalPrice}}}\u003c\/span\u003e\\n {{#showSecondFormattedDiscountText}}{{^isFixedPrice}}\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"\u003e\u0026nbsp;({{{secondFormattedDiscountText}}})\u003c\/span\u003e{{\/isFixedPrice}}{{\/showSecondFormattedDiscountText}}\\n {{#formattedPrepaidPerDeliveryPriceText}}\u003cspan class=\\\"appstle_formattedPrepaidPerDeliveryPriceText\\\"\u003e\u0026nbsp;({{{formattedPrepaidPerDeliveryPriceText}}})\u003c\/span\u003e{{\/formattedPrepaidPerDeliveryPriceText}}\\n \u003c\/div\u003e\\n \\n \u003c\/label\u003e\\n {{\/prepaidFlag}}\\n \\n \u003c\/div\u003e\\n {{\/sellingPlanVariants}}\\n{{\/showSubOptionBeforeOneTime}}\\n \u003c\/div\u003e\\n{{#showStaticTooltip}}\\n\u003cdiv class=\\\"appstle_tooltip_wrapper_static\\\"\u003e{{{toolTipDescription}}}\u003c\/div\u003e\\n{{\/showStaticTooltip}}\\n{{#showTooltip}}\\n \u003cdiv data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\"\u003e\\n \u003csvg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" class=\\\"tooltip_subscription_svg\\\"\u003e\\n \u003cpath\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8
1723635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n \u003e\u003c\/path\u003e\\n \u003c\/svg\u003e\\n \u003cspan class=\\\"appstle_tooltip_title\\\"\u003e{{{tooltipTitle}}}\u003c\/span\u003e\\n \u003c\/div\u003e\\n\u003cdiv class=\\\"appstle_tooltip appstle_tooltip_hover\\\"\u003e\\n \u003cdiv class=\\\"appstle_tooltip_content\\\"\u003e\\n {{{toolTipDescription}}}\\n \u003c\/div\u003e\\n {{#showAppstleLink}}\\n \u003cdiv class=\\\"appstle_tooltip_appstle\\\"\u003e\\n \u003ca href=\\\"https:\/\/appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\"\u003e\\n POWERED BY APPSTLE\\n \u003c\/a\u003e\\n \u003c\/div\u003e\\n{{\/showAppstleLink}}\\n \u003c\/div\u003e\\n{{\/showTooltip}}\\n\u003cstyle\u003e.widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 0.5rem;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\n}\\n.widgetSellingPlanWrapper input {\\n display: none;\\n}\\n.widgetSellingPlanWrapper label {\\n border-radius: 8px;\\n border: 1px solid rgba(var(--color-foreground));\\n padding: 0.5rem;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\ncursor: pointer;\\ncolor: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border: 1px solid rgba(var(--color-background)) !important;\\n}\\n.appstle_lowercase {\\n text-transform: lowercase;\\n}\\n.appstle_input_wrapper {\\n position: relative;\\n}\\nspan.appstle_sellingPlan_discountText {\\n position: absolute;\\n background-color: color: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border-radius: 3px;\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n}\\nspan.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price {\\n color: rgba(var(--color-foreground));\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\n color: rgba(var(--color-foreground));\\n text-decoration: line-through;\\n padding: 0 3px;\\n}\\n#appstle_subscription_widget0 .appstle_tooltip_wrapper {\\n margin-top: 8px;\\n margin-bottom: 16px;\\n}\\n.appstle_subscription_wrapper {\\n border: none !important;\\n}\\nlabel.appstle_widget_three {\\n display: flex;\\n flex-direction: column;\\n}\\n.widgetSellingPlanWrapper input:checked+label span {\\n color: rgba(var(--color-background)) !important;\\n}\\n.appstle_sub_widget .appstle_subscription_wrapper{\\n border-radius:unset !important;\\n}\\nspan.appstle_second_price_block:empty {\\n display: none !important;\\n}\\n\u003c\/style\u003e\\n\u003c\/div\u003e{% endraw %}\",\"WIDGET_TYPE_4\":\"{% raw %}
1723\u003cdiv id=\\\"appstle-widget-template\\\"\u003e\\n \u003cdiv class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle_widget_title\\\"\u003e{{{purchaseOptionsText}}}\u003c\/div\u003e\\n \u003cdiv class=\\\"widgetSellingPlanWrapper\\\"\u003e\\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n {{oneTimePuchaseText}}\\n{{#showOneTimeComparePrice}}\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\"\u003e\\n {{{oneTimePuchaseComparePriceAmount}}}\\n\u003c\/span\u003e\\n{{\/showOneTimeComparePrice}}\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\"\u003e{{{oneTimePuchaseAmount}}}\/{{{oneTimeFrequencyText}}}\u003c\/span\u003e\\n \u003c\/label\u003e\\n \u003c\/div\u003e\\n{{\/showSubOptionBeforeOneTime}}\\n{{\/requires_selling_plan}}\\n {{#sellingPlanVariants}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_sellingPlan_discountText\\\"\u003e{{{formattedDiscountText}}}\u003c\/span\u003e\\n \u003cinput type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{\/isChecked}}\u003e\\n{{^prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{formattedPrice}}}\u003cspan\u003e\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_formattext_block\\\"\u003e\/{{{sellingPlanFrequencyText}}}{{#isFrequencySubsequent}}{{\/isFrequencySubsequent}}\u003c\/span\u003e\\n\u003c\/div\u003e\\n \u003c\/label\u003e\\n{{\/prepaidFlag}}\\n{{#prepaidFlag}}\\n\u003clabel for=\\\"{{sellingPlanId}}\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{totalPrice}}}\u003c\/span\u003e\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block appstle_formattedPrepaidPerDeliveryPriceText\\\"\u003e\u0026nbsp;{{{formattedPrepaidPerDeliveryPriceText}}}\u003c\/span\u003e\\n\u003c\/div\u003e\\n\u003c\/label\u003e\\n{{\/prepaidFlag}}\\n \u003c\/div\u003e\\n {{\/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n {{oneTimePuchaseText}}\\n{{#showOneTimeComparePrice}}\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\"\u003e\\n {{{oneTimePuchaseComparePriceAmount}}}\\n\u003c\/span\u003e\\n{{\/showOneTimeComparePrice}}\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\"\u003e{{{oneTimePuchaseAmount}}}\/{{{oneTimeFrequencyText}}}\u003c\/span\u003e\\n \u003c\/label\u003e\\n \u003c\/div\u003e\\n{{\/showSubOptionBeforeOneTime}}\\n{{\/requires_selling_plan}}\\n \u003c\/div\u003e\\n{{#showStaticTooltip}}\\n\u003cdiv class=\\\"appstle_tooltip_wrapper_static\\\"\u003e {{{toolTipDescription}}}\u003c\/div\u003e\\n{{\/showStaticTooltip}}\\n{{#showTooltip}}\\n \u003cdiv data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\"\u003e\\n \u003csvg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" class=\\\"tooltip_subscription_svg\\\"\u003e\\n \u003cpath\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8
1723635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n \u003e\u003c\/path\u003e\\n \u003c\/svg\u003e\\n \u003cspan class=\\\"appstle_tooltip_title\\\"\u003e{{{tooltipTitle}}}\u003c\/span\u003e\\n \u003c\/div\u003e\\n \u003cdiv class=\\\"appstle_tooltip\\\"\u003e\\n \u003cdiv class=\\\"appstle_tooltip_content\\\"\u003e\\n {{{toolTipDescription}}}\\n \u003c\/div\u003e\\n{{#showAppstleLink}}\\n \u003cdiv class=\\\"appstle_tooltip_appstle\\\"\u003e\\n \u003ca href=\\\"https:\/\/appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\"\u003e\\n POWERED BY APPSTLE\\n \u003c\/a\u003e\\n \u003c\/div\u003e\\n{{\/showAppstleLink}}\\n \u003c\/div\u003e\\n{{\/showTooltip}}\\n\u003cstyle\u003e\\n.widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 16px;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\nmargin-top: 10px\\n}\\n.widgetSellingPlanWrapper input {\\n display: none;\\n}\\n.widgetSellingPlanWrapper label {\\n border-radius: 10px;\\n border: 1px solid rgba(var(--color-foreground, 0, 0, 0));\\n padding: 0.5rem;\\n display: flex !important;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\ncursor: pointer;\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground, 0, 0, 0));\\n}\\n.appstle_lowercase {\\n text-transform: lowercase;\\n}\\n.appstle_input_wrapper {\\n position: relative;\\n}\\nspan.appstle_sellingPlan_discountText {\\n position: absolute;\\n font-size: 1.2rem;\\n background-color: rgba(var(--color-foreground, 0, 0, 0));\\n color: rgba(var(--color-background, 255, 255, 255));\\n border-radius: 3px;\\n border: 2px solid rgba(var(--color-background, 255, 255, 255));\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n}\\nspan.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\ntext-decoration: line-through;\\n}\\n.appstle_tooltip_wrapper {\\n margin-bottom:10px;\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground, 0, 0, 0));\\n color: rgba(var(--color-background, 255, 255, 255));\\n border: 2px solid rgba(var(--color-background, 255, 255, 255)) !important;\\n}\\n\u003c\/style\u003e\\n\u003c\/div\u003e{% endraw %}\",\"WIDGET_TYPE_5\":\"{% raw %}
1723\u003cdiv id=\\\"appstle-widget-template\\\"\u003e\\n \u003cdiv class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle_widget_title\\\"\u003e{{{purchaseOptionsText}}}\u003c\/div\u003e\\n \u003cdiv class=\\\"widgetSellingPlanWrapper\\\"\u003e\\n{{^showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\/\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n {{{oneTimePuchaseText}}}\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n{{\/requires_selling_plan}}\\n{{\/showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cinput type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{\/isChecked}} \/\u003e\\n \u003clabel for=\\\"{{sellingPlanId}}\\\"\u003e\\n {{{name}}}\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n {{\/sellingPlanVariants}}\\n{{#showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\/\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n {{{oneTimePuchaseText}}}\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n{{\/requires_selling_plan}}\\n{{\/showSubOptionBeforeOneTime}}\\n \u003c\/div\u003e\\n{{#showStaticTooltip}}\\n\u003cdiv class=\\\"appstle_tooltip_wrapper_static\\\"\u003e{{{toolTipDescription}}}\u003c\/div\u003e\\n{{\/showStaticTooltip}}\\n{{#showTooltip}}\\n \u003cdiv data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\"\u003e\\n \u003csvg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" class=\\\"tooltip_subscription_svg\\\"\u003e\\n \u003cpath\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n \u003e\u003c\/path\u003e\\n \u003c\/svg\u003e\\n \u003cspan class=\\\"appstle_tooltip_title\\\"\u003e{{{tooltipTitle}}}\u003c\/span\u003e\\n \u003c\/div\u003e\\n\u003cdiv class=\\\"appstle_tooltip appstle_tooltip_hover\\\"\u003e\\n \u003cdiv class=\\\"appstle_tooltip_content\\\"\u003e\\n {{{toolTipDescription}}}\\n \u003c\/div\u003e\\n {{#showAppstleLink}}\\n \u003cdiv class=\\\"appstle_tooltip_appstle\\\"\u003e\\n \u003ca href=\\\"https:\/\/appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\"\u003e\\n POWERED BY APPSTLE\\n \u003c\/a\u003e\\n \u003c\/div\u003e\\n {{\/showAppstleLink}}\\n \u003c\/div\u003e\\n{{\/showTooltip}}\\n \u003cstyle\u003e\\n .widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 8px;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\n margin-top: 10px;\\n }\\n \\n .widgetSellingPlanWrapper input {\\n display: none;\\n }\\n \\n .widgetSellingPlanWrapper label {\\n border-radius: 4px;\\n border: 1px solid rgba(var(--color-foreground));\\n padding: 0.5rem;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\n \\t color: rgba(var(--color-foreground));\\ncursor: pointer;\\n }\\n \\n .widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground));\\n \\t color: rgba(var(--color-background));\\n }\\n .appstle_lowercase {\\n text-transform: lowercase;\\n }\\n \\n \\n .appstle_input_wrapper {\\n position: relative;\\n }\\n \\n span.appstle_sellingPlan_discountText {\\n position: absolute;\\n background-color: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border-radius: 3px;\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n }\\n span.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n }\\n \u003c\/style\u003e\\n \u003c\/div\u003e{% endraw %}\"}", 1724 1725 1726 "bundle": {}, 1727 1728 1729 "labels": appstleStringSetting("{\\\"appstle.subscription.wg.noSubscriptionLabelTextV2\\\":\\\"No Subscription\\\",\\\"appstle.subscription.wg.cancelAnytimeLabelTextV2\\\":\\\"Cancel Anytime\\\",\\\"appstle.subscription.wg.addToShipmentErrorTextV2\\\":\\\"Error\\\",\\\"appstle.subscription.wg.weeksFrequencyTextV2\\\":\\\"Weeks\\\",\\\"appstle.subscription.wg.weeklyLabelTextV2\\\":\\\"Weekly\\\",\\\"appstle.subscription.wg.displayAddToExistingSubscriptionButtonForNotLoggedInV2\\\":\\\"false\\\",\\\"appstle.subscription.wg.addToShipmentProcessingV2\\\":\\\"Processing...\\\",\\\"appstle.subscription.wg.showWidgetStaticV2\\\":\\\"false\\\",\\\"appstle.subscription.wg.deliveryEveryFrequencyTextV2\\\":\\\"Delivery Every\\\",\\\"appstle.subscription.wg.subscribeAndSaveInitalV2\\\":\\\"Subscribe \u0026 save\\\",\\\"appstle.subscription.wg.allowRefreshOnCartPageV2\\\":\\\"false\\\",\\\"appstle.subscription.wg.cartHiddenAttributesSelectorV2\\\":\\\"\\\",\\\"appstle.subscription.wg.prepaidLabelTextV2\\\":\\\"Prepaid\\\",\\\"appstle.subscription.wg.daysFrequencyTextV2\\\":\\\"Days\\\",\\\"appstle.subscription.wg.monthlyLabelTextV2\\\":\\\"Monthly\\\",\\\"appstle.subscription.wg.subscribeAndSaveSuccessV2\\\":\\\"Subscribe success\\\",\\\"appstle.subscription.wg.addToShipmentSuccessTextV2\\\":\\\"Success\\\",\\\"appstle.subscription.wg.monthFrequencyTextV2\\\":\\\"Month\\\",\\\"appstle.subscription.wg.addToShipmentButtonTextV2\\\":\\\"Add to Shipment\\\",\\\"appstle.subscription.wg.displayAddToExistingSubscriptionButtonToSubscribersOnlyV2\\\":\\\"false\\\",\\\"appstle.subscription.wg.yearsFrequencyTextV2\\\":\\\"Years\\\",\\\"appstle.subscription.wg.onetimeDescriptionTextV2\\\":\\\"\\\",\\\"appstle.subscription.wg.addToShipmentTooltipTextV2\\\":\\\"Please avoid double delivery charges! Login to add this product to an upcoming delivery.\\\",\\\"appstle.subscription.wg.weekFrequencyTextV2\\\":\\\"Week\\\",\\\"appstle.subscription.wg.oneTimePurchaseTextV2\\\":\\\"One Time Purchase\\\",\\\"appstle.subscription.wg.loyaltyPerkDescriptionTextV2\\\":\\\"{{#isDiscountTypeFreeProduct}}\u003cdiv style='display: flex;'\u003e\u003cdiv style='height: 60px; width: 60px; flex-shrink: 0; margin-right: 10px;'\u003e\u003cimg style='width: 100%' src={{{featured_image}}}\u003e\u003c\\\/img\u003e\u003c\\\/div\u003e\u003cdiv\u003eAfter {{{billingCycleBlock}}} orders,\u003cspan style='color: #ffc000;font-weight: 700;';\u003e get a FREE {{freeProductName}} \u003c\\\/span\u003e\u003c\\\/div\u003e\u003cdiv\u003e{{\\\/isDiscountTypeFreeProduct}}{{#isDiscountTypePercentage}}After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan style='color: #ffc000;font-weight: 700;';\u003e{{{discount}}}% OFF your entire order\u003c\\\/span\u003e\u003c\\\/span\u003e.{{\\\/isDiscountTypePercentage}}{{#isDiscountTypeShipping}}After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan style='color: #ffc000;font-weight: 700;';\u003eshipping at {{{formatDiscountedPrice}}}\u003c\\\/span\u003e\u003c\\\/span\u003e.{{\\\/isDiscountTypeShipping}}{{#isDiscountTypeFixed}}After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan style='color: #ffc000;font-weight: 700;';\u003e{{{formatDiscountedPrice}}} OFF your entire order\u003c\\\/span\u003e\u003c\\\/span\u003e.{{\\\/isDiscountTypeFixed}}\\\",\\\"appstle.subscription.wg.unsubscribeFrequencyTextV2\\\":\\\"unsubscribe\\\",\\\"appstle.subscription.wg.bundleDiscountTextV2\\\":\\\"bundle discount extra: {{bundleDiscount}} off\\\",\\\"appstle.subscription.wg.widgetVariantChangeListenerSelectorV2\\\":\\\"\\\",\\\"appstle.subscription.wg.subscriptionDescriptionTextV2\\\":\\\"\\\",\\\"appstle.subscription.wg.oneTimeFrequencyTextV2\\\":\\\"One Time\\\",\\\"appstle.subscription.wg.dayFrequencyTextV2\\\":\\\"day\\\",\\\"appstle.subscription.wg.allowFulfilmentCountViaPropertiesV2\\\":\\\"false\\\",\\\"appstle.subscription.wg.monthsFrequencyTextV2\\\":\\\"Months\\\",\\\"appstle.subscription.wg.prepaidSaveBadgeTextV2\\\":\\\"SAVE {{selectedDiscountPercentage}}\\\",\\\"appstle.subscription.wg.showPrepidPerDeliveryProductPriceV2\\\":\\\"false\\\",\\\"appstle.subscription.wg.manageSubscriptionButtonTextV2\\\":\\\"Manage Subscription\\\",\\\"appstle.subscription.wg.offFrequencyTextV2\\\":\\\"Off\\\",\\\"appstle.subscription.wg.yearFrequencyTextV2\\\":\\\"Year\\\",\\\"appstle.subscription.wg.prepayLabelTextV2\\\":\\\"Prepay\\\",\\\"appstle.subscription.wg.productPageUnitPriceSelectorV2\\\":\\\"\\\",\\\"appstle.subscription.wg.frequencyCombinedWidgetTextV2\\\":\\\"Frequency\\\",\\\"appstle.subscription.wg.showNewLoyaltyUI\\\":\\\"false\\\",\\\"appstle.subscription.wg.widgetPriceChangeListenerSelectorV2\\\":\\\"\\\",\\\"appstle.subscription.wg.sellingPlanTitleTextNonPrepaid\\\":\\\"{{sellingPlanName}}\\\",\\\"appstle.subscription.wg.selectDeliverOptionV2\\\":\\\"select deliver option\\\",\\\"appstle.subscription.wg.yearlyLabelTextV2\\\":\\\"Yearly\\\"}"), 1730 1731 "css": { 1732 "appstle_subscription_widget": { 1733 "margin-top": appstleStringSetting("") , 1734 "margin-bottom": appstleStringSetting(""), 1735 }, 1736 1737 "appstle_subscription_wrapper": { 1738 "border-width": appstleStringSetting(""), 1739 "border-color": appstleStringSetting(""), 1740 }, 1741 1742 "appstle_circle": { 1743 "border-color": appstleStringSetting(""), 1744 }, 1745 1746 "appstle_dot": { 1747 "background-color": appstleStringSetting(""), 1748 }, 1749 1750 "appstle_select": { 1751 "padding-top": appstleStringSetting(""), 1752 "padding-bottom": appstleStringSetting(""), 1753 "padding-left": appstleStringSetting(""), 1754 "padding-right": appstleStringSetting(""), 1755 "border-width": appstleStringSetting(""), 1756 "border-style": appstleStringSetting(""), 1757 "border-color": appstleStringSetting(""), 1758 "border-radius": appstleStringSetting(""), 1759 }, 1760 1761 "tooltip_subscription_svg": { 1762 "fill": appstleStringSetting(""), 1763 }, 1764 1765 "appstle_tooltip": { 1766 "color": appstleStringSetting(""), 1767 "background-color": appstleStringSetting(""), 1768 }, 1769 1770 "appstle_tooltip_border_top_color": { 1771 "border-top-color": appstleStringSetting(""), 1772 }, 1773 1774 "appstle_subscription_final_price": { 1775 "color": appstleStringSetting(""), 1776 }, 1777 "appstle_widget_text_color": { 1778 "color": appstleStringSetting(""), 1779 }, 1780 "appstle_selected_background": { 1781 "background": "transparent", 1782 }, 1783 "elementCSS": appstleStringSetting("[\\\".appstle_subscription_wrapper{ font-size: 16px !important;}\\\"]"), 1784 "customCSS": appstleStringSetting(""), 1785 "customerPortalCss": appstleStringSetting(""), 1786 "externalStyleTag": appstleStringSetting(""), 1787 "themeCss": appstleStringSetting(""), 1788 } 1789 }; 1790 1791 1792 window.AppstleSubscription = window.AppstleSubscription || JSON.parse(JSON.stringify(RS)); 1793 1794 sessionStorage['appstleSubscriptionConfig'] = JSON.stringify(RS.Config); 1795 1796 1797 try { 1798 1799 window.appstle_build_a_box_labels = {"perDeliveryLabelTextV2":"\\\/delivery","variantNotAvailable":"Not Available","saveDiscountText":"{{discount}}","bundleSummaryTextV2":"Your bundle is empty. Please add products to your bundles to see bundle summary here.","freeProductLabelTextV2":"Free","bundleDescriptionTextV2":"Our bundle of all bundles, The Ultimate Superfood Bundle delivers exactly what it promises - a complete superfood solution. With 7 superfood blends each created to empower every aspect of your health and wellbeing - from immunity and gut health to energy \u0026 better focus.","productDetails":"Product Details","failedToAddMsgText":"Your cart can't have more than {{maxProduct}}
1799 products","cart":"Cart","reviewBundleTextV2":"Review Bundle","addButtonText":"Add","minimumQuantityToCheckoutV2":"Minimum {{quantity}} quantity to checkout","buildBoxErrormsgV2":"Build a Box token is Invalid, Please reach out to support.","continueShopping":"Continue Shopping","failedToAddTitleText":"Failed to add","spendAmountGetDiscount":"Spend {{amount}} get {{percent}}% discount","maxiumQuantityToCheckoutV2":"Maxium {{quantity}} quantity to checkout","contentsOnModalTextV2":"Contents","nextStepButtonTextV2":"Next Step","choosePlanLifeStyleTextV2":"Choose a plan to match your lifestyle","selectMinimumProductButtonText":"Please select {{minProduct}} minimum product","subtotal":"Subtotal","buyQuantityGetDiscount":"Buy {{quantity}} get {{percent}}% discount","loyaltyTablePercentageTextV2":"After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class=''\u003e{{billingCycle}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan class='appstle-loyalty-discount-amount'\u003e{{discount}}% off\u003c\\\/span\u003e\u003c\\\/span\u003e.","loyaltyTablePriceTextV2":"After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class=''\u003e{{billingCycle}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget at \u003cspan class='appstle-loyalty-discount-amount'\u003e{{price}}\u003c\\\/span\u003e\u003c\\\/span\u003e.","myDeliveryText":"My {{selectedSellingPlanDisplayName}} delivery","removeItem":"Remove","productsToProceedText":"Please select products to proceed","previousStepButtonTextV2":"Previous step","loadMoreTextV2":"Load more","selectedFrequencyLabelText":"Selected Frequency","addToCartButtonTextV2":"Add To Cart","basePriceFormatFieldV2":"{{unitPrice}}\\\/{{quantityUnit}}","title":"Build-A-Box","productPriceFormatField":"{{price}}","reviewOrdeDescriptionTextV2":"Check your items and select your required frequency plan","quantityLabelV2":"Quantity","minimumOrderAmountLabelTextV2":"Minimum order amount {{minOrderAmount}}.","subscriptionNotAvailableButtonV2":"Subscription not available","shoppingCart":"Shopping Cart","checkoutMessage":"Shipping and taxes calculated at checkout.","discountPopupCheckoutMessageV2":"Discount","selectedButtonTextV2":"Selected","congratsMessageText":null,"okBtnText":"Ok","tieredDiscount":"Tiered Discount","choosePlanLifeStyleDescriptionTextV2":"Cutoff each week to amend your meals is midnight on Thursday's. (Delivery Schedule is as follows: Gold Coast - Mondays | Brisbane \u0026 Sunshine Coast - Wednesdays)","orderNoteLabelTextV2":"Order Note","minimumToCheckoutV2":"Minimum {{quantity}} to checkout","loyaltyTableFixedTextV2":"After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class=''\u003e{{billingCycle}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan class='appstle-loyalty-discount-amount'\u003e{{price}} off\u003c\\\/span\u003e\u003c\\\/span\u003e.","editQuantity":"Edit Quantity","chooseProductsTextV2":"Choose Products","loyaltyTableFreeProductTextV2":"After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class=''\u003e{{billingCycle}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan class='appstle-loyalty-discount-amount'\u003eFREE PRODUCT ({{productName}})\u003c\\\/span\u003e\u003c\\\/span\u003e.","loyaltyTableShippingTextV2":"After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class=''\u003e{{billingCycle}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan class='appstle-loyalty-discount-amount'\u003eshipping at {{price}}\u003c\\\/span\u003e\u003c\\\/span\u003e.","spentText":null,"quantityLabel":null,"addButtonV2":"Add","loyaltyTableFreeTrailTextV2":"Get \u003cspan class='appstle-loyalty-free-trial-discount'\u003e{{discount}} \u003cspan class='appstle-loyalty-free-trial-discount-count' style='text-transform: lowercase;'\u003e{{discountType}} \u003c\\\/span\u003e\u003c\\\/span\u003e \u003cspan class='appstle-loyalty-free-trial-text'\u003efree trial.\u003c\\\/span\u003e","bundleCheckoutTextV2":"Checkout","reviewOrderTextV2":"Review Order","goBackButtonText":"Go Back","selectPlanTextV2":"Select Plan","viewProduct":"View Product","oneTimePurchaseTextV2":"One Time Purchase","bundleOnModalTextV2":"Bundle","proceedToCheckoutButtonText":"Proceed to checkout","pleaseWaitLabelTextV2":"Please wait...","typeToSearchPlaceholderTextV2":"Type to search","selectedProgressLabelTextV2":"Selected","outOfStockTextV2":"Out of stock"}; 1800 1801 } catch (e) { 1802 console.error("Error parsing build a box labels:", e); 1803 } 1804 1805 1806 var _RSConfig = _RSConfig || {}; 1807 1808 _RSConfig.shop = "radix-nutrition.myshopify.com"; 1809 1810 1811 1812 1813 1814 1815 _RSConfig.shopMoneyFormat = "\u0026lt;span class=money\u0026gt; ${{amount}} \u0026lt;\/span\u0026gt;"; 1816 _RSConfig.shopMoneyFormatWithCurrencyFormat = "\u0026lt;span class=money\u0026gt; ${{amount}} NZD \u0026lt;\/span\u0026gt;"; 1817 1818 1819 1820 1821 } 1822 1823 1824 1825 _RSConfig.assetRev = "d1cd97a4415bdf2a27a52f34e9b798eb"; 1826 1827 1828</script>
1828 1829 1830<style id="appstle-payment-button-override"> 1831 .shopify-payment-button {display: none;} 1832</style>
1833<script> 1834 let appstleCount = 0 1835 function isAppstleJSInitiated() { 1836 appstleCount++; 1837 if (window?.["RSConfig"] || appstleCount > 20) { 1838 let appstleStyleElement = document.querySelector('#appstle-payment-button-override'); 1839 if (appstleStyleElement) { 1840 appstleStyleElement.remove(); 1841 } 1842 } else { 1843 setTimeout(isAppstleJSInitiated, 500) 1844 } 1845 } 1846 isAppstleJSInitiated(); 1847</script>
1847 1848
1849<script> 1850 var appstleExternalStyle = document.createElement('style'); 1851 appstleExternalStyle.textContent = appstleStringSetting(""); 1852 document.body.appendChild(appstleExternalStyle); 1853</script>
vendor: 1 bytes, line 1853
1853
1854<script> 1855 function pollAppstleInit() { 1856 if (window?.appstleInit) { 1857 window?.appstleInit() 1858 } else { 1859 setTimeout(pollAppstleInit, 30); 1860 } 1861 } 1862</script>
1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880
1880<script src="https://subscription-admin.appstle.com/assets/js/appstle-subscription.min.js?shop=radix-nutrition.myshopify.com&v=1788072034987" defer ></script>
1880 1881 1882 1883 1884 1885 1886 1887 1888 1889</div><div id="shopify-block-AQm9TRHFSWXVWZkxWc__15316669992541710076" class="shopify-block shopify-app-block">
1889<script defer src="https://widget.reviews.io/rating-snippet/dist.js"></script>
1889 1890<link rel="stylesheet" href="https://widget.reviews.io/rating-snippet/dist.css" />
1891<script> 1892 (function () { 1893 function initRatingSnippet() { 1894 var hasStore = typeof reviewsIoStore !== 'undefined' && !!reviewsIoStore; 1895 if (!hasStore) return; 1896 1897 if (typeof ratingSnippet !== 'function') return; 1898 1899 // Ensure the target element exists (rating-output block may render after this app embed). 1900 if (!document.querySelector('.ruk_rating_snippet')) return; 1901 1902 var storeOverride = window.__REVIEWSIO_RATING_SNIPPET_STORE_OVERRIDE__; 1903 var storeForSnippet = storeOverride || reviewsIoStore; 1904 1905 ratingSnippet("ruk_rating_snippet",{ 1906 store: storeForSnippet, 1907 color: '#8d9b6d', 1908 1909 textClr: '#333333', 1910 1911 linebreak: false, 1912 1913 usePolaris: true, 1914 1915 1916 1917 1918 1919 text: 'Reviews', 1920 1921 lang: (typeof reviewsIoLang !== 'undefined' && reviewsIoLang) ? reviewsIoLang : 'en', 1922 mode: 'default', 1923 showEmptyStars: false, 1924 1925 enableSyndication: (typeof reviewsIoEnableSyndication !== 'undefined') ? reviewsIoEnableSyndication : false 1926 }); 1927 1928 const reviewsIoModal = document.getElementById('reviews_fade'); 1929 if (reviewsIoModal) { 1930 reviewsIoModal.classList.add('rio-withoutBranding'); 1931 } 1932 } 1933 1934 // Retry to survive slow network/script timing. 1935 var attempts = 0; 1936 var MAX_RATING_SNIPPET_INIT_ATTEMPTS = 20; 1937 var MAX_TIMEOUT_RETRY = 200; 1938 1939 function tick() { 1940 attempts += 1; 1941 initRatingSnippet(); 1942 if (attempts < MAX_RATING_SNIPPET_INIT_ATTEMPTS && (typeof ratingSnippet !== 'function' || !document.querySelector('.ruk_rating_snippet'))) { 1943 window.setTimeout(tick, MAX_TIMEOUT_RETRY); 1944 } 1945 } 1946 1947 // Use window load to maximize chance that the external script executed. 1948 window.addEventListener('load', tick); 1949 })(); 1950</script>
1950 1951 1952 1953</div><div id="shopify-block-Ab0Q2dnM3Nm41ZHhtb__15020921138348042397" class="shopify-block shopify-app-block"> 1954 1955<style> 1956 /* Mobile & tablets: full width */ 1957 #storemapper { 1958 width: 100% !important; 1959 } 1960 1961 /* Desktop only: fix to 1024px and center */ 1962 @media (min-width: 1025px) { 1963 #storemapper { 1964 width: 1024px !important; 1965 margin: 0 auto; 1966 } 1967 } 1968</style> 1969 1970</div><div id="shopify-block-AcThYNTRkUW1SdzMyZ__6610233760104865948" class="shopify-block shopify-app-block">
1970<script> 1971 window.pushowlSubdomain = "radix-nutrition.myshopify.com".split(".")[0] 1972 window.isPushowlThemeAppExtentionEnabled = true 1973 window.pushowlGUID = "315dc497-1c4e-4480-8d79-ab13e3408d0f" 1974 window.pushowlEnvironment = "production" 1975 window.pushowlConfigSource = "pushowl" 1976 window.pushowlConfigUrl = "" 1977</script>
1977 1978 1979 1980 1981 1982</div>
1982<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
1982 1983</body> 1984</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.