1<!doctype html> 2 3<html lang="en" dir="ltr"> 4 <head> 5
5<script> window.aisleFormConfigurations = window.aisleFormConfigurations || {}; window.aisleFormConfigurations['cmnyz0l4p0001uoxddkhkim67'] = { widgetId: 'cmnyz0l4p0001uoxddkhkim67', rootTargetElement: 'aisle-form-display__cmnyz0l4p0001uoxddkhkim67' }; </script>
5
5<script defer src="https://cdn.gotoaisle.com/embed-forms/script/loader/embedFormLoader.js" onload="window.aisleLoader.loadAssets(window.aisleFormConfigurations['cmnyz0l4p0001uoxddkhkim67'])" ></script>
5 6 7 8 9 10 11 12 13 14 15 16 <!-- BEGIN NOVEL SNIPPET --> 17<link rel="preload" href="/a/novel/js/novel-storefront.js?shop=mahrrg-wu.myshopify.com" as="script">
18<script type="text/javascript" async fetchpriority="high" src="/a/novel/js/novel-storefront.js?shop=mahrrg-wu.myshopify.com"></script>
18 19
20<script> 21 try { 22 23 24 localStorage.setItem("__novel-storefront-data__", JSON.stringify({ 25 validUntil: Date.now() + 1000 * 60 * 60, 26 value: {"version":1,"storefrontName":"Purity Products","shopifyDomain":"purityproductswp.myshopify.com","storefrontAccessToken":null,"storefrontCustomerTokenProperty":null,"customerAccountsEnabled":true,"authenticateWithShopifyCustomerAccount":false,"integrations":[],"tokenProducts":[],"gatedExperiences":[],"novelPassUnauthedLink":"https://purityproductswp.novel.com"} 27 })); 28 } catch (e) {} 29</script>
29 30<!-- END NOVEL SNIPPET --> 31 <meta charset="utf-8"> 32 <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=1.0"> 33 <meta name="theme-color" content="#ffffff"> 34 35 <!-- Begin: Northbeam pixel --> 36
36<script>(function(){var e;(n=e=e||{}).A="identify",n.B="trackPageView",n.C="fireEmailCaptureEvent",n.D="fireCustomGoal",n.E="firePurchaseEvent",n.F="trackPageViewInitial",n.G="fireSlimPurchaseEvent",n.H="identifyCustomerId";var n="//j.northbeam.io/ota-sp/51866a96-1466-4672-801c-1bf06907c356.js";function r(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];i.push({fnName:n,args:t})}var t,i=[],a=((t={})[e.F]=function(n){r(e.F,n)},(a={_q:i})[e.A]=function(n,t){return r(e.A,n,t)},a[e.B]=function(){return r(e.B)},a[e.C]=function(n,t){return r(e.C,n,t)},a[e.D]=function(n,t){return r(e.D,n,t)},a[e.E]=function(n){return r(e.E,n)},a[e.G]=function(n){return r(e.G,n)},a[e.H]=function(n,t){return r(e.H,n,t)},Object.assign(function(n){for(var t=[],e=1;e<arguments.length;e++)t.push(arguments[e]);return r.apply(null,[n].concat(t))},a));window.Northbeam=a,(a=document.createElement("script")).async=!0,a.src=n,document.head.appendChild(a),t.trackPageViewInitial(window.location.href);})()</script>
36 37 <!-- End: Northbeam pixel --> 38 39 <!-- Begin: Northbeam metadata info --> 40
40<script> 41 localStorage.setItem('nb__region_code', "US"); 42 localStorage.setItem('nb__currency_code', "USD"); 43 </script>
43 44 <!-- End: Northbeam metadata info --> 45 46 <title> 47 Store Locator | Find Purity Products Near You 48</title><meta name="description" content="Use the Purity Products store locator to find vitamins and supplements near you. Discover retail locations and authorized sellers carrying Purity Products."><link rel="canonical" href="https://www.purityproducts.com/pages/store-locator"><link rel="shortcut icon" href="//www.purityproducts.com/cdn/shop/files/favicon-circle_custard.png?v=1762457797&width=96"> 49 <link rel="apple-touch-icon" href="//www.purityproducts.com/cdn/shop/files/favicon-circle_custard.png?v=1762457797&width=180"><link rel="preconnect" href="https://cdn.shopify.com"> 50 <link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin> 51 <link rel="dns-prefetch" href="https://productreviews.shopifycdn.com"><link href="//www.purityproducts.com/cdn/fonts/instrument_serif/instrumentserif_n4.1f296bfb073af186bc0a0abe7791aa71e0f0fd99.woff2" as="font" type="font/woff2" crossorigin="true" rel="preload"> 52<link href="//www.purityproducts.com/cdn/fonts/questrial/questrial_n4.66abac5d8209a647b4bf8089b0451928ef144c07.woff2" as="font" type="font/woff2" crossorigin="true" rel="preload"> 53<link href="//www.purityproducts.com/cdn/shop/t/38/assets/instrumentserif-regular-webfont.woff2?v=44669944447708485281776871945" as="font" crossorigin="anonymous" rel="preload"> 54<link href="//www.purityproducts.com/cdn/shop/t/38/assets/instrumentserif-regular-webfont.woff?v=87156481194090799521776871948" as="font" crossorigin="anonymous" rel="preload"> 55<link href="//www.purityproducts.com/cdn/shop/t/38/assets/instrumentserif-italic-webfont.woff2?v=145346683880695969341776871947" as="font" crossorigin="anonymous" rel="preload"> 56<link href="//www.purityproducts.com/cdn/shop/t/38/assets/instrumentserif-italic-webfont.woff?v=23782258436048130241776871947" as="font" crossorigin="anonymous" rel="preload"> 57<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Regular.woff?v=120587010876262836071776871945" as="font" crossorigin="anonymous" rel="preload"> 58<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Regular.woff2?v=55866631079758551531776871945" as="font" crossorigin="anonymous" rel="preload"> 59<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Italic.woff?v=54635356757049019661776871946" as="font" crossorigin="anonymous" rel="preload"> 60<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Italic.woff2?v=132780980817437356881776871947" as="font" crossorigin="anonymous" rel="preload"> 61<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Medium.woff?v=154306925200619950091776871947" as="font" crossorigin="anonymous" rel="preload"> 62<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-MediumItalic.woff?v=17059168382838411231776871948" as="font" crossorigin="anonymous" rel="preload"> 63<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-MediumItalic.woff2?v=36872266446076412411776871948" as="font" crossorigin="anonymous" rel="preload"> 64<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Medium.woff2?v=42616255432182741271776871947" as="font" crossorigin="anonymous" rel="preload"> 65<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Bold.woff?v=14524446631921675271776871945" as="font" crossorigin="anonymous" rel="preload"> 66<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Bold.woff2?v=91201988185308496421776871945" as="font" crossorigin="anonymous" rel="preload"> 67<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-BoldItalic.woff?v=111652793243505893171776871945" as="font" crossorigin="anonymous" rel="preload"> 68<link href="//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-BoldItalic.woff2?v=11
685150729464123864621776871946" as="font" crossorigin="anonymous" rel="preload"> 69 70 71<style type="text/css"> 72 @font-face{ 73 font-family: "Instrument"; 74 src:url(//www.purityproducts.com/cdn/shop/t/38/assets/instrumentserif-regular-webfont.woff2?v=44669944447708485281776871945) format("woff2"), 75 url(//www.purityproducts.com/cdn/shop/t/38/assets/instrumentserif-regular-webfont.woff?v=87156481194090799521776871948) format("woff"); 76 font-weight: normal; 77 font-style: normal; 78 font-display: swap; 79 } 80 @font-face{ 81 font-family: "Instrument Italic"; 82 src:url(//www.purityproducts.com/cdn/shop/t/38/assets/instrumentserif-italic-webfont.woff2?v=145346683880695969341776871947) format("woff2"), 83 url(//www.purityproducts.com/cdn/shop/t/38/assets/instrumentserif-italic-webfont.woff?v=23782258436048130241776871947) format("woff"); 84 font-style: italic; 85 font-display: swap; 86 } 87 @font-face{ 88 font-family: "Satoshi"; 89 src:url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Regular.woff2?v=55866631079758551531776871945) format("woff2"), 90 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Regular.woff?v=120587010876262836071776871945) format("woff"); 91 font-style: normal; 92 font-display: swap; 93 } 94 @font-face{ 95 font-family: "Satoshi Italic"; 96 src:url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Italic.woff2?v=132780980817437356881776871947) format("woff2"), 97 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Italic.woff?v=54635356757049019661776871946) format("woff"); 98 font-style: normal; 99 font-display: swap; 100 } 101 @font-face{ 102 font-family: "Satoshi Medium"; 103 src:url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Medium.woff?v=154306925200619950091776871947) format("woff2"), 104 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Medium.woff?v=154306925200619950091776871947) format("woff"); 105 font-weight: 500; 106 font-style: normal; 107 font-display: swap; 108 } 109 @font-face{ 110 font-family: "Satoshi Medium Italic"; 111 src:url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-MediumItalic.woff?v=17059168382838411231776871948) format("woff2"), 112 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-MediumItalic.woff?v=17059168382838411231776871948) format("woff"); 113 font-weight: 500; 114 font-style: normal; 115 font-display: swap; 116 } 117 @font-face{ 118 font-family: "Satoshi Bold"; 119 src:url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Bold.woff2?v=91201988185308496421776871945) format("woff2"), 120 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Bold.woff?v=14524446631921675271776871945) format("woff"); 121 font-weight: 700; 122 font-style: normal; 123 font-display: swap; 124 } 125 @font-face{ 126 font-family: "Satoshi Bold Italic"; 127 src:url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-BoldItalic.woff2?v=11
1275150729464123864621776871946) format("woff2"), 128 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-BoldItalic.woff?v=111652793243505893171776871945) format("woff"); 129 font-weight: 700; 130 font-style: normal; 131 font-display: swap; 132 } 133 @font-face { 134 font-family: "Instrument"; 135 src: url(//www.purityproducts.com/cdn/shop/t/38/assets/instrumentserif-italic-webfont.woff2?v=145346683880695969341776871947) format("woff2"), 136 url(//www.purityproducts.com/cdn/shop/t/38/assets/instrumentserif-italic-webfont.woff?v=23782258436048130241776871947) format("woff"); 137 font-weight: 400; 138 font-style: italic; 139 font-display: swap; 140} 141 142@font-face { 143 font-family: "Satoshi"; 144 src: url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Italic.woff2?v=132780980817437356881776871947) format("woff2"), 145 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Italic.woff?v=54635356757049019661776871946) format("woff"); 146 font-weight: 400; 147 font-style: italic; 148 font-display: swap; 149} 150 151@font-face { 152 font-family: "Satoshi"; 153 src: url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Medium.woff2?v=42616255432182741271776871947) format("woff2"), 154 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Medium.woff?v=154306925200619950091776871947) format("woff"); 155 font-weight: 500; 156 font-style: normal; 157 font-display: swap; 158} 159 160@font-face { 161 font-family: "Satoshi"; 162 src: url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-MediumItalic.woff2?v=36872266446076412411776871948) format("woff2"), 163 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-MediumItalic.woff?v=17059168382838411231776871948) format("woff"); 164 font-weight: 500; 165 font-style: italic; 166 font-display: swap; 167} 168 169@font-face { 170 font-family: "Satoshi"; 171 src: url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Bold.woff2?v=91201988185308496421776871945) format("woff2"), 172 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-Bold.woff?v=14524446631921675271776871945) format("woff"); 173 font-weight: 700; 174 font-style: normal; 175 font-display: swap; 176} 177 178@font-face { 179 font-family: "Satoshi"; 180 src: url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-BoldItalic.woff2?v=11
1805150729464123864621776871946) format("woff2"), 181 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-BoldItalic.woff?v=111652793243505893171776871945) format("woff"); 182 font-weight: 700; 183 font-style: italic; 184 font-display: swap; 185} 186@font-face { 187 font-family: "Satoshi Medium"; 188 src: url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-MediumItalic.woff2?v=36872266446076412411776871948) format("woff2"), 189 url(//www.purityproducts.com/cdn/shop/t/38/assets/Satoshi-MediumItalic.woff?v=17059168382838411231776871948) format("woff"); 190 font-weight: 500; 191 font-style: italic; 192 font-display: swap; 193} 194</style><meta property="og:type" content="website"> 195 <meta property="og:title" content="Store Locator | Find Purity Products Near You"><meta property="og:image" content="http://www.purityproducts.com/cdn/shop/files/ppsocial.jpg?v=1773164382&width=2048"> 196 <meta property="og:image:secure_url" content="https://www.purityproducts.com/cdn/shop/files/ppsocial.jpg?v=1773164382&width=2048"> 197 <meta property="og:image:width" content="1200"> 198 <meta property="og:image:height" content="628"><meta property="og:description" content="Use the Purity Products store locator to find vitamins and supplements near you. Discover retail locations and authorized sellers carrying Purity Products."><meta property="og:url" content="https://www.purityproducts.com/pages/store-locator"> 199<meta property="og:site_name" content="Purity Products"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Store Locator | Find Purity Products Near You"> 200 <meta name="twitter:description" content="Use the Purity Products store locator to find vitamins and supplements near you. Discover retail locations and authorized sellers carrying Purity Products."><meta name="twitter:image" content="https://www.purityproducts.com/cdn/shop/files/ppsocial.jpg?crop=center&height=1200&v=1773164382&width=1200"> 201 <meta name="twitter:image:alt" content=""><!-- Tie Loader -->
202<script>!function(){"use strict";function l(e){for(var t=e,r=0,n=document.cookie.split(";");r<n.length;r++){var o=n[r].split("=");if(o[0].trim()===t)return o[1]}}function s(e){return localStorage.getItem(e)}function u(e){return window[e]}function A(e,t){e=document.querySelector(e);return t?null==e?void 0:e.getAttribute(t):null==e?void 0:e.textContent}var e=window,t=document,r="script",n="dataLayer",o="https://ss3.zone.purityproducts.com",a="",i="4oywbepbd",c="4cu34=DQZNIjY6VD88IUg1MSMqSRJfQktTUR0BWRIFFwsDAB8WDRQQAQMKQQcNHQ%3D%3D",g="cookie",v="_shopify_y",E="",d=!1;try{var d=!!g&&(m=navigator.userAgent,!!(m=new RegExp("Version/([0-9._]+)(.*Mobile)?.*Safari.*").exec(m)))&&16.4<=parseFloat(m[1]),f="stapeUserId"===g,I=d&&!f?function(e,t,r){void 0===t&&(t="");var n={cookie:l,localStorage:s,jsVariable:u,cssSelector:A},t=Array.isArray(t)?t:[t];if(e&&n[e])for(var o=n[e],a=0,i=t;a<i.length;a++){var c=i[a],c=r?o(c,r):o(c);if(c)return c}else console.warn("invalid uid source",e)}(g,v,E):void 0;d=d&&(!!I||f)}catch(e){console.error(e)}var m=e,g=(m[n]=m[n]||[],m[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t.getElementsByTagName(r)[0]),v=I?"&bi="+encodeURIComponent(I):"",E=t.createElement(r),f=(d&&(i=8<i.length?i.replace(/([a-z]{8}$)/,"kp$1"):"kp"+i),!d&&a?a:o);E.async=!0,E.src=f+"/"+i+".js?"+c+v,null!=(e=g.parentNode)&&e.insertBefore(E,g)}();</script>
202 203<!-- End Tie Loader -->
204<script type="application/ld+json"> 205 { 206 "@context": "https://schema.org", 207 "@type": "BreadcrumbList", 208 "itemListElement": [{ 209 "@type": "ListItem", 210 "position": 1, 211 "name": "Home", 212 "item": "https://www.purityproducts.com" 213 },{ 214 "@type": "ListItem", 215 "position": 2, 216 "name": "Store Locator", 217 "item": "https://www.purityproducts.com/pages/store-locator" 218 }] 219 } 220</script>
220<style>/* Typography (heading) */ 221 @font-face { 222 font-family: "Instrument Serif"; 223 font-weight: 400; 224 font-style: normal; 225 font-display: fallback; 226 src: url("//www.purityproducts.com/cdn/fonts/instrument_serif/instrumentserif_n4.1f296bfb073af186bc0a0abe7791aa71e0f0fd99.woff2") format("woff2"), 227 url("//www.purityproducts.com/cdn/fonts/instrument_serif/instrumentserif_n4.9c1bc0cbb666f794ccbef0784eef2fae0981ce72.woff") format("woff"); 228} 229 230@font-face { 231 font-family: "Instrument Serif"; 232 font-weight: 400; 233 font-style: italic; 234 font-display: fallback; 235 src: url("//www.purityproducts.com/cdn/fonts/instrument_serif/instrumentserif_i4.5f74867220db936d30d7d208253fb8f2d3ef5a7c.woff2") format("woff2"), 236 url("//www.purityproducts.com/cdn/fonts/instrument_serif/instrumentserif_i4.659537f426cac059f95efd6b1bd59c465d629984.woff") format("woff"); 237} 238 239/* Typography (body) */ 240 @font-face { 241 font-family: Questrial; 242 font-weight: 400; 243 font-style: normal; 244 font-display: fallback; 245 src: url("//www.purityproducts.com/cdn/fonts/questrial/questrial_n4.66abac5d8209a647b4bf8089b0451928ef144c07.woff2") format("woff2"), 246 url("//www.purityproducts.com/cdn/fonts/questrial/questrial_n4.e86c53e77682db9bf4b0ee2dd71f214dc16adda4.woff") format("woff"); 247} 248 249:root { 250 /** 251 * --------------------------------------------------------------------- 252 * SPACING VARIABLES 253 * 254 * We are using a spacing inspired from frameworks like Tailwind CSS. 255 * --------------------------------------------------------------------- 256 */ 257 --spacing-0-5: 0.125rem; /* 2px */ 258 --spacing-1: 0.25rem; /* 4px */ 259 --spacing-1-5: 0.375rem; /* 6px */ 260 --spacing-2: 0.5rem; /* 8px */ 261 --spacing-2-5: 0.625rem; /* 10px */ 262 --spacing-3: 0.75rem; /* 12px */ 263 --spacing-3-5: 0.875rem; /* 14px */ 264 --spacing-4: 1rem; /* 16px */ 265 --spacing-4-5: 1.125rem; /* 18px */ 266 --spacing-5: 1.25rem; /* 20px */ 267 --spacing-5-5: 1.375rem; /* 22px */ 268 --spacing-6: 1.5rem; /* 24px */ 269 --spacing-6-5: 1.625rem; /* 26px */ 270 --spacing-7: 1.75rem; /* 28px */ 271 --spacing-7-5: 1.875rem; /* 30px */ 272 --spacing-8: 2rem; /* 32px */ 273 --spacing-8-5: 2.125rem; /* 34px */ 274 --spacing-9: 2.25rem; /* 36px */ 275 --spacing-9-5: 2.375rem; /* 38px */ 276 --spacing-10: 2.5rem; /* 40px */ 277 --spacing-11: 2.75rem; /* 44px */ 278 --spacing-12: 3rem; /* 48px */ 279 --spacing-14: 3.5rem; /* 56px */ 280 --spacing-16: 4rem; /* 64px */ 281 --spacing-18: 4.5rem; /* 72px */ 282 --spacing-20: 5rem; /* 80px */ 283 --spacing-24: 6rem; /* 96px */ 284 --spacing-28: 7rem; /* 112px */ 285 --spacing-32: 8rem; /* 128px */ 286 --spacing-36: 9rem; /* 144px */ 287 --spacing-40: 10rem; /* 160px */ 288 --spacing-44: 11rem; /* 176px */ 289 --spacing-48: 12rem; /* 192px */ 290 --spacing-52: 13rem; /* 208px */ 291 --spacing-56: 14rem; /* 224px */ 292 --spacing-60: 15rem; /* 240px */ 293 --spacing-64: 16rem; /* 256px */ 294 --spacing-72: 18rem; /* 288px */ 295 --spacing-80: 20rem; /* 320px */ 296 --spacing-96: 24rem; /* 384px */ 297 298 /* Container */ 299 --container-max-width: 1440px; 300 --container-narrow-max-width: 1190px; 301 --container-gutter: var(--spacing-5); 302 --section-outer-spacing-block: var(--spacing-8); 303 --section-inner-max-spacing-block: var(--spacing-8); 304 --section-inner-spacing-inline: var(--container-gutter); 305 --section-stack-spacing-block: var(--spacing-8); 306 307 /* Grid gutter */ 308 --grid-gutter: var(--spacing-5); 309 310 /* Product list settings */ 311 --product-list-row-gap: var(--spacing-8); 312 --product-list-column-gap: var(--grid-gutter); 313 314 /* Form settings */ 315 --input-gap: var(--spacing-2); 316 --input-height: 2.625rem; 317 --input-padding-inline: var(--spacing-4); 318 319 /* Other sizes */ 320 --sticky-area-height: calc(var(--sticky-announcement-bar-enabled, 0) * var(--announcement-bar-height, 0px) + var(--sticky-header-enabled, 0) * var(--header-height, 0px)); 321 322 /* RTL support */ 323 --transform-logical-flip: 1; 324 --transform-origin-start: left; 325 --transform-origin-end: right; 326 327 /** 328 * --------------------------------------------------------------------- 329 * TYPOGRAPHY 330 * --------------------------------------------------------------------- 331 */ 332 333 /* Font properties */ 334 335 --heading-font-family: Instrument, "Instrument Serif", serif;
336 --heading-font-weight: 400; 337 --heading-font-style: normal; 338 339 --heading-text-transform: normal; 340 --heading-letter-spacing: 0.0em; 341 342 --text-font-family: Satoshi Medium, Questrial, sans-serif; 343 --text-font-weight: 400; 344 --text-font-style: ; 345 346 --text-letter-spacing: 0.0em; 347 348 /* Font sizes */ 349 --text-h0: 3rem; 350 --text-h1: 2.5rem; 351 --text-h2: 2rem; 352 --text-h3: 1.5rem; 353 --text-h4: 1.375rem; 354 --text-h5: 1.125rem; 355 --text-h6: 1rem; 356 --text-xs: 0.8125rem; 357 --text-sm: 0.875rem; 358 --text-base: 1.0rem; 359 --text-lg: 1.25rem; 360 361 /** 362 * --------------------------------------------------------------------- 363 * COLORS 364 * --------------------------------------------------------------------- 365 */ 366 367 /* Color settings */--accent: 0 51 20; 368 --text-primary: 0 51 20; 369 --background-primary: 250 249 245; 370 --dialog-background: 255 255 255; 371 --border-color: var(--text-color, var(--text-primary)) / 0.12; 372 373 /* Button colors */ 374 --button-background-primary: 0 51 20; 375 --button-text-primary: 255 255 255; 376 --button-background-secondary: 223 238 193; 377 --button-text-secondary: 0 51 20; 378 379 /* Status colors */ 380 --success-background: 224 244 232; 381 --success-text: 0 163 65; 382 --warning-background: 255 246 233; 383 --warning-text: 255 183 74; 384 --error-background: 254 231 231; 385 --error-text: 248 58 58; 386 387 /* Product colors */ 388 --on-sale-text: 0 51 20; 389 --on-sale-badge-background: 253 234 189; 390 --on-sale-badge-text: 255 255 255; 391 --sold-out-badge-background: 0 51 20; 392 --sold-out-badge-text: 255 255 255; 393 --primary-badge-background: 223 238 193; 394 --primary-badge-text: 0 0 0; 395 --star-color: 251 208 105; 396 --product-card-background: 255 255 255; 397 --product-card-text: 0 51 20; 398 399 /* Header colors */ 400 --header-background: 255 255 255; 401 --header-text: 0 51 20; 402 403 /* Footer colors */ 404 --footer-background: 250 249 245; 405 --footer-text: 0 51 20; 406 407 /* Rounded variables (used for border radius) */ 408 --rounded-xs: 0.25rem; 409 --rounded-sm: 0.25rem; 410 --rounded: 0.5rem; 411 --rounded-lg: 1.0rem; 412 --rounded-full: 9999px; 413 414 --rounded-button: 3.75rem; 415 --rounded-input: 0.5rem; 416 417 /* Box shadow */ 418 --shadow-sm: 0 2px 8px rgb(var(--text-primary) / 0.0); 419 --shadow: 0 5px 15px rgb(var(--text-primary) / 0.0); 420 --shadow-md: 0 5px 30px rgb(var(--text-primary) / 0.0); 421 --shadow-block: 0px 0px 0px rgb(var(--text-primary) / 0.0); 422 423 /** 424 * --------------------------------------------------------------------- 425 * OTHER 426 * --------------------------------------------------------------------- 427 */ 428 429 --stagger-products-reveal-opacity: 0; 430 --cursor-close-svg-url: url(//www.purityproducts.com/cdn/shop/t/38/assets/cursor-close.svg?v=147174565022153725511776871947); 431 --cursor-zoom-in-svg-url: url(//www.purityproducts.com/cdn/shop/t/38/assets/cursor-zoom-in.svg?v=154953035094101115921776871945); 432 --cursor-zoom-out-svg-url: url(//www.purityproducts.com/cdn/shop/t/38/assets/cursor-zoom-out.svg?v=16155520337305705181776871945); 433 --checkmark-svg-url: url(//www.purityproducts.com/cdn/shop/t/38/assets/checkmark.svg?v=77552481021870063511777473587); 434 } 435 436 [dir="rtl"]:root { 437 /* RTL support */ 438 --transform-logical-flip: -1; 439 --transform-origin-start: right; 440 --transform-origin-end: left; 441 } 442 443 @media screen and (min-width: 700px) { 444 :root { 445 /* Typography (font size) */ 446 --text-h0: 4rem; 447 --text-h1: 3rem; 448 --text-h2: 2.5rem; 449 --text-h3: 2rem; 450 --text-h4: 1.625rem; 451 --text-h5: 1.25rem; 452 --text-h6: 1.125rem; 453 454 --text-xs: 0.75rem; 455 --text-sm: 0.875rem; 456 --text-base: 1.0rem; 457 --text-lg: 1.25rem; 458 459 /* Spacing */ 460 --container-gutter: 2rem; 461 --section-outer-spacing-block: var(--spacing-12); 462 --section-inner-max-spacing-block: var(--spacing-10); 463 --section-inner-spacing-inline: var(--spacing-10); 464 --section-stack-spacing-block: var(--spacing-10); 465 466 /* Grid gutter */ 467 --grid-gutter: var(--spacing-6); 468 469 /* Product list settings */ 470 --product-list-row-gap: var(--spacing-12); 471 472 /* Form settings */ 473 --input-gap: 1rem; 474 --input-height: 3.125rem; 475 --input-padding-inline: var(--spacing-5); 476 } 477 } 478 479 @media screen and (min-width: 1000px) { 480 :root { 481 /* Spacing settings */ 482 --container-gutter: var(--spacing-12); 483 --section-outer-spacing-block: var(--spacing-14); 484 --section-inner-max-spacing-block: var(--spacing-12); 485 --section-inner-spacing-inline: var(--spacing-14); 486 --section-stack-spacing-block: var(--spacing-10); 487 } 488 } 489 490 @media screen and (min-width: 1150px) { 491 :root { 492 /* Spacing settings */ 493 --container-gutter: var(--spacing-12); 494 --section-outer-spacing-block: var(--spacing-14); 495 --section-inner-max-spacing-block: var(--spacing-12); 496 --section-inner-spacing-inline: var(--spacing-14); 497 --section-stack-spacing-block: var(--spacing-12); 498 } 499 } 500 501 @media screen and (min-width: 1400px) { 502 :root { 503 /* Typography (font size) */ 504 --text-h0: 5rem; 505 --text-h1: 3.75rem; 506 --text-h2: 3rem; 507 --text-h3: 2.25rem; 508 --text-h4: 2rem; 509 --text-h5: 1.5rem; 510 --text-h6: 1.25rem; 511 512 --section-outer-spacing-block: var(--spacing-16); 513 --section-inner-max-spacing-block: var(--spacing-14); 514 --section-inner-spacing-inline: var(--spacing-16); 515 } 516 } 517 518 @media screen and (min-width: 1600px) { 519 :root { 520 --section-outer-spacing-block: var(--spacing-16); 521 --section-inner-max-spacing-block: var(--spacing-16); 522 --section-inner-spacing-inline: var(--spacing-18); 523 } 524 } 525 526 /** 527 * --------------------------------------------------------------------- 528 * LIQUID DEPENDANT CSS 529 * 530 * Our main CSS is Liquid free, but some very specific features depend on 531 * theme settings, so we have them here 532 * --------------------------------------------------------------------- 533 */@media screen and (pointer: fine) {
534 .button:not([disabled]):hover, .btn:not([disabled]):hover, .shopify-payment-button__button--unbranded:not([disabled]):hover { 535 --button-background-opacity: 0.85; 536 } 537 538 .button--subdued:not([disabled]):hover { 539 --button-background: var(--text-color) / .05 !important; 540 } 541 }</style> 542
543<script> 544 // This allows to expose several variables to the global scope, to be used in scripts 545 window.themeVariables = { 546 routes: { 547 subscriptionsUrl: "https:\/\/shopify.com\/96727367968\/account\/pages\/019bb328-6787-7509-9a67-6287b6f0c50c?locale=en\u0026region_country=US\u0026buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJtYWhycmctd3UubXlzaG9waWZ5LmNvbSIsImZsYWdzIjpbXSwiZXhwIjoxNzkxNjczOTA0LCJuYmYiOjE3OTEwNjkxMDR9.BEQNCmBZ8_ZzZDHL-zMuAS7PqBNt956WSbofWfNXMhU" 548 }, 549 550 settings: { 551 showPageTransition: null, 552 staggerProductsApparition: true, 553 reduceDrawerAnimation: false, 554 reduceMenuAnimation: false, 555 headingApparition: "split_fade", 556 pageType: "page", 557 moneyFormat: "${{amount}}", 558 moneyWithCurrencyFormat: "${{amount}} USD", 559 currencyCodeEnabled: false, 560 cartType: "drawer", 561 showDiscount: null, 562 discountMode: null, 563 pageBackground: "#FAF9F5", 564 textColor: "#003314", 565 discountAmount: 50, 566 yotpoStarRatingId: "1267354" 567 }, 568 569 strings: { 570 accessibilityClose: "Close", 571 accessibilityNext: "Next", 572 accessibilityPrevious: "Previous", 573 closeGallery: "Close gallery", 574 zoomGallery: "Zoom", 575 errorGallery: "Image cannot be loaded", 576 searchNoResults: "No results could be found.", 577 addOrderNote: "Add order note", 578 editOrderNote: "Edit order note", 579 shippingEstimatorNoResults: "Sorry, we do not ship to your address.", 580 shippingEstimatorOneResult: "There is one shipping rate for your address:", 581 shippingEstimatorMultipleResults: "There are several shipping rates for your address:", 582 shippingEstimatorError: "One or more error occurred while retrieving shipping rates:" 583 }, 584 585 breakpoints: { 586 'sm': 'screen and (min-width: 700px)', 587 'md': 'screen and (min-width: 1000px)', 588 'lg': 'screen and (min-width: 1150px)', 589 'xl': 'screen and (min-width: 1400px)', 590 591 'sm-max': 'screen and (max-width: 699px)', 592 'md-max': 'screen and (max-width: 999px)', 593 'lg-max': 'screen and (max-width: 1149px)', 594 'xl-max': 'screen and (max-width: 1399px)' 595 }, 596 597 customer: { 598 599 tags: [], 600 hasQualifyingTag: false, 601 legacySubscriptionHistory: {"products": []}, 602 loopSubscriptionHistory: {"subscription_history": []} 603 604 } 605 }; 606 607 // For detecting native share 608 document.documentElement.classList.add(`native-share--${navigator.share ? 'enabled' : 'disabled'}`);</script>
608<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 608
608
609<script type="importmap">{ 610 "imports": { 611 "vendor": "//www.purityproducts.com/cdn/shop/t/38/assets/vendor.min.js?v=166563502121812900551776871945", 612 "theme": "//www.purityproducts.com/cdn/shop/t/38/assets/theme.js?v=178790654555726024421786509270", 613 "photoswipe": "//www.purityproducts.com/cdn/shop/t/38/assets/photoswipe.min.js?v=13374349288281597431776871947" 614 } 615 } 616 </script>
616 617 618
618<script type="module" src="//www.purityproducts.com/cdn/shop/t/38/assets/vendor.min.js?v=166563502121812900551776871945"></script>
618 619
619<script type="module" src="//www.purityproducts.com/cdn/shop/t/38/assets/theme.js?v=178790654555726024421786509270"></script>
619 620
620<script type="module" src="//www.purityproducts.com/cdn/shop/t/38/assets/custom.js?v=107575729470923231431776871946"></script>
620 621
621<script src="//www.purityproducts.com/cdn/shop/t/38/assets/sub_ocu.js?v=42726696735893579621789022207" defer></script>
621<script>window.__ppWelcomeGwpPerksMember = false;</script>
621 622
622<script src="//www.purityproducts.com/cdn/shop/t/38/assets/welcome-gwp.js?v=21787477556139508011784279481" defer></script>
622 623
623<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
623<meta name="google-site-verification" content="vC_W7F2IYNsnM57r01Up3ANUf9QCsfI-pTWKsAVpLoQ"> 624<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/96727367968/digital_wallets/dialog"> 625<meta id="in-context-paypal-metadata" data-shop-id="96727367968" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 626<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" hreflang="x-default" href="https://www.purityproducts.com/pages/store-locator"> 627<link rel="alternate" hreflang="en" href="https://www.purityproducts.com/pages/store-locator"> 628<link rel="alternate" hreflang="es" href="https://www.purityproducts.com/es/pages/store-locator">
629<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=6479642912"></script>
629 630<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
631<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=6479642912&shop_id=96727367968" crossorigin="anonymous"></script>
vendor: 1 bytes, line 631
631
632<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":96727367968,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/96727367968","merchantName":"Purity Products","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Purity Products","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 632
632
633<script id="shopify-features" type="application/json">{"accessToken":"07b4255949880f9d77e810d6298bc14a","betas":["rich-media-storefront-analytics"],"domain":"www.purityproducts.com","predictiveSearch":true,"shopId":96727367968,"locale":"en"}</script>
vendor: 1 bytes, line 633
633
634<script>var Shopify = Shopify || {}; 635Shopify.shop = "mahrrg-wu.myshopify.com"; 636Shopify.locale = "en"; 637Shopify.currency = {"active":"USD","rate":"1.0"}; 638Shopify.country = "US"; 639Shopify.theme = {"name":"PP-Shopify-Theme\/Production","id":187943846176,"schema_name":"Impact","schema_version":"6.11.2","theme_store_id":null,"role":"main"}; 640Shopify.theme.handle = "null"; 641Shopify.theme.style = {"id":null,"handle":null}; 642Shopify.cdnHost = "www.purityproducts.com/cdn"; 643Shopify.routes = Shopify.routes || {}; 644Shopify.routes.root = "/"; 645Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 646Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 647Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 648Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 648
648
649<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 649
649
650<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 650
650
651<script> 652 window.ShopifyPay = window.ShopifyPay || {}; 653 window.ShopifyPay.apiHost = "shop.app\/pay"; 654 window.ShopifyPay.redirectState = null; 655</script>
vendor: 1 bytes, line 655
655
656<script> 657 window.Shopify = window.Shopify || {}; 658 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 659 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 660 window.Shopify.SignInWithShop.eligible = true; 661</script>
vendor: 1 bytes, line 661
661
662<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 662
662
663<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 663
663
664<script type="module"> 665 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 666 667 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 668 669</script>
vendor: 1 bytes, line 669
669
670<script> 671 window.Shopify = window.Shopify || {}; 672 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 673 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"]}; 674</script>
vendor: 1 bytes, line 674
674
675<script>(function() { 676 var isLoaded = false; 677 function asyncLoad() { 678 if (isLoaded) return; 679 isLoaded = true; 680 var urls = ["https:\/\/shy.elfsight.com\/p\/platform.js?shop=mahrrg-wu.myshopify.com","https:\/\/purityproductswp.myshopify.com\/a\/novel\/js\/novel-storefront.js?shop=mahrrg-wu.myshopify.com","\/\/cdn.shopify.com\/proxy\/f1d4f6739e83dc0509454f1b476005b9abc81093d8fcddc0ae76411eb5723d67\/api.goaffpro.com\/loader.js?shop=mahrrg-wu.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/superfiliate-cdn.com\/storefront.js?shop=mahrrg-wu.myshopify.com"]; 681 for (var i = 0; i < urls.length; i++) { 682 var s = document.createElement('script'); 683 s.type = 'text/javascript'; 684 s.async = true; 685 s.src = urls[i]; 686 var x = document.getElementsByTagName('script')[0]; 687 x.parentNode.insertBefore(s, x); 688 } 689 }; 690 if(window.attachEvent) { 691 window.attachEvent('onload', asyncLoad); 692 } else { 693 window.addEventListener('load', asyncLoad, false); 694 } 695})();</script>
vendor: 1 bytes, line 695
695
696<script id="__st">var __st={"a":96727367968,"offset":-14400,"reqid":"e7da6272-9f07-4452-8453-030a0e2e9f82-1791069104","pageurl":"www.purityproducts.com\/pages\/store-locator","s":"pages-158954160416","u":"e7431945296f","p":"page","rtyp":"page","rid":158954160416};</script>
vendor: 1 bytes, line 696
696
697<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 697
697
698<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 698
698
699<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.purityproducts.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 699
699
700<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.purityproducts.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>
700<script crossorigin="anonymous" defer="defer" src="//www.purityproducts.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 700
700
701<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 701
701
702<script> 703 window.Shopify = window.Shopify || {}; 704 window.Shopify.MCP = window.Shopify.MCP || {}; 705 window.Shopify.MCP.enabled = true; 706 window.Shopify.MCP.shop = "mahrrg-wu.myshopify.com"; 707 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.purityproducts.com\/api\/mcp"; 708 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 709</script>
vendor: 1 bytes, line 709
709
710<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.purityproducts.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 711</script>
vendor: 1 bytes, line 711
711
712<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.purityproducts.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 713</script>
vendor: 1 bytes, line 713
713
714<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 715 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); 716</script>
vendor: 1 bytes, line 716
716
717<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})}})); 718</script>
718 719<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.purityproducts.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 720<style id="shopify-accelerated-checkout-cart"> 721 #shopify-buyer-consent { 722 margin-top: 1em; 723 display: inline-block; 724 width: 100%; 725} 726 727#shopify-buyer-consent.hidden { 728 display: none; 729} 730 731#shopify-subscription-policy-button { 732 background: none; 733 border: none; 734 padding: 0; 735 text-decoration: underline; 736 font-size: inherit; 737 cursor: pointer; 738} 739 740#shopify-subscription-policy-button::before { 741 box-shadow: none; 742} 743 744 </style> 745
746<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
746 747<link href="//www.purityproducts.com/cdn/shop/t/38/assets/theme.css?v=107436397450269602071790770170" rel="stylesheet" type="text/css" media="all" />
747<script> window.videowiseShadow = { mode: 'closed', assets: [{ type: 'style', src: '//www.purityproducts.com/cdn/shop/t/38/assets/custom-videowise.css?v=178164895519419919401776871946'}] }; </script>
747 748
748<script type="text/javascript" id="loop-subscription-script" src="//www.purityproducts.com/cdn/shop/t/38/assets/loop-widget.js?v=15332934885070371171779290167" defer></script>
748<link href="//www.purityproducts.com/cdn/shop/t/38/assets/loop-widget.css?v=111076401550513259181776871945" rel="stylesheet" type="text/css" media="all" /><link href="//www.purityproducts.com/cdn/shop/t/38/assets/subscription-enhancer.css?v=39760301556921099391790344974" rel="stylesheet" type="text/css" media="all" />
748<script src="//www.purityproducts.com/cdn/shop/t/38/assets/subscription-enhancer.js?v=49586630427539321321786358788" defer></script>
748<link href="//www.purityproducts.com/cdn/shop/t/38/assets/tiered-offer.css?v=104493036855039562161789486279" rel="stylesheet" type="text/css" media="all" />
748<script src="//www.purityproducts.com/cdn/shop/t/38/assets/tiered-offer.js?v=18764432199100476901789022207" defer></script>
748<script src="//www.purityproducts.com/cdn/shop/t/38/assets/tiered-offer-cart.js?v=81153144997842208751789022207" defer></script>
748<!-- Swiper --> 749 <link href="//www.purityproducts.com/cdn/shop/t/38/assets/swiper-bundle.min.css?v=117015111553890996371779288608" rel="stylesheet" type="text/css" media="all" /> 750
750<script src="//www.purityproducts.com/cdn/shop/t/38/assets/swiper-bundle.min.js?v=44949453089828286941779288614" defer="defer"></script>
750 751 752 <!-- Custom style and js --> 753 <link href="//www.purityproducts.com/cdn/shop/t/38/assets/theme-style.css?v=14760372626699160761782286236" rel="stylesheet" type="text/css" media="all" /> 754
754<script src="//www.purityproducts.com/cdn/shop/t/38/assets/theme-script.js?v=75990667911595501711780319480" defer="defer"></script>
754 755 <!-- BEGIN app block: shopify://apps/intelligems-a-b-testing/blocks/intelligems-script/fa83b64c-0c77-4c0c-b4b2-b94b42f5ef19 -->
755<script> 756 window._template = { 757 directory: "", 758 name: "page", 759 suffix: "store-locator" 760 }; 761 window.__productIdFromTemplate = null; 762 window.__plpCollectionIdFromTemplate = null; 763 window.igProductData = (function() { 764 const data = {};return data; 765 })(); 766</script>
766 767
768<script type="module" blocking="render" fetchpriority="high" src="https://cdn.intelligems.io/esm/825709e3687e/bundle.js" data-em-disable async></script>
768 769 770 771<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf --> 772 773 774
774<script type="text/javascript" src="https://cdn-widgetsrepository.yotpo.com/v1/loader/hYKhHqIEpJoiMJzx0U9pozTEV3amaCvhZmhLItAT?languageCode=en" async></script>
774 775 776 777 778 779<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 780 781 782 783 784 785 786 787 788 789 790 791 792
792<script async src="https://static.klaviyo.com/onsite/js/U32Vs3/klaviyo.js?company_id=U32Vs3"></script>
792 793
793<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>
793 794 795 796 797 798 799 800
800<script> 801 window.klaviyoReviewsProductDesignMode = false 802 </script>
802 803 804 805 806 807 808 809 810 811 812<!-- END app block --><!-- BEGIN app block: shopify://apps/attentive/blocks/attn-tag/8df62c72-8fe4-407e-a5b3-72132be30a0d -->
812<script type="text/javascript" src="https://zokpt.purityproducts.com/purityproducts/load" onerror=" var fallbackScript = document.createElement('script'); fallbackScript.src = 'https://cdn.attn.tv/purityproducts/dtag.js'; document.head.appendChild(fallbackScript);" data-source="loaded?source=app-embed" defer="defer"></script>
812 813 814 815<!-- END app block --><!-- BEGIN app block: shopify://apps/dr-free-gift/blocks/instant-load/5942fed7-47f4-451f-a42f-9077b6214264 --><!-- For self-installation -->
816<script>(() => {const installerKey = 'docapp-free-gift-auto-install'; const urlParams = new URLSearchParams(window.location.search); if (urlParams.get(installerKey)) {window.sessionStorage.setItem(installerKey, JSON.stringify({integrationId: urlParams.get('docapp-integration-id'), divClass: urlParams.get('docapp-install-class'), check: urlParams.get('docapp-check')}));}})();</script>
vendor: 1 bytes, line 816
816
817<script>(() => {const previewKey = 'docapp-free-gift-test'; const urlParams = new URLSearchParams(window.location.search); if (urlParams.get(previewKey)) {window.sessionStorage.setItem(previewKey, JSON.stringify({active: true, integrationId: urlParams.get('docapp-free-gift-inst-test')}));}})();</script>
vendor: 1 bytes, line 817
817
818<script>window.freeGiftCartUpsellProAppBlock = true;</script>
818 819 820<!-- App speed-up -->
821<script id="docapp-cart">window.docappCart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; window.docappCart.currency = "USD"; window.docappCart.shop_currency = "USD";</script>
vendor: 1 bytes, line 821
821
822<script id="docapp-free-item-speedup"> 823 (() => { if (window.freeGiftCartUpsellProAppLoaded) return; let script = document.createElement('script'); script.src = "https://d2fk970j0emtue.cloudfront.net/shop/js/free-gift-cart-upsell-pro.min.js?shop=mahrrg-wu.myshopify.com"; document.getElementById('docapp-free-item-speedup').after(script); })(); 824</script>
824 825 826<!-- END app block --><!-- BEGIN app block: shopify://apps/videowise-video-commerce/blocks/script_embed/b48d6c0c-3e3f-4791-a9ab-a5ab7ec82f4d --> 827 828 829 830 831<link 832 rel="preload" 833 as="style" 834 onload="this.onload=null;this.rel='stylesheet'" 835 href="https://assets.videowise.com/style.css.gz" 836 id="videowise-style-css">
837<script 838 defer 839 src="https://assets.videowise.com/vendors.js.gz" 840 id="videowise-vendors-js"></script>
vendor: 1 bytes, line 840
840
841<script 842 defer 843 src="https://assets.videowise.com/client.js.gz" 844 id="videowise-client-js"></script>
844 845 846<link rel="dns-prefetch" href="https://assets.videowise.com/" /> 847 848<link rel="dns-prefetch" href="https://cdn2.videowise.com/" /> 849 850<link rel="dns-prefetch" href="https://api-cdn.videowise.com/" /> 851 852<link rel="dns-prefetch" href="https://images.videowise.com/" /> 853 854<link rel="dns-prefetch" href="https://cdn.videowise.com/" /> 855 856<!-- END app block --><!-- BEGIN app block: shopify://apps/rebuy-personalization-engine/blocks/rebuy-global-embed/a26ae9b9-933b-40bf-bbc6-bf1220bbc4dc -->
857<script> 858 window.Rebuy = window.Rebuy || {}; 859 window.Rebuy.customer = window.Rebuy.customer || {}; 860 861 window.Rebuy.market = window.Rebuy.market || {}; 862 863 window.Rebuy.market.country = "US"; 864 865 866 window.Rebuy.market.locale = "en"; 867 868</script>
868 869 870 871<link rel="preconnect" href="https://cdn.rebuyengine.com"> 872 <link rel="preconnect" href="https://rebuyengine.com" crossorigin> 873 <link rel="preconnect" href="https://cached.rebuyengine.com" crossorigin> 874
874<script async src="https://cdn.rebuyengine.com/onsite/js/rebuy.js?shop=mahrrg-wu.myshopify.com"></script>
874 875 876 877<!-- END app block --><!-- BEGIN app block: shopify://apps/pagefly-ai-page-builder/blocks/app-embed/83e179f7-59a0-4589-8c66-c0dddf959200 --> 878 879<!-- BEGIN app snippet: pagefly-cro-ab-testing-main --> 880 881 882 883 884 885 886
887<script> 888 ;(function () { 889 const url = new URL(window.location) 890 const viewParam = url.searchParams.get('view') 891 if (viewParam && viewParam.includes('variant-pf-')) { 892 url.searchParams.set('pf_v', viewParam) 893 url.searchParams.delete('view') 894 window.history.replaceState({}, '', url) 895 } 896 })() 897</script>
897 898 899 900
901<script type='module'> 902 903 window.PAGEFLY_CRO = window.PAGEFLY_CRO || {} 904 905 window.PAGEFLY_CRO['data_debug'] = { 906 original_template_suffix: "store-locator", 907 allow_ab_test: false, 908 ab_test_start_time: 0, 909 ab_test_end_time: 0, 910 today_date_time: 1791069104000, 911 } 912 window.PAGEFLY_CRO['GA4'] = { enabled: false} 913</script>
913 914 915<!-- END app snippet --> 916 917 918 919 920 921 922 923 924
924<script src='https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-helper.js' defer='defer'></script>
924 925 926
926<script src='https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-general-helper.js' defer='defer'></script>
926 927 928
928<script src='https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-snap-slider.js' defer='defer'></script>
928 929 930
930<script src='https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-slideshow-v3.js' defer='defer'></script>
930 931 932
932<script src='https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-slideshow-v4.js' defer='defer'></script>
932 933 934
934<script src='https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-glider.js' defer='defer'></script>
934 935 936
936<script src='https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-slideshow-v1-v2.js' defer='defer'></script>
936 937 938
938<script src='https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-product-media.js' defer='defer'></script>
938 939 940
940<script src='https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-product.js' defer='defer'></script>
940 941 942
943<script id='pagefly-helper-data' type='application/json'> 944 { 945 "page_optimization": { 946 "assets_prefetching": false 947 }, 948 "elements_asset_mapper": { 949 "Accordion": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-accordion.js", 950 "Accordion3": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-accordion3.js", 951 "CountDown": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-countdown.js", 952 "GMap1": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-gmap.js", 953 "GMap2": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-gmap.js", 954 "GMapBasicV2": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-gmap.js", 955 "GMapAdvancedV2": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-gmap.js", 956 "HTML.Video": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-htmlvideo.js", 957 "HTML.Video2": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-htmlvideo2.js", 958 "HTML.Video3": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-htmlvideo2.js", 959 "BackgroundVideo": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-htmlvideo2.js", 960 "Instagram": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-instagram.js", 961 "Instagram2": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-instagram.js", 962 "Insta3": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-instagram3.js", 963 "Tabs": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-tab.js", 964 "Tabs3": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-tab3.js", 965 "ProductBox": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-cart.js", 966 "FBPageBox2": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-facebook.js", 967 "FBLikeButton2": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-facebook.js", 968 "TwitterFeed2": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-twitter.js", 969 "Paragraph4": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-paragraph4.js", 970 971 "AliReviews": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 972 "BackInStock": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 973 "GloboBackInStock": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 974 "GrowaveWishlist": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 975 "InfiniteOptionsShopPad": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 976 "InkybayProductPersonalizer": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder
976-363/assets/pagefly-3rd-elements.js", 977 "LimeSpot": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 978 "Loox": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 979 "Opinew": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 980 "Powr": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 981 "ProductReviews": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 982 "PushOwl": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 983 "ReCharge": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 984 "Rivyo": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 985 "TrackingMore": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 986 "Vitals": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js", 987 "Wiser": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-3rd-elements.js" 988 }, 989 "custom_elements_mapper": { 990 "pf-click-action-element": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-click-action-element.js", 991 "pf-dialog-element": "https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-dialog-element.js" 992 } 993 } 994</script>
994 995
996<script id='pagefly-heatmap-config' type='application/json'> 997 {} 998</script>
vendor: 1 bytes, line 998
998
999<script> 1000 (function () { 1001 var el = document.getElementById('pagefly-heatmap-config') 1002 if (!el) { window.__pagefly_heatmap_config__ = {}; return } 1003 try { 1004 window.__pagefly_heatmap_config__ = JSON.parse(el.textContent || '{}') || {} 1005 } catch (e) { 1006 window.__pagefly_heatmap_config__ = {} 1007 } 1008 })() 1009</script>
vendor: 1 bytes, line 1009
1009
1010<script> 1011 // Heatmap overlay loader. Three gates, all of them cheap, none of them trusting the URL: 1012 // the visitor must have arrived on a pf_heatmap link, the SERVER must have published an 1013 // overlay path in the metafield, and this page must already be one the merchant enabled 1014 // tracking for. The last gate is what stops a crafted link pulling the asset onto an 1015 // arbitrary storefront page. Everything else is decided inside the asset, and by the server. 1016 (function () { 1017 var cfg = window.__pagefly_heatmap_config__ || {} 1018 var id = (window.__pagefly_page_setting__ || {}).pageId 1019 if (!/[#&]pf_heatmap=/.test(window.location.hash || '')) return 1020 if (!cfg.overlay_data_path || !Array.isArray(cfg.enabled_page_ids)) return 1021 if (!id || cfg.enabled_page_ids.indexOf(id) === -1) return 1022 var s = document.createElement('script') 1023 s.src = 'https://cdn.shopify.com/extensions/01a0f807-168f-7fcf-a3d0-e91e9a539d12/pagefly-ai-page-builder-363/assets/pagefly-heatmap-overlay.js' 1024 s.defer = true 1025 document.head.appendChild(s) 1026 })() 1027</script>
1027 1028 1029<!-- BEGIN app snippet: pf-ai-schema --> 1030<!-- END app snippet --> 1031 1032 1033<!-- END app block --><!-- BEGIN app block: shopify://apps/digioh/blocks/app-embed/5c569d3e-93be-4334-a107-6d8e1e612339 --> 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 <!--START Digioh Low Impact Javascript-->
1047<script async type='text/javascript' src='https://forms.purityproducts.com/w37htfhcq2/vendor/d2663419-d264-44d5-8cc7-66fd46d7dbe6/lightbox_speed.js'></script>
1047 1048<!--END Digioh Low Impact Javascript--> 1049 1050 1051 1052<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
1053<script type="text/javascript"> 1054 (function (c, l, a, r, i, t, y) { 1055 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 1056 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 1057 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 1058 1059 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 1060 if (error) { 1061 console.error("Error loading Shopify features:", error); 1062 return; 1063 } 1064 1065 c[a]('consentv2', { 1066 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 1067 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 1068 source: 101, 1069 }); 1070 }); 1071 1072 l.addEventListener("visitorConsentCollected", function (e) { 1073 c[a]('consentv2', { 1074 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 1075 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 1076 source: 101, 1077 }); 1078 }); 1079 })(window, document, "clarity", "script", "tija2hi156"); 1080</script>
1080 1081 1082 1083 1084<!-- END app block -->
1084<script src="https://cdn.shopify.com/extensions/01a0fdff-2b95-7a42-80bb-495e663795ed/forms-2610/assets/shopify-forms-loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1084
1084
1085<script src="https://cdn.shopify.com/extensions/019feb7b-2b89-71ba-a248-f1c8ef9b3368/stape-remix-56/assets/widget.js" type="text/javascript" defer="defer"></script>
1085 1086<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1087<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: 96727367968,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};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 1087
1087
1088<script> 1089 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1090</script>
vendor: 1 bytes, line 1090
1090
1091<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}
1091).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: 96727367968,storefrontBaseUrl: "https://www.purityproducts.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.purityproducts.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2941649184","configuration":"{\"storeId\":\"ab7a878b-e377-4a7a-a275-d82e1070f3c2\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9b5c7e9eba54366aed35e340586c8163","type":"APP","apiClientId":274629623809,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2809430304","configuration":"{\"shop\":\"mahrrg-wu.myshopify.com\",\"cookie_duration\":\"604800\",\"first_touch_or_last\":\"last_touch\",\"goaffpro_identifiers\":\"gfp_ref,ref,aff,wpam_id,click_id\",\"enable_form_referrals\":\"false\",\"ignore_ad_clicks\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"ffb841046ecd028d3f5b411ec870cbdf","type":"APP","apiClientId":2744533,"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"},{"id":"2730983712","configuration":"{\"accountID\":\"96727367968\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9cf281f576a3744d05c8685f9f7f3f72","type":"APP","apiClientId":10250649601,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1091,"dataSharingState":"unrestricted"},{"id":"2729869600","configuration":"{\"eventKey\":\"da5776f6-789e-4f57-8ae3-6201b2a1734d\",\"name\":\"mahrrg-wu - Axon Pixel\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"fae105ca09bb030f70a8b83292a88611","type":"APP","apiClientId":256560922625,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2714796320","configuration":"{\"accountID\":\"54151\",\"micrositeDomain\":\"creators.purityproducts.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9fae8f5cb0b9c97477ac364bb3772a0c","type":"APP","apiClientId":4862993,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2697167136","configuration":"{\"shopId\":\"mahrrg-wu.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"31536d5a2ef62c1887054e49fd58dba0","type":"APP","apiClientId":4845829,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2550661408","configuration":"{\"env\":\"prod\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"8a9a175b11d15038a70fe78d09c59720","type":"APP","apiClientId":3977633,"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":"2546204960","configuration":"{\"projectId\":\"tija2hi156\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2526675232","configuration":"{\"pixel_id\":\"439627819534875\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2523824416","configuration":"{\"vibePixelId\":\"vf7YJw\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"72859894ec8aa8d5e0246c40aaed9466","type":"APP","apiClientId":132266098689,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2516877600","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-320967SY8T\\\",\\\"GT-NML5NV9Z\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-320967SY8T\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-320967SY8T\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-320967SY8T\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-320967SY8T\\\",\\\"MC-SJBE4RC65V\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-320967SY8T\\\",\\\"MC-SJBE4RC65V\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-320967SY8T\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-320967SY8T\\\",\\\"MC-SJBE4RC65V\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-320967SY8T\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-320967SY8T\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-320967SY8T\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-320967SY8T\\\"}],\\\"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"]},{"id":"2317648160","configuration":"{\"accountID\":\"1220658\",\"workspaceId\":\"68257bc7-5135-4759-a65e-a8e5e8cc0f78\",\"projectId\":\"b236653e-7a8b-4883-86d5-5a26cf12
1091cc3d\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d98eb033f1e81320021a411362de3a55","type":"APP","apiClientId":5461967,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2290614560","configuration":"{\"brandID\":\"6aoc00prmwis\",\"trackingURL\":\"https:\/\/track.proxima.ai\/shopify\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"67ba09585928c12b2c372e2a8ce187e9","type":"APP","apiClientId":2756640769,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2163704096","configuration":"{\"accountID\":\"U32Vs3\",\"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":"207913248","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"OMG - GTM dataLayer"},{"id":"208077088","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"],"name":"Northbeam Event Tracking"},{"id":"210239776","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Tie"},{"id":"213287200","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"frontrow-cai"},{"id":"215122208","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Stape - DataLayer "},{"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":"Purity Products","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"mahrrg-wu.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.purityproducts.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"10105433588000","handle":"the-purity-super-pill","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50891306238240","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10251011457312","handle":"mybiotin-growth-plus","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51418898989344","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.purityproducts.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"187943846176","themePublished":"true","eventMetadataId":"384539d5-9307-4543-906f-62ba8ca6bd0c","pageType":"page","resourceId":"158954160416","shopId":"96727367968","storefrontBaseUrl":"https:\/\/www.purityproducts.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1091<script> 1092 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1093 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1094 window.ShopifyAnalytics.meta.currency = 'USD'; 1095 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":158954160416,"requestId":"e7da6272-9f07-4452-8453-030a0e2e9f82-1791069104"}}; 1096 for (var attr in meta) { 1097 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1098 } 1099</script>
vendor: 1 bytes, line 1099
1099
1100<script class="analytics"> 1101 (function () { 1102 var customDocumentWrite = function(content) { 1103 var jquery = null; 1104 1105 if (window.jQuery) { 1106 jquery = window.jQuery; 1107 } else if (window.Checkout && window.Checkout.$) { 1108 jquery = window.Checkout.$; 1109 } 1110 1111 if (jquery) { 1112 jquery('body').append(content); 1113 } 1114 }; 1115 1116 var hasLoggedConversion = function(token) { 1117 if (token) { 1118 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1119 } 1120 return false; 1121 } 1122 1123 var setCookieIfConversion = function(token) { 1124 if (token) { 1125 var twoMonthsFromNow = new Date(Date.now()); 1126 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1127 1128 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1129 } 1130 } 1131 1132 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1133 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1134 if (trekkie.integrations) { 1135 return; 1136 } 1137 trekkie.methods = [ 1138 'identify', 1139 'page', 1140 'ready', 1141 'track', 1142 'trackForm', 1143 'trackLink' 1144 ]; 1145 trekkie.factory = function(method) { 1146 return function() { 1147 var args = Array.prototype.slice.call(arguments); 1148 args.unshift(method); 1149 trekkie.push(args); 1150 if (method == 'track' || method == 'page') { 1151 var pageUrl; 1152 try { 1153 pageUrl = window.location.href; 1154 } catch (e) {} 1155 var pageReferrer; 1156 try { 1157 pageReferrer = document.referrer; 1158 } catch (e) {} 1159 try { 1160 if (window.__TREKKIE_SHIM_QUEUE == null) { 1161 window.__TREKKIE_SHIM_QUEUE = []; 1162 } 1163 window.__TREKKIE_SHIM_QUEUE.push({ 1164 from: 'trekkie-stub', 1165 method: method, 1166 args: args.slice(1), 1167 pageContext: { 1168 url: pageUrl, 1169 referrer: pageReferrer 1170 } 1171 }); 1172 } catch (e) { 1173 // no-op 1174 } 1175 } 1176 return trekkie; 1177 }; 1178 }; 1179 for (var i = 0; i < trekkie.methods.length; i++) { 1180 var key = trekkie.methods[i]; 1181 trekkie[key] = trekkie.factory(key); 1182 } 1183 trekkie.load = function(config) { 1184 trekkie.config = config || {}; 1185 trekkie.config.initialDocumentCookie = document.cookie; 1186 var first = document.getElementsByTagName('script')[0]; 1187var script = document.createElement('script'); 1188script.type = 'text/javascript'; 1189script.onerror = function(e) { 1190 var scriptFallback = document.createElement('script'); 1191 scriptFallback.type = 'text/javascript'; 1192 scriptFallback.onerror = function(error) { 1193 var Monorail = { 1194 produce: function produce(monorailDomain, schemaId, payload) { 1195 var currentMs = new Date().getTime(); 1196 var event = { 1197 schema_id: schemaId, 1198 payload: payload, 1199 metadata: { 1200 event_created_at_ms: currentMs, 1201 event_sent_at_ms: currentMs 1202 } 1203 }; 1204 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1205 }, 1206 sendRequest: function sendRequest(endpointUrl, payload) { 1207 // Try the sendBeacon API 1208 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1209 var blobData = new window.Blob([payload], { 1210 type: 'text/plain' 1211 }); 1212 1213 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1214 return true; 1215 } // sendBeacon was not successful 1216 1217 } // XHR beacon 1218 1219 var xhr = new XMLHttpRequest(); 1220 1221 try { 1222 xhr.open('POST', endpointUrl); 1223 xhr.setRequestHeader('Content-Type', 'text/plain'); 1224 xhr.send(payload); 1225 } catch (e) { 1226 console.log(e); 1227 } 1228 1229 return false; 1230 }, 1231 isIos12: function isIos12() { 1232 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1233 } 1234 }; 1235 Monorail.produce('monorail-edge.shopifysvc.com', 1236 'trekkie_storefront_load_errors/1.1', 1237 {shop_id: 96727367968, 1238 theme_id: 187943846176, 1239 app_name: "storefront", 1240 context_url: window.location.href, 1241 source_url: "//www.purityproducts.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1242 1243 }; 1244 scriptFallback.async = true; 1245 scriptFallback.src = '//www.purityproducts.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1246 first.parentNode.insertBefore(scriptFallback, first); 1247}; 1248script.async = true; 1249script.src = '//www.purityproducts.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1250first.parentNode.insertBefore(script, first); 1251 1252 }; 1253 trekkie.load( 1254 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":96727367968,"
1254isMerchantRequest":null,"themeId":187943846176,"themeCityHash":"15258389791904626846","contentLanguage":"en","currency":"USD","eventMetadataId":"384539d5-9307-4543-906f-62ba8ca6bd0c"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1255 ); 1256 1257 var loaded = false; 1258 trekkie.ready(function() { 1259 if (loaded) return; 1260 loaded = true; 1261 1262 window.ShopifyAnalytics.lib = window.trekkie; 1263 1264 var originalDocumentWrite = document.write; 1265 document.write = customDocumentWrite; 1266 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1267 document.write = originalDocumentWrite; 1268 1269 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1270 var token = match? match[1]: undefined; 1271 if (!hasLoggedConversion(token)) { 1272 setCookieIfConversion(token); 1273 1274 } 1275 }); 1276 1277 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":158954160416,"requestId":"e7da6272-9f07-4452-8453-030a0e2e9f82-1791069104","shopifyEmitted":true}); 1278 1279 var eventsListenerScript = document.createElement('script'); 1280 eventsListenerScript.async = true; 1281 eventsListenerScript.src = "//www.purityproducts.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1282 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1283})();</script>
vendor: 1 bytes, line 1283
1283
1284<script 1285 defer 1286 src="https://www.purityproducts.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1287 data-application="storefront-renderer" 1288 data-shop-id="96727367968" 1289 data-render-region="gcp-us-central1" 1290 data-page-type="page" 1291 data-theme-instance-id="187943846176" 1292 data-theme-name="Impact" 1293 data-theme-version="6.11.2" 1294 data-monorail-region="shop_domain" 1295 data-resource-timing-sampling-rate="10" 1296 data-shs="true" 1297 data-shs-beacon="true" 1298 data-shs-export-with-fetch="true" 1299 data-shs-logs-sample-rate="1" 1300 data-shs-beacon-endpoint="https://www.purityproducts.com/api/collect" 1301></script>
1301 1302<meta name="shopify-y" content="d56c20f5-ba07-4d88-a3d5-7377af38fab7" data-expiration="1822626704000"><meta name="shopify-s" content="065345f0-4153-4a04-843d-ef0e5d0700a3" data-expiration="1791070904000"><meta name="new-cookie-storage-activated" content="t"> 1303</head> 1304 1305 <body class="zoom-image--enabled interior"><!-- DRAWER --> 1306<template id="drawer-default-template"> 1307 <style> 1308 [hidden] { 1309 display: none !important; 1310 } 1311 </style> 1312 1313 <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"> 1314 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 1315 </svg></button> 1316 1317 <div part="overlay"></div> 1318 1319 <div part="content"> 1320 <header part="header"> 1321 <slot name="header"></slot> 1322 1323 <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"> 1324 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 1325 </svg></button> 1326 </header> 1327 1328 <div part="body"> 1329 <slot></slot> 1330 </div> 1331 1332 <footer part="footer"> 1333 <slot name="footer"></slot> 1334 </footer> 1335 </div> 1336</template> 1337 1338<!-- POPOVER --> 1339<template id="popover-default-template"> 1340 <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"> 1341 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 1342 </svg></button> 1343 1344 <div part="overlay"></div> 1345 1346 <div part="content"> 1347 <header part="title"> 1348 <slot name="title"></slot> 1349 </header> 1350 1351 <div part="body"> 1352 <slot></slot> 1353 </div> 1354 </div> 1355</template><a href="#main" class="skip-to-content sr-only">Skip to content</a><!-- BEGIN sections: header-group --> 1356<aside id="shopify-section-sections--26983444414752__announcement-bar" class="shopify-section shopify-section-group-header-group shopify-section--announcement-bar"><style> 1357 :root { 1358 --sticky-announcement-bar-enabled:1; 1359 }#shopify-section-sections--26983444414752__announcement-bar { 1360 position: sticky; 1361 top: 0; 1362 z-index: 20; 1363 } 1364 1365 .shopify-section--header ~ #shopify-section-sections--26983444414752__announcement-bar { 1366 top: calc(var(--sticky-header-enabled, 0) * var(--header-height, 0px)); 1367 }</style><height-observer variable="announcement-bar"> 1368 <div class="announcement-bar bg-custom text-custom"style="--background: 223 238 193; --text-color: 0 51 20;"><marquee-text scrolling-speed="24" class="announcement-bar__scrolling-list"><span class="announcement-bar__item" ><p class="bold text-base" ><a href="/collections/bestsellers">ð Free MyKeratin® with any orders $75+ - automatically applied at checkout</a></p> 1369 1370 <span class="shape-circle shape--sm"></span><p class="bold text-base" ><a href="/collections/bestsellers">ð£ NEW: Pick Your Savings â Up to 33% OFF</a></p> 1371 1372 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-base" ><a href="/collections/bestsellers">ð Free MyKeratin® with any orders $75+ - automatically applied at checkout</a></p> 1373 1374 <span class="shape-circle shape--sm"></span><p class="bold text-base" ><a href="/collections/bestsellers">ð£ NEW: Pick Your Savings â Up to 33% OFF</a></p> 1375 1376 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-base" ><a href="/collections/bestsellers">ð Free MyKeratin® with any orders $75+ - automatically applied at checkout</a></p> 1377 1378 <span class="shape-circle shape--sm"></span><p class="bold text-base" ><a href="/collections/bestsellers">ð£ NEW: Pick Your Savings â Up to 33% OFF</a></p> 1379
1380 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-base" ><a href="/collections/bestsellers">ð Free MyKeratin® with any orders $75+ - automatically applied at checkout</a></p> 1381 1382 <span class="shape-circle shape--sm"></span><p class="bold text-base" ><a href="/collections/bestsellers">ð£ NEW: Pick Your Savings â Up to 33% OFF</a></p> 1383 1384 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-base" ><a href="/collections/bestsellers">ð Free MyKeratin® with any orders $75+ - automatically applied at checkout</a></p> 1385 1386 <span class="shape-circle shape--sm"></span><p class="bold text-base" ><a href="/collections/bestsellers">ð£ NEW: Pick Your Savings â Up to 33% OFF</a></p> 1387 1388 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-base" ><a href="/collections/bestsellers">ð Free MyKeratin® with any orders $75+ - automatically applied at checkout</a></p> 1389 1390 <span class="shape-circle shape--sm"></span><p class="bold text-base" ><a href="/collections/bestsellers">ð£ NEW: Pick Your Savings â Up to 33% OFF</a></p> 1391 1392 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-base" ><a href="/collections/bestsellers">ð Free MyKeratin® with any orders $75+ - automatically applied at checkout</a></p> 1393 1394 <span class="shape-circle shape--sm"></span><p class="bold text-base" ><a href="/collections/bestsellers">ð£ NEW: Pick Your Savings â Up to 33% OFF</a></p> 1395 1396 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-base" ><a href="/collections/bestsellers">ð Free MyKeratin® with any orders $75+ - automatically applied at checkout</a></p> 1397 1398 <span class="shape-circle shape--sm"></span><p class="bold text-base" ><a href="/collections/bestsellers">ð£ NEW: Pick Your Savings â Up to 33% OFF</a></p> 1399 1400 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-base" ><a href="/collections/bestsellers">ð Free MyKeratin® with any orders $75+ - automatically applied at checkout</a></p> 1401 1402 <span class="shape-circle shape--sm"></span><p class="bold text-base" ><a href="/collections/bestsellers">ð£ NEW: Pick Your Savings â Up to 33% OFF</a></p> 1403 1404 <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-base" ><a href="/collections/bestsellers">ð Free MyKeratin® with any orders $75+ - automatically applied at checkout</a></p> 1405 1406 <span class="shape-circle shape--sm"></span><p class="bold text-base" ><a href="/collections/bestsellers">ð£ NEW: Pick Your Savings â Up to 33% OFF</a></p> 1407 1408 <span class="shape-circle shape--sm"></span></span></marquee-text></div> 1409 </height-observer> 1410 1411
1411<script> 1412 document.documentElement.style.setProperty('--announcement-bar-height', Math.round(document.getElementById('shopify-section-sections--26983444414752__announcement-bar').clientHeight) + 'px'); 1413 </script>
1413</aside><header id="shopify-section-sections--26983444414752__header" class="shopify-section shopify-section-group-header-group shopify-section--header"><style> 1414 :root { 1415 --sticky-header-enabled:1; 1416 } 1417 1418 #shopify-section-sections--26983444414752__header { 1419 --header-grid-template: "main-nav logo secondary-nav" / minmax(0, 1fr) auto minmax(0, 1fr); 1420 --header-padding-block: var(--spacing-3); 1421 --header-background-opacity: 1.0; 1422 --header-background-blur-radius: 12px; 1423 --header-transparent-text-color: 255 255 255;--header-logo-width: 160px; 1424 --header-logo-height: 25px;position: sticky; 1425 top: 0; 1426 z-index: 10; 1427 }.shopify-section--announcement-bar ~ #shopify-section-sections--26983444414752__header { 1428 top: calc(var(--sticky-announcement-bar-enabled, 0) * var(--announcement-bar-height, 0px)); 1429 }@media screen and (max-width: 699px) { 1430 .navigation-drawer { 1431 --drawer-content-max-height: calc(100vh - (var(--spacing-2) * 2)); 1432 } 1433 }@media screen and (min-width: 700px) { 1434 #shopify-section-sections--26983444414752__header {--header-logo-width: 255px; 1435 --header-logo-height: 40px;--header-padding-block: var(--spacing-6); 1436 } 1437 }</style> 1438 1439<height-observer variable="header"> 1440 <store-header 1441 class="header" 1442 1443 1444 sticky 1445 1446 > 1447 <div class="header__wrapper"><div class="header__main-nav"> 1448 <div class="header__icon-list"> 1449 <button 1450 type="button" 1451 class="tap-area lg:hidden" 1452 aria-controls="header-sidebar-menu" 1453 > 1454 <span class="sr-only">Menu</span><svg role="presentation" stroke-width="1.5" focusable="false" width="22" height="22" class="icon icon-hamburger" viewBox="0 0 22 22"> 1455 <path d="M1 5h20M1 11h20M1 17h20" stroke="currentColor" stroke-linecap="round"></path> 1456 </svg></button> 1457 1458 <a href="/search" class="tap-area sm:hidden" aria-controls="search-drawer"> 1459 <span class="sr-only">Search</span><svg role="presentation" stroke-width="1.5" focusable="false" width="22" height="22" class="icon icon-search" viewBox="0 0 22 22"> 1460 <circle cx="11" cy="10" r="7" fill="none" stroke="currentColor"></circle> 1461 <path d="m16 15 3 3" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1462 </svg></a><nav 1463 class="header__link-list wrap" 1464 role="navigation" 1465 > 1466 <ul class="contents" role="list"> 1467 1468 <li><details 1469 is="mega-menu-disclosure" 1470 trigger="click" 1471 1472 > 1473 <summary 1474 class="text-with-icon gap-2.5 bold link-faded-reverse" 1475 1476 >Shop<svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7"> 1477 <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path> 1478 </svg></summary><style> 1479 @media screen and (min-width: 1150px) { 1480 #mega-menu-mega_menu_69q7fD { 1481 --mega-menu-nav-column-max-width: 160px; 1482 --mega-menu-justify-content: space-between; 1483 --mega-menu-nav-gap: var(--spacing-8); 1484 1485 1486 } 1487 } 1488 1489 @media screen and (min-width: 1400px) { 1490 #mega-menu-mega_menu_69q7fD { 1491 --mega-menu-nav-column-max-width: 180px; 1492 --mega-menu-nav-gap: var(--spacing-16); 1493 1494 1495 --column-list-max-width: max-content; 1496 1497 } 1498 } 1499 1500 @media screen and (min-width: 1600px) { 1501 #mega-menu-mega_menu_69q7fD { 1502 --mega-menu-nav-gap: var(--spacing-16); 1503 } 1504 } 1505 1506 @media screen and (min-width: 1800px) { 1507 #mega-menu-mega_menu_69q7fD { 1508 --mega-menu-nav-gap: var(--spacing-20); 1509 } 1510 } 1511 </style><div id="mega-menu-mega_menu_69q7fD" class="mega-menu "><ul class="mega-menu__nav" role="list"><li class="v-stack gap-4 justify-items-start"> 1512 <a class="h5" > 1513 <span >Featured</span> 1514 </a><ul class="v-stack gap-2 justify-items-start" role="list"><li> 1515 <a href="/collections/bestsellers" class="link-faded">
1516 <span >Bestsellers</span> 1517 </a> 1518 </li><li> 1519 <a href="/collections/new-releases" class="link-faded"> 1520 <span >New Releases</span> 1521 </a> 1522 </li><li> 1523 <a href="/collections/womens-health" class="link-faded"> 1524 <span >Women's Health</span> 1525 </a> 1526 </li><li> 1527 <a href="/collections/mens-health" class="link-faded"> 1528 <span >Men's Health</span> 1529 </a> 1530 </li><li> 1531 <a href="/collections/daily-health-essentials" class="link-faded"> 1532 <span >Daily Essentials</span> 1533 </a> 1534 </li></ul></li><li class="v-stack gap-4 justify-items-start"> 1535 <a class="h5" > 1536 <span >By Health Goal</span> 1537 </a><ul class="v-stack gap-2 justify-items-start" role="list"><li> 1538 <a href="/collections/joint-mobility" class="link-faded"> 1539 <span >Mobility</span> 1540 </a> 1541 </li><li> 1542 <a href="/collections/hair-skin-beauty" class="link-faded"> 1543 <span >Hair & Skin</span> 1544 </a> 1545 </li><li> 1546 <a href="/collections/brain-focus" class="link-faded"> 1547 <span >Brain & Focus</span> 1548 </a> 1549 </li><li> 1550 <a href="/collections/heart-and-vessels" class="link-faded"> 1551 <span >Heart & Vessels</span> 1552 </a> 1553 </li><li> 1554 <a href="/collections/immune-support" class="link-faded"> 1555 <span >Immunity</span> 1556 </a> 1557 </li><li> 1558 <a href="/collections/gut-health-digestion" class="link-faded"> 1559 <span >Gut Health</span> 1560 </a> 1561 </li><li> 1562 <a href="/collections/metabolism-weight" class="link-faded"> 1563 <span >Metabolism & Weight</span> 1564 </a> 1565 </li><li> 1566 <a href="/collections/mood-and-sleep" class="link-faded"> 1567 <span >Mood & Sleep</span> 1568 </a> 1569 </li><li> 1570 <a href="/collections/energy-strength" class="link-faded"> 1571 <span >Energy & Strength</span> 1572 </a> 1573 </li></ul></li><li class="v-stack gap-4 justify-items-start"> 1574 <a class="h5" > 1575 <span >By Ingredient</span> 1576 </a><ul class="v-stack gap-2 justify-items-start" role="list"><li> 1577 <a href="/collections/multivitamins" class="link-faded"> 1578 <span >Multivitamins</span> 1579 </a> 1580 </li><li> 1581 <a href="/collections/vitamins" class="link-faded"> 1582 <span >Vitamins (B, C, D)</span> 1583 </a> 1584 </li><li> 1585 <a href="/collections/omega-3-and-krill-oil" class="link-faded"> 1586 <span >Omega-3 & Krill Oil</span> 1587 </a> 1588 </li><li> 1589 <a href="/collections/magnesium" class="link-faded"> 1590 <span >Magnesium</span> 1591 </a> 1592 </li><li> 1593 <a href="/collections/coq10" class="link-faded"> 1594 <span >CoQ10</span> 1595 </a> 1596 </li><li> 1597 <a href="/collections/antioxidants" class="link-faded"> 1598 <span >Antioxidants</span> 1599 </a> 1600 </li><li> 1601 <a href="/collections/hyaluronic-acid" class="link-faded"> 1602 <span >Hyaluronic Acid</span> 1603 </a> 1604 </li><li> 1605 <a href="/collections/collagen" class="link-faded"> 1606 <span >Collagen</span> 1607 </a> 1608 </li><li> 1609 <a href="/collections/creatine" class="link-faded">
1610 <span >Creatine</span> 1611 </a> 1612 </li><li> 1613 <a href="/collections/probiotics" class="link-faded"> 1614 <span >Probiotics</span> 1615 </a> 1616 </li><li> 1617 <a href="/collections/superfoods" class="link-faded"> 1618 <span >Superfoods</span> 1619 </a> 1620 </li></ul></li></ul> 1621 1622 1623 1624 1625 1626<style> 1627 #navigation-promo-mega_menu_69q7fD-3- { 1628 --navigation-promo-grid: 1629 1630 auto / repeat(2, minmax(var(--mega-menu-promo-grid-image-min-width), var(--mega-menu-promo-grid-image-max-width))) 1631 1632 1633; 1634 --mega-menu-promo-grid-image-max-width: 300px; 1635 --mega-menu-promo-grid-image-min-width: 172px; 1636 --promo-heading-font-size: var(--text-h5); 1637 --content-over-media-row-gap: var(--spacing-3); 1638 --content-over-media-column-gap: var(--spacing-4);--navigation-promo-gap: var(--spacing-2); 1639 --panel-wrapper-justify-content: flex-start;} 1640 1641 #navigation-promo-mega_menu_69q7fD-3- .navigation-promo__carousel-controls {inset-block-end: var(--content-over-media-column-gap);} 1642 1643 @media screen and (min-width:700px) { 1644 #navigation-promo-mega_menu_69q7fD-3- {--promo-heading-font-size: var(--text-h6);--mega-menu-promo-grid-image-min-width: 192px; 1645 --content-over-media-row-gap: var(--spacing-4); 1646 --content-over-media-column-gap: var(--spacing-5); 1647 } 1648 }@media screen and (min-width: 1150px) { 1649 #navigation-promo-mega_menu_69q7fD-3- { 1650 --promo-heading-font-size: var(--text-h4); 1651 --promo-heading-line-height: 1.3; 1652 --navigation-promo-gap: var(--spacing-4); 1653 --mega-menu-promo-grid-image-min-width: 220px; 1654 1655 1656 1657 1658 } 1659 1660 1661 #navigation-promo-mega_menu_69q7fD-3- { 1662 --content-over-media-row-gap: var(--spacing-6); 1663 --content-over-media-column-gap: var(--spacing-8); 1664 } 1665 1666 } 1667 1668 @media screen and (min-width: 1400px) { 1669 #navigation-promo-mega_menu_69q7fD-3- { 1670 --mega-menu-promo-grid-image-max-width: 360px; 1671 1672 1673 --promo-heading-font-size: var(--text-h5); 1674 --promo-heading-line-height: 1.4; 1675 1676 } 1677 1678 1679 #navigation-promo-mega_menu_69q7fD-3- { 1680 --content-over-media-row-gap: var(--spacing-5); 1681 --content-over-media-column-gap: var(--spacing-6); 1682 } 1683 1684 }</style><div 1685 class="navigation-promo__wrapper " 1686 id="navigation-promo-mega_menu_69q7fD-3-" 1687><div class="navigation-promo navigation-promo--grid scroll-area bleed"> 1688 <a href="/products/the-purity-super-pill" 1689 class="content-over-media rounded-sm group bg-custom" 1690 style="--text-color: 255 255 255; grid-area: ; --background: 0 51 20;"> 1691 1692 1693 1694<img src="//www.purityproducts.com/cdn/shop/files/asArtboard-2.png?v=1789503830&width=2000" alt="The Purity Super Pillâ¢" srcset="//www.purityproducts.com/cdn/shop/files/asArtboard-2.png?v=1789503830&width=200 200w, //www.purityproducts.com/cdn/shop/files/asArtboard-2.png?v=1789503830&width=300 300w, //www.purityproducts.com/cdn/shop/files/asArtboard-2.png?v=1789503830&width=400 400w, //www.purityproducts.com/cdn/shop/files/asArtboard-2.png?v=1789503830&width=500 500w, //www.purityproducts.com/cdn/shop/files/asArtboard-2.png?v=1789503830&width=600 600w, //www.purityproducts.com/cdn/shop/files/asArtboard-2.png?v=1789503830&width=800 800w, //www.purityproducts.com/cdn/shop/files/asArtboard-2.png?v=1789503830&width=1000 1000w" width="2000" height="2000" loading="lazy" sizes="(max-width: 699px) 172px, (max-width: 1149px) 192px,minmax(220px, 440px) 1695" class="zoom-image"><div class="place-self-end-start text-custom"> 1696 <h4 class="bold" style="font-size: var(--promo-heading-font-size); line-height: var(--promo-heading-line-height, 1.4)">The Purity Super Pillâ¢</h4> 1697 </div></a><a href="/products/mybiotin-growth-plus" 1698 class="content-over-media rounded-sm group bg-custom" 1699 style="--text-color: 255 255 255; grid-area: ; --background: 0 51 20;"> 1700 1701 1702 1703<img src="//www.purityproducts.com/cdn/shop/files/asArtboard-1.png?v=1789503841&width=2000" alt="MyBiotin® Growth+â¢" srcset="//www.purityproducts.com/cdn/shop/files/asArtboard-1.png?v=1789503841&width=200 200w, //www.purityproducts.com/cdn/shop/files/asArtboard-1.png?v=1789503841&width=300 300w, //www.purityproducts.com/cdn/shop/files/asArtboard-1.png?v=1789503841&width=400 400w, //www.purityproducts.com/cdn/shop/files/asArtboard-1.png?v=1789503841&width=500 500w, //www.purityproducts.com/cdn/shop/files/asArtboard-1.png?v=1789503841&width=600 600w, //www.purityproducts.com/cdn/shop/files/asArtboard-1.png?v=1789503841&width=800 800w, //www.purityproducts.com/cdn/shop/files/asArtboard-1.png?v=1789503841&width=1000 1000w" width="2000" height="2000" loading="lazy" sizes="(max-width: 699px) 172px, (max-width: 1149px) 192px,minmax(220px, 440px) 1704" class="zoom-image"><div class="place-self-end-start text-custom"> 1705 <h4 class="bold" style="font-size: var(--promo-heading-font-size); line-height: var(--promo-heading-line-height, 1.4)">MyBiotin® Growth+â¢</h4> 1706 </div></a> 1707 </div></div> 1708</div></details></li> 1709 1710 <li>
1710<details 1711 is="mega-menu-disclosure" 1712 trigger="click" 1713 1714 > 1715 <summary 1716 class="text-with-icon gap-2.5 bold link-faded-reverse" 1717 1718 >About Us<svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7"> 1719 <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path> 1720 </svg></summary><style> 1721 @media screen and (min-width: 1150px) { 1722 #mega-menu-mega_menu_yMHHRX { 1723 --mega-menu-nav-column-max-width: 180px; 1724 --mega-menu-justify-content: space-between; 1725 --mega-menu-nav-gap: var(--spacing-8); 1726 1727 1728 } 1729 } 1730 1731 @media screen and (min-width: 1400px) { 1732 #mega-menu-mega_menu_yMHHRX { 1733 --mega-menu-nav-column-max-width: 220px; 1734 --mega-menu-nav-gap: var(--spacing-16); 1735 1736 1737 --column-list-max-width: max-content; 1738 1739 } 1740 } 1741 1742 @media screen and (min-width: 1600px) { 1743 #mega-menu-mega_menu_yMHHRX { 1744 --mega-menu-nav-gap: var(--spacing-16); 1745 } 1746 } 1747 1748 @media screen and (min-width: 1800px) { 1749 #mega-menu-mega_menu_yMHHRX { 1750 --mega-menu-nav-gap: var(--spacing-20); 1751 } 1752 } 1753 </style><div id="mega-menu-mega_menu_yMHHRX" class="mega-menu "><ul class="mega-menu__nav" role="list"><li class="v-stack gap-4 justify-items-start"> 1754 <a class="h5" > 1755 <span >Discover</span> 1756 </a><ul class="v-stack gap-2 justify-items-start" role="list"><li> 1757 <a href="/pages/our-story" class="link-faded"> 1758 <span >Our Story</span> 1759 </a> 1760 </li><li> 1761 <a href="/pages/the-purity-difference" class="link-faded"> 1762 <span >The Purity Difference</span> 1763 </a> 1764 </li><li> 1765 <a href="/pages/purity-champions" class="link-faded"> 1766 <span >Purity Champions</span> 1767 </a> 1768 </li><li> 1769 <a href="/pages/purity-charity-in-action" class="link-faded"> 1770 <span >Purity Charity in Action</span> 1771 </a> 1772 </li></ul></li></ul> 1773 1774 1775 1776 1777 1778<style> 1779 #navigation-promo-mega_menu_yMHHRX-1- { 1780 --navigation-promo-grid: 1781 1782 auto / repeat(2, minmax(var(--mega-menu-promo-grid-image-min-width), var(--mega-menu-promo-grid-image-max-width))) 1783 1784 1785; 1786 --mega-menu-promo-grid-image-max-width: 300px; 1787 --mega-menu-promo-grid-image-min-width: 172px; 1788 --promo-heading-font-size: var(--text-h5); 1789 --content-over-media-row-gap: var(--spacing-3); 1790 --content-over-media-column-gap: var(--spacing-4);--navigation-promo-gap: var(--spacing-2); 1791 --panel-wrapper-justify-content: flex-start;} 1792 1793 #navigation-promo-mega_menu_yMHHRX-1- .navigation-promo__carousel-controls {inset-block-end: var(--content-over-media-column-gap);} 1794 1795 @media screen and (min-width:700px) { 1796 #navigation-promo-mega_menu_yMHHRX-1- {--promo-heading-font-size: var(--text-h6);--mega-menu-promo-grid-image-min-width: 192px; 1797 --content-over-media-row-gap: var(--spacing-4); 1798 --content-over-media-column-gap: var(--spacing-5); 1799 } 1800 }@media screen and (min-width: 1150px) { 1801 #navigation-promo-mega_menu_yMHHRX-1- { 1802 --promo-heading-font-size: var(--text-h4); 1803 --promo-heading-line-height: 1.3; 1804 --navigation-promo-gap: var(--spacing-4); 1805 --mega-menu-promo-grid-image-min-width: 220px; 1806 1807 1808 1809 1810 } 1811 1812 1813 #navigation-promo-mega_menu_yMHHRX-1- { 1814 --content-over-media-row-gap: var(--spacing-6); 1815 --content-over-media-column-gap: var(--spacing-8); 1816 } 1817 1818 } 1819 1820 @media screen and (min-width: 1400px) { 1821 #navigation-promo-mega_menu_yMHHRX-1- { 1822 --mega-menu-promo-grid-image-max-width: 360px; 1823 1824 1825 } 1826 1827 1828 }</style><div 1829 class="navigation-promo__wrapper " 1830 id="navigation-promo-mega_menu_yMHHRX-1-" 1831><div class="navigation-promo navigation-promo--grid scroll-area bleed"> 1832 <a href="/pages/our-story" 1833 class="content-over-media rounded-sm group bg-custom" 1834 style="--text-color: 255 255 255; grid-area: ; --background: 0 51 20;"> 1835 1836 1837 1838<img src="//www.purityproducts.com/cdn/shop/files/about1.jpg?v=1772552917&width=500" alt="Our Story" srcset="//www.purityproducts.com/cdn/shop/files/about1.jpg?v=1772552917&width=200 200w, //www.purityproducts.com/cdn/shop/files/about1.jpg?v=1772552917&width=300 300w, //www.purityproducts.com/cdn/shop/files/about1.jpg?v=1772552917&width=400 400w, //www.purityproducts.com/cdn/shop/files/about1.jpg?v=1772552917&width=500 500w" width="500" height="500" loading="lazy" sizes="(max-width: 699px) 172px, (max-width: 1149px) 192px,minmax(220px, 440px) 1839" class="zoom-image"><div class="place-self-end-start text-custom"> 1840 <h4 class="bold" style="font-size: var(--promo-heading-font-size); line-height: var(--promo-heading-line-height, 1.4)">Our Story</h4> 1841 </div></a><a href="/pages/purity-champions" 1842 class="content-over-media rounded-sm group bg-custom" 1843 style="--text-color: 255 255 255; grid-area: ; --background: 0 51 20;"> 1844 1845 1846 1847<img src="//www.purityproducts.com/cdn/shop/files/about2.jpg?v=1772551877&width=500" alt="Purity Champions" srcset="//www.purityproducts.com/cdn/shop/files/about2.jpg?v=1772551877&width=200 200w, //www.purityproducts.com/cdn/shop/files/about2.jpg?v=1772551877&width=300 300w, //www.purityproducts.com/cdn/shop/files/about2.jpg?v=1772551877&width=400 400w, //www.purityproducts.com/cdn/shop/files/about2.jpg?v=1772551877&width=500 500w" width="500" height="500" loading="lazy" sizes="(max-width: 699px) 172px, (max-width: 1149px) 192px,minmax(220px, 440px) 1848" class="zoom-image"><div class="place-self-end-start text-custom"> 1849 <h4 class="bold" style="font-size: var(--promo-heading-font-size); line-height: var(--promo-heading-line-height, 1.4)">Purity Champions</h4> 1850 </div></a> 1851 </div></div> 1852</div></details></li> 1853 1854 <li><a 1855 href="/pages/longevity" 1856 class="bold link-faded-reverse" 1857 1858 >Longevity</a></li></ul> 1859 </nav></div> 1860 </div> 1861 <a href="/" class="header__logo"><span class="sr-only">Purity Products</span><img src="//www.purityproducts.com/cdn/shop/files/Purity_Logo_Green_1.png?v=1772819292&width=618" alt="Purity Products" srcset="//www.purityproducts.com/cdn/shop/files/Purity_Logo_Green_1.png?v=1772819292&width=510 510w, //www.purityproducts.com/cdn/shop/files/Purity_Logo_Green_1.png?v=1772819292&width=618 618w" width="618" height="96" sizes="255px" class="header__logo-image"><img src="//www.purityproducts.com/cdn/shop/files/Purity_Logo_Web_White_1.png?v=1773085315&width=1637" alt="" srcset="//www.purityproducts.com/cdn/shop/files/Purity_Logo_Web_White_1.png?v=1773085315&width=510 510w, //www.purityproducts.com/cdn/shop/files/Purity_Logo_Web_White_1.png?v=1773085315&width=618 618w" width="1637" height="253" sizes="255px" class="header__logo-image header__logo-image--transparent"></a> 1862 1863<div class="header__secondary-nav"> 1864 1865<a class="button button--outline" 1866 style="--button-outline-color: var(--text-color); --button-text-color: var(--text-color);" 1867 1868 1869 1870 1871 href="https://www.purityproducts.com/pages/quiz-health-goals" 1872 1873 1874 >Take the Quiz</a> 1875<a href="/pages/rewards" class="hidden lg:block"> 1876 Rewards 1877 </a> 1878 <ul class="header__icon-list"><li> 1879 <a href="/search" class="hidden tap-area sm:block" aria-controls="search-drawer">
1880 <span class="sr-only">Search</span><svg role="presentation" stroke-width="1.5" focusable="false" width="22" height="22" class="icon icon-search" viewBox="0 0 22 22"> 1881 <circle cx="11" cy="10" r="7" fill="none" stroke="currentColor"></circle> 1882 <path d="m16 15 3 3" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1883 </svg></a> 1884 </li><li> 1885 <a href="https://www.purityproducts.com/customer_authentication/redirect?locale=en®ion_country=US" class=""> 1886 <span class="sr-only">Login</span><svg role="presentation" stroke-width="1.5" focusable="false" width="22" height="22" class="icon icon-account" viewBox="0 0 22 22"> 1887 <circle cx="11" cy="7" r="4" fill="none" stroke="currentColor"></circle> 1888 <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> 1889 </svg></a> 1890 </li><li> 1891 <a 1892 href="/cart" 1893 data-no-instant 1894 class="relative block tap-area" 1895 1896 aria-controls="cart-drawer" 1897 1898 > 1899 <span class="sr-only">Cart</span><svg role="presentation" stroke-width="1.5" focusable="false" width="22" height="22" class="icon icon-cart" viewBox="0 0 22 22"> 1900 <path d="M9.182 18.454a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.818 0Zm7.272 0a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.819 0Z" fill="currentColor"></path> 1901 <path d="M5.336 6.636H21l-3.636 8.182H6.909L4.636 3H1m8.182 15.454a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.818 0Zm7.272 0a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.819 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1902 </svg><div class="header__cart-count"> 1903 <cart-count class="count-bubble opacity-0"> 1904 <span class="sr-only">0 items</span> 1905 <span aria-hidden="true">0</span> 1906 </cart-count> 1907 </div> 1908 </a> 1909 </li> 1910 </ul> 1911 </div> 1912 </div> 1913 </store-header> 1914</height-observer><navigation-drawer 1915 mobile-opening="left" 1916 open-from="left" 1917 id="header-sidebar-menu" 1918 class="navigation-drawer drawer lg:hidden" 1919 1920 > 1921 <button 1922 is="close-button" 1923 aria-label="Close"><svg role="presentation" stroke-width="2" focusable="false" width="19" height="19" class="icon icon-close" viewBox="0 0 24 24"> 1924 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 1925 </svg></button><div class="panel-list__wrapper"> 1926 <div class="panel"> 1927 <div class="panel__wrapper" > 1928 <div class="panel__scroller v-stack gap-8"><ul class="v-stack gap-4"> 1929<li class="h3 sm:h4"><a href="/collections/bestsellers" class="group block w-full"> 1930 <span><span class="reversed-link">Bestsellers</span></span> 1931 </a></li> 1932<li class="h3 sm:h4"><a href="/collections/new-releases" class="group block w-full"> 1933 <span><span class="reversed-link">New Releases</span></span> 1934 </a></li> 1935<li class="h3 sm:h4"><a href="/collections/womens-health" class="group block w-full"> 1936 <span><span class="reversed-link">Women's Health</span></span> 1937 </a></li> 1938<li class="h3 sm:h4"><a href="/collections/mens-health" class="group block w-full"> 1939 <span><span class="reversed-link">Men's Health</span></span> 1940 </a></li> 1941<li class="h3 sm:h4"><button class="text-with-icon w-full group justify-between" aria-expanded="false" data-panel="1-0"> 1942 <span>Shop by Health Goal</span> 1943 <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"> 1944 <path d="m.75 7 3-3-3-3" fill="none" stroke="currentColor" stroke-width="1.5"></path> 1945 </svg></span> 1946 </button></li> 1947<li class="h3 sm:h4"><button class="text-with-icon w-full group justify-between" aria-expanded="false" data-panel="1-1">
1948 <span>Shop by Ingredient</span> 1949 <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"> 1950 <path d="m.75 7 3-3-3-3" fill="none" stroke="currentColor" stroke-width="1.5"></path> 1951 </svg></span> 1952 </button></li> 1953<li class="h3 sm:h4"><button class="text-with-icon w-full group justify-between" aria-expanded="false" data-panel="1-2"> 1954 <span>About Us</span> 1955 <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"> 1956 <path d="m.75 7 3-3-3-3" fill="none" stroke="currentColor" stroke-width="1.5"></path> 1957 </svg></span> 1958 </button></li> 1959<li class="h3 sm:h4"><a href="/pages/longevity" class="group block w-full"> 1960 <span><span class="reversed-link">Longevity</span></span> 1961 </a></li> 1962<li class="h3 sm:h4"><a href="/pages/rewards" class="group block w-full"> 1963 <span><span class="reversed-link">Rewards</span></span> 1964 </a></li></ul> 1965 1966<a class="button button--outline" 1967 style="--button-outline-color: var(--text-color); --button-text-color: var(--text-color);" 1968 1969 1970 1971 1972 href="https://www.purityproducts.com/pages/quiz-health-goals" 1973 1974 1975 >Take the Quiz</a></div><div class="panel-footer v-stack gap-5"><ul class="social-media " role="list"><li> 1976 <a href="https://www.facebook.com/PurityProducts" 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"> 1977 <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"/> 1978 </svg></a> 1979 </li><li> 1980 <a href="https://www.instagram.com/purityproducts" 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"> 1981 <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"/> 1982 </svg></a> 1983 </li><li> 1984 <a href="https://www.youtube.com/@purityproductstv" 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"> 1985 <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"/> 1986 </svg></a> 1987 </li><li> 1988 <a href="https://www.tiktok.com/@purityproducts" 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
1988ox="0 0 24 24"> 1989 <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"/> 1990 </svg></a> 1991 </li></ul><div class="panel-footer__localization-wrapper h-stack gap-6 md:hidden"><a href="/account" class="panel-footer__account-link bold text-sm"><svg role="presentation" stroke-width="1.5" focusable="false" width="22" height="22" class="icon icon-account" viewBox="0 0 22 22"> 1992 <circle cx="11" cy="7" r="4" fill="none" stroke="currentColor"></circle> 1993 <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> 1994 </svg>View Your Account</a></div></div></div> 1995 </div><div class="panel gap-8"> 1996 <div class="panel__wrapper internal-panel__wrapper" hidden> 1997 <ul class="v-stack gap-4"> 1998 <li class="lg:hidden"> 1999 <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"> 2000 <path d="M6 1 2 5l4 4" fill="none" stroke="currentColor" stroke-width="2"></path> 2001 </svg>Shop by Health Goal 2002 </button> 2003 </li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/joint-mobility"><span><span class="reversed-link">Mobility</span></span> 2004 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/hair-skin-beauty"><span><span class="reversed-link">Hair & Skin</span></span> 2005 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/brain-focus"><span><span class="reversed-link">Brain & Focus</span></span> 2006 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/heart-and-vessels"><span><span class="reversed-link">Heart & Vessels</span></span> 2007 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/immune-support"><span><span class="reversed-link">Immunity</span></span> 2008 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/gut-health-digestion"><span><span class="reversed-link">Gut Health</span></span> 2009 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/metabolism-weight"><span><span class="reversed-link">Metabolism & Weight</span></span> 2010 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/mood-and-sleep"><span><span class="reversed-link">Mood & Sleep</span></span> 2011 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/energy-strength"><span><span class="reversed-link">Energy & Strength</span></span> 2012 </a></li></ul></div><div class="panel__wrapper internal-panel__wrapper" hidden> 2013 <ul class="v-stack gap-4"> 2014 <li class="lg:hidden"> 2015 <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"> 2016 <path d="M6 1 2 5l4 4" fill="none" stroke="currentColor" stroke-width="2"></path> 2017 </svg>Shop by Ingredient 2018 </button> 2019 </li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/multivitamins"><span><span class="reversed-link">Multivitamins</span></span> 2020 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/vitamins"><span><span class="reversed-link">Vitamins (B, C, D)</span></span> 2021 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/omega-3-and-krill-oil"><span><span class="reversed-link">
2021Omega-3 / Krill Oil</span></span> 2022 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/magnesium"><span><span class="reversed-link">Magnesium</span></span> 2023 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/coq10"><span><span class="reversed-link">CoQ10</span></span> 2024 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/antioxidants"><span><span class="reversed-link">Antioxidants</span></span> 2025 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/hyaluronic-acid"><span><span class="reversed-link">Hyaluronic Acid</span></span> 2026 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/collagen"><span><span class="reversed-link">Collagen</span></span> 2027 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/creatine"><span><span class="reversed-link">Creatine</span></span> 2028 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/probiotics"><span><span class="reversed-link">Probiotics</span></span> 2029 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/superfoods"><span><span class="reversed-link">Superfoods</span></span> 2030 </a></li></ul></div><div class="panel__wrapper internal-panel__wrapper" style="--panel-wrapper-justify-content: flex-start" hidden> 2031 <ul class="v-stack gap-4"> 2032 <li class="lg:hidden"> 2033 <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"> 2034 <path d="M6 1 2 5l4 4" fill="none" stroke="currentColor" stroke-width="2"></path> 2035 </svg>About Us 2036 </button> 2037 </li><li class="h3 sm:h4"><a class="group block w-full" href="/pages/our-story"><span><span class="reversed-link">Our Story</span></span> 2038 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/pages/the-purity-difference"><span><span class="reversed-link">The Purity Difference</span></span> 2039 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/pages/purity-champions"><span><span class="reversed-link">Purity Champions</span></span> 2040 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/pages/purity-charity-in-action"><span><span class="reversed-link">Purity Charity in Action</span></span> 2041 </a></li></ul> 2042 2043 2044 2045<style> 2046 #navigation-promo-mega_menu_yMHHRX-drawer-4- { 2047 --navigation-promo-grid: 2048 2049 auto / repeat(2, minmax(var(--mega-menu-promo-grid-image-min-width), var(--mega-menu-promo-grid-image-max-width))) 2050 2051 2052; 2053 --mega-menu-promo-grid-image-max-width: 300px; 2054 --mega-menu-promo-grid-image-min-width: 172px; 2055 --promo-heading-font-size: var(--text-h5); 2056 --content-over-media-row-gap: var(--spacing-3); 2057 --content-over-media-column-gap: var(--spacing-4);--navigation-promo-gap: var(--spacing-2); 2058 --panel-wrapper-justify-content: flex-start;} 2059 2060 #navigation-promo-mega_menu_yMHHRX-drawer-4- .navigation-promo__carousel-controls {inset-block-end: var(--content-over-media-column-gap);} 2061 2062 @media screen and (min-width:700px) { 2063 #navigation-promo-mega_menu_yMHHRX-drawer-4- {--promo-heading-font-size: var(--text-h6);--mega-menu-promo-grid-image-min-width: 192px; 2064 --content-over-media-row-gap: var(--spacing-4); 2065 --content-over-media-column-gap: var(--spacing-5); 2066 } 2067 }@media screen and (min-width: 1150px) { 2068 #navigation-promo-mega_menu_yMHHRX-drawer-4- { 2069 --promo-heading-font-size: var(--text-h5); 2070 --content-over-media-row-gap: var(--spacing-5); 2071 --content-over-media-column-gap: var(--spacing-7); 2072 --mega-menu-promo-grid-image-min-width: 220px; 2073 2074 2075 } 2076 }</style><div 2077 class="navigation-promo__wrapper " 2078 id="navigation-promo-mega_menu_yMHHRX-drawer-4-" 2079><div class="navigation-promo navigation-promo--grid scroll-area bleed"> 2080 <a href="/pages/our-story" 2081 class="content-over-media rounded-sm group bg-custom" 2082 style="--text-color: 255 255 255; grid-area: ; --background: 0 51 20;"> 2083 2084 2085 2086<img src="//www.purityproducts.com/cdn/shop/files/about1.jpg?v=1772552917&width=500" alt="Our Story" srcset="//www.purityproducts.com/cdn/shop/files/about1.jpg?v=1772552917&width=200 200w, //www.purityproducts.com/cdn/shop/files/about1.jpg?v=1772552917&width=300 300w, //www.purityproducts.com/cdn/shop/files/about1.jpg?v=1772552917&width=400 400w, //www.purityproducts.com/cdn/shop/files/about1.jpg?v=1772552917&width=500 500w" width="500" height="500" loading="lazy" sizes="(max-width: 699px) 172px, (max-width: 1149px) 192px,220px 2087" class="zoom-image"><div class="place-self-end-start text-custom"> 2088 <h4 class="bold" style="font-size: var(--promo-heading-font-size); line-height: var(--promo-heading-line-height, 1.4)">Our Story</h4> 2089 </div></a><a href="/pages/purity-champions" 2090 class="content-over-media rounded-sm group bg-custom" 2091 style="--text-color: 255 255 255; grid-area: ; --background: 0 51 20;"> 2092 2093 2094 2095<img src="//www.purityproducts.com/cdn/shop/files/about2.jpg?v=1772551877&width=500" alt="Purity Champions" srcset="//www.purityproducts.com/cdn/shop/files/about2.jpg?v=1772551877&width=200 200w, //www.purityproducts.com/cdn/shop/files/about2.jpg?v=1772551877&width=300 300w, //www.purityproducts.com/cdn/shop/files/about2.jpg?v=1772551877&width=400 400w, //www.purityproducts.com/cdn/shop/files/about2.jpg?v=1772551877&width=500 500w" width="500" height="500" loading="lazy" sizes="(max-width: 699px) 172px, (max-width: 1149px) 192px,220px 2096" class="zoom-image"><div class="place-self-end-start text-custom"> 2097 <h4 class="bold" style="font-size: var(--promo-heading-font-size); line-height: var(--promo-heading-line-height, 1.4)">Purity Champions</h4> 2098 </div></a> 2099 </div></div> 2100</div> 2101 </div></div></navigation-drawer>
2101<script> 2102 document.documentElement.style.setProperty( 2103 '--header-height', 2104 Math.round(document.getElementById('shopify-section-sections--26983444414752__header').clientHeight) + 'px' 2105 ); 2106</script>
2106 2107 2108 2109<style> #shopify-section-sections--26983444414752__header [id^="navigation-promo-mega_menu"] > div > a > div > h4 {font-size: 16px !important; line-height: 1.2 !important; color: #003314 !important; margin-bottom: -10px !important;} </style></header> 2110<!-- END sections: header-group --><!-- BEGIN sections: overlay-group --> 2111<div id="shopify-section-sections--27903952945440__cart-drawer" class="shopify-section shopify-section-group-overlay-group"><style> 2112 #cart-drawer .cart-drawer__inner [data-rebuy-id] .rebuy-widget-content { 2113 display: flex; 2114 flex-direction: column; 2115 } 2116 #cart-drawer .cart-drawer__inner [data-rebuy-id] .primary-title { 2117 order: -2; 2118 font-size: 0; 2119 line-height: 0; 2120 margin-bottom: 0; 2121 } 2122 #cart-drawer .cart-drawer__inner [data-rebuy-id] .primary-title::before { 2123 content: "Handpicked For You â 30% OFF"; 2124 display: block; 2125 font-size: 20px; 2126 line-height: 20px; 2127 text-align: center; 2128 margin-bottom: 1rem; 2129 } 2130 cart-drawer .flickity-viewport:has(.flickity-slider:empty){ 2131 display: none !important; 2132 } 2133 #cart-drawer .cart-drawer__inner [data-rebuy-id] .rebuy-timer { 2134 order: -1; 2135 padding-top: 6px; 2136 padding-bottom: 12px; 2137 } 2138 #cart-drawer .cart-drawer__inner [data-rebuy-id] .rebuy-product-media { 2139 position: relative; 2140 } 2141 2142 .cart-drawer__inner .rebuy-widget.rebuy-widget .rebuy-product-grid.small-columns-1 .rebuy-product-block{ 2143 padding: 20px; 2144} 2145</style> 2146 2147<cart-drawer 2148 2149 class="cart-drawer drawer drawer--lg" 2150 id="cart-drawer" 2151 2152 data-rebuy-cart-widget="304455" 2153 2154 2155 data-rebuy-empty-widget="307468" 2156 2157><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"> 2158 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 2159 </svg></button> 2160 2161 <div class="empty-state align-self-center empty-state--compact"> 2162 <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"> 2163 <path d="M9.182 18.454a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.818 0Zm7.272 0a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.819 0Z" fill="currentColor"></path> 2164 <path d="M5.336 6.636H21l-3.636 8.182H6.909L4.636 3H1m8.182 15.454a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.818 0Zm7.272 0a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.819 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 2165 </svg><span class="count-bubble count-bubble--lg">0</span> 2166 </div> 2167 2168 <div class="prose"> 2169 <p class="h5">Your cart is empty</p> 2170<a class="button button--xl" 2171 2172 2173 2174 2175 2176 href="/collections/all" 2177 2178 2179 >Continue shopping</a></div> 2180 </div><div class="cart-drawer__empty-recommendations" data-rebuy-id="307468"></div></cart-drawer> 2181 2182 2183</div><div id="shopify-section-sections--27903952945440__search-drawer" class="shopify-section shopify-section-group-overlay-group"><search-drawer class="search-drawer drawer drawer--lg" id="search-drawer"> 2184 <form action="/search" method="get" class="v-stack gap-5 sm:gap-8" role="search"> 2185 <div class="search-input"> 2186 <input type="search" name="q" placeholder="Search for..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" aria-label="Search"> 2187 <button type="reset" class="text-subdued">Clear</button> 2188 <button type="button" is="close-button"> 2189 <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"> 2190 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 2191 </svg></button> 2192 </div> 2193 2194 <predictive-search class="predictive-search" section-id="sections--27903952945440__search-drawer"><div slot="results"></div> 2195 2196 <div slot="loading"> 2197 <div class="v-stack gap-5 sm:gap-6 "> 2198 <div class="h-stack gap-4 sm:gap-5">
2198<span class="skeleton skeleton--tab"></span><span class="skeleton skeleton--tab"></span><span class="skeleton skeleton--tab"></span></div> 2199 2200 <div class="v-stack gap-4 sm:gap-6"><div class="h-stack align-center gap-5 sm:gap-6"> 2201 <span class="skeleton skeleton--thumbnail"></span> 2202 2203 <div class="v-stack gap-3 w-full"> 2204 <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span> 2205 <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span> 2206 <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span> 2207 </div> 2208 </div><div class="h-stack align-center gap-5 sm:gap-6"> 2209 <span class="skeleton skeleton--thumbnail"></span> 2210 2211 <div class="v-stack gap-3 w-full"> 2212 <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span> 2213 <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span> 2214 <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span> 2215 </div> 2216 </div><div class="h-stack align-center gap-5 sm:gap-6"> 2217 <span class="skeleton skeleton--thumbnail"></span> 2218 2219 <div class="v-stack gap-3 w-full"> 2220 <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span> 2221 <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span> 2222 <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span> 2223 </div> 2224 </div><div class="h-stack align-center gap-5 sm:gap-6"> 2225 <span class="skeleton skeleton--thumbnail"></span> 2226 2227 <div class="v-stack gap-3 w-full"> 2228 <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span> 2229 <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span> 2230 <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span> 2231 </div> 2232 </div></div> 2233 </div></div> 2234 </predictive-search> 2235 </form> 2236</search-drawer> 2237 2238</div> 2239<!-- END sections: overlay-group --><main role="main" id="main" class="anchor"> 2240 <section id="shopify-section-template--26983445070112__rich_text_Uw3aQF" class="shopify-section shopify-section--rich-text"><style> 2241 #shopify-section-template--26983445070112__rich_text_Uw3aQF { 2242 --section-background-hash: 0; 2243 } 2244 2245 #shopify-section-template--26983445070112__rich_text_Uw3aQF + * { 2246 --previous-section-background-hash: 0; 2247 }</style><style> 2248 #shopify-section-template--26983445070112__rich_text_Uw3aQF { 2249 background: transparent; 2250 --rich-text-max-width: 780px 2251 } 2252 </style> 2253 2254 <div class="section section-full section-blends"><div class="rich-text justify-center "> 2255 <div class="rich-text__wrapper"> 2256 <div class="prose justify-items-center text-center"><h2 class="h1 hyphenate" >Store Locator</h2><div ><p>Only select products available in stores including MyBiotin® ProClinical Capsules & Gummies, MyBiotin®, MyVitaminB12⢠ProClinical, MyVitaminC⢠- Collagen Factor C, MyCollagen⢠and MyHA⢠ProClinical.</p></div></div> 2257 </div> 2258 </div> 2259 </div> 2260</section><section id="shopify-section-template--26983445070112__custom_html_hCdHnc" class="shopify-section shopify-section--custom-html"><style> 2261 #shopify-section-template--26983445070112__custom_html_hCdHnc { 2262 2263 2264 } 2265 </style><style> 2266 #shopify-section-template--26983445070112__custom_html_hCdHnc { 2267 --section-background-hash: 0; 2268 } 2269 2270 #shopify-section-template--26983445070112__custom_html_hCdHnc + * { 2271 --previous-section-background-hash: 0; 2272 }</style><div class="section section-full section-blends"> 2273
2273<script> 2274 window.aisleStoreLocatorConfigurations = window.aisleStoreLocatorConfigurations || {}; 2275 window.aisleStoreLocatorConfigurations['cmow0ipd100015752zbof8a54'] = { 2276 widgetId: 'cmow0ipd100015752zbof8a54', 2277 rootTargetElement: 'aisle-store-locator__cmow0ipd100015752zbof8a54', 2278 isStoreLocator: true, 2279 }; 2280</script>
vendor: 1 bytes, line 2280
2280
2281<script defer src="https://cdn.gotoaisle.com/store-locators-v1/script/loader/storeLocatorLoader.js" onload="window.aisleLoader.loadAssets(window.aisleStoreLocatorConfigurations['cmow0ipd100015752zbof8a54'])"> 2282</script>
2282 2283<div id="aisle-store-locator__cmow0ipd100015752zbof8a54"></div> 2284 </div> 2285</section> 2286<!-- BEGIN sections: footer-group --> 2287<section id="shopify-section-sections--26983444381984__custom_liquid_i9gbip" class="shopify-section shopify-section-group-footer-group shopify-section--custom-liquid"> 2288</section><footer id="shopify-section-sections--26983444381984__footer" class="shopify-section shopify-section-group-footer-group shopify-section--footer"><style> 2289 @media screen and (min-width: 1000px) { 2290 #shopify-section-sections--26983444381984__footer {--footer-block-list-gap: var(--spacing-10);--footer-block-list-justify-content: space-between; 2291 } 2292 } 2293 </style><div class="footer"> 2294 <div class="container"> 2295 <div class="footer__wrapper"><div class="footer__block-list empty:hidden"><div class="footer__block footer__block--newsletter" ><img src="//www.purityproducts.com/cdn/shop/files/footer-image.png?v=1763496857&width=1200" alt="" srcset="//www.purityproducts.com/cdn/shop/files/footer-image.png?v=1763496857&width=50 50w, //www.purityproducts.com/cdn/shop/files/footer-image.png?v=1763496857&width=100 100w" width="1200" height="1200" loading="lazy" style="max-width: 50px" sizes="50px"><div class="v-stack gap-6"><h3 class="h3">Enjoy Life Healthier</h3><div class="prose text-subdued"><p>Get expert tips, wellness advice, and exclusive offers delivered straight to your inbox.</p></div><form method="post" action="/contact#footer-newsletter" id="footer-newsletter" accept-charset="UTF-8" class="footer__newsletter-form form gap-2"><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--26983444381984__footer--contactemail" class="input is-floating" type="email" dir="ltr" name="contact[email]" placeholder=" " 2296 2297 2298 2299 2300 autocomplete="email" 2301 2302 enterkeyhint="send" 2303 required 2304 2305><label for="input-sections--26983444381984__footer--contactemail" class="floating-label">E-mail</label><div class="self-submit-button"> 2306 <button type="submit" class="circle-chevron hover:colors"> 2307 <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"> 2308 <path d="m.75 7 3-3-3-3" fill="none" stroke="currentColor" stroke-width="1.5"></path> 2309 </svg></button> 2310 </div></div></form></div> 2311 </div><div class="footer__block footer__block--text" ><p class="bold">Contact Us</p><div class="prose text-subdued"><p>Order Line: <a href="tel:1-800-256-6102" title="tel:1-800-256-6102">1-800-256-6102</a><br/>Mon - Sat 9 AM - 9 PM EST.</p><p>Support: <a href="tel:1-800-256-6102" title="tel:1-888-769-7873">1-888-769-7873</a><br/>Mon - Fri 9 AM - 9 PM EST.</p><p></p></div></div><div class="footer__block footer__block--menu" ><p class="bold">Customer Service</p><ul class="v-stack gap-3" role="list"><li> 2312 <a href="/pages/shipping-returns" class="inline-block link-faded break-all">Shipping & Returns</a> 2313 </li><li> 2314 <a href="/pages/rewards" class="inline-block link-faded break-all">Rewards</a> 2315 </li><li> 2316 <a href="/pages/contact-us" class="inline-block link-faded break-all">Contact Us</a> 2317 </li><li> 2318 <a href="https://shopify.com/96727367968/account/orders?locale=en®ion_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJtYWhycmctd3UubXlzaG9waWZ5LmNvbSIsImZsYWdzIjpbXSwiZXhwIjoxNzkxNjczOTA0LCJuYmYiOjE3OTEwNjkxMDR9.BEQNCmBZ8_ZzZDHL-zMuAS7PqBNt956WSbofWfNXMhU" class="inline-block link-faded break-all">Order Status</a> 2319 </li><li> 2320 <a href="/pages/store-locator" class="inline-block link-faded break-all">Find a Store</a> 2321 </li><li> 2322 <a href="/pages/hsa-fsa-eligible" class="inline-block link-faded break-all">HSA/FSA</a> 2323 </li><li> 2324 <a href="/pages/faq" class="inline-block link-faded break-all">FAQs</a> 2325 </li></ul> 2326 </div><div class="footer__block footer__block--menu" ><p class="bold">About Us</p><ul class="v-stack gap-3" role="list"><li> 2327 <a href="/pages/our-story" class="inline-block link-faded break-all">Our Story</a> 2328 </li><li> 2329 <a href="/pages/the-purity-difference" class="inline-block link-faded break-all">The Purity Difference</a> 2330 </li><li> 2331 <a href="/pages/purity-champions" class="inline-block link-faded break-all">Purity Champions</a> 2332 </li><li> 2333 <a href="/pages/purity-charity-in-action" class="inline-block link-faded break-all">Purity Charity in Action</a> 2334 </li><li> 2335 <a href="https://purityproducts.superfiliate.com/portal" class="inline-block link-faded break-all">Affiliate Program</a> 2336 </li><li> 2337 <a href="/pages/catalog" class="inline-block link-faded break-all">Download Catalog</a> 2338 </li><li> 2339 <a href="/blogs/purity-blog" class="inline-block link-faded break-all">Blog</a> 2340 </li></ul> 2341 </div></div><div class="footer__aside empty:hidden"><div class="footer__aside-top"><ul class="social-media " role="list"><li> 2342 <a href="https://www.facebook.com/PurityProducts" 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" viewB
2342ox="0 0 24 24"> 2343 <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"/> 2344 </svg></a> 2345 </li><li> 2346 <a href="https://www.instagram.com/purityproducts" 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"> 2347 <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"/> 2348 </svg></a> 2349 </li><li> 2350 <a href="https://www.youtube.com/@purityproductstv" 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"> 2351 <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"/> 2352 </svg></a> 2353 </li><li> 2354 <a href="https://www.tiktok.com/@purityproducts" 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" viewBox="0 0 24 24"> 2355 <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"/> 2356 </svg></a> 2357 </li></ul><div class="h-stack gap-6"><div class="relative"> 2358 <button type="button" class="text-with-icon gap-2.5 group" aria-label="Change country or currency" aria-controls="popover-localization-form-country--sections--26983444381984__footer" aria-expanded="false"> 2359 <div class="h-stack gap-2"><span class="bold text-sm">United States (USD $)</span> 2360 </div><svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7"> 2361 <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path> 2362 </svg></button> 2363 2364 <x-popover id="popover-localization-form-country--sections--26983444381984__footer" initial-focus="[aria-selected='true']" anchor-horizontal="end" anchor-vertical="start" class="popover"> 2365 <p class="h5" slot="title">Country</p><form method="post" action="/localization" id="localization-form-country--sections--26983444381984__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="/pages/store-locator" /><x-listbox class="popover-listbox popover-listbox--sm" role="listbox"><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CA" >
2366 <span class="country-flags country-flags--CA"></span> 2367 <span>Canada (USD $)</span> 2368 </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="US" aria-selected="true"> 2369 <span class="country-flags country-flags--US"></span> 2370 <span>United States (USD $)</span> 2371 </button></x-listbox></form></x-popover> 2372 </div><div class="relative"> 2373 <button type="button" class="text-with-icon gap-2.5 group" aria-label="Change language" aria-controls="popover-localization-form-locale--sections--26983444381984__footer" aria-expanded="false"> 2374 <span class="bold text-sm">English</span><svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7"> 2375 <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path> 2376 </svg></button> 2377 2378 <x-popover id="popover-localization-form-locale--sections--26983444381984__footer" initial-focus="[aria-selected='true']" anchor-horizontal="end" anchor-vertical="start" class="popover"> 2379 <p class="h5" slot="title">Language</p><form method="post" action="/localization" id="localization-form-locale--sections--26983444381984__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="/pages/store-locator" /><x-listbox class="popover-listbox popover-listbox--sm" role="listbox"><button type="submit" class="popover-listbox__option" name="locale_code" role="option" value="en" aria-selected="true">English</button><button type="submit" class="popover-listbox__option" name="locale_code" role="option" value="es" >Español</button></x-listbox></form></x-popover> 2380 </div></div></div><div class="footer__aside-bottom"><div class="footer__badges flex-row border-t-1"> 2381 <ul><li><img 2382 src="//www.purityproducts.com/cdn/shop/files/bbb-trust.png?v=1772134629" 2383 alt="" 2384 title="" 2385 width="127" 2386 height="48" 2387 ></li><li><img 2388 src="//www.purityproducts.com/cdn/shop/files/godaddy-siteseal_2.png?v=1772134640" 2389 alt="" 2390 title="" 2391 width="199" 2392 height="48" 2393 ></li><li><img 2394 src="//www.purityproducts.com/cdn/shop/files/60day_3.png?v=1772135241" 2395 alt="" 2396 title="" 2397 width="143" 2398 height="48" 2399 ></li></ul> 2400 <div class="footer__badges-separator"></div> 2401 2402 2403 <div class="footer__int_customer_badge"><p>International customer?</p> 2404 <a href="https://in.iherb.com/c/purity-products" target="_blank"> 2405 2406 2407 <img 2408 src="//www.purityproducts.com/cdn/shop/files/Layer_1.png?v=1769457459" 2409 alt="Purity Products" 2410 width="100px" 2411 height="32px" 2412 > 2413 2414 </a> 2415 2416</div></div><div class="footer__copyright v-stack gap-4"> 2417 <p class="text-sm text-subdued">© 2026, Purity Products.</p><ul class="footer__policy-links unstyled-list"><li class="contents"> 2418 <a href="/policies/terms-of-service" class="text-sm link-faded">Terms of Service</a> 2419 </li><li class="contents"> 2420 <a href="/pages/copyright-and-intellectual-property-notice" class="text-sm link-faded">Copyright & Intellectual Property Notice</a> 2421 </li><li class="contents"> 2422 <a href="/pages/security-notice" class="text-sm link-faded">Security Notice</a> 2423 </li><li class="contents"> 2424 <a href="/pages/accessibility-statement" class="text-sm link-faded">Accessibility Statement</a> 2425 </li><li class="contents"> 2426 <a href="/pages/cookie-policy" class="text-sm link-faded">Cookie Policy</a> 2427 </li><li class="contents"> 2428 <a href="/policies/privacy-policy" class="text-sm link-faded">Privacy Policy</a> 2429 </li><li class="contents"> 2430 <a href="/pages/privacy-policy-california" class="text-sm link-faded">Privacy Notice for California Residents</a> 2431 </li><li class="contents"> 2432 <a href="/pages/consumer-health-data-privacy-policy" class="text-sm link-faded">Consumer Health Data Privacy Policy</a> 2433 </li></ul><p class="text-sm text-subdued footer__disclaimer">*These statements have not been evaluated by the Food and Drug Administration. These products are not intended to diagnose, treat, cure or prevent any disease.</p></div> 2434 </div> 2435 </div> 2436 </div> 2437 </div> 2438</div> 2439 2440 2441<style> #shopify-section-sections--26983444381984__footer .h3 {text-wrap: balance; font-size: 30px;} #shopify-section-sections--26983444381984__footer .social-media {padding-bottom: 30px;} </style></footer> 2442<!-- END sections: footer-group --></main>
2442<script> 2443 (function() { 2444 if (!document.body) return; 2445 2446 const storageKey = 'last-seen-customer-id'; 2447 const currentCustomerId = document.body.getAttribute('data-customer-id'); 2448 2449 if (!currentCustomerId) { 2450 try { 2451 if (window.localStorage) localStorage.removeItem(storageKey); 2452 } catch (e) {} 2453 return; 2454 } 2455 2456 let lastSeenCustomerId = null; 2457 try { 2458 if (window.localStorage) lastSeenCustomerId = localStorage.getItem(storageKey); 2459 } catch (e) {} 2460 2461 if (lastSeenCustomerId === currentCustomerId) return; 2462 2463 fetch('/cart/update.js', { 2464 method: 'POST', 2465 headers: { 2466 'Content-Type': 'application/json', 2467 'Accept': 'application/json' 2468 }, 2469 body: JSON.stringify({ note: '' }) 2470 }) 2471 .then(function(response) { 2472 if (!response.ok) throw new Error('Cart update failed'); 2473 return response.json(); 2474 }) 2475 .then(function() { 2476 try { 2477 if (window.localStorage) localStorage.setItem(storageKey, currentCustomerId); 2478 } catch (e) {} 2479 document.dispatchEvent(new CustomEvent('cart:refresh', { bubbles: true })); 2480 }) 2481 .catch(function(error) { 2482 console.error('Error updating cart note after login:', error); 2483 }); 2484 })(); 2485</script>
vendor: 1 bytes, line 2485
2485
2486<script src="//www.purityproducts.com/cdn/shop/t/38/assets/cross-sell-cart.js?v=123423908414443129441787223526" defer></script>
2486 2487
2487<script> 2488void (function addJointGelBestsellerBadge() { 2489 const PRODUCT_HANDLE = "jointgel-mixed-berry"; 2490 const BADGE_TEXT = "Bestseller"; 2491 const BADGE_CLASS = "cw-jointgel-bestseller-badge"; 2492 2493 const applyBadge = (root = document) => { 2494 root 2495 .querySelectorAll(`product-card[handle="${PRODUCT_HANDLE}"], .product-card[handle="${PRODUCT_HANDLE}"]`) 2496 .forEach((card) => { 2497 if (card.querySelector(`.${BADGE_CLASS}`)) return; 2498 2499 let badgeList = card.querySelector(".product-card__badge-list"); 2500 2501 if (!badgeList) { 2502 badgeList = document.createElement("div"); 2503 badgeList.className = "product-card__badge-list"; 2504 2505 const figure = card.querySelector(".product-card__figure"); 2506 if (figure) { 2507 figure.insertAdjacentElement("beforebegin", badgeList); 2508 } else { 2509 card.prepend(badgeList); 2510 } 2511 } 2512 2513 const badge = document.createElement("span"); 2514 badge.className = `badge badge--primary ${BADGE_CLASS}`; 2515 badge.textContent = BADGE_TEXT; 2516 2517 badgeList.appendChild(badge); 2518 }); 2519 }; 2520 2521 applyBadge(); 2522 2523 document.addEventListener("cw:bestseller-products-updated", () => { 2524 applyBadge(); 2525 }); 2526 2527 const observer = new MutationObserver((mutations) => { 2528 for (const mutation of mutations) { 2529 for (const node of mutation.addedNodes) { 2530 if (!(node instanceof Element)) continue; 2531 2532 if ( 2533 node.matches?.(`product-card[handle="${PRODUCT_HANDLE}"], .product-card[handle="${PRODUCT_HANDLE}"]`) || 2534 node.querySelector?.(`product-card[handle="${PRODUCT_HANDLE}"], .product-card[handle="${PRODUCT_HANDLE}"]`) 2535 ) { 2536 applyBadge(node.matches?.(`product-card[handle="${PRODUCT_HANDLE}"], .product-card[handle="${PRODUCT_HANDLE}"]`) ? node.parentElement : node); 2537 } 2538 } 2539 } 2540 }); 2541 2542 observer.observe(document.body, { 2543 childList: true, 2544 subtree: true 2545 }); 2546})(); 2547</script>
vendor: 1 bytes, line 2547
2547
2548<script> 2549(function () { 2550 const TARGET_PATH = "/products/jointgel-mixed-berry"; 2551 const BADGE_ATTRIBUTE = "data-jointgel-bestseller"; 2552 2553 if (window.location.pathname.replace(/\/$/, "") !== TARGET_PATH) return; 2554 2555 function addBestsellerBadge() { 2556 const productInfo = 2557 document.querySelector("safe-sticky.product-info") || 2558 document.querySelector(".product-info"); 2559 2560 if (!productInfo) return; 2561 2562 if (productInfo.querySelector(`[${BADGE_ATTRIBUTE}]`)) return; 2563 2564 let badgesBlock = productInfo.querySelector( 2565 '.product-info__block-item[data-block-type="badges"]' 2566 ); 2567 2568 let badgeList = badgesBlock?.querySelector(".product-info__badge-list"); 2569 2570 if (!badgesBlock) { 2571 badgesBlock = document.createElement("div"); 2572 badgesBlock.className = "product-info__block-item"; 2573 badgesBlock.dataset.blockId = "jointgel-bestseller-badge"; 2574 badgesBlock.dataset.blockType = "badges"; 2575 2576 const firstProductBlock = productInfo.querySelector( 2577 ".product-info__block-item" 2578 ); 2579 2580 if (firstProductBlock) { 2581 firstProductBlock.insertAdjacentElement("beforebegin", badgesBlock); 2582 } else { 2583 productInfo.prepend(badgesBlock); 2584 } 2585 } 2586 2587 if (!badgeList) { 2588 badgeList = document.createElement("div"); 2589 badgeList.className = "product-info__badge-list"; 2590 badgesBlock.prepend(badgeList); 2591 } 2592 2593 const badge = document.createElement("span"); 2594 badge.className = "badge badge--primary"; 2595 badge.textContent = "Bestseller"; 2596 badge.setAttribute(BADGE_ATTRIBUTE, "true"); 2597 2598 badgeList.prepend(badge); 2599 } 2600 2601 addBestsellerBadge(); 2602 2603 const observer = new MutationObserver(() => { 2604 addBestsellerBadge(); 2605 }); 2606 2607 observer.observe(document.documentElement, { 2608 childList: true, 2609 subtree: true 2610 }); 2611 2612 window.addEventListener("pageshow", addBestsellerBadge); 2613})(); 2614</script>
2614 2615
2615<script src="//www.purityproducts.com/cdn/shop/t/38/assets/accordions-injection.js?v=37016437759297575811787123279" defer></script>
2615<script src="//www.purityproducts.com/cdn/shop/t/38/assets/growth-discount.js?v=27381031080720655581790783522" defer></script>
2615 2616 2617 <style> </style> 2618<div id="shopify-block-AT0owZzZkT3YxaUxyM__17824471530847535147" class="shopify-block shopify-app-block"><div id='widget-config' style="opacity:0; font-size: 1px;">{"statementLink":"","footerHtml":" ","consistentHelpData":[],"hideMobile":false,"hideTrigger":false,"disableBgProcess":false,"language":"en","position":"left","leadColor":"#146ff8","triggerColor":"#146ff8","triggerRadius":"50%","triggerPositionX":"right","triggerPositionY":"bottom","triggerIcon":"people","triggerSize":"medium","triggerOffsetX":20,"triggerOffsetY":20,"mobile":{"triggerSize":"small","triggerPositionX":"right","triggerPositionY":"bottom","triggerOffsetX":10,"triggerOffsetY":10,"triggerRadius":"50%"}}</div> 2619<div id='widget-status' style="opacity:0; font-size: 1px;"></div>
2620<script> 2621 ( 2622 function () { 2623 const s = document.createElement('script'); 2624 const h = document.querySelector('head') || document.body; 2625 const widgetConfigEle = document.getElementById('widget-config'); 2626 const widgetConfig = JSON.parse(widgetConfigEle.innerHTML); 2627 2628 if (widgetConfig.footerHtml === '') { 2629 widgetConfig.footerHtml = ' '; 2630 } 2631 2632 widgetConfigEle.style.display = 'none'; 2633 2634 const widgetStatusEle = document.getElementById('widget-status'); 2635 const widgetStatus = widgetStatusEle.innerHTML; 2636 widgetStatusEle.style.display = 'none'; 2637 s.src = 'https://acsbapp.com/apps/app/dist/js/app.js'; 2638 s.async = true; 2639 s.onload = function () { 2640 acsbJS.init(widgetConfig); 2641 }; 2642 if (widgetStatus === '' || widgetStatus === 'true') { 2643 h.appendChild(s); 2644 } 2645 })(); 2646</script>
2646 2647 2648</div><div id="shopify-block-AK0h3cTVsZkRtSWZvY__back-in-stock-restock-alerts-4bb73be2-b7c2-4870-949f-c528145452a3" class="shopify-block shopify-app-block"><link rel="preconnect" href="https://app.restockrocket.io" crossorigin><!-- Config and setup JS -->
2649<script id="RestockRocketConfig"> 2650 window._RestockRocketConfig = window._RestockRocketConfig || {} 2651 window._RestockRocket = window._RestockRocket || {} 2652 window._Stoq = window._RestockRocket 2653 window._StoqConfig = window._RestockRocketConfig 2654 try { window._RestockRocket.inlineRanAt = performance.now(); } catch (e) { } 2655 function normalizeLocale(locale) { 2656 if (!locale || locale.trim() === '') { 2657 return ''; 2658 } 2659 return locale.toString().toLowerCase().replace(/-/g, '_'); 2660 } 2661 2662 window._RestockRocketConfig.locale = 'en'; 2663 window._RestockRocketConfig.normalizedLocale = normalizeLocale('en'); 2664 window._RestockRocketConfig.shop = 'mahrrg-wu.myshopify.com'; 2665 window._RestockRocketConfig.pageType = 'page'; 2666 window._RestockRocketConfig.liquidRenderedAt = 1791069104;window._RestockRocketConfig.marketId = 97149419808;window._RestockRocketConfig.countryName = 'United States'; 2667 window._RestockRocketConfig.countryIsoCode = 'US';window._RestockRocketConfig.languageIsoCode = 'en';window._RestockRocketConfig.cartInventoryQuantity = {}; 2668 if (!window._RestockRocketConfig.cartToken) { 2669 try { 2670 const m = document.cookie.match(/(?:^|;\s*)cart=([^;]+)/); 2671 if (m && m[1]) window._RestockRocketConfig.cartToken = decodeURIComponent(m[1]); 2672 } catch (e) { } 2673 } 2674window._RestockRocketConfig.cachedSettings = {"id":60275,"shop_id":60255,"currency":"USD","created_at":"2026-04-20T16:06:05.054Z","updated_at":"2026-10-02T09:29:48.400Z","enable_app":true,"enable_signup_widget":true,"storefront_button_text":"Notify Me When Available","storefront_button_text_color":"#003314","storefront_button_background_color":"#FBD069","storefront_form_header":"Notify Me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify Me When Available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#003314","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":false,"show_button_on_preorder":false,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"/* Theme defaults from Impact (any version) */\r\n.restock-rocket-button.restock-rocket-button-product { text-align: center !important; height: 62px !important; font-family: 'Satoshi Bold' !important; }\r\n.restock-rocket-button.restock-rocket-button-collection { text-align: center !important; } .restock-rocket-quick-add-button { height: 46px !important; font-weight: 700 !important; }\r\n","js_config":"","collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too!","show_button_on_collection":true,"sms_default_country":"us","sms_allowed_countries":[],"sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_custom_domain_enabled":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":60,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":".product-info__buy-buttons .shopify-product-form","insert_button_after_selector_type":"afterend","storefront_button_position_type":"specific","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"Preorders must be purchased
2674separately from regular items. Please complete your current order first, or clear your cart to continue.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#003314","collection_page_button_background_color":"#FBD069","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":".product-card__info","insert_button_after_selector_index":".product-card__info","push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again.","storefront_font_family":"âBarlowâ, sans-serif","insert_button_after_selector_collection_type":"beforeend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send push notification","insert_button_after_selector_page":".product-card__info","show_button_on_page":false,"insert_button_after_selector_search":".product-card__info","show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"[href*=\"/products/\"]","index_link_selector":"[href*=\"/products/\"]","page_link_selector":"[href*=\"/products/\"]","search_link_selector":"[href*=\"/products/\"]","collection_check_link_visibility":true,"collection_buttons_container":".product-list","index_buttons_container":".product-list","page_buttons_container":".product-list","search_buttons_container":".product-list","extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when itâs restocked again by entering your details below!","preorder_enabled":false,"preorder_buy_button_selector":"shopify-buy-it-now-button","preorder_add_to_cart_button_selector":".button.button--xl.button--secondary","preorder_badge_selector":".price-list","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":".product-card__image","preorder_index_badge_selector":".product-card__image","preorder_page_badge_selector":".product-card__image","preorder_search_badge_selector":".product-card__image","preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"div","preorder_button_disclaimer_insert_selector":".product-info__buy-buttons .shopify-product-form","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":".product-info__buy-buttons .shopify-product-form","preorder_payment_insert_selector_type":"beforebegin","preorder_price_container_selector":"price-list","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":"sale-price","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":false,"inline_form_selector":".product-info__buy-buttons .shopify-product-form","inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"storefront_form_show_image":true,"storefront_form_text_color":"#003314","storefront_form_background_color":"#FBD069","storefront_form_border_radius":60,"market_setup_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":"","preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":"","countdown_timer_insert_selector_type":"afterend","configure_notify_me_enabled":false,"restock_note_insert_selector":"","restock_note_insert_selector_type":"afterend","restock_note_background_color":"#f3f4f6","restock_note_text_color":"#202223","restock_note_border_radius":4,"preorder_modal_continue_button_text":"Continue","preorder_modal_cancel_button_text":"Cancel","meta_pixel_enabled":false,"meta_pixel_id":null,"cache":true,"cached_at":"2026-10-02T09:29:48.518Z","multi_language_enabled":false,"translation_locale":"en","disable_refresh_on_stale_liquid":false,"api_host":"https://ext.stoqapp.com"}; 2675 window._RestockRocketConfig.metafieldNamespace = 'restockrocket_production'; 2676 window._RestockRocketConfig.storefrontApiVersion = '2026-07';window._RestockRocketConfig.cachedPreorderVariantIds = { preorder_variant_ids: [] };window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = { variant_preorder_limits: {} };window._RestockRocketConfig.cachedVariantShippingTexts = { variant_shipping_texts: {} }; 2677window._RestockRocketConfig.sellingPlans = [];(function() { 2678 const cachedData = {"plans":[],"disabled_plan_ids":[],"has_in_stock_offer":false,"has_preorder_offer":false,"read_flags":{},"cached_at":"2026-09-21T17:15:52Z"}; 2679 2680 if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) { 2681 window._RestockRocketConfig.readFlags = cachedData.read_flags || {}; 2682 const oldPlans = window._RestockRocketConfig.sellingPlans; 2683 const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0 2684 ? oldPlans.reduce(function(max, plan) { 2685 if (plan.updated_at) { 2686 const planDate = new Date(plan.updated_at); 2687 const maxDate = max ? new Date(max) : null; 2688 return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max; 2689 } 2690 return max; 2691 }, '') 2692 : null; 2693 const cachedDate = new Date(cachedData.cached_at); 2694 const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null; 2695 const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate)); 2696 2697 if (useCached) { 2698 if (Array.isArray(cachedData.plans)) {
2699 window._RestockRocketConfig.sellingPlans = cachedData.plans; 2700 window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || []; 2701 console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')'); 2702 } 2703 } else { 2704 window._RestockRocketConfig.disabledSellingPlanIds = []; 2705 console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')'); 2706 } 2707 } 2708 })();window._RestockRocketConfig.enabledNotifyMeVariantIds = [];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};window._RestockRocketConfig.integrations = []; 2709 try { 2710 var _sqCfg = window._RestockRocketConfig; 2711 var _sqPlanEnabled = Array.isArray(_sqCfg.sellingPlans) && 2712 _sqCfg.sellingPlans.some(function (p) { return p && p.enabled; }); 2713 var _sqPreCount = ((_sqCfg.cachedPreorderVariantIds && 2714 _sqCfg.cachedPreorderVariantIds.preorder_variant_ids) || []).length; 2715 _sqCfg.preordersConfigured = !!(_sqPlanEnabled && _sqPreCount); 2716 } catch (e) { } 2717 try { 2718 var _sqc = window._RestockRocketConfig; 2719 var _sqOn = !(_sqc.cachedSettings && _sqc.cachedSettings.block_accelerated_checkout === false); 2720 var _sqPre = (_sqc.cachedPreorderVariantIds && 2721 _sqc.cachedPreorderVariantIds.preorder_variant_ids) || []; 2722 var _sqArm = false; 2723 if (_sqOn && _sqc.preordersConfigured) { 2724 if (_sqc.pageType === 'product' && _sqc.product && _sqc.product.variants) { 2725 _sqArm = _sqc.product.variants.some(function (v) { return _sqPre.indexOf(Number(v.id)) !== -1; }); 2726 } else { 2727 _sqArm = (_sqc.integrations || []).some(function (i) { 2728 return i && i.type === 'featured_product' && i.enabled && 2729 Array.isArray(i.page_types) && i.page_types.indexOf(_sqc.pageType) !== -1; 2730 }); 2731 } 2732 } 2733 if (_sqArm && document.documentElement) { 2734 _sqc.acceleratedGateArmed = true; 2735 document.documentElement.classList.add('stoq-buy-now-pending'); 2736 setTimeout(function () { 2737 document.documentElement.classList.remove('stoq-buy-now-pending'); 2738 }, 6000); 2739 } 2740 } catch (e) { } 2741 2742 window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-product.js' 2743 window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-collection.js' 2744 window._RestockRocketConfig.scriptUrlProductBis = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-product-bis.js' 2745 window._RestockRocketConfig.scriptUrlCollectionBis = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-collection-bis.js' 2746 window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) 2747 window._RestockRocketConfig.host = (window._RestockRocketConfig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io' 2748 try { 2749 const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/); 2750 window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || ''; 2751 } catch (e) { 2752 window._RestockRocketConfig.appVersion = ''; 2753 } 2754 const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; 2755 const LIQUID_CACHE_MAX_AGE = 15 * 60; 2756 const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt; 2757 if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { 2758 console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); 2759 window._RestockRocketConfig.isLiquidCacheFresh = true; 2760 window._RestockRocketConfig.liquidCacheAge = null; 2761 } else { 2762 const now = Math.floor(Date.now() / 1000);
2763 const liquidCacheAge = now - liquidRenderedAt; 2764 window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCacheAge); 2765 if (liquidCacheAge < 0) { 2766 console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`); 2767 window._RestockRocketConfig.isLiquidCacheFresh = true; 2768 } else if (liquidCacheAge <= LIQUID_CACHE_MAX_AGE) { 2769 console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`); 2770 window._RestockRocketConfig.isLiquidCacheFresh = true; 2771 } else { 2772 console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`); 2773 window._RestockRocketConfig.isLiquidCacheFresh = false; 2774 } 2775 } 2776 2777 function checkSettingsExpiry(settings) { 2778 try { 2779 if (!settings || !settings.updated_at) { 2780 console.debug('STOQ - Invalid settings data structure'); 2781 return null; 2782 } 2783 2784 if (!settings.cache) { 2785 console.debug('STOQ - settings caching disabled'); 2786 return null; 2787 } 2788 if (settings.multi_language_enabled) { 2789 if (!settings.translations) { 2790 console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); 2791 return null; 2792 } 2793 if (window._RestockRocketConfig.normalizedLocale && 2794 !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { 2795 console.debug('STOQ - locale not explicitly translated, will use default language from cache'); 2796 } 2797 } 2798 2799 const updatedAt = new Date(settings.updated_at); 2800 if (isNaN(updatedAt.getTime())) { 2801 console.debug('STOQ - Invalid updated_at date format in settings'); 2802 return null; 2803 } 2804 2805 const age = Date.now() - updatedAt.getTime(); 2806 if (age < SETTINGS_CACHE_DURATION) { 2807 console.debug('STOQ - settings changed recently, skipping cache'); 2808 return null; 2809 } 2810 2811 return settings; 2812 } catch (error) { 2813 console.debug('STOQ - Error checking settings cache:', error); 2814 return null; 2815 } 2816 } 2817 2818 function createRestockRocketContainer() { 2819 const restockRocketContainer = document.createElement('div'); 2820 restockRocketContainer.id = 'restock-rocket'; 2821 document.body.appendChild(restockRocketContainer); 2822 } 2823 2824 function createRestockRocketScript(scriptUrl) { 2825 const restockRocketScriptElement = document.createElement('script'); 2826 restockRocketScriptElement.setAttribute('defer', 'defer'); 2827 restockRocketScriptElement.src = scriptUrl; 2828 document.body.appendChild(restockRocketScriptElement); 2829 } 2830 2831 createRestockRocketContainer() 2832 2833 console.debug('STOQ - extension activated') 2834 try { 2835 const _stoqInitConfig = window._RestockRocketConfig; 2836 const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqInitConfig.product.variants)
2836) 2837 ? _stoqInitConfig.product.variants.map(function(v) { return v.id }) 2838 : []; 2839 const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id; 2840 var _stoqPageSeq = 0; 2841 try { 2842 _stoqPageSeq = (parseInt(window.sessionStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1; 2843 window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq)); 2844 } catch (e) { } 2845 Shopify?.analytics?.publish?.('stoq_initialized', { 2846 cart_token: _stoqInitConfig.cartToken || '', 2847 page_url: window.location.href, 2848 page_type: _stoqInitConfig.pageType || '', 2849 shop_domain: _stoqInitConfig.shop || '', 2850 market_id: _stoqInitConfig.marketId || '', 2851 country_code: _stoqInitConfig.countryIsoCode || '', 2852 detected_variant_ids: _stoqDetectedVariantIds, 2853 selected_variant_id: _stoqSelectedVariantId || '', 2854 page_load_seq: _stoqPageSeq, 2855 liquid_rendered_at: _stoqInitConfig.liquidRenderedAt || 0, 2856 app_version: _stoqInitConfig.appVersion || '', 2857 liquid_cache_age: _stoqInitConfig.liquidCacheAge, 2858 inventory_policy: (_stoqInitConfig.variantsInventoryPolicy || {})[_stoqSelectedVariantId] || '', 2859 inventory_quantity: (_stoqInitConfig.variantsInventoryQuantity || {})[_stoqSelectedVariantId], 2860 }); 2861 } catch (e) { 2862 console.debug('STOQ - stoq_initialized publish failed:', e); 2863 } 2864 try { 2865 var _sqTrack = window._RestockRocketConfig; 2866 if (_sqTrack.preordersConfigured) { 2867 document.addEventListener('click', function (e) { 2868 try { 2869 var t = e.target; 2870 if (!t || !t.closest) return; 2871 var host = t.closest('.shopify-payment-button, shopify-payment-terms'); 2872 if (!host) return; 2873 var channel = host.matches && host.matches('shopify-payment-terms') 2874 ? 'shop_pay_installments' : 'buy_now'; 2875 var form = host.closest('form'); 2876 var vidEl = form && form.querySelector('[name="id"]'); 2877 var variantId = (vidEl && vidEl.value) || _sqTrack.selected_variant_id || ''; 2878 var _sqVidNum = Number(variantId); 2879 var _sqPlan = null; 2880 var _sqPlans = Array.isArray(_sqTrack.sellingPlans) ? _sqTrack.sellingPlans : []; 2881 var _sqMktId = Number(_sqTrack.marketId); 2882 var _sqForVariant = function (pl) { 2883 return pl && pl.enabled && Array.isArray(pl.variant_ids) && 2884 pl.variant_ids.indexOf(_sqVidNum) !== -1; 2885 }; 2886 _sqPlans.forEach(function (pl) { 2887 if (!_sqPlan && _sqForVariant(pl) && pl.markets_enabled && 2888 Array.isArray(pl.shopify_market_ids) && 2889 pl.shopify_market_ids.indexOf(_sqMktId) !== -1) { _sqPlan = pl; } 2890 }); 2891 if (!_sqPlan) { 2892 _sqPlans.forEach(function (pl) { 2893 if (!_sqPlan && _sqForVariant(pl) && !pl.markets_enabled) { _sqPlan = pl; } 2894 }); 2895 } 2896 Shopify?.analytics?.publish?.('stoq_accelerated_checkout_clicked', { 2897 variant_id: variantId, 2898 product_id: (_sqTrack.product && _sqTrack.product.id) || '', 2899 channel: channel, 2900 market_id: _sqTrack.marketId || '', 2901 country_code: _sqTrack.countryIsoCode || '', 2902 page_type: _sqTrack.pageType || '', 2903 cart_token: _sqTrack.cartToken || '', 2904 page_url: (window.location && window.location.href) || '', 2905 properties: { 2906 is_preorder_variant: (function () { 2907 var vid = Number(variantId); 2908 var has = function (a) { return Array.isArray(a) && a.indexOf(vid) !== -1; }; 2909 return has(_sqTrack.preorderVariantIds) || 2910 has(_sqTrack.cachedPreorderVariantIds && 2911 _sqTrack.cachedPreorderVariantIds.preorder_variant_ids); 2912 })(), 2913 in_enabled_plan: !!_sqPlan, 2914 is_instock_variant: (function () { 2915 var has = function (a) { return Array.isArray(a) && a.indexOf(_sqVidNum) !== -1; }; 2916 return has(_sqTrack.inStockVariantIds) || 2917 has(_sqTrack.cachedInStockVariantIds && 2918 _sqTrack.cachedInStockVariantIds.in_stock_variant_ids); 2919 })(), 2920 enrolled_plan_id: (_sqPlan && (_sqPlan.shopify_selling_plan_id || _sqPlan.shopify_selling_plan_group_id)) || '', 2921 enrolled_plan_provider: (_sqPlan && _sqPlan.inventory_provider) || '', 2922 block_enabled: !(_sqTrack.cachedSettings && _sqTrack.cachedSettings.block_accelerated_checkout === false), 2923 gate_armed: !!_sqTrack.acceleratedGateArmed, 2924 gate_active_at_click: !!(document.documentElement && 2925 document.documentElement.classList.contains('stoq-buy-now-pending')), 2926 blocked: (function () { 2927 try { 2928 var rr = window._RestockRocket; 2929 return !!(rr && typeof rr.willBlockAcceleratedCl
2929ick === 'function' && 2930 rr.willBlockAcceleratedClick(e)); 2931 } catch (err) { return false; } 2932 })(), 2933 }, 2934 }); 2935 } catch (err) { } 2936 }, true); 2937 } 2938 } catch (e) { } 2939 function applyTranslations(settings) { 2940 try { 2941 if (!settings || !settings.multi_language_enabled) { 2942 return settings; 2943 } 2944 2945 if (!settings.translations) { 2946 console.debug('STOQ - No translations found, skipping translation'); 2947 return settings; 2948 } 2949 2950 const normalizedLocale = window._RestockRocketConfig.normalizedLocale; 2951 const translations = settings.translations; 2952 2953 if (!normalizedLocale) { 2954 console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); 2955 delete settings.translations; 2956 return settings; 2957 } 2958 2959 console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`); 2960 2961 const translatedFields = translations[normalizedLocale]; 2962 if (translatedFields && typeof translatedFields === 'object') { 2963 Object.keys(translatedFields).forEach(function(key) { 2964 const value = translatedFields[key]; 2965 if (value !== null && value !== undefined && value !== '') { 2966 settings[key] = value; 2967 } 2968 }); 2969 } else { 2970 console.debug('STOQ - No translated fields found for locale:', normalizedLocale); 2971 } 2972 2973 delete settings.translations; 2974 return settings; 2975 } catch (e) { 2976 console.debug('STOQ - error applying translations:', e); 2977 return settings; 2978 } 2979 } 2980 function setupCartSellingPlanUpdater(settings) { 2981 window.addEventListener('stoq:inventory-data-loaded', function(event) { 2982 console.debug('STOQ - Inventory data loaded, updating cart selling plans'); 2983 if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { 2984 window._RestockRocket.updateCartSellingPlans() 2985 .then(hasUpdates => { 2986 if (hasUpdates) { 2987 console.debug('STOQ - cart selling plans updated successfully'); 2988 } else { 2989 console.debug('STOQ - no cart selling plan updates needed'); 2990 } 2991 }) 2992 .catch(error => { 2993 console.error('STOQ - error updating cart selling plans:', error); 2994 }); 2995 } 2996 }); 2997 } 2998 function storefrontGraphql(query, variables) { 2999 const cfg = window._RestockRocketConfig; 3000 if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) { 3001 return Promise.reject(new Error('Storefront API unavailable')); 3002 } 3003 return fetch( 3004 `https://${cfg.shop}/api/${cfg.storefrontApiVersion}/graphql.json`, 3005 { 3006 method: 'POST', 3007 headers: { 3008 'Content-Type': 'application/json', 3009 'X-Shopify-Storefront-Access-Token': cfg.storefrontAccessToken, 3010 }, 3011 body: JSON.stringify({ query: query, variables: variables }), 3012 } 3013 ) 3014 .then(function(response) { 3015 if (!response.ok) { throw new Error('Storefront API HTTP ' + response.status); } 3016 return response.json(); 3017 }) 3018 .then(function(body) { 3019 if (body && body.errors && body.errors.length) { 3020 throw new Error('Storefront API errors: ' + body.errors.map(function(e) { return e && e.message; }).join(', ')); 3021 } 3022 return body && body.data; 3023 }); 3024 } 3025 function fetchStorefrontShopMetafield(key) { 3026 const cfg = window._RestockRocketConfig; 3027 const query = 'query StoqShopMetafield($namespace: String!, $key: String!) { shop { metafield(namespace: $namespace, key: $key) { value } } }'; 3028 return storefrontGraphql(query, { namespace: cfg.metafieldNamespace, key: key }) 3029 .then(function(data) { 3030 const value = data && data.shop && data.shop.metafield && data.shop.metafield.value; 3031 if (!value) { throw new Error('Storefront API returned no ' + key + ' metafield value'); } 3032 return JSON.parse(value); 3033 }); 3034 } 3035 (function loadStorefrontSettings() { 3036 const cfg = window._RestockRocketConfig; 3037 if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) return; 3038 function run() { 3039 // The live-settings read is one more shop-level metafield fetch, so it 3040 // shares fetchStorefrontShopMetafield with the integrations/selling_plans 3041 // reads rather than re-issuing the same query + parse. 3042 fetchStorefrontShopMetafield('settings') 3043 .then(function(settings) { 3044 cfg.storefrontSettings = settings; 3045 console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings'); 3046 }) 3047 .catch(function(e) { 3048 console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message); 3049 }); 3050 } 3051 3052 if (typeof window.requestIdleCallback === 'function') { 3053 window.requestIdleCallback(run, { timeout: 5000 }); 3054 } else { 3055 setTimeout(run, 0); 3056 } 3057 })(); 3058 const cachedSettings = window._RestockRocketConfig.cachedSettings; 3059 const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; 3060 3061 if (validCachedSettings) { 3062 console.debug('STOQ - using cached settings'); 3063 initializeScripts(validCachedSettings); 3064 } else { 3065 console.debug('STOQ - fetching fresh settings'); 3066 const headers = { 3067 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 3068 'ngrok-skip-browser-warning': 'skip' 3069 }; 3070 3071 if (window.Shopify?.theme?.role === 'main') { 3072 headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; 3073 headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; 3074 headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; 3075 } 3076 3077 fetch( 3078 `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, 3079 { headers } 3080 ) 3081 .then(function(response) { 3082 if (!response.ok) { 3083 throw new Error('Network response was not ok'); 3084 } 3085 return response.json(); 3086 }) 3087 .then(function(settings) { 3088 initializeScripts(settings); 3089 }) 3090 .catch(function(error) { 3091 if (cachedSettings) { 3092 console.debug('STOQ - using expired cached settings as fallback'); 3093 initializeScripts(cachedSettings); 3094 } else { 3095 console.error('STOQ - failed to load settings:', error); 3096 } 3097 }) 3098 .catch(function(e) { 3099 console.error(e) 3100 }) 3101 } 3102 3103 function fetchEmbedConfig(endpoint, apply) { 3104 return fetch( 3105 `${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`, 3106 { 3107 headers: { 3108 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 3109 'ngrok-skip-browser-warning': 'skip' 3110 } 3111 } 3112 ) 3113 .then(function(response) { 3114 if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`); 3115 return response.json(); 3116 }) 3117 .then(function(data) {
3118 try { 3119 apply(data); 3120 } catch (applyError) { 3121 console.error('STOQ - apply failed for ' + endpoint + ':', applyError); 3122 throw applyError; 3123 } 3124 }) 3125 .catch(function(error) { 3126 console.debug(`STOQ - using cached ${endpoint}:`, error.message); 3127 }); 3128 } 3129 function refreshShopConfig(source) { 3130 const cfg = window._RestockRocketConfig; 3131 const viaEmbed = function() { return fetchEmbedConfig(source.endpoint, source.apply); }; 3132 const flagOn = !!cfg.readFlags && cfg.readFlags[source.flag] === true; 3133 if (!flagOn || source.embedOnly === true) { return viaEmbed(); } 3134 3135 return fetchStorefrontShopMetafield(source.metafieldKey) 3136 .then(function(value) { 3137 if (!source.isValid(value)) { throw new Error(source.metafieldKey + ' metafield is not a valid ' + source.endpoint + ' payload'); } 3138 source.apply(value); 3139 console.debug('STOQ - refreshed ' + source.endpoint + ' from the Storefront API'); 3140 }) 3141 .catch(function(error) { 3142 console.debug('STOQ - Storefront ' + source.endpoint + ' read failed, using embed:', error.message); 3143 return viaEmbed(); 3144 }); 3145 } 3146 function refreshIntegrations() { 3147 const cfg = window._RestockRocketConfig; 3148 return refreshShopConfig({ 3149 endpoint: 'integrations', 3150 metafieldKey: 'integrations', 3151 flag: 'enable_storefront_integrations_read', 3152 isValid: function(value) { return Array.isArray(value); }, 3153 apply: function(data) { 3154 cfg.integrations = data; 3155 } 3156 }); 3157 } 3158 function refreshSellingPlans(embedOnly) { 3159 const cfg = window._RestockRocketConfig; 3160 return refreshShopConfig({ 3161 embedOnly: embedOnly === true, 3162 endpoint: 'selling_plans', 3163 metafieldKey: 'cachedSellingPlans', 3164 flag: 'enable_storefront_selling_plans_read', 3165 isValid: function(value) { return !!value && Array.isArray(value.plans); }, 3166 apply: function(data) { 3167 cfg.sellingPlans = data.plans; 3168 cfg.disabledSellingPlanIds = data.disabled_plan_ids || []; 3169 if (data && data.read_flags && typeof data.read_flags === 'object' && !Array.isArray(data.read_flags)) { 3170 cfg.readFlags = data.read_flags; 3171 } 3172 } 3173 }); 3174 } 3175 3176 function initializeScripts(settings) { 3177 settings = applyTranslations(settings); 3178 window._RestockRocketConfig.settings = settings; 3179 console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); 3180 const forceEmbedSellingPlans = settings.force_embed_selling_plans === true; 3181 const staleRefresh = !window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid; 3182 if (forceEmbedSellingPlans || staleRefresh) { 3183 console.debug('STOQ - refreshing selling_plans' + (staleRefresh ? ' + integrations (Liquid cache stale)' : ' (force_embed_selling_plans)')); 3184 const refreshes = [refreshSellingPlans(forceEmbedSellingPlans)]; 3185 if (staleRefresh) { refreshes.push(refreshIntegrations()); } 3186 Promise.race([ 3187 Promise.all(refreshes), 3188 new Promise(function(resolve) { setTimeout(resolve, 1000); }) 3189 ]).then(function() { loadScripts(settings); }); 3190 return; 3191 } 3192 3193 loadScripts(settings); 3194 } 3195 3196 function loadScripts(settings) { 3197 setupCartSellingPlanUpdater(settings); 3198 3199 if(settings.enable_app) { 3200 const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { 3201 return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); 3202 }) 3203 const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans) 3204 && window._RestockRocketConfig.sellingPlans.some(function(plan) { return plan && plan.enabled; }); 3205 const hasDisabledPlanIds = Array.isArray(window._RestockRocketConfig.disabledSellingPlanIds) 3206 && window._RestockRocketConfig.disabledSellingPlanIds.length > 0; 3207 const usePreorderBuild = settings.preorder_enabled || hasEnabledOffer || hasDisabledPlanIds; 3208 3209 const collectionScriptUrl = usePreorderBuild 3210 ? window._RestockRocketConfig.scriptUrlCollection 3211 : window._RestockRocketConfig.scriptUrlCollectionBis; 3212 const productScriptUrl = usePreorderBuild 3213 ? window._RestockRocketConfig.scriptUrlProduct 3214 : window._RestockRocketConfig.scriptUrlProductBis; 3215 3216 const pageType = window._RestockRocketConfig.pageType; 3217 const collectionPageTypes = ['collection', 'index', 'search', 'page']; 3218
3219 if(collectionPageTypes.indexOf(pageType) !== -1 && (settings[`show_button_on_${pageType}`] || settings[`preorder_${pageType}_enabled`])) { 3220 createRestockRocketScript(collectionScriptUrl); 3221 } else if(pageType === 'product') { 3222 createRestockRocketScript(productScriptUrl); 3223 } else if(hijackIntegration) { 3224 createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); 3225 } else if(usePreorderBuild) { 3226 createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); 3227 } else { 3228 console.debug(`STOQ - no scripts enabled for ${pageType}`); 3229 } 3230 const appLoadedEvent = new CustomEvent('stoq:loaded', { 3231 detail: { 3232 pageType: window._RestockRocketConfig.pageType, 3233 enabled: settings.enable_app, 3234 settings: settings, 3235 preorderEnabled: settings.preorder_enabled 3236 } 3237 }); 3238 console.debug('STOQ - dispatching app loaded event'); 3239 window.dispatchEvent(appLoadedEvent); 3240 } 3241 } 3242</script>
3242<style id="RestockRocketStyle">html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}</style> 3243 3244 3245</div><div id="shopify-block-AZFd6aGFnS21FS1hVa__13768625480086291342" class="shopify-block shopify-app-block">
3245<script> 3246 window['ShopifyForms'] = { 3247 ...window['ShopifyForms'], 3248 currentPageType: "page" 3249 }; 3250</script>
3250 3251 3252 3253</div><div id="shopify-block-ARExFU25Wa0dyOGZGU__6251270934270006384" class="shopify-block shopify-app-block">
3253<script> 3254 console.log("Stape gtm: 1.0.4"); 3255 window.lsData = {}; 3256 window.dataLayer = window.dataLayer || []; 3257 window.addEventListener("message", (event) => { 3258 if (event.data?.event) { 3259 window.dataLayer.push(event.data); 3260 } 3261 }); 3262 window.dataShopStape = { 3263 shop: "www.purityproducts.com", 3264 shopId: "96727367968", 3265 } 3266</script>
3266 3267 3268 3269 3270 3271 3272 3273
3273<script> 3274 console.log("â ï¸ User not logged in"); 3275 window.localStorage.removeItem('customerShopStape'); 3276 </script>
3276 3277 3278 3279 3280
3281<script> 3282 window.currentShopifyMarketStapeId = null; 3283 window.currentShopifyMarketStapeCode = null; 3284 try { 3285 window.currentShopifyMarketStapeId = "97149419808"; 3286 window.currentShopifyMarketStapeCode = "US"; 3287 // Checkout doesn't render theme app extension blocks, so this is the 3288 // only place the market/country code is ever set. Persisting it here 3289 // lets checkout-side field mapping (country_market_code) fall back to 3290 // the last known value instead of coming up empty. 3291 localStorage.setItem('marketShopStape', JSON.stringify({ 3292 id: window.currentShopifyMarketStapeId, 3293 code: window.currentShopifyMarketStapeCode 3294 })); 3295 } catch (error) { 3296 console.error("â Stape Error:", error); 3297 } 3298</script>
3298 3299 3300 3301 3302 3303 3304</div>
3304<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3304 3305</body> 3306</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.