PageSourceSearch

https://www.getkion.com/

html getkion.com collected 2026-10-02 06:14:19 UTC 441,003 bytes, 8,156 lines download raw bytes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<!doctype html>
19<!--[if IE 9]><html class="ie9 no-js supports-no-cookies" lang="en"><![endif]-->
20<!--[if (gt IE 9)|!(IE)]><!--><html class="no-js supports-no-cookies" lang="en"><!--<![endif]-->
21<head><meta content=edgemesh-server name=rendered-by>
22  
23  
23<script type="text/javascript" async src="https://na.shgcdn3.com/pixel-collector.js"></script>
23
24<!-- Start of Shoplift scripts -->
25<!-- 2026-05-07T22:30:35.7450269Z -->
26<style>.shoplift-hide { opacity: 0 !important; }</style>
27<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
28<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-10-02T05:30:00.7419404Z */(function(){"use strict";var te=document.createElement("style");te.textContent=`#shoplift-preview-control{position:fixed;max-width:332px;height:56px;background-color:#141414;z-index:9999;bottom:20px;display:flex;border-radius:8px;box-shadow:13px 22px 7px #0000,9px 14px 7px #00000003,5px 8px 6px #0000000d,2px 4px 4px #00000017,1px 1px 2px #0000001a,0 0 #0000001a;align-items:center;margin:0 auto;left:16px;right:16px;opacity:0;transform:translateY(20px);visibility:hidden;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s .4s}#shoplift-preview-control.visible{opacity:1;transform:translateY(0);visibility:visible;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s 0s}#shoplift-preview-control *{font-family:Inter,sans-serif;color:#fff;box-sizing:border-box;font-size:16px}#shoplift-preview-variant-title{font-weight:400;line-height:140%;font-size:16px;text-align:start;letter-spacing:-.16px;flex-grow:1;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}#shoplift-preview-variant-selector{position:relative;display:block;padding:6px 0;height:100%;min-width:0;flex:1 1 auto}#shoplift-preview-variant-menu-trigger{border:none;cursor:pointer;width:100%;background-color:transparent;padding:0 16px;border-left:1px solid #333;border-right:1px solid #333;height:100%;display:flex;align-items:center;justify-content:start;gap:8px}#shoplift-preview-variant-selector .menu-variant-label{width:24px;height:24px;border-radius:50%;padding:6px;display:flex;justify-content:center;align-items:center;font-size:12px;font-style:normal;font-weight:600;line-height:100%;letter-spacing:-.12px;flex-shrink:0}#shoplift-preview-variant-selector .preview-variant-menu{position:absolute;bottom:110%;transform:translate3d(0,20px,0);visibility:hidden;pointer-events:none;opacity:0;cursor:pointer;background-color:#141414;border:1px solid #141414;border-radius:6px;width:100%;max-height:156px;overflow-y:auto;box-shadow:0 8px 16px #0003;z-index:1;transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s .3s}#shoplift-preview-variant-selector .preview-variant-menu.preview-variant-menu__visible{visibility:visible;pointer-events:auto;opacity:100;transform:translateZ(0);transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s 0s}@media screen and (max-width:400px){#shoplift-preview-variant-selector .preview-variant-menu{position:fixed;left:0;right:0;width:auto;bottom:110%}}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item{padding:12px 16px;display:flex;overflow:hidden}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item .menu-variant-label{margin-right:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item span{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;white-space:nowrap;color:#f6f6f6;font-size:14px;font-style:normal;font-weight:500}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:hover{background-color:#545454}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:last-of-type{border-bottom-left-radius:6px;border-bottom-right-radius:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}#shoplift-preview-control div:has(#shoplift-exit-preview-button){padding:0 16px}#shoplift-exit-preview-button{padding:6px 8px;font-weight:500;line-height:75%;border-radius:4px;background-color:transparent;border:none;text-decoration:none}#shoplift-exit-preview-button:hover{cursor:pointer;background-color:#333}#shoplift-preview-subscription-warning{position:relative;display:flex;align-items:center;gap:6px;padding:6px 10px;margin:0 4px;border-left:1px solid #333;cursor:help;outline:none}#shoplift-preview-subscription-warning__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background-color:#f59e0b;color:#141414!important;font-weight:700;font-size:12px!important;line-height:1;flex-shrink:0}#shoplift-preview-subscription-warning__label{font-size:13px!important;font-weight:500;color:#fbbf24!important;text-wrap:nowrap;white-space:nowrap}#shoplift-preview-subscription-warning__tooltip{position:absolute;bottom:calc(100% + 8px);right:0;max-width:320px;width:max-content;padding:10px 12px;border-radius:6px;background-color:#1f1f1f;color:#fff!important;font-size:12px!important;line-height:1.4!important;box-shadow:0 8px 16px #0000004d;z-index:10000;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s .2s;pointer-events:none}#shoplift-preview-subscription-warning__tooltip.shoplift-preview-subscription-warning__tooltip--visible{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s 0s}#shoplift-preview-subscription-warning:focus-visible{box-shadow:inset 0 0 0 2px #f59e0b;border-radius:4px}#shoplift-preview-control:has(#shoplift-preview-subscription-warning){max-width:480px}/*$vite$:1*/`,document.head.appendChild(te);var fe=" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x
287|;\\s\\w+;$|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\b\\w+/1\\.0;|\\bbw/|\\bdlc\\b|\\bort/|\\bperl\\b|\\btime/|\\||^[<\\(;]|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[\\w\\-]+/[\\w]+$|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^\\w+/\\d\\.\\d\\s\\([\\w@]+\\)$|^active|^ad muncher|^amaya|^apache/|^avsdevicesdk/|^azure|^biglotron|^blackbox exporter|^bot|^clamav[ /]|^claude-code/|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^exodusmovement|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\((?:compatible;)?(?:\\s?[\\w\\d-.]+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^ps_daily/|^python|^rank|^read|^reed|^remove\\.bg/|^rest|^rss|^snapchat|^sora |^space bison|^stape/|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|abuse|advisor|agent\\b|analyzer|archive|ask jeeves/teoma|attracta|audit|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|collapsify\\b|convertify|cookiehubverify/|crawl|cursor/|cypress/|dareboost|datanyze|dejaclick|detect|discovery|dmbrowser|download|exaleadcloudview|feed|firephp|foregenix|functionize|grab|hardenize\\b|headless|hotjar|httrack|hubspot marketing grader|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|linktiger|mail\\.ru/|manager|manus-user/|marketgoo/|measure|monitor\\b|neustar wpm|node\\b|nutch|offbyone|openvas|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|playwright|powermarks|preview|productfinder|prospectingstudio|proxy|ptst[ /]\\d|radar|readable/|retriever|rexx;|rigor|rss\\b|scrape|securityheaders|selenium|server|silktide|sindup/|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|testlocally|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|watchtowr|webglance|webkit2png|whatcms/|xtate/",ge=/bot|crawl|http|lighthouse|scan|search|spider/i,z;function me(){if(z instanceof RegExp)return z;try{z=new RegExp(fe,"i")}catch{z=ge}return z}var ye=a=>typeof a=="string"&&a!=="";function ve(a){return ye(a)&&me().test(a)}var we=ve;class X{timestamp;constructor(){this.timestamp=new Date}}class be extends X{type;testId;hypothesisId;constructor(e,t,i){super(),this.type=3,this.testId=e,this.hypothesisId=t,this.timestamp=i}}class Se extends X{type;path;constructor(e){super(),this.type=4,this.path=e}}class Ce extends X{type;cart;constructor(e){super(),this.type=5,this.cart=e}}class ie extends Error{isBot;constructor(){super(),this.isBot=!0}}function Te(a,e,t){for(const i of e.selectors){const s=a.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)t(e.testId,e.hypothesisId)}re(a,e,(i,s,r,o,n)=>n(s,r),t)}function U(a,e,t){for(const i of e.selectors)ne(a,e.testId,e.hypothesisId,i,t??(()=>{}));re(a,e,ne,t??(()=>{}))}function se(a){return a.urlPatterns.reduce((e,t)=>{switch(t.operator){case"contains":return e+`.*${t}.*`;case"endsWith":return e+`.*${t}`;case"startsWith":return e+`${t}.*`}},"")}function re(a,e,t,i){new MutationObserver(()=>{for(const r of e.selectors)t(a,e.testId,e.hypothesisId,r,i)}).observe(a.documentElement,{childList:!0,subtree:!0})}function ne(a,e,t,i,s){const r=a.querySelectorAll(i.cssSelector);for(let o=0;o<r.length;o++){let n=r.item(o);if(n instanceof HTMLElement&&n.dataset.shoplift!==""){n.dataset.shoplift="";for(const l of i.actions.sort(Re))n=Ie(a,i.cssSelector,n,l)}}return r.length>0&&s?(s(e,t),!0):!1}function Ie(a,e,t,i){switch(i.type){case"innerHtml":t.innerHTML=i.value;break;case"attribute":Pe(t,i.scope,i.value);break;case"css":Ae(a,e,i.value);break;case"js":ke(a,t,i);break;case"copy":return Ee(t);case"remove":xe(t);break;case"move":_e(t,parseInt(i.value));break}return t}function Pe(a,e,t){a.setAttribute(e,t)}function Ae(a,e,t){const i=a.createElement("style");i.innerHTML=`${e} { ${t} }`,a.getElementsByTagName("head")[0]?.appendChild(i)}function ke(a,e,t){Function("document","element",`"use strict"; ${t.value}`)(a,e)}function Ee(a){const e=a.cloneNode(!0);if(!a.parentNode)throw"Can't copy node outside of DOM";return a.parentNode.insertBefore(e,a.nextSibling),e}function xe(a){a.remove()}function _e(a,e){if(e===0)return;const t=Array.prototype.slice.call(a.parentElement.children).indexOf(a),i=Math.min(Math.max(t+e,0),a.parentElement.children.length-1);a.parentElement.children.item(i).insertAdjacentElement(e>0?"afterend":"beforebegin",a)}function Re(a,e){return oe(a)-oe(e)}function oe(a){return a.type==="copy"||a.type==="remove"?0:1}
28const M={Template:0,UrlRedirect:2,Script:3,Price:5},De="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.96001%207.90004C9.86501%207.90004%209.77001%207.86504%209.69501%207.79004L6.43501%204.53004C6.19501%204.29004%205.80501%204.29004%205.56501%204.53004L2.30501%207.79004C2.16001%207.93504%201.92001%207.93504%201.77501%207.79004C1.63001%207.64504%201.63001%207.40504%201.77501%207.26004L5.03501%204.00004C5.56501%203.47004%206.43001%203.47004%206.96501%204.00004L10.225%207.26004C10.37%207.40504%2010.37%207.64504%2010.225%207.79004C10.15%207.86004%2010.055%207.90004%209.96001%207.90004Z'%20fill='white'/%3e%3c/svg%3e",Oe="data:image/svg+xml,%3csvg%20width='14'%20height='24'%20viewBox='0%200%2014%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.3976%2014.5255C12.2833%2013.8788%2012.0498%2013.3024%2011.6952%2012.7961C11.3416%2012.2898%2010.9209%2011.8353%2010.4353%2011.4317C9.94868%2011.0291%209.43546%2010.6488%208.89565%2010.292C8.48487%2010.049%208.09577%209.78565%207.72637%209.50402C7.35697%209.2224%207.08016%208.89503%206.89694%208.51987C6.71273%208.14471%206.67826%207.69533%206.79055%207.1697C6.86345%206.83216%206.97476%206.54647%207.12351%206.31162C7.27324%206.07778%207.47124%205.89986%207.7175%205.77684C7.96377%205.65483%208.21989%205.59383%208.48389%205.59383C8.88087%205.59383%209.17639%205.7016%209.3734%205.91714C9.56943%206.13268%209.68271%206.42345%209.71424%206.78946C9.74576%207.15547%209.72015%207.55401%209.63839%207.98509C9.55663%208.41617%209.43645%208.84724%209.27687%209.27934L13.5127%208.80149C13.9638%207.52656%2014.1017%206.42447%2013.9264%205.49725C13.751%204.56901%2013.2664%203.85122%2012.4724%203.34491C12.239%203.19648%2011.9779%203.07041%2011.6893%202.96569L12.0026%201.50979L9.86397%200L7.3875%201.50979L7.11169%202.78878C6.65166%202.8874%206.21724%203.01957%205.8114%203.19038C4.85292%203.594%204.06684%204.15115%203.45117%204.86385C2.83452%205.57655%202.42571%206.40108%202.22378%207.33847C2.06616%208.06947%202.04942%208.70796%202.17551%209.25087C2.30061%209.7948%202.52028%2010.2828%202.8355%2010.7139C3.14974%2011.145%203.51816%2011.5344%203.93977%2011.881C4.36039%2012.2288%204.782%2012.5521%205.20164%2012.851C5.68334%2013.1702%206.13844%2013.5169%206.56497%2013.8921C6.99052%2014.2672%207.31954%2014.7125%207.55004%2015.228C7.78055%2015.7445%207.81502%2016.3769%207.65347%2017.1262C7.56482%2017.5389%207.43676%2017.8765%207.27028%2018.1388C7.10381%2018.4011%206.89596%2018.5983%206.64772%2018.7295C6.3985%2018.8606%206.12071%2018.9267%205.8114%2018.9267C5.21641%2018.9267%204.79776%2018.6034%204.62833%2018.1632C4.4589%2017.7229%204.47367%2017.2583%204.60075%2016.5639C4.72782%2015.8705%205.05092%2015.1395%205.37107%2014.3699H1.17665C1.17665%2014.3699%200.207341%2016.1115%200.0310135%2017.6762C-0.0655232%2018.5302%200.0635208%2019.2653%200.41519%2019.8844C0.76686%2020.5036%201.33032%2020.9814%202.10655%2021.319C2.39222%2021.443%202.7104%2021.5447%203.05813%2021.623L2.54589%2024H7.17473L7.7047%2021.5386C8.08493%2021.442%208.43857%2021.3231%208.76562%2021.1787C9.73985%2020.7476%2010.52%2020.1427%2011.1071%2019.3649C11.6932%2018.5871%2012.0873%2017.7291%2012.2892%2016.7917C12.4744%2015.9295%2012.5099%2015.1741%2012.3966%2014.5275L12.3976%2014.5255Z'%20fill='white'/%3e%3c/svg%3e";async function Ve(a){let e=a.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";const t=atob(e),i=Uint8Array.from(t,o=>
28o.charCodeAt(0)),s=new Blob([i]).stream().pipeThrough(new DecompressionStream("gzip")),r=await new Response(s).text();return JSON.parse(r)}function F(a,e){return typeof e=="string"&&/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+(?:Z|[+-]\d+)/.test(e)?new Date(e):e}function ee(a,e){return e}function q(a,e=!1,t=!1,i=","){const s=a/100;if(t){const o=Math.round(s).toLocaleString("en-US");return i!==","?o.replace(/,/g,i):o}else{const r=e?",":".",o=s.toFixed(2).split("."),n=parseInt(o[0],10),l=o[1]??"00",c=n.toLocaleString("en-US");return i!==","?`${c.replace(/,/g,i)}${r}${l}`:e?`${c.replace(/,/g,".")}${r}${l}`:`${c}${r}${l}`}}function H(a,e,t,i){const s=e.replace("{{amount}}",q(a,!1,!1)).replace("{{amount_no_decimals}}",q(a,!1,!0)).replace("{{amount_with_comma_separator}}",q(a,!0,!1)).replace("{{amount_no_decimals_with_comma_separator}}",q(a,!0,!0)).replace("{{amount_with_space_separator}}",q(a,!1,!1," ")).replace("{{amount_no_decimals_with_space_separator}}",q(a,!1,!0," ")).replace("{{amount_with_apostrophe_separator}}",q(a,!1,!1,"'")).replace("{{amount_no_decimals_with_apostrophe_separator}}",q(a,!1,!0,"'")).replace("{{amount_with_period_and_space_separator}}",q(a,!1,!1,". ")).replace("{{amount_no_decimals_with_period_and_space_separator}}",q(a,!1,!0,". "));return i?`${s} ${t}`:s}function ae(a){return a.replace(/[^\d.,\s-]/g,"").trim()}function j(a){const e=new Map;for(const[t,i,s]of a.variants)e.set(t,{priceInCents:i,compareAtPriceInCents:s});return e}function Le(a,e,t,i){const{priceInCents:s,compareAtPriceInCents:r}=t,{moneyFormat:o,currency:n,currencyCodeEnabled:l}=i;if(a.getAttribute("data-sl-attribute-p")===e)a.innerHTML=H(s,o,n,l);else if(a.getAttribute("data-sl-attribute-cap")===e)r<=0||r<=s?a.remove():a.innerHTML=H(r,o,n,l);else if(a.getAttribute("data-sl-attribute-discount")===e&&!(r<=0||r<=s)){const d=Math.round((r-s)/r*100),u=ae(H(r-s,o,n,!1)),h=a.getAttribute("data-sl-format")||"percent";h==="percent"?a.textContent=`-${d}%`:h==="amount"?a.textContent=`-${u}`:h==="both"&&(a.textContent=`-${d}% (-${u})`)}}function $e(a){const e=[],t={id:"url-pattern",operator:"contains",value:"/"};for(const[i,s,r]of a.variants){e.push({id:`p-${i}`,cssSelector:`[data-sl-attribute-p="${i}"]`,urlPatterns:[t],actions:[{id:`p-action-${i}`,type:"innerHtml",scope:"price",value:H(s,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]});const o=r<=0||r<=s;if(e.push({id:`cap-${i}`,cssSelector:`[data-sl-attribute-cap="${i}"]`,urlPatterns:[t],actions:[{id:`cap-action-${i}`,type:o?"remove":"innerHtml",scope:"compare-at-price",value:o?"":H(r,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]}),!o&&r>s){const n=Math.round((r-s)/r*100),l=ae(H(r-s,a.moneyFormat,a.currency,!1));e.push({id:`d-${i}`,cssSelector:`[data-sl-attribute-discount="${i}"]`,urlPatterns:[t],actions:[{id:`d-action-${i}`,type:"js",scope:null,value:`var format = element.getAttribute('data-sl-format') || 'percent';                    if (format === 'percent') {                      element.textContent = '-${n}%';                    } else if (format === 'amount') {                      element.textContent = '-${l}';                    } else if (format === 'both') {                      element.textContent = '-${n}% (-${l})';                    }`}]})}}return e}const Me=a=>{let e=5381;for(let t=0;t<a.length;t++)e=(e*33^a.charCodeAt(t))>>>0;return e.toString(36)},qe=()=>Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4),He=a=>btoa(JSON.stringify(a)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),K=a=>a.replace(/#slr-[a-z0-9]+$/,""),tt="modulepreload",it=function(a){return"/"+a},st={},Ne=function(e,t,i){let s=Promise.resolve();function r(o){const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=o,window.dispatchEvent(n),!n.defaultPrevented)throw o}return s.then(o=>{for(const n of o||[])n.status==="rejected"&&r(n.reason);return e().catch(r)})};function le(a,e,t){const i=t?a.plans.filter(c=>!c.variantId||c.variantId===t):a.plans,s=[],r=[];for(const c of i)c.direction==="decrease"?(s.push(c.existingShopifyPlanId),r.push(c.createdShopifyPlanId)):(s.push(c.createdShopifyPlanId),r.push(c.existingShopifyPlanId));const o=e?s:r,n=e?r:s;if(t)for(const c of a.plans)for(const d of[c.existingShopifyPlanId,c.createdShopifyPlanId])d&&!o.includes(d)&&!n.includes(d)&&n.push(d);const l={};for(let c=0;c<n.length;c++){const d=n[c],u=o[c];d&&u&&(l[d]=u)}return{showPlanIds:o,hidePlanIds:n,swapMap:l}}function ce(a,e,t){const i=e?a.plans.find(r=>r.variantId===e):void 0;if(i)return i.direction;if(t){const r=a.plans.find(o=>o.productId===t);if(r)return r.direction}return a.plans.find(r=>!r.variantId)?.direction??null}function J(a,e){const t=e?a.plans.filter(r=>!r.productId||r.productId===e):a.plans,i={};for(const r of t)i[r.existingShopifyPlanId]=r.existingDiscountAmount,i[r.createdShopifyPlanId]=r.existingDiscountAmount;
28const s=Math.max(...Object.values(i),0);return{discountMap:i,maxDiscount:s}}function W(a){const e=document.querySelector('form[action*="/cart/add"] input[name="product-id"]')?.value;if(e)return e;if(a){for(const r of Array.from(document.querySelectorAll("[data-sl-attribute-p]"))){const o=r.getAttribute("data-sl-attribute-p");if(!o)continue;const n=a.variants.find(l=>l[0]===o);if(n?.[3])return n[3]}const s=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(s){const r=a.variants.find(o=>o[0]===s);if(r?.[3])return r[3]}}const t=window,i=t.ShopifyAnalytics?.meta?.product?.id??t.meta?.product?.id;return i!=null?String(i):null}function D(a,e){return a.widget.selectors[e]??[]}function N(a,e){return a.replace(/[\d.]+%/,`${e}%`)}function $(a,e){const t=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);let i=t.nextNode();for(;i;){if(i.nodeValue!==null){const s=e(i.nodeValue);if(s!==i.nodeValue){i.nodeValue=s;return}}i=t.nextNode()}}function de(a,e){return a===null?!1:a==="decrease"?!e:e}async function Ue(a){if(a.subscriptionSwapDone)return;const e=a.getActiveAssignment();if(!e)return;const t=a.getHypothesis(e.hypothesisId);if(!t?.subscriptionData)return;a.subscriptionSwapDone=!0;const i=t.subscriptionData,s=t.isControl,r=[...new Set(i.plans.map(d=>d.direction))].join(",");a.log(`[SUB-SWAP] ${s?"A":"B"} side, directions=${r}`);const o=i.plans.some(d=>d.variantId);let n=!1,l=!1;function c(){if(!l){l=!0;try{const d=o?document.querySelector("select[name='id'], input[name='id']")?.value:void 0,{showPlanIds:u,hidePlanIds:h,swapMap:p}=le(i,s,d);a.swapMap=p;const b=D(i,"widgetParent"),E=D(i,"subscriptionPlans"),S=D(i,"subscriptionInput");if(!b.length||!E.length||!S.length)return;const C=document.querySelector(b[0].selector);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(E[0].selector);if(!_?.shadowRoot)return;const T=S[0].selector;let m=null;if(i.widget.widgetType==="buttons"||i.widget.widgetType==="radio"){const y=Array.from(_.shadowRoot.querySelectorAll(T));if(!y.length)return;for(const v of y){const g=v.closest("label");g&&(u.includes(v.value)?g.style.display="":h.includes(v.value)&&(g.style.display="none"))}const w=y.some(v=>u.includes(v.value)&&v.checked),I=y.some(v=>h.includes(v.value)&&v.checked);if((w||I)&&(n=!1),!w&&!n){n=!0;for(const v of y)if(u.includes(v.value)){v.closest("label")?.click(),v.dispatchEvent(new Event("change",{bubbles:!0}));break}}const f=y.find(v=>v.checked);m=f&&u.includes(f.value)?f.value:u[0]??null}else if(i.widget.widgetType==="dropdown"){const y=_.shadowRoot.querySelector("select");if(!y)return;for(const w of Array.from(y.options))h.includes(w.value)&&(w.style.display="none",w.disabled=!0);if(h.includes(y.value)){const w=Array.from(y.options).find(I=>u.includes(I.value));w&&(y.value=w.value,y.dispatchEvent(new Event("change",{bubbles:!0})))}m=u.includes(y.value)?y.value:u[0]??null}if(m){const y=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const w of y)w.value!==m&&(w.value=m)}}finally{l=!1}}}if(a.subscriptionHideWrongPlans=c,a.swapMap=le(i,s).swapMap,c(),o){const d=document.querySelector("select[name='id'], input[name='id']");d&&d.addEventListener("change",c)}}function B(a){const e=D(a,"widgetParent");return e.length?document.querySelector(e[0].selector)?.shadowRoot??null:null}function Y(a,e){const t=D(a,"subscriptionPlans");return t.length?e.querySelector(t[0].selector)?.shadowRoot??null:null}function Z(a,e){const t=new URLSearchParams(window.location.search).get("variant");if(t)return t;{const i=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(i)return i}return a.size>0?[...a.keys()][0]:void 0}function G(a,e){return H(a,e.moneyFormat,e.currency,e.currencyCodeEnabled)}function Fe({originalFetch:a,swapMap:e,slptValue:t,getSelectedPlanId:i,log:s}){if(window.fetch.__shoplift_intercepted)return s("[SUB-INTERCEPT] already installed — skipping"),()=>{};function r(n){if(i){const l=i();if(l)return e[l]??l}return e[n]??n}const o=function(n,l){if((typeof n=="string"?n:n instanceof URL?n.href:n.url).includes("/cart/add")&&l?.body)try{if(l.body instanceof FormData){const d=l.body.get("selling_plan");d?l.body.set("selling_plan",r(String(d))):(!d||d==="")&&t&&l.body.set("properties[_slpt]",t)}
28else if(typeof l.body=="string"){const d=JSON.parse(l.body);if(d.items)for(const u of d.items){const h=String(u.selling_plan??"");h?u.selling_plan=r(h):!u.selling_plan&&t&&(u.properties||(u.properties={}),u.properties._slpt=t)}else if(d.id){const u=String(d.selling_plan??"");u?d.selling_plan=r(u):!d.selling_plan&&t&&(d.properties||(d.properties={}),d.properties._slpt=t)}l.body=JSON.stringify(d)}}catch(d){s("[SUB-INTERCEPT] body parse failed; cart-add proceeds with un-swapped plan",d)}return a.call(window,n,l)};return o.__shoplift_intercepted=!0,window.fetch=o,function(){window.fetch===o&&(window.fetch=a)}}function Be({log:a}){if(window.fetch.__shoplift_intercepted)return a("[SUB-PREVIEW-BLOCK] already installed — skipping"),()=>{};const e=window.fetch,t=function(i,s){const r=typeof i=="string"?i:i instanceof URL?i.href:i.url;return r.includes("/cart/add")?(a("[SUB-PREVIEW-BLOCK] cart-add blocked in preview mode",{url:r}),Promise.resolve(new Response(JSON.stringify({id:0,properties:{},quantity:0,variant_id:0,key:"preview",title:"Preview — cart-add blocked",price:0,original_price:0,line_price:0,original_line_price:0,total_discount:0,discounts:[],preview:!0}),{status:200,headers:{"Content-Type":"application/json"}}))):e.call(window,i,s)};return t.__shoplift_intercepted=!0,window.fetch=t,function(){window.fetch===t&&(window.fetch=e)}}function pe({data:a,runUpdates:e,debounceMs:t=150}){let i=null;function s(){i&&clearTimeout(i),e(),i=setTimeout(e,t)}let r=null;const o=[],n={childList:!0,subtree:!0,characterData:!0,attributes:!0};function l(h){for(const p of o)p.disconnect();o.length=0;for(const p of Array.from(h.querySelectorAll("*")))if(p.shadowRoot){const b=new MutationObserver(s);b.observe(p.shadowRoot,n),o.push(b)}}function c(){const h=B(a);return h?(r&&r.disconnect(),l(h),r=new MutationObserver(p=>{p.some(b=>b.type==="childList"&&b.addedNodes.length>0)&&l(h),s()}),r.observe(h,n),!0):!1}const d=document.body||document.documentElement,u=new MutationObserver(()=>{c()&&s()});return u.observe(d,{childList:!0,subtree:!0}),c()&&s(),e(),function(){i&&(clearTimeout(i),i=null),u.disconnect(),r&&(r.disconnect(),r=null);for(const p of o)p.disconnect();o.length=0}}async function ze(a){if(a.subscriptionPriceDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=t?.subscriptionData?null:a.findActiveSubscriptionTestControl(),s=t?.subscriptionData?t:i?.hypothesis;if(!s?.subscriptionData)return;const r=t?.subscriptionData?e.testId:i.testId;a.subscriptionPriceDone=!0;const o=s.subscriptionData,n=s.isControl,l=s.priceData,c=o.widget.widgetType;let d=W(l),u=J(o,d),h=u.discountMap,p=u.maxDiscount;function b(){const g=W(l);g!==d&&(d=g,u=J(o,d),h=u.discountMap,p=u.maxDiscount,a.log(`[SUB-PRICE] scope refreshed side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`))}a.log(`[SUB-PRICE] side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`),a.updatePriceTestHiddenInputs(r,n?"control":"variant",!1);function E(){if(!l)return null;const g=j(l),P=Z(g),A=ce(o,P,d);if(!de(A,n))return null;const k=P?g.get(P):void 0;return k?{formattedVariantPrice:G(k.priceInCents,l),formattedDiscounted:G(k.priceInCents*(1-p/100),l)}:null}Fe({originalFetch:a.fetch,swapMap:a.swapMap??{},slptValue:a.slptValue??void 0,log:a.log,getSelectedPlanId:()=>{const g=B(o);if(!g)return null;const P=Y(o,g);if(!P)return null;const A=D(o,"subscriptionInput"),k=A.length?A[0].selector:'input[name="rc_plan"]';return P.querySelector(`${k}:checked`)?.value??null}});function S(g){const P=D(o,"subscriptionDiscount");for(const A of P)if(A.selector.includes("badge")||A.selector.includes("__badge")){const k=g.querySelector(A.selector);k?.textContent&&!k.textContent.includes(`${p}%`)&&$(k,x=>N(x,p))}}function C(g){const P=E();if(!P)return;const A=D(o,"subscriptionCompareAt");for(const k of A){const x=g.querySelector(k.selector)||g.querySelector(`[part~="${k.selector}"]`);x?.textContent&&!x.textContent.includes(P.formattedVariantPrice)&&$(x,R=>/\d/.test(R)?P.formattedVariantPrice:R)}}function _(g,P){const A=D(o,"subscriptionCompareAt"),k=P===0?"none":"";for(const x of A){const R=g.querySelector(x.selector)||g.querySelector(`[part~="${x.selector}"]`);R&&(k==="none"?R.style.display!=="none"&&(R.style.display="none"):R.style.display==="none"&&(R.style.display=""))}}function T(g){const P=D(o,"subscriptionInput"),A=P.length?P[0].selector:'input[name="rc_plan"]',k=D(o,"subscriptionPlanDiscount"),x=k.length?k[0].selector:".rc-plans-button__discount";for(const R of Array.from(g.querySelectorAll("label"))){const V=R.querySelector(A),O=R.querySelector(x);if(V&&O){const L=h[V.value];if(L!==void 0){if(L===0)O.style.display!=="none"&&(O.style.display="none");else if(O.style.display==="none"&&(O.style.display=""),O.textContent){const Q=O.textContent.match(/[\d.]+%/)?.[0];Q&&Q!==`${L}%`&&$(O,et=>N(et,L))}}}}}function m(g){const P=g.querySelector("select");if(P)for(const A of Array.from(P.options)){const k=h[A.value];if(k!==void 0&&A.textContent){const x=A.textContent.match(/[\d.]+%/)?.[0];x&&x!==`${k}%`&&(A.textContent=N(A.textContent,k))}}}function y(g,P){const k=D(o,"subscriptionDiscount").filter(x=>x.selector.includes("benefit")||x.selector==="rc-benefits");for(const x of k){const R=g.querySelector(x.selector);if(R?.shadowRoot){for(const V of Array.from(R.shadowRoot.querySelectorAll("li")))if(V.textContent?.includes("Save")){const O=V;if(P===0)O.style.display!=="none"&&(O.style.display="none");else{O.style.display==="none"&&(O.style.display="");const L=V.textContent.match(/[\d.]+%/)?.[0];L&&L!==`${P}%`&&$(V,Q=>N(Q,P))}}}}}let w=!1;function I(){if(!w){w=!0;try{if(b(),d!==null&&Object.keys(h).length===0)return;const g=B(o);if(!g)return;S(g),l&&C(g);const P=Y(o,g);let A=p;if(P){const k=D(o,"subscriptionInput"),x=k.length?k[0].selector:'input[name="rc_plan"]',R=P.querySelector(`${x}:checked`);if(R){const V=h[R.value];V!==void 0&&(A=V)}c==="buttons"||c==="radio"?T(P):m(P)}_(g,A),y(g,A)}finally{w=!1}}}function f(){const g=E();if(!g)return;const P=B(o);if(!P)return;const A=D(o,"onetimeToggle"),k=A.length?A[0].selector:'input[value="onetime"]';if(!P.querySelector(k)?.checked)return;const R=D(o,"subscriptionPrice");for(const V of R){const O=P.querySelector(V.selector)||P.querySelector(`[part~="${V.selector}"]`);O?.textContent&&!O.textContent.includes(g.formattedDiscounted)&&$(O,L=>/\d/.test(L)?g.formattedDiscounted:L)}}function v(){a.subscriptionHideWrongPlans&&a.subscriptionHideWrongPlans(),I(),a.subscriptionUpdateOneTime&&a.subscriptionUpdateOneTime(),f()}pe({data:o,runUpdates:v})}async function We(a){if(a.subscriptionOneTimeDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=!!(t?.subscriptionData&&t.priceData),s=i?null:a.findActiveSubscriptionTestControl(),r=i?t:s?.hy
28pothesis;if(!r?.subscriptionData||!r.priceData)return;const o=i?e.testId:s.testId;a.subscriptionOneTimeDone=!0;const n=r.subscriptionData,l=r.priceData,c=j(l),d=r.isControl,u=d?"control":"variant";a.slptValue=`${o}:${u}:f`,a.updatePriceTestHiddenInputs(o,u,!1);function h(){const p=B(n);if(!p)return;const b=Z(c);if(!b)return;const E=W(l),S=ce(n,b,E);if(!de(S,d))return;const C=c.get(b);if(!C)return;const _=H(C.priceInCents,l.moneyFormat,l.currency,l.currencyCodeEnabled),T=D(n,"onetimePrice");if(!T.length)return;const m=D(n,"onetimeContainer"),y=m.length?m[0].selector:'[part~="rc-purchase-option__onetime"]',I=p.querySelector(y)??p;for(const f of T){let v=null;try{v=I.querySelector(f.selector)}catch{v=null}v??=I.querySelector(`[part~="${f.selector}"]`),v&&v.textContent&&!v.textContent.includes(_)&&$(v,g=>/\d/.test(g)?_:g)}}a.subscriptionUpdateOneTime=h,h()}async function Ge(a,e){const{subscriptionPreviewRender:t}=await Ne(async()=>{const{subscriptionPreviewRender:i}=await Promise.resolve().then(()=>Xe);return{subscriptionPreviewRender:i}},void 0);return t(a.subscriptionData,a.priceData,a.isControl,e)}function je(a,e){const t=a.widget.selectors.widgetParent??[],i=a.widget.selectors.subscriptionPlans??[],s=a.widget.selectors.subscriptionInput??[];if(!t.length||!i.length||!s.length){e("[SUB-GLOBAL-HIDE] Missing required selectors — skipping");return}const r=t[0].selector,o=i[0].selector,n=s[0].selector;let l=!1,c=null,d=!1;function u(){if(!d){d=!0;try{h()}finally{d=!1}}}function h(){const C=document.querySelector(r);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(o);if(!_?.shadowRoot)return;_.shadowRoot!==c&&(c=_.shadowRoot,l=!1);let T=0;if(a.widget.widgetType==="buttons"||a.widget.widgetType==="radio"){const m=Array.from(_.shadowRoot.querySelectorAll(n));for(const f of m)if(a.planIds.includes(f.value)){f.disabled||(f.disabled=!0);const v=f.closest("label");v&&v.style.display!=="none"&&(v.style.display="none",T++)}const y=m.filter(f=>!a.planIds.includes(f.value));if(!y.some(f=>f.checked)&&!l&&y.length>0){l=!0;const f=y[0];f.closest("label")?.click(),f.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible plan input=${f.value}`)}const I=y.find(f=>f.checked)??y[0];if(I){const f=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const v of f)v.value!==I.value&&(v.value=I.value,e(`[SUB-GLOBAL-HIDE] Mirrored plan id ${I.value} to form selling_plan input`))}}else if(a.widget.widgetType==="dropdown"){const m=_.shadowRoot.querySelector("select");if(!m)return;for(const I of Array.from(m.options))a.planIds.includes(I.value)&&(I.style.display!=="none"&&(I.style.display="none"),I.disabled||(I.disabled=!0),T++);const y=Array.from(m.options).filter(I=>!a.planIds.includes(I.value)),w=y.some(I=>I.value===m.value);y.length>0&&!w&&!l&&(l=!0,m.value=y[0].value,m.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible option=${y[0].value}`))}T>0&&e(`[SUB-GLOBAL-HIDE] Hidden ${T} B-side plan buttons`)}const p={childList:!0,subtree:!0,characterData:!0};let b=null;function E(C){b?.disconnect(),b=new MutationObserver(()=>u()),b.observe(C,p)}function S(){const C=document.querySelector(r);if(!C?.shadowRoot)return!1;u(),new MutationObserver(()=>{u();const m=C.shadowRoot.querySelector(o);m?.shadowRoot&&E(m.shadowRoot)}).observe(C.shadowRoot,p);const T=C.shadowRoot.querySelector(o);return T?.shadowRoot&&E(T.shadowRoot),!0}if(!S()){e("[SUB-GLOBAL-HIDE] Widget not in DOM yet — waiting via MutationObserver");const C=new MutationObserver(()=>{S()&&C.disconnect()});C.observe(document.body??document.documentElement,{childList:!0,subtree:!0})}}const ue="Limited preview",Ke="Add-to-cart and checkout prices won't reflect this test until it launches — test selling plans are not created in your subscription app until after a test is launched.",Je=5e3;function Ye(){const a=document.createElement("div");a.id="shoplift-preview-subscription-warning";const e=document.createElement("span");e.id="shoplift-preview-subscription-warning__icon",e.setAttribute("aria-hidden","true"),e.textContent="!";const t=document.createElement("span");t.id="shoplift-preview-subscription-warning__label",t.textContent=ue;const i=document.createElement("div");i.id="shoplift-preview-subscription-warning__tooltip",i.setAttribute("role","tooltip"),i.textContent=Ke,a.appendChild(e),a.appendChild(t),a.appendChild(i),a.setAttribute("tabindex","0"),a.setAttribute("aria-describedby",i.id),a.setAttribute("aria-label",ue);let s=null;function r(){s!==null&&(clearTimeout(s),s=null)}function o(){i.classList.add("shoplift-preview-subscription-warning__tooltip--visible")}function n(){i.classList.remove("shoplift-preview-subscription-warning__tooltip--visible")}function l(){o(),r(),s=setTimeout(()=>{n(),s=null},Je)}function c(){r(),o()}function d(){s===null&&n()}a.addEventListener("mouseenter",c),a.addEventListener("mouseleave",d),a.addEventListener("focus",c),a.addEventListener("blur",d);function u(p){try{const b=p.target;if(!(b instanceof Element))return;(b.closest('form[action*="/cart/add"] button[type="submit"], form[action*="/cart/add"] input[type="submit"]')!==null||b.closest('[name="add"], button[name="add"], [data-add-to-cart], button[data-add-to-cart]')!==null)&&l()}catch{}}
28document.addEventListener("click",u,!0);function h(){r(),document.removeEventListener("click",u,!0),a.removeEventListener("mouseenter",c),a.removeEventListener("mouseleave",d),a.removeEventListener("focus",c),a.removeEventListener("blur",d),a.remove()}return{root:a,tooltip:i,cleanup:h}}let he=!1;class Ze{DATA_SL_ATTRIBUTE_P="data-sl-attribute-p";DATA_SL_TEST_ID="data-sl-test-id";VIEWPORT_TRACK_THRESHOLD=.5;temporarySessionKey="Shoplift_Session";essentialSessionKey="Shoplift_Essential";analyticsSessionKey="Shoplift_Analytics";priceSelectorsSessionKey="Shoplift_PriceSelectors_v2";shop;host;eventHost;disableReferrerOverride;legacySessionKey;cssHideClass;testConfigs;inactiveTestConfigs;hiddenSubscriptionPlans;testsFilteredByAudience;sendPageView;shopliftDebug;gaConfig;telemetryEnabled;getCountryTimeout;geoViaShopify;resolvedRegion=null;state;subscriptionPreviewWarningCleanup=null;shopifyAnalyticsId;cookie=document.cookie;isSyncing=!1;isSyncingGA=!1;fetch;localStorageSet;localStorageGet;sessionStorageSet=window.sessionStorage.setItem.bind(window.sessionStorage);sessionStorageGet=window.sessionStorage.getItem.bind(window.sessionStorage);urlParams=new URLSearchParams(window.location.search);device;logHistory;activeViewportObservers=new Map;clientIdRetryCount=0;constructor(e,t,i,s,r,o,n,l,c,d,u,h,p,b=!1){this.shop=e,this.host=t,this.eventHost=i,this.disableReferrerOverride=l,this.logHistory=[],this.legacySessionKey=`SHOPLIFT_SESSION_${this.shop}`,this.cssHideClass=s?"shoplift-hide":"",this.testConfigs=u.map(S=>({...S,startAt:new Date(S.startAt),statusHistory:S.statusHistory.map(C=>({...C,createdAt:new Date(C.createdAt)}))})),this.inactiveTestConfigs=h,this.hiddenSubscriptionPlans=p,this.sendPageView=!!r,this.shopliftDebug=o===!0,this.telemetryEnabled=c===!0,this.geoViaShopify=b===!0,this.gaConfig=n!=={"sendEvents":true,"mode":"gtm"}?n:{sendEvents:!1},this.fetch=window.fetch.bind(window),this.localStorageSet=window.localStorage.setItem.bind(window.localStorage),this.localStorageGet=window.localStorage.getItem.bind(window.localStorage);const E=this.getDeviceType();this.device=E!=="tablet"?E:"mobile",this.state=this.loadState(),this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.testsFilteredByAudience=u.filter(S=>
28S.status=="active"),this.getCountryTimeout=d===1000?1e3:d,window.__slReadCookie=S=>{const C=this.getCookie(S);if(C===null)return null;try{return decodeURIComponent(C)}catch{return C}},this.log("State Loaded",JSON.stringify(this.state))}deriveCategoryFromExistingTests(){if(!this.state.temporary.testCategory&&this.state.essential.visitorTests.length>0){const e=this.state.essential.visitorTests.some(t=>{if(!t.hypothesisId)return!1;const i=this.getHypothesis(t.hypothesisId);return i&&["theme","basicScript","price"].includes(i.type)});this.state.temporary.testCategory=e?"global":"conditional",this.persistTemporaryState(),this.log("Derived test category from existing visitorTests: %s",this.state.temporary.testCategory)}}async init(){try{if(this.log("Shoplift script initializing"),window.Shopify&&window.Shopify.designMode){this.log("Skipping script for design mode");return}if(window.location.href.includes("slScreenshot=true")){this.log("Skipping script for screenshot");return}if(window.location.hostname.endsWith(".edgemesh.com")){this.log("Skipping script for preview");return}if(window.location.href.includes("isShopliftMerchant")){const o=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",o),this.state.temporary.isMerchant=o,this.persistTemporaryState()}if(this.state.temporary.isMerchant){this.log("Setting up preview for merchant"),typeof window.shoplift!="object"&&this.setShopliftStub(),this.state.temporary.previewConfig||this.hidePage(),await this.initPreview(),document.querySelector("#sl-preview-bar-hide")?.remove();return}if(this.state.temporary.previewConfig=void 0,we(navigator.userAgent))return;const e=Date.now(),t=!this.state.temporary.lastSeen||e-this.state.temporary.lastSeen>1800*1e3;(!this.state.temporary.entryPage||t)&&(this.state.temporary.entryPage=K(window.location.href)),this.state.temporary.lastSeen=e,this.persistTemporaryState(),window.__slEntryPage=this.state.temporary.entryPage??"";const i=this.state.essential.visitorTests.filter(o=>o.hypothesisId&&+o.createdAt>Date.now()-6e4);if(i.length===0)this.sendDiagnosticTelemetry("page-landed",null);else for(const o of i)this.sendDiagnosticTelemetry("page-landed",o.testId,{hypothesisId:o.hypothesisId,isControl:o.assignedTo==="control",testType:o.testType??"unknown"});if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const o=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(n=>n?.json());this.log(`IP: ${o}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),ee)}).catch()}if(this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.monitorConsentChange(),this.checkForThemePreview())return;if(!this.disableReferrerOverride&&this.state.temporary.originalReferrer!=null){this.log(`Overriding referrer from '${document.referrer}' to '${this.state.temporary.originalReferrer}'`);const o=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>o,enumerable:!0,configurable:!0})}if(await this.refreshVisitor(this.shopifyAnalyticsId),await this.handleVisitorTest()){this.log("Redirecting for visitor test");return}this.setShoplift(),this.showPage(),this.ensureCartAttributesForExistingPriceTests(!1);const r=this.state.essential.visitorTests.some(o=>(o.hypothesisId?this.getHypothesis(o.hypothesisId):void 0)?.subscriptionData!=null)||Object.values(this.state.temporary.testReservations??{}).some(o=>this.getHypothesis(o.hypothesisId)?.subscriptionData!=null);this.hiddenSubscriptionPlans&&!r&&(this.log(`[SUB-GLOBAL] Visitor not in subscription test — hiding ${this.hiddenSubscriptionPlans.planIds.length} B-side plans`),je(this.hiddenSubscriptionPlans,o=>this.log(o))),await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange(),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(e){if(e instanceof ie)return;throw e}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(e){switch(e){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(e){return e.title?e.title:e.type==="price"?e.isControl?"Original prices":"Variant prices":e.isControl?"Original":"Untitled variant "+e.label.toUpperCase()}
28async initPreview(){const e=this.urlParams.get("previewConfig");if(e){this.state.temporary.previewConfig=void 0,this.log("Setting up the preview"),this.log("Found preview config, writing to temporary state");const t=await Ve(e);if(this.state.temporary.previewConfig=t,this.state.temporary.previewConfig.testTypeCategory===M.Price){this.hidePage(!0);const s=this.state.temporary.previewConfig;let r=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/${s.isDraft||!1}`;s.shopifyProductId&&(r+=`?productId=${s.shopifyProductId}`);const o=await this.makeJsonRequest({method:"get",url:r}).catch(n=>(this.log("Error getting domSelectors",n),null));if(s.variants.forEach(n=>n.domSelectors=o[n.id]?.domSelectors),s.isDraft){const n=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/subscription-preview`,l=await this.makeJsonRequest({method:"get",url:n}).catch(c=>(this.log("No subscription preview data for draft (test may not have a subscription widget)",c),null));l?.subscriptionData&&s.variants.forEach(c=>{c.subscriptionData=l.subscriptionData,c.priceData=l.priceData})}}this.persistTemporaryState();const i=new URL(window.location.toString());i.searchParams.delete("previewConfig"),this.queueRedirect(i)}else if(this.state.temporary.previewConfig){this.showPage();const t=this.state.temporary.previewConfig;if(t.testTypeCategory===M.Template&&this.handleTemplatePreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.UrlRedirect&&this.handleUrlPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Script&&this.handleScriptPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Price){const i=await this.handlePricePreview(t);t.isDraft?await this.handleSubscriptionPricePreview(t):await this.handleSubscriptionLivePreview(t),i&&this.initPreviewControls(t)}}}initPreviewControls(e){document.addEventListener("DOMContentLoaded",()=>{const t=e.variants.find(b=>b.id===e.currentVariant),i=t?.label||"a",s=e.variants,r=document.createElement("div");r.id="shoplift-preview-control";const o=document.createElement("div"),n=document.createElement("img");n.src=Oe,n.height=24,n.width=14,o.style.padding="0 16px",o.style.lineHeight="100%",o.appendChild(n),r.appendChild(o);const l=document.createElement("div");l.id="shoplift-preview-variant-selector";const c=document.createElement("button");c.id="shoplift-preview-variant-menu-trigger";const d=document.createElement("div");d.className="menu-variant-label",d.style.backgroundColor=this.getVariantColor(i).bg,d.style.color=this.getVariantColor(i).text,d.innerText=i.toUpperCase(),c.appendChild(d);const u=document.createElement("span");if(u.id="shoplift-preview-variant-title",u.innerText=t?this.getDefaultVariantTitle(t):"Untitled variant "+i.toUpperCase(),c.appendChild(u),s.length>1){const b=document.createElement("img");b.src=De,b.width=12,b.height=12,b.style.height="12px",b.style.width="12px",c.appendChild(b);const E=document.createElement("div");E.className="preview-variant-menu";for(const S of e.variants.filter(C=>C.id!==e.currentVariant)){const C=document.createElement("div");C.className="preview-variant-menu--item";const _=document.createElement("div");_.className="menu-variant-label",_.style.backgroundColor=this.getVariantColor(S.label).bg,_.style.color=this.getVariantColor(S.label).text,_.style.flexShrink="0",_.innerText=S.label.toUpperCase(),C.appendChild(_);const T=document.createElement("span");T.innerText=this.getDefaultVariantTitle(S),C.appendChild(T),C.addEventListener("click",()=>{this.pickVariant(S.id)}),E.appendChild(C)}l.appendChild(E),c.addEventListener("click",()=>{E.className!=="preview-variant-menu preview-variant-menu__visible"?E.classList.add("preview-variant-menu__visible"):E.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",S=>{S.target instanceof Element&&!c.contains(S.target)&&E.className==="preview-variant-menu preview-variant-menu__visible"&&E.classList.remove("preview-variant-menu__visible")})}else c.style.pointerEvents="none",d.style.margin="0";if(l.appendChild(c),r.appendChild(l),e.hasSubscription){this.subscriptionPreviewWarningCleanup?.();const b=Ye();r.appendChild(b.root),this.subscriptionPreviewWarningCleanup=b.cleanup}const h=document.createElement("div"),p=document.createElement("button");p.id="shoplift-exit-preview-button",p.innerText="Exit",h.appendChild(p),p.addEventListener("click",()=>{this.exitPreview()}),r.appendChild(h),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.add("visible")})}),this.ensureCartAttributesForExistingPriceTests(!0)}pickVariant(e){if(this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig,i=new URL(window.location.toString());if(t.testTypeCategory===M.UrlRedirect){const s=t.variants.find(r=>r.id===t.currentVariant)?.redirectUrl;if(i.pathname===s){const r=t.variants.find(o=>o.id===e)?.redirectUrl;r&&(i.pathname=r)}}if(t.testTypeCategory===M.Template){const s=t.variants.find(r=>r.id===t.currentVariant)?.pathName;if(s&&i.pathname===s){const r=t.variants.find(o=>o.id===e)?.pathName;r&&r!==s&&(i.pathname=r)}}t.currentVariant=e,this.persistTemporaryState(),this.queueRedirect(i)}}exitPreview(){const e=new URL(window.location.toString());if(this.state.temporary.previewConfig?.testTypeCategory===M.Template&&e.searchParams.delete("view"),this.state.temporary.previewConfig?.testTypeCategory===M.Script&&e.searchParams.delete("slVariant"),this.state.temporary.previewConfig?.testTypeCategory===M.UrlRedirect){const i=this.state.temporary.previewConfig.variants.filter(r=>!r.isControl&&r.redirectUrl!==null).map(r=>r.redirectUrl),s=this.state.temporary.previewConfig.variants.find(r=>r.label==="a")?.redirectUrl;i.includes(e.pathname)&&s&&(e.pathname=s)}this.state.temporary.isMerchant=!1,e.searchParams.delete("isShopliftMerchant"),this.state.temporary.previewConfig=void 0,this.persistTemporaryState(),this.subscriptionPreviewWarningCleanup?.(),this.subscriptionPreviewWarningCleanup=null,this.hidePage(),this.queueRedirect(e)}handleTemplatePreview(e){const t=e.currentVariant,i=e.variants.find(l=>l.id===t);if(!i)return!1;const s=e.variants.find(l=>l.isControl);if(!s)return!1;this.log("Setting up template preview for type",s.type);
28const r=new URL(window.location.toString()),o=r.searchParams.get("view"),n=i.type===s.type;return!n&&!i.isControl&&template.suffix===s.affix&&this.typeFromTemplate()===s.type&&i.pathName!==null?(this.log("Hit control template type, redirecting to the variant url"),this.hidePage(),r.pathname=i.pathName,this.queueRedirect(r),!0):(!i.isControl&&this.typeFromTemplate()==i.type&&template.suffix===s.affix&&n&&o!==(i.affix||"__DEFAULT__")&&(this.log("Template type and affix match control, updating the view param"),r.searchParams.delete("view"),this.log("Setting the new viewParam to",i.affix||"__DEFAULT__"),this.hidePage(),r.searchParams.set("view",i.affix||"__DEFAULT__"),this.queueRedirect(r)),o!==null&&o!==(i.affix||"__DEFAULT__")&&(r.searchParams.delete("view"),this.hidePage(),this.queueRedirect(r)),!0)}handleUrlPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t),s=e.variants.find(o=>o.isControl)?.redirectUrl;if(!i)return!1;this.log("Setting up URL redirect preview");const r=new URL(window.location.toString());return r.pathname===s&&!i.isControl&&i.redirectUrl!==null&&(this.log("Url matches control, redirecting"),this.hidePage(),r.pathname=i.redirectUrl,this.queueRedirect(r)),!0}handleScriptPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t);if(!i)return!1;this.log("Setting up script preview");const s=new URL(window.location.toString());return s.searchParams.get("slVariant")!==i.id&&(this.log("current id doesn't match the variant, redirecting"),s.searchParams.delete("slVariant"),this.log("Setting the new slVariantParam"),this.hidePage(),s.searchParams.set("slVariant",i.id),this.queueRedirect(s)),!0}async handlePricePreview(e){const t=e.currentVariant,i=e.variants.find(s=>s.id===t);return i?(this.log("Setting up price preview"),i.domSelectors&&i.domSelectors.length>0&&(U(document,{testId:e.testId,hypothesisId:i.id,selectors:i.domSelectors}),this.ensureCartAttributesForExistingPriceTests(!0)),!0):!1}async handleSubscriptionPricePreview(e){const t=e.variants.find(i=>i.id===e.currentVariant);t?.subscriptionData&&(this.log("Setting up subscription price preview"),await Ge({id:t.id,isControl:t.isControl,subscriptionData:t.subscriptionData,priceData:t.priceData},(i,...s)=>this.log(i,...s)))}async handleSubscriptionLivePreview(e){this.testConfigs.find(s=>s.id===e.testId)?.hypotheses.find(s=>s.id===e.currentVariant)?.subscriptionData&&(this.log("Setting up subscription live preview"),this.subscriptionSwapDone=!1,this.subscriptionOneTimeDone=!1,this.subscriptionPriceDone=!1,await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange())}async finalize(){const e=await this.getCartState();e!==null&&this.queueCartUpdate(e),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),t)return this.log("Forcing variant for hypothesis '%s'",s),!0;if(i!==null)return this.log("Forcing hypothesis '%s'",i),s===i;const r=this.testConfigs.find(n=>n.hypotheses.some(l=>l.id===s));if(!r)return this.log("No test found for hypothesis '%s'",s),!1;const o=this.state.essential.visitorTests.find(n=>n.testId===r.id);return o?(this.log("Active visitor test found",s),o.hypothesisId===s):(await this.manuallySplitVisitor(r),this.testConfigs.some(n=>n.hypotheses.some(l=>l.id===s&&this.state.essential.visitorTests.some(c=>c.hypothesisId===l.id))))},setAnalyticsConsent:async s=>{await this.onConsentChange(s,!0)},getVisitorData:()=>({visitor:this.state.analytics.visitor,visitorTests:this.state.essential.visitorTests.filter(s=>!s.isInvalid).map(s=>{const{shouldSendToGa:r,savedAt:o,...n}=s;return n})})}}setShopliftStub(){this.log("Setting up stubbed public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:s=>Promise.resolve(t||s===i),setAnalyticsConsent:()=>Promise.resolve(),getVisitorData:()=>({visitor:null,visitorTests:[]})}}async manuallySplitVisitor(e){this.log("Starting manual split for test '%s'",e.id),await this.handleVisitorTest([e]);const t=this.getReservationForTest(e.id);t&&!t.isRealized&&t.entryCriteriaKey&&(this.log("Realizing manual API reservation for test '%s'",e.id),this.realizeReservationForCriteria(t.entryCriteriaKey)),this.saveState(),this.syncAllEvents()}async handleVisitorTest(e){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests),this.pruneStaleVisitorTests(),this.deriveC
28ategoryFromExistingTests(),this.clearStaleReservations();let t=e?e.filter(i=>this.testsFilteredByAudience.some(s=>s.id===i.id)):[...this.testsForUrl(this.testsFilteredByAudience),...this.domTestsForUrl(this.testsFilteredByAudience)];try{if(t.length===0)return this.log("No tests found"),!1;this.log("Checking for existing visitor test on page");const i=this.getCurrentVisitorHypothesis(t);if(i){this.log("Found current visitor test");const l=this.considerRedirect(i);return l&&(this.log("Redirecting for current visitor test"),this.redirect(i)),l}const s=this.getReservationForCurrentPage();if(s){this.log("Found matching reservation for current page: %s",s.testId);const l=this.getHypothesis(s.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(s.entryCriteriaKey);const c=this.considerRedirect(l);return c&&this.redirect(l),c}}this.log("No active test relation for test page");const r=this.testsForUrl(this.inactiveTestConfigs.filter(l=>this.testIsPaused(l)&&l.hypotheses.some(c=>this.state.essential.visitorTests.some(d=>d.hypothesisId===c.id)))).map(l=>l.id);if(r.length>0)return this.log("Visitor has paused tests for test page, skipping test assignment: %o",r),!1;if(!this.state.temporary.testCategory){const l=this.testsFilteredByAudience.filter(d=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d))),c=this.testsFilteredByAudience.filter(d=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d)));if(this.log("Category dice roll - global tests: %o, conditional tests: %o",l.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)})),c.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)}))),l.length>0&&c.length>0){const d=l.length,u=c.length,h=d+u,p=Math.random()*h;this.state.temporary.testCategory=p<d?"global":"conditional",this.log("Category dice roll: rolled %.2f of %d (global weight: %d, conditional weight: %d), selected '%s'",p,h,d,u,this.state.temporary.testCategory)}else l.length>0?(this.state.temporary.testCategory="global",this.log("Only global tests available, setting category to global")):(this.state.temporary.testCategory="conditional",this.log("Only conditional tests available, setting category to conditional"));this.persistTemporaryState()}const o=this.state.temporary.testCategory;if(this.log("Visitor test category: %s",o),o==="global"){const l=this.testsFilteredByAudience.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:global");t=t.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}else{const l=this.testsFilteredByAudience.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:conditional");t=t.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}if(t.length===0)return this.log("No tests remaining after category filter"),!1;this.createReservations(t);const n=this.getReservationForCurrentPage();if(n&&!n.isRealized){const l=this.getHypothesis(n.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(n.entryCriteriaKey);const c=this.considerRedirect(l);return c&&(this.log("Redirecting for new test"),this.redirect(l)),c}}return!1}finally{this.includeInDomTests(),this.saveState()}}includeInDomTests(){this.applyControlForAudienceFilteredPriceTests();const e=this.getDomTestsForCurrentUrl(),t=this.getVisitorDomHypothesis(e);for(const i of e){this.log("Evaluating dom test '%s'",i.id);const s=i.hypotheses.some(p=>p.type==="price");if(this.state.essential.visitorTests.find(p=>p.testId===i.id&&p.isInvalid&&!p.hypothesisId)){if(this.log("Visitor is blocked from test '%s', applying control prices if price test",i.id),s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for blocked visitor, no metrics tracked")}),this.updatePriceTestHiddenInputs(i.id,"control",!1))}continue}const o=this.getReservationForTest(i.id);let n=null,l=!1;const c=t.find(p=>i.hypotheses.some(b=>p.id===b.id));if(o)n=this.getHypothesis(o.hypothesisId)??null,this.log("Using reserved hypothesis '%s' for test '%s'",o.hypothesisId,i.id);else if(c)n=c,this.log("Using existing hypothesis assignment for test '%s'",i.id);else if(s){const p=this.visitorActiveTestTypeWithReservations();p?(l=!0,this.log("Visitor already in test type '%s', treating as non-test for price test '%s'",p,i.id)):n=this.pickHypothesis(i)}else n=this.pickHypothesis(i);if(l&&s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.log("Applying control prices for non-test visitor on price test '%s' (Map-based)",i.id),this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for non-test visitor, no metrics tracked")}
28),this.updatePriceTestHiddenInputs(i.id,"control",!1));continue}if(!n){this.log("Failed to pick hypothesis for test");continue}this.sendDiagnosticTelemetry("assignment",i.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const d=i.bayesianRevision??4,u=n.type==="price",h=d>=5;if(u&&h){if(this.log(`Price test with Map-based lookup (v${d}): ${i.id}`),!n.priceData){this.log("No price data for hypothesis '%s', skipping",n.id);continue}const p=n.isControl?"control":"variant";this.log(`Setting up Map-based price test for ${p} (test: ${i.id})`),this.applyPriceTestWithMapLookup(i.id,n,i.hypotheses,b=>{const E=this.getReservationForTest(b);E&&!E.isRealized&&E.entryCriteriaKey?this.realizeReservationForCriteria(E.entryCriteriaKey):this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(u&&!h){this.log(`Price test without viewport tracking (v${d}): ${i.id}`);const p=this.getDomSelectorsForHypothesis(n);if(p.length===0)continue;U(document,{testId:i.id,hypothesisId:n.id,selectors:p},b=>{this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(!n.domSelectors||n.domSelectors.length===0){this.log("No selectors found, skipping hypothesis");continue}U(document,{testId:i.id,hypothesisId:n.id,selectors:n.domSelectors},p=>{this.queueAddVisitorToTest(p,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()})}}considerRedirect(e){if(this.log("Considering redirect for hypothesis '%s'",e.id),e.isControl)return this.log("Skipping redirect for control"),!1;if(e.type==="basicScript"||e.type==="manualScript")return this.log("Skipping redirect for script test"),!1;const t=this.state.essential.visitorTests.find(o=>o.hypothesisId===e.id),i=new URL(window.location.toString()),r=new URLSearchParams(window.location.search).get("view");if(e.type==="theme"){if(!(e.themeId===themeId)){if(this.log("Theme id '%s' is not hypothesis theme ID '%s'",e.themeId,themeId),this.isAppProxyPath())return this.log("On App Proxy path, skipping theme redirect to avoid infinite loop"),!1;if(t&&t.themeId!==e.themeId&&(t.themeId===themeId||!this.isThemePreview()))this.log("On old theme, redirecting and updating local visitor"),t.themeId=e.themeId;else if(this.isThemePreview())return this.log("On non-test theme, skipping redirect"),!1;return this.log("Hiding page to redirect for theme test"),this.hidePage(),!0}return!1}else if(e.type!=="dom"&&e.type!=="price"&&e.affix!==template.suffix&&e.affix!==r||e.redirectPath&&!i.pathname.endsWith(e.redirectPath))return this.log("Hiding page to redirect for template test"),this.hidePage(),!0;return this.log("Not redirecting"),!1}redirect(e){if(this.log("Redirecting to hypothesis '%s'",e.id),e.isControl)return;const t=new URL(window.location.toString());if(t.searchParams.delete("view"),e.redirectPath){const n=RegExp("^(/w{2}-w{2})/").exec(t.pathname);if(n&&n.length>1){const l=n[1];t.pathname=`${l}${e.redirectPath}`}else t.pathname=e.redirectPath}else e.type==="theme"?(t.searchParams.set("_ab","0"),t.searchParams.set("_fd","0"),t.searchParams.set("_sc","1"),t.searchParams.set("preview_theme_id",e.themeId.toString())):e.type!=="urlRedirect"&&t.searchParams.set("view",e.affix);const i=this.state.essential.visitorTests.find(n=>n.hypothesisId===e.id)?.testId,s=t.pathname+t.search,r=window.location.pathname+window.location.search,o=K(t.hash);if(i&&s!==r&&!o){const n=qe(),l=He({v:2,t:i,n,fh:Me(window.location.pathname+window.location.search)});t.hash=`slr-${n}`;const c=new Date(Date.now()+3e4).toUTCString();document.cookie=`shoplift_redirect=${l};domain=.${window.location.hostname};path=/;SameSite=Strict;expires=${c}`}s===r&&this.showPage(),this.queueRedirect(t)}async refreshVisitor(e){if(e===null||!this.state.essential.isFirstLoad||!this.testConfigs.some(i=>i.visitorOption!=="all"))return;this.log("Refreshing visitor"),this.hidePage();const t=await this.getVisitor(e);t&&t.id&&this.updateLocalVisitor(t)}buildBaseVisitor(){return{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.device,country:null,...this.state.essential.initialState}}getInitialState(){const e=this.getUTMValue("utm_source")??"",t=this.getUTMValue("utm_medium")??"",i=this.getUTMValue("utm_campaign")??"",s=this.getUTMValue("utm_content")??"",r=window.document.referrer,o=this.device;return{createdAt:new Date,utmSource:e,utmMedium:t,utmCampaign:i,utmContent:s,referrer:r,device:o}}checkForThemePreview(){return this.log("Checking for theme preview"),window.location.hostname.endsWith(".shopifypreview.com")?(this.log("on shopify preview domain"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!1):this.isThemePreview()?this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("On active theme test, remov
28ing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&!this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("Visitor is on an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.state.essential.isFirstLoad?(this.log("No visitor found on theme preview, redirecting to main theme"),this.redirectToMainTheme(),!0):this.inactiveTestConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Current theme is an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.testConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Falling back to clearing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):(this.log("No tests on current theme, skipping script"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!0):(this.log("Not on theme preview"),this.clearThemeBar(!0,!1,this.state),!1)}redirectToMainTheme(){this.hidePage();const e=new URL(window.location.toString());e.searchParams.set("preview_theme_id",""),this.queueRedirect(e)}testsForUrl(e){const t=new URL(window.location.href),i=this.typeFromTemplate();return e.filter(s=>s.hypotheses.some(r=>r.type!=="dom"&&r.type!=="price"&&(r.isControl&&r.type===i&&r.affix===template.suffix||r.type==="theme"||r.isControl&&r.type==="urlRedirect"&&r.redirectPath&&t.pathname.endsWith(r.redirectPath)||r.type==="basicScript"))&&(s.ignoreTestViewParameterEnforcement||!t.searchParams.has("view")||s.hypotheses.map(r=>r.affix).includes(t.searchParams.get("view")??"")))}domTestsForUrl(e){const t=new URL(window.location.href);return e.filter(i=>i.hypotheses.some(s=>s.type!=="dom"&&s.type!=="price"?!1:s.type==="price"&&s.priceData&&s.priceData.variants.length>0?!0:s.domSelectors&&s.domSelectors.some(r=>new RegExp(se(r)).test(K(t.toString())))))}async filterTestsByAudience(e,t,i){const s=[],r=e.some(n=>(n.requiresRegion||this.geoViaShopify&&n.requiresCountry)&&!i.some(l=>l.testId===n.id));this.resolvedRegion===null&&r&&(this.log("Hiding page to wait for Shopify region resolution"),this.hidePage(),await this.waitForResolvedRegion()),window.__slRegion=this.resolvedRegion??"";let o=t.country;this.geoViaShopify?o=this.resolvedRegion?this.resolvedRegion.slice(0,2):o:!o&&e.some(n=>n.requiresCountry&&!i.some(l=>l.testId===n.id))&&(this.log("Hiding page to check geoip"),this.hidePage(),o=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/get-country`,signal:AbortSignal.timeout(this.getCountryTimeout)}).catch(n=>(this.log("Error getting country",n),null)));for(const n of e){if(this.log("Checking audience for test '%s'",n.id),this.state.essential.visitorTests.some(d=>d.testId===n.id&&d.hypothesisId==null)){console.log(`Skipping blocked test '${n.id}'`);continue}const l=this.visitorCreatedDuringTestActive(n.statusHistory);(i.some(d=>d.testId===n.id&&(n.device==="all"||n.device===t.device&&n.device===this.device))||this.isTargetAudience(n,t,l,o))&&(this.log("Visitor is in audience for test '%s'",n.id),s.push(n))}this.testsFilteredByAudience=s}async waitForResolvedRegion(e=1500,t=50){const i=Date.now();for(;this.resolvedRegion===null&&Date.now()-i<e;)await new Promise(s=>window.setTimeout(s,t))}isTargetAudience(e,t,i,s){const r=this.getChannel(t);return(e.device==="all"||e.device===t.device&&e.device===this.device)&&(e.visitorOption==="all"||e.visitorOption==="new"&&i||e.visitorOption==="returning"&&!i)&&(e.targetAudiences.length===0||e.targetAudiences.reduce((o,n)=>o||n.reduce((l,c)=>l&&c(t,i,r,s),!0),!1))}visitorCreatedDuringTestActive(e){let t="";for(const i of e){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;t=i.status}return t==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(e){return e.flatMap(t=>t.hypotheses).find(t=>t.type!=="dom"&&t.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getVisitorDomHypothesis(e){return e.flatMap(t=>t.hypotheses).filter(t=>(t.type==="dom"||t.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getHypothesis(e){return this.testConfigs.filter(t=>t.hypotheses.some(i=>i.id===e)).map(t=>t.hypotheses.find(i=>i.id===e))[0]}getActiveAssignment(){if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;return t.currentVariant&&t.testId?{testId:t.testId,hypothesisId:t.currentVariant}:null}const e=this.state.essential.visitorTests.find(t=>t.hypothesisId);return e?.hypothesisId?{testId:e.testId,hypothesisId:e.hypothesisId}:null}findActiveSubscriptionTestControl(){for(const e of this.testConfigs){const t=e.hypotheses.find(i=>i.isControl);if(t?.subscriptionData)return{testId:e.id,hypothesis:t}}return null}getDomSelectorsForHypothesis(e){if(!e)return[];if(e.domSelectors&&e.domSelectors.length>0)return e.domSelectors;if(e.priceData){const t=`${this.priceSelectorsSessionKey}_${e.id}`;try{const s=sessionStorage.getItem(t);if(s){const r=JSON.parse(s);return e.domSelectors=r,this.log("Loaded %d price selectors from cache for hypothesis '%s'",r.length,e.id),r}}catch{}const i=$e(e.priceData);e.domSelectors=i;try{sessionStorage.setItem(t,JSON.stringify(i)),this.log("Generated and cached %d price selectors for hypothesis '%s'",i.length,e.id)}catch{this.log("Generated %d price selectors for hypothesis '%s' (cache unavailable)",i.length,e.id)}return i}return[]}hasThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(e){return this.hasThemeTest(e)&&this.hasTestThatIsNotThemeTest(e)}testIsPaused(e){return e.status==="paused"||e.status==="incompatible"||e.status==="suspended"}visitorActiveTestType(){const e=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==t.hypothesisId)));return e.length===0?null:e.some(t=>t.isThemeTest)?"theme":"templateOrUrlRedirect"}getReservationType(e){return e==="price"||this.isTemplateTestType(e)?"deferred":"immediate"}isTemplateTestType(e){return["product","collection","landing","index","cart","search","blog","article","collectionList"].includes(e)}getEntryCriteriaKey(e){const t=e.hypotheses.find(i=>i.isControl);if(!t)return`unknown:${e.id}`;switch(t.type){case"theme":return"global:theme";case"basicScript":return"global:autoApi";case"price":return"global:price";case"manualScript":return`conditional:manualApi:${e.id}`;case"urlRedirect":return`conditional:url:${t.redirectPath||"unknown"}`;default:return`conditional:template:${t.type}`}}isGlobalEntryCriteria(e){return e.startsWith("global:")}groupTestsByEntryCriteria(e){const t=new Map;for(const i of e){const s=this.getEntryCriteriaKey(i),r=t.get(s)||[];r.push(i),t.set(s,r)}return t}doesCurrentPageMatchEntryCriteria(e){if(this.isGlobalEntryCriteria(e))return!0;
28if(e==="conditional:manualApi")return!1;if(e.startsWith("conditional:url:")){const t=e.replace("conditional:url:","");return window.location.pathname.endsWith(t)}if(e.startsWith("conditional:template:")){const t=e.replace("conditional:template:","");return this.typeFromTemplate()===t}return!1}hasActiveReservation(){const e=this.getActiveReservations();return Object.values(e).some(t=>!t.isRealized)}getActiveReservation(){const e=this.getActiveReservations();return Object.values(e).find(t=>!t.isRealized)??null}clearStaleReservations(){const e=this.state.temporary.testReservations;if(!e)return;let t=!1;for(const[i,s]of Object.entries(e)){const r=this.testConfigs.find(n=>n.id===s.testId);if(!r){this.log("Test '%s' no longer in config, clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0;continue}if(r.status!=="active"){this.log("Test '%s' status is '%s', clearing reservation for criteria '%s'",s.testId,r.status,i),delete e[i],t=!0;continue}this.testsFilteredByAudience.some(n=>n.id===s.testId)||(this.log("Visitor no longer passes audience for test '%s', clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0)}t&&this.persistTemporaryState()}createReservations(e){if(this.state.temporary.testReservations||(this.state.temporary.testReservations={}),this.state.temporary.rolledEntryCriteria||(this.state.temporary.rolledEntryCriteria=[]),this.state.temporary.testCategory==="global"){this.createSingleReservation(e,"global");return}const i=e.filter(n=>this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n))),s=e.filter(n=>!this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n)));this.log("Conditional tests split - matching current page: %d, not matching: %d",i.length,s.length),i.length>0&&this.log("Tests matching current page (same pool): %o",i.map(n=>({id:n.id,title:n.title,criteria:this.getEntryCriteriaKey(n)})));const r=`conditional:current-page:${this.typeFromTemplate()}`;if(i.length>0&&!this.state.temporary.rolledEntryCriteria.includes(r)){this.createSingleReservation(i,r);for(const n of i){const l=this.getEntryCriteriaKey(n);this.state.temporary.rolledEntryCriteria.includes(l)||this.state.temporary.rolledEntryCriteria.push(l)}}const o=this.groupTestsByEntryCriteria(s);for(const[n,l]of o){if(this.state.temporary.rolledEntryCriteria.includes(n)){this.log("Already rolled for criteria '%s', skipping",n);continue}if(l.some(S=>this.state.essential.visitorTests.some(C=>C.testId===S.id))){this.log("Visitor already has VT for criteria '%s', skipping",n),this.state.temporary.rolledEntryCriteria.push(n);continue}const d=[...l].sort((S,C)=>S.id.localeCompare(C.id));this.log("Test dice roll for criteria '%s' - available tests: %o",n,d.map(S=>({id:S.id,title:S.title})));const u=Math.floor(Math.random()*d.length),h=d[u];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",u+1,l.length,h.id,h.title);const p=this.pickHypothesis(h);if(!p){this.log("No hypothesis picked for test '%s'",h.id);continue}this.sendDiagnosticTelemetry("assignment",h.id,{hypothesisId:p.id,isControl:p.isControl,testType:p.type});const b=this.getReservationType(p.type),E={testId:h.id,hypothesisId:p.id,testType:p.type,reservationType:b,isThemeTest:p.type==="theme",themeId:p.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:n};this.state.temporary.testReservations[n]=E,this.state.temporary.rolledEntryCriteria.push(n),this.log("Created %s reservation for test '%s' (criteria: %s)",b,h.id,n);for(const S of l)S.id!==h.id&&this.markTestAsBlocked(S,n)}this.persistTemporaryState()}createSingleReservation(e,t){if(this.state.temporary.rolledEntryCriteria.includes(t)){this.log("Already rolled for pool '%s', skipping",t);return}if(e.some(u=>this.state.essential.visitorTests.some(h=>h.testId===u.id&&!h.isInvalid))){this.log("Visitor already has VT for pool '%s', skipping",t),this.state.temporary.rolledEntryCriteria.push(t);return}if(e.length===0){this.log("No tests in pool '%s'",t);return}const s=[...e].sort((u,h)=>u.id.localeCompare(h.id));this.log("Test dice roll for pool '%s' - available tests: %o",t,s.map(u=>({id:u.id,title:u.title,criteria:this.getEntryCriteriaKey(u)})));const r=Math.floor(Math.random()*s.length),o=s[r];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",r,e.length,o.id,o.title);const n=this.pickHypothesis(o);if(!n){this.log("No hypothesis picked for test '%s'",o.id);return}this.sendDiagnosticTelemetry("assignment",o.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const l=this.getReservationType(n.type),c=this.getEntryCriteriaKey(o),d={testId:o.id,hypothesisId:n.id,testType:n.type,reservationType:l,isThemeTest:n.type==="theme",themeId:n.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:c};this.state.temporary.testReservations[c]=d,this.state.temporary.rolledEntryCriteria.push(t),this.log("Created %s reservation for test '%s' from pool '%s' (criteria: %s)",l,o.id,t,c);for(const u of e)u.id!==o.id&&this.markTestAsBlocked(u,`pool:${t}`);this.persistTemporaryState()}markTestAsBlocked(e,t){this.state.essential.visitorTests.some(i=>i.testId===e.id)||(this.log("Blocking visitor from test '%s' (reason: %s)",e.id,t),this.state.essential.visitorTests.push({createdAt:new Date,testId:e.id,hypothesisId:null,isThemeTest:e.hypotheses.some(i=>
28i.type==="theme"),shouldSendToGa:!1,isSaved:!0,isInvalid:!0,themeId:void 0}))}realizeReservationForCriteria(e){const t=this.state.temporary.testReservations?.[e];if(!t)return this.log("No reservation found for criteria '%s'",e),!1;if(t.isRealized)return this.log("Reservation already realized for criteria '%s'",e),!1;if(this.state.essential.visitorTests.some(s=>s.testId===t.testId&&!s.isInvalid))return this.log("Visitor already assigned to test '%s'",t.testId),!1;const i=this.getHypothesis(t.hypothesisId);return i?(t.isRealized=!0,this.persistTemporaryState(),this.queueAddVisitorToTest(t.testId,i),this.saveState(),this.log("Realized reservation for test '%s' (criteria: %s)",t.testId,e),!0):(this.log("Hypothesis '%s' not found",t.hypothesisId),!1)}getActiveReservations(){return this.state.temporary.testReservations??{}}getReservationForCurrentPage(){const e=this.getActiveReservations();for(const[t,i]of Object.entries(e)){if(i.isRealized)continue;const s=this.testConfigs.find(r=>r.id===i.testId);if(!(!s||s.status!=="active")&&this.doesCurrentPageMatchEntryCriteria(t))return i}return null}getReservationForTest(e){const t=this.getActiveReservations();return Object.values(t).find(i=>i.testId===e)??null}getReservationTestType(){const e=this.getActiveReservations(),t=Object.values(e);if(t.length===0)return null;for(const i of t)if(i.isThemeTest)return"theme";for(const i of t)if(i.testType==="price")return"price";return t.some(i=>!i.isRealized)?"templateOrUrlRedirect":null}hasPriceTests(e){return e.some(t=>t.hypotheses.some(i=>i.type==="price"))}_priceTestProductIds=null;getPriceTestProductIds(){if(this._priceTestProductIds)return this._priceTestProductIds;const e=new Set;for(const t of this.testConfigs)for(const i of t.hypotheses)if(i.type==="price"){for(const s of i.domSelectors||[]){const r=s.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);r?.[1]&&e.add(r[1])}if(i.priceData?.variants)for(const[s]of i.priceData.variants)e.add(s)}return this._priceTestProductIds=e,this.log("Built price test product ID cache with %d products",e.size),e}isProductInAnyPriceTest(e){return this.getPriceTestProductIds().has(e)}visitorActiveTestTypeWithReservations(){const e=this.getActiveReservations();for(const r of Object.values(e)){if(r.isThemeTest)return"theme";if(r.testType==="price")return"price"}if(Object.values(e).some(r=>!r.isRealized)){if(this.state.temporary.testCategory==="global")for(const o of Object.values(e)){if(o.testType==="theme")return"theme";if(o.testType==="price")return"price";if(o.testType==="basicScript")return"theme"}return"templateOrUrlRedirect"}const i=this.state.essential.visitorTests.filter(r=>!r.isInvalid&&this.testConfigs.some(o=>o.hypotheses.some(n=>n.id===r.hypothesisId)));return i.length===0?null:i.some(r=>this.getHypothesis(r.hypothesisId)?.type==="price")?"price":i.some(r=>r.isThemeTest)?"theme":"templateOrUrlRedirect"}applyControlForAudienceFilteredPriceTests(){const e=this.testConfigs.filter(s=>s.status==="active"&&s.hypotheses.some(r=>r.type==="price"));if(e.length===0)return;const t=this.testsFilteredByAudience.filter(s=>s.hypotheses.some(r=>r.type==="price")),i=e.filter(s=>!t.some(r=>r.id===s.id));if(i.length!==0){this.log("Found %d price tests filtered by audience, applying control selectors",i.length);for(const s of i){const r=s.hypotheses.find(c=>c.isControl),o=this.getDomSelectorsForHypothesis(r);if(o.length===0){this.log("No control selectors for audience-filtered price test '%s'",s.id);continue}const n=new URL(window.location.href);o.some(c=>{try{return new RegExp(se(c)).test(K(n.toString()))}catch{return!1}})&&(this.log("Applying control selectors for audience-filtered price test '%s'",s.id),U(document,{testId:s.id,hypothesisId:r.id,selectors:o},()=>{}),this.updatePriceTestHiddenInputs(s.id,"control",!1))}}}pickHypothesis(e){let t=Math.random();const i=e.hypotheses.reduce((r,o)=>r+o.visitorCount,0);return e.hypotheses.sort((r,o)=>r.isControl?o.isControl?0:-1:o.isControl?1:0).reduce((r,o)=>{if(r!==null)return r;const l=e.hypotheses.reduce((c,d)=>c&&d.visitorCount>20,!0)?o.visitorCount/i-o.trafficPercentage:0;return t<=o.trafficPercentage-l?o:(t-=o.trafficPercentage-l,null)},null)}typeFromTemplate(){switch(template.type){case"list-collections":return"collectionList";case"page":return"landing";case"article":case"blog":case"cart":case"collection":case"index":case"product":case"search":return template.type;default:return null}}queueRedirect(e){this.saveState(),this.disableReferrerOverride||(this.log(`Saving temporary referrer override '${document.referrer}'`),this.state.temporary.originalReferrer=document.referrer,this.persistTemporaryState()),window.setTimeout(()=>window.location.assign(e),0),window.setTimeout(()=>{this.syncAllEvents()},2e3)}scheduleRetrySync(){this.clientIdRetryCount>=5||(this.clientIdRetryCount++,window.setTimeout(()=>{this.syncAllEvents()},500))}async syncAllEvents(){const e=async()=>
28{if(this.isSyncing){window.setTimeout(()=>{(async()=>await e())()},500);return}try{if(this.isSyncing=!0,this.syncGAEvents(),this.shopifyAnalyticsId||(this.shopifyAnalyticsId=this.getShopifyAnalyticsId()),!this.shopifyAnalyticsId){this.scheduleRetrySync();return}await this.syncEvents()}finally{this.isSyncing=!1}};await e()}async syncEvents(){if(!this.state.essential.consentApproved||!this.shopifyAnalyticsId||this.state.analytics.queue.length===0)return;const e=this.state.analytics.queue.length,t=this.state.analytics.queue.splice(0,e);this.log("Syncing %s events",e);try{const i={shop:this.shop,visitorDetails:{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.state.analytics.visitor?.device??this.device,country:this.state.analytics.visitor?.country??null,...this.state.essential.initialState},events:this.state.essential.visitorTests.filter(r=>!r.isInvalid&&!r.isSaved&&r.hypothesisId!=null).map(r=>new be(r.testId,r.hypothesisId,r.createdAt)).concat(t)};await this.sendEvents(i);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved&&o.hypothesisId!=null))this.sendDiagnosticTelemetry("event-delivered",r.testId,{hypothesisId:r.hypothesisId,isControl:r.assignedTo==="control",testType:r.testType??"unknown"});const s=await this.getVisitor(this.shopifyAnalyticsId);s!==null&&this.updateLocalVisitor(s);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved))r.isSaved=!0,r.savedAt=Date.now()}catch{this.state.analytics.queue.splice(0,0,...t)}finally{this.saveState()}}syncGAEvents(){if(!this.gaConfig.sendEvents){if(he)return;he=!0,this.log("UseGtag is false — skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const e=this.state.essential.visitorTests.filter(t=>t.shouldSendToGa);e.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",e.length),Promise.allSettled(e.map(t=>this.sendGAEvent(t))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(e){return new Promise(t=>{this.log("Sending GA Event for test %s, hypothesis %s",e.testId,e.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",e.hypothesisId),e.shouldSendToGa=!1,this.persistEssentialState(),t()},s={exp_variant_string:`SL-${e.testId}-${e.hypothesisId}`};
28this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(o,n,l){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}this.gaConfig.mode==="gtag"?r("event","experience_impression",{...s,event_callback:i}):(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"experience_impression",...s,eventCallback:i}))})}updateLocalVisitor(e){let t;({visitorTests:t,...this.state.analytics.visitor}=e),this.log("updateLocalVisitor - server returned %d tests: %o",t.length,t.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isInvalid:s.isInvalid}))),this.log("updateLocalVisitor - local has %d tests: %o",this.state.essential.visitorTests.length,this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid})));const i=300*1e3;for(const s of this.state.essential.visitorTests.filter(r=>r.isSaved&&(!r.savedAt||Date.now()-r.savedAt>i)&&!t.some(o=>o.testId===r.testId)))this.log("updateLocalVisitor - marking LOCAL test as INVALID (isSaved && not in server): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),s.isInvalid=!0;for(const s of t){const r=this.state.essential.visitorTests.findIndex(n=>n.testId===s.testId);if(!(r!==-1))this.log("updateLocalVisitor - ADDING server test (not found locally): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),this.state.essential.visitorTests.push(s);else{const n=this.state.essential.visitorTests.at(r);this.log("updateLocalVisitor - REPLACING local test with server test: testId=%s, local hypothesisId=%s -> server hypothesisId=%s, local isInvalid=%s -> false",s.testId,n?.hypothesisId,s.hypothesisId,n?.isInvalid),s.isInvalid=!1,s.shouldSendToGa=n?.shouldSe
28ndToGa??!1,s.testType=n?.testType,s.assignedTo=n?.assignedTo,s.testTitle=n?.testTitle,this.state.essential.visitorTests.splice(r,1,s)}}this.log("updateLocalVisitor - FINAL local tests: %o",this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid}))),this.state.analytics.visitor.storedAt=new Date}async getVisitor(e){try{return await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/by-key/${this.shop}/${e}`})}catch{return null}}async sendEvents(e){await this.makeRequest({method:"post",url:`${this.eventHost}/api/v0/events`,data:JSON.stringify(e)})}sendDiagnosticTelemetry(e,t,i){if(!this.telemetryEnabled||!navigator.sendBeacon)return;const s=this.state.essential.consentApproved,r=JSON.stringify({shop:this.shop,testId:t,checkpoint:e,device:this.device,...s?{visitorId:this.shopifyAnalyticsId??"unknown"}:{},clientTimestamp:Date.now(),consentApproved:s,hasConsentInteraction:this.state.essential.hasConsentInteraction,...i});navigator.sendBeacon(`${this.eventHost}/api/v0/telemetry`,new Blob([r],{type:"text/plain"}))}getUTMValue(e){return new URLSearchParams(window.location.search).get(e)||null}hidePage(e){this.log("Hiding page"),this.cssHideClass&&!window.document.documentElement.classList.contains(this.cssHideClass)&&(window.document.documentElement.classList.add(this.cssHideClass),e||setTimeout(this.removeAsyncHide(this.cssHideClass),2e3))}showPage(){this.cssHideClass&&this.removeAsyncHide(this.cssHideClass)()}getDeviceType(){function e(){let i=!1;return(function(s){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}function t(){let i=!1;return(function(s){(/android|ipad|playbook|silk/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
28sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}return e()?"mobile":t()?"tablet":"desktop"}removeAsyncHide(e){return()=>{e&&window.document.documentElement.classList.remove(e)}}async getCartState(){try{let e=await this.makeJsonRequest({method:"get",url:`${window.location.origin}/cart.js`});return e===null||(e.note===null&&(e=await this.makeJsonRequest({method:"post",url:`${window.location.origin}/cart/update.js`,data:JSON.stringify({note:""})})),e==null)?null:{token:e.token,total_price:e.total_price,total_discount:e.total_discount,currency:e.currency,items_subtotal_price:e.items_subtotal_price,items:e.items.map(t=>({quantity:t.quantity,variant_id:t.variant_id,key:t.key,price:t.price,final_line_price:t.final_line_price,sku:t.sku,product_id:t.product_id}))}}catch(e){return this.log("Error sending cart info",e),null}}ensureCartAttributesForExistingPriceTests(e){try{if(this.log("Checking visitor assignments for active price tests"),e&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;this.log("Using preview config for merchant:",t.testId);let i="variant";if(t.variants&&t.variants.length>0){const s=t.variants.find(r=>r.id===t.currentVariant);s&&s.isControl&&(i="control")}this.log("Merchant preview - updating hidden inputs:",t.testId,i),this.updatePriceTestHiddenInputs(t.testId,i,!0);return}for(const t of this.state.essential.visitorTests){const i=this.testConfigs.find(o=>o.id===t.testId);if(!i){this.log("Test config not found:",t.testId);continue}const s=i.hypotheses.find(o=>o.id===t.hypothesisId);if(!s||s.type!=="price")continue;const r=s.isControl?"control":"variant";this.log("Updating hidden inputs for price test:",t.testId,r),this.updatePriceTestHiddenInputs(t.testId,r,e)}}catch(t){this.log("Error ensuring cart attributes for existing price tests:",t)}}subscriptionSwapDone=!1;subscriptionHideWrongPlans=null;subscriptionPriceDone=!1;subscriptionUpdateOneTime=null;subscriptionOneTimeDone=!1;swapMap=null;slptValue=null;async subscriptionSwap(){await Ue(this)}async subscriptionPriceChange(){await ze(this)}async subscriptionOneTimePrice(){await We(this)}updatePriceTestHiddenInputs(e,t,i){try{this.cleanupPriceTestObservers();const s=`${e}:${t}:${i?"t":"f"}`,r=T=>{const m=T.getAttribute("data-sl-pid");if(!m)return!0;if(i&&this.state.temporary.previewConfig){const w=this.state.temporary.previewConfig,I=t==="control"?"a":"b",f=w.variants.find(v=>v.label===I);if(!f)return!1;for(const v of f.domSelectors||[]){const g=v.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(g){const P=g[1];if(this.log(`Extracted ID from selector: ${P}, comparing to: ${m}`),P===m)return this.log("Product ID match found in preview config:",m,"variant:",f.label),!0}else this.log(`Could not extract ID from selector: ${v.cssSelector}`)}return this.log("No product ID match in preview config for:",m,"variant:",I),!1}const y=this.testConfigs.find(w=>w.id===e);if(!y)return this.log("Test config not found for testId:",e),!1;for(const w of y.hypotheses||[]){for(const I of w.domSelectors||[]){const f=I.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(f&&f[1]===m)return this.log("Product ID match found in domSelectors:",m,"for test:",e),!0}if(w.priceData?.variants){for(const I of w.priceData.variants)if(I[0]===m)return this.log("Product ID match found in priceData:",m,"for test:",e),!0}}return this.log("No product ID match for:",m,"in test:",e),!1},o=new Set;let n=!1,l=null;const c=(T,m)=>{if(document.querySelectorAll("[data-sl-attribute-p]").forEach(w=>{if(w instanceof Element&&w.nodeType===Node.ELEMENT_NODE&&w.isConnected&&document.contains(w))try{T.observe(w,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(I){this.log(`Failed to observe element (${m}):`,I)}}),document.body&&document.body.isConnected)try{T.observe(document.body,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(w){this.log(`Failed to observe document.body (${m}):`,w)}},d=(T,m,y,w)=>{const I=T.filter(f=>{const v=f.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);return v&&v[1]===w});this.log(`Applying ${y} DOM selectors, total: ${T.length}, filtered: ${I.length}`),I.length>0&&U(document,{testId:e,hypothesisId:m,selectors:I})},u=(T,m)=>{this.log(`Applying DOM selector changes for product ID: ${T}`),m.disconnect(),n=!0;try{if(i&&this.state.temporary.previewConfig){const y=t==="control"?"a":"b",w=this.state.temporary.previewConfig.variants.find(I=>I.label===y);if(!w?.domSelectors){this.log(`No DOM selectors found for preview variant: ${y}`);return}d(w.domSelectors,w.id,"preview config",T)}else{const y=this.testConfigs.find(I=>I.id===e);if(!y){this.log(`No test config found for testId: ${e}`);return}const w=y.hypotheses.find(I=>t==="control"?I.isControl:!I.isControl);if(!w?.domSelectors){this.log(`No DOM selectors found for assignment: ${t}`);return}d(w.domSelectors,w.id,"live config",T)}}finally{l!==null&&clearTimeout(l),l=window.setTimeout(()=>{n=!1,l=null,c(m,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")}
28,50)}},h=new MutationObserver(T=>{if(!n)for(const m of T){if(m.type!=="childList"&&m.type!=="characterData")continue;let y=m.target;m.type==="characterData"&&(y=m.target.parentElement||m.target.parentNode);let w=y,I=w.getAttribute("data-sl-attribute-p");for(;!I&&w.parentElement;)w=w.parentElement,I=w.getAttribute("data-sl-attribute-p");if(!I)continue;const f=w.innerHTML||w.textContent||"";let v="";m.type==="characterData"&&m.oldValue!==null&&(v=m.oldValue),this.log(`innerHTML changed on element with data-sl-attribute-p="${I}"`),v&&this.log(`Previous content: "${v}"`),this.log(`Current content: "${f}"`),u(I,h)}});c(h,"initial setup"),o.add(h);const p=new MutationObserver(T=>{T.forEach(m=>{m.addedNodes.forEach(y=>{if(y.nodeType===Node.ELEMENT_NODE){const w=y;E(w);const I=w.matches('input[name="properties[_slpt]"]')?[w]:w.querySelectorAll('input[name="properties[_slpt]"]');I.length>0&&this.log(`MutationObserver found ${I.length} new hidden input(s)`),I.forEach(f=>{const v=f.getAttribute("data-sl-pid");if(this.log(`MutationObserver checking new input with data-sl-pid="${v}"`),r(f))f.value!==s&&(f.value=s,this.log("Updated newly added hidden input:",s)),S(f);else{const g=f.getAttribute("data-sl-pid");g&&this.isProductInAnyPriceTest(g)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",g):(f.remove(),this.log("Removed newly added non-matching hidden input for product ID:",g))}})}})})});o.add(p);const b=new MutationObserver(T=>{T.forEach(m=>{if(m.type==="attributes"&&m.attributeName==="data-sl-pid"){const y=m.target;if(this.log("AttributeObserver detected data-sl-pid attribute change on:",y.tagName),y.matches('input[name="properties[_slpt]"]')){const w=y,I=m.oldValue,f=w.getAttribute("data-sl-pid");this.log(`data-sl-pid changed from "${I}" to "${f}" - triggering payment placement updates`),r(w)?(w.value!==s&&(w.value=s,this.log("Updated hidden input after data-sl-pid change:",s)),f&&u(f,h),this.log("Re-running payment placement updates after variant change"),E(document.body)):f&&this.isProductInAnyPriceTest(f)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",f):(w.remove(),this.log("Removed non-matching hidden input after data-sl-pid change:",f))}}})});o.add(b);const E=T=>{T.tagName==="SHOPIFY-PAYMENT-TERMS"&&(this.log("MutationObserver found new shopify-payment-terms element"),this.updateShopifyPaymentTerms(e,t));const m=T.querySelectorAll("shopify-payment-terms");m.length>0&&(this.log(`MutationObserver found ${m.length} shopify-payment-terms in added node`),this.updateShopifyPaymentTerms(e,t)),T.tagName==="AFTERPAY-PLACEMENT"&&(this.log("MutationObserver found new afterpay-placement element"),this.updateAfterpayPlacements(e,t,"afterpay"));const y=T.querySelectorAll("afterpay-placement");y.length>0&&(this.log(`MutationObserver found ${y.length} afterpay-placement in added node`),this.updateAfterpayPlacements(e,t,"afterpay")),T.tagName==="SQUARE-PLACEMENT"&&(this.log("MutationObserver found new square-placement element"),this.updateAfterpayPlacements(e,t,"square"));const w=T.querySelectorAll("square-placement");w.length>0&&(this.log(`MutationObserver found ${w.length} square-placement in added node`),this.updateAfterpayPlacements(e,t,"square")),T.tagName==="KLARNA-PLACEMENT"&&(this.log("MutationObserver found new klarna-placement element"),this.updateKlarnaPlacements(e,t));const I=T.querySelectorAll("klarna-placement");I.length>0&&(this.log(`MutationObserver found ${I.length} klarna-placement in added node`),this.updateKlarnaPlacements(e,t))},S=T=>{b.observe(T,{attributes:!0,attributeFilter:["data-sl-pid"],attributeOldValue:!0,subtree:!1});const m=T.getAttribute("data-sl-pid");this.log(`Started AttributeObserver on specific input with data-sl-pid="${m}"`)},C=()=>{const T=document.querySelectorAll('input[name="properties[_slpt]"]');this.log(`Found ${T.length} existing hidden inputs to check`),T.forEach(m=>{const y=m.getAttribute("data-sl-pid");this.log(`Checking existing input with data-sl-pid="${y}"`),r(m)?(m.value=s,this.log("Updated existing hidden input:",s),y&&(this.log("Applying initial DOM selector changes for existing product"),u(y,h)),S(m)):y&&this.isProductInAnyPriceTest(y)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",
28y):(m.remove(),this.log("Removed non-matching hidden input for product ID:",y))})},_=()=>{document.body?(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver on document.body"),C(),E(document.body)):document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.body&&(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver after DOMContentLoaded"),C(),E(document.body))}):(this.log("Set timeout on observer"),setTimeout(_,10))};_(),window.__shopliftPriceTestObservers=o,window.__shopliftPriceTestValue=s,this.log("Set up DOM observer for price test hidden inputs")}catch(s){this.log("Error updating price test hidden inputs:",s)}}updateKlarnaPlacements(e,t){this.updatePlacementElements(e,t,"klarna-placement",(i,s)=>{i.setAttribute("data-purchase-amount",s.toString())})}cleanupPriceTestObservers(){const e=window.__shopliftPriceTestObservers;e&&(e.forEach(t=>{t.disconnect()}),e.clear(),this.log("Cleaned up existing price test observers")),delete window.__shopliftPriceTestObservers,delete window.__shopliftPriceTestValue}updateAfterpayPlacements(e,t,i="afterpay"){const s=i==="square"?"square-placement":"afterpay-placement";if(document.querySelectorAll(s).length===0){this.log(`No ${s} elements found on page - early return`);return}this.updatePlacementElements(e,t,s,(o,n)=>{if(i==="afterpay"){const l=(n/100).toFixed(2);o.setAttribute("data-amount",l)}else o.setAttribute("data-amount",n.toString())}),this.log("updateAfterpayPlacements completed")}updatePlacementElements(e,t,i,s){const r=document.querySelectorAll(i);if(r.length===0){this.log(`No ${i} elements found - early return`);return}let o;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const l=t==="control"?"a":"b",c=this.state.temporary.previewConfig.variants.find(d=>d.label===l);if(!c?.domSelectors){this.log(`No variant found for label ${l} in preview config for ${i}`);return}o=c.domSelectors,this.log(`Using preview config for ${i} in merchant mode, variant: ${l}`)}else{const l=this.testConfigs.find(d=>d.id===e);if(!l){this.log(`No testConfig found for id: ${e} - early return`);return}
28const c=l.hypotheses.find(d=>t==="control"?d.isControl:!d.isControl);if(!c?.domSelectors){this.log(`No hypothesis or domSelectors found for assignment: ${t} - early return`);return}o=c.domSelectors}const n=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);r.forEach(l=>{let c=null;const d=l.parentElement;if(d&&(c=d.querySelector('input[name="properties[_slpt]"]')),c||(c=l.querySelector('input[name="properties[_slpt]"]')),!c){this.log(`No hidden input found for ${i} element`);return}const u=c.getAttribute("data-sl-pid");if(!u){this.log("Hidden input has no data-sl-pid attribute - skipping");return}const h=o.find(S=>{const C=S.cssSelector.match(n);return C&&C[1]===u});if(!h){this.log(`No matching selector found for productId: ${u} - skipping element`);return}const p=h.actions.find(S=>S.scope==="price");if(!p?.value){this.log("No price action or value found - skipping element");return}const b=parseFloat(p.value.replace(/[^0-9.]/g,""));if(Number.isNaN(b)){this.log(`Invalid price "${p.value}" for product ${u} - skipping`);return}const E=Math.round(b*100);s(l,E)}),this.log(`updatePlacementElements completed for ${i}`)}updateShopifyPaymentTerms(e,t){const i=document.querySelectorAll("shopify-payment-terms");if(i.length===0)return;this.log("Store using shopify payments");let s;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const o=t==="control"?"a":"b",n=this.state.temporary.previewConfig.variants.find(l=>l.label===o);if(!n||!n.domSelectors){this.log(`No variant found for label ${o} in preview config`);return}s=n.domSelectors,this.log(`Using preview config for shopify-payment-terms in merchant mode, variant: ${o}`)}else{const o=this.testConfigs.find(l=>l.id===e);if(!o)return;const n=o.hypotheses.find(l=>t==="control"?l.isControl===!0:l.isControl===!1);if(!n||!n.domSelectors)return;s=n.domSelectors}const r=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);i.forEach(o=>{const n=o.getAttribute("variant-id");if(!n)return;const l=s.find(c=>{const d=c.cssSelector.match(r);return d&&d[1]===n});if(l){const c=l.actions.find(d=>d.scope==="price");if(c&&c.value){const d=o.getAttribute("shopify-meta");if(d)try{const u=JSON.parse(d);if(u.variants&&Array.isArray(u.variants)){const h=u.variants.find(p=>p.id?.toString()===n);if(h){h.full_price=c.value;const p=parseFloat(c.value.replace(/[^0-9.]/g,""));if(h.number_of_payment_terms&&h.number_of_payment_terms>1){const b=p/h.number_of_payment_terms;h.price_per_term=`$${b.toFixed(2)}`}o.setAttribute("shopify-meta",JSON.stringify(u))}}}catch(u){this.log("Error parsing/updating shoplift-meta:",u)}}}})}async makeJsonRequest(e){const t=await this.makeRequest(e);return t===null?null:JSON.parse(await t.text(),F)}async makeRequest(e){const{url:t,method:i,headers:s,data:r,signal:o}=e,n=new Headers;if(s)for(const c in s)n.append(c,s[c]);(!s||!s.Accept)&&n.append("Accept","application/json"),(!s||!s["Content-Type"])&&n.append("Content-Type","application/json"),(this.eventHost.includes("ngrok.io")||this.eventHost.includes("ngrok-free.app"))&&n.append("ngrok-skip-browser-warning","1234");const l=await this.fetch(t,{method:i,headers:n,body:r,signal:o});if(!l.ok){if(l.status===204)return null;if(l.status===422){const c=await l.json();if(typeof c<"u"&&c.isBot)throw new ie}throw new Error(`Error sending shoplift request ${l.status}`)}return l}queueAddVisitorToTest(e,t){if(this.state.essential.visitorTests.some(s=>s.testId===e))return;const i=this.testConfigs.find(s=>s.id===e);if(this.state.essential.visitorTests.push({createdAt:new Date,testId:e,hypothesisId:t.id,isThemeTest:t.type==="theme",themeId:t.themeId,isSaved:!1,isInvalid:!1,shouldSendToGa:!0,testType:t.type,assignedTo:t.isControl?"control":"variant",testTitle:i?.title}),t.type==="price"){const s=t.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",e,s),this.updatePriceTestHiddenInputs(e,s,!1)}}queueCartUpdate(e){this.queueEvent(new Ce(e))}queuePageView(e){this.queueEvent(new Se(e))}queueEvent(e){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(e)}legacyGetLocalStorageVisitor(){const e=this.localStorageGet(this.legacySessionKey);if(e)try{return JSON.parse(e,F)}catch{}return null}pruneStaleVisitorTests(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(t=>t.id==e.testId)||this.inactiveTestConfigs.filter(t=>this.testIsPaused(t)).some(t=>t.id===e.testId))}pruneStateAndSave(){this.pruneStaleVisitorTests(),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const e=this.loadAnalyticsState(),t={analytics:e,essential:this.loadEssentialState(e),temporary:this.loadTemporaryState()},i=this.legacyGetLocalStorageVisitor(),s=this.legacyGetCookieVisitor(),r=[i,s].filter(o=>o!==null).sort((o,n)=>+n.storedAt-+o.storedAt)[0];return t.analytics.visitor===null&&r&&({visitorTests:t.essential.visitorTests,...t.analytics.visitor}=r,t.essential.isFirstLoad=!1,t.essential.initialState={createdAt:r.createdAt,referrer:r.referrer,utmCampaign:r.utmCampaign,utmContent:r.utmContent,utmMedium:r.utmMedium,utmSource:r.utmSource,device:r.device},this.deleteCookie("SHOPLIFT"),this.deleteLocalStorage(this.legacySessionKey)),!t.essential.consentApproved&&t.essential.hasConsentInteraction&&this.deleteLocalStorage(this.analyticsSessionKey),t}loadEssentialState(e){const t=this.loadLocalStorage(this.essentialSessionKey),i=this.loadCookie(this.essentialSessionKey),s=this.getInitialState();e.visitor?.device&&(s.device=e.visitor.device);const r={timestamp:new Date,consentApproved:!1,hasConsentInteraction:!1,debugMode:!1,initialState:s,visitorTests:[],isFirstLoad:!0},o=[t,i].filter(n=>n!==null).sort((n,l)=>+l.timestamp-+n.timestamp)[0]??r;return o.initialState||(e.visitor!==null?o.initialState=e.visitor:(o.initialState=s,o.initialState.createdAt=o.timestamp)),o}loadAnalyticsState(){const e=this.loadLocalStorage(this.analyticsSessionKey),t=this.loadCookie(this.analyticsSessionKey),i={timestamp:new Date,visitor:null,queue:[]},s=[e,t].filter(r=>r!==null).sort((r,o)=>+o.timestamp-+r.timestamp)[0]??i;return s.queue.length===0&&e&&e.queue.length>1&&(s.queue=e.queue),s}loadTemporaryState(){const e=this.sessionStorageGet(this.temporarySessionKey),t=e?JSON.parse(e,F):null,i=this.loadCookie(this.temporarySessionKey);return t??i??{isMerchant:!1,timestamp:new Date}}persistEssentialState(){this.log("Persisting essential state"),this.state.essential.isFirstLoad=!1,this.state.essential.timestamp=new Date,this.persistLocalStorageState(this.essentialSessionKey,this.state.essential),this.persist
28CookieState(this.essentialSessionKey,this.state.essential)}persistAnalyticsState(){this.log("Persisting analytics state"),this.state.essential.consentApproved&&(this.state.analytics.timestamp=new Date,this.persistLocalStorageState(this.analyticsSessionKey,this.state.analytics),this.persistCookieState(this.analyticsSessionKey,{...this.state.analytics,queue:[]}))}persistTemporaryState(){this.log("Setting temporary session state"),this.state.temporary.timestamp=new Date,this.sessionStorageSet(this.temporarySessionKey,JSON.stringify(this.state.temporary)),this.persistCookieState(this.temporarySessionKey,this.state.temporary,!0)}loadLocalStorage(e){const t=this.localStorageGet(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}loadCookie(e){const t=this.getCookie(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}persistLocalStorageState(e,t){this.localStorageSet(e,JSON.stringify(t))}persistCookieState(e,t,i=!1){const s=JSON.stringify(t),r=i?"":`expires=${new Date(new Date().getTime()+864e5*365).toUTCString()};`;document.cookie=`${e}=${s};domain=.${window.location.hostname};path=/;SameSite=Strict;${r}`}deleteCookie(e){const t=new Date(0).toUTCString();document.cookie=`${e}=;domain=.${window.location.hostname};path=/;expires=${t};`}deleteLocalStorage(e){window.localStorage.removeItem(e)}getChannel(e){return[{"name":"cross-network","test":(v) => new RegExp(".*cross-network.*", "i").test(v.utmCampaign)},{"name":"direct","test":(v) => v.utmSource === "" && v.utmMedium === ""},{"name":"paid-shopping","test":(v) => (new RegExp("^(?:Google|IGShopping|aax-us-east\.amazon-adsystem\.com|aax\.amazon-adsystem\.com|alibaba|alibaba\.com|amazon|amazon\.co\.uk|amazon\.com|apps\.shopify\.com|checkout\.shopify\.com|checkout\.stripe\.com|cr\.shopping\.naver\.com|cr2\.shopping\.naver\.com|ebay|ebay\.co\.uk|ebay\.com|ebay\.com\.au|ebay\.de|etsy|etsy\.com|m\.alibaba\.com|m\.shopping\.naver\.com|mercadolibre|mercadolibre\.com|mercadolibre\.com\.ar|mercadolibre\.com\.mx|message\.alibaba\.com|msearch\.shopping\.naver\.com|nl\.shopping\.net|no\.shopping\.net|offer\.alibaba\.com|one\.walmart\.com|order\.shopping\.yahoo\.co\.jp|partners\.shopify\.com|s3\.amazonaws\.com|se\.shopping\.net|shop\.app|shopify|shopify\.com|shopping\.naver\.com|shopping\.yahoo\.co\.jp|shopping\.yahoo\.com|shopzilla|shopzilla\.com|simplycodes\.com|store\.shopping\.yahoo\.co\.jp|stripe|stripe\.com|uk\.shopping\.net|walmart|walmart\.com)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
28andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|kakao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.o
28pera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"display","test":(v) => new RegExp("^(?:display|banner|expandable|interstitial|cpm)$", "i").test(v.utmMedium)},{"name":"paid-other","test":(v) => new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)}
28,{"name":"organic-shopping","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|yandex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)},{"name":"organic-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|k
28akao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.opera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) || new RegExp("^(?:social|social-network|social-media|sm|social network|social media)$", "i").test(v.utmMedium)},{"name":"organic-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) || new RegExp("^(.*video.*)$", "i").test(v.utmMedium)},{"name":"organic-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
28andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || v.utmMedium.toLowerCase() === "organic"},{"name":"referral","test":(v) => new RegExp("^(?:referral|app|link)$", "i").test(v.utmMedium)},{"name":"email","test":(v) => new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmMedium) || new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmSource)},{"name":"affiliate","test":(v) => v.utmMedium.toLowerCase() === "affiliate"},{"name":"audio","test":(v) => v.utmMedium.toLowerCase() === "audio"},{"name":"sms","test":(v) => v.utmSource.toLowerCase() === "sms" || v.utmMedium.toLowerCase() === "sms"},{"name":"mobile-push-notification","test":(v) => v.utmSource.toLowerCase() === "firebase" || new RegExp("(?:.*mobile.*|.*notification.*|push$)", "i").test(v.utmMedium)}].find(i=>i.test(e))?.name??"other"}getShopifyAnalyticsId(){const e=this.getCookie("_shopify_y");if(e)return e;try{const t=this.localStorageGet("Shoplift_ClientId");if(t)return t}catch{}return null}legacyGetCookieVisitor(){const e=this.getCookie("SHOPLIFT");return e===null?null:JSON.parse(e,F)}getCookie(e){const t=this.cookie.split("; ").filter(i=>i.split("=").at(0)===e).at(0);return t===void 0?null:t.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",e=>{(async()=>await this.onConsentChange(e.detail.analyticsAllowed,!0))()}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let e=0;const t=()=>{this.loadShopifyConsentApi()||e++<10&&window.setTimeout(t,100)};t()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const e=async()=>{if(!window.Shopify){this.log("Shopify object missing... suddenly?");return}if(window.Shopify.customerPrivacy===void 0){this.log("Shopify CustomerPrivacy api still missing, trying again in 1000ms"),t=window.setTimeout(()=>{(async()=>await e())()},1e3);return}if(this.geoViaShopify){const s=window.Shopify.customerPrivacy.getRegion?.();this.resolvedRegion=typeof s=="string"?s.replace(/-/g,""):""}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let t=window.setTimeout(()=>{(async()=>await e())()},5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(t),i){this.log("Error loading consent tracking",i);return}await e()})()}),!0}return!1}async onConsentChange(e,t){try{if(this.log("Consent change detected",e,t),this.state.essential.consentApproved=e,this.state.essential.hasConsentInteraction=t,!this.state.essential.consentApproved){this.state.essential.hasConsentInteraction&&(this.state.analytics.queue.length=0),this.saveState();return}this.cookie=document.cookie,this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.saveState(),await this.syncAllEvents()}catch(i){this.log("Error syncing on consent change",i)}}isThemePreview(){return isThemePreview||themeRole!=="main"}isAppProxyPath(){const e=["/apps/","/tools/","/a/"],t=window.location.pathname;return e.some(i=>t.startsWith(i))}clearThemeBar(e,t,i){const s=structuredClone(i);this.log("Looking for theme bar"),this.waitForElement(null,"body").then(r=>this.waitForElement(r,"#preview-bar-iframe, #PBarNextFrameWrapper").then(o=>(this.log("Found theme bar"),t&&(this.log("Removing theme bar"),o.remove()),e?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},ee)}):Promise.resolve(null)))).catch(r=>console.error(r))}waitForElement(e,t){return new Promise(i=>{const s=document.querySelector(t);if(s){i(s);return}const r=new MutationObserver(o=>{const n=document.querySelector(t);if(n){r.disconnect(),i(n);return}});r.observe(e??document.documentElement,{childList:!0})})}setDebug(e){this.state.essential.debugMode=e,this.saveState()}log(e,...t){let i=0;const s=e.replace(/%[sdoOfF]/g,r=>{if(i>=t.length)return r;const o=t[i++];return r==="%o"||r==="%O"?JSON.stringify(o):String(o)});this.logHistory.push(`[${new Date().toISOString()}][SL] ${s}`),!(!this.state.essential.debugMode&&!this.shopliftDebug)&&console.debug(`[SL] ${e}`,...t)}debugState(){return{state:this.state,storage:{essential:this.loadLocalStorage(this.essentialSessionKey),analytics:this.loadLocalStorage(this.analyticsSessionKey)},params:{shop:this.shop,host:this.host,eventHost:this.eventHost,cssHideClass:this.cssHideClass,testConfigs:this.testConfigs,inactiveTestConfigs:this.inactiveTestConfigs,sendPageView:this.sendPageView,isShopifyMerchantCookie
28:this.getCookie("is_shopify_merchant"),themeId,url:window.location.href,isThemePreview,themeRole,gaConfig:this.gaConfig},logHistory:this.logHistory}}createViewportObserver(e,t={}){const{threshold:i=this.VIEWPORT_TRACK_THRESHOLD,triggerOnce:s=!0}=t,r=new Set;return new IntersectionObserver(o=>{o.forEach(n=>{if(n.isIntersecting&&!r.has(n.target)){const l=n.target,c=l.getAttribute(this.DATA_SL_TEST_ID);c&&(e(c,l),s&&r.add(l))}})},{threshold:i})}applyChangesWithViewport(e,t,i,s){const r=t.selectorsForViewportTracking??t.selectors,o=n=>{if(this.state.essential.visitorTests.some(h=>h.testId===n)||this.activeViewportObservers.has(n))return;const l=[];if(r.forEach(h=>{e.querySelectorAll(h.cssSelector).forEach(b=>l.push(b))}),l.length===0)return;let c=!1;const d=()=>{c||(c=!0,i(n),u.disconnect(),this.activeViewportObservers.delete(n))},u=this.createViewportObserver(()=>{d()},{triggerOnce:!0,...s});this.activeViewportObservers.set(n,u),this.log(`Created viewport observer for test ${n}, observing ${l.length} elements`),l.forEach(h=>{h.setAttribute(this.DATA_SL_TEST_ID,String(n)),u.observe(h)}),setTimeout(()=>{c||l.forEach(h=>{const p=h.getBoundingClientRect(),b=s?.threshold??this.VIEWPORT_TRACK_THRESHOLD,E=Math.min(p.bottom,window.innerHeight)-Math.max(p.top,0),S=Math.min(p.right,window.innerWidth)-Math.max(p.left,0);p.top<window.innerHeight&&p.bottom>0&&p.left<window.innerWidth&&p.right>0&&E>0&&S>0&&E>=p.height*b&&(this.log(`Price element already visible in viewport for test ${n}:`,h),d())})},100)};t.selectors.length>0&&U(e,t,()=>{}),Te(e,{testId:t.testId,hypothesisId:t.hypothesisId,selectors:r},n=>{o(n)})}applyPriceTestWithMapLookup(e,t,i,s){if(!t.priceData){this.log("No price data for hypothesis '%s'",t.id);return}this.log("Hypothesis '%s' isControl=%s, priceData has %d variants",t.id,t.isControl,t.priceData.variants.length);const r=t.priceData.variants.slice(0,3);for(const[S,C,_]of r)this.log("  Sample priceData: variant=%s, price=%d, compareAt=%d",S,C,_);const o=j(t.priceData),n=new Set;for(const S of i)if(S.priceData)for(const[C]of S.priceData.variants)n.add(C);this.log("Price test Map lookup: %d products in hypothesis, %d total products to track",o.size,n.size);const l=t.priceData,c=new WeakSet;let d=!1;const u="[data-sl-attribute-p], [data-sl-attribute-cap], [data-sl-attribute-discount]",h=S=>{if(c.has(S))return;const C=S.getAttribute("data-sl-attribute-p"),_=S.getAttribute("data-sl-attribute-cap"),T=S.getAttribute("data-sl-attribute-discount"),m=C||_||T;if(!m||!n.has(m))return;c.add(S);const y=o.get(m);y&&(this.log("Applying price for product %s: %d cents (compare at: %d cents)",m,y.priceInCents,y.compareAtPriceInCents),Le(S,m,y,l),this.log("Applied price to element for product %s",m)),!d&&!this.state.essential.visitorTests.some(w=>w.testId===e)&&(S.setAttribute(this.DATA_SL_TEST_ID,String(e)),this.setupElementViewportTracking(S,e,()=>{d||(d=!0,s(e))}))},p=()=>{const S=document.querySelectorAll(u);this.log("Scanning for price elements, found: %d",S.length),S.forEach(h)},b=new MutationObserver(S=>{for(const C of S)C.type==="childList"&&C.addedNodes.forEach(_=>{if(_.nodeType===Node.ELEMENT_NODE){const T=_;(T.hasAttribute("data-sl-attribute-p")||T.hasAttribute("data-sl-attribute-cap")||T.hasAttribute("data-sl-attribute-discount"))&&h(T),T.querySelectorAll(u).forEach(h)}}),C.type==="attributes"&&C.target instanceof Element&&h(C.target)}),E=document.body||document.documentElement;b.observe(E,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-sl-attribute-p","data-sl-attribute-cap","data-sl-attribute-discount"]}),this.log("MutationObserver started for price elements"),p(),document.readyState==="loading"&&document.addEventListener("DOMContentLoaded",()=>{this.log("DOMContentLoaded - rescanning for price elements"),p()}),setTimeout(()=>{this.log("Delayed rescan for price elements"),p()},100),setTimeout(()=>{this.log("Final rescan for price elements"),p()},500)}setupElementViewportTracking(e,t,i){const s=this.VIEWPORT_TRACK_THRESHOLD,r=e.getBoundingClientRect(),o=Math.min(r.bottom,window.innerHeight)-Math.max(r.top,0),n=Math.min(r.right,window.innerWidth)-Math.max(r.left,0);if(r.top<window.innerHeight&&r.bottom>0&&r.left<window.innerWidth&&r.right>0&&o>0&&n>0&&o>=r.height*s){this.log("Price element already visible for test %s",t),i();return}const c=new IntersectionObserver(d=>{for(const u of d)if(u.isIntersecting&&u.intersectionRatio>=s){this.log("Price element entered viewport for test %s",t),c.disconnect(),i();break}},{threshold:s});c.observe(e)}debug(){const e=this.debugState();console.log(JSON.stringify(e,ee,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new Ze("getkion1.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",true,true,false,{"sendEvents":true,"mode":"gtm"},false,false,1000,[{"id":"019fb9d2-21c2-7112-a4e3-adc9a928a531","startAt":"2026-07-31T20:16:23.997119Z","requiresCountry":false,"requiresRegion":false,"bayesianRevision":5,"device":"all","status":"active","visitorOption":"all","ignoreTestViewParameterEnforcement":false,"statusHistory":[{"status":"active","createdAt":"2026-07-31T20:16:24.109758Z"},{"status":"paused","createdAt":"2026-09-03T06:07:50.019545Z"},{"status":"active","createdAt":"2026-09-03T06:16:25.257242Z"},{"status":"paused","createdAt":"2026-09-03T06:22:32.129943Z"},{"status":"active","createdAt":"2026-09-03T06:22:37.172926Z"},{"status":"paused","createdAt":"2026-09-03T06:22:45.944125Z"},{"status":"active","createdAt":"2026-09-03T06:38:23.283675Z"}
28],"hypotheses":[{"visitorCount":0,"trafficPercentage":0.0,"title":"3x Buy Box","domSelectors":[],"id":"019fb9c3-5441-7f95-b65d-6626b6646e3e","type":"product","themeId":147325354058,"affix":"bundle","isControl":true},{"visitorCount":762,"trafficPercentage":1.0,"title":"1x Buy Box","domSelectors":[],"id":"019fb9c3-5442-7a0f-9ecf-d6000cd354d4","type":"product","themeId":147325354058,"affix":"","isControl":false}],"targetAudiences":[[(visitor, isNew, channel, country) => visitor.utmMedium === "grin" || visitor.utmMedium === "aspireig" || visitor.utmMedium === "aspire",(visitor, isNew, channel, country) => window.location.href.replace(/#slr-[a-z0-9]+$/, "").includes("/collections/shopkion")]],"title":"Show 1x Buy box (Aspire & Grin only)"},{"id":"01a0831c-04c0-700f-8d1b-2518c64b0475","startAt":"2026-09-08T22:20:46.620604Z","requiresCountry":false,"requiresRegion":false,"bayesianRevision":5,"device":"all","status":"active","visitorOption":"all","ignoreTestViewParameterEnforcement":false,"statusHistory":[{"status":"active","createdAt":"2026-09-08T22:20:46.725354Z"},{"status":"paused","createdAt":"2026-09-08T22:23:23.26356Z"},{"status":"active","createdAt":"2026-09-08T22:25:01.444478Z"},{"status":"paused","createdAt":"2026-09-08T22:26:27.518078Z"},{"status":"active","createdAt":"2026-09-10T03:18:24.703784Z"},{"status":"paused","createdAt":"2026-09-10T03:43:53.290393Z"},{"status":"active","createdAt":"2026-09-11T17:41:07.634121Z"},{"status":"paused","createdAt":"2026-09-11T17:41:54.365272Z"},{"status":"active","createdAt":"2026-09-11T21:20:27.07322Z"}],"hypotheses":[{"visitorCount":742,"trafficPercentage":0.49479190532675743,"title":"Shop Kion Collection","domSelectors":[],"id":"01a08308-26f2-7068-83d3-d7f66e42875c","type":"urlRedirect","themeId":147325354058,"affix":"","isControl":true,"redirectPath":"/collections/shopkion"},{"visitorCount":758,"trafficPercentage":0.5052080946732426,"title":"New Affiliate LP","domSelectors":[],"id":"01a0830d-49e7-7ef2-9ea7-42f11ad44e5a","type":"urlRedirect","themeId":147325354058,"affix":"","isControl":false,"redirectPath":"/pages/affiliate-lp"}],"targetAudiences":[],"title":"Affiliate LP Split Test"},{"id":"01a0d63d-1fc5-73de-a946-0c774e9ff1e3","startAt":"2026-09-25T01:45:25.184475Z","requiresCountry":false,"requiresRegion":false,"bayesianRevision":5,"device":"all","status":"active","visitorOption":"all","ignoreTestViewParameterEnforcement":false,"statusHistory":[{"status":"active","createdAt":"2026-09-25T01:45:25.202491Z"}],"hypotheses":[{"visitorCount":1538,"trafficPercentage":0.5070499840416276,"title":"Original","domSelectors":[],"id":"01a0d628-e3cb-7898-a59a-f957bf114ac7","type":"product","themeId":147325354058,"affix":"bundle","isControl":true},{"visitorCount":1495,"trafficPercentage":0.4929500159583724,"title":"Free Shipping Bar","domSelectors":[],"id":"01a0d629-5617-74be-811a-b3c9fdd69376","type":"product","themeId":147325354058,"affix":"sl-B00D4611","isControl":false}],"targetAudiences":[],"title":"Free shipping bar test"}],[{"id":"01a0a23d-9235-7d21-9616-13003cd29c3b","bayesianRevision":5,"status":"paused","hypotheses":[{"id":"01a0a23c-81a2-7b47-b2db-e4f8bc612e11","type":"product","themeId":147325354058,"affix":"bundle","isControl":true,"redirectPath":null},{"id":"01a0a23c-9fde-74e1-aecf-62077e5190bd","type":"product","themeId":147325354058,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"01a01cd7-28ba-7a56-917c-7901cca8d7e4","bayesianRevision":5,"status":"paused","hypotheses":[{"id":"01a01ccd-c0bf-70f2-b4be-475a78cb2ef4","type":"index","themeId":147325354058,"affix":"","isControl":true,"redirectPath":null},{"id":"01a01cd1-a6b0-7767-805f-071b2f47352e","type":"index","themeId":147325354058,"affix":"3x-buy-box","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"01a0465c-7daa-796d-8485-461cdf49c875","bayesianRevision":5,"status":"paused","hypotheses":[{"id":"01a03e66-8fb6-740e-bee7-368338d8cf89","type":"collection","themeId":147325354058,"affix":"template-2","isControl":true,"redirectPath":null},{"id":"01a03e66-d8db-730a-9291-37c78bfa8fe6","type":"collection","themeId":147325354058,"affix":"template-2-ab","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"01a06806-706e-7561-a4b6-3162d5822e80","bayesianRevision":5,"status":"cancelled","hypotheses":[{"id":"01a06802-90f9-7f7e-9909-ac7270278928","type":"theme","themeId":147325354058,"affix":"","isControl":true,"redirectPath":null},{"id":"01a06804-9b58-78f2-940e-94cacd413b5a","type":"theme","themeId":148769669194,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"85e37ace-d1f8-4dcc-ab7d-a25e6aeba9ae","bayesianRevision":4,"status":"incompatible","hypotheses":[{"id":"
281c6a59b8-a2db-472a-8627-41f56803ce2f","type":"index","themeId":147325354058,"affix":"","isControl":true,"redirectPath":null},{"id":"87172b81-1334-4805-86fa-f3434007bee0","type":"landing","themeId":147325354058,"affix":"index-3x-aminos-bundle","isControl":false,"redirectPath":"/pages/kion-home-3x-aminos-bundle"}],"ignoreTestViewParameterEnforcement":false},{"id":"89bb2ebc-10ca-4f94-9c52-37f363425af8","bayesianRevision":4,"status":"incompatible","hypotheses":[{"id":"13d80c34-acd0-4f52-bfe7-cdd36ac43ff8","type":"index","themeId":147325354058,"affix":"","isControl":true,"redirectPath":null},{"id":"e2b6f67d-94cf-4460-bd41-b4894ea6ac9a","type":"landing","themeId":147325354058,"affix":"index-3x-aminos-bundle","isControl":false,"redirectPath":"/pages/kion-home-3x-aminos-bundle"}],"ignoreTestViewParameterEnforcement":false},{"id":"019e9a77-5400-7072-8f9e-db529e24eebb","bayesianRevision":5,"status":"incompatible","hypotheses":[{"id":"019e950b-2748-7194-ab1f-d477733eedbe","type":"product","themeId":147325354058,"affix":"","isControl":true,"redirectPath":null},{"id":"019e9566-f5d5-7c4b-b399-306c50715c52","type":"product","themeId":147325354058,"affix":"2026-04-all-product-pdp-bundle","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"019ecc0a-823a-7507-a43d-188efef49474","bayesianRevision":5,"status":"incompatible","hypotheses":[{"id":"019ecc08-959d-79a3-baf0-9a4ae49935e4","type":"product","themeId":147325354058,"affix":"2026-04-all-product-pdp-bundle","isControl":true,"redirectPath":null},{"id":"019ecc08-959e-774e-9a81-966d4b027ac6","type":"product","themeId":147325354058,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"019d471e-53d0-761a-8014-d533d98252f7","bayesianRevision":5,"status":"incompatible","hypotheses":[{"id":"019d45cd-c0dc-7a5d-bafd-7b74ded14035","type":"product","themeId":147325354058,"affix":"pdp-bundle","isControl":true,"redirectPath":null},{"id":"019d45cd-e26a-7556-b434-092d5fac0047","type":"product","themeId":147325354058,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"019faa63-7ae4-7942-889b-173251722701","bayesianRevision":5,"status":"paused","hypotheses":[{"id":"019faa5d-b0c3-73f9-99fe-0dc37373ade3","type":"product","themeId":147325354058,"affix":"bundle","isControl":true,"redirectPath":null},{"id":"019faa5d-f616-7b2d-806c-017cc6183759","type":"product","themeId":147325354058,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false}],null,false),await window.shopliftInstance.init())})();async function Qe(a,e,t,i){const s=Be({log:i});if(t)return i("[SUB-PREVIEW] A side — no overlay applied; widget renders naturally"),s;const r=a.widget.widgetType,o=e?j(e):null;let n=W(e),l=J(a,n),c=l.discountMap,d=l.maxDiscount;function u(){const f=W(e);f!==n&&(n=f,l=J(a,n),c=l.discountMap,d=l.maxDiscount,i(`[SUB-PREVIEW] scope refreshed currentProductId=${n??"n/a"}, maxDiscount=${d}`))}i(`[SUB-PREVIEW] side=B, currentProductId=${n??"n/a"}, maxDiscount=${d}`);function h(f){if(!e||!o)return null;const v=Z(o),g=v?o.get(v):void 0;return g?{formattedVariantPrice:G(g.priceInCents,e),formattedDiscounted:G(g.priceInCents*(1-f/100),e)}:null}function p(f){const v=Y(a,f);if(!v)return d;const g=D(a,"subscriptionInput"),P=g.length?g[0].selector:'input[name="rc_plan"]',A=v.querySelector(`${P}:checked`);if(A){const k=c[A.value];if(k!==void 0)return k}return d}function b(f){const v=D(a,"subscriptionDiscount");for(const g of v)if(g.selector.includes("badge")||g.selector.includes("__badge")){const P=f.querySelector(g.selector);P?.textContent&&!P.textContent.includes(`${d}%`)&&$(P,A=>N(A,d))}}function E(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionCompareAt");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedVariantPrice)&&$(k,x=>/\d/.test(x)?g.formattedVariantPrice:x)}}function S(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionPrice");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedDiscounted)&&$(k,x=>/\d/.test(x)?g.formattedDiscounted:x)}}function C(f){const v=D(a,"subscriptionInput"),g=v.length?v[0].selector:'input[name="rc_plan"]',P=D(a,"subscriptionPlanDiscount"),A=P.length?P[0].selector:".rc-plans-button__discount";for(const k of Array.from(f.querySelectorAll("label"))){const x=k.querySelector(g),R=k.querySelector(A);if(x&&R?.textContent){const V=c[x.value];if(V!==void 0){const O=R.textContent.match(/[\d.]+%/)?.[0];O&&O!==`${V}%`&&$(R,L=>N(L,V))}}}}function _(f){const v=f.querySelector("select");if(v)for(const g of Array.from(v.options)){const P=c[g.value];if(P!==void 0&&g.textContent){const A=g.textContent.match(/[\d.]+%/)?.[0];A&&A!==`${P}%`&&(g.textContent=N(g.textContent,P))}}}function T(f){const v=D(a,"onetimePrice");if(!v.length||!e||!o)return;const g=Z(o),P=g?o.get(g):void 0;if(!P)return;const A=G(P.priceInCents,e),k=D(a,"onetimeContainer"),x=k.length?k[0].selector:'[part~="rc-purchase-option__onetime"]',R=f.querySelector(x);if(R)for(const V of v){const O=R.querySelector(`[part~="${V.selector}"]`);O?.textContent&&!O.textContent.includes(A)&&$(O,L=>/\d/.test(L)?A:L)}}function m(f,v){const P=D(a,"subscriptionDiscount").filter(A=>A.selector.includes("benefit")||A.selector==="rc-benefits");for(const A of P){const k=f.querySelector(A.selector);if(k?.shadowRoot){for(const x of Array.from(k.shadowRoot.querySelectorAll("li")))if(x.textContent?.includes("Save")){const R=x.textContent.match(/[\d.]+%/)?.[0];R&&R!==`${v}%`&&$(x,V=>N(V,v))}}}}let y=!1;function w(){if(!y){y=!0;try{u();const f=B(a);if(!f)return;const v=p(f);b(f),E(f,v),S(f,v),T(f);const g=Y(a,f);g&&(r==="buttons"||r==="radio"?C(g):_(g)),m(f,v)}finally{y=!1}}}const I=pe({data:a,runUpdates:w});return function(){I(),s()}}const Xe=Object.freeze(Object.defineProperty({__proto__:null,subscriptionPreviewRender:Qe},Symbol.toStringTag,{value:"Module"}))})(); })("/", { suffix: "", type: "index" }, "main", 147325354058, false)</script>
28
29<!-- End of Shoplift scripts -->
30
31<script type="edgemesh/lazyOnLoad">!function(s,a,e,v,n,t,z){if(s.saq)return;n=s.saq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!s._saq)s._saq=n;n.push=n;n.loaded=!0;n.version='1.0';n.queue=[];t=a.createElement(e);t.async=!0;t.src=v;z=a.getElementsByTagName(e)[0];z.parentNode.insertBefore(t,z)}(window,document,'script','https://tags.srv.stackadapt.com/events.js');saq('ts', 'GasGnRsm1zYEZd_pn53wgQ');</script>
31
32
33  <meta charset="utf-8">
34  <meta http-equiv="X-UA-Compatible" content="IE=edge">
35  <meta name="viewport" content="width=device-width,initial-scale=1">
36  <meta name="theme-color" content="#000">
37  
38  <link rel="canonical" href="https://www.getkion.com/">
39  <link href="//www.getkion.com/cdn/shop/t/109/assets/spock.css?v=69579418280556410771784609120" rel="stylesheet" type="text/css" media="all" />
40  
41  
42  
43    <link rel="shortcut icon" href="//www.getkion.com/cdn/shop/files/k-favicon-2021_32x32.png?v=1613644275" type="image/png">
44  
45
46  
47  
48  	<title>
49    Kion | Energy for life
50    
51    
52    
53  </title>
54  
55
56  
57    <meta name="description" content="Pure, research-backed supplements and functional foods for sustained, natural energy.">
58  
59
60  	
61<meta property="og:site_name" content="Kion">
62<meta property="og:url" content="https://www.getkion.com/">
63<meta property="og:title" content="Kion | Energy for life">
64<meta property="og:type" content="website">
65<meta property="og:description" content="Pure, research-backed supplements and functional foods for sustained, natural energy.">
66
67
68<meta name="twitter:site" content="@getkion">
69<meta name="twitter:card" content="summary_large_image">
70<meta name="twitter:title" content="Kion | Energy for life">
71<meta name="twitter:description" content="Pure, research-backed supplements and functional foods for sustained, natural energy.">
72  	
73<script type="application/ld+json">
74    {
75      "@context": "https://schema.org",
76      "@graph": [
77        {
78          "@type": "WebSite",
79          "@id": "https:\/\/www.getkion.com\/#website",
80          "url": "https:\/\/www.getkion.com\/",
81          "name": "Kion",
82          "publisher": {
83            "@id": "https:\/\/www.getkion.com\/#organization"
84          }
85        },
86        {
87          "@type": "OnlineStore",
88          "@id": "https:\/\/www.getkion.com\/#organization",
89          "url": "https:\/\/www.getkion.com\/",
90          "name": "Kion",
91          "description": "Pure, research-backed supplements and functional foods for sustained, natural energy.",
92          "logo": "https:\/\/www.getkion.com\/cdn\/shop\/files\/k-favicon-2021.png?v=1613644275\u0026width=512",
93          "sameAs": ["https:\/\/www.instagram.com\/kion\/"
94,"https:\/\/www.facebook.com\/Kion\/"
95,"https:\/\/twitter.com\/getkion"
96]
97        },
98        {
99          "@type": "WebPage",
100          "@id": "https:\/\/www.getkion.com\/#webpage",
101          "url": "https:\/\/www.getkion.com\/",
102          "name": "Kion | Energy for life",
103          "isPartOf": {
104            "@id": "https:\/\/www.getkion.com\/#website"
105          },
106          "about": {
107            "@id": "https:\/\/www.getkion.com\/#organization"
108          }
109        }
110      ]
111    }
112  </script>
112
113
114  <link href="//www.getkion.com/cdn/shop/t/109/assets/getkion.css?v=6168801557337411431786509723" rel="stylesheet" type="text/css" media="all" />
115
116  
116<script>
117    document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
118
119    window.theme = {
120      strings: {
121        addToCart: "Add to Cart",
122        soldOut: "Sold Out",
123        unavailable: "Unavailable"
124      },
125      moneyFormat: "${{amount}}"
126    };
127  </script>
127
128
129  
130
131  <!--[if (gt IE 9)|!(IE)]><!-->
131<script src="//www.getkion.com/cdn/shop/t/109/assets/vendor.js?v=96797198510115626491784609121" defer="defer"></script>
131<!--<![endif]-->
132  <!--[if lt IE 9]>
132<script src="//www.getkion.com/cdn/shop/t/109/assets/vendor.js?v=96797198510115626491784609121"></script>
132<![endif]-->
133
134  <!--[if (gt IE 9)|!(IE)]><!-->
134<script src="//www.getkion.com/cdn/shop/t/109/assets/theme.js?v=113600416558835094371784609121" defer="defer"></script>
134<!--<![endif]-->
135  <!--[if lt IE 9]>
135<script src="//www.getkion.com/cdn/shop/t/109/assets/theme.js?v=113600416558835094371784609121"></script>
135<![endif]-->
136
137  
138
139<script>
140  if (!window.kionApplyTriggerUrlOverride) {
141    window.kionApplyTriggerUrlOverride = function (root) {
142      var requestedTrigger = null;
143
144      try {
145        requestedTrigger = new URLSearchParams(window.location.search).get("_kiontrigger");
146      } catch (error) {
147        return null;
148      }
149
150      if (requestedTrigger === null) return null;
151
152      requestedTrigger = requestedTrigger.trim().slice(0, 255);
153      if (!requestedTrigger) return null;
154
155      var scope = root && root.querySelectorAll ? root : document;
156      var triggerSelector = 'input[name="properties[_kiontrigger]"]';
157      var buyBoxFormSelector = [
158        'form#kion-product-form',
159        'form#kion3JP1-product-form',
160        'form#home-bundle-product-form',
161        'form[data-kion-buy-box]'
162      ].join(',');
163      var triggerInputs = Array.prototype.slice.call(scope.querySelectorAll(triggerSelector));
164      var buyBoxForms = Array.prototype.slice.call(scope.querySelectorAll(buyBoxFormSelector));
165
166      if (scope.matches && scope.matches(triggerSelector)) {
167        triggerInputs.unshift(scope);
168      }
169
170      if (scope.matches && scope.matches(buyBoxFormSelector)) {
171        buyBoxForms.unshift(scope);
172      }
173
174      triggerInputs.forEach(function (input) {
175        input.value = requestedTrigger;
176        input.setAttribute("value", requestedTrigger);
177      });
178
179      buyBoxForms.forEach(function (form) {
180        var input = form.querySelector(triggerSelector);
181
182        if (!input) {
183          input = document.createElement("input");
184          input.type = "hidden";
185          input.name = "properties[_kiontrigger]";
186          form.appendChild(input);
187        }
188
189        input.value = requestedTrigger;
190        input.setAttribute("value", requestedTrigger);
191      });
192
193      return requestedTrigger;
194    };
195
196    document.addEventListener("submit", function (event) {
197      var form = event.target;
198      var triggerSelector = 'input[name="properties[_kiontrigger]"]';
199      var isKionBuyBox = form && form.matches && form.matches([
200        'form#kion-product-form',
201        'form#kion3JP1-product-form',
202        'form#home-bundle-product-form',
203        'form[data-kion-buy-box]'
204      ].join(','));
205
206      if (isKionBuyBox || (form && form.querySelector && form.querySelector(triggerSelector))) {
207        window.kionApplyTriggerUrlOverride(form);
208      }
209    }, true);
210
211    if (document.readyState === "loading") {
212      document.addEventListener("DOMContentLoaded", function () {
213        window.kionApplyTriggerUrlOverride(document);
214      });
215    } else {
216      window.kionApplyTriggerUrlOverride(document);
217    }
218  }
219
220  if (!window.kionApplyBuyBoxUrlOverrides) {
221    window.kionApplyBuyBoxUrlOverrides = function (config) {
222      var params = new URLSearchParams(window.location.search);
223      var requestedQuantity = params.get("quantity") || params.get("qty");
224      var requestedPurchase = params.get("purchase") || params.get("purchase_type") || "";
225      var supportedQuantities = config.supportedQuantities || [];
226      var quantityIsSupported = supportedQuantities.length
227        ? supportedQuantities.indexOf(requestedQuantity) !== -1
228        : /^\d+$/.test(requestedQuantity || "") && Number(requestedQuantity) > 0;
229      var result = {
230        quantity: null,
231        purchase: null,
232        trigger: window.kionApplyTriggerUrlOverride(document)
233      };
234
235      if (quantityIsSupported) {
236        var quantityInput = document.querySelector(config.quantityInput);
237
238        if (quantityInput) {
239          quantityInput.value = requestedQuantity;
240          result.quantity = requestedQuantity;
241        }
242      }
243
244      requestedPurchase = requestedPurchase.toLowerCase().replace(/[\s_-]/g, "");
245
246      if (requestedPurchase === "sub" || requestedPurchase === "subscribe") {
247        requestedPurchase = "subscription";
248      }
249
250      if (requestedPurchase === "onetime" || requestedPurchase === "subscription") {
251        if (requestedPurchase !== "subscription" || config.allowSubscription) {
252          var purchaseRadio = document.querySelector(
253            'input[name="' + config.purchaseInputName + '"][value="' + requestedPurchase + '"]'
254          );
255
256          if (purchaseRadio) {
257            purchaseRadio.checked = true;
258            result.purchase = requestedPurchase;
259          }
260        }
261      }
262
263      return result;
264    };
265  }
266</script>
266
267
268	
268<script>
269  (function () {
270    var kionCartPlanSyncing = false;
271    var kionCartPlanProductCache = {};
272
273    function kionCartPlanQuantity(sellingPlan) {
274      if (!sellingPlan || !Array.isArray(sellingPlan.options)) return 0;
275      var quantityOption = sellingPlan.options.find(function (option) {
276        return option && option.name === 'Product Quantity';
277      });
278      var quantity = quantityOption ? parseInt(quantityOption.value, 10) : 0;
279      return Number.isInteger(quantity) && quantity > 0 ? quantity : 0;
280    }
281
282    function kionCartPlanProduct(handle) {
283      if (!handle) return Promise.reject(new Error('Missing product handle'));
284      if (!kionCartPlanProductCache[handle]) {
285        var root = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/';
286        kionCartPlanProductCache[handle] = fetch(root + 'products/' + encodeURIComponent(handle) + '.js', {
287          credentials: 'same-origin',
288          headers: { Accept: 'application/json' }
289        }).then(function (response) {
290          if (!response.ok) throw new Error('Unable to load product selling plans');
291          return response.json();
292        });
293      }
294      return kionCartPlanProductCache[handle];
295    }
296
297    function kionCartPlanChoices(product, variantId) {
298      var variant = (product.variants || []).find(function (candidate) {
299        return String(candidate.id) === String(variantId);
300      });
301      var allocationIds = new Set(((variant && variant.selling_plan_allocations) || []).map(function (allocation) {
302        return String(allocation.selling_plan_id);
303      }));
304      var choices = [];
305
306      (product.selling_plan_groups || []).forEach(function (group) {
307        (group.selling_plans || []).forEach(function (sellingPlan) {
308          var quantity = kionCartPlanQuantity(sellingPlan);
309          if (quantity && allocationIds.has(String(sellingPlan.id)) && !choices.some(function (choice) { return choice.quantity === quantity; })) {
310            choices.push({ quantity: quantity, sellingPlanId: String(sellingPlan.id) });
311          }
312        });
313      });
314
315      return choices.sort(function (a, b) { return a.quantity - b.quantity; });
316    }
317
318    function kionCartPlanSetBusy(isBusy) {
319      document.querySelectorAll('#rebuy-cart button, #rebuy-cart select').forEach(function (control) {
320        control.disabled = isBusy;
321      });
322    }
323
324    function kionCartPlanReopen() {
325      var nextUrl = new URL(window.location.href);
326      nextUrl.searchParams.set('viewcart', 'true');
327      window.location.replace(nextUrl.toString());
328    }
329
330    function kionCartPlanSync(direction, eventItem) {
331      if (kionCartPlanSyncing || !eventItem) return;
332      kionCartPlanSyncing = true;
333      kionCartPlanSetBusy(true);
334
335      var root = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/';
336      fetch(root + 'cart.js', { credentials: 'same-origin', headers: { Accept: 'application/json' } })
337        .then(function (response) {
338          if (!response.ok) throw new Error('Unable to load cart');
339          return response.json();
340        })
341        .then(function (cart) {
342          var lineIndex = (cart.items || []).findIndex(function (item) {
343            return eventItem.key && item.key === eventItem.key;
344          });
345
346          if (lineIndex < 0) {
347            lineIndex = (cart.items || []).findIndex(function (item) {
348              var eventVariantId = eventItem.variant_id || eventItem.id;
349              var eventPlanId = eventItem.selling_plan_allocation && eventItem.selling_plan_allocation.selling_plan
350                ? eventItem.selling_plan_allocation.selling_plan.id
351                : '';
352              var itemPlanId = item.selling_plan_allocation && item.selling_plan_allocation.selling_plan
353                ? item.selling_plan_allocation.selling_plan.id
354                : '';
355              return String(item.variant_id) === String(eventVariantId) && String(itemPlanId) === String(eventPlanId);
356            });
357          }
358
359          if (lineIndex < 0) return null;
360          var cartItem = cart.items[lineIndex];
361          var currentPlan = cartItem.selling_plan_allocation && cartItem.selling_plan_allocation.selling_plan;
362          var currentPlanQuantity = kionCartPlanQuantity(currentPlan);
363          if (!currentPlanQuantity) return null;
364
365          return kionCartPlanProduct(cartItem.handle).then(function (product) {
366            var choices = kionCartPlanChoices(product, cartItem.variant_id);
367            var targetChoice;
368
369            if (direction === 'decrease') {
370              targetChoice = choices.filter(function (choice) {
371                return choice.quantity < currentPlanQuantity;
372              }).pop();
373            } else {
374              targetChoice = choices.find(function (choice) {
375                return choice.quantity > currentPlanQuantity;
376              });
377            }
378
379            if (!targetChoice) {
380              targetChoice = choices.find(function (choice) {
381                return choice.quantity === currentPlanQuantity;
382              });
383            }
384            if (!targetChoice) return null;
385
386            return fetch(root + 'cart/change.js', {
387              method: 'POST',
388              credentials: 'same-origin',
389              headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
390              body: JSON.stringify({
391                line: lineIndex + 1,
392                quantity: targetChoice.quantity,
393                selling_plan: parseInt(targetChoice.sellingPlanId, 10)
394              })
395            }).then(function (response) {
396              if (!response.ok) throw new Error('Unable to synchronize subscription quantity');
397              return response.json();
398            });
399          });
400        })
401        .then(function (updatedCart) {
402          if (updatedCart) {
403            kionCartPlanReopen();
404            return;
405          }
406          kionCartPlanSyncing = false;
407          kionCartPlanSetBusy(false);
408        })
409        .catch(function (error) {
410          kionCartPlanSyncing = false;
411          kionCartPlanSetBusy(false);
412          if (window.console && console.error) console.error('Kion subscription quantity sync failed', error);
413        });
414    }
415
416    document.addEventListener('rebuy:smartcart.line-item-decrease', function (event) {
417      kionCartPlanSync('decrease', event.detail && event.detail.item);
418    });
419
420    document.addEventListener('rebuy:smartcart.line-item-increase', function (event) {
421      kionCartPlanSync('increase', event.detail && event.detail.item);
422    });
423
424    document.addEventListener('click', function (event) {
425      if (!kionCartPlanSyncing) return;
426      if (event.target && event.target.closest('#rebuy-cart button, #rebuy-cart select')) {
427        event.preventDefault();
428        event.stopImmediatePropagation();
429      }
430    }, true);
431  })();
432</script>
432
433
434<script>
435  (function () {
436    var cart = null;
437    var cartObserver = null;
438    var bodyObserver = null;
439    var backgroundState = [];
440    var syncFrame = 0;
441    var returnFocus = null;
442    var ignoredTags = {
443      LINK: true,
444      META: true,
445      NOSCRIPT: true,
446      SCRIPT: true,
447      STYLE: true,
448      TEMPLATE: true
449    };
450
451    function cartIsOpen() {
452      return cart &&
453        cart.isConnected &&
454        cart.classList.contains('is-visible') &&
455        cart.getAttribute('aria-hidden') !== 'true';
456    }
457
458    function restoreBackground() {
459      backgroundState.forEach(function (state) {
460        if (!state.element.isConnected) return;
461
462        if (state.hadAriaHidden) {
463          state.element.setAttribute('aria-hidden', state.ariaHidden);
464        } else {
465          state.element.removeAttribute('aria-hidden');
466        }
467
468        if ('inert' in state.element) {
469          state.element.inert = state.inert;
470        } else if (state.hadInert) {
471          state.element.setAttribute('inert', '');
472        } else {
473          state.element.removeAttribute('inert');
474        }
475      });
476
477      backgroundState = [];
478    }
479
480    function isolateBackground() {
481      if (!cartIsOpen()) return;
482
483      Array.prototype.forEach.call(document.body.children, function (element) {
484        if (element === cart || element.contains(cart) || ignoredTags[element.tagName]) return;
485        if (backgroundState.some(function (state) { return state.element === element; })) return;
486
487        backgroundState.push({
488          element: element,
489          hadAriaHidden: element.hasAttribute('aria-hidden'),
490          ariaHidden: element.getAttribute('aria-hidden'),
491          hadInert: element.hasAttribute('inert'),
492          inert: 'inert' in element ? element.inert : element.hasAttribute('inert')
493        });
494
495        element.setAttribute('aria-hidden', 'true');
496        if ('inert' in element) {
497          element.inert = true;
498        } else {
499          element.setAttribute('inert', '');
500        }
501      });
502    }
503
504    function syncCartState() {
505      syncFrame = 0;
506
507      if (!cartIsOpen()) {
508        restoreBackground();
509        if (cart) cart.removeAttribute('aria-modal');
510
511        if (cart && cart.contains(document.activeElement) && returnFocus && returnFocus.isConnected) {
512          returnFocus.focus({ preventScroll: true });
513        }
514        if (cart) cart.setAttribute('inert', '');
515        return;
516      }
517
518      cart.removeAttribute('inert');
519      if (cart.getAttribute('aria-modal') !== 'true') {
520        cart.setAttribute('aria-modal', 'true');
521      }
522
523      if (!cart.contains(document.activeElement)) {
524        if (document.activeElement && document.activeElement !== document.body) {
525          returnFocus = document.activeElement;
526        }
527        var initialFocus = cart.querySelector('#rebuy-cart-close, button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
528        if (initialFocus) initialFocus.focus({ preventScroll: true });
529      }
530
531      if (cart.contains(document.activeElement)) isolateBackground();
532    }
533
534    function removeUnsupportedReviewLabels() {
535      if (!cart) return;
536
537      cart.querySelectorAll('.rebuy-product-review[aria-label]:not([role])').forEach(function (review) {
538        review.removeAttribute('aria-label');
539      });
540    }
541
542    function disambiguateVariantLabels() {
543      var bundleLabel = "Choose __PRODUCT__ variant in product bundle";
544      var cartLabel = "Choose __PRODUCT__ variant in cart recommendations";
545
546      document.querySelectorAll('select.rebuy-select[aria-label]').forEach(function (select) {
547        var baseLabel = select.getAttribute('data-kion-variant-label') || select.getAttribute('aria-label');
548        var productName = baseLabel.replace(/^variant of\s+/i, '');
549        var labelTemplate = select.closest('#rebuy-cart') ? cartLabel : bundleLabel;
550
551        select.setAttribute('data-kion-variant-label', baseLabel);
552        select.setAttribute('aria-label', labelTemplate.replace('__PRODUCT__', productName));
553      });
554    }
555
556    function hideDecorativeRechargeLogo() {
557      var logo = document.querySelector('.rc-login--header-link[aria-label="Recharge Subscriptions website"] svg');
558      if (!logo) return;
559
560      logo.setAttribute('aria-hidden', 'true');
561      logo.setAttribute('focusable', 'false');
562    }
563
564    function normalizeRebuyHeadingLevels() {
565      document.querySelectorAll('.rebuy-widget.widget-type-dynamic-bundle .primary-title').forEach(function (heading) {
566        heading.setAttribute('role', 'heading');
567        heading.setAttribute('aria-level', '2');
568      });
569
570      document.querySelectorAll('.rebuy-widget .rebuy-product-title').forEach(function (heading) {
571        var widget = heading.closest('.rebuy-widget');
572        var level = widget && widget.classList.contains('widget-type-cart') ? '4' : '3';
573
574        heading.setAttribute('role', 'heading');
575        heading.setAttribute('aria-level', level);
576      });
577    }
578
579    function scheduleSync() {
580      hideDecorativeRechargeLogo();
581      normalizeRebuyHeadingLevels();
582      removeUnsupportedReviewLabels();
583      disambiguateVariantLabels();
584      if (syncFrame) window.cancelAnimationFrame(syncFrame);
585      syncFrame = window.requestAnimationFrame(syncCartState);
586    }
587
588    function connectCart(nextCart) {
589      if (nextCart === cart) return;
590
591      if (cartObserver) cartObserver.disconnect();
592      restoreBackground();
593      cart = nextCart;
594
595      if (!cart) return;
596
597      cartObserver = new MutationObserver(scheduleSync);
598      cartObserver.observe(cart, {
599        attributes: true,
600        attributeFilter: ['aria-hidden', 'aria-modal', 'class'],
601        childList: true,
602        subtree: true
603      });
604      scheduleSync();
605    }
606
607    function initialize() {
608      hideDecorativeRechargeLogo();
609      connectCart(document.getElementById('rebuy-cart'));
610
611      document.addEventListener('focusin', function (event) {
612        if (!cartIsOpen() && (!cart || !cart.contains(event.target))) {
613          returnFocus = event.target;
614        }
615      }, true);
616
617      document.addEventListener('pointerdown', function (event) {
618        if (cartIsOpen() || (cart && cart.contains(event.target))) return;
619
620        var trigger = event.target.closest('a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"])');
621        if (trigger) returnFocus = trigger;
622      }, true);
623
624      bodyObserver = new MutationObserver(function () {
625        var nextCart = document.getElementById('rebuy-cart');
626        if (nextCart !== cart) {
627          connectCart(nextCart);
628        } else {
629          scheduleSync();
630        }
631      });
632      bodyObserver.observe(document.body, { childList: true, subtree: true });
633      scheduleSync();
634    }
635
636    if (document.readyState === 'loading') {
637      document.addEventListener('DOMContentLoaded', initialize, { once: true });
638    } else {
639      initialize();
640    }
641  })();
642</script>
642
643
644	
645
646
647
648	
648<script id="kion-shogun-buy-box-config">
649    window.KION_SHOGUN_BUY_BOXES = window.KION_SHOGUN_BUY_BOXES || {};
650    window.KION_SHOGUN_BUY_BOXES.aminos = {
651      enabled: true,
652      defaultSelection: "cool-lime-powder",
653      products: {"powder": {
654            id: 4388272013386,
655            handle: "aminos-powder",
656            title: "Aminos Powder",
657            featuredImage:"\/\/www.getkion.com\/cdn\/shop\/products\/kionaminospowderlimefront.png?v=1774544828\u0026width=1200",
658            variants: [{
659                  id: 31767232806986,
660                  title: "Cool Lime Powder",
661                  available: true,
662                  price: 49.95,
663                  featuredImage:"\/\/www.getkion.com\/cdn\/shop\/products\/kionaminospowderlimefront.png?v=1774544828\u0026width=1200",
664                  sellingPlanIds: [4491542602,4491411530,4491378762,4491444298]
665                },{
666                  id: 31767232774218,
667                  title: "Mixed Berry Powder",
668                  available: true,
669                  price: 49.95,
670                  featuredImage:"\/\/www.getkion.com\/cdn\/shop\/products\/kionaminospowderberryfront.png?v=1774544828\u0026width=1200",
671                  sellingPlanIds: [4491542602,4491411530,4491378762,4491444298]
672                },{
673                  id: 39775572426826,
674                  title: "Mango Powder",
675                  available: true,
676                  price: 49.95,
677                  featuredImage:"\/\/www.getkion.com\/cdn\/shop\/products\/kionaminosmangofront.png?v=1774544828\u0026width=1200",
678                  sellingPlanIds: [4491542602,4491411530,4491378762,4491444298]
679                },{
680                  id: 39775572394058,
681                  title: "Watermelon Powder",
682                  available: true,
683                  price: 49.95,
684                  featuredImage:"\/\/www.getkion.com\/cdn\/shop\/products\/kionaminoswatermelonfront.png?v=1774544828\u0026width=1200",
685                  sellingPlanIds: [4491542602,4491411530,4491378762,4491444298]
686                }],
687            sellingPlans: [{
688                    id: 4491542602,
689                    name: "Delivery every 1 month",
690                    groupName: "Delivery every 1 month"
691                  },{
692                    id: 4491411530,
693                    name: "Delivery every 2 months",
694                    groupName: "Delivery every 2 months"
695                  },{
696                    id: 4491378762,
697                    name: "Delivery every 3 months",
698                    groupName: "Delivery every 3 months"
699                  },{
700                    id: 4491444298,
701                    name: "Delivery every 6 months",
702                    groupName: "Delivery every 6 months"
703                  }]
704          },"capsules": {
705            id: 6661327945802,
706            handle: "aminos-capsules",
707            title: "Aminos Capsules",
708            featuredImage:"\/\/www.getkion.com\/cdn\/shop\/products\/kionaminosfront_ba6d2cb0-5a7d-4df3-b99c-9a3935ced983.png?v=1631572192\u0026width=1200",
709            variants: [{
710                  id: 39395537944650,
711                  title: "Default Title",
712                  available: true,
713                  price: 49.95,
714                  featuredImage:null,
715                  sellingPlanIds: [4493312074,4493181002,4493377610,4493279306]
716                }],
717            sellingPlans: [{
718                    id: 4493312074,
719                    name: "Delivery every 1 month",
720                    groupName: "Delivery every 1 month"
721                  },{
722                    id: 4493181002,
723                    name: "Delivery every 2 months",
724                    groupName: "Delivery every 2 months"
725                  },{
726                    id: 4493377610,
727                    name: "Delivery every 3 months",
728                    groupName: "Delivery every 3 months"
729                  },{
730                    id: 4493279306,
731                    name: "Delivery every 6 months",
732                    groupName: "Delivery every 6 months"
733                  }]
734          },"packets": {
735            id: 7019708055626,
736            handle: "aminos-packets",
737            title: "Aminos Packets",
738            featuredImage:"\/\/www.getkion.com\/cdn\/shop\/files\/variety.png?v=1770062782\u0026width=1200",
739            variants: [{
740                  id: 40188270608458,
741                  title: "Variety",
742                  available: true,
743                  price: 79.95,
744                  featuredImage:"\/\/www.getkion.com\/cdn\/shop\/files\/variety.png?v=1770062782\u0026width=1200",
745                  sellingPlanIds: [4493672522,4493606986,4493639754,4499308618]
746                },{
747                  id: 40188270641226,
748                  title: "Cool Lime",
749                  available: true,
750                  price: 79.95,
751                  featuredImage:"\/\/www.getkion.com\/cdn\/shop\/files\/limecopy.png?v=1770065618\u0026width=1200",
752                  sellingPlanIds: [4493672522,4493606986,4493639754,4499308618]
753                },{
754                  id: 40188270673994,
755                  title: "Mixed Berry",
756                  available: true,
757                  price: 79.95,
758                  featuredImage:"\/\/www.getkion.com\/cdn\/shop\/files\/berry.png?v=1770065618\u0026width=1200",
759                  sellingPlanIds: [4493672522,4493606986,4493639754,4499308618]
760                },{
761                  id: 40188270706762,
762                  title: "Watermelon",
763                  available: true,
764                  price: 79.95,
765                  featuredImage:"\/\/www.getkion.com\/cdn\/shop\/files\/watermelon.png?v=1770065618\u0026width=1200",
766                  sellingPlanIds: [4493672522,4493606986,4493639754,4499308618]
767                },{
768                  id: 40188270739530,
769                  title: "Mango",
770                  available: true,
771                  price: 79.95,
772                  featuredImage:"\/\/www.getkion.com\/cdn\/shop\/files\/mango.png?v=1770065618\u0026width=1200",
773                  sellingPlanIds: [4493672522,4493606986,4493639754,4499308618]
774                }],
775            sellingPlans: [{
776                    id: 4493672522,
777                    name: "Delivery every 1 month",
778                    groupName: "Delivery every 1 month"
779                  },{
780                    id: 4493606986,
781                    name: "Delivery every 2 months",
782                    groupName: "Delivery every 2 months"
783                  },{
784                    id: 4493639754,
785                    name: "Delivery every 3 months",
786                    groupName: "Delivery every 3 months"
787                  },{
788                    id: 4499308618,
789                    name: "Every Month - 50% off, 30% off renewals",
790                    groupName: "Every Month - 50% off, 30% off renewals"
791                  }]
792          }}
793    };
794    window.KION_SHOGUN_BUY_BOXES.v2 = window.KION_SHOGUN_BUY_BOXES.aminos;
795  </script>
795
796	
797  
797<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
797<meta name="google-site-verification" content="ED97nvNjD2HIwTfkLrvrd5BHdKj8pXTzav3bKsMKUnQ">
798<meta name="facebook-domain-verification" content="hnjrhscdvzdawjfq5ut9y0mxt60ept">
799<meta name="facebook-domain-verification" content="a12yq09916bjqaujfn9735ip67bnww">
800<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/26959413322/digital_wallets/dialog">
801<meta id="in-context-paypal-metadata" data-shop-id="26959413322" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
802<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
802<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2527723594"></script>
802
803<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
804<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2527723594&shop_id=26959413322" crossorigin="anonymous"></script>
vendor: 1 bytes, line 804
804
805<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":26959413322,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/26959413322","merchantName":"Kion","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Kion","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 805
805
806<script id="shopify-features" type="application/json">{"accessToken":"c87412e2d1f56fba14fc12381f16e210","betas":["rich-media-storefront-analytics"],"domain":"www.getkion.com","predictiveSearch":true,"shopId":26959413322,"locale":"en"}</script>
vendor: 1 bytes, line 806
806
807<script>var Shopify = Shopify || {};
808Shopify.shop = "getkion1.myshopify.com";
809Shopify.locale = "en";
810Shopify.currency = {"active":"USD","rate":"1.0"};
811Shopify.country = "US";
812Shopify.theme = {"name":"getkion-shopify-theme-v2\/main","id":147325354058,"schema_name":"Kion","schema_version":"2.0.0","theme_store_id":null,"role":"main"};
813Shopify.theme.handle = "null";
814Shopify.theme.style = {"id":null,"handle":null};
815Shopify.cdnHost = "www.getkion.com/cdn";
816Shopify.routes = Shopify.routes || {};
817Shopify.routes.root = "/";
818Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
819Shopify.SignInWithShop = Shopify.SignInWithShop || {};
820Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
821Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 821
821
822<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 822
822
823<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 823
823
824<script>
825  window.ShopifyPay = window.ShopifyPay || {};
826  window.ShopifyPay.apiHost = "shop.app\/pay";
827  window.ShopifyPay.redirectState = null;
828</script>
vendor: 1 bytes, line 828
828
829<script>
830  window.Shopify = window.Shopify || {};
831  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
832  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
833  window.Shopify.SignInWithShop.eligible = true;
834</script>
vendor: 1 bytes, line 834
834
835<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 835
835
836<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 836
836
837<script type="module">
838  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
839
840  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
841
842</script>
vendor: 1 bytes, line 842
842
843<script>
844  window.Shopify = window.Shopify || {};
845  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
846  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"]};
847</script>
vendor: 1 bytes, line 847
847
848<script>(function() {
849  var isLoaded = false;
850  function asyncLoad() {
851    if (isLoaded) return;
852    isLoaded = true;
853    var urls = ["https:\/\/cdn-loyalty.yotpo.com\/loader\/E0PvEj2XGyG-KRL0uYdw4A.js?shop=getkion1.myshopify.com","https:\/\/d23dclunsivw3h.cloudfront.net\/redirect-app.js?shop=getkion1.myshopify.com","https:\/\/static.rechargecdn.com\/assets\/js\/widget.min.js?shop=getkion1.myshopify.com","https:\/\/app.electricsms.com\/cart-widget\/widget.min.js?shop=getkion1.myshopify.com","https:\/\/config.gorgias.chat\/bundle-loader\/01GYCC3HZ1SD4C139SYPRZNQHM?source=shopify1click\u0026shop=getkion1.myshopify.com","https:\/\/cdn-widgetsrepository.yotpo.com\/v1\/loader\/5BeY2u2ybPjSKIsqHg0eU12l0VnQufWWrAdsqzwn?shop=getkion1.myshopify.com","\/\/cdn.app.metorik.com\/js\/shopify\/mtk.js?shop=getkion1.myshopify.com","https:\/\/searchanise-ef84.kxcdn.com\/widgets\/shopify\/init.js?a=6x6W1U0W5b\u0026shop=getkion1.myshopify.com","https:\/\/media.9gtb.com\/loader.js?g_cvt_id=b347b454-ce56-46fc-8c9e-cb2579ecc2c6\u0026shop=getkion1.myshopify.com","https:\/\/widgets.juniphq.com\/v1\/junip_shopify.js?shop=getkion1.myshopify.com"];
854    for (var i = 0; i < urls.length; i++) {
855      var s = document.createElement('script');
856      s.type = 'text/javascript';
857      s.async = true;
858      s.src = urls[i];
859      var x = document.getElementsByTagName('script')[0];
860      x.parentNode.insertBefore(s, x);
861    }
862  };
863  if(window.attachEvent) {
864    window.attachEvent('onload', asyncLoad);
865  } else {
866    window.addEventListener('load', asyncLoad, false);
867  }
868})();</script>
vendor: 1 bytes, line 868
868
869<script id="__st">var __st={"a":26959413322,"offset":-14400,"pageurl":"www.getkion.com/","p":"home"};</script>
vendor: 1 bytes, line 869
869
870<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 870
870
871<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'])})(!1,!0)}();</script>
vendor: 1 bytes, line 871
871
872<script data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.getkion.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 872
872
873<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.getkion.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>
873<script crossorigin="anonymous" defer="defer" src="//www.getkion.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 873
873
874<script id="shopify-origin-trials" async="async" 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 874
874
875<script>
876  window.Shopify = window.Shopify || {};
877  window.Shopify.MCP = window.Shopify.MCP || {};
878  window.Shopify.MCP.enabled = true;
879  window.Shopify.MCP.shop = "getkion1.myshopify.com";
880  window.Shopify.MCP.mcpEndpoint = "https:\/\/www.getkion.com\/api\/mcp";
881  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"]}}];
882</script>
vendor: 1 bytes, line 882
882
883<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.getkion.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
884</script>
vendor: 1 bytes, line 884
884
885<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.getkion.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
886</script>
vendor: 1 bytes, line 886
886
887<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
888  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);
889</script>
vendor: 1 bytes, line 889
889
890<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})}}));
891</script>
891
892<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.getkion.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
893<style id="shopify-accelerated-checkout-cart">
894        #shopify-buyer-consent {
895  margin-top: 1em;
896  display: inline-block;
897  width: 100%;
898}
899
900#shopify-buyer-consent.hidden {
901  display: none;
902}
903
904#shopify-subscription-policy-button {
905  background: none;
906  border: none;
907  padding: 0;
908  text-decoration: underline;
909  font-size: inherit;
910  cursor: pointer;
911}
912
913#shopify-subscription-policy-button::before {
914  box-shadow: none;
915}
916
917      </style>
918
919<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
919
920  
921
922
923
924
925
926  
926<script type="text/javascript">
927    
928      window.__shgMoneyFormat = window.__shgMoneyFormat || {"USD":{"currency":"USD","currency_symbol":"$","currency_symbol_location":"left","decimal_places":2,"decimal_separator":".","thousands_separator":","}};
929    
930    window.__shgCurrentCurrencyCode = window.__shgCurrentCurrencyCode || {
931      currency: "USD",
932      currency_symbol: "$",
933      decimal_separator: ".",
934      thousands_separator: ",",
935      decimal_places: 2,
936      currency_symbol_location: "left"
937    };
938  </script>
938
939
940
941
942
943  
944
945
946
947<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
947
948
949<script src="//www.getkion.com/cdn/shop/t/109/assets/smoothscroll.min.js?v=100975720213883040531784609119" defer="defer"></script>
vendor: 1 bytes, line 949
949
950<script src="//www.getkion.com/cdn/shop/t/109/assets/jquery.magnific-popup.min.js?v=184369421263510081681784609123" defer="defer"></script>
950
951<!-- 
951<script src="//www.getkion.com/cdn/shop/t/109/assets/quick-buy.js?v=7555101018814538011784609128" defer="defer"></script>
951 -->
952  
953
954<script type="text/javascript">
955  
956    window.SHG_CUSTOMER = null;
957  
958</script>
958
959
960
961
962
963
964
965
966
967
968
969  
969<script src="https://cdn-widgetsrepository.yotpo.com/v1/loader/5BeY2u2ybPjSKIsqHg0eU12l0VnQufWWrAdsqzwn" async></script>
969
970  
970<script>
971    function setCookie(cname, cvalue, exdays) {
972      var d = new Date();
973      d.setTime(d.getTime() + (12*60*60*1000));
974      var expires = "expires="+ d.toUTCString();
975      document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
976    }
977    function getCookie(cname) {
978      let name = cname + "=";
979      let ca = document.cookie.split(';');
980      for(let i = 0; i < ca.length; i++) {
981        let c = ca[i];
982        while (c.charAt(0) == ' ') {
983          c = c.substring(1);
984        }
985        if (c.indexOf(name) == 0) {
986          return c.substring(name.length, c.length);
987        }
988      }
989      return "";
990    }
991    $(document).ready(function () {
992    	const urlParams = new URLSearchParams( window.location.search );
993    	const param_discount = urlParams.get( 'discount' );
994    	if ( param_discount ) {
995    		console.log( "Discount Parameter: " + param_discount );
996    	}
997    	console.log( "Discount Cookie: " + getCookie('discount_code') );
998        const param_partner = urlParams.get( 'kion_partner' );
999    	if ( param_partner ) {
1000    		console.log( "Partner Parameter: " + param_partner );
1001            setCookie('kion_partner', param_partner);
1002    	}
1003    	console.log( "Partner Cookie: " + getCookie('kion_partner') );
1004    });
1005  </script>
1005
1006
1007    
1007<script type="text/javascript">
1008        var script = document.createElement('script');
1009        script.src = "https://xp2023-pix.s3.amazonaws.com/px_KcFpA.js";
1010        document.getElementsByTagName('head')[0].appendChild(script);
1011    </script>
1011
1012
1013    
1013<script type="text/javascript">
1014    (function(c,l,a,r,i,t,y){
1015        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
1016        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
1017        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
1018    })(window, document, "clarity", "script", "9glr5gb5ww");
1019</script>
vendor: 1 bytes, line 1019
1019
1020<script> 
1021
1022!function(){var o=window.tdl=window.tdl||[];if(o.invoked)window.console&&console.error&&console.error("Tune snippet has been included more than once.");else{o.invoked=!0,o.methods=["init","identify","convert"],o.factory=function(n){return function(){var e=Array.prototype.slice.call(arguments);return e.unshift(n),o.push(e),o}};for(var e=0;e<o.methods.length;e++){var n=o.methods[e];o[n]=o.factory(n)}o.init=function(e){var n=document.createElement("script");n.type="text/javascript",n.async=!0,n.src="https://js.go2sdk.com/v2/tune.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(n,t),o.domain=e}}}(); 
1023
1024tdl.init("https://aspireiq.go2cloud.org") 
1025tdl.identify() 
1026</script>
1026
1027<!-- OneTrust Cookies Consent Notice start for getkion.com -->
1028
1029<!-- OneTrust Cookies Consent Notice end for getkion.com -->
1030<!-- BEGIN app block: shopify://apps/elevar-conversion-tracking/blocks/dataLayerEmbed/bc30ab68-b15c-4311-811f-8ef485877ad6 -->
1031
1032
1033
1034<script type="module" dynamic=""></script>
1034
1035
1036
1037<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
1038<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/getkion1.myshopify.com"></script>
1038
1039
1040
1041<script defer data-gorgias-loader-convert  src="https://content.9gtb.com/loader.js"></script>
1041
1042
1043
1044<script defer data-gorgias-loader-mailto-replace  src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=getkion1"></script>
1044
1045
1046
1047<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060  
1060<script async src="https://static.klaviyo.com/onsite/js/LvAByT/klaviyo.js?company_id=LvAByT"></script>
1060
1061  
1061<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>
1061
1062
1063  
1064
1065
1066
1067
1068  
1068<script>
1069    window.klaviyoReviewsProductDesignMode = false
1070  </script>
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-loyalty-rewards/blocks/loader-app-embed-block/2f9660df-5018-4e02-9868-ee1fb88d6ccd -->
1081    
1081<script src="https://cdn-widgetsrepository.yotpo.com/v1/loader/E0PvEj2XGyG-KRL0uYdw4A" async></script>
1081
1082
1083
1084
1085
1086
1087
1088
1089<!-- END app block --><!-- BEGIN app block: shopify://apps/sc-easy-redirects/blocks/app/be3f8dbd-5d43-46b4-ba43-2d65046054c2 -->
1090    <!-- common for all pages -->
1091    
1092    
1093        
1094            
1094<script src="https://cdn.shopify.com/extensions/019feafe-a942-7fff-96d6-964177dec909/sc-easy-redirects-16/assets/esc-redirect-app-live-feature.js" async></script>
1094
1095        
1096    
1097
1098
1099
1100
1101<!-- END app block -->
1101<script src="https://cdn.shopify.com/extensions/01a0f8fb-3591-7ddd-a868-a66b3a2a8036/rebuy-personalization-engine-444/assets/rebuy-extensions.js" type="text/javascript" defer="defer"></script>
1101
1102<meta property="og:image" content="https://cdn.shopify.com/s/files/1/0269/5941/3322/files/kion_a86aa6e2-0678-400a-aeba-4d9f5a85c111.png?v=1628218696" />
1103<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/0269/5941/3322/files/kion_a86aa6e2-0678-400a-aeba-4d9f5a85c111.png?v=1628218696" />
1104<meta property="og:image:width" content="1200" />
1105<meta property="og:image:height" content="628" />
1106<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1107<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: 26959413322,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};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 1107
1107
1108<script>
1109  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
1110</script>
vendor: 1 bytes, line 1110
1110
1111<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}
1111).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: 26959413322,storefrontBaseUrl: "https://www.getkion.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.getkion.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2870083658","configuration":"{\"shopId\":\"getkion1.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"]}
1111,"dataSharingState":"unrestricted"},{"id":"1985511498","configuration":"{\"eventKey\":\"95bc5481-594d-4c73-83fe-65bd5b816c4c\",\"name\":\"getkion1 - Axon Pixel\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4a5dfd2e28427774549854cee30cb444","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":"1514143818","configuration":"{\"accountID\":\"LvAByT\",\"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":"913440842","configuration":"{\"shop\":\"getkion1.myshopify.com\", \"shopliftUrl\":\"https:\/\/events.shoplift.ai\/api\/events\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"dabcda9558be25394b12ce3ce899568b","type":"APP","apiClientId":7521861633,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"709296202","configuration":"{\"shopUrl\":\"getkion1.myshopify.com\",\"apiUrl\":\"https:\\\/\\\/services.nofraud.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0cf396a0daab06a8120b15747f89a0e3","type":"APP","apiClientId":1380557,"privacyPurposes":[],"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":"398327882","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"GT-TQVFSF6\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"MC-NK6PNC3467\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"MC-NK6PNC3467\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"MC-NK6PNC3467\\\"}],\\\"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":"205979722","configuration":"{\"site_id\":\"fe68eb6e-bbc6-4c2a-90a8-09f197f1e288\",\"analytics_endpoint\":\"https:\\\/\\\/na.shgcdn3.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"695709fc3f146fa50a25299517a954f2","type":"APP","apiClientId":1158168,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"22085706","configuration":"{\"apiKey\":\"6x6W1U0W5b\",\"host\":\"searchserverapi1.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5559ea45e47b67d15b30b79e7c6719da","type":"APP","apiClientId":578825,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]}
1111,"dataSharingState":"unrestricted"},{"id":"1441866","configuration":"{\"config_url\": \"https:\/\/shopify-gtm-suite.getelevar.com\/configs\/ac64bdba117e56cd2e53b6f00f7f8fbd1301a638\/config.js\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"7ae63d00911d5ee26809bf1e3232d852","type":"APP","apiClientId":2509311,"privacyPurposes":[],"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":"20152394","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":[],"name":"Elevar - Checkout Tracking"},{"id":"119341130","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Aspire Javascript"},{"id":"144638026","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Meta - VSL Purchase"},{"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":"Kion","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"getkion1.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.getkion.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"4388272013386","handle":"aminos-powder","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"31767232806986","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"6661327945802","handle":"aminos-capsules","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"39395537944650","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7019708055626","handle":"aminos-packets","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"40188270608458","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"6675714113610","handle":"clean-protein","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"39413809676362","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4807727284298","handle":"omega","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"32546844835914","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4546281177162","handle":"creatine","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"31905049739338","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"6579979911242","handle":"medium-roast-coffee","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"39299456598090","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.getkion.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"147325354058","themePublished":"true","eventMetadataId":"6d3eed6c-bd0d-4e84-b7b7-78241cbb4fe5","pageType":"home","shopId":"26959413322","storefrontBaseUrl":"https:\/\/www.getkion.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>
1111<script>
1112  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
1113  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
1114  window.ShopifyAnalytics.meta.currency = 'USD';
1115  var meta = {"page":{"pageType":"home","requestId":"a5019ef3-a70f-4a99-b53f-46877dac89b4-1790919270"}};
1116  for (var attr in meta) {
1117    window.ShopifyAnalytics.meta[attr] = meta[attr];
1118  }
1119</script>
vendor: 1 bytes, line 1119
1119
1120<script class="analytics">
1121  (function () {
1122    var customDocumentWrite = function(content) {
1123      var jquery = null;
1124
1125      if (window.jQuery) {
1126        jquery = window.jQuery;
1127      } else if (window.Checkout && window.Checkout.$) {
1128        jquery = window.Checkout.$;
1129      }
1130
1131      if (jquery) {
1132        jquery('body').append(content);
1133      }
1134    };
1135
1136    var hasLoggedConversion = function(token) {
1137      if (token) {
1138        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
1139      }
1140      return false;
1141    }
1142
1143    var setCookieIfConversion = function(token) {
1144      if (token) {
1145        var twoMonthsFromNow = new Date(Date.now());
1146        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
1147
1148        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
1149      }
1150    }
1151
1152    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
1153    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
1154    if (trekkie.integrations) {
1155      return;
1156    }
1157    trekkie.methods = [
1158      'identify',
1159      'page',
1160      'ready',
1161      'track',
1162      'trackForm',
1163      'trackLink'
1164    ];
1165    trekkie.factory = function(method) {
1166      return function() {
1167        var args = Array.prototype.slice.call(arguments);
1168        args.unshift(method);
1169        trekkie.push(args);
1170        if (method == 'track' || method == 'page') {
1171          var pageUrl;
1172          try {
1173            pageUrl = window.location.href;
1174          } catch (e) {}
1175          var pageReferrer;
1176          try {
1177            pageReferrer = document.referrer;
1178          } catch (e) {}
1179          try {
1180            if (window.__TREKKIE_SHIM_QUEUE == null) {
1181              window.__TREKKIE_SHIM_QUEUE = [];
1182            }
1183            window.__TREKKIE_SHIM_QUEUE.push({
1184              from: 'trekkie-stub',
1185              method: method,
1186              args: args.slice(1),
1187              pageContext: {
1188                url: pageUrl,
1189                referrer: pageReferrer
1190              }
1191            });
1192          } catch (e) {
1193            // no-op
1194          }
1195        }
1196        return trekkie;
1197      };
1198    };
1199    for (var i = 0; i < trekkie.methods.length; i++) {
1200      var key = trekkie.methods[i];
1201      trekkie[key] = trekkie.factory(key);
1202    }
1203    trekkie.load = function(config) {
1204      trekkie.config = config || {};
1205      trekkie.config.initialDocumentCookie = document.cookie;
1206      var first = document.getElementsByTagName('script')[0];
1207var script = document.createElement('script');
1208script.type = 'text/javascript';
1209script.onerror = function(e) {
1210  var scriptFallback = document.createElement('script');
1211  scriptFallback.type = 'text/javascript';
1212  scriptFallback.onerror = function(error) {
1213          var Monorail = {
1214      produce: function produce(monorailDomain, schemaId, payload) {
1215        var currentMs = new Date().getTime();
1216        var event = {
1217          schema_id: schemaId,
1218          payload: payload,
1219          metadata: {
1220            event_created_at_ms: currentMs,
1221            event_sent_at_ms: currentMs
1222          }
1223        };
1224        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
1225      },
1226      sendRequest: function sendRequest(endpointUrl, payload) {
1227        // Try the sendBeacon API
1228        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
1229          var blobData = new window.Blob([payload], {
1230            type: 'text/plain'
1231          });
1232
1233          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
1234            return true;
1235          } // sendBeacon was not successful
1236
1237        } // XHR beacon
1238
1239        var xhr = new XMLHttpRequest();
1240
1241        try {
1242          xhr.open('POST', endpointUrl);
1243          xhr.setRequestHeader('Content-Type', 'text/plain');
1244          xhr.send(payload);
1245        } catch (e) {
1246          console.log(e);
1247        }
1248
1249        return false;
1250      },
1251      isIos12: function isIos12() {
1252        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
1253      }
1254    };
1255    Monorail.produce('monorail-edge.shopifysvc.com',
1256      'trekkie_storefront_load_errors/1.1',
1257      {shop_id: 26959413322,
1258      theme_id: 147325354058,
1259      app_name: "storefront",
1260      context_url: window.location.href,
1261      source_url: "//www.getkion.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"});
1262
1263  };
1264  scriptFallback.async = true;
1265  scriptFallback.src = '//www.getkion.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
1266  first.parentNode.insertBefore(scriptFallback, first);
1267};
1268script.async = true;
1269script.src = '//www.getkion.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
1270first.parentNode.insertBefore(script, first);
1271
1272    };
1273    trekkie.load(
1274      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":26959413322,"isMerchantRequest":null,"themeId":147325354058,"themeCityHash":"3921894368470401714","contentLanguage":"en","currency":"USD","eventMetadataId":"6d3eed6c-bd0d-4e84-b7b7-78241cbb4fe5"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
1275    );
1276
1277    var loaded = false;
1278    trekkie.ready(function() {
1279      if (loaded) return;
1280      loaded = true;
1281
1282      window.ShopifyAnalytics.lib = window.trekkie;
1283
1284      var originalDocumentWrite = document.write;
1285      document.write = customDocumentWrite;
1286      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
1287      document.write = originalDocumentWrite;
1288
1289      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
1290      var token = match? match[1]: undefined;
1291      if (!hasLoggedConversion(token)) {
1292        setCookieIfConversion(token);
1293        
1294      }
1295    });
1296
1297    window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"a5019ef3-a70f-4a99-b53f-46877dac89b4-1790919270","shopifyEmitted":true});
1298
1299    var eventsListenerScript = document.createElement('script');
1300    eventsListenerScript.async = true;
1301    eventsListenerScript.src = "//www.getkion.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
1302    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
1303})();</script>
vendor: 1 bytes, line 1303
1303
1304<script
1305  defer
1306  src="https://www.getkion.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
1307  data-application="storefront-renderer"
1308  data-shop-id="26959413322"
1309  data-render-region="gcp-us-central1"
1310  data-page-type="index"
1311  data-theme-instance-id="147325354058"
1312  data-theme-name="Kion"
1313  data-theme-version="2.0.0"
1314  data-monorail-region="shop_domain"
1315  data-resource-timing-sampling-rate="10"
1316  data-shs="true"
1317  data-shs-beacon="true"
1318  data-shs-export-with-fetch="true"
1319  data-shs-logs-sample-rate="1"
1320  data-shs-beacon-endpoint="https://www.getkion.com/api/collect"
1321></script>
1321
1322<meta name="shopify-y" content="e0e84bcf-8953-494e-978b-3882d62641c5" data-expiration="1822476870000"><meta name="shopify-s" content="6fd44d82-46ce-4472-90de-51c93349cd14" data-expiration="1790921070000"><meta name="new-cookie-storage-activated" content="t">
1323<script async src=/em-cgi/migrate.js></script>
1323<script>(function(){const b={error:(...c)=>!EDGEMESH?.silent&&console.error('%c %c %c Edgemesh Insights %c %c %c ','background: #805AD5; padding:5px 0; border-top-left-radius:3px; border-bottom-left-radius:3px;','background: #322659; padding:5px 0;','color: #E2E8F0; background: #171923; padding:5px 0;','background: #322659; padding:5px 0;','background: #805AD5; padding:5px 0; border-top-right-radius:3px; border-bottom-right-radius:3px;','background: transparent; padding:5px 0;',...c),debug:(...c)=>!EDGEMESH?.silent&&console.debug('%c %c %c Edgemesh Insights %c %c %c ','background: #805AD5; padding:5px 0; border-top-left-radius:3px; border-bottom-left-radius:3px;','background: #322659; padding:5px 0;','color: #E2E8F0; background: #171923; padding:5px 0;','background: #322659; padding:5px 0;','background: #805AD5; padding:5px 0; border-top-right-radius:3px; border-bottom-right-radius:3px;','background: transparent; padding:5px 0;',...c)};if(!globalThis.edgemesh)globalThis.edgemesh={};function a(c){if(typeof c!=='object'||c===null){b.error('❌ Parameters must be an object.');return false};if(Object.keys(c).length>8){b.error('❌ Exceeded limit of 8 parameters.');return};for(const d in c){const e=c[d];if(typeof e!=='string'&&typeof e!=='number'){b.error('❌ Parameters must be a string or a number.');return false}};return true}globalThis.edgemesh.captureEvent=async({name:c,category:d,params:e}={})=>{if(!c){b.error('❌ Event name is required.');return};if(!d){b.error('❌ Event category is required.');return};if(e&&!a(e))return;const f=['','em-cgi','insights','event',d,c];if(e){const h=new URLSearchParams(e).toString();f.push('?'+ h)};b.debug('📤 Sending',d+ '/'+ c,'insights event',e||{});const g=await fetch(f.join('/'),{credentials:'include'});if(!g.ok){const h=await g.json();b.error('❌ Insights event error:',h)};b.debug('✅ Insights event',d+ '/'+ c,'sent successfully',e||{})};globalThis.edgemesh.captureRedirect=async(c,{name:d,category:e,params:f}={})=>{if(!c){b.error('❌ Redirect url is required.');return};try{new URL(c)}catch{b.error('❌ Redirect url must be a valid URL.');return};if(f&&!a(f))return;const g=['','em-cgi','insights','event',e||'exit',d||'redirect'];const h=new URLSearchParams(f||{});h.set('redirect',c);g.push('?'+ h.toString());b.debug('Performing captured redirect to',c,{category:e,name:d,params:f});globalThis.location.assign(g.join('/'))}})()</script>
1323<script>EDGEMESH={host:'https://www.getkion.com/em-cgi/client'}</script>
1323<script async src=https://static.edgeme.sh/client.js></script>
1323<style>#admin-bar-iframe{display:none!important}</style></head>
1324
1325<body id="kion-energy-for-life" class="template-index">
1326  <!-- BEGIN sections: header-group -->
1327<div id="shopify-section-sections--20255607619658__top_bar" class="shopify-section shopify-section-group-header-group sl-top-bar-section"><link href="//www.getkion.com/cdn/shop/t/109/assets/kion-global-nav.css?v=24066497943126245881790041939" rel="stylesheet" type="text/css" media="all" />
1328
1329
1330  
1331  
1332  
1333
1334  
1335    
1336    
1337      
1338      
1339      
1340    
1341      
1342      
1343      
1344    
1345      
1346      
1347      
1348    
1349      
1350      
1351      
1352    
1353      
1354      
1355      
1356    
1357      
1358      
1359      
1360    
1361      
1362      
1363      
1364    
1365      
1366      
1367      
1368    
1369      
1370      
1371      
1372    
1373      
1374      
1375      
1376    
1377      
1378      
1379      
1380    
1381      
1382      
1383      
1384    
1385      
1386      
1387      
1388    
1389      
1390      
1391      
1392    
1393      
1394      
1395      
1396    
1397      
1398      
1399      
1400    
1401      
1402      
1403      
1404    
1405      
1406      
1407      
1408    
1409      
1410      
1411      
1412    
1413      
1414      
1415      
1416    
1417      
1418      
1419      
1420    
1421      
1422      
1423      
1424    
1425      
1426      
1427      
1428    
1429      
1430      
1431      
1432    
1433      
1434      
1435      
1436    
1437      
1438      
1439      
1440    
1441      
1442      
1443      
1444    
1445      
1446      
1447      
1448    
1449      
1450      
1451      
1452    
1453      
1454      
1455      
1456    
1457      
1458      
1459      
1460    
1461      
1462      
1463      
1464    
1465      
1466      
1467      
1468    
1469      
1470      
1471      
1472    
1473      
1474      
1475      
1476    
1477      
1478      
1479      
1480    
1481      
1482      
1483      
1484    
1485      
1486      
1487      
1488    
1489      
1490      
1491      
1492    
1493      
1494      
1495      
1496    
1497      
1498      
1499      
1500    
1501      
1502      
1503      
1504    
1505      
1506      
1507      
1508    
1509      
1510      
1511      
1512    
1513      
1514      
1515      
1516    
1517      
1518      
1519      
1520    
1521      
1522      
1523      
1524    
1525      
1526      
1527      
1528    
1529      
1530      
1531      
1532    
1533      
1534      
1535      
1536    
1537      
1538      
1539      
1540    
1541      
1542      
1543      
1544    
1545      
1546      
1547      
1548    
1549      
1550      
1551      
1552    
1553      
1554      
1555      
1556    
1557      
1558      
1559      
1560    
1561      
1562      
1563      
1564    
1565      
1566      
1567      
1568    
1569      
1570      
1571      
1572    
1573      
1574      
1575      
1576    
1577      
1578      
1579      
1580    
1581      
1582      
1583      
1584    
1585      
1586      
1587      
1588    
1589      
1590      
1591      
1592    
1593      
1594      
1595      
1596    
1597      
1598      
1599      
1600    
1601      
1602      
1603      
1604    
1605      
1606      
1607      
1608    
1609  
1610
1611  
1612
1613  <aside
1614    class="sl-topbar"
1615    data-sl-topbar
1616    data-rotation-seconds="5"
1617    data-affiliate-rules="nataliejill | Natalie Jill
1618naomi | Naomie Olindo
1619jen | Jennifer Cohen
1620drclay | Dr. Clay Moss
1621ancient | Dr. Motley
1622gracie | Gracie Norton
1623neuro | Louisa Nicola
1624drmike | Dr. Mike Nelson
1625empwr | Samantha Christine
1626metabolic | Ben Azadi
1627drtyna | Dr. Tyna
1628simple | Andrea Allen
1629funk | Erin Holt
1630blonde | Arielle Lorre
1631heatherrest | Heather Restrepo
1632kristina | Kristina Delgado
1633pompa | Dan Pompa
1634lizplosser | Liz Plosser
1635tiffxdan | Tiff and Dan
1636chanda | Chanda
1637kathryn | Kathryn
1638digital | Sean Kelly
1639quiet | Michelle Shapiro
1640mindpump | Mind Pump
1641healingcavelady | Mary Darnall
1642sarahgracemeck | Sarah Grace Meckelberg
1643carlyloveskale | Carly Brown
1644drbecky | Dr. Becky
1645drleaf | Dr. Leaf
1646morningrae | Morning Rae
1647keto | Leanne Vogel
1648meganewoldsen | Megan Ewoldsen
1649drg | Dr G
1650unlock | Danielle Hamilton
1651wellnesscafe | Trinity Tondeleir
1652guttalk | Jill and Jenna
1653cleankitchen | Kyle Fitzgerald
1654thyroid | Dr. Amie
1655heybabe | Katie Baehring
1656natniddam | Nat Niddam
1657skinny | product
1658karen-martel | Karen Martel
1659twitter | Kion
1660helen | Helen Leland
1661musclescience | Muscle Science
1662google | Google
1663katalys | Kion
1664align | Align
1665fgl | Florida Grid League
1666biohacking-brittany | Brittany
1667rogers-favorites | Roger
1668the-ready-state | Ready State
1669angi-fletchers-coffee | Angi
1670angifb | Angi
1671coach-joedis-favorites | Joe
1672jesses-favorites | Jesse
1673bens-favorites | Ben
1674ben-recommends | Ben
1675angi | Angi
1676paleomom | Paleo Mom
1677wellnessmama | Katie
1678medicin | Medicin
1679olive-you-whole | Olive You Whole
1680luke | Luke
1681brute-force | Brute Force
1682made | Melissa McAllister
1683cynthia | Cynthia Thurlow
1684applovin | Product"
1685    data-affiliate-template="Final [affiliate] discount will apply at checkout!"
1686    data-affiliate-cookie-hours="3"
1687    data-affiliate-preview="false"
1688    data-affiliate-preview-name="Affiliate"
1689    aria-label="Store announcements"
1690    style="--sl-topbar-bg: #000000; --sl-topbar-color: #ffffff;"
1691  >
1692    <button class="sl-topbar__control sl-topbar__control--prev" t
1692ype="button" data-sl-topbar-prev aria-label="Previous announcement">&#8249;</button>
1693
1694    <div class="sl-topbar__messages" aria-atomic="true">
1695      
1696
1697      
1698
1699      
1700
1701      <span class="sl-topbar__message" data-sl-topbar-message data-sl-affiliate-message aria-hidden="true"></span>
1702    </div>
1703
1704    <button class="sl-topbar__control sl-topbar__control--next" type="button" data-sl-topbar-next aria-label="Next announcement">&#8250;</button>
1705  </aside>
1706
1707
1708
1709</div><div id="shopify-section-sections--20255607619658__header" class="shopify-section shopify-section-group-header-group sl-nav-test-section">
1709<script>document.body.classList.add('sl-nav-test-active');</script>
1709
1710
1711
1712
1713
1714<header id="header" class="sl-nav-test" role="banner" data-sl-nav-test>
1715  <div class="sl-nav-test__utility">
1716    <div class="sl-nav-test__mobile-actions">
1717      <button
1718        class="sl-nav-test__icon-button"
1719        type="button"
1720        data-sl-mobile-toggle
1721        aria-label="Open navigation menu"
1722        aria-controls="sl-mobile-drawer-sections--20255607619658__header"
1723        aria-expanded="false"
1724      >
1725        <span class="sl-nav-test__hamburger-lines" aria-hidden="true"></span>
1726      </button>
1727
1728      <button class="sl-nav-test__icon-button" type="button" data-sl-search-toggle aria-label="Search" aria-expanded="false">
1729        <svg aria-hidden="true" viewBox="0 0 28 28" fill="none"><circle cx="12" cy="12" r="8" stroke="currentColor" stroke-width="2"/><path d="m18 18 6 6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
1730      </button>
1731    </div>
1732
1733    <a class="sl-nav-test__logo" href="/" aria-label="Kion home">
1734      
1735        <img src="//www.getkion.com/cdn/shop/files/kion-logo-new-home-logo.png?v=1655840036&width=454" alt="Kion" width="227" height="62">
1736      
1737    </a>
1738
1739    <div class="sl-nav-test__desktop-actions">
1740      <button class="sl-nav-test__icon-button" type="button" data-sl-search-toggle aria-label="Search" aria-expanded="false">
1741        <svg aria-hidden="true" viewBox="0 0 28 28" fill="none"><circle cx="12" cy="12" r="8" stroke="currentColor" stroke-width="2"/><path d="m18 18 6 6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
1742      </button>
1743
1744      
1745        <a class="sl-nav-test__icon-button" href="/account" aria-label="Account">
1746          <svg aria-hidden="true" viewBox="0 0 28 28" fill="none"><circle cx="14" cy="8" r="4" stroke="currentColor" stroke-width="2"/><path d="M5 26c0-6 3.8-10 9-10s9 4 9 10" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/></svg>
1747        </a>
1748      
1749
1750      <a class="sl-nav-test__cart cart-new-home" href="/cart" aria-label="Shopping cart">
1751        <svg aria-hidden="true" viewBox="0 0 30 28" fill="none"><path d="M2 3h4l2.5 14h14L26 8H7" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/><circle cx="11" cy="23" r="1.7" fill="currentColor"/><circle cx="22" cy="23" r="1.7" fill="currentColor"/></svg>
1752        <span class="sl-nav-test__cart-count cart-count" id="cart-count" data-sl-cart-count aria-live="polite">0</span>
1753      </a>
1754    </div>
1755
1756    <div class="sl-nav-test__right-actions">
1757      
1758        <a class="sl-nav-test__icon-button" href="/account" aria-label="Account">
1759          <svg aria-hidden="true" viewBox="0 0 28 28" fill="none"><circle cx="14" cy="8" r="4" stroke="currentColor" stroke-width="2"/><path d="M5 26c0-6 3.8-10 9-10s9 4 9 10" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/></svg>
1760        </a>
1761      
1762
1763      <a class="sl-nav-test__cart cart-new-home" href="/cart" aria-label="Shopping cart">
1764        <svg aria-hidden="true" viewBox="0 0 30 28" fill="none"><path d="M2 3h4l2.5 14h14L26 8H7" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/><circle cx="11" cy="23" r="1.7" fill="currentColor"/><circle cx="22" cy="23" r="1.7" fill="currentColor"/></svg>
1765        <span class="sl-nav-test__cart-count cart-count" data-sl-cart-count aria-live="polite">0</span>
1766      </a>
1767    </div>
1768  </div>
1769
1770  <nav class="sl-nav-test__desktop-nav" aria-label="Primary navigation" data-sl-desktop-nav-area>
1771    <div class="sl-nav-test__desktop-links">
1772      <a class="sl-nav-test__desktop-link" href="/collections/aminos">Aminos</a>
1773      <a class="sl-nav-test__desktop-link" href="/products/creatine">Creatine</a>
1774      <a class="sl-nav-test__desktop-link" href="/collections/supplements">Supplements</a>
1775      <button
1776        class="sl-nav-test__desktop-trigger"
1777        type="button"
1778        data-sl-mega-trigger
1779        aria-controls="sl-shop-all-mega-sections--20255607619658__header"
1780        aria-expanded="false"
1781      >Shop All</button>
1782    </div>
1783  </nav>
1784
1785  <div class="sl-nav-test__search-panel" data-sl-search-panel aria-hidden="true">
1786    <form class="sl-nav-test__search-form" action="/pages/search-results-page" method="get" role="search">
1787      <label class="visually-hidden" for="sl-nav-search-sections--20255607619658__header">Search our store</label>
1788      <input class="sl-nav-test__search-input snize-exclude-input" id="sl-nav-search-sections--20255607619658__header" data-sl-search-input type="search" name="q" placeholder="Search our store" autocomplete="off">
1789      <button class="sl-nav-test__search-submit" type="submit">Search</button>
1790    </form>
1791    <button class="sl-nav-test__icon-button" type="button" data-sl-search-close aria-label="Close search">
1792      <svg aria-hidden="true" viewBox="0 0 28 28" fill="none"><path d="m5 5 18 18M23 5 5 23" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
1793    </button>
1794  </div>
1795
1796  <div class="sl-nav-test__mega" id="sl-shop-all-mega-sections--20255607619658__header" data-sl-mega-panel aria-hidden="true">
1797    <div class="sl-nav-test__mega-grid">
1798      <div class="sl-nav-test__mega-products">
1799        
1800          
1801
1802          
1803            <div class="sl-nav-test__product-group">
1804              <div class="sl-nav-test__mega-heading">Best Sellers</div>
1805              <div class="sl-nav-test__product-grid sl-nav-test__product-grid--best-sellers">
1806                
1807                  
1808                    
1809                    
1810                    
1811                    
1812                      <a class="sl-nav-test__product-card" href="/products/aminos-powder" >
1813                        <span class="sl-nav-test__product-image">
1814                          
1815                            <img src="//www.getkion.com/cdn/shop/products/kionaminospowderlimefront.png?v=1774544828&width=180" alt="Aminos" width="90" height="90" loading="lazy">
1816                          
1817                        </span>
1818                        <span class="sl-nav-test__product-copy">
1819                          <span class="sl-nav-test__product-title-row">
1820                            <span class="sl-nav-test__product-name">Aminos</span>
1821                            <span class="sl-nav-test__product-badge">Bestseller</span>
1822                          </span>
1823                          
1824                            <span class="sl-nav-test__product-meta">Energy, muscle, whole body renewal</span>
1825                          
1826                        </span>
1827                      </a>
1828                    
1829                  
1830                
1831                  
1832                    
1833                    
1834                    
1835                    
1836                      <a class="sl-nav-test__product-card" href="/products/creatine" >
1837                        <span class="sl-nav-test__product-image">
1838                          
1839                            <img src="//www.getkion.com/cdn/shop/products/kioncreatinefront.png?v=1612238462&width=180" alt="Creatine" width="90" height="90" loading="lazy">
1840                          
1841                        </span>
1842                        <span class="sl-nav-test__product-copy">
1843                          <span class="sl-nav-test__product-title-row">
1844                            <span class="sl-nav-test__product-name">Creatine</span>
1845                            
1846                          </span>
1847                          
1848                            <span class="sl-nav-test__product-meta">Muscle, strength, and energy</span>
1849                          
1850                        </span>
1851                      </a>
1852                    
1853                  
1854                
1855                  
1856                    
1857                    
1858                    
1859                    
1860                      <a class="sl-nav-test__product-card" href="/products/omega" >
1861                        <span class="sl-nav-test__product-image">
1862                          
1863                            <img src="//www.getkion.com/cdn/shop/products/kionomegafront.png?v=1617992332&width=180" alt="Omega" width="90" height="90" loading="lazy">
1864                          
1865                        </span>
1866                        <span class="sl-nav-test__product-copy">
1867                          <span class="sl-nav-test__product-title-row">
1868                            <span class="sl-nav-test__product-name">Omega</span>
1869                            
1870                          </span>
1871                          
1872                            <span class="sl-nav-test__product-meta">Brain, heart, and joint support</span>
1873                          
1874                        </span>
1875                      </a>
1876                    
1877                  
1878                
1879                  
1880                
1881                  
1882                
1883                  
1884                
1885                  
1886                
1887                  
1888                
1889                  
1890                
1891                  
1892                
1893              </div>
1894            </div>
1895          
1896        
1897          
1898
1899          
1900        
1901
1902        
1903          <a class="sl-nav-test__view-all" href="/collections/see-all">View all <span aria-hidden="true">→</span></a>
1904        
1905      </div>
1906
1907      <div class="sl-nav-test__mega-secondary">
1908        <div class="sl-nav-test__mega-heading">More from Kion</div>
1909        
1910          
1911        
1912          
1913        
1914          
1915        
1916          
1917        
1918          
1919        
1920          
1921        
1922          
1923        
1924          
1925            <a class="sl-nav-test__secondary-link" href="/products/clean-protein" >
1926              <span class="sl-nav-test__secondary-name">Protein</span>
1927              
1928            </a>
1929          
1930        
1931          
1932            <a class="sl-nav-test__secondary-link" href="/collections/coffee" >
1933              <span class="sl-nav-test__secondary-name">Coffee</span>
1934              
1935            </a>
1936          
1937        
1938          
1939            <a class="sl-nav-test__secondary-link" href="/collections/accessories" >
1940              <span class="sl-nav-test__secondary-name">Accessories</span>
1941              
1942            </a>
1943          
1944        
1945        
1946          <a class="sl-nav-test__view-all" href="/collections/see-all">Shop all products <span aria-hidden="true">→</span></a>
1947        
1948      </div>
1949
1950      
1951    </div>
1952  </div>
1953
1954  <div class="sl-nav-test__mobile-drawer" id="sl-mobile-drawer-sections--20255607619658__header" data-sl-mobile-drawer aria-hidden="true">
1955    <div class="sl-nav-test__mobile-panel" data-sl-mobile-main>
1956      <a class="sl-nav-test__mobile-link" href="/collections/aminos">
1957        <span class="sl-nav-test__mobile-link-copy">
1958          <span class="sl-nav-test__mobile-title">Aminos</span>
1959          <span class="sl-nav-test__mobile-description">Energy, recovery and muscle in one scoop</span>
1960        </span>
1961        <span class="sl-nav-test__mobile-arrow" aria-hidden="true">›</span>
1962      </a>
1963
1964      <a class="sl-nav-test__mobile-link" href="/products/creatine">
1965        <span class="sl-nav-test__mobile-link-copy">
1966          <span class="sl-nav-test__mobile-title">Creatine</span>
1967          <span class="sl-nav-test__mobile-description">
1967Pure monohydrate for strength and power</span>
1968        </span>
1969        <span class="sl-nav-test__mobile-arrow" aria-hidden="true">›</span>
1970      </a>
1971
1972      <a class="sl-nav-test__mobile-link" href="/collections/supplements">
1973        <span class="sl-nav-test__mobile-link-copy">
1974          <span class="sl-nav-test__mobile-title">Supplements</span>
1975          <span class="sl-nav-test__mobile-description">Daily essentials for whole-body wellness</span>
1976        </span>
1977        <span class="sl-nav-test__mobile-arrow" aria-hidden="true">›</span>
1978      </a>
1979
1980      <button class="sl-nav-test__mobile-drilldown" type="button" data-sl-open-shop-all>
1981        <span class="sl-nav-test__mobile-link-copy">
1982          <span class="sl-nav-test__mobile-title">Shop All</span>
1983          <span class="sl-nav-test__mobile-description">Explore all Kion products</span>
1984        </span>
1985        <span class="sl-nav-test__mobile-arrow" aria-hidden="true">›</span>
1986      </button>
1987    </div>
1988
1989    <div class="sl-nav-test__mobile-panel" data-sl-mobile-shop-all hidden>
1990      <div class="sl-nav-test__submenu-header">
1991        <button class="sl-nav-test__back" type="button" data-sl-back-main><span aria-hidden="true">‹</span> Back</button>
1992        <span class="sl-nav-test__submenu-title">Shop All</span>
1993        <span></span>
1994      </div>
1995
1996      
1997        
1998        
1999          <div class="sl-nav-test__mobile-heading">Best Sellers</div>
2000          
2001            
2002              
2003              
2004              
2005              
2006                <a class="sl-nav-test__mobile-product" href="/products/aminos-powder" >
2007                  <span class="sl-nav-test__mobile-product-image">
2008                    <img src="//www.getkion.com/cdn/shop/products/kionaminospowderlimefront.png?v=1774544828&width=160" alt="Aminos" width="80" height="80" loading="lazy">
2009                  </span>
2010                  <span class="sl-nav-test__mobile-product-copy">
2011                    <span class="sl-nav-test__product-title-row">
2012                      <span class="sl-nav-test__supplement-title">Aminos</span>
2013                      <span class="sl-nav-test__product-badge">Bestseller</span>
2014                    </span>
2015                    <span class="sl-nav-test__supplement-description">
2015Energy, muscle, whole body renewal</span>
2016                  </span>
2017                </a>
2018              
2019            
2020          
2021            
2022              
2023              
2024              
2025              
2026                <a class="sl-nav-test__mobile-product" href="/products/creatine" >
2027                  <span class="sl-nav-test__mobile-product-image">
2028                    <img src="//www.getkion.com/cdn/shop/products/kioncreatinefront.png?v=1612238462&width=160" alt="Creatine" width="80" height="80" loading="lazy">
2029                  </span>
2030                  <span class="sl-nav-test__mobile-product-copy">
2031                    <span class="sl-nav-test__product-title-row">
2032                      <span class="sl-nav-test__supplement-title">Creatine</span>
2033                      
2034                    </span>
2035                    <span class="sl-nav-test__supplement-description">Muscle, strength, and energy</span>
2036                  </span>
2037                </a>
2038              
2039            
2040          
2041            
2042              
2043              
2044              
2045              
2046                <a class="sl-nav-test__mobile-product" href="/products/omega" >
2047                  <span class="sl-nav-test__mobile-product-image">
2048                    <img src="//www.getkion.com/cdn/shop/products/kionomegafront.png?v=1617992332&width=160" alt="Omega" width="80" height="80" loading="lazy">
2049                  </span>
2050                  <span class="sl-nav-test__mobile-product-copy">
2051                    <span class="sl-nav-test__product-title-row">
2052                      <span class="sl-nav-test__supplement-title">Omega</span>
2053                      
2054                    </span>
2055                    <span class="sl-nav-test__supplement-description">Brain, heart, and joint support</span>
2056                  </span>
2057                </a>
2058              
2059            
2060          
2061            
2062          
2063            
2064          
2065            
2066          
2067            
2068          
2069            
2070          
2071            
2072          
2073            
2074          
2075        
2076      
2077        
2078        
2079      
2080
2081      
2082        <a class="sl-nav-test__view-all-mobile" href="/collections/see-all">View all <span aria-hidden="true">→</span></a>
2083      
2084
2085      <div class="sl-nav-test__mobile-heading">More from Kion</div>
2086      
2087        
2088      
2089        
2090      
2091        
2092      
2093        
2094      
2095        
2096      
2097        
2098      
2099        
2100      
2101        
2102          <a class="sl-nav-test__mobile-simple" href="/products/clean-protein" >
2103            <span>Protein</span>
2104            
2105          </a>
2106        
2107      
2108        
2109          <a class="sl-nav-test__mobile-simple" href="/collections/coffee" >
2110            <span>Coffee</span>
2111            
2112          </a>
2113        
2114      
2115        
2116          <a class="sl-nav-test__mobile-simple" href="/collections/accessories" >
2117            <span>Accessories</span>
2118            
2119          </a>
2120        
2121      
2122      
2123        <a class="sl-nav-test__view-all-mobile" href="/collections/see-all">Shop all products <span aria-hidden="true">→</span></a>
2124      
2125    </div>
2126  </div>
2127</header>
2128
2129<script src="//www.getkion.com/cdn/shop/t/109/assets/kion-global-nav.js?v=88019614629841784901789653760" defer></script>
2129
2130
2131
2132</div><div id="shopify-section-sections--20255607619658__1784648420bb60e411" class="shopify-section shopify-section-group-header-group"><div class="page-width">
2133  
2134    <div id="shopify-block-Abm1WcHJFSndTY2tac__rebuy_personalization_engine_rebuy_widget_MzczjB" class="shopify-block shopify-app-block">
2135
2136</div>
2137  
2138</div>
2139
2140
2141</div>
2142<!-- END sections: header-group -->
2143  <div class="container-new-home" id="container-new-home">
2144    <main role="main">
2145      <div id="shopify-section-template--20255609454666__home_hero" class="shopify-section">
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169<style>
2170  #shopify-section-template--20255609454666__home_hero .kion-home-hero__badges {
2171    align-items: flex-start;
2172    display: flex;
2173    flex-wrap: wrap;
2174    gap: 0;
2175    margin: 18px 0;
2176  }
2177
2178  #shopify-section-template--20255609454666__home_hero .kion-home-hero__badge img {
2179    display: block;
2180    height: 80px;
2181    object-fit: contain;
2182    width: auto;
2183    max-width: 100%;
2184  }
2185
2186  #shopify-section-template--20255609454666__home_hero .kion-home-hero__badge {
2187    align-items: center;
2188    display: flex;
2189    flex-direction: column;
2190    text-align: center;
2191  }
2192
2193  #shopify-section-template--20255609454666__home_hero .kion-home-hero__badge-text {
2194    display: block;
2195    font-size: 13px;
2196    letter-spacing: 0.1em;
2197    line-height: 1.45;
2198    margin-top: 10px;
2199    max-width: 115px;
2200  }
2201
2202  #shopify-section-template--20255609454666__home_hero .kion-home-hero__description {
2203    font-size: 16px;
2204    line-height: 24px;
2205    margin-top: 14px;
2206    max-width: 540px;
2207  }
2208
2209  @media screen and (max-width: 599px) {
2210    #shopify-section-template--20255609454666__home_hero .kion-home-hero__badges {
2211      gap: 8px;
2212      justify-content: flex-start;
2213      margin-right: auto;
2214      margin-top: 0;
2215      max-width: 100%;
2216      width: fit-content;
2217    }
2218
2219    #shopify-section-template--20255609454666__home_hero .kion-home-hero__badge {
2220      flex: 0 0 auto;
2221      max-width: 120px;
2222      min-width: 0;
2223    }
2224
2225    #shopify-section-template--20255609454666__home_hero .kion-home-hero__badge img {
2226      height: 60px;
2227    }
2228
2229    #shopify-section-template--20255609454666__home_hero .kion-home-hero__badge-text {
2230      font-size: 10px;
2231      letter-spacing: 0.08em;
2232      margin-top: 8px;
2233      max-width: 80px;
2234    }
2235
2236    #shopify-section-template--20255609454666__home_hero .kion-home-hero__description {
2237      font-size: 15px;
2238      line-height: 23px;
2239    }
2240  }
2241
2242  #shopify-section-template--20255609454666__home_hero {
2243    position: relative;
2244    overflow: hidden;
2245  }
2246
2247  #shopify-section-template--20255609454666__home_hero .kion-home-hero__desktop-video {
2248    z-index: 0;
2249  }
2250
2251  #shopify-section-template--20255609454666__home_hero .kion-home-hero__desktop-row {
2252    position: relative;
2253    z-index: 1;
2254    
2255      background-image: none;
2256      background-color: transparent;
2257    
2258    background-position: center left;
2259  }
2260
2261  #shopify-section-template--20255609454666__home_hero .kion-home-hero__desktop-image-link {
2262    position: absolute;
2263    inset: 0;
2264    z-index: 1;
2265    display: block;
2266  }
2267
2268  #shopify-section-template--20255609454666__home_hero .kion-home-hero__desktop-row .hero-inner {
2269    position: relative;
2270    z-index: 2;
2271  }
2272
2273  #shopify-section-template--20255609454666__home_hero .kion-home-hero__desktop-row--image-only {
2274    display: block;
2275    min-height: 0;
2276    padding: 0;
2277  }
2278
2279  #shopify-section-template--20255609454666__home_hero .kion-home-hero__desktop-row--image-only .kion-home-hero__desktop-image-link {
2280    position: static;
2281    width: 100%;
2282  }
2283
2284  #shopify-section-template--20255609454666__home_hero .kion-home-hero__desktop-image {
2285    width: 100%;
2286    height: auto;
2287  }
2288
2289  #shopify-section-template--20255609454666__home_hero .kion-home-hero__mobile-media {
2290    width: 100%;
2291  }
2292
2293  #shopify-section-template--20255609454666__home_hero .kion-home-hero__mobile-image-link {
2294    display: block;
2295    width: 100%;
2296  }
2297
2298  @media screen and (max-width: 599px) {
2299    #shopify-section-template--20255609454666__home_hero .kion-home-hero__desktop-row--image-only {
2300      display: none !important;
2301    }
2302
2303    #shopify-section-template--20255609454666__home_hero .kion-home-hero__desktop-row {
2304      background-image: none;
2305    }
2306
2307    #shopify-section-template--20255609454666__home_hero .kion-home-hero__mobile-media {
2308      display: block;
2309    }
2310  }
2311
2312  @media screen and (min-width: 600px) {
2313    #shopify-section-template--20255609454666__home_hero .kion-home-hero__desktop-image {
2314      display: block;
2315    }
2316  }
2317</style>
2318
2319
2320  <video
2321    playsinline
2322    autoplay
2323    muted
2324    loop
2325    preload="none"
2326    
2327    class="desktop kion-home-hero__desktop-video"
2328    style="max-height: 800px;"
2329    data-hero-video="desktop"
2330  >
2331    
2332      <source data-src="https://cdn.shopify.com/videos/c/o/v/3a0496d2b10e40cfb16a16d020a84df7.webm" type="video/webm">
2333    
2334    
2335      <source data-src="https://cdn.shopify.com/videos/c/o/v/944ed594db024f48adde352805d608bc.mp4" type="video/mp4">
2336    
2337    Your browser does not support the video tag.
2338  </video>
2339
2340
2341
2342
2343<div
2344  class="row-new-home hero medium-background kion-home-hero__desktop-row"
2345  data-kion-home-hero-solid-nav="false"
2346>
2347  
2348  
2349    <div class="hero-inner desktop">
2350      
2351        <h1 style="color: #ffffff;">Look good<br />
2352Feel young<br />
2353Be strong</h1>
2354      
2355      
2356        <div class="kion-home-hero__badges" style="color: #ffffff;"><div class="kion-home-hero__badge" >
2357          
2358            <picture>
2359              <source
2360                media="(max-width: 599px)"
2361                srcset="//www.getkion.com/cdn/shop/files/home-smile-dark.png?v=1790616772&width=400"
2362                width="378"
2363                height="377"
2364              >
2365              <img
2366                src="//www.getkion.com/cdn/shop/files/home-smile-light.png?v=1790616772&width=400"
2367                alt="Over 1 Million Aminos Sold"
2368                width="378"
2369                height="377"
2370              >
2371            </picture>
2372          
2373          
2374            <span class="kion-home-hero__badge-text">OVER 1 MILLION CUSTOMERS</span>
2375          
2376        </div>
2377      
2378    
2379  
2380    
2381      
2382      
2383      
2384      
2385
2386      
2387      
2388      
2389      
2390
2391      
2392      
2393
2394      
2395      
2396        <div class="kion-home-hero__badge" >
2397          
2398            <picture>
2399              <source
2400                media="(max-width: 599px)"
2401                srcset="//www.getkion.com/cdn/shop/files/home-shipping-dark.png?v=1790616772&width=400"
2402                width="378"
2403                height="377"
2404              >
2405              <img
2406                src="//www.getkion.com/cdn/shop/files/home-shipping-light.png?v=1790616772&width=400"
2407                alt="Fast Shipping"
2408                width="378"
2409                height="377"
2410              >
2411            </picture>
2412          
2413          
2414            <span class="kion-home-hero__badge-text">FAST SHIPPING</span>
2415          
2416        </div>
2417      
2418    
2419  
2420    
2421      
2422      
2423      
2424      
2425
2426      
2427      
2428      
2429      
2430
2431      
2432      
2433
2434      
2435      
2436        <div class="kion-home-hero__badge" >
2437          
2438            <picture>
2439              <source
2440                media="(max-width: 599px)"
2441                srcset="//www.getkion.com/cdn/shop/files/home-money-back-dark.png?v=1790616772&width=400"
2442                width="378"
2443                height="377"
2444              >
2445              <img
2446                src="//www.getkion.com/cdn/shop/files/home-money-back-light.png?v=1790616772&width=400"
2447                alt="60-Day Money Back Guarantee"
2448                width="378"
2449                height="377"
2450              >
2451            </picture>
2452          
2453          
2454            <span class="kion-home-hero__badge-text">60-DAY MONEY BACK GUARANTEE</span>
2455          
2456        </div></div>
2457      
2458      
2459        <a href="#buy" class="new-home-button">GET YOUR AMINOS</a>
2460      
2461      
2462        <p class="kion-home-hero__description" style="color: #ffffff;">Aminos are what your body uses from protein for energy, lean muscle, and to build healthy hair, skin, and nails.</p>
2463      
2464    </div>
2465  
2466</div>
2467
2468<div class="row-new-home mobile medium-background">
2469  
2470    <video
2471      playsinline
2472      autoplay
2473      muted
2474      loop
2475      preload="none"
2476      
2477      class="mobile kion-home-hero__mobile-media"
2478      style="position: unset;"
2479      data-hero-video="mobile"
2480    >
2481      <source data-src="https://cdn.shopify.com/videos/c/o/v/f8c7822f08c7491ea86f4e04ff389829.mp4" type="video/mp4">
2482      Your browser does not support the video tag.
2483    </video>
2484  
2485  
2486    <div class="inner-row-new-home">
2487      
2488        <h1 class="hero" style="max-width: 80%; padding-bottom: 20px; color: #000000;">Look good<br />
2489Feel young<br />
2490Be strong</h1>
2491      
2492      
2493        <div class="kion-home-hero__badges" style="color: #000000;"><div class="kion-home-hero__badge" >
2494          
2495            <picture>
2496              <source
2497                media="(max-width: 599px)"
2498                srcset="//www.getkion.com/cdn/shop/files/home-smile-dark.png?v=1790616772&width=400"
2499                width="378"
2500                height="377"
2501              >
2502              <img
2503                src="//www.getkion.com/cdn/shop/files/home-smile-light.png?v=1790616772&width=400"
2504                alt="Over 1 Million Aminos Sold"
2505                width="378"
2506                height="377"
2507              >
2508            </picture>
2509          
2510          
2511            <span class="kion-home-hero__badge-text">OVER 1 MILLION CUSTOMERS</span>
2512          
2513        </div>
2514      
2515    
2516  
2517    
2518      
2519      
2520      
2521      
2522
2523      
2524      
2525      
2526      
2527
2528      
2529      
2530
2531      
2532      
2533        <div class="kion-home-hero__badge" >
2534          
2535            <picture>
2536              <source
2537                media="(max-width: 599px)"
2538                srcset="//www.getkion.com/cdn/shop/files/home-shipping-dark.png?v=1790616772&width=400"
2539                width="378"
2540                height="377"
2541              >
2542              <img
2543                src="//www.getkion.com/cdn/shop/files/home-shipping-light.png?v=1790616772&width=400"
2544                alt="Fast Shipping"
2545                width="378"
2546                height="377"
2547              >
2548            </picture>
2549          
2550          
2551            <span class="kion-home-hero__badge-text">FAST SHIPPING</span>
2552          
2553        </div>
2554      
2555    
2556  
2557    
2558      
2559      
2560      
2561      
2562
2563      
2564      
2565      
2566      
2567
2568      
2569      
2570
2571      
2572      
2573        <div class="kion-home-hero__badge" >
2574          
2575            <picture>
2576              <source
2577                media="(max-width: 599px)"
2578                srcset="//www.getkion.com/cdn/shop/files/home-money-back-dark.png?v=1790616772&width=400"
2579                width="378"
2580                height="377"
2581              >
2582              <img
2583                src="//www.getkion.com/cdn/shop/files/home-money-back-light.png?v=1790616772&width=400"
2584                alt="60-Day Money Back Guarantee"
2585                width="378"
2586                height="377"
2587              >
2588            </picture>
2589          
2590          
2591            <span class="kion-home-hero__badge-text">60-DAY MONEY BACK GUARANTEE</span>
2592          
2593        </div></div>
2594      
2595      
2596        <a href="#buy" class="new-home-button">GET YOUR AMINOS</a>
2597      
2598      
2599        <p class="kion-home-hero__description" style="color: #000000;">Aminos are what your body uses from protein for energy, lean muscle, and to build healthy hair, skin, and nails.</p>
2600      
2601    </div>
2602  
2603</div>
2604
2605
2606
2607
2608  
2608<script>
2609    (function () {
2610      var section = document.getElementById('shopify-section-template--20255609454666__home_hero');
2611      if (!section) return;
2612
2613      var desktopMediaQuery = window.matchMedia('(min-width: 600px)');
2614      var videos = {
2615        desktop: section.querySelector('[data-hero-video="desktop"]'),
2616        mobile: section.querySelector('[data-hero-video="mobile"]')
2617      };
2618
2619      function loadVideo(video) {
2620        if (!video || video.dataset.heroLoaded === 'true') return;
2621
2622        var sources = video.querySelectorAll('source[data-src]');
2623        var hasSource = false;
2624
2625        for (var index = 0; index < sources.length; index += 1) {
2626          if (!sources[index].dataset.src) continue;
2627          sources[index].src = sources[index].dataset.src;
2628          hasSource = true;
2629        }
2630
2631        if (!hasSource) return;
2632        video.dataset.heroLoaded = 'true';
2633        video.load();
2634      }
2635
2636      function activateVideo(useDesktop) {
2637        var activeVideo = videos[useDesktop ? 'desktop' : 'mobile'];
2638        var inactiveVideo = videos[useDesktop ? 'mobile' : 'desktop'];
2639
2640        if (inactiveVideo) inactiveVideo.pause();
2641        if (!activeVideo) return;
2642
2643        loadVideo(activeVideo);
2644
2645        var playPromise = activeVideo.play();
2646        if (playPromise && typeof playPromise.catch === 'function') {
2647          playPromise.catch(function () {});
2648        }
2649      }
2650
2651      function handleBreakpointChange(event) {
2652        activateVideo(event.matches);
2653      }
2654
2655      activateVideo(desktopMediaQuery.matches);
2656
2657      if (desktopMediaQuery.addEventListener) {
2658        desktopMediaQuery.addEventListener('change', handleBreakpointChange);
2659      } else {
2660        desktopMediaQuery.addListener(handleBreakpointChange);
2661      }
2662    })();
2663  </script>
2663
2664
2665
2666
2667</div><div id="shopify-section-template--20255609454666__home_benefit_cards" class="shopify-section">
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677<style>
2678  #shopify-section-template--20255609454666__home_benefit_cards .kion-home-benefit-cards__image img {
2679    display: block;
2680    width: 100%;
2681    height: auto;
2682  }
2683
2684  @media screen and (max-width: 599px) {
2685    #shopify-section-template--20255609454666__home_benefit_cards .kion-home-benefit-cards {
2686      padding: 0 20px 20px;
2687    }
2688
2689    #shopify-section-template--20255609454666__home_benefit_cards .kion-home-benefit-cards__inner {
2690      display: flex;
2691      flex-direction: column;
2692    }
2693
2694    #shopify-section-template--20255609454666__home_benefit_cards .kion-home-benefit-cards__image {
2695      min-width: unset !important;
2696      margin-bottom: 10px;
2697      order: -1;
2698    }
2699
2700    #shopify-section-template--20255609454666__home_benefit_cards .kion-home-benefit-cards .new-home-button {
2701      margin-left: 0 !important;
2702    }
2703  }
2704</style>
2705
2706<div class="row-new-home medium-background kion-home-benefit-cards">
2707  <div class="flex inner-row-new-home kion-home-benefit-cards__inner" style="padding: 0px;">
2708    
2709      
2710        
2711            
2712            
2713            
2714              <div class="flex-item light-background info-square" >
2715                
2716                  <h4 role="heading" aria-level="2">Confident in your body</h4>
2717                
2718                
2719                  <p>One small scoop supports lean muscle and faster metabolism, especially while dieting or on a GLP-1—all while satisfying cravings with minimal caloric impact.</p>
2720                
2721              </div>
2722            
2723        
2724      
2725        
2726            
2727            
2728            
2729              <div class="flex-item light-background info-square" >
2730                
2731                  <h4 role="heading" aria-level="2">Ready for the day</h4>
2732                
2733                
2734                  <p>Less soreness and muscle fatigue means you show up stronger and more energetic for family, traveling, or whatever staying active means to you.</p>
2735                
2736              </div>
2737            
2738        
2739      
2740        
2741            
2742            
2743            
2744              <div class="flex-item light-background info-square" >
2745                
2746                  <h4 role="heading" aria-level="2">Better every year</h4>
2747                
2748                
2749                  <p>Enjoy healthy, functional muscle and natural, sustained energy (without caffeine) at any age, especially as protein becomes more difficult.</p>
2750                
2751              </div>
2752            
2753        
2754      
2755    
2756    <div class="flex-item kion-home-benefit-cards__image" style="min-width: 30%;">
2757      <img src="//www.getkion.com/cdn/shop/files/kion-aminos-powder-v3.jpg?v=1780590506&width=900" alt="Assorted Aminos Powder Flavors" width="768" height="485">
2758    </div>
2759  </div>
2760  
2761    <a href="#buy" class="new-home-button" style="margin-left: 8px;">GET YOUR AMINOS</a>
2762  
2763</div>
2764
2765
2766</div><div id="shopify-section-template--20255609454666__home_fitness_hero" class="shopify-section">
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776<style>
2777  #shopify-section-template--20255609454666__home_fitness_hero .kion-home-fitness-hero__subtitle {
2778    color: #ffffff;
2779    font-size: 20px;
2780    line-height: 30px;
2781    margin-top: 12px;
2782    max-width: 560px;
2783  }
2784
2785  #shopify-section-template--20255609454666__home_fitness_hero .kion-home-fitness-image {
2786    padding: 0 50px;
2787  }
2788
2789  #shopify-section-template--20255609454666__home_fitness_hero .kion-home-fitness-image img {
2790    display: block;
2791    height: auto;
2792    width: 100%;
2793  }
2794
2795  
2796    #shopify-section-template--20255609454666__home_fitness_hero .kion-home-fitness-hero {
2797      background-image: linear-gradient(90deg, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, .58) 24%, rgba(0, 0, 0, 0) 58%), url('//www.getkion.com/cdn/shop/files/kion-watch-desktop.webp?v=1780591784&width=2400');
2798    }
2799  
2800
2801  @media screen and (max-width: 599px) {
2802    
2803    #shopify-section-template--20255609454666__home_fitness_hero .kion-home-fitness-image { padding: 0; }
2804  }
2805
2806  @media screen and (min-width: 600px) {
2807    
2808  }
2809
2810  #shopify-section-template--20255609454666__home_fitness_hero .kion-home-fitness-hero {
2811    align-items: flex-start;
2812    
2813    background-position: bottom right;
2814    background-size: cover;
2815    display: flex;
2816    min-height: 800px;
2817    padding: 50px;
2818  }
2819
2820  #shopify-section-template--20255609454666__home_fitness_hero .kion-home-fitness-hero__inner {
2821    max-width: 760px;
2822  }
2823
2824  #shopify-section-template--20255609454666__home_fitness_hero .kion-home-fitness-hero__title {
2825    color: #ffffff;
2826    font-size: 60px;
2827    line-height: 68px;
2828    margin: 0;
2829    padding-top: 0;
2830  }
2831
2832  @media screen and (max-width: 599px) {
2833    #shopify-section-template--20255609454666__home_fitness_hero .kion-home-fitness-hero {
2834      align-items: flex-start;
2835      
2836        background-image: linear-gradient(90deg, rgba(0, 0, 0, .82) 0%, rgba(0, 0, 0, .62) 42%, rgba(0, 0, 0, 0) 85%), url('//www.getkion.com/cdn/shop/files/kion-watch-desktop.webp?v=1780591784&width=2400');
2837      
2838      background-position: center bottom;
2839      min-height: 520px;
2840      padding: 46px 20px;
2841    }
2842
2843    #shopify-section-template--20255609454666__home_fitness_hero .kion-home-fitness-hero__inner {
2844      max-width: 72%;
2845    }
2846
2847    #shopify-section-template--20255609454666__home_fitness_hero .kion-home-fitness-hero__title {
2848      font-size: 40px;
2849      line-height: 45px;
2850      padding-top: 0;
2851    }
2852  }
2853</style>
2854
2855
2856  <div class="row-new-home medium-background kion-home-fitness-hero">
2857    <div class="kion-home-fitness-hero__inner">
2858      <h2 class="kion-home-fitness-hero__title">Better Aminos</h2>
2859      
2860        <p class="kion-home-fitness-hero__subtitle">All 9 essential amino acids. Every milligram listed. 40% Leucine-enriched.</p>
2861      
2862    </div>
2863  </div>
2864
2865
2866
2867</div><div id="shopify-section-template--20255609454666__home_reviews" class="shopify-section">
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877<style>
2878  #shopify-section-template--20255609454666__home_reviews .kion-home-reviews {
2879    padding-bottom: 10px;
2880  }
2881
2882  #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__inner {
2883    padding: 0;
2884  }
2885
2886  #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__title {
2887    margin-bottom: 20px;
2888  }
2889
2890  #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__grid {
2891    display: grid;
2892    gap: 10px;
2893    grid-template-columns: repeat(3, minmax(0, 1fr));
2894  }
2895
2896  #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__viewport {
2897    overflow: visible;
2898  }
2899
2900  #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__card {
2901    margin: 0 !important;
2902  }
2903
2904  #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__stars {
2905    display: block;
2906    height: 30px;
2907    width: auto !important;
2908  }
2909
2910  #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__dots {
2911    display: none;
2912  }
2913
2914  @media screen and (min-width: 600px) {
2915    #shopify-section-template--20255609454666__home_reviews .kion-home-reviews {
2916      padding-bottom: 40px;
2917    }
2918  }
2919
2920  @media screen and (max-width: 599px) {
2921    #shopify-section-template--20255609454666__home_reviews .kion-home-reviews {
2922      padding: 20px 0;
2923    }
2924
2925    #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__inner {
2926      padding: 0 20px;
2927    }
2928
2929    #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__carousel {
2930      outline: none;
2931    }
2932
2933    #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__viewport {
2934      margin: 0 -20px;
2935      overflow: hidden;
2936      padding: 0 20px;
2937      touch-action: pan-y;
2938    }
2939
2940    #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__grid {
2941      display: flex;
2942      gap: 0;
2943      padding-bottom: 10px;
2944      transition: transform .35s ease;
2945      will-change: transform;
2946    }
2947
2948    #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__card {
2949      flex: 0 0 calc(100% - 12px);
2950      margin: 0 6px !important;
2951    }
2952
2953    #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__dots {
2954      align-items: center;
2955      display: flex;
2956      gap: 8px;
2957      justify-content: center;
2958      padding-top: 2px;
2959    }
2960
2961    #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__dot {
2962      appearance: none;
2963      background: #c9c9c9;
2964      border: 0;
2965      border-radius: 999px;
2966      cursor: pointer;
2967      display: block;
2968      height: 8px;
2969      margin: 0;
2970      padding: 0;
2971      width: 8px;
2972    }
2973
2974    #shopify-section-template--20255609454666__home_reviews .kion-home-reviews__dot.is-active {
2975      background: #333;
2976    }
2977  }
2978</style>
2979
2980<div class="row-new-home medium-background kion-home-reviews">
2981  <div class="inner-row-new-home reviews kion-home-reviews__inner">
2982    
2983      <h2 class="review-section-title kion-home-reviews__title">Over 1 Million Aminos Sold</h2>
2984    
2985    <div
2986      class="kion-home-reviews__carousel"
2987      data-kion-home-reviews-slider
2988      role="region"
2989      aria-label="Customer reviews"
2990      tabindex="0"
2991    >
2992      <div class="kion-home-reviews__viewport" data-review-slider-viewport>
2993        <div class="kion-home-reviews__grid" data-review-slider-track>
2994          
2995            
2996              
2997                  
2998                  
2999                  <div class="light-background info-square review-text kion-home-reviews__card" >
3000                    <img src="//www.getkion.com/cdn/shop/files/review-stars-v3.png?v=1780592266&width=300" alt="5 Star Review Rating" width="425" height="74" class="kion-home-reviews__stars">
3001                    
3002                      <p>“I have a hard time getting enough protein in my diet and Kion Aminos have been such a game changer for me. I’m finally losing weight and have more energy.”</p>
3003                    
3004                    
3005                      <p class="persons-name">Shannon P.</p>
3006                    
3007                  </div>
3008              
3009            
3010              
3011                  
3012                  
3013                  <div class="light-background info-square review-text kion-home-reviews__card" >
3014                    <img src="//www.getkion.com/cdn/shop/files/review-stars-v3.png?v=1780592266&width=300" alt="5 Star Review Rating" width="425" height="74" class="kion-home-reviews__stars">
3015                    
3016                      <p>“I’ve been taking Aminos for about a month, and according to my scale, it looks like they’re working. I haven’t been working out as much, yet my muscle mass has increased.”</p>
3017                    
3018                    
3019                      <p class="persons-name">Irina S.</p>
3020                    
3021                  </div>
3022              
3023            
3024              
3025                  
3026                  
3027                  <div class="light-background info-square review-text kion-home-reviews__card" >
3028                    <img src="//www.getkion.com/cdn/shop/files/review-stars-v3.png?v=1780592266&width=300" alt="5 Star Review Rating" width="425" height="74" class="kion-home-reviews__stars">
3029                    
3030                      <p>“Started Aminos a few weeks ago and I am in love! Easy to take, mixes great (no clumps), gives me a sudden boost of energy, and is starting to make me look more toned.”</p>
3031                    
3032                    
3033                      <p class="persons-name">Paige B.</p>
3034                    
3035                  </div>
3036              
3037            
3038          
3039        </div>
3040      </div>
3041      <div class="kion-home-reviews__dots" data-review-slider-dots>
3042        
3043          <button
3044            type="button"
3045            class="kion-home-reviews__dot is-active"
3046            data-review-slide-index="0"
3047            aria-label="Go to review 1"
3048            aria-current="true"
3049          ></button>
3050        
3051          <button
3052            type="button"
3053            class="kion-home-reviews__dot"
3054            data-review-slide-index="1"
3055            aria-label="Go to review 2"
3056            aria-current="false"
3057          ></button>
3058        
3059          <button
3060            type="button"
3061            class="kion-home-reviews__dot"
3062            data-review-slide-index="2"
3063            aria-label="Go to review 3"
3064            aria-current="false"
3065          ></button>
3066        
3067      </div>
3068    </div>
3069  </div>
3070</div>
3071
3072<script>
3073  (function () {
3074    function initKionHomeReviewSliders(root) {
3075      var scope = root || document;
3076      var sliders = scope.querySelectorAll('[data-kion-home-reviews-slider]');
3077
3078      sliders.forEach(function (slider) {
3079        if (slider.dataset.initialized === 'true') {
3080          return;
3081        }
3082
3083        var viewport = slider.querySelector('[data-review-slider-viewport]');
3084        var track = slider.querySelector('[data-review-slider-track]');
3085        var cards = Array.prototype.slice.call(slider.querySelectorAll('.kion-home-reviews__card'));
3086        var dots = Array.prototype.slice.call(slider.querySelectorAll('[data-review-slide-index]'));
3087        var index = 0;
3088        var startX = null;
3089        var startY = null;
3090
3091        if (!viewport || !track || cards.length < 2) {
3092          return;
3093        }
3094
3095        slider.dataset.initialized = 'true';
3096
3097        function isMobile() {
3098          return window.matchMedia('(max-width: 599px)').matches;
3099        }
3100
3101        function setActiveDot() {
3102          dots.forEach(function (dot, dotIndex) {
3103            var isActive = dotIndex === index;
3104            dot.classList.toggle('is-active', isActive);
3105            dot.setAttribute('aria-current', isActive ? 'true' : 'false');
3106          });
3107        }
3108
3109        function update() {
3110          if (!isMobile()) {
3111            track.style.transform = '';
3112            index = 0;
3113            setActiveDot();
3114            return;
3115          }
3116
3117          track.style.transform = 'translate3d(-' + (index * 100) + '%, 0, 0)';
3118          setActiveDot();
3119        }
3120
3121        function goTo(nextIndex) {
3122          if (!isMobile()) {
3123            return;
3124          }
3125
3126          index = (nextIndex + cards.length) % cards.length;
3127          update();
3128        }
3129
3130        dots.forEach(function (dot) {
3131          dot.addEventListener('click', function () {
3132            goTo(parseInt(dot.dataset.reviewSlideIndex, 10));
3133          });
3134        });
3135
3136        slider.addEventListener('keydown', function (event) {
3137          if (event.key === 'ArrowRight') {
3138            event.preventDefault();
3139            goTo(index + 1);
3140          }
3141
3142          if (event.key === 'ArrowLeft') {
3143            event.preventDefault();
3144            goTo(index - 1);
3145          }
3146        });
3147
3148        viewport.addEventListener('touchstart', function (event) {
3149          if (!event.touches.length) {
3150            return;
3151          }
3152
3153          startX = event.touches[0].clientX;
3154          startY = event.touches[0].clientY;
3155        }, { passive: true });
3156
3157        viewport.addEventListener('touchend', function (event) {
3158          if (startX === null || !event.changedTouches.length) {
3159            return;
3160          }
3161
3162          var diffX = event.changedTouches[0].clientX - startX;
3163          var diffY = event.changedTouches[0].clientY - startY;
3164          startX = null;
3165          startY = null;
3166
3167          if (Math.abs(diffX) < 45 || Math.abs(diffX) <= Math.abs(diffY)) {
3168            return;
3169          }
3170
3171          if (diffX < 0) {
3172            goTo(index + 1);
3173          } else {
3174            goTo(index - 1);
3175          }
3176        }, { passive: true });
3177
3178        window.addEventListener('resize', update);
3179        update();
3180      });
3181    }
3182
3183    if (document.readyState === 'loading') {
3184      document.addEventListener('DOMContentLoaded', function () {
3185        initKionHomeReviewSliders(document);
3186      });
3187    } else {
3188      initKionHomeReviewSliders(document);
3189    }
3190
3191    document.addEventListener('shopify:section:load', function (event) {
3192      initKionHomeReviewSliders(event.target);
3193    });
3194  })();
3195</script>
3195
3196
3197
3198</div><div id="shopify-section-template--20255609454666__home_buy_box_html" class="shopify-section">
3199
3200<style>
3201  #shopify-section-template--20255609454666__home_buy_box_html #buy {
3202    display: block;
3203    position: relative;
3204    top: -80px;
3205  }
3206
3207  
3208  @media only screen and (min-width: 769px) {
3209    body:has(.sl-nav-test-section) #shopify-section-template--20255609454666__home_buy_box_html #buy {
3210      top: -120px;
3211    }
3212  }
3213  
3214
3215  #shopify-section-template--20255609454666__home_buy_box_html .home-buy-box {
3216    display: flex;
3217  }
3218
3219  #shopify-section-template--20255609454666__home_buy_box_html .home-buy-box .buy-box-image {
3220    width: 39%;
3221  }
3222
3223  #shopify-section-template--20255609454666__home_buy_box_html .home-buy-box .buy-box-form {
3224    width: 33%;
3225  }
3226
3227  #shopify-section-template--20255609454666__home_buy_box_html .product-buy-box img {
3228    width: 100% !important;
3229    height: auto !important;
3230  }
3231
3232  #shopify-section-template--20255609454666__home_buy_box_html label.kion3JP1-product-radio-box {
3233    border-radius: 10px;
3234    padding: 16px !important;
3235    margin-bottom: 8px !important;
3236  }
3237
3238  #shopify-section-template--20255609454666__home_buy_box_html .kion3JP1-option-description {
3239    padding-left: 6px;
3240    padding-top: 1px;
3241    font-weight: 500;
3242    letter-spacing: .5px;
3243    font-size: 15px;
3244  }
3245
3246  #shopify-section-template--20255609454666__home_buy_box_html select#kion3JP1-selling-plan {
3247    font-size: 14px;
3248  }
3249
3250  #shopify-section-template--20255609454666__home_buy_box_html .kion3JP1-subscription-benefit {
3251    color: #555;
3252    line-height: 20px;
3253    padding: 8px 0px !important;
3254  }
3255
3256  #shopify-section-template--20255609454666__home_buy_box_html div#kion3JP1-product-display-price {
3257    font-size: 18px;
3258  }
3259
3260  #shopify-section-template--20255609454666__home_buy_box_html .product-price-per-serving {
3261    color: #555;
3262    padding-top: 10px;
3263  }
3264
3265  #shopify-section-template--20255609454666__home_buy_box_html .buy-box-form .product-title {
3266    font-weight: 500 !important;
3267  }
3268
3269  #shopify-section-template--20255609454666__home_buy_box_html .buy-box-form form label {
3270    display: flex;
3271  }
3272
3273  @media only screen and (max-width: 768px) {
3274    #shopify-section-template--20255609454666__home_buy_box_html #buy {
3275      top: 220px;
3276    }
3277
3278    
3279    #shopify-section-template--20255609454666__home_buy_box_html .home-bundle-mobile-story {
3280      display: block !important;
3281    }
3282
3283    #shopify-section-template--20255609454666__home_buy_box_html .home-bundle-story {
3284      display: none !important;
3285    }
3286    
3287
3288    #shopify-section-template--20255609454666__home_buy_box_html .home-buy-box {
3289      display: block;
3290    }
3291
3292    #shopify-section-template--20255609454666__home_buy_box_html .home-buy-box .buy-box-image,
3293    #shopify-section-template--20255609454666__home_buy_box_html .home-buy-box .buy-box-form {
3294      width: 100%;
3295    }
3296
3297    #shopify-section-template--20255609454666__home_buy_box_html .home-buy-box .buy-box-image img {
3298      height: unset;
3299    }
3300  }
3301</style>
3302
3303
3304  
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319<a id="buy" name="buy" tabindex="-1"></a>
3320
3321<div class="row-new-home mobile medium-background home-bundle-mobile-story" style="padding: 20px;">
3322  <img
3323    src="//www.getkion.com/cdn/shop/t/109/assets/8x-more-amino-acids.png?v=55093804631677727861784609120"
3324    alt="Kion Aminos contains up to 8x more essential amino acids than whole-food protein sources gram for gram."
3325    loading="lazy"
3326    width="724"
3327    height="449"
3328  >
3329</div>
3330
3331<div class="row-new-home medium-background home-bundle-section" style="padding-top: 10px; padding-bottom: 10px;">
3332  <div class="light-background info-square home-buy-box" data-home-bundle-buy-box>
3333    <div class="desktop home-bundle-story">
3334      <p class="home-bundle-story-kicker">8x<br>MORE</p>
3335      <h2>Essential Amino Acids</h2>
3336      <p>Kion Aminos contains up to 8x more EAAs than whole food protein sources gram for gram.</p>
3337    </div>
3338
3339    <div class="buy-box-image home-bundle-product-image">
3340      <img
3341        id="kion3JP1-shogun-img3"
3342        data-home-bundle-image
3343        src="//www.getkion.com/cdn/shop/t/109/assets/kion-aminos-mixed-berry-product-desktop.jpg?v=149072002828508172261784609125"
3344        alt="Kion Aminos Mixed Berry Powder"
3345        loading="eager"
3346        width="700"
3347        height="700"
3348      >
3349    </div>
3350
3351    <div class="buy-box-form home-bundle-form">
3352      <h1 class="home-bundle-title" data-home-bundle-title>Aminos Powder</h1>
3353
3354      <div
3355        class="yotpo bottomLine home-bundle-reviews"
3356        data-product-id="4388272013386"
3357        data-price="49.95"
3358        data-currency="USD"
3359        data-name="Aminos Powder"
3360        data-url="https://www.getkion.com/products/aminos-powder"
3361        data-image-url="//www.getkion.com/cdn/shop/t/109/assets/kion-aminos-mixed-berry-product-desktop.jpg?v=149072002828508172261784609125"
3362      ></div>
3363
3364      
3365      <div class="home-bundle-price-row" aria-live="polite">
3366        <s data-home-bundle-compare-price>$49.95</s>
3367        <strong data-home-bundle-current-price>$42.46</strong>
3368      </div>
3369      <p class="home-bundle-serving-price" data-home-bundle-serving-price>$1.42 per serving</p>
3370
3371      <form
3372        action="/cart/add"
3373        method="post"
3374        enctype="multipart/form-data"
3375        id="home-bundle-product-form"
3376        class="home-bundle-product-form"
3377        data-productid="4388272013386"
3378      >
3379        <input type="hidden" name="id" value="31767232774218" data-home-bundle-variant>
3380        <input type="hidden" name="quantity" value="3" data-home-bundle-quantity>
3381        <input type="hidden" name="selling_plan" value="" data-home-bundle-selling-plan>
3382        <input type="hidden" name="properties[_kionbuyboxversion]" value="bundle">
3383        <input type="hidden" name="properties[_kiontrigger]" value="allproductpdpbundle" data-home-bundle-trigger>
3384        
3385        <input type="hidden" name="properties[_kionproductbundle]" value="aminos">
3386        <input type="hidden" name="properties[_aminos3x]" value="3-tub-sub-hp" data-home-bundle-property>
3387
3388        <fieldset class="home-bundle-purchase-options">
3389          <legend class="visually-hidden">Purchase option</legend>
3390
3391          <label class="home-bundle-purchase-card" data-home-bundle-purchase-card="onetime">
3392            <span class="home-bundle-radio-line">
3393              <input type="radio" name="home_bundle_purchase" value="onetime" data-home-bundle-purchase>
3394              <span>One Time Order</span>
3395              <span data-home-bundle-onetime-total>$142.35</span>
3396            </span>
3397          </label>
3398
3399          <label class="home-bundle-purchase-card is-selected" data-home-bundle-purchase-card="subscription">
3400            <span class="home-bundle-radio-line">
3401              <input type="radio" name="home_bundle_purchase" value="subscription" data-home-bundle-purchase checked>
3402              <span data-home-bundle-frequency>Every 3 Months</span>
3403              <span data-home-bundle-subscription-total>$127.38</span>
3404            </span>
3405            <em data-home-bundle-subscription-copy>15% off every order, guaranteed deliveries, pause or modify any time</em>
3406          </label>
3407        </fieldset>
3408
3409        <div class="home-bundle-field">
3410          <label for="home-bundle-flavor">Flavor</label>
3411          <div class="home-bundle-select-wrap">
3412            <select id="home-bundle-flavor" data-home-bundle-flavor>
3413              <option value="31767232774218">Mixed Berry Powder</option>
3414              <option value="39775572394058">Watermelon Powder</option>
3415              <option value="39775572426826">Mango Powder</option>
3416              <option value="31767232806986">Cool Lime Powder</option>
3417              <option value="39395537944650">Aminos Capsules</option>
3418              <option value="40188270608458">Aminos Variety Bundle (Packets)</option>
3419            </select>
3420          </div>
3421        </div>
3422
3423        <fieldset class="home-bundle-quantity-options">
3424          <legend class="visually-hidden">Bundle quantity</legend>
3425
3426          <button type="button" class="home-bundle-quantity-card" data-home-bundle-quantity-option="1" aria-pressed="false">
3427            <span class="home-bundle-quantity-name" data-home-bundle-quantity-name="1">1 Tub</span>
3428            <strong data-home-bundle-quantity-price="1">$44.96</strong>
3429            <span class="home-bundle-per-unit" data-home-bundle-per-unit="1">Per Tub</span>
3430            <span class="home-bundle-savings" data-home-bundle-savings="1">Save 10%</span>
3431          </button>
3432
3433          <button type="button" class="home-bundle-quantity-card is-selected" data-home-bundle-quantity-option="3" aria-pressed="true">
3434            <span class="home-bundle-best-value">Best Value</span>
3435            <span class="home-bundle-quantity-name" data-home-bundle-quantity-name="3">3 Tubs</span>
3436            <strong data-home-bundle-quantity-price="3">$42.46</strong>
3437            <span class="home-bundle-per-unit" data-home-bundle-per-unit="3">Per Tub</span>
3438            <span class="home-bundle-savings" data-home-bundle-savings="3">Save 15%<small>+ Free Shipping</small></span>
3439          </button>
3440        </fieldset>
3441
3442        <button
3443          type="submit"
3444          name="add"
3445          id="AddToCart"
3446          class="home-bundle-add-to-cart kion3JP1-add-to-cart"
3447          aria-label="Add to Cart"
3448          data-productid="4388272013386"
3449          data-add-to-cart
3450        >
3451          <span data-add-to-cart-text>Add to Cart</span>
3452        </button>
3453      </form>
3454
3455      <div class="product-meta-info home-bundle-assurances">
3456        <span>✓ Fast Shipping</span>
3457        <span>✓ 60-Day Money-Back Guarantee</span>
3458      </div>
3459    </div>
3460  </div>
3461</div>
3462
3463<style>
3464  [data-home-bundle-buy-box] {
3465    align-items: center;
3466  }
3467
3468  [data-home-bundle-buy-box] .home-bundle-story {
3469    box-sizing: border-box;
3470    flex: 0 0 27%;
3471    padding: 0 2.5% 0 0;
3472  }
3473
3474  [data-home-bundle-buy-box] p.home-bundle-story-kicker {
3475    color: #000;
3476    font-family: 'Spock W05 Black', 'Spock W05 Regular', sans-serif;
3477    font-size: clamp(58px, 5.5vw, 112px);
3478    font-weight: 900;
3479    letter-spacing: -0.05em;
3480    line-height: 0.86;
3481    margin: 0 0 24px;
3482  }
3483
3484  [data-home-bundle-buy-box] .home-bundle-story h2 {
3485    color: #111;
3486    font-size: clamp(20px, 1.55vw, 31px);
3487    font-weight: 800;
3488    letter-spacing: -0.02em;
3489    line-height: 1.15;
3490    margin: 0 0 30px;
3491    text-transform: uppercase;
3492  }
3493
3494  [data-home-bundle-buy-box] .home-bundle-story p:last-child {
3495    color: #161616;
3496    font-size: clamp(18px, 1.45vw, 29px);
3497    font-weight: 500;
3498    line-height: 1.45;
3499    margin: 0;
3500  }
3501
3502  [data-home-bundle-buy-box] .home-bundle-product-image {
3503    align-items: center;
3504    display: flex;
3505    flex: 0 0 39%;
3506    justify-content: center;
3507    min-width: 0;
3508  }
3509
3510  [data-home-bundle-buy-box] .home-bundle-product-image img {
3511    display: block;
3512    height: auto;
3513    max-height: 590px;
3514    max-width: 100%;
3515    object-fit: contain;
3516    width: 100%;
3517  }
3518
3519  @media (min-width: 769px) {
3520    [data-home-bundle-buy-box] .home-bundle-product-image img {
3521      max-height: 520px;
3522      max-width: 520px;
3523      width: 88%;
3524    }
3525  }
3526
3527  [data-home-bundle-buy-box] .home-bundle-form {
3528    box-sizing: border-box;
3529    flex: 0 0 34%;
3530    min-width: 0;
3531    padding-left: 1.5%;
3532  }
3533
3534  [data-home-bundle-buy-box] .home-bundle-title {
3535    color: #0d0d0d;
3536    font-size: 40px;
3537    font-weight: 600;
3538    line-height: 45px;
3539    margin: 0;
3540  }
3541
3542  [data-home-bundle-buy-box] .home-bundle-reviews {
3543    font-size: 14px;
3544    margin: 3px 0 5px;
3545    min-height: 18px;
3546  }
3547
3548  [data-home-bundle-buy-box] .home-bundle-price-row {
3549    align-items: baseline;
3550    display: flex;
3551    font-size: 18px;
3552    gap: 12px;
3553    line-height: 1;
3554    margin-bottom: 6px;
3555  }
3556
3557  [data-home-bundle-buy-box] .home-bundle-price-row s {
3558    color: #747474;
3559    font-weight: 400;
3560  }
3561
3562  [data-home-bundle-buy-box] .home-bundle-price-row strong {
3563    color: #000;
3564    font-weight: 700;
3565  }
3566
3567  [data-home-bundle-buy-box] p.home-bundle-serving-price {
3568    color: #595959;
3569    font-size: 13px;
3570    line-height: normal;
3571    margin: 0 0 14px;
3572  }
3573
3574  [data-home-bundle-buy-box] fieldset {
3575    border: 0;
3576    margin: 0;
3577    min-width: 0;
3578    padding: 0;
3579  }
3580
3581  [data-home-bundle-buy-box] .home-bundle-purchase-card {
3582    border: 1px solid #e2e2e2;
3583    border-radius: 11px;
3584    box-sizing: border-box;
3585    cursor: pointer;
3586    display: block;
3587    margin: 0 0 10px;
3588    padding: 14px;
3589    transition: border-color 150ms ease;
3590    width: 100%;
3591  }
3592
3593  [data-home-bundle-buy-box] form label.home-bundle-purchase-card {
3594    display: block !important;
3595  }
3596
3597  [data-home-bundle-buy-box] .home-bundle-purchase-card.is-selected {
3598    border-color: #222;
3599  }
3600
3601  [data-home-bundle-buy-box] .home-bundle-purchase-card:last-child {
3602    margin-bottom: 0;
3603  }
3604
3605  [data-home-bundle-buy-box] .home-bundle-radio-line {
3606    align-items: center;
3607    display: grid;
3608    font-size: 15px;
3609    font-weight: 500;
3610    grid-template-columns: 22px auto 1fr;
3611    letter-spacing: 0.5px;
3612    line-height: 1.25;
3613    text-transform: uppercase;
3614  }
3615
3616  [data-home-bundle-buy-box] .home-bundle-radio-line input {
3617    accent-color: #f5a623;
3618    height: 18px;
3619    margin: 0;
3620    width: 18px;
3621  }
3622
3623  [data-home-bundle-buy-box] .home-bundle-radio-line span:last-child {
3624    padding-left: 5px;
3625  }
3626
3627  [data-home-bundle-buy-box] .home-bundle-purchase-card em {
3628    color: #626262;
3629    display: block;
3630    font-size: 14px;
3631    letter-spacing: 0.5px;
3632    line-height: 20px;
3633    margin: 8px 0 0 20px;
3634  }
3635
3636  [data-home-bundle-buy-box] .home-bundle-field {
3637    margin-top: 10px;
3638  }
3639
3640  [data-home-bundle-buy-box] .home-bundle-field > label {
3641    color: #111;
3642    display: block;
3643    font-size: 16px;
3644    font-weight: 600;
3645    margin: 0 0 6px;
3646    text-transform: uppercase;
3647  }
3648
3649  [data-home-bundle-buy-box] .home-bundle-select-wrap {
3650    position: relative;
3651  }
3652
3653  [data-home-bundle-buy-box] .home-bundle-select-wrap::after {
3654    border-left: 5px solid transparent;
3655    border-right: 5px solid transparent;
3656    border-top: 7px solid #111;
3657    content: '';
3658    pointer-events: none;
3659    position: absolute;
3660    right: 16px;
3661    top: calc(50% - 3px);
3662  }
3663
3664  [data-home-bundle-buy-box] .home-bundle-select-wrap select {
3665    appearance: none;
3666    background: #fff;
3667    border: 1px solid #e2e2e2;
3668    border-radius: 0;
3669    box-sizing: border-box;
3670    color: #111;
3671    font: inherit;
3672    font-size: 16px;
3673    line-height: 18.4px;
3674    height: 51px;
3675    padding: 0 42px 0 14px;
3676    width: 100%;
3677  }
3678
3679  [data-home-bundle-buy-box] .home-bundle-quantity-options {
3680    display: grid;
3681    gap: 7px;
3682    grid-template-columns: repeat(2, minmax(0, 1fr));
3683    margin-top: 20px;
3684  }
3685
3686  [data-home-bundle-buy-box] .home-bundle-quantity-card {
3687    appearance: none;
3688    background: #fff;
3689    border: 1px solid #e2e2e2;
3690    border-radius: 0;
3691    color: #080808;
3692    cursor: pointer;
3693    display: flex;
3694    flex-direction: column;
3695    font: inherit;
3696    min-height: 145px;
3697    padding: 17px 0 0;
3698    position: relative;
3699    text-align: center;
3700  }
3701
3702  [data-home-bundle-buy-box] .home-bundle-quantity-card.is-selected {
3703    border: 1.5px solid #111;
3704  }
3705
3706  [data-home-bundle-buy-box] .home-bundle-best-value {
3707    background: #050505;
3708    color: #fff;
3709    font-size: 13px;
3710    font-weight: 700;
3711    left: 50%;
3712    line-height: 1;
3713    padding: 6px 8px;
3714    position: absolute;
3715    text-transform: uppercase;
3716    top: 0;
3717    transform: translate(-50%, -50%);
3718    white-space: nowrap;
3719  }
3720
3721  [data-home-bundle-buy-box] .home-bundle-quantity-name {
3722    font-size: 16px;
3723    font-weight: 400;
3724    line-height: 1.2;
3725  }
3726
3727  [data-home-bundle-buy-box] .home-bundle-quantity-card strong {
3728    font-size: 20px;
3729    font-weight: 600;
3730    line-height: 1.15;
3731    margin-top: 8px;
3732  }
3733
3734  [data-home-bundle-buy-box] .home-bundle-per-unit {
3735    font-size: 12px;
3736    margin: 2px 0 6px;
3737  }
3738
3739  [data-home-bundle-buy-box] .home-bundle-savings {
3740    align-items: center;
3741    background: #fff;
3742    border-top: 1px solid #e2e2e2;
3743    display: flex;
3744    flex-direction: row;
3745    font-size: 14px;
3746    font-weight: 600;
3747    justify-content: center;
3748    margin-top: auto;
3749    min-height: 44px;
3750    padding: 4px 6px;
3751    white-space: nowrap;
3752  }
3753
3754  [data-home-bundle-buy-box] .home-bundle-quantity-card.is-selected .home-bundle-savings {
3755    background: #fbae33;
3756    border-top-color: #111;
3757  }
3758
3759  [data-home-bundle-buy-box] .home-bundle-savings small {
3760    display: inline;
3761    font-size: 12px;
3762    font-weight: 400;
3763    line-height: 1.15;
3764    margin-left: 4px;
3765  }
3766
3767  [data-home-bundle-buy-box] .home-bundle-add-to-cart {
3768    appearance: none;
3769    background: #fbae33;
3770    border: 0;
3771    border-radius: 0;
3772    color: #050505;
3773    cursor: pointer;
3774    font: inherit;
3775    font-size: 15px;
3776    letter-spacing: 2px;
3777    margin-top: 13px;
3778    min-height: 62px;
3779    text-transform: uppercase;
3780    width: 100%;
3781  }
3782
3783  [data-home-bundle-buy-box] .home-bundle-quantity-card.is-selected .home-bundle-quantity-name,
3784  [data-home-bundle-buy-box] .home-bundle-quantity-card.is-selected .home-bundle-per-unit {
3785    font-weight: 700;
3786  }
3787
3788  [data-home-bundle-buy-box] .home-bundle-assurances {
3789    align-items: center;
3790    color: #313737;
3791    display: flex;
3792    font-size: 14px;
3793    gap: 20px;
3794    justify-content: center;
3795    margin-top: 12px;
3796    text-align: center;
3797  }
3798
3799  .home-bundle-mobile-story img {
3800    display: block;
3801    height: auto;
3802    width: 100%;
3803  }
3804
3805  @media (max-width: 1050px) and (min-width: 769px) {
3806    [data-home-bundle-buy-box] {
3807      flex-wrap: wrap;
3808    }
3809
3810    [data-home-bundle-buy-box] .home-bundle-story {
3811      flex-basis: 40%;
3812    }
3813
3814    [data-home-bundle-buy-box] .home-bundle-product-image {
3815      flex-basis: 60%;
3816    }
3817
3818    [data-home-bundle-buy-box] .home-bundle-form {
3819      flex-basis: 100%;
3820      margin: 35px auto 0;
3821      max-width: 650px;
3822      padding-left: 0;
3823    }
3824  }
3825
3826  @media (max-width: 768px) {
3827    .home-bundle-section {
3828      padding-left: 20px;
3829      padding-right: 20px;
3830    }
3831
3832    [data-home-bundle-buy-box] {
3833      display: block;
3834    }
3835
3836    [data-home-bundle-buy-box] .home-bundle-product-image,
3837    [data-home-bundle-buy-box] .home-bundle-form {
3838      width: 100%;
3839    }
3840
3841    [data-home-bundle-buy-box] .home-bundle-product-image img {
3842      max-height: 460px;
3843    }
3844
3845    [data-home-bundle-buy-box] .home-bundle-form {
3846      padding-left: 0;
3847    }
3848
3849    [data-home-bundle-buy-box] .home-bundle-title {
3850      font-size: 36px;
3851      margin-top: 10px;
3852    }
3853
3854    [data-home-bundle-buy-box] .home-bundle-radio-line {
3855      font-size: 16px;
3856    }
3857
3858    [data-home-bundle-buy-box] .home-bundle-purchase-card em {
3859      font-size: 15px;
3860    }
3861  }
3862
3863  @media (max-width: 420px) {
3864    [data-home-bundle-buy-box] .home-bundle-purchase-card {
3865      padding-left: 13px;
3866      padding-right: 13px;
3867    }
3868
3869    [data-home-bundle-buy-box] .home-bundle-radio-line {
3870      font-size: 14px;
3871      grid-template-columns: 22px auto 1fr;
3872      letter-spacing: 0;
3873    }
3874
3875    [data-home-bundle-buy-box] .home-bundle-purchase-card em {
3876      margin-left: 28px;
3877    }
3878
3879    [data-home-bundle-buy-box] .home-bundle-quantity-name {
3880      font-size: 16px;
3881    }
3882
3883    [data-home-bundle-buy-box] .home-bundle-savings {
3884      flex-direction: column;
3885      font-size: 12px;
3886      line-height: 1.15;
3887    }
3888
3889    [data-home-bundle-buy-box] .home-bundle-savings small {
3890      font-size: 10px;
3891      margin-left: 0;
3892      margin-top: 2px;
3893    }
3894
3895    [data-home-bundle-buy-box] .home-bundle-assurances {
3896      align-items: flex-start;
3897      font-size: 12px;
3898      gap: 8px;
3899    }
3900  }
3901</style>
3902
3903<script>
3904  (function () {
3905    var root = document.querySelector('[data-home-bundle-buy-box]');
3906    if (!root || root.dataset.bundleInitialized === 'true') return;
3907    root.dataset.bundleInitialized = 'true';
3908
3909    var variantThreeImages = {
3910      
3911        
3912        "31767232806986": {
3913          image: "\/\/www.getkion.com\/cdn\/shop\/files\/Aminos_Lime_3x_VSL-1778890852287_98029a09-b420-4a99-bf6c-c77268f4c587.jpg?v=1784650692\u0026width=800",
3914          alt: "Aminos Powder"
3915        },
3916      
3917        
3918        "31767232774218": {
3919          image: "\/\/www.getkion.com\/cdn\/shop\/files\/Aminos_Berry_3x_VSL-1778890917997_1004ab50-b528-43b6-a931-ea0bea56e93e.jpg?v=1784650692\u0026width=800",
3920          alt: "Aminos Powder"
3921        },
3922      
3923        
3924        "39775572426826": {
3925          image: "\/\/www.getkion.com\/cdn\/shop\/files\/Aminos_Mango_3x_VSL-1778890817343_b58497dd-06c8-4a94-b92c-c439f4a2f7c2.jpg?v=1784650692\u0026width=800",
3926          alt: "Aminos Powder"
3927        },
3928      
3929        
3930        "39775572394058": {
3931          image: "\/\/www.getkion.com\/cdn\/shop\/files\/Aminos_Watermelon_3x_VSL-1778890887714_5de23727-8a9b-4888-b2cf-809f0ac07103.jpg?v=1784650692\u0026width=800",
3932          alt: "Aminos Powder"
3933        }
3934      
3935    };
3936
3937    
3938      
3939      variantThreeImages["39395537944650"] = {
3940        image: "\/\/www.getkion.com\/cdn\/shop\/files\/Kion_Aminos_Capsules_3x-1780333915235_9da5c787-00a8-4eff-9d2f-1e8bcab9ca39.png?v=1784654893\u0026width=800",
3941        alt: "Aminos Capsules"
3942      };
3943    
3944
3945    
3946      
3947      variantThreeImages["40188270608458"] = {
3948        image: "\/\/www.getkion.com\/cdn\/shop\/files\/variety_3x-1780337071171_25f4d589-2742-45fb-9cd0-c7bdc33a78cb.png?v=1784657089\u0026width=800",
3949        alt: "Aminos Packets"
3950      };
3951    
3952      
3953      variantThreeImages["40188270641226"] = {
3954        image: "\/\/www.getkion.com\/cdn\/shop\/files\/lime_packets_3x-1780696774891_3f861a19-8ed4-43d8-a777-d5eff156be78.png?v=1784657090\u0026width=800",
3955        alt: "Aminos Packets"
3956      };
3957    
3958      
3959      variantThreeImages["40188270673994"] = {
3960        image: "\/\/www.getkion.com\/cdn\/shop\/files\/berry_packets_3x-1780338917916_e4c461f8-66b4-4ac9-8575-39d08937f2db.png?v=1784657089\u0026width=800",
3961        alt: "Aminos Packets"
3962      };
3963    
3964      
3965      variantThreeImages["40188270706762"] = {
3966        image: "\/\/www.getkion.com\/cdn\/shop\/files\/watermelon_packets_3x-1780340266659_b4becc08-a706-44d0-833e-e0c47eede476.png?v=1784657089\u0026width=800",
3967        alt: "Aminos Packets"
3968      };
3969    
3970      
3971      variantThreeImages["40188270739530"] = {
3972        image: "\/\/www.getkion.com\/cdn\/shop\/files\/mango_3x_packets-1780339759500_77a83b9c-c502-4d35-b580-3fa3a03c39b4.png?v=1784657089\u0026width=800",
3973        alt: "Aminos Packets"
3974      };
3975    
3976
3977    var homeBundleSellingPlanByVariant = {};
3978    
3979
3980
3981  
3982  homeBundleSellingPlanByVariant["31767232806986"] = {
3983    one: "4491542602",
3984    three: "4491378762"
3985  };
3986
3987  
3988  homeBundleSellingPlanByVariant["31767232774218"] = {
3989    one: "4491542602",
3990    three: "4491378762"
3991  };
3992
3993  
3994  homeBundleSellingPlanByVariant["39775572426826"] = {
3995    one: "4491542602",
3996    three: "4491378762"
3997  };
3998
3999  
4000  homeBundleSellingPlanByVariant["39775572394058"] = {
4001    one: "4491542602",
4002    three: "4491378762"
4003  };
4004
4005
4006    
4007
4008
4009  
4010  homeBundleSellingPlanByVariant["39395537944650"] = {
4011    one: "4493312074",
4012    three: "4493377610"
4013  };
4014
4015
4016    
4017
4018
4019  
4020  homeBundleSellingPlanByVariant["40188270608458"] = {
4021    one: "4493672522",
4022    three: "4493639754"
4023  };
4024
4025  
4026  homeBundleSellingPlanByVariant["40188270641226"] = {
4027    one: "4493672522",
4028    three: "4493639754"
4029  };
4030
4031  
4032  homeBundleSellingPlanByVariant["40188270673994"] = {
4033    one: "4493672522",
4034    three: "4493639754"
4035  };
4036
4037  
4038  homeBundleSellingPlanByVariant["40188270706762"] = {
4039    one: "4493672522",
4040    three: "4493639754"
4041  };
4042
4043  
4044  homeBundleSellingPlanByVariant["40188270739530"] = {
4045    one: "4493672522",
4046    three: "4493639754"
4047  };
4048
4049
4050
4051    function homeBundleSellingPlan(variantId, quantity) {
4052      var plans = homeBundleSellingPlanByVariant[variantId];
4053      if (!plans) return '';
4054      return quantity === 3 ? plans.three : plans.one;
4055    }
4056
4057    var variants = {
4058      '31767232774218': {
4059        title: 'Aminos Powder', option: 'Mixed Berry Powder', price: 49.95, servings: 30, unit: 'Tub', propertyUnit: 'tub',
4060        image: "\/\/www.getkion.com\/cdn\/shop\/t\/109\/assets\/kion-aminos-mixed-berry-product-desktop.jpg?v=149072002828508172261784609125",
4061        alt: 'Kion Aminos Mixed Berry Powder', plan1: homeBundleSellingPlan('31767232774218', 1), plan3: homeBundleSellingPlan('31767232774218', 3), allowThree: true
4062      },
4063      '39775572394058': {
4064        title: 'Aminos Powder', option: 'Watermelon Powder', price: 49.95, servings: 30, unit: 'Tub', propertyUnit: 'tub',
4065        image: "\/\/www.getkion.com\/cdn\/shop\/t\/109\/assets\/kion-aminos-watermelon-product-desktop.jpg?v=43063352491095319151784609119",
4066        alt: 'Kion Aminos Watermelon Powder', plan1: homeBundleSellingPlan('39775572394058', 1), plan3: homeBundleSellingPlan('39775572394058', 3), allowThree: true
4067      },
4068      '39775572426826': {
4069        title: 'Aminos Powder', option: 'Mango Powder', price: 49.95, servings: 30, unit: 'Tub', propertyUnit: 'tub',
4070        image: "\/\/www.getkion.com\/cdn\/shop\/t\/109\/assets\/kion-aminos-mango-product-desktop.jpg?v=171483512759687480811784609124",
4071        alt: 'Kion Aminos Mango Powder', plan1: homeBundleSellingPlan('39775572426826', 1), plan3: homeBundleSellingPlan('39775572426826', 3), allowThree: true
4072      },
4073      '31767232806986': {
4074        title: 'Aminos Powder', option: 'Cool Lime Powder', price: 49.95, servings: 30, unit: 'Tub', propertyUnit: 'tub',
4075        image: "\/\/www.getkion.com\/cdn\/shop\/t\/109\/assets\/kion-aminos-cool-lime-product-desktop.jpg?v=182159171131452874711784609123",
4076        alt: 'Kion Aminos Cool Lime Powder', plan1: homeBundleSellingPlan('31767232806986', 1), plan3: homeBundleSellingPlan('31767232806986', 3), allowThree: true
4077      },
4078      '39395537944650': {
4079        title: 'Aminos Capsules', option: 'Aminos Capsules', price: 49.95, servings: 30, unit: 'Bottle', propertyUnit: 'bottle',
4080        image: "\/\/www.getkion.com\/cdn\/shop\/t\/109\/assets\/kion-aminos-capsules-product-desktop.jpg?v=96195943
4080130859449771784609123",
4081        alt: 'Kion Aminos Capsules', plan1: homeBundleSellingPlan('39395537944650', 1), plan3: homeBundleSellingPlan('39395537944650', 3), allowThree: true
4082      },
4083      '40188270608458': {
4084        title: 'Aminos Variety Bundle', option: 'Aminos Variety Bundle (Packets)', price: 79.95, servings: 32, unit: 'Bundle', propertyUnit: 'box',
4085        image: "\/\/www.getkion.com\/cdn\/shop\/t\/109\/assets\/kion-aminos-packets-product-desktop.jpg?v=1600905553498750731784609119",
4086        alt: 'Kion Aminos Variety Bundle Packets', plan1: homeBundleSellingPlan('40188270608458', 1), plan3: homeBundleSellingPlan('40188270608458', 3), allowThree: true
4087      }
4088    };
4089
4090    var rates = {
4091      onetime: { 1: 1, 3: 0.95 },
4092      subscription: { 1: 0.9, 3: 0.85 }
4093    };
4094
4095    var state = {
4096      variantId: "31767232806986",
4097      quantity: 3,
4098      purchase: 'subscription'
4099    };
4100
4101    var form = root.querySelector('#home-bundle-product-form');
4102    var flavor = root.querySelector('[data-home-bundle-flavor]');
4103    var variantInput = root.querySelector('[data-home-bundle-variant]');
4104    var quantityInput = root.querySelector('[data-home-bundle-quantity]');
4105    var planInput = root.querySelector('[data-home-bundle-selling-plan]');
4106    var propertyInput = root.querySelector('[data-home-bundle-property]');
4107    var image = root.querySelector('[data-home-bundle-image]');
4108    var title = root.querySelector('[data-home-bundle-title]');
4109    var comparePrice = root.querySelector('[data-home-bundle-compare-price]');
4110    var currentPrice = root.querySelector('[data-home-bundle-current-price]');
4111    var savingsLabel = root.querySelector('[data-home-bundle-savings-label]');
4112    var servingPrice = root.querySelector('[data-home-bundle-serving-price]');
4113    var onetimeTotal = root.querySelector('[data-home-bundle-onetime-total]');
4114    var subscriptionTotal = root.querySelector('[data-home-bundle-subscription-total]');
4115    var frequency = root.querySelector('[data-home-bundle-frequency]');
4116    var subscriptionCopy = root.querySelector('[data-home-bundle-subscription-copy]');
4117    var quantityCards = root.querySelectorAll('[data-home-bundle-quantity-option]');
4118    var purchaseInputs = root.querySelectorAll('[data-home-bundle-purchase]');
4119    var purchaseCards = root.querySelectorAll('[data-home-bundle-purchase-card]');
4120
4121    function roundCurrency(value) {
4122      return Math.round((value + Number.EPSILON) * 100) / 100;
4123    }
4124
4125    function money(value) {
4126      return '$' + roundCurrency(value).toFixed(2);
4127    }
4128
4129    function perUnit(variant, purchase, quantity) {
4130      return roundCurrency(variant.price * rates[purchase][quantity]);
4131    }
4132
4133    function total(variant, purchase, quantity) {
4134      return roundCurrency(perUnit(variant, purchase, quantity) * quantity);
4135    }
4136
4137    function savingsPercent(purchase, quantity) {
4138      return Math.round((1 - rates[purchase][quantity]) * 100);
4139    }
4140
4141    function pluralUnit(variant, quantity) {
4142      return quantity === 1 ? variant.unit : variant.unit + 's';
4143    }
4144
4145    function updateQuantityCard(variant, quantity) {
4146      var card = root.querySelector('[data-home-bundle-quantity-option="' + quantity + '"]');
4147      if (!card) return;
4148
4149      var unitPrice = perUnit(variant, state.purchase, quantity);
4150      var savings = savingsPercent(state.purchase, quantity);
4151      var cardTotal = total(variant, state.purchase, quantity);
4152      var savingsNode = root.querySelector('[data-home-bundle-savings="' + quantity + '"]');
4153
4154      root.querySelector('[data-home-bundle-quantity-name="' + quantity + '"]').textContent = quantity + ' ' + pluralUnit(variant, quantity);
4155      root.querySelector('[data-home-bundle-quantity-price="' + quantity + '"]').textContent = money(unitPrice);
4156      root.querySelector('[data-home-bundle-per-unit="' + quantity + '"]').textContent = 'Per ' + variant.unit;
4157
4158      savingsNode.textContent = savings ? 'Save ' + savings + '%' : 'Full Price';
4159      if (cardTotal >= 100) {
4160        var shipping = document.createElement('small');
4161        shipping.textContent = '+ Free Shipping';
4162        savingsNode.appendChild(shipping);
4163      }
4164    }
4165
4166    function render() {
4167      var variant = variants[state.variantId];
4168      if (!variant) return;
4169
4170      if (!variant.allowThree && state.quantity === 3) state.quantity = 1;
4171
4172      var selectedPerUnit = perUnit(variant, state.purchase, state.quantity);
4173      var selectedSavings = savingsPercent(state.purchase, state.quantity);
4174
4175      title.textContent = variant.title;
4176      comparePrice.textContent = money(variant.price);
4177      currentPrice.textContent = money(selectedPerUnit);
4178      comparePrice.hidden = selectedSavings === 0;
4179      if (savingsLabel) {
4180        savingsLabel.textContent = selectedSavings + '% Off';
4181        savingsLabel.hidden = selectedSavings === 0;
4182      }
4183      servingPrice.textContent = money(selectedPerUnit / variant.servings) + ' per serving';
4184      var threeImage = variantThreeImages[state.variantId];
4185      image.src = state.quantity === 3 && threeImage && threeImage.image ? threeImage.image : variant.image;
4186      image.alt = state.quantity === 3 && threeImage && threeImage.alt ? threeImage.alt : variant.alt;
4187
4188      onetimeTotal.textContent = money(total(variant, 'onetime', state.quantity));
4189      subscriptionTotal.textContent = money(total(variant, 'subscription', state.quantity));
4190      frequency.textContent = state.quantity === 3 ? 'Every 3 Months' : 'Monthly Delivery';
4191      subscriptionCopy.textContent = savingsPercent('subscription', state.quantity) + '% off every order, guaranteed deliveries, pause or modify any time';
4192
4193      updateQuantityCard(variant, 1);
4194      updateQuantityCard(variant, 3);
4195
4196      quantityCards.forEach(function (card) {
4197        var quantity = Number(card.getAttribute('data-home-bundle-quantity-option'));
4198        var selected = quantity === state.quantity;
4199        card.classList.toggle('is-selected', selected);
4200        card.setAttribute('aria-pressed', selected ? 'true' : 'false');
4201        card.hidden = quantity === 3 && !variant.allowThree;
4202      });
4203
4204      purchaseCards.forEach(function (card) {
4205        card.classList.toggle('is-selected', card.getAttribute('data-home-bundle-purchase-card') === state.purchase);
4206      });
4207
4208      variantInput.value = state.variantId;
4209      quantityInput.value = String(state.quantity);
4210      flavor.value = state.variantId;
4211
4212      if (state.purchase === 'subscription') {
4213        planInput.disabled = false;
4214        planInput.value = state.quantity === 3 ? variant.plan3 : variant.plan1;
4215      } else {
4216        planInput.disabled = true;
4217        planInput.value = '';
4218      }
4219
4220      propertyInput.value = state.quantity + '-' + variant.propertyUnit + '-' + (state.purchase === 'subscription' ? 'sub' : 'one') + '-hp';
4221    }
4222
4223    flavor.addEventListener('change', function () {
4224      state.variantId = this.value;
4225      render();
4226    });
4227
4228    quantityCards.forEach(function (card) {
4229      card.addEventListener('click', function () {
4230        state.quantity = Number(this.getAttribute('data-home-bundle-quantity-option'));
4231        render();
4232      });
4233    });
4234
4235    purchaseInputs.forEach(function (input) {
4236      input.addEventListener('change', function () {
4237        state.purchase = this.value;
4238        render();
4239      });
4240    });
4241
4242    form.addEventListener('submit', render);
4243    render();
4244  })();
4245</script>
4245
4246
4247
4248
4249
4250</div><div id="shopify-section-template--20255609454666__home_mountain_parallax" class="shopify-section">
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260<style>
4261  #shopify-section-template--20255609454666__home_mountain_parallax .kion-home-mountain-parallax {
4262    background-attachment: fixed;
4263    background-image: url('//www.getkion.com/cdn/shop/files/kion-mountain-desktop.webp?v=1780593715&width=2400');
4264    background-position: center 20px;
4265    background-repeat: no-repeat;
4266    background-size: cover;
4267    min-height: 85vh;
4268    padding: 0;
4269  }
4270
4271  #shopify-section-template--20255609454666__home_mountain_parallax .kion-home-mountain-parallax-mobile {
4272    padding: 0;
4273  }
4274
4275  #shopify-section-template--20255609454666__home_mountain_parallax .kion-home-mountain-parallax-mobile img {
4276    display: block;
4277    height: auto;
4278    width: 100%;
4279  }
4280
4281  @media screen and (max-width: 599px) {
4282    #shopify-section-template--20255609454666__home_mountain_parallax .kion-home-mountain-parallax {
4283      display: none;
4284    }
4285  }
4286</style>
4287
4288<div class="row-new-home medium-background desktop kion-home-mountain-parallax"></div>
4289<div class="row-new-home medium-background mobile kion-home-mountain-parallax-mobile">
4290  <img src="//www.getkion.com/cdn/shop/files/kion-mountain-mobile.jpg?v=1780593909&width=1600" alt="Man running down a mountain" width="800" height="1032">
4291</div>
4292
4293
4294</div><div id="shopify-section-template--20255609454666__home_amino_slider" class="shopify-section">
4295
4296
4297
4298
4299
4300<style>
4301  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider {
4302    overflow: hidden;
4303    padding-top: 20px;
4304  }
4305
4306  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__carousel {
4307    margin: 0 auto;
4308    max-width: 1480px;
4309    outline: none;
4310  }
4311
4312  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__viewport {
4313    overflow: hidden;
4314    touch-action: pan-y;
4315  }
4316
4317  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__track {
4318    --kion-home-slider-per-view: 1;
4319    display: flex;
4320    margin: 0 -10px;
4321    padding-bottom: 30px;
4322    transition: transform .35s ease;
4323    will-change: transform;
4324  }
4325
4326  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__slide {
4327    box-sizing: border-box;
4328    display: flex;
4329    flex: 0 0 calc(100% / var(--kion-home-slider-per-view));
4330    padding: 0 10px;
4331  }
4332
4333  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__slide img {
4334    display: block;
4335    height: auto;
4336    width: 100%;
4337  }
4338
4339  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__card {
4340    aspect-ratio: 918 / 1104;
4341    background: #f9f9f9;
4342    border-radius: 24px;
4343    box-shadow: 0 4px 18px rgba(0, 0, 0, .08);
4344    box-sizing: border-box;
4345    color: #222;
4346    display: flex;
4347    flex-direction: column;
4348    justify-content: center;
4349    padding: 34px 30px;
4350    text-align: center;
4351    width: 100%;
4352  }
4353
4354  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__card:not(.kion-home-amino-slider__card--no-graphic) {
4355    display: grid;
4356    gap: 20px;
4357    grid-template-rows: minmax(0, 1fr) auto;
4358  }
4359
4360  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__card--no-graphic {
4361    align-items: flex-start;
4362    background: #5b5b5b;
4363    color: #fff;
4364    text-align: left;
4365  }
4366
4367  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__graphic {
4368    align-items: center;
4369    display: flex;
4370    height: 100%;
4371    justify-content: center;
4372    margin: 0 auto;
4373    max-width: 100%;
4374    min-height: 0;
4375    width: 100%;
4376  }
4377
4378  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__graphic img {
4379    height: 100%;
4380    max-height: 100%;
4381    max-width: 100%;
4382    object-fit: contain;
4383    width: auto;
4384  }
4385
4386  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__content {
4387    margin: 0 auto;
4388    max-width: 520px;
4389    min-width: 0;
4390  }
4391
4392  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__heading {
4393    font-size: 34px;
4394    font-weight: 400;
4395    line-height: 1.15;
4396    margin: 0 0 16px;
4397  }
4398
4399  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__text {
4400    font-size: 21px;
4401    line-height: 1.35;
4402  }
4403
4404  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__text p {
4405    margin: 0;
4406  }
4407
4408  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__dots {
4409    align-items: center;
4410    bottom: 0;
4411    display: flex;
4412    gap: 8px;
4413    justify-content: center;
4414    padding: 0 0 20px;
4415  }
4416
4417  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__dot {
4418    appearance: none;
4419    background: #c9c9c9;
4420    border: 0;
4421    border-radius: 999px;
4422    cursor: pointer;
4423    display: block;
4424    height: 8px;
4425    margin: 0;
4426    padding: 0;
4427    width: 8px;
4428  }
4429
4430  #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__dot.is-active {
4431    background: #333;
4432  }
4433
4434  @media screen and (min-width: 600px) {
4435    #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__track {
4436      --kion-home-slider-per-view: 2;
4437    }
4438
4439    #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__card {
4440      aspect-ratio: 918 / 1080;
4441      padding: 30px 26px;
4442    }
4443  }
4444
4445  @media screen and (min-width: 960px) {
4446    #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__track {
4447      --kion-home-slider-per-view: 3;
4448    }
4449
4450    #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__card {
4451      aspect-ratio: 918 / 1060;
4452      padding: 34px 30px;
4453    }
4454  }
4455
4456  @media screen and (max-width: 599px) {
4457    #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__track {
4458      margin: 0;
4459    }
4460
4461    #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__slide {
4462      padding: 0 18px;
4463    }
4464
4465    #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__card {
4466      padding: 30px 24px;
4467    }
4468
4469    #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__heading {
4470      font-size: 31px;
4471      line-height: 1.18;
4472    }
4473
4474    #shopify-section-template--20255609454666__home_amino_slider .kion-home-amino-slider__text {
4475      font-size: 20px;
4476    }
4477  }
4478</style>
4479
4480<div class="row-new-home medium-background kion-home-amino-slider">
4481  <div
4482    class="kion-home-amino-slider__carousel"
4483    data-kion-home-amino-slider
4484    data-slide-count="9"
4485    role="region"
4486    aria-label="Essential amino acids image slider"
4487    tabindex="0"
4488  >
4489    <div class="kion-home-amino-slider__viewport" data-slider-viewport>
4490      <div class="kion-home-amino-slider__track" data-slider-track>
4491        
4492          
4493            
4494            
4495            
4496            
4497
4498            
4499            
4500            
4501
4502            <div class="kion-home-amino-slider__slide medium-background" >
4503              
4504                <div class="kion-home-amino-slider__card kion-home-amino-slider__card--no-graphic">
4505                  
4506
4507                  <div class="kion-home-amino-slider__content">
4508                    
4509                      <h3 class="kion-home-amino-slider__heading" role="heading" aria-level="2">What are essential amino acids<br />
4510(EAAs)?</h3>
4511                    
4512                    
4513                      <div class="kion-home-amino-slider__text"><p>Swipe left to learn what EAAs are, and why your body needs them to function optimally.</p></div>
4514                    
4515                  </div>
4516                </div>
4517              
4518            </div>
4519          
4520            
4521            
4522            
4523            
4524
4525            
4526            
4527            
4528
4529            <div class="kion-home-amino-slider__slide medium-background" >
4530              
4531                <div class="kion-home-amino-slider__card">
4532                  
4533                    <div class="kion-home-amino-slider__graphic">
4534                      <img src="//www.getkion.com/cdn/shop/files/waeaa-2-gra
4534phic.jpg?v=1780634266&width=900" alt="Human body illustration showing amino acids" width="620" height="740" loading="lazy">
4535                    </div>
4536                  
4537
4538                  <div class="kion-home-amino-slider__content">
4539                    
4540                    
4541                      <div class="kion-home-amino-slider__text"><p>Over half of your body's solid mass is amino acids.</p></div>
4542                    
4543                  </div>
4544                </div>
4545              
4546            </div>
4547          
4548            
4549            
4550            
4551            
4552
4553            
4554            
4555            
4556
4557            <div class="kion-home-amino-slider__slide medium-background" >
4558              
4559                <div class="kion-home-amino-slider__card">
4560                  
4561                    <div class="kion-home-amino-slider__graphic">
4562                      <img src="//www.getkion.com/cdn/shop/files/waeaa-3-graphic.jpg?v=1780634312&width=900" alt="Icons for muscle, brain, and hair" width="620" height="740" loading="lazy">
4563                    </div>
4564                  
4565
4566                  <div class="kion-home-amino-slider__content">
4567                    
4568                    
4569                      <div class="kion-home-amino-slider__text"><p>Amino acids form the proteins that make up your muscles, organs, hormones, hair, skin, and nails.</p></div>
4570                    
4571                  </div>
4572                </div>
4573              
4574            </div>
4575          
4576            
4577            
4578            
4579            
4580
4581            
4582            
4583            
4584
4585            <div class="kion-home-amino-slider__slide medium-background" >
4586              
4587                <div class="kion-home-amino-slider__card">
4588                  
4589                    <div class="kion-home-amino-slider__graphic">
4590                      <img src="//www.getkion.com/cdn/shop/files/waeaa-4-graphic.jpg?v=1780634312&width=900" alt="Muscle and brain amino acids entering the bloodstream" width="620" height="740" loading="lazy">
4591                    </div>
4592                  
4593
4594                  <div class="kion-home-amino-slider__content">
4595                    
4596                    
4597                      <div class="kion-home-amino-slider__text"><p>To maintain healthy cellular function, your body is constantly breaking down these proteins and rebuilding them.</p></div>
4598                    
4599                  </div>
4600                </div>
4601              
4602            </div>
4603          
4604            
4605            
4606            
4607            
4608
4609            
4610            
4611            
4612
4613            <div class="kion-home-amino-slider__slide medium-background" >
4614              
4615                <div class="kion-home-amino-slider__card">
4616                  
4617                    <div class="kion-home-amino-slider__graphic">
4618                      <img src="//www.getkion.com/cdn/shop/files/waeaa-5-graphic.jpg?v=1780634312&width=900" alt="Amino acids moving from bloodstream to muscle and waste" width="620" height="740" loading="lazy">
4619                    </div>
4620                  
4621
4622                  <div class="kion-home-amino-slider__content">
4623                    
4624                    
4625                      <div class="kion-home-amino-slider__text"><p>When proteins are broken down, some amino acids can be reused to build new proteins, while others are unusable and discarded through urine.</p></div>
4626                    
4627                  </div>
4628                </div>
4629              
4630            </div>
4631          
4632            
4633            
4634            
4635            
4636
4637            
4638            
4639            
4640
4641            <div class="kion-home-amino-slider__slide medium-background" >
4642              
4643                <div class="kion-home-amino-slider__card">
4644                  
4645                    <div class="kion-home-amino-slider__graphic">
4646                      <img src="//www.getkion.com/cdn/shop/files/waeaa-6-graphic.jpg?v=1780634312&width=900" alt="Amino acids moving from muscle to brain" width="620" height="740" loading="lazy">
4647                    </div>
4648                  
4649
4650                  <div class="kion-home-amino-slider__content">
4651                    
4652                    
4653                      <div class="kion-home-amino-slider__text"><p>To compensate for discarded amino acids, your body breaks down muscle to supply other organs with amino acids to rebuild proteins.</p></div>
4654                    
4655                  </div>
4656                </div>
4657              
4658            </div>
4659          
4660            
4661            
4662            
4663            
4664
4665            
4666            
4667            
4668
4669            <div class="kion-home-amino-slider__slide medium-background" >
4670              
4671                <div class="kion-home-amino-slider__card">
4672                  
4673                    <div class="kion-home-amino-slider__graphic">
4674                      <img src="//www.getkion.com/cdn/shop/files/waeaa-7-graphic.jpg?v=1780634312&width=900" alt="Food supplying amino acids through the bloodstream" width="620" height="740" loading="lazy">
4675                    </div>
4676                  
4677
4678                  <div class="kion-home-amino-slider__content">
4679                    
4680                    
4681                      <div class="kion-home-amino-slider__text"><p>To avoid muscle breakdown and give organs what they need directly, you must consume essential amino acids via dietary protein or supplements.</p></div>
4682                    
4683                  </div>
4684                </div>
4685              
4686            </div>
4687          
4688            
4689            
4690            
4691            
4692
4693            
4694            
4695            
4696
4697            <div class="kion-home-amino-slider__slide medium-background" >
4698              
4699                <div class="kion-home-amino-slider__card">
4700                  
4701                    <div class="kion-home-amino-slider__graphic">
4702                      <img src="//www.getkion.com/cdn/shop/files/waeaa-9-graphic.jpg?v=1780634312&width=900" alt="Chart comparing EAA percentages in protein sources" width="620" height="740" loading="lazy">
4703                    </div>
4704                  
4705
4706                  <div class="kion-home-amino-slider__content">
4707                    
4708                    
4709                      <div class="kion-home-amino-slider__text"><p>High-protein foods contain up to 25% essential amino acids, whereas EAA supplements are 100% EAAs.</p></div>
4710                    
4711                  </div>
4712                </div>
4713              
4714            </div>
4715          
4716            
4717            
4718            
4719            
4720
4721            
4722            
4723            
4724
4725            <div class="kion-home-amino-slider__slide medium-background" >
4726              
4727                <div class="kion-home-amino-slider__card">
4728                  
4729                    <div class="kion-home-amino-slider__graphic">
4730                      <img src="//www.getkion.com/cdn/shop/files/waeaa-10-graphic.jpg?v=1780634312&width=900" alt="Kion supplement containers" width="620" height="740" loading="lazy">
4731                    </div>
4732                  
4733
4734                  <div class="kion-home-amino-slider__content">
4735                    
4736                    
4737                      <div class="kion-home-amino-slider__text"><p>EAA supplements do not require digestion and are absorbed almost immediately, making them the most bioavailable source of EAAs.</p></div>
4738                    
4739                  </div>
4740                </div>
4741              
4742            </div>
4743          
4744        
4745      </div>
4746    </div>
4747    <div class="kion-home-amino-slider__dots" data-slider-dots>
4748      
4749        <button
4750          type="button"
4751          class="kion-home-amino-slider__dot is-active"
4752          data-slide-index="0"
4753          aria-label="Go to slide 1"
4754          aria-current="true"
4755        ></button>
4756      
4757        <button
4758          type="button"
4759          class="kion-home-amino-slider__dot"
4760          data-slide-index="1"
4761          aria-label="Go to slide 2"
4762          aria-current="false"
4763        ></button>
4764      
4765        <button
4766          type="button"
4767          class="kion-home-amino-slider__dot"
4768          data-slide-index="2"
4769          aria-label="Go to slide 3"
4770          aria-current="false"
4771        ></button>
4772      
4773        <button
4774          type="button"
4775          class="kion-home-amino-slider__dot"
4776          data-slide-index="3"
4777          aria-label="Go to slide 4"
4778          aria-current="false"
4779        ></button>
4780      
4781        <button
4782          type="button"
4783          class="kion-home-amino-slider__dot"
4784          data-slide-index="4"
4785          aria-label="Go to slide 5"
4786          aria-current="false"
4787        ></button>
4788      
4789        <button
4790          type="button"
4791          class="kion-home-amino-slider__dot"
4792          data-slide-index="5"
4793          aria-label="Go to slide 6"
4794          aria-current="false"
4795        ></button>
4796      
4797        <button
4798          type="button"
4799          class="kion-home-amino-slider__dot"
4800          data-slide-index="6"
4801          aria-label="Go to slide 7"
4802          aria-current="false"
4803        ></button>
4804      
4805        <button
4806          type="button"
4807          class="kion-home-amino-slider__dot"
4808          data-slide-index="7"
4809          aria-label="Go to slide 8"
4810          aria-current="false"
4811        ></button>
4812      
4813        <button
4814          type="button"
4815          class="kion-home-amino-slider__dot"
4816          data-slide-index="8"
4817          aria-label="Go to slide 9"
4818          aria-current="false"
4819        ></button>
4820      
4821    </div>
4822  </div>
4823
4824  
4825    <div class="inner-row-new-home mobile">
4826      
4827        <p>Kion Aminos contains all 9 EAAs, is easy for your body to digest and absorb, contains up to 8x more essential amino acids than whole food protein, and tastes great with fruity, natural flavors.</p>
4828      
4829      
4830        <a href="#buy" class="new-home-button">GET YOUR AMINOS</a>
4831      
4832    </div>
4833  
4834</div>
4835
4836<script>
4837  (function () {
4838    function initKionHomeAminoSliders(root) {
4839      var scope = root || document;
4840      var sliders = scope.querySelectorAll('[data-kion-home-amino-slider]');
4841
4842      sliders.forEach(function (slider) {
4843        if (slider.dataset.initialized === 'true') {
4844          return;
4845        }
4846
4847        var track = slider.querySelector('[data-slider-track]');
4848        var viewport = slider.querySelector('[data-slider-viewport]');
4849        var dots = Array.prototype.slice.call(slider.querySelectorAll('[data-slide-index]'));
4850        var slideCount = parseInt(slider.dataset.slideCount, 10);
4851        var index = 0;
4852        var startX = null;
4853        var startY = null;
4854
4855        if (!track || !viewport || !slideCount) {
4856          return;
4857        }
4858
4859        slider.dataset.initialized = 'true';
4860
4861        function getSlidesPerView() {
4862          if (window.matchMedia('(min-width: 960px)').matches) {
4863            return 3;
4864          }
4865
4866          return window.matchMedia('(min-width: 600px)').matches ? 2 : 1;
4867        }
4868
4869        function getMaxIndex() {
4870          return Math.max(slideCount - getSlidesPerView(), 0);
4871        }
4872
4873        function setActiveDot() {
4874          var maxIndex = getMaxIndex();
4875
4876          dots.forEach(function (dot, dotIndex) {
4877            var isActive = dotIndex === index;
4878            dot.hidden = dotIndex > maxIndex;
4879            dot.classList.toggle('is-active', isActive);
4880            dot.setAttribute('aria-current', isActive ? 'true' : 'false');
4881          });
4882        }
4883
4884        function update(animate) {
4885          var slidesPerView = getSlidesPerView();
4886          index = Math.min(index, getMaxIndex());
4887          track.style.setProperty('--kion-home-slider-per-view', slidesPerView);
4888          track.style.transition = animate ? 'transform .35s ease' : 'none';
4889          track.style.transform = 'translate3d(-' + (index * (100 / slidesPerView)) + '%, 0, 0)';
4890          setActiveDot();
4891
4892          if (!animate) {
4893            window.requestAnimationFrame(function () {
4894              track.style.transition = 'transform .35s ease';
4895            });
4896          }
4897        }
4898
4899        function goTo(nextIndex) {
4900          var maxIndex = getMaxIndex();
4901
4902          if (maxIndex < 1) {
4903            return;
4904          }
4905
4906          index = Math.max(0, Math.min(nextIndex, maxIndex));
4907          update(true);
4908        }
4909
4910        function next() {
4911          goTo(index + 1);
4912        }
4913
4914        function previous() {
4915          goTo(index - 1);
4916        }
4917
4918        dots.forEach(function (dot) {
4919          dot.addEventListener('click', function () {
4920            goTo(parseInt(dot.dataset.slideIndex, 10));
4921          });
4922        });
4923
4924        slider.addEventListener('keydown', function (event) {
4925          if (event.key === 'ArrowRight') {
4926            event.preventDefault();
4927            next();
4928          }
4929
4930          if (event.key === 'ArrowLeft') {
4931            event.preventDefault();
4932            previous();
4933          }
4934        });
4935
4936        viewport.addEventListener('touchstart', function (event) {
4937          if (!event.touches.length) {
4938            return;
4939          }
4940
4941          startX = event.touches[0].clientX;
4942          startY = event.touches[0].clientY;
4943        }, { passive: true });
4944
4945        viewport.addEventListener('touchend', function (event) {
4946          if (startX === null || !event.changedTouches.length) {
4947            return;
4948          }
4949
4950          var diffX = event.changedTouches[0].clientX - startX;
4951          var diffY = event.changedTouches[0].clientY - startY;
4952          startX = null;
4953          startY = null;
4954
4955          if (Math.abs(diffX) < 45 || Math.abs(diffX) <= Math.abs(diffY)) {
4956            return;
4957          }
4958
4959          if (diffX < 0) {
4960            next();
4961          } else {
4962            previous();
4963          }
4964        }, { passive: true });
4965
4966        window.addEventListener('resize', function () {
4967          update(false);
4968        });
4969
4970        update(false);
4971      });
4972    }
4973
4974    if (document.readyState === 'loading') {
4975      document.addEventListener('DOMContentLoaded', function () {
4976        initKionHomeAminoSliders(document);
4977      });
4978    } else {
4979      initKionHomeAminoSliders(document);
4980    }
4981
4982    document.addEventListener('shopify:section:load', function (event) {
4983      initKionHomeAminoSliders(event.target);
4984    });
4985  })();
4986</script>
4986
4987
4988
4989</div><div id="shopify-section-template--20255609454666__home_energy_recovery" class="shopify-section">
4990
4991
4992
4993
4994
4995
4996
4997
4998<style>
4999  #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery {
5000    padding: 0 50px 50px;
5001  }
5002
5003  #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery__desktop-inner {
5004    align-items: baseline;
5005    display: grid;
5006    gap: 0;
5007    grid-template-columns: repeat(4, minmax(0, 1fr));
5008  }
5009
5010  #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery__intro,
5011  #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery__item {
5012    padding: 10px;
5013  }
5014
5015  #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery__item p {
5016    font-size: 18px;
5017    line-height: 32px;
5018  }
5019
5020  #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery__mobile {
5021    padding: 20px 0 0;
5022  }
5023
5024  #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery__mobile h2 {
5025    margin-bottom: 16px;
5026  }
5027
5028  #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery__mobile summary.new-home-accordion-title {
5029    justify-content: flex-start;
5030    text-align: left;
5031  }
5032
5033  #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery__accordion-label {
5034    display: block;
5035    flex: 1 1 auto;
5036    height: auto;
5037    min-width: 0;
5038    text-align: left;
5039    width: auto;
5040  }
5041
5042  #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery__accordion-label::after {
5043    content: none;
5044  }
5045
5046  #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery__accordion-icon {
5047    flex: 0 0 25px;
5048    margin-left: 12px;
5049  }
5050
5051  @media screen and (max-width: 599px) {
5052    #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery {
5053      padding: 20px 0;
5054    }
5055  }
5056
5057  @media screen and (min-width: 600px) and (max-width: 1199px) {
5058    #shopify-section-template--20255609454666__home_energy_recovery .kion-home-energy-recovery__desktop-inner {
5059      grid-template-columns: repeat(2, minmax(0, 1fr));
5060    }
5061  }
5062</style>
5063
5064<div class="row-new-home desktop medium-background kion-home-energy-recovery">
5065  <div class="inner-row-new-home kion-home-energy-recovery__desktop-inner">
5066    <div class="kion-home-energy-recovery__intro">
5067      <h2>Aminos become more important with dieting, GLP-1 use, stress, aging, and exercise.</h2>
5068      
5069        <a href="#buy" class="new-home-button">GET YOUR AMINOS</a>
5070      
5071    </div>
5072
5073    
5074      
5075      
5076      
5077        <div class="kion-home-energy-recovery__item" >
5078          
5079            <h4 role="heading" aria-level="3">Steady Energy</h4>
5080          
5081          
5082            <p>Supports your body’s natural energy from within so you feel more energetic throughout the day—without the need for caffeine or other stimulants.</p>
5083          
5084        </div>
5085      
5086    
5087      
5088      
5089      
5090        <div class="kion-home-energy-recovery__item" >
5091          
5092            <h4 role="heading" aria-level="3">Lean Muscle</h4>
5093          
5094          
5095            <p>Delivers all 9 essential amino acids, the active part of protein that triggers protein synthesis. 40% leucine for a stronger muscle-building signal.</p>
5096          
5097        </div>
5098      
5099    
5100      
5101      
5102      
5103        <div class="kion-home-energy-recovery__item" >
5104          
5105            <h4 role="heading" aria-level="3">Daily Wellness</h4>
5106          
5107          
5108            <p>Supports whole body protein synthesis any time, and helps reduce next-day soreness—so you’re always ready for what’s next.</p>
5109          
5110        </div>
5111      
5112    
5113  </div>
5114</div>
5115
5116<div class="row-new-home mobile medium-background kion-home-energy-recovery__mobile">
5117  
5118    <img src="https://www.getkion.com/cdn/shop/t/109/assets/energy-muscle-recovery-mobile.jpg?v=66806946349085024321784609121" alt="Energy, muscle, and recovery to help you look good, feel young, and be strong" width="1200" height="900" loading="lazy" style="display: block; width: 100%; height: auto;">
5119  
5120  <div class="inner-row-new-home">
5121    <h2>Aminos become more important with dieting, GLP-1 use, stress, aging, and exercise.</h2>
5122    
5123      
5124      
5125      
5126        <details class="new-home-accordion-box-item" >
5127          
5128            <summary class="new-home-accordion-title"><span class="kion-home-energy-recovery__accordion-label">Steady Energy</span><span class="kion-home-energy-recovery__accordion-icon" aria-hidden="true"></span></summary>
5129          
5130          
5131            <div>
5132              <p>Supports your body’s natural energy from within so you feel more energetic throughout the day—without the need for caffeine or other stimulants.</p>
5133            </div>
5134          
5135        </details>
5136      
5137    
5138      
5139      
5140      
5141        <details class="new-home-accordion-box-item" >
5142          
5143            <summary class="new-home-accordion-title"><span class="kion-home-energy-recovery__accordion-label">Lean Muscle</span><span class="kion-home-energy-recovery__accordion-icon" aria-hidden="true"></span></summary>
5144          
5145          
5146            <div>
5147              <p>Delivers all 9 essential amino acids, the active part of protein that triggers protein synthesis. 40% leucine for a stronger muscle-building signal.</p>
5148            </div>
5149          
5150        </details>
5151      
5152    
5153      
5154      
5155      
5156        <details class="new-home-accordion-box-item" >
5157          
5158            <summary class="new-home-accordion-title"><span class="kion-home-energy-recovery__accordion-label">Daily Wellness</span><span class="kion-home-energy-recovery__accordion-icon" aria-hidden="true"></span></summary>
5159          
5160          
5161            <div>
5162              <p>Supports whole body protein synthesis any time, and helps reduce next-day soreness—so you’re always ready for what’s next.</p>
5163            </div>
5164          
5165        </details>
5166      
5167    
5168    
5169      <a href="#buy" class="new-home-button">GET YOUR AMINOS</a>
5170    
5171  </div>
5172</div>
5173
5174
5175</div><div id="shopify-section-template--20255609454666__home_fitness_hero_emcfAK" class="shopify-section">
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185<style>
5186  #shopify-section-template--20255609454666__home_fitness_hero_emcfAK .kion-home-fitness-hero__subtitle {
5187    color: #ffffff;
5188    font-size: 20px;
5189    line-height: 30px;
5190    margin-top: 12px;
5191    max-width: 560px;
5192  }
5193
5194  #shopify-section-template--20255609454666__home_fitness_hero_emcfAK .kion-home-fitness-image {
5195    padding: 0 50px;
5196  }
5197
5198  #shopify-section-template--20255609454666__home_fitness_hero_emcfAK .kion-home-fitness-image img {
5199    display: block;
5200    height: auto;
5201    width: 100%;
5202  }
5203
5204  
5205
5206  @media screen and (max-width: 599px) {
5207    
5208      #shopify-section-template--20255609454666__home_fitness_hero_emcfAK { display: none; }
5209    
5210    #shopify-section-template--20255609454666__home_fitness_hero_emcfAK .kion-home-fitness-image { padding: 0; }
5211  }
5212
5213  @media screen and (min-width: 600px) {
5214    
5215  }
5216
5217  #shopify-section-template--20255609454666__home_fitness_hero_emcfAK .kion-home-fitness-hero {
5218    align-items: flex-start;
5219    
5220      background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.52), rgba(0, 0, 0, 0.08) 62%), url('//www.getkion.com/cdn/shop/files/kion-powder-features-desktop-v3.jpg?v=1780594628&width=2400');
5221    
5222    background-position: bottom right;
5223    background-size: cover;
5224    display: flex;
5225    min-height: 800px;
5226    padding: 50px;
5227  }
5228
5229  #shopify-section-template--20255609454666__home_fitness_hero_emcfAK .kion-home-fitness-hero__inner {
5230    max-width: 760px;
5231  }
5232
5233  #shopify-section-template--20255609454666__home_fitness_hero_emcfAK .kion-home-fitness-hero__title {
5234    color: #ffffff;
5235    font-size: 60px;
5236    line-height: 68px;
5237    margin: 0;
5238    padding-top: 0;
5239  }
5240
5241  @media screen and (max-width: 599px) {
5242    #shopify-section-template--20255609454666__home_fitness_hero_emcfAK .kion-home-fitness-hero {
5243      align-items: flex-start;
5244      
5245        background-image: linear-gradient(180deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.58)), url('//www.getkion.com/cdn/shop/files/kion-powder-features-desktop-v3.jpg?v=1780594628&width=2400');
5246      
5247      background-position: center;
5248      min-height: 520px;
5249      padding: 46px 20px;
5250    }
5251
5252    #shopify-section-template--20255609454666__home_fitness_hero_emcfAK .kion-home-fitness-hero__inner {
5253      max-width: 90%;
5254    }
5255
5256    #shopify-section-template--20255609454666__home_fitness_hero_emcfAK .kion-home-fitness-hero__title {
5257      font-size: 40px;
5258      line-height: 45px;
5259      padding-top: 0;
5260    }
5261  }
5262</style>
5263
5264
5265  <div class="row-new-home medium-background kion-home-fitness-image">
5266    <div class="inner-row-new-home" style="padding: 0;">
5267      <img src="//www.getkion.com/cdn/shop/files/kion-powder-features-desktop-v3.jpg?v=1780594628&width=2400" alt="Sugar-free, Non-GMO, Vegan, Soy-free, Gluten-free, Natural Flavors" width="2400" height="1600" loading="lazy">
5268    </div>
5269  </div>
5270
5271
5272
5273</div><div id="shopify-section-template--20255609454666__home_reviews_CEXD6t" class="shopify-section">
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283<style>
5284  #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews {
5285    padding-bottom: 10px;
5286  }
5287
5288  #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__inner {
5289    padding: 0;
5290  }
5291
5292  #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__title {
5293    margin-bottom: 20px;
5294  }
5295
5296  #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__grid {
5297    display: grid;
5298    gap: 10px;
5299    grid-template-columns: repeat(3, minmax(0, 1fr));
5300  }
5301
5302  #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__viewport {
5303    overflow: visible;
5304  }
5305
5306  #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__card {
5307    margin: 0 !important;
5308  }
5309
5310  #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__stars {
5311    display: block;
5312    height: 30px;
5313    width: auto !important;
5314  }
5315
5316  #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__dots {
5317    display: none;
5318  }
5319
5320  @media screen and (min-width: 600px) {
5321    #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews {
5322      padding-bottom: 40px;
5323    }
5324  }
5325
5326  @media screen and (max-width: 599px) {
5327    #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews {
5328      padding: 20px 0;
5329    }
5330
5331    #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__inner {
5332      padding: 0 20px;
5333    }
5334
5335    #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__carousel {
5336      outline: none;
5337    }
5338
5339    #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__viewport {
5340      margin: 0 -20px;
5341      overflow: hidden;
5342      padding: 0 20px;
5343      touch-action: pan-y;
5344    }
5345
5346    #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__grid {
5347      display: flex;
5348      gap: 0;
5349      padding-bottom: 10px;
5350      transition: transform .35s ease;
5351      will-change: transform;
5352    }
5353
5354    #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__card {
5355      flex: 0 0 calc(100% - 12px);
5356      margin: 0 6px !important;
5357    }
5358
5359    #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__dots {
5360      align-items: center;
5361      display: flex;
5362      gap: 8px;
5363      justify-content: center;
5364      padding-top: 2px;
5365    }
5366
5367    #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__dot {
5368      appearance: none;
5369      background: #c9c9c9;
5370      border: 0;
5371      border-radius: 999px;
5372      cursor: pointer;
5373      display: block;
5374      height: 8px;
5375      margin: 0;
5376      padding: 0;
5377      width: 8px;
5378    }
5379
5380    #shopify-section-template--20255609454666__home_reviews_CEXD6t .kion-home-reviews__dot.is-active {
5381      background: #333;
5382    }
5383  }
5384</style>
5385
5386<div class="row-new-home medium-background kion-home-reviews">
5387  <div class="inner-row-new-home reviews kion-home-reviews__inner">
5388    
5389    <div
5390      class="kion-home-reviews__carousel"
5391      data-kion-home-reviews-slider
5392      role="region"
5393      aria-label="Customer reviews"
5394      tabindex="0"
5395    >
5396      <div class="kion-home-reviews__viewport" data-review-slider-viewport>
5397        <div class="kion-home-reviews__grid" data-review-slider-track>
5398          
5399            
5400              
5401                  
5402                  
5403                  <div class="light-background info-square review-text kion-home-reviews__card" >
5404                    <img src="//www.getkion.com/cdn/shop/files/review-stars-v3.png?v=1780592266&width=300" alt="5 Star Review Rating" width="425" height="74" class="kion-home-reviews__stars">
5405                    
5406                      <p>“Love the taste. I take a scoop almost every day—either right before or after working out, or when I just need a little boost of energy without the caffeine jitters.”</p>
5407                    
5408                    
5409                      <p class="persons-name">Stephen H.</p>
5410                    
5411                  </div>
5412              
5413            
5414              
5415                  
5416                  
5417                  <div class="light-background info-square review-text kion-home-reviews__card" >
5418                    <img src="//www.getkion.com/cdn/shop/files/review-stars-v3.png?v=1780592266&width=300" alt="5 Star Review Rating" width="425" height="74" class="kion-home-reviews__stars">
5419                    
5420                      <p>“I love these Aminos. It’s hard to get in enough protein every day so I supplement with these EAAs and I know they are doing good. Easy to take powder, first thing in the morning. It’s a non-negotiable part of my routine.”</p>
5421                    
5422                    
5423                      <p class="persons-name">Kris P.</p>
5424                    
5425                  </div>
5426              
5427            
5428              
5429                  
5430                  
5431                  <div class="light-background info-square review-text kion-home-reviews__card" >
5432                    <img src="//www.getkion.com/cdn/shop/files/review-stars-v3.png?v=1780592266&width=300" alt="5 Star Review Rating" width="425" height="74" class="kion-home-reviews__stars">
5433                    
5434                      <p>“Absolutely notice a difference in not only how I feel after I drink my Kion Aminos, but my body has NEVER looked better.”</p>
5435                    
5436                    
5437                      <p class="persons-name">Kelsey R.</p>
5438                    
5439                  </div>
5440              
5441            
5442          
5443        </div>
5444      </div>
5445      <div class="kion-home-reviews__dots" data-review-slider-dots>
5446        
5447          <button
5448            type="button"
5449            class="kion-home-reviews__dot is-active"
5450            data-review-slide-index="0"
5451            aria-label="Go to review 1"
5452            aria-current="true"
5453          ></button>
5454        
5455          <button
5456            type="button"
5457            class="kion-home-reviews__dot"
5458            data-review-slide-index="1"
5459            aria-label="Go to review 2"
5460            aria-current="false"
5461          ></button>
5462        
5463          <button
5464            type="button"
5465            class="kion-home-reviews__dot"
5466            data-review-slide-index="2"
5467            aria-label="Go to review 3"
5468            aria-current="false"
5469          ></button>
5470        
5471      </div>
5472    </div>
5473  </div>
5474</div>
5475
5476<script>
5477  (function () {
5478    function initKionHomeReviewSliders(root) {
5479      var scope = root || document;
5480      var sliders = scope.querySelectorAll('[data-kion-home-reviews-slider]');
5481
5482      sliders.forEach(function (slider) {
5483        if (slider.dataset.initialized === 'true') {
5484          return;
5485        }
5486
5487        var viewport = slider.querySelector('[data-review-slider-viewport]');
5488        var track = slider.querySelector('[data-review-slider-track]');
5489        var cards = Array.prototype.slice.call(slider.querySelectorAll('.kion-home-reviews__card'));
5490        var dots = Array.prototype.slice.call(slider.querySelectorAll('[data-review-slide-index]'));
5491        var index = 0;
5492        var startX = null;
5493        var startY = null;
5494
5495        if (!viewport || !track || cards.length < 2) {
5496          return;
5497        }
5498
5499        slider.dataset.initialized = 'true';
5500
5501        function isMobile() {
5502          return window.matchMedia('(max-width: 599px)').matches;
5503        }
5504
5505        function setActiveDot() {
5506          dots.forEach(function (dot, dotIndex) {
5507            var isActive = dotIndex === index;
5508            dot.classList.toggle('is-active', isActive);
5509            dot.setAttribute('aria-current', isActive ? 'true' : 'false');
5510          });
5511        }
5512
5513        function update() {
5514          if (!isMobile()) {
5515            track.style.transform = '';
5516            index = 0;
5517            setActiveDot();
5518            return;
5519          }
5520
5521          track.style.transform = 'translate3d(-' + (index * 100) + '%, 0, 0)';
5522          setActiveDot();
5523        }
5524
5525        function goTo(nextIndex) {
5526          if (!isMobile()) {
5527            return;
5528          }
5529
5530          index = (nextIndex + cards.length) % cards.length;
5531          update();
5532        }
5533
5534        dots.forEach(function (dot) {
5535          dot.addEventListener('click', function () {
5536            goTo(parseInt(dot.dataset.reviewSlideIndex, 10));
5537          });
5538        });
5539
5540        slider.addEventListener('keydown', function (event) {
5541          if (event.key === 'ArrowRight') {
5542            event.preventDefault();
5543            goTo(index + 1);
5544          }
5545
5546          if (event.key === 'ArrowLeft') {
5547            event.preventDefault();
5548            goTo(index - 1);
5549          }
5550        });
5551
5552        viewport.addEventListener('touchstart', function (event) {
5553          if (!event.touches.length) {
5554            return;
5555          }
5556
5557          startX = event.touches[0].clientX;
5558          startY = event.touches[0].clientY;
5559        }, { passive: true });
5560
5561        viewport.addEventListener('touchend', function (event) {
5562          if (startX === null || !event.changedTouches.length) {
5563            return;
5564          }
5565
5566          var diffX = event.changedTouches[0].clientX - startX;
5567          var diffY = event.changedTouches[0].clientY - startY;
5568          startX = null;
5569          startY = null;
5570
5571          if (Math.abs(diffX) < 45 || Math.abs(diffX) <= Math.abs(diffY)) {
5572            return;
5573          }
5574
5575          if (diffX < 0) {
5576            goTo(index + 1);
5577          } else {
5578            goTo(index - 1);
5579          }
5580        }, { passive: true });
5581
5582        window.addEventListener('resize', update);
5583        update();
5584      });
5585    }
5586
5587    if (document.readyState === 'loading') {
5588      document.addEventListener('DOMContentLoaded', function () {
5589        initKionHomeReviewSliders(document);
5590      });
5591    } else {
5592      initKionHomeReviewSliders(document);
5593    }
5594
5595    document.addEventListener('shopify:section:load', function (event) {
5596      initKionHomeReviewSliders(event.target);
5597    });
5598  })();
5599</script>
5599
5600
5601
5602</div><div id="shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw" class="shopify-section">
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620<style>
5621  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why {
5622    padding: 0 50px 50px;
5623  }
5624
5625  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__inner {
5626    background: #fff;
5627    display: grid;
5628    gap: 0;
5629    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
5630    padding: 30px;
5631  }
5632
5633  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__panel {
5634    background-image: url('//www.getkion.com/cdn/shop/t/109/assets/kion-why-kion-aminos-desktop.jpg?v=76590086430909778671784609120');
5635    background-position: center center;
5636    background-size: cover;
5637    color: #000000;
5638    display: grid;
5639    gap: 24px;
5640    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
5641    min-height: 520px;
5642    padding: 20px;
5643  }
5644
5645  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__title {
5646    font-size: 60px;
5647    font-weight: 400;
5648    line-height: 65px;
5649    margin: 0;
5650  }
5651
5652  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__accordions {
5653    align-self: start;
5654  }
5655
5656  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__accordions summary.new-home-accordion-title {
5657    justify-content: flex-start;
5658    text-align: left;
5659  }
5660
5661  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__accordion-label {
5662    display: block;
5663    flex: 1 1 auto;
5664    height: auto;
5665    min-width: 0;
5666    text-align: left;
5667    width: auto;
5668  }
5669
5670  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__accordion-label::after {
5671    content: none;
5672  }
5673
5674  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__accordion-icon {
5675    flex: 0 0 25px;
5676    margin-left: 12px;
5677  }
5678
5679  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__facts {
5680    margin: auto;
5681    max-width: 400px;
5682    padding: 20px;
5683    width: 100%;
5684  }
5685
5686  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__facts-slider {
5687    outline: none;
5688    overflow: hidden;
5689    position: relative;
5690    width: 100%;
5691  }
5692
5693  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__facts-track {
5694    display: flex;
5695    transition: transform 240ms ease;
5696    will-change: transform;
5697  }
5698
5699  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__facts-slide {
5700    flex: 0 0 100%;
5701    min-width: 0;
5702  }
5703
5704  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__facts-slide img {
5705    display: block;
5706    height: auto;
5707    width: 100%;
5708  }
5709
5710  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__dots {
5711    align-items: center;
5712    display: flex;
5713    gap: 8px;
5714    justify-content: center;
5715    margin-top: 16px;
5716  }
5717
5718  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__dot {
5719    appearance: none;
5720    background: #c9c9c9;
5721    border: 0;
5722    border-radius: 999px;
5723    cursor: pointer;
5724    display: block;
5725    height: 8px;
5726    padding: 0;
5727    width: 8px;
5728  }
5729
5730  #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__dot.is-active {
5731    background: #333;
5732  }
5733
5734  @media screen and (max-width: 599px) {
5735    #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why {
5736      padding: 0;
5737    }
5738
5739    #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__inner {
5740      display: block;
5741      padding: 0;
5742    }
5743
5744    #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__panel {
5745      display: block;
5746      min-height: 0;
5747      padding: 30px 20px;
5748    }
5749
5750    #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__title {
5751      font-size: 45px;
5752      line-height: 50px;
5753      margin-bottom: 24px;
5754    }
5755
5756    #shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw .kion-home-why__facts {
5757      max-width: 360px;
5758      padding: 24px 20px 10px;
5759    }
5760  }
5761</style>
5762
5763<div class="row-new-home medium-background kion-home-why">
5764  <div class="inner-row-new-home kion-home-why__inner">
5765    <div class="kion-home-why__panel">
5766      <div class="kion-home-why__title-wrap">
5767        <h2 class="kion-home-why__title">Why Kion<br />
5768Aminos?</h2>
5769      </div>
5770
5771      <div class="kion-home-why__accordions">
5772        
5773          
5774            
5775              
5776              
5777              
5778                <details class="new-home-accordion-box-item" >
5779                  
5780                    <summary class="new-home-accordion-title"><span class="kion-home-why__accordion-label">Contains All 9 EAAs</span><span class="kion-home-why__accordion-icon" aria-hidden="true"></span></summary>
5781                  
5782                  
5783                    <div>
5784                      <p>Kion Aminos delivers all 9 essential amino acids your body needs to support lean muscle, energy, and recovery—daily.</p>
5785                    </div>
5786                  
5787                </details>
5788              
5789            
5790          
5791            
5792              
5793              
5794              
5795                <details class="new-home-accordion-box-item" >
5796                  
5797                    <summary class="new-home-accordion-title"><span class="kion-home-why__accordion-label">Honest Label</span><span class="kion-home-why__accordion-icon" aria-hidden="true"></span></summary>
5798                  
5799                  
5800                    <div>
5801                      <p>No proprietary blends. You know exactly how much of each essential amino acid you’re getting, down to the milligram.</p>
5802                    </div>
5803                  
5804                </details>
5805              
5806            
5807          
5808            
5809              
5810              
5811              
5812                <details class="new-home-accordion-box-item" >
5813                  
5814                    <summary class="new-home-accordion-title"><span class="kion-home-why__accordion-label">Scientifically Validated</span><span class="kion-home-why__accordion-icon" aria-hidden="true"></span></summary>
5815                  
5816                  
5817                    <div>
5818                      <p>
5818Based on over 30 years of essential amino acid research, with clinically informed ratios of all 9 EAAs.</p>
5819                    </div>
5820                  
5821                </details>
5822              
5823            
5824          
5825            
5826              
5827              
5828              
5829                <details class="new-home-accordion-box-item" >
5830                  
5831                    <summary class="new-home-accordion-title"><span class="kion-home-why__accordion-label">Convenient + Tastes Great</span><span class="kion-home-why__accordion-icon" aria-hidden="true"></span></summary>
5832                  
5833                  
5834                    <div>
5835                      <p>Available in four natural flavors, plus Capsules and Travel Packets—easy to take every day.</p>
5836                    </div>
5837                  
5838                </details>
5839              
5840            
5841          
5842            
5843          
5844            
5845          
5846            
5847          
5848            
5849          
5850        
5851
5852        
5853          <a href="#buy" class="new-home-button">GET YOUR AMINOS</a>
5854        
5855      </div>
5856    </div>
5857
5858    <div class="kion-home-why__facts">
5859      <div class="kion-home-why__facts-slider" data-kion-why-facts-slider role="group" aria-roledescription="carousel" aria-label="Supplement facts">
5860        <div class="kion-home-why__facts-track">
5861          
5862            
5863              
5864                
5865              
5866                
5867              
5868                
5869              
5870                
5871              
5872                
5873                  
5874                  
5875                  
5876                  
5877                    <div class="kion-home-why__facts-slide" >
5878                      <img src="//www.getkion.com/cdn/shop/files/kion-aminos-mixed-berry-supplement-facts.jpg?v=1780619241&width=700" alt="Mixed Berry Aminos Powder Supplement Facts" width="620" height="809" loading="lazy">
5879                    </div>
5880                  
5881                
5882              
5883                
5884                  
5885                  
5886                  
5887                  
5888                    <div class="kion-home-why__facts-slide" >
5889                      <img src="//www.getkion.com/cdn/shop/files/kion-aminos-cool-lime-supplement-facts.jpg?v=1780619263&width=700" alt="Cool Lime Aminos Powder Supplement Facts" width="620" height="809" loading="lazy">
5890                    </div>
5891                  
5892                
5893              
5894                
5895                  
5896                  
5897                  
5898                  
5899                    <div class="kion-home-why__facts-slide" >
5900                      <img src="//www.getkion.com/cdn/shop/t/109/assets/kion-aminos-mango-supplement-facts.jpg?v=108531531560185707691784609125" alt="Mango Aminos Powder Supplement Facts" width="620" height="809" loading="lazy">
5901                    </div>
5902                  
5903                
5904              
5905                
5906                  
5907                  
5908                  
5909                  
5910                    <div class="kion-home-why__facts-slide" >
5911                      <img src="//www.getkion.com/cdn/shop/t/109/assets/kion-aminos-watermelon-supplement-facts.jpg?v=102042196022434166761784609120" alt="Watermelon Aminos Powder Supplement Facts" width="620" height="809" loading="lazy">
5912                    </div>
5913                  
5914                
5915              
5916            
5917          
5918
5919          
5920        </div>
5921
5922        
5923          <div class="kion-home-why__dots" role="group" aria-label="Choose supplement facts slide">
5924            
5925              <button class="kion-home-why__dot is-active" type="button" data-kion-why-facts-dot="0" aria-label="Go to supplement facts slide 1"></button>
5926            
5927              <button class="kion-home-why__dot" type="button" data-kion-why-facts-dot="1" aria-label="Go to supplement facts slide 2"></button>
5928            
5929              <button class="kion-home-why__dot" type="button" data-kion-why-facts-dot="2" aria-label="Go to supplement facts slide 3"></button>
5930            
5931              <button class="kion-home-why__dot" type="button" data-kion-why-facts-dot="3" aria-label="Go to supplement facts slide 4"></button>
5932            
5933          </div>
5934        
5935      </div>
5936    </div>
5937  </div>
5938</div>
5939
5940<script>
5941  (function () {
5942    var section = document.getElementById('shopify-section-template--20255609454666__home_why_kion_aminos_xLzbjw');
5943    if (!section) return;
5944
5945    var slider = section.querySelector('[data-kion-why-facts-slider]');
5946    if (!slider || slider.dataset.initialized === 'true') return;
5947
5948    var track = slider.querySelector('.kion-home-why__facts-track');
5949    var slides = Array.prototype.slice.call(slider.querySelectorAll('.kion-home-why__facts-slide'));
5950    var dots = Array.prototype.slice.call(slider.querySelectorAll('.kion-home-why__dot'));
5951    var index = 0;
5952    var startX = 0;
5953    var endX = 0;
5954
5955    if (!track || slides.length < 2) return;
5956
5957    slider.dataset.initialized = 'true';
5958
5959    function goTo(nextIndex) {
5960      index = (nextIndex + slides.length) % slides.length;
5961      track.style.transform = 'translateX(' + (-index * 100) + '%)';
5962      dots.forEach(function (dot, dotIndex) {
5963        dot.classList.toggle('is-active', dotIndex === index);
5964      });
5965    }
5966
5967    dots.forEach(function (dot) {
5968      dot.addEventListener('click', function () {
5969        goTo(Number(dot.dataset.kionWhyFactsDot || 0));
5970      });
5971    });
5972
5973    slider.addEventListener('touchstart', function (event) {
5974      startX = event.changedTouches[0].clientX;
5975      endX = startX;
5976    }, { passive: true });
5977
5978    slider.addEventListener('touchmove', function (event) {
5979      endX = event.changedTouches[0].clientX;
5980    }, { passive: true });
5981
5982    slider.addEventListener('touchend', function () {
5983      var delta = endX - startX;
5984      if (Math.abs(delta) > 35) {
5985        goTo(index + (delta < 0 ? 1 : -1));
5986      }
5987    });
5988  })();
5989</script>
5989
5990
5991
5992</div><div id="shopify-section-template--20255609454666__home_mountain_parallax_JiqqEc" class="shopify-section">
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002<style>
6003  #shopify-section-template--20255609454666__home_mountain_parallax_JiqqEc .kion-home-mountain-parallax {
6004    background-attachment: fixed;
6005    background-image: url('//www.getkion.com/cdn/shop/files/kion-bike-desktop-v2.jpg?v=1780596719&width=2400');
6006    background-position: center 20px;
6007    background-repeat: no-repeat;
6008    background-size: cover;
6009    min-height: 80vh;
6010    padding: 0;
6011  }
6012
6013  #shopify-section-template--20255609454666__home_mountain_parallax_JiqqEc .kion-home-mountain-parallax-mobile {
6014    padding: 0;
6015  }
6016
6017  #shopify-section-template--20255609454666__home_mountain_parallax_JiqqEc .kion-home-mountain-parallax-mobile img {
6018    display: block;
6019    height: auto;
6020    width: 100%;
6021  }
6022
6023  @media screen and (max-width: 599px) {
6024    #shopify-section-template--20255609454666__home_mountain_parallax_JiqqEc .kion-home-mountain-parallax {
6025      display: none;
6026    }
6027  }
6028</style>
6029
6030<div class="row-new-home medium-background desktop kion-home-mountain-parallax"></div>
6031<div class="row-new-home medium-background mobile kion-home-mountain-parallax-mobile">
6032  <img src="//www.getkion.com/cdn/shop/files/kion-bike-mobile-v2.jpg?v=1780596702&width=1600" alt="Women carrying a bike" width="800" height="943">
6033</div>
6034
6035
6036</div><div id="shopify-section-template--20255609454666__home_energy_for_life_rWrGQC" class="shopify-section">
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049<style>
6050  #shopify-section-template--20255609454666__home_energy_for_life_rWrGQC .kion-home-energy-life {
6051    padding: 0;
6052  }
6053
6054  #shopify-section-template--20255609454666__home_energy_for_life_rWrGQC .kion-home-energy-life__inner {
6055    align-items: unset;
6056    display: grid;
6057    gap: 30px;
6058    grid-template-columns: minmax(0, 40%) minmax(0, 60%);
6059  }
6060
6061  #shopify-section-template--20255609454666__home_energy_for_life_rWrGQC .kion-home-energy-life__text {
6062    padding: 0;
6063  }
6064
6065  #shopify-section-template--20255609454666__home_energy_for_life_rWrGQC .kion-home-energy-life__media {
6066    padding: 0;
6067  }
6068
6069  #shopify-section-template--20255609454666__home_energy_for_life_rWrGQC .kion-home-energy-life__media img {
6070    display: block;
6071    height: auto;
6072    width: 100%;
6073  }
6074
6075  @media screen and (max-width: 599px) {
6076    #shopify-section-template--20255609454666__home_energy_for_life_rWrGQC .kion-home-energy-life {
6077      padding: 20px 0;
6078    }
6079
6080    #shopify-section-template--20255609454666__home_energy_for_life_rWrGQC .kion-home-energy-life__inner {
6081      display: block;
6082    }
6083
6084    #shopify-section-template--20255609454666__home_energy_for_life_rWrGQC .kion-home-energy-life__text {
6085      padding-bottom: 20px;
6086    }
6087  }
6088
6089  @media screen and (min-width: 600px) {
6090    #shopify-section-template--20255609454666__home_energy_for_life_rWrGQC .inner-row-new-home.kion-home-energy-life__inner {
6091      padding: 50px;
6092    }
6093
6094    #shopify-section-template--20255609454666__home_energy_for_life_rWrGQC .kion-home-energy-life__text h2.bigger {
6095      font-size: 42px;
6096      line-height: 52px;
6097    }
6098
6099    #shopify-section-template--20255609454666__home_energy_for_life_rWrGQC .kion-home-energy-life__text p.bigger {
6100      font-size: 24px;
6101      line-height: 36px;
6102    }
6103  }
6104</style>
6105
6106<div class="row-new-home light-background kion-home-energy-life">
6107  <div class="inner-row-new-home kion-home-energy-life__inner">
6108    <div class="kion-home-energy-life__text">
6109      <h2 class="bigger">Kion is energy for life</h2>
6110      <p class="bigger">Kion helps health and fitness enthusiasts live long, fun, active lives by providing supplements and foods that maximize performance and longevity. By combining the cleanest natural ingredients into complementing formulas, Kion helps you unlock your body&#39;s natural energy.</p>
6111      
6112    </div>
6113
6114    <div class="kion-home-energy-life__media">
6115      <img src="//www.getkion.com/cdn/shop/files/kion-all-products-and-sleep_ded130c5-993c-400e-a29f-e2d4d161edb7.jpg?v=1780596385&width=1400" alt="All the Kion Products" width="4000" height="2500" loading="lazy">
6116    </div>
6117  </div>
6118</div>
6119
6120
6121</div><div id="shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd" class="shopify-section">
6122
6123
6124
6125
6126
6127
6128
6129
6130<style>
6131  #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery {
6132    padding: 0 50px 50px;
6133  }
6134
6135  #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery__desktop-inner {
6136    align-items: baseline;
6137    display: grid;
6138    gap: 0;
6139    grid-template-columns: repeat(5, minmax(0, 1fr));
6140  }
6141
6142  #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery__intro,
6143  #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery__item {
6144    padding: 10px;
6145  }
6146
6147  #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery__item p {
6148    font-size: 18px;
6149    line-height: 32px;
6150  }
6151
6152  #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery__mobile {
6153    padding: 20px 0 0;
6154  }
6155
6156  #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery__mobile h2 {
6157    margin-bottom: 16px;
6158  }
6159
6160  #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery__mobile summary.new-home-accordion-title {
6161    justify-content: flex-start;
6162    text-align: left;
6163  }
6164
6165  #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery__accordion-label {
6166    display: block;
6167    flex: 1 1 auto;
6168    height: auto;
6169    min-width: 0;
6170    text-align: left;
6171    width: auto;
6172  }
6173
6174  #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery__accordion-label::after {
6175    content: none;
6176  }
6177
6178  #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery__accordion-icon {
6179    flex: 0 0 25px;
6180    margin-left: 12px;
6181  }
6182
6183  @media screen and (max-width: 599px) {
6184    #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery {
6185      padding: 20px 0;
6186    }
6187  }
6188
6189  @media screen and (min-width: 600px) and (max-width: 1199px) {
6190    #shopify-section-template--20255609454666__home_energy_muscle_recovery_xfx9pd .kion-home-energy-recovery__desktop-inner {
6191      grid-template-columns: repeat(2, minmax(0, 1fr));
6192    }
6193  }
6194</style>
6195
6196<div class="row-new-home desktop medium-background kion-home-energy-recovery">
6197  <div class="inner-row-new-home kion-home-energy-recovery__desktop-inner">
6198    <div class="kion-home-energy-recovery__intro">
6199      <h2>Research and quality that makes a difference</h2>
6200      
6201    </div>
6202
6203    
6204      
6205      
6206      
6207        <div class="kion-home-energy-recovery__item" >
6208          
6209            <h4 role="heading" aria-level="3">Research first formulations</h4>
6210          
6211          
6212            <p>After conducting a meta-analysis of relevant studies, we choose the most beneficial ingredients and dosages that have proven, consistent results in clinical studies.</p>
6213          
6214        </div>
6215      
6216    
6217      
6218      
6219      
6220        <div class="kion-home-energy-recovery__item" >
6221          
6222            <h4 role="heading" aria-level="3">Premium ingredient sourcing</h4>
6223          
6224          
6225            <p>We select high-quality, non-GMO ingredients and never use fillers or junk additives. We then verify the identity, potency, and purity of each ingredient and use natural flavors and sweeteners.</p>
6226          
6227        </div>
6228      
6229    
6230      
6231      
6232      
6233        <div class="kion-home-energy-recovery__item" >
6234          
6235            <h4 role="heading" aria-level="3">Product manufacturing excellence</h4>
6236          
6237          
6238            <p>All Kion supplements are made in a cGMP facility that is NSF certified. Meticulous attention to detail is applied at every step of the process—from measurements to bottling, packaging, and quality assurance.</p>
6239          
6240        </div>
6241      
6242    
6243      
6244      
6245      
6246        <div class="kion-home-energy-recovery__item" >
6247          
6248            <h4 role="heading" aria-level="3">Finished product testing</h4>
6249          
6250          
6251            <p>Finally, third-party finished product testing is conducted to confirm that specifications are met, including identity, purity, and stringent microbial and contaminant requirements.</p>
6252          
6253        </div>
6254      
6255    
6256  </div>
6257</div>
6258
6259<div class="row-new-home mobile medium-background kion-home-energy-recovery__mobile">
6260  
6261  <div class="inner-row-new-home">
6262    <h2>Research and quality that makes a difference</h2>
6263    
6264      
6265      
6266      
6267        <details class="new-home-accordion-box-item" >
6268          
6269            <summary class="new-home-accordion-title"><span class="kion-home-energy-recovery__accordion-label">
6269Research first formulations</span><span class="kion-home-energy-recovery__accordion-icon" aria-hidden="true"></span></summary>
6270          
6271          
6272            <div>
6273              <p>We select high-quality, non-GMO ingredients and never use fillers or junk additives. We then verify the identity, potency, and purity of each ingredient and use natural flavors and sweeteners.</p>
6274            </div>
6275          
6276        </details>
6277      
6278    
6279      
6280      
6281      
6282        <details class="new-home-accordion-box-item" >
6283          
6284            <summary class="new-home-accordion-title"><span class="kion-home-energy-recovery__accordion-label">Premium ingredient sourcing</span><span class="kion-home-energy-recovery__accordion-icon" aria-hidden="true"></span></summary>
6285          
6286          
6287            <div>
6288              <p>With Kion Aminos, you know exactly how much of each individual essential amino acid you’re getting, down to the milligram.</p>
6289            </div>
6290          
6291        </details>
6292      
6293    
6294      
6295      
6296      
6297        <details class="new-home-accordion-box-item" >
6298          
6299            <summary class="new-home-accordion-title"><span class="kion-home-energy-recovery__accordion-label">Product manufacturing excellence</span><span class="kion-home-energy-recovery__accordion-icon" aria-hidden="true"></span></summary>
6300          
6301          
6302            <div>
6303              <p>All Kion supplements are made in a cGMP facility that is NSF certified. Meticulous attention to detail is applied at every step of the process—from measurements to bottling, packaging, and quality assurance.</p>
6304            </div>
6305          
6306        </details>
6307      
6308    
6309      
6310      
6311      
6312        <details class="new-home-accordion-box-item" >
6313          
6314            <summary class="new-home-accordion-title"><span class="kion-home-energy-recovery__accordion-label">Finished product testing</span><span class="kion-home-energy-recovery__accordion-icon" aria-hidden="true"></span></summary>
6315          
6316          
6317            <div>
6318              <p>Finally, third-party finished product testing is conducted to confirm that specifications are met, including identity, purity, and stringent microbial and contaminant requirements.</p>
6319            </div>
6320          
6321        </details>
6322      
6323    
6324    
6325  </div>
6326</div>
6327
6328
6329</div><div id="shopify-section-template--20255609454666__home_product_grid" class="shopify-section">
6330
6331<style>
6332  #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid {
6333    background: #fff;
6334  }
6335
6336  #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__title {
6337    margin-bottom: 20px;
6338  }
6339
6340  #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__grid {
6341    display: grid;
6342    grid-template-columns: repeat(3, minmax(0, 1fr));
6343  }
6344
6345  #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__card {
6346    align-items: center;
6347    border-bottom: 1px solid #eee;
6348    display: flex;
6349    gap: 20px;
6350    padding: 20px;
6351  }
6352
6353  #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__card:nth-last-child(-n+3) {
6354    border-bottom: 0;
6355  }
6356
6357  #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__image {
6358    flex: 0 0 40%;
6359  }
6360
6361  #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__image img {
6362    display: block;
6363    height: auto;
6364    width: 100%;
6365  }
6366
6367  #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__details {
6368    flex: 1 1 auto;
6369  }
6370
6371  #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__details h3 {
6372    margin: 0;
6373  }
6374
6375  @media screen and (max-width: 599px) {
6376    #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__grid {
6377      display: block;
6378    }
6379
6380    #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__card {
6381      padding: 20px 0;
6382    }
6383
6384    #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__card:nth-last-child(-n+3) {
6385      border-bottom: 1px solid #eee;
6386    }
6387
6388    #shopify-section-template--20255609454666__home_product_grid .kion-home-product-grid__card:last-child {
6389      border-bottom: 0;
6390    }
6391  }
6392</style>
6393
6394<div class="row-new-home new-home-desktop-products-row kion-home-product-grid">
6395  <div class="inner-row-new-home">
6396    
6397      <h2 class="kion-home-product-grid__title">Shop all products</h2>
6398    
6399
6400    <div class="kion-home-product-grid__grid">
6401      
6402        
6403        
6404        
6405        
6406
6407        
6408        
6409        
6410        
6411        
6412
6413        
6414
6415        
6416          <div class="new-home-product kion-home-product-grid__card" >
6417            
6418              <div class="product-image kion-home-product-grid__image">
6419                
6420                  <a href="/products/aminos-capsules">
6421                    <img src="//www.getkion.com/cdn/shop/files/kionaminosfront_ba6d2cb0-5a7d-4df3-b99c-9a3935ced983.png?v=1631592273&width=800" alt="Kion Aminos Capsules" width="4000" height="4000" loading="lazy">
6422                  </a>
6423                
6424              </div>
6425            
6426
6427            <div class="product-details kion-home-product-grid__details">
6428              
6429                <h3>Aminos Capsules</h3>
6430              
6431              
6432                <p>All 9 EAAs to power your greatest performance and recovery.</p>
6433              
6434              
6435                <a href="/products/aminos-capsules" class="new-home-button">SHOP NOW</a>
6436              
6437            </div>
6438          </div>
6439        
6440      
6441        
6442        
6443        
6444        
6445
6446        
6447        
6448        
6449        
6450        
6451
6452        
6453
6454        
6455          <div class="new-home-product kion-home-product-grid__card" >
6456            
6457              <div class="product-image kion-home-product-grid__image">
6458                
6459                  <a href="/products/clean-protein">
6460                    <img src="//www.getkion.com/cdn/shop/files/smooth_vanilla_front_04-25.png?v=1744987010&width=800" alt="Kion Protein" width="4000" height="4000" loading="lazy">
6461                  </a>
6462                
6463              </div>
6464            
6465
6466            <div class="product-details kion-home-product-grid__details">
6467              
6468                <h3>Clean Protein</h3>
6469              
6470              
6471                <p>Premium grass-fed whey isolate for muscle, satiety, and recovery.</p>
6472              
6473              
6474                <a href="/products/clean-protein" class="new-home-button">SHOP NOW</a>
6475              
6476            </div>
6477          </div>
6478        
6479      
6480        
6481        
6482        
6483        
6484
6485        
6486        
6487        
6488        
6489        
6490
6491        
6492
6493        
6494          <div class="new-home-product kion-home-product-grid__card" >
6495            
6496              <div class="product-image kion-home-product-grid__image">
6497                
6498                  <a href="/products/omega">
6499                    <img src="//www.getkion.com/cdn/shop/files/omega-nav-2021.png?v=1613644255&width=800" alt="Kion Omega" width="240" height="200" loading="lazy">
6500                  </a>
6501                
6502              </div>
6503            
6504
6505            <div class="product-details kion-home-product-grid__details">
6506              
6507                <h3>Omega</h3>
6508              
6509              
6510                <p>Sustainably sourced, cold-water fish oil for brain and body health.</p>
6511              
6512              
6513                <a href="/products/omega" class="new-home-button">SHOP NOW</a>
6514              
6515            </div>
6516          </div>
6517        
6518      
6519        
6520        
6521        
6522        
6523
6524        
6525        
6526        
6527        
6528        
6529
6530        
6531
6532        
6533          <div class="new-home-product kion-home-product-grid__card" >
6534            
6535              <div class="product-image kion-home-product-grid__image">
6536                
6537                  <a href="/products/creatine">
6538                    <img src="//www.getkion.com/cdn/shop/files/kion_creatine_front.png?v=1690919029&width=800" alt="Kion Creatine" width="4000" height="4000" loading="lazy">
6539                  </a>
6540                
6541              </div>
6542            
6543
6544            <div class="product-details kion-home-product-grid__details">
6545              
6546                <h3>Creatine</h3>
6547              
6548              
6549                <p>Pure creatine monohydrate to support athletic performance.</p>
6550              
6551              
6552                <a href="/products/creatine" class="new-home-button">SHOP NOW</a>
6553              
6554            </div>
6555          </div>
6556        
6557      
6558        
6559        
6560        
6561        
6562
6563        
6564        
6565        
6566        
6567        
6568
6569        
6570
6571        
6572          <div class="new-home-product kion-home-product-grid__card" >
6573            
6574              <div class="product-image kion-home-product-grid__image">
6575                
6576                  <a href="/products/medium-roast-coffee">
6577                    <img src="//www.getkion.com/cdn/shop/files/KION_Coffee_2025_COMP_MED_small_07.png?v=1772166263&width=800" alt="Kion Coffee" width="600" height="600" loading="lazy">
6578                  </a>
6579                
6580              </div>
6581            
6582
6583            <div class="product-details kion-home-product-grid__details">
6584              
6585                <h3>Medium Roast Coffee</h3>
6586              
6587              
6588                <p>Elevate your daily grind with pure, delicious Kion Coffee.</p>
6589              
6590              
6591                <a href="/products/medium-roast-coffee" class="new-home-button">SHOP NOW</a>
6592              
6593            </div>
6594          </div>
6595        
6596      
6597        
6598        
6599        
6600        
6601
6602        
6603        
6604        
6605        
6606        
6607
6608        
6609
6610        
6611          <div class="new-home-product kion-home-product-grid__card" >
6612            
6613              <div class="product-image kion-home-product-grid__image">
6614                
6615                  <a href="/collections/see-all">
6616                    <img src="//www.getkion.com/cdn/shop/files/new-home-all-products_3278469a-a983-4c85-8e9b-a10369f7f830.jpg?v=1656009310&width=800" alt="All Products" width="1000" height="1000" loading="lazy">
6617                  </a>
6618                
6619              </div>
6620            
6621
6622            <div class="product-details kion-home-product-grid__details">
6623              
6624                <h3>All Products</h3>
6625              
6626              
6627                <p>Clean, effective solutions for energy for life, every day.</p>
6628              
6629              
6630                <a href="/collections/see-all" class="new-home-button">SHOP ALL</a>
6631              
6632            </div>
6633          </div>
6634        
6635      
6636    </div>
6637  </div>
6638</div>
6639
6640
6641</div><div id="shopify-section-template--20255609454666__home_boulder_banner_CJx4Lc" class="shopify-section">
6642
6643
6644  <style>
6645    #shopify-section-template--20255609454666__home_boulder_banner_CJx4Lc .kion-home-boulder {
6646      background: #000000;
6647      color: #ffffff;
6648      margin: 0;
6649      padding: 10px;
6650      text-align: center;
6651    }
6652
6653    #shopify-section-template--20255609454666__home_boulder_banner_CJx4Lc .kion-home-boulder p {
6654      letter-spacing: 2px;
6655      margin: 0;
6656    }
6657  </style>
6658
6659  <div class="row-new-home dark-background boulder kion-home-boulder">
6660    <div class="inner-row-new-home">
6661      <p>
6661BASED IN BOULDER, COLORADO</p>
6662    </div>
6663  </div>
6664
6665
6666
6667</div>
6668      
6669      <noscript class="endOfLayoutContentX" type="text/mark"></noscript>
6670    </main>
6671    <!-- BEGIN sections: footer-group -->
6672<div id="shopify-section-sections--20255607586890__footer" class="shopify-section shopify-section-group-footer-group"><style>
6673	body > img[id^="_pxPixel"] {
6674		display: none !important;
6675	}
6676
6677	#shopify-section-sections--20255607586890__footer {
6678		background-color: #f5f5f5;
6679	}
6680
6681	#shopify-section-sections--20255607586890__footer footer {
6682		background-color: #f5f5f5;
6683		margin-bottom: 0;
6684	}
6685
6686	#shopify-section-sections--20255607586890__footer .row-new-home.light-background.disclaimer {
6687		padding-top: 20px;
6688	}
6689
6690	#shopify-section-sections--20255607586890__footer .inner-row-new-home.disclaimer {
6691		border: 0;
6692	}
6693
6694	#shopify-section-sections--20255607586890__footer .copyright-row .inner-row-new-home {
6695		text-align: center;
6696		width: 100%;
6697	}
6698
6699	#shopify-section-sections--20255607586890__footer .copyright {
6700		text-align: center;
6701	}
6702
6703	#shopify-section-sections--20255607586890__footer .footer-withdraw-link {
6704		font-weight: 700;
6705		text-decoration: underline;
6706		text-decoration-thickness: 2px;
6707		text-underline-offset: 3px;
6708	}
6709</style>
6710
6711
6712
6713<footer class="light-background" style="background-color: #f5f5f5; margin-bottom: 0;">
6714	<div class="row-new-home footer-row">
6715		<div class="inner-row-new-home footer-optin">
6716			
6717				
6718					<div class="footer-form-block" >
6719						
6720						
6721							<div class="klaviyo-form-KQweHp"></div>
6722						
6723					</div>
6724				
6725			
6726				
6727			
6728				
6729			
6730				
6731			
6732				
6733			
6734		</div>
6735		<div class="inner-row-new-home footer-nav mobile">
6736			
6737				
6738			
6739				
6740					
6741					
6742					
6743					
6744					
6745					<details class="new-home-accordion-box-item" >
6746						<summary class="new-home-accordion-title">About<span></span></summary>
6747						<div>
6748							<ul>
6749								
6750								
6751									
6752										
6753										
6754											<li><a href="https://kion.aspireiq.com/join/kion-affiliate-program-instagram" target="_blank" rel="noopener">Partner with Kion</a></li>
6755										
6756									
6757										
6758										
6759											<li><a href="/pages/wholesale">Wholesale</a></li>
6760										
6761									
6762										
6763										
6764											<li><a href="/pages/careers">Careers</a></li>
6765										
6766									
6767										
6768										
6769											<li><a href="/blogs/all">Blog</a></li>
6770										
6771									
6772										
6773										
6774											<li><a href="https://help.getkion.com/en-US/articles" target="_blank" rel="noopener">FAQ</a></li>
6775										
6776									
6777										
6778										
6779											<li><a href="/pages/about-kion">About Kion</a></li>
6780										
6781									
6782										
6783										
6784											<li><a href="https://help.getkion.com/" target="_blank" rel="noopener">Contact Us</a></li>
6785										
6786									
6787								
6788								
6789								
6790								
6791							</ul>
6792						</div>
6793					</details>
6794				
6795			
6796				
6797					
6798					
6799					
6800					
6801					
6802					<details class="new-home-accordion-box-item" >
6803						<summary class="new-home-accordion-title">Policies<span></span></summary>
6804						<div>
6805							<ul>
6806								
6807								
6808									
6809										
6810										
6811											<li><a href="/policies/shipping-policy">Shipping Policy</a></li>
6812										
6813									
6814										
6815										
6816											<li><a href="/policies/refund-policy">Return Policy</a></li>
6817										
6818									
6819										
6820										
6821											<li><a href="/policies/terms-of-service">Terms of Use/Sale</a></li>
6822										
6823									
6824										
6825										
6826											<li><a href="/policies/privacy-policy">Privacy Policy</a></li>
6827										
6828									
6829								
6830								
6831									
6832										<li><a href="#" class="optanon-show-settings">Cookie Settings</a></li>
6833									
6834								
6835								
6836								
6837							</ul>
6838						</div>
6839					</details>
6840				
6841			
6842				
6843					
6844					
6845					
6846					
6847					
6848					<details class="new-home-accordion-box-item" >
6849						<summary class="new-home-accordion-title">My Account<span></span></summary>
6850						<div>
6851							<ul>
6852								
6853								
6854									
6855										
6856										
6857											<li><a href="/account">My Account</a></li>
6858										
6859									
6860										
6861										
6862											<li><a href="/pages/tracking">Track Orders</a></li>
6863										
6864									
6865										
6866										
6867											<li><a href="/pages/rewards">Refer a Friend</a></li>
6868										
6869									
6870										
6871										
6872											<li><a href="/account/login">Login</a></li>
6873										
6874									
6875								
6876								
6877								
6878								
6879							</ul>
6880						</div>
6881					</details>
6882				
6883			
6884				
6885					
6886					
6887					
6888					
6889					
6890					<details class="new-home-accordion-box-item" >
6891						<summary class="new-home-accordion-title">Contact<span></span></summary>
6892						<div>
6893							<ul>
6894								
6895									<li><p>
68953980 N Broadway</p>			<p>Suite 103-183</p><p>Boulder, CO 80304</p>			<p>United States</p></li>
6896								
6897								
6898									
6899										
6900										
6901											<li><a href="tel:8553875466">855-387-KION (5466)</a></li>
6902										
6903									
6904										
6905										
6906											<li><a href="/cdn-cgi/l/email-protection#4b383e3b3b24393f0b2c2e3f2022242565282426"><span class="__cf_email__" data-cfemail="43303633332c313703242637282a2c2d6d202c2e">[email&#160;protected]</span></a></li>
6907										
6908									
6909								
6910								
6911								
6912								
6913							</ul>
6914						</div>
6915					</details>
6916				
6917			
6918		</div>
6919		<div class="inner-row-new-home footer-nav desktop">
6920			
6921				
6922			
6923				
6924					
6925					
6926					
6927					
6928					
6929					<div class="new-home-accordion-box-item" >
6930						<div class="new-home-accordion-title">About</div>
6931						<div>
6932							<ul>
6933								
6934								
6935									
6936										
6937										
6938											<li><a href="https://kion.aspireiq.com/join/kion-affiliate-program-instagram" target="_blank" rel="noopener">Partner with Kion</a></li>
6939										
6940									
6941										
6942										
6943											<li><a href="/pages/wholesale">Wholesale</a></li>
6944										
6945									
6946										
6947										
6948											<li><a href="/pages/careers">Careers</a></li>
6949										
6950									
6951										
6952										
6953											<li><a href="/blogs/all">Blog</a></li>
6954										
6955									
6956										
6957										
6958											<li><a href="https://help.getkion.com/en-US/articles" target="_blank" rel="noopener">FAQ</a></li>
6959										
6960									
6961										
6962										
6963											<li><a href="/pages/about-kion">About Kion</a></li>
6964										
6965									
6966										
6967										
6968											<li><a href="https://help.getkion.com/" target="_blank" rel="noopener">Contact Us</a></li>
6969										
6970									
6971								
6972								
6973								
6974								
6975							</ul>
6976						</div>
6977					</div>
6978				
6979			
6980				
6981					
6982					
6983					
6984					
6985					
6986					<div class="new-home-accordion-box-item" >
6987						<div class="new-home-accordion-title">Policies</div>
6988						<div>
6989							<ul>
6990								
6991								
6992									
6993										
6994										
6995											<li><a href="/policies/shipping-policy">Shipping Policy</a></li>
6996										
6997									
6998										
6999										
7000											<li><a href="/policies/refund-policy">Return Policy</a></li>
7001										
7002									
7003										
7004										
7005											<li><a href="/policies/terms-of-service">Terms of Use/Sale</a></li>
7006										
7007									
7008										
7009										
7010											<li><a href="/policies/privacy-policy">Privacy Policy</a></li>
7011										
7012									
7013								
7014								
7015									
7016										<li><a href="#" class="optanon-show-settings">Cookie Settings</a></li>
7017									
7018								
7019								
7020								
7021							</ul>
7022						</div>
7023					</div>
7024				
7025			
7026				
7027					
7028					
7029					
7030					
7031					
7032					<div class="new-home-accordion-box-item" >
7033						<div class="new-home-accordion-title">My Account</div>
7034						<div>
7035							<ul>
7036								
7037								
7038									
7039										
7040										
7041											<li><a href="/account">My Account</a></li>
7042										
7043									
7044										
7045										
7046											<li><a href="/pages/tracking">Track Orders</a></li>
7047										
7048									
7049										
7050										
7051											<li><a href="/pages/rewards">Refer a Friend</a></li>
7052										
7053									
7054										
7055										
7056											<li><a href="/account/login">Login</a></li>
7057										
7058									
7059								
7060								
7061								
7062								
7063							</ul>
7064						</div>
7065					</div>
7066				
7067			
7068				
7069					
7070					
7071					
7072					
7073					
7074					<div class="new-home-accordion-box-item" >
7075						<div class="new-home-accordion-title">Contact</div>
7076						<div>
7077							<ul>
7078								
7079									<li><p>3980 N Broadway</p>			<p>Suite 103-183</p><p>Boulder, CO 80304</p>			<p>United States</p></li>
7080								
7081								
7082									
7083										
7084										
7085											<li><a href="tel:8553875466">855-387-KION (5466)</a></li>
7086										
7087									
7088										
7089										
7090											<li><a href="/cdn-cgi/l/email-protection#14676164647b6660547371607f7d7b7a3a777b79"><span class="__cf_email__" data-cfemail="added8ddddc2dfd9edcac8d9c6c4c2c383cec2c0">[email&#160;protected]</span></a></li>
7091										
7092									
7093								
7094								
7095								
7096								
7097							</ul>
7098						</div>
7099					</div>
7100				
7101			
7102		</div>
7103	</div>
7104
7105	
7106		<div class="row-new-home light-background disclaimer" style="padding-top: 20px;">
7107			<div class="inner-row-new-home disclaimer" style="border: 0;">
7108				<p>* These statements have not been evaluated by the Food and Drug Administration. This product is not intended to diagnose, treat, cure, or prevent any disease.</p>
7109			</div>
7110		</div>
7111	
7112	
7113	
7114		<div class="row-new-home light-background copyright-row">
7115			<div class="inner-row-new-home">
7116				<p class="copyright">© 2026 Kion. All rights reserved.</p>
7117			</div>
7118		</div>
7119	
7120</footer>
7121
7122
7123</div>
7124<!-- END sections: footer-group -->
7125  </div>
vendor: 117 bytes, lines 7125-7128
7125
7126
7127  
7128    <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
7128<script async src="https://cdn.rebuyengine.com/onsite/js/rebuy.js?shop=getkion1.myshopify.com"></script>
7128
7129  
7130
7131  
7132  
7133
7134<script>
7135  (function () {
7136    var STORAGE_KEY = "gkd_discount_code";
7137    var COOKIE_NAME = "discount_code";
7138    var SYNC_CLASS = "gkd-rebuy-discount-code";
7139    var observer = null;
7140    var syncTimer = null;
7141    var latestShopifyCart = null;
7142    var discountRequestId = 0;
7143
7144    function normalizeCode(code) {
7145      return String(code || "").trim();
7146    }
7147
7148    function readCookie(name) {
7149      var prefix = name + "=";
7150      var cookies = document.cookie ? document.cookie.split(";") : [];
7151
7152      for (var index = 0; index < cookies.length; index += 1) {
7153        var cookie = cookies[index].trim();
7154
7155        if (cookie.indexOf(prefix) === 0) {
7156          return decodeURIComponent(cookie.slice(prefix.length));
7157        }
7158      }
7159
7160      return "";
7161    }
7162
7163    function writeCookie(name, value) {
7164      var expires = new Date();
7165      expires.setTime(expires.getTime() + 12 * 60 * 60 * 1000);
7166      document.cookie = [
7167        name + "=" + encodeURIComponent(value),
7168        "expires=" + expires.toUTCString(),
7169        "path=/",
7170        "SameSite=Lax"
7171      ].join(";");
7172    }
7173
7174    function clearCookie(name) {
7175      document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;SameSite=Lax";
7176    }
7177
7178    function saveDiscountCode(code) {
7179      var normalizedCode = normalizeCode(code);
7180      if (!normalizedCode) return;
7181
7182      try {
7183        window.localStorage.setItem(STORAGE_KEY, normalizedCode);
7184      } catch (error) {}
7185
7186      writeCookie(COOKIE_NAME, normalizedCode);
7187    }
7188
7189    function clearDiscountCode() {
7190      try {
7191        window.localStorage.removeItem(STORAGE_KEY);
7192      } catch (error) {}
7193
7194      clearCookie(COOKIE_NAME);
7195      scheduleSync();
7196      updateDiscountCodeInCart("").catch(function(error) {
7197        console.warn("GKD cart discount removal failed.", error);
7198      });
7199    }
7200
7201    function getSavedDiscountCode() {
7202      var code = "";
7203
7204      try {
7205        code = window.localStorage.getItem(STORAGE_KEY) || "";
7206      } catch (error) {}
7207
7208      return normalizeCode(code || readCookie(COOKIE_NAME));
7209    }
7210
7211    function captureDiscountFromUrl() {
7212      var params = new URLSearchParams(window.location.search);
7213      var code = normalizeCode(params.get("discount"));
7214
7215      if (code) {
7216        saveDiscountCode(code);
7217      }
7218
7219      return code;
7220    }
7221
7222    function urlWithDiscount(url, code) {
7223      var nextUrl;
7224
7225      try {
7226        nextUrl = new URL(url, window.location.origin);
7227      } catch (error) {
7228        return url;
7229      }
7230
7231      if (!nextUrl.pathname.match(/\/checkout\/?$/) && nextUrl.pathname.indexOf("/checkouts/") === -1) {
7232        return url;
7233      }
7234
7235      if (code) {
7236        nextUrl.searchParams.set("discount", code);
7237      } else {
7238        nextUrl.searchParams.delete("discount");
7239      }
7240
7241      return nextUrl.pathname + nextUrl.search + nextUrl.hash;
7242    }
7243
7244    function syncCheckoutLinks(code) {
7245      var links = document.querySelectorAll('a[href*="/checkout"], a[href*="/checkouts/"]');
7246
7247      links.forEach(function (link) {
7248        var href = link.getAttribute("href");
7249        if (href) {
7250          link.setAttribute("href", urlWithDiscount(href, code));
7251        }
7252      });
7253    }
7254
7255    function syncCartForms(code) {
7256      var forms = document.querySelectorAll('form[action^="/cart"], form[action*="/cart"]');
7257
7258      forms.forEach(function (form) {
7259        var input = form.querySelector('input[name="discount"]');
7260
7261        if (!input) {
7262          input = document.createElement("input");
7263          input.type = "hidden";
7264          input.name = "discount";
7265          form.appendChild(input);
7266        }
7267
7268        input.value = code;
7269      });
7270    }
7271
7272    function buildDiscountElement(code) {
7273      var wrapper = document.createElement("div");
7274      var label = document.createElement("span");
7275      var remove = document.createElement("button");
7276
7277      wrapper.className = SYNC_CLASS;
7278      wrapper.setAttribute("data-gkd-discount-code", code);
7279      label.className = "gkd-rebuy-discount-code__label";
7280      label.textContent = code.toUpperCase();
7281      remove.className = "gkd-rebuy-discount-code__remove";
7282      remove.type = "button";
7283      remove.setAttribute("aria-label", "Remove discount code");
7284      remove.textContent = "×";
7285      remove.addEventListener("click", clearDiscountCode);
7286
7287      wrapper.appendChild(label);
7288      wrapper.appendChild(remove);
7289
7290      return wrapper;
7291    }
7292
7293    function findRebuyDiscountAnchor() {
7294      return (
7295        document.querySelector("#rebuy-cart .rebuy-cart__flyout-subtotal") ||
7296        document.querySelector("#rebuy-cart .rebuy-cart__flyout-actions") ||
7297        document.querySelector("#rebuy-cart .rebuy-cart__flyout-footer") ||
7298        document.querySelector("#rebuy-cart .rebuy-cart__flyout-content") ||
7299        document.querySelector("#rebuy-cart .rebuy-cart__flyout") ||
7300        document.querySelector("#rebuy-cart")
7301      );
7302    }
7303
7304    function discountIsApplicable(cart, code) {
7305      var normalizedCode = normalizeCode(code).toLowerCase();
7306      var discountCodes = cart && Array.isArray(cart.discount_codes) ? cart.discount_codes : [];
7307      var matchingCode = discountCodes.find(function(discountCode) {
7308        return normalizeCode(discountCode && discountCode.code).toLowerCase() === normalizedCode;
7309      });
7310
7311      return Boolean(matchingCode && matchingCode.applicable !== false);
7312    }
7313
7314    function syncRebuyDiscountCode(code, cart) {
7315      var existing = document.querySelector("." + SYNC_CLASS);
7316
7317      if (!code || !discountIsApplicable(cart, code)) {
7318        if (existing) existing.remove();
7319        return;
7320      }
7321
7322      if (existing && existing.getAttribute("data-gkd-discount-code") === code) {
7323        return;
7324      }
7325
7326      if (existing) existing.remove();
7327
7328      var anchor = findRebuyDiscountAnchor();
7329      if (!anchor) return;
7330
7331      var element = buildDiscountElement(code);
7332
7333      if (anchor.classList.contains("rebuy-cart__flyout-subtotal")) {
7334        anchor.parentNode.insertBefore(element, anchor);
7335        return;
7336      }
7337
7338      anchor.appendChild(element);
7339    }
7340
7341    function cartUpdateUrl() {
7342      var root = window.Shopify && window.Shopify.routes && window.Shopify.routes.root
7343        ? window.Shopify.routes.root
7344        : "/";
7345
7346      if (root.slice(-1) !== "/") {
7347        root += "/";
7348      }
7349
7350      return root + "cart/update.js";
7351    }
7352
7353    function setRebuySmartCart(cart) {
7354      if (
7355        !cart ||
7356        !window.Rebuy ||
7357        !window.Rebuy.SmartCart ||
7358        typeof window.Rebuy.SmartCart.setCart !== "function"
7359      ) {
7360        return;
7361      }
7362
7363      try {
7364        window.Rebuy.SmartCart.setCart(cart);
7365      } catch (error) {}
7366    }
7367
7368    function refreshRebuyCart(cart) {
7369      latestShopifyCart = cart;
7370      setRebuySmartCart(cart);
7371
7372      if (
7373        window.Rebuy &&
7374        window.Rebuy.Cart &&
7375        typeof window.Rebuy.Cart.fetchShopifyCart === "function"
7376      ) {
7377        try {
7378          window.Rebuy.Cart.fetchShopifyCart(function(rebuyCart) {
7379            var refreshedCart = rebuyCart && rebuyCart.cart ? rebuyCart.cart : rebuyCart;
7380
7381            if (refreshedCart && refreshedCart.items) {
7382              latestShopifyCart = refreshedCart;
7383              setRebuySmartCart(refreshedCart);
7384            }
7385
7386            scheduleSync();
7387          });
7388        } catch (error) {}
7389      }
7390    }
7391
7392    async function updateDiscountCodeInCart(code) {
7393      var requestId = ++discountRequestId;
7394      var normalizedCode = normalizeCode(code);
7395      var response = await fetch(cartUpdateUrl(), {
7396        method: "POST",
7397        credentials: "same-origin",
7398        headers: {
7399          Accept: "application/json",
7400          "Content-Type": "application/json"
7401        },
7402        body: JSON.stringify({
7403          discount: normalizedCode
7404        })
7405      });
7406
7407      if (!response.ok) {
7408        throw new Error("Unable to update the Shopify cart discount.");
7409      }
7410
7411      var cart = await response.json();
7412
7413      if (requestId === discountRequestId) {
7414        refreshRebuyCart(cart);
7415        scheduleSync();
7416        document.dispatchEvent(new CustomEvent("gkd:discount:updated", {
7417          detail: {
7418            cart: cart,
7419            code: normalizedCode,
7420            applicable: discountIsApplicable(cart, normalizedCode)
7421          }
7422        }));
7423      }
7424
7425      return cart;
7426    }
7427
7428    async function applyDiscountCodeToCart(code) {
7429      var normalizedCode = normalizeCode(code);
7430      if (!normalizedCode) return null;
7431
7432      return updateDiscountCodeInCart(normalizedCode);
7433    }
7434
7435    function syncDiscountCode() {
7436      var code = getSavedDiscountCode();
7437
7438      syncCheckoutLinks(code);
7439      syncCartForms(code);
7440      syncRebuyDiscountCode(code, latestShopifyCart);
7441    }
7442
7443    function scheduleSync() {
7444      window.clearTimeout(syncTimer);
7445      syncTimer = window.setTimeout(syncDiscountCode, 50);
7446    }
7447
7448    function startObserver() {
7449      if (observer || !document.body) return;
7450
7451      observer = new MutationObserver(scheduleSync);
7452      observer.observe(document.body, {
7453        childList: true,
7454        subtree: true
7455      });
7456    }
7457
7458    function rememberRebuyCart(event) {
7459      var rebuyCart = event && event.detail ? event.detail.cart : null;
7460      var cart = rebuyCart && rebuyCart.cart ? rebuyCart.cart : rebuyCart;
7461
7462      if (cart && cart.items) {
7463        latestShopifyCart = cart;
7464      }
7465
7466      scheduleSync();
7467    }
7468
7469    var capturedDiscountCode = captureDiscountFromUrl();
7470    if (capturedDiscountCode) {
7471      applyDiscountCodeToCart(capturedDiscountCode).catch(function(error) {
7472        console.warn("GKD URL discount application failed.", error);
7473      });
7474    }
7475
7476    if (document.readyState === "loading") {
7477      document.addEventListener("DOMContentLoaded", function () {
7478        syncDiscountCode();
7479        startObserver();
7480      });
7481    } else {
7482      syncDiscountCode();
7483      startObserver();
7484    }
7485
7486    document.addEventListener("rebuy.ready", scheduleSync);
7487    document.addEventListener("rebuy.cart.change", rememberRebuyCart);
7488    document.addEventListener("rebuy:cart.ready", rememberRebuyCart);
7489    document.addEventListener("rebuy:cart.change", rememberRebuyCart);
7490    document.addEventListener("rebuy:smartcart.ready", function() {
7491      setRebuySmartCart(latestShopifyCart);
7492      scheduleSync();
7493    });
7494    window.addEventListener("pageshow", scheduleSync);
7495  })();
7496</script>
7496
7497
7498<style>
7499  .gkd-rebuy-discount-code {
7500    align-items: center;
7501    background: #f0f0f0;
7502    border-radius: 8px;
7503    color: #222;
7504    display: none !important;
7505    font-family: inherit;
7506    font-size: 14px;
7507    font-weight: 700;
7508    gap: 8px;
7509    letter-spacing: 0.02em;
7510    line-height: 1;
7511    margin: 10px 0;
7512    padding: 8px 10px;
7513    text-transform: uppercase;
7514  }
7515
7516  .gkd-rebuy-discount-code__remove {
7517    appearance: none;
7518    background: transparent;
7519    border: 0;
7520    color: #666;
7521    cursor: pointer;
7522    font: inherit;
7523    font-size: 22px;
7524    line-height: 0.8;
7525    margin: 0;
7526    padding: 0;
7527  }
7528</style>
7529
7530
7531  
7531<script>
7532  // Page - Adjusted Bounce Rate 45s
7533  function kion_45_timer() {
7534    gtag('event', '45s', {
7535      'event_category': 'AdjustedBounceRate',
7536      'non_interaction': true
7537    });
7538  }
7539  
7540  // Click Tracking
7541  function _gaLt(event) {
7542    if (typeof ga != 'function' || !ga.hasOwnProperty("loaded") || ga.loaded != true || (event.which != 1 && event.which != 2)) {
7543      return;
7544    }
7545
7546    var el = event.srcElement || event.target;
7547
7548    while (el && (typeof el.tagName == 'undefined' || el.tagName.toLowerCase() != 'a' || !el.href)) {
7549      el = el.parentNode;
7550    }
7551
7552    if (el && el.href) {
7553      var link = el.href;
7554      var socialRegex = /instagram|facebook|twitter|pinterest/;
7555      var downloadRegex = /\.(pdf|docx|xlsx|txt)/;
7556
7557      if (link.indexOf(location.host) == -1 && !link.match(/^javascript\:/i)) {
7558          gtag('event', el.hostname, {
7559            'event_category': 'Outbound Link Click',
7560            'event_label': el.href,
7561            'transport_type': 'beacon',
7562          });
7563        if(socialRegex.match(link)) {
7564          gtag('event', el.hostname, {
7565            'event_category': 'Social Share Click',
7566            'event_label': _w.location.href,
7567            'transport_type': 'beacon',
7568          });
7569        }
7570      }
7571      
7572      if(downloadRegex.match(link)) {
7573        gtag('event', 'Download', {
7574          'event_category': 'File Downloads',
7575          'event_label': el.href,
7576          'transport_type': 'beacon',
7577        });
7578      }
7579      
7580    }
7581  }
7582    document.addEventListener('DOMContentLoaded', (event) => {
7583      	// Bounce rate trigger
7584        setTimeout(kion_45_timer,45000);
7585		
7586      	// Click tracking
7587        var _w = window;
7588
7589        var _gaLtEvt = ("ontouchstart" in _w) ? "click" : "mousedown";
7590
7591        _w.addEventListener("load", function () { document.body.addEventListener(_gaLtEvt, _gaLt, !1) }, !1);
7592
7593        // Form Submissions
7594
7595        // -- Klaviyo forms (For Newsletter and Exit Intent)
7596        window.addEventListener("klaviyoForms", function(e) { 
7597          if (e.detail.type == 'submit') {
7598            if(e.detail.formId == 'fSLhEy') {
7599              // Newsletter form
7600              gtag('event', 'Submission', {
7601                'event_category': 'Newsletter SignUps',
7602                'transport_type': 'beacon',
7603              });
7604            }
7605            if(e.detail.formId == 'cQZwpn') {
7606              // Exit intent form
7607              gtag('event', 'Submission', {
7608                'event_category': 'Exit Intent',
7609                'transport_type': 'beacon',
7610              });
7611            }
7612          }
7613        });
7614
7615        // -- Other form submissions
7616        $("form").submit(function(e){
7617          if($(this).hasClass('yotpo-referral-widget-form')) {
7618              gtag('event', 'Submission', {
7619                'event_category': 'Lead Gen',
7620                'transport_type': 'beacon',
7621              });
7622          }
7623
7624          gtag('event', 'Submission', {
7625                'event_category': 'Form Submission',
7626                'transport_type': 'beacon',
7627          });
7628
7629        });
7630
7631        // Scroll 50%
7632        $(window).scroll(function() {
7633         var docheight = $(document).height();
7634          if(docheight >= ( $(window).scrollTop() / 2 )) {
7635            gtag('event', 'Scrolled', {
7636                'event_category': 'Scroll',
7637                'event_label': '50%',
7638                'non_interaction': true
7639              });
7640            $(this).off('scroll');
7641          }
7642        });
7643	});
7644</script>
7644
7645
7646  
7647<link href="//www.getkion.com/cdn/shop/t/109/assets/magnific-popup.css?v=65451962456944049981784609122" rel="stylesheet" type="text/css" media="all" />
7648
7649<style>
7650  .property-value-177657 .rebuy-cart__flyout-item-subscription {
7651	display: none !important;
7652}
7653.property-value-177657 .rebuy-cart__flyout-item-quantity-widget {
7654	display: none !important;
7655}
7656</style>
7657
7658  
7658<script>
7659    document.addEventListener("DOMContentLoaded", function () {
7660      function updateSVGs() {
7661          document.querySelectorAll("svg:not([role])").forEach(svg => {
7662              svg.setAttribute("role", "img");
7663          });
7664      }
7665
7666  
7667      updateSVGs(); // Run initially
7668  
7669      // Observe DOM changes
7670      const observer = new MutationObserver(updateSVGs);
7671      observer.observe(document.body, { childList: true, subtree: true });
7672    });
7673
7674
7675$(document).ready(function () {
7676  $(".yotpo-sr-bottom-line-summary div span").removeAttr("title");
7677});
7678  </script>
7678
7679 
7680
7681
7682
7683<script>
7684/**
7685 * Scoped to: div.reviews
7686 * - Strip `title` on <span role="img">
7687 * - Strip `aria-hidden` on <svg>
7688 * - Add accessible name to <svg> via aria-label (NOT title) to avoid "title on non-interactive element"
7689 * - Strip id="yotpo-reviews-star-ratings-widget" on divs
7690 */
7691(() => {
7692  const REVIEWS_SELECTOR = "div.reviews";
7693  const YOTPO_STAR_SELECTOR = ".yotpo-star-rating[aria-label][title]";
7694  const SVG_LABEL_VALUE = "Review star";
7695
7696  function cleanup(root = document) {
7697    if (root.matches?.(YOTPO_STAR_SELECTOR)) root.removeAttribute("title");
7698    root
7699      .querySelectorAll?.(YOTPO_STAR_SELECTOR)
7700      .forEach((starRating) => starRating.removeAttribute("title"));
7701
7702    const reviewsRoots = root.matches?.(REVIEWS_SELECTOR)
7703      ? [root]
7704      : Array.from(root.querySelectorAll?.(REVIEWS_SELECTOR) || []);
7705
7706    for (const reviewsRoot of reviewsRoots) {
7707      // 1) Strip title on <span role="img">
7708      reviewsRoot
7709        .querySelectorAll('span[role="img"][title]')
7710        .forEach((span) => span.removeAttribute("title"));
7711
7712      // 2) Fix svg accessibility without using title
7713      reviewsRoot.querySelectorAll("svg").forEach((svg) => {
7714        // Remove aria-hidden so it isn't forcibly hidden from AT
7715        svg.removeAttribute("aria-hidden");
7716
7717        // Avoid "title on non-interactive element" by not using svg title at all
7718        svg.removeAttribute("title");
7719
7720        // Provide an accessible name (tooltip-free, AT-friendly)
7721        // If you only want to set this when missing, guard with: if (!svg.hasAttribute("aria-label")) ...
7722        svg.setAttribute("role", "img");
7723        svg.setAttribute("aria-label", SVG_LABEL_VALUE);
7724
7725        // (Optional) If these are purely decorative and the *container* already announces rating,
7726        // consider the opposite approach: aria-hidden="true" and remove labels.
7727      });
7728
7729      // 3) Strip specific id from divs
7730      reviewsRoot
7731        .querySelectorAll('div#yotpo-reviews-star-ratings-widget')
7732        .forEach((div) => div.removeAttribute("id"));
7733    }
7734  }
7735
7736  function start() {
7737    cleanup(document);
7738
7739    const observer = new MutationObserver((mutations) => {
7740      for (const m of mutations) {
7741        for (const node of m.addedNodes) {
7742          if (node.nodeType === Node.ELEMENT_NODE) cleanup(node);
7743        }
7744        if (m.target?.nodeType === Node.ELEMENT_NODE) cleanup(m.target);
7745      }
7746    });
7747
7748    observer.observe(document.documentElement, {
7749      childList: true,
7750      subtree: true,
7751      attributes: true,
7752      attributeFilter: ["title", "aria-hidden", "id", "aria-label", "role"],
7753    });
7754  }
7755
7756  if (document.readyState === "complete") start();
7757  else window.addEventListener("load", start, { once: true });
7758})();
7759
7760</script>
7760
7761
7762
7763
7764
7765
7766<script>
7767  window.KionVslTrackingConfig = {
7768    schemaVersion: 1,
7769    funnelId: "vsl",
7770    isVslEntry: false,
7771    isVslOffer: false,
7772    pageHandle: "",
7773    pagePath: "\/",
7774    vslVersion: ""
7775  };
7776</script>
vendor: 1 bytes, line 7776
7776
7777<script src="//www.getkion.com/cdn/shop/t/109/assets/kion-vsl-attribution.js?v=61378467238550694191787773357" defer="defer"></script>
7777
7778
7779
7780<style> a.btn {font-weight: 400; letter-spacing: 2px; background: #f7ab35; color: #000; border-style: none; border-radius: 0; text-transform: uppercase;} @media screen and (max-width: 599px) {.row-new-home.medium-background.kion-home-benefit-cards {padding-top: 25px !important; }} </style>
7781<div id="shopify-block-AbHdwMnZWWDI2eGg1d__12331707899451543273" class="shopify-block shopify-app-block"><div style="display: none;" hidden>
7782    Powerx - Function creator (Fixed)
7783</div>
7784
7785<script>
7786// Global state management to prevent race conditions
7787let isUpdating = false;
7788let updateQueue = [];
7789
7790// Debounced update function to prevent multiple simultaneous requests
7791async function safeUpdateCartAttributes() {
7792    if (isUpdating) {
7793        // If already updating, queue this request
7794        return new Promise((resolve) => {
7795            updateQueue.push(resolve);
7796        });
7797    }
7798    
7799    isUpdating = true;
7800    
7801    try {
7802        await updateAllCartAttributes();
7803        
7804        // Resolve any queued promises
7805        const queuedPromises = [...updateQueue];
7806        updateQueue = [];
7807        queuedPromises.forEach(resolve => resolve());
7808        
7809    } catch (error) {
7810        console.error('Error in safeUpdateCartAttributes:', error);
7811    } finally {
7812        isUpdating = false;
7813    }
7814}
7815
7816// Check if cart is ready and accessible
7817async function isCartReady() {
7818    try {
7819        const response = await fetch('/cart.js');
7820        return response.ok;
7821    } catch (error) {
7822        console.error('Cart not ready:', error);
7823        return false;
7824    }
7825}
7826
7827// Combined function to update all cart attributes in a single request
7828async function updateAllCartAttributes() {
7829    try {
7830        // Wait for cart to be ready
7831        if (!(await isCartReady())) {
7832            console.warn('Cart not ready, skipping update');
7833            return;
7834        }
7835
7836        // Fetch the latest cart data
7837        const cartResponse = await fetch('/cart.js');
7838        if (!cartResponse.ok) {
7839            console.error('Failed to fetch cart data:', cartResponse.status);
7840            return;
7841        }
7842        const cart = await cartResponse.json();
7843
7844        // Prepare all attributes in one object
7845        const allAttributes = {};
7846        const existingAttributes = cart.attributes || {};
7847
7848        // 1. Update discount tracking
7849        let newPowerxDiscount = '';
7850        if (cart.total_discount > 0) {
7851            const discountTitles = new Set();
7852            // Collect cart-level discount titles
7853            if (cart.cart_level_discount_applications) {
7854                cart.cart_level_discount_applications.forEach(app => {
7855                    if (app.title) discountTitles.add(app.title);
7856                });
7857            }
7858            // Collect line-level discount titles
7859            if (cart.items) {
7860                cart.items.forEach(item => {
7861                    if (item.line_level_discount_allocations) {
7862                        item.line_level_discount_allocations.forEach(alloc => {
7863                            if (alloc.discount_application && alloc.discount_application.title) {
7864                                discountTitles.add(alloc.discount_application.title);
7865                            }
7866                        });
7867                    }
7868                });
7869            }
7870            newPowerxDiscount = Array.from(discountTitles).map(t => t.toLowerCase()).join(',');
7871        }
7872
7873        const currentPowerxDiscount = (cart.attributes && cart.attributes._powerx_discount) || '';
7874        if (currentPowerxDiscount !== newPowerxDiscount) {
7875            allAttributes._powerx_discount = newPowerxDiscount;
7876        }
7877
7878        // 2. Handle URL parameters and removals
7879        await addUrlParameterAttributes(allAttributes, existingAttributes);
7880
7881        // 3. Handle expired attributes
7882        await addExpiredAttributeRemovals(allAttributes, existingAttributes);
7883
7884        // Nothing changed: never POST. A no-op cart update makes themes that
7885        // listen for /cart/update re-render or reload on every page view.
7886        if (Object.keys(allAttributes).length === 0) {
7887            return true;
7888        }
7889
7890        // 4. Add timestamp alongside the real changes
7891        allAttributes._powerx_datetime = Math.floor(Date.now() / 1000);
7892
7893        // Single update request for all attributes
7894        const response = await fetch('/cart/update.js', {
7895            method: 'POST',
7896            headers: { 'Content-Type': 'application/json' },
7897            body: JSON.stringify({ attributes: allAttributes })
7898        });
7899
7900        if (!response.ok) {
7901            console.error('Failed to update cart attributes:', response.status);
7902            return false;
7903        }
7904
7905        // Update localStorage only after successful cart update
7906        await updateLocalStorage(allAttributes);
7907        return true;
7908    } catch (error) {
7909        console.error('Error updating cart attributes:', error);
7910        return false;
7911    }
7912}
7913
7914// Handle URL parameter attributes
7915async function addUrlParameterAttributes(allAttributes, existingAttributes = {}) {
7916    try {
7917        // Get settings from schema
7918        const trackedParametersRaw = "powerx_attr";
7919        const trackedParameters = trackedParametersRaw 
7920            ? trackedParametersRaw.split(',').map(param => param.trim()).filter(param => param) 
7921            : ['powerx_attr'];
7922        const removeParameterRaw = "powerx_rm_attr";
7923        const removeParameter = removeParameterRaw ? removeParameterRaw.trim() : 'powerx_rm_attr';
7924
7925        // Parse URL parameters
7926        const urlParams = new URLSearchParams(window.location.search);
7927
7928        // Collect attributes to set from URL
7929        for (const [key, value] of urlParams) {
7930            if (trackedParameters.includes(key) && existingAttributes[key] !== value) {
7931                allAttributes[key] = value;
7932            }
7933        }
7934
7935        // Collect attributes to remove manually via remove_parameter
7936        if (removeParameter) {
7937            const removeValues = urlParams.getAll(removeParameter);
7938            for (const value of removeValues) {
7939                const attrs = value.split(',').map(attr => attr.trim()).filter(attr => attr);
7940                for (const attr of attrs) {
7941                    // Only remove what is actually set, otherwise every page load
7942                    // would send an identical no-op cart update
7943                    if (existingAttributes[attr]) {
7944                        allAttributes[attr] = ''; // Empty string removes the attribute
7945                    }
7946                }
7947            }
7948        }
7949    } catch (error) {
7950        console.error('Error processing URL parameters:', error);
7951    }
7952}
7953
7954// Handle expired attributes
7955async function addExpiredAttributeRemovals(allAttributes, existingAttributes = {}) {
7956    try {
7957        const expireAfterHoursRaw = 5;
7958        const expireAfterHours = expireAfterHoursRaw ? parseInt(expireAfterHoursRaw, 10) : 0;
7959
7960        if (expireAfterHours > 0) {
7961            const now = Date.now();
7962            const attributesToRemoveExpired = [];
7963            
7964            for (let i = 0; i < localStorage.length; i++) {
7965                const key = localStorage.key(i);
7966                if (key && key.startsWith('powerx_attr_')) {
7967                    try {
7968                        const data = JSON.parse(localStorage.getItem(key));
7969                        const attrName = key.replace('powerx_attr_', '');
7970                        const expirationTime = data.timestamp + (expireAfterHours * 60 * 60 * 1000);
7971                        if (now > expirationTime) {
7972                            attributesToRemoveExpired.push(attrName);
7973                        }
7974                    } catch (parseError) {
7975                        console.warn('Invalid localStorage data for key:', key);
7976                        // Remove invalid localStorage entry
7977                        localStorage.removeItem(key);
7978                    }
7979                }
7980            }
7981
7982            // Add expired attributes to removal list
7983            for (const attr of attributesToRemoveExpired) {
7984                if (existingAttributes[attr]) {
7985                    allAttributes[attr] = ''; // Empty string removes the attribute
7986                } else {
7987                    // Already gone from the cart, just drop the stale local record
7988                    localStorage.removeItem(`powerx_attr_${attr}`);
7989                }
7990            }
7991        }
7992    } catch (error) {
7993        console.error('Error processing expired attributes:', error);
7994    }
7995}
7996
7997// Update localStorage after successful cart update
7998async function updateLocalStorage(updatedAttributes) {
7999    try {
8000        const trackedParametersRaw = "powerx_attr";
8001        const trackedParameters = trackedParametersRaw 
8002            ? trackedParametersRaw.split(',').map(param => param.trim()).filter(param => param) 
8003            : ['powerx_attr'];
8004
8005        const now = Date.now();
8006        
8007        for (const [key, value] of Object.entries(updatedAttributes)) {
8008            if (trackedParameters.includes(key) && value && value !== '') {
8009                // Store tracked parameters with timestamp
8010                localStorage.setItem(`powerx_attr_${key}`, JSON.stringify({
8011                    value,
8012                    timestamp: now
8013                }));
8014            } else if (value === '') {
8015                // Remove attributes that were set to empty string
8016                localStorage.removeItem(`powerx_attr_${key}`);
8017            }
8018        }
8019    } catch (error) {
8020        console.error('Error updating localStorage:', error);
8021    }
8022}
8023
8024// Initialize with proper timing and error handling
8025async function initializePowerxEmbed() {
8026    try {
8027        // Wait longer for cart operations to complete
8028        await new Promise(resolve => setTimeout(resolve, 2000));
8029        
8030        // Check if we have any work to do
8031        const trackedParametersRaw = "powerx_attr";
8032        const trackedParameters = trackedParametersRaw 
8033            ? trackedParametersRaw.split(',').map(param => param.trim()).filter(param => param) 
8034            : ['powerx_attr'];
8035        const removeParameterRaw = "powerx_rm_attr";
8036        const removeParameter = removeParameterRaw ? removeParameterRaw.trim() : 'powerx_rm_attr';
8037
8038        // Exit if no parameters to track and no removal parameter
8039        if (trackedParameters.length === 0 && !removeParameter) {
8040            return;
8041        }
8042
8043        // Perform the update
8044        await safeUpdateCartAttributes();
8045        
8046    } catch (error) {
8047        console.error('Error initializing PowerX embed:', error);
8048    }
8049}
8050
8051// Event listeners with debouncing
8052let cartUpdateTimeout;
8053function handleCartUpdate() {
8054    // Clear existing timeout to debounce rapid cart updates
8055    if (cartUpdateTimeout) {
8056        clearTimeout(cartUpdateTimeout);
8057    }
8058    
8059    // Set a new timeout to handle the update after a brief delay
8060    cartUpdateTimeout = setTimeout(() => {
8061        safeUpdateCartAttributes();
8062    }, 500); // 500ms delay to allow cart operations to settle
8063}
8064
8065// // Listen for cart updates with proper debouncing
8066// document.addEventListener('cart:updated', handleCartUpdate);
8067
8068// // Also listen for other common cart events
8069// document.addEventListener('cart:added', handleCartUpdate);
8070// document.addEventListener('cart:changed', handleCartUpdate);
8071
8072// Initialize the embed
8073initializePowerxEmbed();
8074
8075</script>
8075
8076
8077</div><div id="shopify-block-AMXlNNXM5SWtGZ0cxR__17151115064775110295" class="shopify-block shopify-app-block"><style data-recharge-theme='{"has_theme_customization": true, "design_mode": false }'>
8078  .recharge-theme {
8079    /* App */
8080    --recharge-app-background: #FFFFFF;
8081    --recharge-app-container: 1200px;
8082    --recharge-app-vertical-padding: 32px;
8083
8084    /* Brand colors */
8085    
8086--recharge-color-brand: #000000;
8087
8088    /* Tints */
8089    --recharge-color-brand-120: #000000;
8090    --recharge-color-brand-20: #333333;
8091    --recharge-color-brand-40: #666666;
8092    --recharge-color-brand-60: #999999;
8093    --recharge-color-brand-75: #bfbfbf;
8094    --recharge-color-brand-85: #d9d9d9;
8095
8096    /* Neutral */
8097    --recharge-color-neutral: hsl(0, 35%, 7%);
8098    --recharge-color-neutral-80: hsl(0, 7%, 25%);
8099    --recharge-color-neutral-70: hsl(0, 5%, 35%);
8100    --recharge-color-neutral-40: hsl(0, 3%, 63%);
8101    --recharge-color-neutral-10: hsl(0, 2%, 91%);
8102    
8103
8104    /* Links */
8105    --recharge-button-secondary: #333333;
8106    --recharge-button-secondary-120: #1c1c1c;
8107    --recharge-button-secondary-60: #858585;
8108
8109    /* Images */
8110    --recharge-images-ratio: 1;
8111
8112    /* Cards */
8113    
8114    --recharge-cards-background: #FFFFFF;
8115    
8116
8117    
8118    --recharge-cards-border-color: RGBA(0,0,0,0);
8119    
8120
8121    /* Fonts */
8122    --recharge-typography-scale: 16px;
8123    --recharge-typography-size-1: calc(3 * var(--recharge-typography-scale));
8124    --recharge-typography-size-2: calc(2.25 * var(--recharge-typography-scale));
8125    --recharge-typography-size-3: calc(1.625 * var(--recharge-typography-scale));
8126    --recharge-typography-size-4: calc(1.25 * var(--recharge-typography-scale));
8127    --recharge-typography-size-5: calc(1 * var(--recharge-typography-scale));
8128    --recharge-typography-size-6: calc(.875 * var(--recharge-typography-scale));
8129
8130    /** Text **/
8131    --recharge-typography-light: #FFFFFF;
8132    --recharge-typography-primary: var(--recharge-color-neutral);
8133    --recharge-typography-secondary: var(--recharge-color-neutral-70);
8134
8135    /* Corners */
8136    --recharge-corners-radius: 0px;
8137
8138    --recharge-button-border-radius: 0px;
8139    
8140
8141    /* Views */
8142    
8143    --recharge-views-background: #FFFFFF;
8144    
8145
8146    /* Buttons */
8147    --recharge-button-font-family: inherit;
8148    --recharge-button-brand: var(--recharge-color-brand);
8149    --recharge-button-color: #FFFFFF;
8150  }
8151</style>
8152
8153</div>
8153<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
vendor: 1 bytes, line 8153
8153
8154<script async>(function(){async function a(){const c=new URL('https://www.getkion.com');c.pathname='/em-cgi/dynamic'+ document.location.pathname;c.search=document.location.search;const d=await fetch(c,{headers:{accept:'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',referrer:document.referrer,'user-agent':navigator.userAgent}});if(d.ok){const e=await d.json();if(!e.length)return;const f=document.querySelectorAll('dynamic, *[dynamic]');for(let g=0;g<f.length;g++){const h=e[g];const i=document.createRange().createContextualFragment(h);f[g].replaceChildren(i)}}else{console.log.apply(console,['%c %c %c Edgemesh Server %c %c %c ','background: #805AD5; padding:5px 0; border-top-left-radius:3px; border-bottom-left-radius:3px;','background: #322659; padding:5px 0;','color: #E2E8F0; background: #171923; padding:5px 0;','background: #322659; padding:5px 0;','background: #805AD5; padding:5px 0; border-top-right-radius:3px; border-bottom-right-radius:3px;','background: transparent; padding:5px 0;','Could not fetch dynamic fragments.'])}}const b=typeof EDGEMESH_SERVER==='undefined'?{}:EDGEMESH_SERVER;if(b.dynamicFragments&&b.dynamicFragments.event){window.addEventListener(b.dynamicFragments.event,a)}else{a()}})()</script>
8154</body>
8155
8156</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.