PageSourceSearch

https://radixnutrition.com/search

html radixnutrition.com collected 2026-10-10 02:37:49 UTC 318,843 bytes, 1,984 lines download raw bytes

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="{&quot;publisher_shop_id&quot;:26773389374,&quot;theme_id&quot;:139831115838,&quot;theme_published&quot;:true,&quot;theme_store_id&quot;:0,&quot;placement&quot;:&quot;search&quot;,&quot;event_data&quot;:{&quot;search_query&quot;:null},&quot;recommendations_tracking_enabled&quot;: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 &amp;  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 &amp;  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 &amp;  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 &amp;  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 &amp;  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 &amp;  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 &amp;  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 &amp;  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 &amp;  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 &amp;  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&amp;width=3748" alt="Radix Nutrition" srcset="//radixnutrition.com/cdn/shop/files/Radix_Logo_White_Large_e8a99d13-68a5-4ace-b411-8df2dbb24d89.png?v=1705349285&amp;width=240 240w, //radixnutrition.com/cdn/shop/files/Radix_Logo_White_Large_e8a99d13-68a5-4ace-b411-8df2dbb24d89.png?v=1705349285&amp;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&region_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&amp;utm_medium=shopify&amp;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.