1<!doctype html> 2<html class="no-js" lang="en"> 3<head> 4<!-- Start of Shoplift scripts --> 5<!-- 2026-05-07T22:08:49.9804294Z --> 6<style>.shoplift-hide { opacity: 0 !important; }</style> 7<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
8<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-10-07T00:00:06.1082269Z */(function(){"use strict";var se=document.createElement("style");se.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(se);var ge=" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x
87|;\\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/",me=/bot|crawl|http|lighthouse|scan|search|spider/i,z;function ye(){if(z instanceof RegExp)return z;try{z=new RegExp(ge,"i")}catch{z=me}return z}var ve=a=>typeof a=="string"&&a!=="";function we(a){return ve(a)&&ye().test(a)}var be=we;class ee{timestamp;constructor(){this.timestamp=new Date}}class Se extends ee{type;testId;hypothesisId;constructor(e,t,i){super(),this.type=3,this.testId=e,this.hypothesisId=t,this.timestamp=i}}class Ce extends ee{type;path;constructor(e){super(),this.type=4,this.path=e}}class Te extends ee{type;cart;constructor(e){super(),this.type=5,this.cart=e}}class G extends Error{isBot;constructor(){super(),this.isBot=!0}}function Ie(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)}ne(a,e,(i,s,r,n,o)=>o(s,r),t)}function U(a,e,t){for(const i of e.selectors)oe(a,e.testId,e.hypothesisId,i,t??(()=>{}));ne(a,e,oe,t??(()=>{}))}function re(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 ne(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 oe(a,e,t,i,s){const r=a.querySelectorAll(i.cssSelector);for(let n=0;n<r.length;n++){let o=r.item(n);if(o instanceof HTMLElement&&o.dataset.shoplift!==""){o.dataset.shoplift="";for(const l of i.actions.sort(De))o=Pe(a,i.cssSelector,o,l)}}return r.length>0&&s?(s(e,t),!0):!1}function Pe(a,e,t,i){switch(i.type){case"innerHtml":t.innerHTML=i.value;break;case"attribute":Ae(t,i.scope,i.value);break;case"css":ke(a,e,i.value);break;case"js":Ee(a,t,i);break;case"copy":return xe(t);case"remove":_e(t);break;case"move":Re(t,parseInt(i.value));break}return t}function Ae(a,e,t){a.setAttribute(e,t)}function ke(a,e,t){const i=a.createElement("style");i.innerHTML=`${e} { ${t} }`,a.getElementsByTagName("head")[0]?.appendChild(i)}function Ee(a,e,t){Function("document","element",`"use strict"; ${t.value}`)(a,e)}function xe(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 _e(a){a.remove()}function Re(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 De(a,e){return ae(a)-ae(e)}function ae(a){return a.type==="copy"||a.type==="remove"?0:1}
8const M={Template:0,UrlRedirect:2,Script:3,Price:5},Oe="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.96001%207.90004C9.86501%207.90004%209.77001%207.86504%209.69501%207.79004L6.43501%204.53004C6.19501%204.29004%205.80501%204.29004%205.56501%204.53004L2.30501%207.79004C2.16001%207.93504%201.92001%207.93504%201.77501%207.79004C1.63001%207.64504%201.63001%207.40504%201.77501%207.26004L5.03501%204.00004C5.56501%203.47004%206.43001%203.47004%206.96501%204.00004L10.225%207.26004C10.37%207.40504%2010.37%207.64504%2010.225%207.79004C10.15%207.86004%2010.055%207.90004%209.96001%207.90004Z'%20fill='white'/%3e%3c/svg%3e",Ve="data:image/svg+xml,%3csvg%20width='14'%20height='24'%20viewBox='0%200%2014%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.3976%2014.5255C12.2833%2013.8788%2012.0498%2013.3024%2011.6952%2012.7961C11.3416%2012.2898%2010.9209%2011.8353%2010.4353%2011.4317C9.94868%2011.0291%209.43546%2010.6488%208.89565%2010.292C8.48487%2010.049%208.09577%209.78565%207.72637%209.50402C7.35697%209.2224%207.08016%208.89503%206.89694%208.51987C6.71273%208.14471%206.67826%207.69533%206.79055%207.1697C6.86345%206.83216%206.97476%206.54647%207.12351%206.31162C7.27324%206.07778%207.47124%205.89986%207.7175%205.77684C7.96377%205.65483%208.21989%205.59383%208.48389%205.59383C8.88087%205.59383%209.17639%205.7016%209.3734%205.91714C9.56943%206.13268%209.68271%206.42345%209.71424%206.78946C9.74576%207.15547%209.72015%207.55401%209.63839%207.98509C9.55663%208.41617%209.43645%208.84724%209.27687%209.27934L13.5127%208.80149C13.9638%207.52656%2014.1017%206.42447%2013.9264%205.49725C13.751%204.56901%2013.2664%203.85122%2012.4724%203.34491C12.239%203.19648%2011.9779%203.07041%2011.6893%202.96569L12.0026%201.50979L9.86397%200L7.3875%201.50979L7.11169%202.78878C6.65166%202.8874%206.21724%203.01957%205.8114%203.19038C4.85292%203.594%204.06684%204.15115%203.45117%204.86385C2.83452%205.57655%202.42571%206.40108%202.22378%207.33847C2.06616%208.06947%202.04942%208.70796%202.17551%209.25087C2.30061%209.7948%202.52028%2010.2828%202.8355%2010.7139C3.14974%2011.145%203.51816%2011.5344%203.93977%2011.881C4.36039%2012.2288%204.782%2012.5521%205.20164%2012.851C5.68334%2013.1702%206.13844%2013.5169%206.56497%2013.8921C6.99052%2014.2672%207.31954%2014.7125%207.55004%2015.228C7.78055%2015.7445%207.81502%2016.3769%207.65347%2017.1262C7.56482%2017.5389%207.43676%2017.8765%207.27028%2018.1388C7.10381%2018.4011%206.89596%2018.5983%206.64772%2018.7295C6.3985%2018.8606%206.12071%2018.9267%205.8114%2018.9267C5.21641%2018.9267%204.79776%2018.6034%204.62833%2018.1632C4.4589%2017.7229%204.47367%2017.2583%204.60075%2016.5639C4.72782%2015.8705%205.05092%2015.1395%205.37107%2014.3699H1.17665C1.17665%2014.3699%200.207341%2016.1115%200.0310135%2017.6762C-0.0655232%2018.5302%200.0635208%2019.2653%200.41519%2019.8844C0.76686%2020.5036%201.33032%2020.9814%202.10655%2021.319C2.39222%2021.443%202.7104%2021.5447%203.05813%2021.623L2.54589%2024H7.17473L7.7047%2021.5386C8.08493%2021.442%208.43857%2021.3231%208.76562%2021.1787C9.73985%2020.7476%2010.52%2020.1427%2011.1071%2019.3649C11.6932%2018.5871%2012.0873%2017.7291%2012.2892%2016.7917C12.4744%2015.9295%2012.5099%2015.1741%2012.3966%2014.5275L12.3976%2014.5255Z'%20fill='white'/%3e%3c/svg%3e";async function Le(a){let e=a.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";const t=atob(e),i=Uint8Array.from(t,n=>n.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 te(a,e){return e}function q(a,e=!1,t=!1,i=","){const s=a/100;if(t){const n=Math.round(s).toLocaleString("en-US");return i!==","?n.replace(/,/g,i):n}else{const r=e?",":".",n=s.toFixed(2).split("."),o=parseInt(n[0],10),l=n[1]??"00",c=o.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 le(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 $e(a,e,t,i){const{priceInCents:s,compareAtPriceInCents:r}=t,{moneyFormat:n,currency:o,currencyCodeEnabled:l}=i;if(a.getAttribute("data-sl-attribute-p")===e)a.innerHTML=H(s,n,o,l);else if(a.getAttribute("data-sl-attribute-cap")===e)r<=0||r<=s?a.remove():a.innerHTML=H(r,n,o,l);else if(a.getAttribute("data-sl-attribute-discount")===e&&!(r<=0||r<=s)){const d=Math.round((r-s)/r*100),p=le(H(r-s,n,o,!1)),h=a.getAttribute("data-sl-format")||"percent";h==="percent"?a.textContent=`-${d}%`:h==="amount"?a.textContent=`-${p}`:h==="both"&&(a.textContent=`-${d}% (-${p})`)}}function Me(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 n=r<=0||r<=s;
8if(e.push({id:`cap-${i}`,cssSelector:`[data-sl-attribute-cap="${i}"]`,urlPatterns:[t],actions:[{id:`cap-action-${i}`,type:n?"remove":"innerHtml",scope:"compare-at-price",value:n?"":H(r,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]}),!n&&r>s){const o=Math.round((r-s)/r*100),l=le(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 = '-${o}%'; } else if (format === 'amount') { element.textContent = '-${l}'; } else if (format === 'both') { element.textContent = '-${o}% (-${l})'; }`}]})}}return e}const qe=a=>{let e=5381;for(let t=0;t<a.length;t++)e=(e*33^a.charCodeAt(t))>>>0;return e.toString(36)},He=()=>Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4),Ne=a=>btoa(JSON.stringify(a)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),J=a=>a.replace(/#slr-[a-z0-9]+$/,""),Ue=/^[A-Za-z0-9._=~+/-]{1,256}$/,ie=a=>typeof a=="string"&&Ue.test(a)?a:null,Fe=a=>{if(!a)return null;try{const t=JSON.parse(atob(decodeURIComponent(a)))?.$exchange_id;return typeof t=="string"&&t.length>0?t:null}catch{return null}},rt="modulepreload",nt=function(a){return"/"+a},ot={},Be=function(e,t,i){let s=Promise.resolve();function r(n){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=n,window.dispatchEvent(o),!o.defaultPrevented)throw n}return s.then(n=>{for(const o of n||[])o.status==="rejected"&&r(o.reason);return e().catch(r)})};function ce(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 n=e?s:r,o=e?r:s;if(t)for(const c of a.plans)for(const d of[c.existingShopifyPlanId,c.createdShopifyPlanId])d&&!n.includes(d)&&!o.includes(d)&&o.push(d);const l={};for(let c=0;c<o.length;c++){const d=o[c],p=n[c];d&&p&&(l[d]=p)}return{showPlanIds:n,hidePlanIds:o,swapMap:l}}function de(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(n=>n.productId===t);if(r)return r.direction}return a.plans.find(r=>!r.variantId)?.direction??null}function Y(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;const 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 n=r.getAttribute("data-sl-attribute-p");if(!n)continue;const o=a.variants.find(l=>l[0]===n);if(o?.[3])return o[3]}const s=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(s){const r=a.variants.find(n=>n[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 pe(a,e){return a===null?!1:a==="decrease"?!e:e}async function ze(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 n=i.plans.some(d=>d.variantId);let o=!1,l=!1;function c(){if(!l){l=!0;try{const d=n?document.querySelector("select[name='id'], input[name='id']")?.value:void 0,{showPlanIds:p,hidePlanIds:h,swapMap:u}=ce(i,s,d);a.swapMap=u;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&&(p.includes(v.value)?g.style.display="":h.includes(v.value)&&(g.style.display="none"))}const w=y.some(v=>p.includes(v.value)&&v.checked),I=y.some(v=>h.includes(v.value)&&v.checked);if((w||I)&&(o=!1),!w&&!o){o=!0;for(const v of y)if(p.includes(v.value)){v.closest("label")?.click(),v.dispatchEvent(new Event("change",{bubbles:!0}));break}}const f=y.find(v=>v.checked);m=f&&p.includes(f.value)?f.value:p[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=>p.includes(I.value));w&&(y.value=w.value,y.dispatchEvent(new Event("change",{bubbles:!0})))}m=p.includes(y.value)?y.value:p[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}}}
8if(a.subscriptionHideWrongPlans=c,a.swapMap=ce(i,s).swapMap,c(),n){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 Z(a,e){const t=D(a,"subscriptionPlans");return t.length?e.querySelector(t[0].selector)?.shadowRoot??null:null}function X(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 K(a,e){return H(a,e.moneyFormat,e.currency,e.currencyCodeEnabled)}function We({originalFetch:a,swapMap:e,slptValue:t,getSelectedPlanId:i,log:s}){if(window.fetch.__shoplift_intercepted)return s("[SUB-INTERCEPT] already installed â skipping"),()=>{};function r(o){if(i){const l=i();if(l)return e[l]??l}return e[o]??o}const n=function(o,l){if((typeof o=="string"?o:o instanceof URL?o.href:o.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)}else if(typeof l.body=="string"){const d=JSON.parse(l.body);if(d.items)for(const p of d.items){const h=String(p.selling_plan??"");h?p.selling_plan=r(h):!p.selling_plan&&t&&(p.properties||(p.properties={}),p.properties._slpt=t)}else if(d.id){const p=String(d.selling_plan??"");p?d.selling_plan=r(p):!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,o,l)};return n.__shoplift_intercepted=!0,window.fetch=n,function(){window.fetch===n&&(window.fetch=a)}}function Ke({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 ue({data:a,runUpdates:e,debounceMs:t=150}){let i=null;function s(){i&&clearTimeout(i),e(),i=setTimeout(e,t)}let r=null;const n=[],o={childList:!0,subtree:!0,characterData:!0,attributes:!0};function l(h){for(const u of n)u.disconnect();n.length=0;for(const u of Array.from(h.querySelectorAll("*")))if(u.shadowRoot){const b=new MutationObserver(s);b.observe(u.shadowRoot,o),n.push(b)}}function c(){const h=B(a);return h?(r&&r.disconnect(),l(h),r=new MutationObserver(u=>{u.some(b=>b.type==="childList"&&b.addedNodes.length>0)&&l(h),s()}),r.observe(h,o),!0):!1}const d=document.body||document.documentElement,p=new MutationObserver(()=>{c()&&s()});return p.observe(d,{childList:!0,subtree:!0}),c()&&s(),e(),function(){i&&(clearTimeout(i),i=null),p.disconnect(),r&&(r.disconnect(),r=null);for(const u of n)u.disconnect();n.length=0}}async function Ge(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 n=s.subscriptionData,o=s.isControl,l=s.priceData,c=n.widget.widgetType;let d=W(l),p=Y(n,d),h=p.discountMap,u=p.maxDiscount;function b(){const g=W(l);g!==d&&(d=g,p=Y(n,d),h=p.discountMap,u=p.maxDiscount,a.log(`[SUB-PRICE] scope refreshed side=${o?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${u}`))}a.log(`[SUB-PRICE] side=${o?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${u}
8`),a.updatePriceTestHiddenInputs(r,o?"control":"variant",!1);function E(){if(!l)return null;const g=j(l),P=X(g),A=de(n,P,d);if(!pe(A,o))return null;const k=P?g.get(P):void 0;return k?{formattedVariantPrice:K(k.priceInCents,l),formattedDiscounted:K(k.priceInCents*(1-u/100),l)}:null}We({originalFetch:a.fetch,swapMap:a.swapMap??{},slptValue:a.slptValue??void 0,log:a.log,getSelectedPlanId:()=>{const g=B(n);if(!g)return null;const P=Z(n,g);if(!P)return null;const A=D(n,"subscriptionInput"),k=A.length?A[0].selector:'input[name="rc_plan"]';return P.querySelector(`${k}:checked`)?.value??null}});function S(g){const P=D(n,"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(`${u}%`)&&$(k,x=>N(x,u))}}function C(g){const P=E();if(!P)return;const A=D(n,"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(n,"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(n,"subscriptionInput"),A=P.length?P[0].selector:'input[name="rc_plan"]',k=D(n,"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,st=>N(st,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(n,"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(n);if(!g)return;S(g),l&&C(g);const P=Z(n,g);let A=u;if(P){const k=D(n,"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(n);if(!P)return;const A=D(n,"onetimeToggle"),k=A.length?A[0].selector:'input[value="onetime"]';if(!P.querySelector(k)?.checked)return;const R=D(n,"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()}ue({data:n,runUpdates:v})}async function je(a){if(a.subscriptionOneTimeDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=!!(t?.subscriptionData&&t.priceData),s=i?null:a.findActiveSubscriptionTestControl(),r=i?t:s?.hypothesis;if(!r?.subscriptionData||!r.priceData)return;const n=i?e.testId:s.testId;a.subscriptionOneTimeDone=!0;const o=r.subscriptionData,l=r.priceData,c=j(l),d=r.isControl,p=d?"control":"variant";a.slptValue=`${n}:${p}
8:f`,a.updatePriceTestHiddenInputs(n,p,!1);function h(){const u=B(o);if(!u)return;const b=X(c);if(!b)return;const E=W(l),S=de(o,b,E);if(!pe(S,d))return;const C=c.get(b);if(!C)return;const _=H(C.priceInCents,l.moneyFormat,l.currency,l.currencyCodeEnabled),T=D(o,"onetimePrice");if(!T.length)return;const m=D(o,"onetimeContainer"),y=m.length?m[0].selector:'[part~="rc-purchase-option__onetime"]',I=u.querySelector(y)??u;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 Je(a,e){const{subscriptionPreviewRender:t}=await Be(async()=>{const{subscriptionPreviewRender:i}=await Promise.resolve().then(()=>it);return{subscriptionPreviewRender:i}},void 0);return t(a.subscriptionData,a.priceData,a.isControl,e)}function Ye(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,n=i[0].selector,o=s[0].selector;let l=!1,c=null,d=!1;function p(){if(!d){d=!0;try{h()}finally{d=!1}}}function h(){const C=document.querySelector(r);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(n);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(o));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 u={childList:!0,subtree:!0,characterData:!0};let b=null;function E(C){b?.disconnect(),b=new MutationObserver(()=>p()),b.observe(C,u)}function S(){const C=document.querySelector(r);if(!C?.shadowRoot)return!1;p(),new MutationObserver(()=>{p();const m=C.shadowRoot.querySelector(n);m?.shadowRoot&&E(m.shadowRoot)}).observe(C.shadowRoot,u);const T=C.shadowRoot.querySelector(n);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 he="Limited preview",Ze="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.",Xe=5e3;function Qe(){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=he;const i=document.createElement("div");i.id="shoplift-preview-subscription-warning__tooltip",i.setAttribute("role","tooltip"),i.textContent=Ze,a.appendChild(e),a.appendChild(t),a.appendChild(i),a.setAttribute("tabindex","0"),a.setAttribute("aria-describedby",i.id),a.setAttribute("aria-label",he);let s=null;function r(){s!==null&&(clearTimeout(s),s=null)}function n(){i.classList.add("shoplift-preview-subscription-warning__tooltip--visible")}function o(){i.classList.remove("shoplift-preview-subscription-warning__tooltip--visible")}function l(){n(),r(),s=setTimeout(()=>{o(),s=null},Xe)}function c(){r(),n()}function d(){s===null&&o()}a.addEventListener("mouseenter",c),a.addEventListener("mouseleave",d),a.addEventListener("focus",c),a.addEventListener("blur",d);function p(u){try{const b=u.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{}}
8document.addEventListener("click",p,!0);function h(){r(),document.removeEventListener("click",p,!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 fe=!1;class et{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;klaviyoGateTimeout=1e3;geoViaShopify;resolvedRegion=null;klaviyoMembership=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,n,o,l,c,d,p,h,u,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=p.map(S=>({...S,startAt:new Date(S.startAt),statusHistory:S.statusHistory.map(C=>({...C,createdAt:new Date(C.createdAt)}))})),this.inactiveTestConfigs=h,this.hiddenSubscriptionPlans=u,this.sendPageView=!!r,this.shopliftDebug=n===!0,this.telemetryEnabled=c===!0,this.geoViaShopify=b===!0,this.gaConfig=o!=={"sendEvents":false,"mode":"gtag"}?o:{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=p.filter(S=>
8S.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 n=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",n),this.state.temporary.isMerchant=n,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,be(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=J(window.location.href)),this.state.temporary.lastSeen=e,this.persistTemporaryState(),window.__slEntryPage=this.state.temporary.entryPage??"";const i=this.state.essential.visitorTests.filter(n=>n.hypothesisId&&+n.createdAt>Date.now()-6e4);if(i.length===0)this.sendDiagnosticTelemetry("page-landed",null);else for(const n of i)this.sendDiagnosticTelemetry("page-landed",n.testId,{hypothesisId:n.hypothesisId,isControl:n.assignedTo==="control",testType:n.testType??"unknown"});if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const n=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(o=>o?.json());this.log(`IP: ${n}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),te)}).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 n=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>n,enumerable:!0,configurable:!0})}if(this.needsKlaviyo(this.testConfigs,this.state.essential.visitorTests,this.state.analytics.visitor??this.buildBaseVisitor())&&this.ensureKlaviyoMembership(),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(n=>(n.hypothesisId?this.getHypothesis(n.hypothesisId):void 0)?.subscriptionData!=null)||Object.values(this.state.temporary.testReservations??{}).some(n=>this.getHypothesis(n.hypothesisId)?.subscriptionData!=null);this.hiddenSubscriptionPlans&&!r&&(this.log(`[SUB-GLOBAL] Visitor not in subscription test â hiding ${this.hiddenSubscriptionPlans.planIds.length} B-side plans`),Ye(this.hiddenSubscriptionPlans,n=>this.log(n))),await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange(),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(e){if(e instanceof G)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()}
8async 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 Le(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 n=await this.makeJsonRequest({method:"get",url:r}).catch(o=>(this.log("Error getting domSelectors",o),null));if(s.variants.forEach(o=>o.domSelectors=n[o.id]?.domSelectors),s.isDraft){const o=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/subscription-preview`,l=await this.makeJsonRequest({method:"get",url:o}).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 n=document.createElement("div"),o=document.createElement("img");o.src=Ve,o.height=24,o.width=14,n.style.padding="0 16px",n.style.lineHeight="100%",n.appendChild(o),r.appendChild(n);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 p=document.createElement("span");if(p.id="shoplift-preview-variant-title",p.innerText=t?this.getDefaultVariantTitle(t):"Untitled variant "+i.toUpperCase(),c.appendChild(p),s.length>1){const b=document.createElement("img");b.src=Oe,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=Qe();r.appendChild(b.root),this.subscriptionPreviewWarningCleanup=b.cleanup}const h=document.createElement("div"),u=document.createElement("button");u.id="shoplift-exit-preview-button",u.innerText="Exit",h.appendChild(u),u.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(n=>n.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(n=>n.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);
8const r=new URL(window.location.toString()),n=r.searchParams.get("view"),o=i.type===s.type;return!o&&!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&&o&&n!==(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)),n!==null&&n!==(i.affix||"__DEFAULT__")&&(r.searchParams.delete("view"),this.hidePage(),this.queueRedirect(r)),!0)}handleUrlPreview(e){const t=e.currentVariant,i=e.variants.find(n=>n.id===t),s=e.variants.find(n=>n.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(n=>n.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 Je({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(o=>o.hypotheses.some(l=>l.id===s));if(!r)return this.log("No test found for hypothesis '%s'",s),!1;const n=this.state.essential.visitorTests.find(o=>o.testId===r.id);return n?(this.log("Active visitor test found",s),n.hypothesisId===s):(await this.manuallySplitVisitor(r),this.testConfigs.some(o=>o.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:n,...o}=s;return o})})}}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])||this.showPage();const i=this.getReservationForTest(e.id);i&&!i.isRealized&&i.entryCriteriaKey&&(this.log("Realizing manual API reservation for test '%s'",e.id),this.realizeReservationForCriteria(i.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
8ategoryFromExistingTests(),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,p=c.length,h=d+p,u=Math.random()*h;this.state.temporary.testCategory=u<d?"global":"conditional",this.log("Category dice roll: rolled %.2f of %d (global weight: %d, conditional weight: %d), selected '%s'",u,h,d,p,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 n=this.state.temporary.testCategory;if(this.log("Visitor test category: %s",n),n==="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 o=this.getReservationForCurrentPage();if(o&&!o.isRealized){const l=this.getHypothesis(o.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(o.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(u=>u.type==="price");if(this.state.essential.visitorTests.find(u=>u.testId===i.id&&u.isInvalid&&!u.hypothesisId)){if(this.log("Visitor is blocked from test '%s', applying control prices if price test",i.id),s){const u=i.hypotheses.find(b=>b.isControl);u?.priceData&&(this.applyPriceTestWithMapLookup(i.id,u,[u],()=>{this.log("Control prices applied for blocked visitor, no metrics tracked")}),this.updatePriceTestHiddenInputs(i.id,"control",!1))}continue}const n=this.getReservationForTest(i.id);let o=null,l=!1;const c=t.find(u=>i.hypotheses.some(b=>u.id===b.id));if(n)o=this.getHypothesis(n.hypothesisId)??null,this.log("Using reserved hypothesis '%s' for test '%s'",n.hypothesisId,i.id);else if(c)o=c,this.log("Using existing hypothesis assignment for test '%s'",i.id);else if(s){const u=this.visitorActiveTestTypeWithReservations();u?(l=!0,this.log("Visitor already in test type '%s', treating as non-test for price test '%s'",u,i.id)):o=this.pickHypothesis(i)}else o=this.pickHypothesis(i);if(l&&s){const u=i.hypotheses.find(b=>b.isControl);u?.priceData&&(this.log("Applying control prices for non-test visitor on price test '%s' (Map-based)",i.id),this.applyPriceTestWithMapLookup(i.id,u,[u],()=>{this.log("Control prices applied for non-test visitor, no metrics tracked")}
8),this.updatePriceTestHiddenInputs(i.id,"control",!1));continue}if(!o){this.log("Failed to pick hypothesis for test");continue}this.sendDiagnosticTelemetry("assignment",i.id,{hypothesisId:o.id,isControl:o.isControl,testType:o.type});const d=i.bayesianRevision??4,p=o.type==="price",h=d>=5;if(p&&h){if(this.log(`Price test with Map-based lookup (v${d}): ${i.id}`),!o.priceData){this.log("No price data for hypothesis '%s', skipping",o.id);continue}const u=o.isControl?"control":"variant";this.log(`Setting up Map-based price test for ${u} (test: ${i.id})`),this.applyPriceTestWithMapLookup(i.id,o,i.hypotheses,b=>{const E=this.getReservationForTest(b);E&&!E.isRealized&&E.entryCriteriaKey?this.realizeReservationForCriteria(E.entryCriteriaKey):this.queueAddVisitorToTest(b,o),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(p&&!h){this.log(`Price test without viewport tracking (v${d}): ${i.id}`);const u=this.getDomSelectorsForHypothesis(o);if(u.length===0)continue;U(document,{testId:i.id,hypothesisId:o.id,selectors:u},b=>{this.queueAddVisitorToTest(b,o),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(!o.domSelectors||o.domSelectors.length===0){this.log("No selectors found, skipping hypothesis");continue}U(document,{testId:i.id,hypothesisId:o.id,selectors:o.domSelectors},u=>{this.queueAddVisitorToTest(u,o),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(n=>n.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 o=RegExp("^(/w{2}-w{2})/").exec(t.pathname);if(o&&o.length>1){const l=o[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(o=>o.hypothesisId===e.id)?.testId,s=t.pathname+t.search,r=window.location.pathname+window.location.search,n=J(t.hash);if(i&&s!==r&&!n){const o=He(),l=Ne({v:2,t:i,n:o,fh:qe(window.location.pathname+window.location.search)});t.hash=`slr-${o}`;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,n=this.device;return{createdAt:new Date,utmSource:e,utmMedium:t,utmCampaign:i,utmContent:s,referrer:r,device:n}}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
8ing 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(re(r)).test(J(t.toString())))))}needsKlaviyo(e,t,i){return e.some(s=>s.requiresKlaviyo&&!t.some(r=>r.testId===s.id)&&this.matchesTestSettings(s,i,this.visitorCreatedDuringTestActive(s.statusHistory)
8))}getKlaviyoIdentity(){const e=ie(Fe(this.getCookie("__kla_id",document.cookie)));return{kx:ie(this.urlParams.get("_kx"))??(e?null:ie(new URL(this.state.temporary.entryPage??"",window.location.href).searchParams.get("_kx"))),exchangeId:e}}ensureKlaviyoMembership(){return this.klaviyoMembership??=this.resolveKlaviyoMembership().catch(e=>(this.log("Error resolving Klaviyo membership",e),{groups:[],known:!1})),this.klaviyoMembership}async resolveKlaviyoMembership(){const{kx:e,exchangeId:t}=this.getKlaviyoIdentity();if(!(e??t))return{groups:[],known:!1};this.log("Hiding page to resolve Klaviyo membership"),this.hidePage();const s=new URLSearchParams;e&&s.append("kx",e),t&&s.append("exchangeId",t);let r={groups:[],known:!1};try{const n=await this.makeJsonRequest({method:"get",url:`${this.host}/api/v1/storefront/klaviyo-groups/${encodeURIComponent(this.shop)}?${s}`,signal:AbortSignal.timeout(this.klaviyoGateTimeout)});r={groups:n?.groups??[],known:n?.known===!0}}catch(n){if(n instanceof G)return n;this.log("Error getting Klaviyo groups",n)}return r}async filterTestsByAudience(e,t,i){const s=[],r=e.some(l=>(l.requiresRegion||this.geoViaShopify&&l.requiresCountry)&&!i.some(c=>c.testId===l.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 n=t.country;this.geoViaShopify?n=this.resolvedRegion?this.resolvedRegion.slice(0,2):n:!n&&e.some(l=>l.requiresCountry&&!i.some(c=>c.testId===l.id))&&(this.log("Hiding page to check geoip"),this.hidePage(),n=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/get-country`,signal:AbortSignal.timeout(this.getCountryTimeout)}).catch(l=>(this.log("Error getting country",l),null)));let o={groups:[],known:!1};if(this.needsKlaviyo(e,i,t)){const l=await this.ensureKlaviyoMembership();if(l instanceof G)throw l;o=l}window.__slKlaviyoGroups=o.groups,window.__slKlaviyoKnown=o.known;for(const l of e){if(this.log("Checking audience for test '%s'",l.id),this.state.essential.visitorTests.some(p=>p.testId===l.id&&p.hypothesisId==null)){console.log(`Skipping blocked test '${l.id}'`);continue}const c=this.visitorCreatedDuringTestActive(l.statusHistory);(i.some(p=>p.testId===l.id&&(l.device==="all"||l.device===t.device&&l.device===this.device))||this.isTargetAudience(l,t,c,n))&&(this.log("Visitor is in audience for test '%s'",l.id),s.push(l))}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 this.matchesTestSettings(e,t,i)&&(e.targetAudiences.length===0||e.targetAudiences.reduce((n,o)=>n||o.reduce((l,c)=>l&&c(t,i,r,s),!0),!1))}matchesTestSettings(e,t,i){return(e.device==="all"||e.device===t.device&&e.device===this.device)&&(e.visitorOption==="all"||e.visitorOption==="new"&&i||e.visitorOption==="returning"&&!i)}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=Me(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;
8if(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(o=>o.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(o=>o.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(o=>this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(o))),s=e.filter(o=>!this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(o)));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(o=>({id:o.id,title:o.title,criteria:this.getEntryCriteriaKey(o)})));const r=`conditional:current-page:${this.typeFromTemplate()}`;if(i.length>0&&!this.state.temporary.rolledEntryCriteria.includes(r)){this.createSingleReservation(i,r);for(const o of i){const l=this.getEntryCriteriaKey(o);this.state.temporary.rolledEntryCriteria.includes(l)||this.state.temporary.rolledEntryCriteria.push(l)}}const n=this.groupTestsByEntryCriteria(s);for(const[o,l]of n){if(this.state.temporary.rolledEntryCriteria.includes(o)){this.log("Already rolled for criteria '%s', skipping",o);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",o),this.state.temporary.rolledEntryCriteria.push(o);continue}const d=[...l].sort((S,C)=>S.id.localeCompare(C.id));this.log("Test dice roll for criteria '%s' - available tests: %o",o,d.map(S=>({id:S.id,title:S.title})));const p=Math.floor(Math.random()*d.length),h=d[p];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",p+1,l.length,h.id,h.title);const u=this.pickHypothesis(h);if(!u){this.log("No hypothesis picked for test '%s'",h.id);continue}this.sendDiagnosticTelemetry("assignment",h.id,{hypothesisId:u.id,isControl:u.isControl,testType:u.type});const b=this.getReservationType(u.type),E={testId:h.id,hypothesisId:u.id,testType:u.type,reservationType:b,isThemeTest:u.type==="theme",themeId:u.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:o};this.state.temporary.testReservations[o]=E,this.state.temporary.rolledEntryCriteria.push(o),this.log("Created %s reservation for test '%s' (criteria: %s)",b,h.id,o);for(const S of l)S.id!==h.id&&this.markTestAsBlocked(S,o)}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(p=>this.state.essential.visitorTests.some(h=>h.testId===p.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((p,h)=>p.id.localeCompare(h.id));this.log("Test dice roll for pool '%s' - available tests: %o",t,s.map(p=>({id:p.id,title:p.title,criteria:this.getEntryCriteriaKey(p)})));const r=Math.floor(Math.random()*s.length),n=s[r];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",r,e.length,n.id,n.title);const o=this.pickHypothesis(n);if(!o){this.log("No hypothesis picked for test '%s'",n.id);return}this.sendDiagnosticTelemetry("assignment",n.id,{hypothesisId:o.id,isControl:o.isControl,testType:o.type});const l=this.getReservationType(o.type),c=this.getEntryCriteriaKey(n),d={testId:n.id,hypothesisId:o.id,testType:o.type,reservationType:l,isThemeTest:o.type==="theme",themeId:o.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,n.id,t,c);for(const p of e)p.id!==n.id&&this.markTestAsBlocked(p,`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=>
8i.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 n of Object.values(e)){if(n.testType==="theme")return"theme";if(n.testType==="price")return"price";if(n.testType==="basicScript")return"theme"}return"templateOrUrlRedirect"}const i=this.state.essential.visitorTests.filter(r=>!r.isInvalid&&this.testConfigs.some(n=>n.hypotheses.some(o=>o.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),n=this.getDomSelectorsForHypothesis(r);if(n.length===0){this.log("No control selectors for audience-filtered price test '%s'",s.id);continue}const o=new URL(window.location.href);n.some(c=>{try{return new RegExp(re(c)).test(J(o.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:n},()=>{}),this.updatePriceTestHiddenInputs(s.id,"control",!1))}}}pickHypothesis(e){let t=Math.random();const i=e.hypotheses.reduce((r,n)=>r+n.visitorCount,0);return e.hypotheses.sort((r,n)=>r.isControl?n.isControl?0:-1:n.isControl?1:0).reduce((r,n)=>{if(r!==null)return r;const l=e.hypotheses.reduce((c,d)=>c&&d.visitorCount>20,!0)?n.visitorCount/i-n.trafficPercentage:0;return t<=n.trafficPercentage-l?n:(t-=n.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()=>
8{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 Se(r.testId,r.hypothesisId,r.createdAt)).concat(t)};await this.sendEvents(i);for(const r of this.state.essential.visitorTests.filter(n=>!n.isInvalid&&!n.isSaved&&n.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(n=>!n.isInvalid&&!n.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(fe)return;fe=!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}`};
8this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(n,o,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(n=>n.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(o=>o.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 o=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,o?.hypothesisId,s.hypothesisId,o?.isInvalid),s.isInvalid=!1,s.shouldSendToGa=o?.shouldSendToGa??!1,s.testType=o?.testType,s.assignedTo=o?.assignedTo,s.testTitle=o?.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 )|
8sy(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 )|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}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(n=>n.id===t.testId);if(!i){this.log("Test config not found:",t.testId);continue}const s=i.hypotheses.find(n=>n.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 ze(this)}async subscriptionPriceChange(){await Ge(this)}async subscriptionOneTimePrice(){await je(this)}
8updatePriceTestHiddenInputs(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},n=new Set;let o=!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})},p=(T,m)=>{this.log(`Applying DOM selector changes for product ID: ${T}`),m.disconnect(),o=!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(()=>{o=!1,l=null,c(m,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")},50)}},h=new MutationObserver(T=>{if(!o)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}"`),p(I,h)}});c(h,"initial setup"),n.add(h);const u=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))}})}})})});n.add(u);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&&p(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))}}})});n.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}
8 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"),p(y,h)),S(m)):y&&this.isProductInAnyPriceTest(y)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",y):(m.remove(),this.log("Removed non-matching hidden input for product ID:",y))})},_=()=>{document.body?(u.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&&(u.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=n,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,(n,o)=>{if(i==="afterpay"){const l=(o/100).toFixed(2);n.setAttribute("data-amount",l)}else n.setAttribute("data-amount",o.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 n;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}n=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}
8const 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}n=c.domSelectors}const o=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 p=c.getAttribute("data-sl-pid");if(!p){this.log("Hidden input has no data-sl-pid attribute - skipping");return}const h=n.find(S=>{const C=S.cssSelector.match(o);return C&&C[1]===p});if(!h){this.log(`No matching selector found for productId: ${p} - skipping element`);return}const u=h.actions.find(S=>S.scope==="price");if(!u?.value){this.log("No price action or value found - skipping element");return}const b=parseFloat(u.value.replace(/[^0-9.]/g,""));if(Number.isNaN(b)){this.log(`Invalid price "${u.value}" for product ${p} - 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 n=t==="control"?"a":"b",o=this.state.temporary.previewConfig.variants.find(l=>l.label===n);if(!o||!o.domSelectors){this.log(`No variant found for label ${n} in preview config`);return}s=o.domSelectors,this.log(`Using preview config for shopify-payment-terms in merchant mode, variant: ${n}`)}else{const n=this.testConfigs.find(l=>l.id===e);if(!n)return;const o=n.hypotheses.find(l=>t==="control"?l.isControl===!0:l.isControl===!1);if(!o||!o.domSelectors)return;s=o.domSelectors}const r=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);i.forEach(n=>{const o=n.getAttribute("variant-id");if(!o)return;const l=s.find(c=>{const d=c.cssSelector.match(r);return d&&d[1]===o});if(l){const c=l.actions.find(d=>d.scope==="price");if(c&&c.value){const d=n.getAttribute("shopify-meta");if(d)try{const p=JSON.parse(d);if(p.variants&&Array.isArray(p.variants)){const h=p.variants.find(u=>u.id?.toString()===o);if(h){h.full_price=c.value;const u=parseFloat(c.value.replace(/[^0-9.]/g,""));if(h.number_of_payment_terms&&h.number_of_payment_terms>1){const b=u/h.number_of_payment_terms;h.price_per_term=`$${b.toFixed(2)}`}n.setAttribute("shopify-meta",JSON.stringify(p))}}}catch(p){this.log("Error parsing/updating shoplift-meta:",p)}}}})}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:n}=e,o=new Headers;if(s)for(const c in s)o.append(c,s[c]);(!s||!s.Accept)&&o.append("Accept","application/json"),r!==void 0&&(!s||!s["Content-Type"])&&o.append("Content-Type","application/json"),(this.eventHost.includes("ngrok.io")||this.eventHost.includes("ngrok-free.app"))&&o.append("ngrok-skip-browser-warning","1234");const l=await this.fetch(t,{method:i,headers:o,body:r,signal:n});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 G}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 Te(e))}queuePageView(e){this.queueEvent(new Ce(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(n=>n!==null).sort((n,o)=>+o.storedAt-+n.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},n=[t,i].filter(o=>o!==null).sort((o,l)=>+l.timestamp-+o.timestamp)[0]??r;return n.initialState||(e.visitor!==null?n.initialState=e.visitor:(n.initialState=s,n.initialState.createdAt=n.timestamp)),n}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,n)=>+n.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
8CookieState(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
8andex\.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
8pera\.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)}
8,{"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
8akao|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
8andex\.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,t=this.cookie){const i=t.split("; ").filter(s=>s.split("=").at(0)===e).at(0);return i===void 0?null:i.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(n=>(this.log("Found theme bar"),t&&(this.log("Removing theme bar"),n.remove()),e?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},te)}):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(n=>{const o=document.querySelector(t);if(o){r.disconnect(),i(o);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 n=t[i++];return r==="%o"||r==="%O"?JSON.stringify(n):String(n)});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
8: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(n=>{n.forEach(o=>{if(o.isIntersecting&&!r.has(o.target)){const l=o.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,n=o=>{if(this.state.essential.visitorTests.some(h=>h.testId===o)||this.activeViewportObservers.has(o))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(o),p.disconnect(),this.activeViewportObservers.delete(o))},p=this.createViewportObserver(()=>{d()},{triggerOnce:!0,...s});this.activeViewportObservers.set(o,p),this.log(`Created viewport observer for test ${o}, observing ${l.length} elements`),l.forEach(h=>{h.setAttribute(this.DATA_SL_TEST_ID,String(o)),p.observe(h)}),setTimeout(()=>{c||l.forEach(h=>{const u=h.getBoundingClientRect(),b=s?.threshold??this.VIEWPORT_TRACK_THRESHOLD,E=Math.min(u.bottom,window.innerHeight)-Math.max(u.top,0),S=Math.min(u.right,window.innerWidth)-Math.max(u.left,0);u.top<window.innerHeight&&u.bottom>0&&u.left<window.innerWidth&&u.right>0&&E>0&&S>0&&E>=u.height*b&&(this.log(`Price element already visible in viewport for test ${o}:`,h),d())})},100)};t.selectors.length>0&&U(e,t,()=>{}),Ie(e,{testId:t.testId,hypothesisId:t.hypothesisId,selectors:r},o=>{n(o)})}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 n=j(t.priceData),o=new Set;for(const S of i)if(S.priceData)for(const[C]of S.priceData.variants)o.add(C);this.log("Price test Map lookup: %d products in hypothesis, %d total products to track",n.size,o.size);const l=t.priceData,c=new WeakSet;let d=!1;const p="[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||!o.has(m))return;c.add(S);const y=n.get(m);y&&(this.log("Applying price for product %s: %d cents (compare at: %d cents)",m,y.priceInCents,y.compareAtPriceInCents),$e(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))}))},u=()=>{const S=document.querySelectorAll(p);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(p).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"),u(),document.readyState==="loading"&&document.addEventListener("DOMContentLoaded",()=>{this.log("DOMContentLoaded - rescanning for price elements"),u()}),setTimeout(()=>{this.log("Delayed rescan for price elements"),u()},100),setTimeout(()=>{this.log("Final rescan for price elements"),u()},500)}setupElementViewportTracking(e,t,i){const s=this.VIEWPORT_TRACK_THRESHOLD,r=e.getBoundingClientRect(),n=Math.min(r.bottom,window.innerHeight)-Math.max(r.top,0),o=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&&n>0&&o>0&&n>=r.height*s){this.log("Price element already visible for test %s",t),i();return}const c=new IntersectionObserver(d=>{for(const p of d)if(p.isIntersecting&&p.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,te,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new et("respected-roots.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",false,false,false,{"sendEvents":false,"mode":"gtag"},false,false,1000,[],[{"id":"019e8d99-c63e-747f-946b-b3b7ade8fa79","bayesianRevision":5,"status":"paused","hypotheses":[{"id":"019e8d94-322b-7a52-9a7e-cc9ca309c226","type":"urlRedirect","themeId":188441854262,"affix":"","isControl":true,"redirectPath":"/pages/5-reasons-hydration-kit"},{"id":"019e8d95-ea5e-72dc-a863-09657c7faa78","type":"urlRedirect","themeId":188441854262,"affix":"","isControl":false,"redirectPath":"/pages/rr-5-reasons-beardcarekit"}],"ignoreTestViewParameterEnforcement":false},{"id":"019e8d9a-74c4-71c8-bc74-fb96d54b0791","bayesianRevision":5,"status":"paused","hypotheses":[{"id":"019e8d99-d6f6-7849-8484-9e0128ede342","type":"urlRedirect","themeId":188441854262,"affix":"","isControl":true,"redirectPath":"/pages/5-reasons-hydration-kit"},{"id":"019e8d9a-1a76-7457-a9a8-f60287a0a421","type":"urlRedirect","themeId":188441854262,"affix":"","isControl":false,"redirectPath":"/pages/rr-5-reasons-complete-kit"}],"ignoreTestViewParameterEnforcement":false},{"id":"019f0490-ce9a-79e2-a4ad-0aefa2d3acba","bayesianRevision":5,"status":"incompatible","hypotheses":[{"id":"019f0489-d54a-7458-8dbe-6fc02a420033","type":"theme","themeId":188441854262,"affix":"","isControl":true,"redirectPath":null},{"id":"019f048d-75f9-779b-9e1b-06a1575351ac","type":"theme","themeId":186375995702,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false}
8],null,false),await window.shopliftInstance.init())})();async function tt(a,e,t,i){const s=Ke({log:i});if(t)return i("[SUB-PREVIEW] A side â no overlay applied; widget renders naturally"),s;const r=a.widget.widgetType,n=e?j(e):null;let o=W(e),l=Y(a,o),c=l.discountMap,d=l.maxDiscount;function p(){const f=W(e);f!==o&&(o=f,l=Y(a,o),c=l.discountMap,d=l.maxDiscount,i(`[SUB-PREVIEW] scope refreshed currentProductId=${o??"n/a"}, maxDiscount=${d}`))}i(`[SUB-PREVIEW] side=B, currentProductId=${o??"n/a"}, maxDiscount=${d}`);function h(f){if(!e||!n)return null;const v=X(n),g=v?n.get(v):void 0;return g?{formattedVariantPrice:K(g.priceInCents,e),formattedDiscounted:K(g.priceInCents*(1-f/100),e)}:null}function u(f){const v=Z(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||!n)return;const g=X(n),P=g?n.get(g):void 0;if(!P)return;const A=K(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{p();const f=B(a);if(!f)return;const v=u(f);b(f),E(f,v),S(f,v),T(f);const g=Z(a,f);g&&(r==="buttons"||r==="radio"?C(g):_(g)),m(f,v)}finally{y=!1}}}const I=ue({data:a,runUpdates:w});return function(){I(),s()}}const it=Object.freeze(Object.defineProperty({__proto__:null,subscriptionPreviewRender:tt},Symbol.toStringTag,{value:"Module"}))})(); })("/", { suffix: "", type: "search" }, "main", 188441854262, false)</script>
8 9<!-- End of Shoplift scripts --> 10 11 <link rel='preconnect dns-prefetch' href='https://api.config-security.com/' crossorigin /> 12 <link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin /> 13 <link rel='preconnect dns-prefetch' href='https://whale.camera/' crossorigin /> 14 15 <!-- Google Tag Manager --> 16
16<script>
vendor: 335 bytes, lines 16-20
16(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 17 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 18 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 19 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 20 })(window,document,'script','dataLayer','
20GTM-PPCS6MW
vendor: 3 bytes, line 20
20');
20</script>
20 21 <!-- End Google Tag Manager -->
vendor: 67 bytes, lines 21-23
21 22 23 <script async src="https://www.googletagmanager.com/gtag/js?id=
23UA-225345098-1
vendor: 14 bytes, lines 23-24
23"></script> 24
24<script> 25
vendor: 140 bytes, lines 25-29
25window.dataLayer = window.dataLayer || []; 26 function gtag(){dataLayer.push(arguments);} 27 gtag('js', new Date()); 28 29 gtag('config', '
29UA-225345098-1
vendor: 35 bytes, lines 29-30
29', { 'send_page_view': false }); 30
30</script>
30 31 32 33 34 35 36 37 38 39 40 41 42 43 <meta charset="utf-8"> 44 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 45 <meta name="viewport" content="width=device-width,initial-scale=1"> 46 <meta name="theme-color" content="#3a3a3a"> 47 48 <link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 49 <link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin> 50 <link rel="preconnect" href="https://monorail-edge.shopifysvc.com"><link rel="preload" href="//www.respectedroots.com/cdn/shop/t/56/assets/theme.css?v=22991851942762068971789387847" as="style"> 51 <link rel="preload" href="//www.respectedroots.com/cdn/shop/t/56/assets/custom-general.css?v=151926072412594940011789387891" as="style"> 52 <link rel="preload" href="//www.respectedroots.com/cdn/shop/t/56/assets/custom-artem.css?v=126263850969282637121789395416" as="style"> 53 <link rel="preload" href="//www.respectedroots.com/cdn/shop/t/56/assets/custom-alex.css?v=142590791921511928291789646559" as="style"> 54 <link rel="preload" href="//www.respectedroots.com/cdn/shop/t/56/assets/custom-cart.css?v=154338925646568338391789387847" as="style"> 55 56 <link rel="preload" href="//cdn.jsdelivr.net/npm/[email protected]/slick/slick.css" as="style"> 57 58 <link rel="preload" as="font" href="//www.respectedroots.com/cdn/fonts/roboto/roboto_n4.2019d890f07b1852f56ce63ba45b2db45d852cba.woff2" type="font/woff2" crossorigin> 59 <link rel="preload" as="font" href="//www.respectedroots.com/cdn/fonts/roboto/roboto_n7.f38007a10afbbde8976c4056bfe890710d51dec2.woff2" type="font/woff2" crossorigin><link rel="preload" as="font" href="//www.respectedroots.com/cdn/fonts/roboto/roboto_n4.2019d890f07b1852f56ce63ba45b2db45d852cba.woff2" type="font/woff2" crossorigin> 60 <link rel="preload" as="font" href="//www.respectedroots.com/cdn/fonts/roboto/roboto_n7.f38007a10afbbde8976c4056bfe890710d51dec2.woff2" type="font/woff2" crossorigin> 61 <link rel="preload" as="font" href="//www.respectedroots.com/cdn/fonts/roboto/roboto_i4.57ce898ccda22ee84f49e6b57ae302250655e2d4.woff2" type="font/woff2" crossorigin> 62 63 <link rel="preload" as="font" href="//www.respectedroots.com/cdn/shop/t/56/assets/roomy-wide-bold.ttf?v=70213216023470367231789387847" type="font/ttf" crossorigin> 64 <link rel="preload" as="font" href="//www.respectedroots.com/cdn/shop/t/56/assets/roomy-wide-normal.ttf?v=18140295184755195591789387847" type="font/ttf" crossorigin> 65 66 67 <link rel="preload" href="//www.respectedroots.com/cdn/shop/t/56/assets/jquery.min.js?v=165629185824745927521789387847" as="script"> 68 <link rel="preload" href="//www.respectedroots.com/cdn/shop/t/56/assets/theme.js?v=149605262771094794041789387847" as="script"> 69 <link rel="preload" href="//cdn.jsdelivr.net/npm/[email protected]/slick/slick.min.js" as="script"> 70 <link rel="preload" href="//www.respectedroots.com/cdn/shop/t/56/assets/custom.js?v=102915285257271044951789387891" as="script"> 71 <link rel="preload" href="//www.respectedroots.com/cdn/shop/t/56/assets/lazysizes.js?v=39007106712627002581789387847" as="script"> 72 73<link rel="canonical" href="https://www.respectedroots.com/search"><link rel="shortcut icon" href="//www.respectedroots.com/cdn/shop/files/favicon_32x32.png?v=1727412139" type="image/png"><title>Search 74– RESPECTED ROOTS</title><meta name="description" content="Respected Roots offers premium personal grooming products curated with natural ingredients for men, women, & the whole family. Shop online today!"><!-- /snippets/social-meta-tags.liquid --> 75 76 77<meta property="og:site_name" content="RESPECTED ROOTS"> 78<meta property="og:url" content="https://www.respectedroots.com/search"> 79 80 81 82 83<meta property="og:image:width" content="5668"> 84 <meta property="og:image:height" content="2752"> 85 86 87<meta name="twitter:card" content="summary_large_image"> 88 89 90 91<style data-shopify> 92:root { 93 --color-text: #181818; 94 --color-text-rgb: 24, 24, 24; 95 --color-body-text: #181818; 96 --color-sale-text: #EA0606; 97 --color-small-button-text-border: #3a3a3a; 98 --color-text-field: #ffffff; 99 --color-text-field-text: #181818; 100 --color-text-field-text-rgb: 24, 24, 24; 101 102 --color-btn-primary: #3a3a3a; 103 --color-btn-primary-darker: #212121; 104 --color-btn-primary-text: #ffffff; 105 106 --color-blankstate: rgba(24, 24, 24, 0.35); 107 --color-blankstate-border: rgba(24, 24, 24, 0.2); 108 --color-blankstate-background: rgba(24, 24, 24, 0.1); 109 110 --color-text-focus:#585858; 111 --color-overlay-text-focus:#e6e6e6; 112 --color-btn-primary-focus:#606060; 113 --color-btn-social-focus:#d2d2d2; 114 --color-small-button-text-border-focus:#606060; 115 --predictive-search-focus:#f2f2f2; 116 117 --color-body: #ffffff; 118 --color-bg: #ffffff; 119 --color-bg-rgb: 255, 255, 255; 120 --color-bg-alt: rgba(24, 24, 24, 0.05); 121 --color-bg-currency-selector: rgba(24, 24, 24, 0.2); 122 123 --color-overlay-title-text: #ffffff; 124 --color-image-overlay: #f9f6f6; 125 --color-image-overlay-rgb: 249, 246, 246;--opacity-image-overlay: 0.4;--hover-overlay-opacity: 0.8; 126 127 --color-border: #ebebeb; 128 --color-border-form: #cccccc; 129 --color-border-form-darker: #b3b3b3; 130 131 --svg-select-icon: url(//www.respectedroots.com/cdn/shop/t/56/assets/ico-select.svg?v=30502032912004571591789387891); 132 --slick-img-url: url(//www.respectedroots.com/cdn/shop/t/56/assets/ajax-loader.gif?v=41356863302472015721789387847); 133 134 --font-weight-body--bold: 700; 135 --font-weight-body--bolder: 700; 136 137 138 139 140 141 142 --font-stack-header: "Roomy Wide", "sans-serif"; 143 --font-style-header: normal; 144 --font-weight-header: 700; 145 146 147 148 149 --font-stack-subheading: "Roomy Wide", sans-serif; 150 --font-style-subheading: normal; 151 --font-weight-subheading: 400; 152 153 --font-stack-body: Roboto, sans-serif; 154 --font-style-body: normal; 155 --font-weight-body: 400; 156 157 158 159 --font-stack-extras: Roboto, sans-serif; 160 --font-style-extras: normal; 161 --font-weight-extras: 400; 162 --font-weight-extras--bold: 700 163 164 165 166 --font-stack-italic: Roboto, sans-serif; 167 --font-style-italic: italic; 168 --font-weight-italic: 400; 169 170 171 172 --font-size-header: 26; 173 174 --font-size-base: 16; 175 176 --font-h1-desktop: 35; 177 --font-h1-mobile: 32; 178 --font-h2-desktop: 20; 179 --font-h2-mobile: 18; 180 --font-h3-mobile: 20; 181 --font-h4-desktop: 17; 182 --font-h4-mobile: 15; 183 --font-h5-desktop: 15; 184 --font-h5-mobile: 13; 185 --font-h6-desktop: 14; 186 --font-h6-mobile: 12; 187 188 --font-mega-title-large-desktop: 65; 189 190 --font-rich-text-large: 18; 191 --font-rich-text-small: 14; 192 193 194--color-video-bg: #f2f2f2; 195 196 197 --global-color-image-loader-primary: rgba(24, 24, 24, 0.06); 198 --global-color-image-loader-secondary: rgba(24, 24, 24, 0.12); 199 200 201 --product-item-background: rgba(0,0,0,0); 202 --product-item-title-color: #181818; 203 --product-item-price-color: #181818; 204 --product-item-compare-price-color: #6b6b6b; 205 --product-item-label-color: #181818; 206 --product-item-label-background: linear-gradient(360deg, rgba(223, 179, 86, 1), rgba(252, 218, 146, 1) 100%); 207 --product-item-sale-badge-color: #4f2c73; 208 --product-item-sale-badge-background: #dfb356; 209 210 --product-item-option-background: #ffffff; 211 --product-item-option-color: #181818; 212 --product-item-option-border: #f1f0f4; 213 --product-item-selected-option-color: #181818; 214 215 --product-item-primary-button-color: #ffffff; 216 --product-item-primary-button-background: #4f2c73; 217 --product-item-primary-button-background-hover: #7b329f; 218 --product-item-primary-button-color-hover: #fff; 219 --product-item-primary-button-border-color: #4f2c73; 220 --product-item-primary-button-border-color-hover: #7b329f; 221 222 --product-item-secondary-button-color: #4f2c73; 223 --product-item-secondary-button-background: #ffffff; 224 --product-item-secondary-button-background-hover: #4f2c73; 225 --product-item-secondary-button-color-hover: #fff; 226 --product-item-secondary-button-border-color: #4f2c73; 227 --product-item-secondary-button-border-color-hover: #4f2c73; 228 229 --product-upsell-item-background: #fff; 230 --product-upsell-item-border: #F1EBE4; 231 232 --product-item-subscription-border: #f1f0f4; 233 --product-item-subscription-background: #FFF; 234 --product-item-subscription-color: #222222; 235 --product-item-active-subscription-border: #DFB356; 236 237 --full-star-url: url(//www.respectedroots.com/cdn/shop/t/56/assets/full-star.svg?v=137032479150018624211789387847); 238 --half-star-url: url(//www.respectedroots.com/cdn/shop/t/56/assets/half-star.svg?v=112610139419142975681789387847); 239 --empty-star-url: url(//www.respectedroots.com/cdn/shop/t/56/assets/empty-star.svg?v=154010977271475027511789387847); 240 241 --full-star-url-highlighted: url(//www.respectedroots.com/cdn/shop/t/56/assets/full-star-highlighted.svg?v=62748756365374022771789387847); 242 --half-star-url-highlighted: url(//www.respectedroots.com/cdn/shop/t/56/assets/half-star-highlighted.svg?v=103683465383509798181789387847); 243 --empty-star-url-highlighted: url(//www.respectedroots.com/cdn/shop/t/56/assets/empty-star-highlighted.svg?v=13946167636257786651789387847); 244 } 245</style> 246 247 248 <style> 249 #__next a[href="https://skio.com"] { 250 display: none !important; 251 } 252 footer .extras p{ 253 font-family: var(--font-stack-extras); 254 } 255 *,::after,::before{box-sizing:border-box}body{margin:0}body,html{background-color:var(--color-body);scroll-behavior: smooth;scroll-padding-top: calc(var(--header_height) + var(--announcement_bar_height));}body,button{font-size:calc(var(--font-size-base) * 1px);font-family:var(--font-stack-body); font-style:var(--font-style-body);font-weight:var(--font-weight-body);color:var(--color-text);line-height:1.5}body,button{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}.border-bottom{border-bottom:1px solid var(--color-border)}.btn--link{background-color:transparent;border:0;margin:0;color:var(--color-text);text-align:left}.text-right{text-align:right}.icon{display:inline-block;width:20px;height:20px;vertical-align:middle;fill:currentColor}.icon__fallback-text,.visually-hidden{position:absolute!important;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}svg.icon:not(.icon--full-color) circle,svg.icon:not(.icon--full-color) ellipse,svg.icon:not(.icon--full-color) g,svg.icon:not(.icon--full-color) line,svg.icon:not(.icon--full-color) path,svg.icon:not(.icon--full-color) polygon,svg.icon:not(.icon--full-color) polyline,svg.icon:not(.icon--full-color) rect,symbol.icon:not(.icon--full-color) circle,symbol.icon:not(.icon--full-color) ellipse,symbol.icon:not(.icon--full-color) g,symbol.icon:not(.icon--full-color) line,symbol.icon:not(.icon--full-color) path,symbol.icon:not(.icon--full-color) polygon,symbol.icon:not(.icon--full-color) polyline,symbol.icon:not(.icon--full-color) rect{fill:inherit;stroke:inherit}li{list-style:none}.list--inline{padding:0;margin:0}.list--inline>li{display:inline-block;margin-bottom:0;vertical-align:middle}a{color:var(--color-text);text-decoration:none}.h1,.h2,h1,h2{margin:0 0 17.5px;font-family:var(--font-stack-header);font-style:var(--font-style-header);font-weight:var(--font-weight-header);line-height:1.2;overflow-wrap:break-word;word-wrap:break-word}.h1 a,.h2 a,h1 a,h2 a{color:inherit;text-decoration:none;font-weight:inherit}.h1,h1{font-size:calc(((var(--font-h1-desktop))/ (var(--font-size-base))) * 1em);text-transform:none;letter-spacing:0}@media only screen and (max-width:749px){.h1,h1{font-size:calc(((var(--font-h1-mobile))/ (var(--font-size-base))) * 1em)}}.h2,h2{font-size:calc(((var(--font-h2-desktop))/ (var(--font-size-base))) * 1em);text-transform:uppercase;letter-spacing:.1em}@media only screen and (max-width:749px){.h2,h2{font-size:calc(((var(--font-h2-mobile))/ (var(--font-size-base))) * 1em)}}p{color:var(--color-body-text);margin:0 0 19.44444px}@media only screen and (max-width:749px){p{font-size:calc(((var(--font-size-base) - 1)/ (var(--font-size-base))) * 1em)}}p:last-child{margin-bottom:0}@media only screen and (max-width:749px){.small--hide{display:none!important}}.grid{list-style:none;margin:0;padding:0;margin-left:-30px}.grid::after{content:'';display:table;clear:both}@media only screen and (max-width:749px){.grid{margin-left:-22px}}.grid::after{content:'';display:table;clear:both}.grid--no-gutters{margin-left:0}.grid--no-gutters .grid__item{padding-left:0}.grid--table{display:table;table-layout:fixed;width:100%}.grid--table>.grid__item{float:none;display:table-cell;vertical-align:middle}.grid__item{float:left;padding-left:30px;width:100%}@media only screen and (max-width:749px){.grid__item{padding-left:22px}}.grid__item[class*="--push"]{position:relative}@media only screen and (min-width:750px){.medium-up--one-quarter{width:25%}.medium-up--push-one-third{width:33.33%}.medium-up--one-half{width:50%}.medium-up--push-one-third{left:33.33%;position:relative}}.site-header{position:relative;background-color:var(--color-body)}@media only screen and (max-width:749px){.site-header{border-bottom:1px solid var(--color-border)}}@media only screen and (min-width:750px){.site-header{padding:0 55px}.site-header.logo--center{padding-top:30px}}.site-header__logo{margin:15px 0}.logo-align--center .site-header__logo{text-align:center;margin:0 auto}@media only screen and (max-width:749px){.logo-align--center .site-header__logo{text-align:left;margin:15px 0}}@media only screen and (max-width:749px){.site-header__logo{padding-left:22px;text-align:left}.site-header__logo img{margin:0}}.site-header__logo-link{display:inline-block;word-break:break-word}@media only screen and (min-width:750px){.logo-align--center .site-header__logo-link{margin:0 auto}}.site-header__logo-image{display:block}@media only screen and (min-width:750px){.site-header__logo-image{margin:0 auto}}.site-header__logo-image img{width:100%}.site-header__logo-image--centered img{margin:0 auto}.site-header__logo img{display:block}.site-header__icons{position:relative;white-space:nowrap}@media only screen and (max-width:749px){.site-header__icons{width:auto;padding-right:13px}.site-header__icons .btn--link,.site-header__icons .site-header__cart{font-size:calc(((var(--font-size-base))/ (var(--font-size-base))) * 1em)}}.site-header__icons-wrapper{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;
255-webkit-justify-content:flex-end;-ms-justify-content:flex-end;justify-content:flex-end}.site-header__account,.site-header__cart,.site-header__search{position:relative}.site-header__search.site-header__icon{display:none}@media only screen and (min-width:1400px){.site-header__search.site-header__icon{display:block}}.site-header__search-toggle{display:block}@media only screen and (min-width:750px){.site-header__account,.site-header__cart{padding:10px 11px}}.site-header__cart-title,.site-header__search-title{position:absolute!important;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0;display:block;vertical-align:middle}.site-header__cart-title{margin-right:3px}.site-header__cart-count{display:flex;align-items:center;justify-content:center;position:absolute;right:.4rem;top:.2rem;font-weight:700;background-color:var(--color-btn-primary);color:var(--color-btn-primary-text);border-radius:50%;min-width:1em;height:1em}.site-header__cart-count span{font-family:HelveticaNeue,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:calc(11em / 16);line-height:1}@media only screen and (max-width:749px){.site-header__cart-count{top:calc(7em / 16);right:0;border-radius:50%;min-width:calc(19em / 16);height:calc(19em / 16)}}@media only screen and (max-width:749px){.site-header__cart-count span{padding:.25em calc(6em / 16);font-size:12px}}.site-header__menu{display:none}@media only screen and (max-width:749px){.site-header__icon{display:inline-block;vertical-align:middle;padding:10px 11px;margin:0}}@media only screen and (min-width:750px){.site-header__icon .icon-search{margin-right:3px}}.announcement-bar{z-index:10;position:relative;text-align:center;border-bottom:1px solid transparent;padding:2px}.announcement-bar__link{display:block}.announcement-bar__message{display:block;padding:11px 22px;font-size:calc(((16)/ (var(--font-size-base))) * 1em);font-weight:var(--font-weight-header)}@media only screen and (min-width:750px){.announcement-bar__message{padding-left:55px;padding-right:55px}}.site-nav{position:relative;padding:0;text-align:center;margin:25px 0}.site-nav a{padding:3px 10px}.site-nav__link{display:block;white-space:nowrap}.site-nav--centered .site-nav__link{padding-top:0}.site-nav__link .icon-chevron-down{width:calc(8em / 16);height:calc(8em / 16);margin-left:.5rem}.site-nav__label{border-bottom:1px solid transparent}.site-nav__link--active .site-nav__label{border-bottom-color:var(--color-text)}.site-nav__link--button{border:none;background-color:transparent;padding:3px 10px}.site-header__mobile-nav{z-index:11;position:relative;background-color:var(--color-body)}@media only screen and (max-width:749px){.site-header__mobile-nav{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center}}.mobile-nav--open .icon-close{display:none}.main-content{opacity:0}.main-content .shopify-section{display:none}.main-content .shopify-section:first-child{display:inherit}.critical-hidden{display:none}.not-loaded{opacity:0;}body{transition: opacity 0.3s;} 256 </style> 257 258
258<script> 259 window.performance.mark('debut:theme_stylesheet_loaded.start'); 260 261 function onLoadStylesheet() { 262 performance.mark('debut:theme_stylesheet_loaded.end'); 263 performance.measure('debut:theme_stylesheet_loaded', 'debut:theme_stylesheet_loaded.start', 'debut:theme_stylesheet_loaded.end'); 264 265 var url = "//www.respectedroots.com/cdn/shop/t/56/assets/theme.css?v=22991851942762068971789387847"; 266 var link = document.querySelector('link[href="' + url + '"]'); 267 link.loaded = true; 268 link.dispatchEvent(new Event('load')); 269 } 270 271 function onLoadStylesheetGeneral() { 272 performance.mark('debut:theme_stylesheet_loaded.end'); 273 performance.measure('debut:theme_stylesheet_loaded', 'debut:theme_stylesheet_loaded.start', 'debut:theme_stylesheet_loaded.end'); 274 275 var url = "//www.respectedroots.com/cdn/shop/t/56/assets/custom-general.css?v=151926072412594940011789387891"; 276 var link = document.querySelector('link[href="' + url + '"]'); 277 link.loaded = true; 278 link.dispatchEvent(new Event('load')); 279 } 280 281 function onLoadStylesheetArtem() { 282 performance.mark('debut:theme_stylesheet_loaded.end'); 283 performance.measure('debut:theme_stylesheet_loaded', 'debut:theme_stylesheet_loaded.start', 'debut:theme_stylesheet_loaded.end'); 284 285 var url = "//www.respectedroots.com/cdn/shop/t/56/assets/custom-artem.css?v=126263850969282637121789395416"; 286 var link = document.querySelector('link[href="' + url + '"]'); 287 link.loaded = true; 288 link.dispatchEvent(new Event('load')); 289 } 290 291 function onLoadStylesheetAlex() { 292 performance.mark('debut:theme_stylesheet_loaded.end'); 293 performance.measure('debut:theme_stylesheet_loaded', 'debut:theme_stylesheet_loaded.start', 'debut:theme_stylesheet_loaded.end'); 294 295 var url = "//www.respectedroots.com/cdn/shop/t/56/assets/custom-alex.css?v=142590791921511928291789646559"; 296 var link = document.querySelector('link[href="' + url + '"]'); 297 link.loaded = true; 298 link.dispatchEvent(new Event('load')); 299 } 300 301 function onLoadStylesheetCart() { 302 performance.mark('debut:theme_stylesheet_loaded.end'); 303 performance.measure('debut:theme_stylesheet_loaded', 'debut:theme_stylesheet_loaded.start', 'debut:theme_stylesheet_loaded.end'); 304 305 var url = "//www.respectedroots.com/cdn/shop/t/56/assets/custom-cart.css?v=154338925646568338391789387847"; 306 var link = document.querySelector('link[href="' + url + '"]'); 307 link.loaded = true; 308 link.dispatchEvent(new Event('load')); 309 } 310 311 function onLoadStylesheetAOS() { 312 performance.mark('debut:theme_stylesheet_loaded.end'); 313 performance.measure('debut:theme_stylesheet_loaded', 'debut:theme_stylesheet_loaded.start', 'debut:theme_stylesheet_loaded.end'); 314 315 var url = "//www.respectedroots.com/cdn/shop/t/56/assets/aos.css?v=124228505344924077241789387847"; 316 var link = document.querySelector('link[href="' + url + '"]'); 317 link.loaded = true; 318 link.dispatchEvent(new Event('load')); 319 } 320 </script>
320 321 322 <link rel="stylesheet" href="//www.respectedroots.com/cdn/shop/t/56/assets/theme.css?v=22991851942762068971789387847" type="text/css" media="print" onload="this.media='all';onLoadStylesheet()"> 323 324 <link rel="stylesheet" href="//www.respectedroots.com/cdn/shop/t/56/assets/custom-general.css?v=151926072412594940011789387891" type="text/css" media="print" onload="this.media='all';onLoadStylesheetGeneral()"> 325 326 <link rel="stylesheet" href="//www.respectedroots.com/cdn/shop/t/56/assets/custom-artem.css?v=126263850969282637121789395416" type="text/css" media="print" onload="this.media='all';onLoadStylesheetArtem()"> 327 328 <link rel="stylesheet" href="//www.respectedroots.com/cdn/shop/t/56/assets/custom-alex.css?v=142590791921511928291789646559" type="text/css" media="print" onload="this.media='all';onLoadStylesheetAlex()"> 329 330 <link rel="stylesheet" href="//www.respectedroots.com/cdn/shop/t/56/assets/custom-cart.css?v=154338925646568338391789387847" type="text/css" media="print" onload="this.media='all';onLoadStylesheetCart()"> 331 332 333 334 <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/[email protected]/slick/slick.css"/> 335 336 <style> 337 338 @font-face { 339 font-family: Roboto; 340 font-weight: 400; 341 font-style: normal; 342 font-display: swap; 343 src: url("//www.respectedroots.com/cdn/fonts/roboto/roboto_n4.2019d890f07b1852f56ce63ba45b2db45d852cba.woff2") format("woff2"), 344 url("//www.respectedroots.com/cdn/fonts/roboto/roboto_n4.238690e0007583582327135619c5f7971652fa9d.woff") format("woff"); 345} 346 347 @font-face { 348 font-family: Roboto; 349 font-weight: 700; 350 font-style: normal; 351 font-display: swap; 352 src: url("//www.respectedroots.com/cdn/fonts/roboto/roboto_n7.f38007a10afbbde8976c4056bfe890710d51dec2.woff2") format("woff2"), 353 url("//www.respectedroots.com/cdn/fonts/roboto/roboto_n7.94bfdd3e80c7be00e128703d245c207769d763f9.woff") format("woff"); 354} 355 356 @font-face { 357 font-family: Roboto; 358 font-weight: 700; 359 font-style: normal; 360 font-display: swap; 361 src: url("//www.respectedroots.com/cdn/fonts/roboto/roboto_n7.f38007a10afbbde8976c4056bfe890710d51dec2.woff2") format("woff2"), 362 url("//www.respectedroots.com/cdn/fonts/roboto/roboto_n7.94bfdd3e80c7be00e128703d245c207769d763f9.woff") format("woff"); 363} 364 365 @font-face { 366 font-family: Roboto; 367 font-weight: 400; 368 font-style: italic; 369 font-display: swap; 370 src: url("//www.respectedroots.com/cdn/fonts/roboto/roboto_i4.57ce898ccda22ee84f49e6b57ae302250655e2d4.woff2") format("woff2"), 371 url("//www.respectedroots.com/cdn/fonts/roboto/roboto_i4.b21f3bd061cbcb83b824ae8c7671a82587b264bf.woff") format("woff"); 372} 373 374 @font-face { 375 font-family: Roboto; 376 font-weight: 700; 377 font-style: italic; 378 font-display: swap; 379 src: url("//www.respectedroots.com/cdn/fonts/roboto/roboto_i7.7ccaf9410746f2c53340607c42c43f90a9005937.woff2") format("woff2"), 380 url("//www.respectedroots.com/cdn/fonts/roboto/roboto_i7.49ec21cdd7148292bffea74c62c0df6e93551516.woff") format("woff"); 381} 382 383 384 385 @font-face { 386 font-family: Roboto; 387 font-weight: 400; 388 font-style: normal; 389 font-display: swap; 390 src: url("//www.respectedroots.com/cdn/fonts/roboto/roboto_n4.2019d890f07b1852f56ce63ba45b2db45d852cba.woff2") format("woff2"), 391 url("//www.respectedroots.com/cdn/fonts/roboto/roboto_n4.238690e0007583582327135619c5f7971652fa9d.woff") format("woff"); 392} 393 394 @font-face { 395 font-family: Roboto; 396 font-weight: 700; 397 font-style: normal; 398 font-display: swap; 399 src: url("//www.respectedroots.com/cdn/fonts/roboto/roboto_n7.f38007a10afbbde8976c4056bfe890710d51dec2.woff2") format("woff2"), 400 url("//www.respectedroots.com/cdn/fonts/roboto/roboto_n7.94bfdd3e80c7be00e128703d245c207769d763f9.woff") format("woff"); 401} 402 403 @font-face { 404 font-family: Roboto; 405 font-weight: 400; 406 font-style: italic; 407 font-display: swap; 408 src: url("//www.respectedroots.com/cdn/fonts/roboto/roboto_i4.57ce898ccda22ee84f49e6b57ae302250655e2d4.woff2") format("woff2"), 409 url("//www.respectedroots.com/cdn/fonts/roboto/roboto_i4.b21f3bd061cbcb83b824ae8c7671a82587b264bf.woff") format("woff"); 410} 411 412 413 414 @font-face { 415 font-family: "Roomy Wide"; 416 font-style: normal; 417 font-weight: 700; 418 font-display: swap; 419 src: url(//www.respectedroots.com/cdn/shop/t/56/assets/roomy-wide-bold.ttf?v=70213216023470367231789387847) format("truetype"); 420 } 421 422 @font-face { 423 font-family: "Roomy Wide"; 424 font-style: normal; 425 font-weight: 400; 426 font-display: swap; 427 src: url(//www.respectedroots.com/cdn/shop/t/56/assets/roomy-wide-normal.ttf?v=18140295184755195591789387847) format("truetype"); 428 } 429 430 431 </style> 432 433
433<script> 434 var theme = { 435 cartRoutes: { 436 cartUrl: "/cart", 437 cartAddUrl: "/cart/add", 438 cartChangeUrl: "/cart/change", 439 cartUpdateUrl: "/cart/update", 440 cartClearUrl: "/cart/clear", 441 }, 442 breakpoints: { 443 medium: 750, 444 large: 990, 445 widescreen: 1400 446 }, 447 strings: { 448 saleBadge: "SAVE [sale_percentage]", 449 addToCart: "Add To Cart", 450 soldOut: "Sold out", 451 subscribe: "Subscribe", 452 subscriptionDiscount: "Save [discount]", 453 preorder: "Pre-order", 454 drawerUpsellButton: "Upgrade", 455 unavailable: "Unavailable", 456 regularPrice: "Regular price", 457 salePrice: "Sale price", 458 sale: "Sale", 459 fromLowestPrice: "from [price]", 460 vendor: "Vendor", 461 showMore: "Show More", 462 showLess: "Show Less", 463 searchFor: "Search for", 464 addressError: "Error looking up that address", 465 addressNoResults: "No results for that address", 466 addressQueryLimit: "You have exceeded the Google API usage limit. Consider upgrading to a \u003ca href=\"https:\/\/developers.google.com\/maps\/premium\/usage-limits\"\u003ePremium Plan\u003c\/a\u003e.", 467 authError: "There was a problem authenticating your Google Maps account.", 468 newWindow: "Opens in a new window.", 469 external: "Opens external website.", 470 newWindowExternal: "Opens external website in a new window.", 471 removeLabel: "Remove [product]", 472 update: "Update", 473 quantity: "Quantity", 474 discountedTotal: "Discounted total", 475 regularTotal: "Regular total", 476 priceColumn: "See Price column for discount details.", 477 quantityMinimumMessage: "Quantity must be 1 or more", 478 cartError: "There was an error while updating your cart. Please try again.", 479 removedItemMessage: "Removed \u003cspan class=\"cart__removed-product-details\"\u003e([quantity]) [link]\u003c\/span\u003e from your cart.", 480 unitPrice: "Unit price", 481 unitPriceSeparator: "per", 482 oneCartCount: "1 item", 483 otherCartCount: "[count] items", 484 quantityLabel: "Quantity: [count]", 485 products: "Products", 486 loading: "Loading", 487 number_of_results: "[result_number] of [results_count]", 488 number_of_results_found: "[results_count] results found", 489 one_result_found: "1 result found" 490 }, 491 moneyFormat: "${{amount}}", 492 moneyFormatWithCurrency: "$ {{amount}} USD", 493 settings: { 494 predictiveSearchEnabled: false, 495 predictiveSearchShowPrice: false, 496 predictiveSearchShowVendor: false 497 }, 498 stylesheet: "//www.respectedroots.com/cdn/shop/t/56/assets/theme.css?v=22991851942762068971789387847", 499 rootUrl: "\/" 500 } 501 502 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 503 </script>
503<script src="//www.respectedroots.com/cdn/shop/t/56/assets/jquery.min.js?v=165629185824745927521789387847" defer="defer"></script>
503 504
504<script src="//www.respectedroots.com/cdn/shop/t/56/assets/theme.js?v=149605262771094794041789387847" defer="defer"></script>
504 505
505<script type="text/javascript" src="//cdn.jsdelivr.net/npm/[email protected]/slick/slick.min.js" defer="defer"></script>
505 506
506<script src="//www.respectedroots.com/cdn/shop/t/56/assets/custom.js?v=102915285257271044951789387891" defer="defer"></script>
506 507
507<script src="//www.respectedroots.com/cdn/shop/t/56/assets/lazysizes.js?v=39007106712627002581789387847" async="async"></script>
507 508 509 510
510<script type="text/javascript"> 511 if (window.MSInputMethodContext && document.documentMode) { 512 var scripts = document.getElementsByTagName('script')[0]; 513 var polyfill = document.createElement("script"); 514 polyfill.defer = true; 515 polyfill.src = "//www.respectedroots.com/cdn/shop/t/56/assets/ie11CustomProperties.min.js?v=146208399201472936201789387847"; 516 517 scripts.parentNode.insertBefore(polyfill, scripts); 518 } 519 </script>
519<script>!function(){window.ZipifyPages=window.ZipifyPages||{},window.ZipifyPages.analytics={},window.ZipifyPages.currency="USD",window.ZipifyPages.shopDomain="respected-roots.myshopify.com",window.ZipifyPages.moneyFormat="${{amount}}",window.ZipifyPages.shopifyOptionsSelector=false,window.ZipifyPages.unitPriceEnabled=false,window.ZipifyPages.integrations="".split(","),window.ZipifyPages.crmUrl="https://crms.zipify.com",window.ZipifyPages.isPagesEntity=false,window.ZipifyPages.translations={soldOut:"Sold out",unavailable:"Unavailable"},window.ZipifyPages.routes={root:"\/",cart:{index:"\/cart",add:"\/cart\/add",change:"\/cart\/change",clear:"\/cart\/clear",update:"\/cart\/update"}};window.ZipifyPages.eventsSubscriptions=[],window.ZipifyPages.on=function(i,a){window.ZipifyPages.eventsSubscriptions.push([i,a])}}();</script>
519<script>(() => { 520(()=>{class g{constructor(t={}){this.defaultConfig={sectionIds:[],rootMargin:"0px",onSectionViewed:()=>{},onSectionInteracted:()=>{},minViewTime:500,minVisiblePercentage:30,interactiveSelector:'a, button, input, select, textarea, [role="button"], [tabindex]:not([tabindex="-1"])'},this.config={...this.defaultConfig,...t},this.viewedSections=new Set,this.observer=null,this.viewTimers=new Map,this.init()}init(){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",this.setup.bind(this)):this.setup()}setup(){this.setupObserver(),this.setupGlobalClickTracking()}setupObserver(){const t={root:null,rootMargin:this.config.rootMargin,threshold:[0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1]};this.observer=new IntersectionObserver(e=>{e.forEach(i=>{this.calculateVisibility(i)?this.handleSectionVisible(i.target):this.handleSectionHidden(i.target)})},t),this.config.sectionIds.forEach(e=>{const i=document.getElementById(e);i&&this.observer.observe(i)})}calculateVisibility(t){const e=window.innerHeight,i=window.innerWidth,n=e*i,o=t.boundingClientRect,s=Math.max(0,o.top),c=Math.min(e,o.bottom),d=Math.max(0,o.left),a=Math.min(i,o.right),r=Math.max(0,c-s),l=Math.max(0,a-d)*r,m=n>0?l/n*100:0,h=o.width*o.height,p=h>0?l/h*100:0,S=m>=this.config.minVisiblePercentage,b=p>=80;return S||b}isSectionViewed(t){return this.viewedSections.has(Number(t))}setupGlobalClickTracking(){document.addEventListener("click",t=>{const e=this.findParentTrackedSection(t.target);if(e){const i=this.findInteractiveElement(t.target,e.el);i&&(this.isSectionViewed(e.id)||this.trackSectionView(e.id),this.trackSectionInteract(e.id,i,t))}})}findParentTrackedSection(t){let e=t;for(;e&&e!==document.body;){const i=e.id||e.dataset.zpSectionId,n=i?parseInt(i,10):null;if(n&&!isNaN(n)&&this.config.sectionIds.includes(n))return{el:e,id:n};e=e.parentElement}return null}findInteractiveElement(t,e){let i=t;for(;i&&i!==e;){if(i.matches(this.config.interactiveSelector))return i;i=i.parentElement}return null}trackSectionView(t){this.viewedSections.add(Number(t)),this.config.onSectionViewed(t)}trackSectionInteract(t,e,i){this.config.onSectionInteracted(t,e,i)}handleSectionVisible(t){const e=t.id,i=setTimeout(()=>{this.isSectionViewed(e)||this.trackSectionView(e)},this.config.minViewTime);this.viewTimers.set(e,i)}handleSectionHidden(t){const e=t.id;this.viewTimers.has(e)&&(clearTimeout(this.viewTimers.get(e)),this.viewTimers.delete(e))}addSection(t){if(!this.config.sectionIds.includes(t)){this.config.sectionIds.push(t);const e=document.getElementById(t);e&&this.observer&&this.observer.observe(e)}}}class f{constructor(){this.sectionTracker=new g({onSectionViewed:this.onSectionViewed.bind(this),onSectionInteracted:this.onSectionInteracted.bind(this)}),this.runningSplitTests=[]}getCookie(t){const e=document.cookie.match(new RegExp(`(?:^|; )${t}=([^;]*)`));return e?decodeURIComponent(e[1]):null}setCookie(t,e){let i=`${t}=${encodeURIComponent(e)}; path=/; SameSite=Lax`;location.protocol==="https:"&&(i+="; Secure");const n=new Date;n.setTime(n.getTime()+365*24*60*60*1e3),i+=`; expires=${n.toUTCString()}`,document.cookie=i}pickByWeight(t){const e=Object.entries(t).map(([o,s])=>[Number(o),s]),i=e.reduce((o,[,s])=>o+s,0);let n=Math.random()*i;for(const[o,s]of e){if(n<s)return o;n-=s}return e[e.length-1][0]}render(t){const e=t.blocks,i=t.test,n=i.id,o=`zpSectionSplitTest${n}`;let s=Number(this.getCookie(o));e.some(r=>r.id===s)||(s=this.pickByWeight(i.distribution),this.setCookie(o,s));const c=e.find(r=>r.id===s),d=`sectionSplitTest${c.id}`,a=document.querySelector(`template[data-id="${d}"]`);if(!a){console.error(`Template for split test ${c.id} not found`);return}document.currentScript.parentNode.insertBefore(a.content.cloneNode(!0),document.currentScript),this.runningSplitTests.push({id:n,block:c,templateId:d}),this.initTrackingForSection(c.id)}findSplitTestForSection(t){return this.runningSplitTests.find(e=>e.block.id===Number(t))}initTrackingForSection(t){this.sectionTracker.addSection(t)}onSectionViewed(t){this.trackEvent({sectionId:t,event:"zp_section_viewed"})}onSectionInteracted(t){this.trackEvent({sectionId:t,event:"zp_section_clicked"})}trackEvent({event:t,sectionId:e,payload:i={}}){const n=this.findSplitTestForSection(e);n&&window.Shopify.analytics.publish(t,{...i,sectionId:e,splitTestHash:n.id})}}window.ZipifyPages??={};window.ZipifyPages.SectionSplitTest=new f;})(); 521 522})()</script>
522<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
522<meta name="google-site-verification" content="zM4Ust3toVOUSqPMb90kAUCs8zAh6xIHRgipD7rbfEU"> 523<meta name="facebook-domain-verification" content="k20u005ukxwkejjiruccvp361cy5g1"> 524<meta name="facebook-domain-verification" content="2acojejmcsrythw7t925m5wxqhgxmn"> 525<meta name="google-site-verification" content="OEkaa8_4piMBBHRn9IcXGmrAF1r0I7UOXQNY0y1DrCg"> 526<meta name="google-site-verification" content="Xjbc-bK2b-bOTVxtLKwqUDP-QBwgMOmeWSrJ_C5_lCg"> 527<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/10788786/digital_wallets/dialog"> 528<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
528<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=222232886"></script>
vendor: 1 bytes, line 528
528
529<script id="shopify-features" type="application/json">{"accessToken":"7a49cb13484b1c858806f1215b1a265e","betas":["rich-media-storefront-analytics"],"domain":"www.respectedroots.com","predictiveSearch":true,"shopId":10788786,"locale":"en"}</script>
vendor: 1 bytes, line 529
529
530<script>var Shopify = Shopify || {}; 531Shopify.shop = "respected-roots.myshopify.com"; 532Shopify.locale = "en"; 533Shopify.currency = {"active":"USD","rate":"1.0"}; 534Shopify.country = "US"; 535Shopify.theme = {"name":"CM-Bundle Page","id":188441854262,"schema_name":"Respected Roots","schema_version":"2.0","theme_store_id":null,"role":"main"}; 536Shopify.theme.handle = "null"; 537Shopify.theme.style = {"id":null,"handle":null}; 538Shopify.cdnHost = "www.respectedroots.com/cdn"; 539Shopify.routes = Shopify.routes || {}; 540Shopify.routes.root = "/"; 541Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 542Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 543Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 544Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 544
544
545<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 545
545
546<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 546
546
547<script> 548 window.Shopify = window.Shopify || {}; 549 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 550 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 551 window.Shopify.SignInWithShop.eligible = true; 552</script>
vendor: 1 bytes, line 552
552
553<script id="shop-js-analytics" type="application/json">{"pageType":"search"}</script>
vendor: 1 bytes, line 553
553
554<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 554
554
555<script type="module"> 556 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 557 558 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 559 560</script>
vendor: 1 bytes, line 560
560
561<script> 562 window.Shopify = window.Shopify || {}; 563 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 564 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"]}; 565</script>
vendor: 1 bytes, line 565
565
566<script>(function() { 567 var isLoaded = false; 568 function asyncLoad() { 569 if (isLoaded) return; 570 isLoaded = true; 571 var urls = ["https:\/\/loox.io\/widget\/E1WOTCaB0_\/loox.1593630631827.js?shop=respected-roots.myshopify.com","https:\/\/cdn-app.cart-bot.net\/public\/js\/append.js?shop=respected-roots.myshopify.com","\/\/cdn.shopify.com\/proxy\/5aea1dd18422d543401b2d6ad3e7ff7fa343967562561b934c70036f3d21e57f\/static.cdn.printful.com\/static\/js\/external\/shopify-product-customizer.js?v=0.28\u0026shop=respected-roots.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/emotivecdn.io\/emotive-popup\/popup.js?brand=46293\u0026api=https:\/\/www.emotiveapp.co\/\u0026shop=respected-roots.myshopify.com","https:\/\/cdn.shopify.com\/s\/files\/1\/1078\/8786\/t\/37\/assets\/loy_10788786.js?v=1743522986\u0026shop=respected-roots.myshopify.com","\/\/cdn.shopify.com\/proxy\/85a9751eb4b3e38a64b4b2a79900828e70577395bd38d42725632505eca7d4aa\/s3-us-west-2.amazonaws.com\/jsstore\/a\/2J0HG140\/reids.js?shop=respected-roots.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","\/\/cdn.shopify.com\/proxy\/ee539d95c623ffedf97d67ef16e6877976ebda4176603ddf6268672ebc013f31\/app.retention.com\/shopify\/shopify_app_add_to_cart_script.js?shop=respected-roots.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"]; 572 for (var i = 0; i < urls.length; i++) { 573 var s = document.createElement('script'); 574 s.type = 'text/javascript'; 575 s.async = true; 576 s.src = urls[i]; 577 var x = document.getElementsByTagName('script')[0]; 578 x.parentNode.insertBefore(s, x); 579 } 580 }; 581 if(window.attachEvent) { 582 window.attachEvent('onload', asyncLoad); 583 } else { 584 window.addEventListener('load', asyncLoad, false); 585 } 586})();</script>
vendor: 1 bytes, line 586
586
587<script id="__st">var __st={"a":10788786,"offset":-14400,"reqid":"619dc34d-822e-4c44-913e-869e40aa1dcb-1791333006","pageurl":"www.respectedroots.com\/search","u":"b487676d1dec","p":"searchresults"};</script>
vendor: 1 bytes, line 587
587
588<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 588
588
589<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 589
589
590<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.respectedroots.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 590
590
591<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.respectedroots.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>
591<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 591
591
592<script> 593 window.Shopify = window.Shopify || {}; 594 window.Shopify.MCP = window.Shopify.MCP || {}; 595 window.Shopify.MCP.enabled = true; 596 window.Shopify.MCP.shop = "respected-roots.myshopify.com"; 597 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.respectedroots.com\/api\/mcp"; 598 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question â e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 599</script>
vendor: 1 bytes, line 599
599
600<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.respectedroots.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 601</script>
vendor: 1 bytes, line 601
601
602<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.respectedroots.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 603</script>
vendor: 1 bytes, line 603
603
604<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 605 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); 606</script>
vendor: 1 bytes, line 606
606
607<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})}})); 608</script>
608 609
610<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
610 611 612 613 <!-- candyrack-script --> 614
614<script src="//www.respectedroots.com/cdn/shop/t/56/assets/candyrack-config.js?v=128743589354287189111789387847" type="text/javascript"></script>
614 615 <!-- / candyrack-script --> 616 617 618
618<script> 619 if (window.location.pathname.startsWith('/tools/recurring')) window.location.href = '/a/account/login'; 620 </script>
620 621 <link rel="preconnect" href="https://fonts.googleapis.com"> 622 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:wght@500&display=swap"> 623<!-- BEGIN app block: shopify://apps/intelligems-a-b-testing/blocks/intelligems-script/fa83b64c-0c77-4c0c-b4b2-b94b42f5ef19 -->
623<script> 624 window._template = { 625 directory: "", 626 name: "search", 627 suffix: "" 628 }; 629 window.__productIdFromTemplate = null; 630 window.__plpCollectionIdFromTemplate = null; 631 window.igProductData = (function() { 632 const data = {};return data; 633 })(); 634</script>
634 635
636<script type="module" blocking="render" fetchpriority="high" src="https://cdn.intelligems.io/esm/21e1103114e6/bundle.js" data-em-disable async></script>
636 637 638 639<!-- END app block --><!-- BEGIN app block: shopify://apps/fuego-mobile-app/blocks/embed/9bee76c4-2c1c-4ba7-be11-e927971c6506 -->
639<script src="https://cdn.fuego.io/banner/FB9EYYACAu.js" async></script>
639 640 641 642<!-- END app block --><!-- BEGIN app block: shopify://apps/triplewhale/blocks/triple_pixel_snippet/483d496b-3f1a-4609-aea7-8eee3b6b7a2a --><link rel='preconnect dns-prefetch' href='https://api.config-security.com/' crossorigin /> 643<link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin />
644<script> 645/* >> TriplePixel :: start*/ 646window.TriplePixelData={TripleName:"respected-roots.myshopify.com",ver:"2.16",plat:"SHOPIFY",isHeadless:false,src:'SHOPIFY_EXT',product:{id:"",name:``,price:"",variant:"",av:{ }},search:"",collection:"",cart:"",template:"search",curr:"USD" || "USD", market:"1023737967"},function(W,H,A,L,E,_,B,N){function O(U,T,P,H,R){void 0===R&&(R=!1),H=new XMLHttpRequest,P?(H.open("POST",U,!0),H.setRequestHeader("Content-Type","text/plain")):H.open("GET",U,!0),H.send(JSON.stringify(P||{})),H.onreadystatechange=function(){4===H.readyState&&200===H.status?(R=H.responseText,U.includes("/first")?eval(R):P||(N[B]=R)):(299<H.status||H.status<200)&&T&&!R&&(R=!0,O(U,T-1,P))}}if(N=window,!N[H+"sn"]){N[H+"sn"]=1,L=function(){return Date.now().toString(36)+"_"+Math.random().toString(36)};try{A.setItem(H,1+(0|A.getItem(H)||0)),(E=JSON.parse(A.getItem(H+"U")||"[]")).push({u:location.href,r:document.referrer,t:Date.now(),id:L()}),A.setItem(H+"U",JSON.stringify(E))}catch(e){}var i,m,p;A.getItem('"!nC`')||(_=A,A=N,A[H]||(E=A[H]=function(t,e,i){return void 0===i&&(i=[]),"State"==t?E.s:(W=L(),(E._q=E._q||[]).push([W,t,e].concat(i)),W)},E.s="Installed",E._q=[],E.ch=W,B="configSecurityConfModel",N[B]=1,O("https://conf.config-security.com/model",5),i=L(),m=A[atob("c2NyZWVu")],_.setItem("di_pmt_wt",i),p={id:i,action:"profile",avatar:_.getItem("auth-security_rand_salt_"),time:m[atob("d2lkdGg=")]+":"+m[atob("aGVpZ2h0")],host:A.TriplePixelData.TripleName,plat:A.TriplePixelData.plat,url:window.location.href.slice(0,500),ref:document.referrer,ver:A.TriplePixelData.ver},O("https://api.config-security.com/event",5,p),O("https://api.config-security.com/first?host=".concat(p.host,"&plat=").concat(p.plat),5)))}}("","TriplePixel",localStorage); 647/* << TriplePixel :: end*/ 648</script>
648 649 650 651 652<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
653<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/respected-roots.myshopify.com"></script>
653 654 655
656<script defer data-gorgias-loader-convert src="https://content.9gtb.com/loader.js"></script>
656 657 658
659<script defer data-gorgias-loader-mailto-replace src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=respected-roots"></script>
659 660 661 662<!-- END app block --><!-- BEGIN app block: shopify://apps/emotive-pixel/blocks/app-embed/46f55050-1763-422b-86da-a34fd5035e86 --> 663 664<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 665 666 667 668 669 670 671 672 673 674 675 676 677
677<script async src="https://static.klaviyo.com/onsite/js/S7n3AL/klaviyo.js?company_id=S7n3AL"></script>
677 678
678<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>
678 679 680 681 682 683 684 685
685<script> 686 window.klaviyoReviewsProductDesignMode = false 687 </script>
687 688 689 690 691 692 693 694 695 696 697<!-- END app block -->
697<script src="https://cdn.shopify.com/extensions/01a0f6b9-396a-713a-ba86-3c9e67328667/avada-cookie-bar-63/assets/avada-cookie.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 697
697
698<script src="https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/rivo-app-embed.js" type="text/javascript" defer="defer"></script>
698 699<meta property="og:image" content="https://cdn.shopify.com/s/files/1/1078/8786/files/web_banner_2a367d0c-bc94-4bba-8988-2c27dfed0b14.png?v=1609533870" /> 700<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/1078/8786/files/web_banner_2a367d0c-bc94-4bba-8988-2c27dfed0b14.png?v=1609533870" /> 701<meta property="og:image:width" content="5668" /> 702<meta property="og:image:height" content="2752" /> 703<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
704<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: 10788786,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "search"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 704
704
705<script> 706 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 707</script>
vendor: 1 bytes, line 707
707
708<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}
708).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: 10788786,storefrontBaseUrl: "https://www.respectedroots.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.respectedroots.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b"],webPixelsConfigList: [{"id":"2616033590","configuration":"{\"accountID\":\"2J0HG140\",\"disableNetNewEmails\":\"false\",\"enableReclaim\":\"true\",\"allowCollectionWithFxf\":\"false\",\"enabledEvents\":\"{\\\"enableViewedProduct\\\":true,\\\"enableCategoryView\\\":false,\\\"enableAddToCart\\\":true,\\\"enableActiveOnSite\\\":true}\",\"knownToKlaviyoCheck\":\"true\",\"suppressOnUtmEmail\":\"true\",\"autoCollectTime\":\"40\",\"autoCollectPageviews\":\"2\",\"enableCollectOnNProductViews\":\"3\",\"enableCollectOnNSessions\":\"0\",\"enableCollectOnAddToCart\":\"true\",\"enableCollectOnCheckoutStarted\":\"true\",\"suppressOnUrls\":\"none\",\"suppressOnParams\":\"none\",\"excludeCollectionOnUrls\":\"none\",\"whitelabelDomains\":\"www.respectedroots.com,respectedroots.com\",\"disableEvents\":\"false\",\"isHig\":\"true\",\"hybridSetup\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"78a3a7c08225786bc6df6a7feac93483","type":"APP","apiClientId":316738371585,"privacyPurposes":["MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2597945654","configuration":"{\"shopId\":\"respected-roots.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"31536d5a2ef62c18870
70854e49fd58dba0","type":"APP","apiClientId":4845829,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2530738486","configuration":"{\"eventKey\":\"5965a8cc-63ab-4a10-820a-e8036d5586b7\",\"name\":\"respected-roots - Axon Pixel\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"fae105ca09bb030f70a8b83292a88611","type":"APP","apiClientId":256560922625,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2239693110","configuration":"{\"shop\":\"respected-roots.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":"1781268790","configuration":"{\"accountID\":\"S7n3AL\",\"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":"1310949686","configuration":"{\"shopId\":\"respected-roots.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7093dff47f098f6de2afb75b62011ebe","type":"APP","apiClientId":2753413,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1004372278","configuration":"{\"accountID\":\"1220658\",\"workspaceId\":\"fcbdf344-ad72-48dd-86c8-8e836aa138b1\",\"projectId\":\"63e20126-61a8-4675-96bb-50293ff69037\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d98eb033f1e81320021a411362de3a55","type":"APP","apiClientId":5461967,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"920650038","configuration":"{\"pixelCode\":\"CSTKTPBC77UDJHVL1PG0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"814416182","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"G-MKX370WF51\\\",\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-MKX370WF51\\\",\\\"AW-10881372561\\\/ZH3uCJT9iLMDEJGj0sQo\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-MKX370WF51\\\",\\\"AW-10881372561\\\/xDDcCJH9iLMDEJGj0sQo\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-MKX370WF51\\\",\\\"AW-10881372561\\\/ihf8CIv9iLMDEJGj0sQo\\\",\\\"MC-G77VPZ1ZWL\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-MKX370WF51\\\",\\\"AW-10881372561\\\/itn6CIj9iLMDEJGj0sQo\\\",\\\"MC-G77VPZ1ZWL\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-MKX370WF51\\\",\\\"AW-10881372561\\\/lAxECIX9iLMDEJGj0sQo\\\",\\\"MC-G77VPZ1ZWL\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-MKX370WF51\\\",\\\"AW-10881372561\\\/BThYCJf9iLMDEJGj0sQo\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-MKX370WF51\\\",\\\"AW-10881372561\\\/3uioCI79iLMDEJGj0sQo\\\"]}],\\\"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":"370540854","configuration":"{\"pixel_id\":\"342213219579541\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"95519030","configuration":"{\"matomoUrl\":\"https:\\\/\\\/analytics.zipify.com\",\"matomoSiteId\":\"598\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4c3b52af25958dd82af2943ee5bcccd8","type":"APP","apiClientId":1436544,"privacyPurposes":["ANALYTICS","PREFERENCES"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]}
708,"dataSharingState":"unrestricted"},{"id":"130384182","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Emotive Cart Ai"},{"id":"195690806","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"Retention.com Script"},{"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":"RESPECTED ROOTS","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"respected-roots.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.respectedroots.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://www.respectedroots.com/cdn","87a86122w399bf3b8pd0403c97m2c07468c",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"188441854262","themePublished":"true","eventMetadataId":"da8f4288-ed05-4ccf-a9d7-8cabe27dc52e","pageType":"searchresults","shopId":"10788786","storefrontBaseUrl":"https:\/\/www.respectedroots.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"87a86122w399bf3b8pd0403c97m2c07468c","publish":"custom","events":"[[\"page_viewed\",{}],[\"search_submitted\",{\"searchResult\":{\"query\":\"\",\"productVariants\":[]}}]]"});})();</script>
708<script> 709 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 710 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 711 window.ShopifyAnalytics.meta.currency = 'USD'; 712 var meta = {"products":[],"page":{"pageType":"searchresults","requestId":"619dc34d-822e-4c44-913e-869e40aa1dcb-1791333006"}}; 713 for (var attr in meta) { 714 window.ShopifyAnalytics.meta[attr] = meta[attr]; 715 } 716</script>
vendor: 1 bytes, line 716
716
717<script class="analytics"> 718 (function () { 719 var customDocumentWrite = function(content) { 720 var jquery = null; 721 722 if (window.jQuery) { 723 jquery = window.jQuery; 724 } else if (window.Checkout && window.Checkout.$) { 725 jquery = window.Checkout.$; 726 } 727 728 if (jquery) { 729 jquery('body').append(content); 730 } 731 }; 732 733 var hasLoggedConversion = function(token) { 734 if (token) { 735 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 736 } 737 return false; 738 } 739 740 var setCookieIfConversion = function(token) { 741 if (token) { 742 var twoMonthsFromNow = new Date(Date.now()); 743 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 744 745 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 746 } 747 } 748 749 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 750 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 751 if (trekkie.integrations) { 752 return; 753 } 754 trekkie.methods = [ 755 'identify', 756 'page', 757 'ready', 758 'track', 759 'trackForm', 760 'trackLink' 761 ]; 762 trekkie.factory = function(method) { 763 return function() { 764 var args = Array.prototype.slice.call(arguments); 765 args.unshift(method); 766 trekkie.push(args); 767 if (method == 'track' || method == 'page') { 768 var pageUrl; 769 try { 770 pageUrl = window.location.href; 771 } catch (e) {} 772 var pageReferrer; 773 try { 774 pageReferrer = document.referrer; 775 } catch (e) {} 776 try { 777 if (window.__TREKKIE_SHIM_QUEUE == null) { 778 window.__TREKKIE_SHIM_QUEUE = []; 779 } 780 window.__TREKKIE_SHIM_QUEUE.push({ 781 from: 'trekkie-stub', 782 method: method, 783 args: args.slice(1), 784 pageContext: { 785 url: pageUrl, 786 referrer: pageReferrer 787 } 788 }); 789 } catch (e) { 790 // no-op 791 } 792 } 793 return trekkie; 794 }; 795 }; 796 for (var i = 0; i < trekkie.methods.length; i++) { 797 var key = trekkie.methods[i]; 798 trekkie[key] = trekkie.factory(key); 799 } 800 trekkie.load = function(config) { 801 trekkie.config = config || {}; 802 trekkie.config.initialDocumentCookie = document.cookie; 803 var first = document.getElementsByTagName('script')[0]; 804var script = document.createElement('script'); 805script.type = 'text/javascript'; 806script.onerror = function(e) { 807 var scriptFallback = document.createElement('script'); 808 scriptFallback.type = 'text/javascript'; 809 scriptFallback.onerror = function(error) { 810 var Monorail = { 811 produce: function produce(monorailDomain, schemaId, payload) { 812 var currentMs = new Date().getTime(); 813 var event = { 814 schema_id: schemaId, 815 payload: payload, 816 metadata: { 817 event_created_at_ms: currentMs, 818 event_sent_at_ms: currentMs 819 } 820 }; 821 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 822 }, 823 sendRequest: function sendRequest(endpointUrl, payload) { 824 // Try the sendBeacon API 825 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 826 var blobData = new window.Blob([payload], { 827 type: 'text/plain' 828 }); 829 830 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 831 return true; 832 } // sendBeacon was not successful 833 834 } // XHR beacon 835 836 var xhr = new XMLHttpRequest(); 837 838 try { 839 xhr.open('POST', endpointUrl); 840 xhr.setRequestHeader('Content-Type', 'text/plain'); 841 xhr.send(payload); 842 } catch (e) { 843 console.log(e); 844 } 845 846 return false; 847 }, 848 isIos12: function isIos12() { 849 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 850 } 851 }; 852 Monorail.produce('monorail-edge.shopifysvc.com', 853 'trekkie_storefront_load_errors/1.1', 854 {shop_id: 10788786, 855 theme_id: 188441854262, 856 app_name: "storefront", 857 context_url: window.location.href, 858 source_url: "//www.respectedroots.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 859 860 }; 861 scriptFallback.async = true; 862 scriptFallback.src = '//www.respectedroots.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 863 first.parentNode.insertBefore(scriptFallback, first); 864}; 865script.async = true; 866script.src = '//www.respectedroots.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 867first.parentNode.insertBefore(script, first); 868 869 }; 870 trekkie.load( 871 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":10788786,"isMerchantRequest":null,"themeId":188441854262,"themeCityHash":"989207170330879146","contentLanguage":"en","currency":"USD","eventMetadataId":"da8f4288-ed05-4ccf-a9d7-8cabe27dc52e"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 872 ); 873 874 var loaded = false;
875 trekkie.ready(function() { 876 if (loaded) return; 877 loaded = true; 878 879 window.ShopifyAnalytics.lib = window.trekkie; 880 881 var originalDocumentWrite = document.write; 882 document.write = customDocumentWrite; 883 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 884 document.write = originalDocumentWrite; 885 886 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 887 var token = match? match[1]: undefined; 888 if (!hasLoggedConversion(token)) { 889 setCookieIfConversion(token); 890 window.ShopifyAnalytics.lib.track("Performed Search",{"query":null},undefined,undefined,{"shopifyEmitted":true}); 891 } 892 }); 893 894 window.ShopifyAnalytics.lib.page(null,{"pageType":"searchresults","requestId":"619dc34d-822e-4c44-913e-869e40aa1dcb-1791333006","shopifyEmitted":true}); 895 896 var eventsListenerScript = document.createElement('script'); 897 eventsListenerScript.async = true; 898 eventsListenerScript.src = "//www.respectedroots.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 899 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 900})();</script>
900 901
901<script> 902 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 903 window.ga = function ga() { 904 (window.ga.q = window.ga.q || []).push(arguments); 905 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 906 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 907 } 908 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 909 }; 910 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 911 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 912 } 913 } 914</script>
vendor: 1 bytes, line 914
914
915<script 916 defer 917 src="https://www.respectedroots.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.6.min.js" 918 data-application="storefront-renderer" 919 data-shop-id="10788786" 920 data-render-region="gcp-us-central1" 921 data-page-type="search" 922 data-theme-instance-id="188441854262" 923 data-theme-name="Respected Roots" 924 data-theme-version="2.0" 925 data-monorail-region="shop_domain" 926 data-resource-timing-sampling-rate="10" 927 data-shs="true" 928 data-shs-beacon="true" 929 data-shs-export-with-fetch="true" 930 data-shs-logs-sample-rate="1" 931 data-shs-beacon-endpoint="https://www.respectedroots.com/api/collect" 932></script>
932 933<meta name="shopify-y" content="bab3a8ff-93e0-42de-8a9a-44ab2dfafa44" data-expiration="1822890606000"><meta name="shopify-s" content="b6156631-5763-4373-b6f6-b0bc46f6000e" data-expiration="1791334806000"><meta name="new-cookie-storage-activated" content="t"> 934</head> 935 936 937<body class="template-search not-loaded"> 938 <a class="in-page-link visually-hidden skip-link" href="#MainContent">Skip to content</a><div id="shopify-section-custom-cart-drawer" class="shopify-section custom-cart-drawer-section"> 939 940<div class="ccds-overlay" data-toggle-cart-drawer> 941 942</div> 943 944<div class="ccds-container critical-hidden" data-current-cart-count="0"> 945 <span data-loader><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-spinner" viewBox="0 0 20 20"><path d="M7.229 1.173a9.25 9.25 0 1 0 11.655 11.412 1.25 1.25 0 1 0-2.4-.698 6.75 6.75 0 1 1-8.506-8.329 1.25 1.25 0 1 0-.75-2.385z" fill="#919EAB"/></svg></span> 946 <div class="ccds-wrapper"> 947 <div class="ccds-header"> 948 <div class="ccds-header-title-container"> 949 <h4 class="ccd-header-title">Cart</h4> 950 </div> 951 <button type="button" class="ccds-header-button" data-toggle-cart-drawer><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 952 <path d="M15.3327 1.53414L14.4652 0.666695L7.99935 7.13258L1.53347 0.666695L0.666016 1.53414L7.1319 8.00003L0.666016 14.4659L1.53347 15.3334L7.99935 8.86748L14.4652 15.3334L15.3327 14.4659L8.8668 8.00003L15.3327 1.53414Z" fill="currentColor"/> 953 </svg></button> 954 </div><div class="ccds-threshold-message-container"> 955 <div class="ccds-threshold-message-wrapper"><div class="ccds-threshold-message"><p>$75 away from free shipping.</p></div> 956 957 <div class="ccds-threshold-progress-bar-container"> 958 <div class="ccds-threshold-progress-bar" style="width: 0.0%;"></div> 959 </div> 960 </div> 961 </div><div class="ccds-content"><div class="ccds-empty-cart heading"> 962 <div class="ccds-empty-cart-text">Your cart is currently empty.</div> 963 </div></div></div> 964</div> 965 966<style data-shopify> 967 #shopify-section-custom-cart-drawer { 968 --progress_bar_color: #dfb356; 969 --progress_bar_background: #ffffff; 970 --section_background: #f8f5f1; 971 --primary_text_color: #181818; 972 --secondary_text_color: #6b6b6b; 973 --accents_color: #dfb356; 974 --accents_color_2: #d20909; 975 --secondary_accents_color: #f2f2f2; 976 --button_bg_color: #181818; 977 --button_text_color: #ffffff; 978 --button_bg_color_hover: #4f2c73; 979 --button_text_color_hover: #ffffff; 980 --button_border_color: #181818; 981 --button_border_color_hover: #4f2c73; 982 } 983</style> 984 985 986</div> 987 988 989 990<header id="shopify-section-custom-header" class="shopify-section custom-header-section"><announcement-bar class="ch-announcement-bar-container relative"> 991 <div 992 class="ch-annoucement-bar-wrapper" 993 994 data-slider 995 data-autoplay="true" 996 data-autoplay-speed="3000" 997 998 ><div class="ch-announcement-bar-content-wrapper"> 999 <div class="ch-announcement-bar-content" > 1000 <p>Subscription Service Now Available!</p> 1001 </div> 1002 </div><div class="ch-announcement-bar-content-wrapper"> 1003 <div class="ch-announcement-bar-content" > 1004 <p>Get up to 36% Off With Your Respected Roots Prime Membership + Free Shipping</p> 1005 </div> 1006 </div></div><div class="ch-announcement-bar-buttons-container"> 1007 <button 1008 type="button" 1009 class="non-styled-button ch-announcement-bar-arrow" 1010 data-slider-nav="prev" 1011 > 1012 <span class="custom-icon"> 1013 1014 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="26" viewBox="0 0 24 26" fill="none"> 1015 <path d="M16.6504 25L4.71092 12.9382L16.7714 1" stroke="currentColor" stroke-width="2"/> 1016 </svg> 1017 1018</span> 1019 1020 </button> 1021 <button 1022 type="button" 1023 class="non-styled-button ch-announcement-bar-arrow" 1024 data-slider-nav="next" 1025 > 1026 <span class="custom-icon"> 1027 1028 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="26" viewBox="0 0 24 26" fill="none"> 1029 <path d="M7.34961 1L19.2891 13.0618L7.22856 25" stroke="currentColor" stroke-width="2"/> 1030 </svg> 1031 1032</span> 1033 1034 </button> 1035 </div></announcement-bar> 1036 1037
1037<script> 1038 document.documentElement.style.setProperty('--announcement_bar_height', document.querySelector('.ch-announcement-bar-container').offsetHeight + 'px'); 1039 </script>
1039<div class="ch-container relative" data-template-name="search"> 1040 <div class="ch-wrapper"> 1041 <div class="ch-side-left-container ch-side-container"> 1042 <button class="ch-mobile-menu-button" data-toggle-mobile-menu> 1043 <span class="ch-mobile-menu-closed-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" fill="none"> 1044 <path d="M18 3.28003H0V4.48003H18V3.28003Z" fill="currentColor"/> 1045 <path d="M18 8.3999H0V9.5999H18V8.3999Z" fill="currentColor"/> 1046 <path d="M18 13.51H0V14.71H18V13.51Z" fill="currentColor"/> 1047 </svg></span> 1048 <span class="ch-mobile-menu-opened-icon"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 1049 <path d="M15.3327 1.53414L14.4652 0.666695L7.99935 7.13258L1.53347 0.666695L0.666016 1.53414L7.1319 8.00003L0.666016 14.4659L1.53347 15.3334L7.99935 8.86748L14.4652 15.3334L15.3327 14.4659L8.8668 8.00003L15.3327 1.53414Z" fill="currentColor"/> 1050 </svg></span> 1051 </button> 1052 <nav class="ch-desktop-nav-container"><div 1053 class="ch-desktop-nav-item relative chd-bundle-promo" 1054> 1055 <a href="/pages/bundle-box" class="ch-desktop-nav"> 1056 <span class="ch-desktop-nav-title font-semibold">Bundle Up & Save</span></a></div><div 1057 class="ch-desktop-nav-item chd-has-submenu " 1058> 1059 <a href="/collections/shop-all" class="ch-desktop-nav"> 1060 <span class="ch-desktop-nav-title font-semibold">Shop All</span> 1061 <span class="custom-icon"> 1062 1063 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 1064 <path d="M7.99997 12.5533L0.306641 4.85992L1.24664 3.91992L7.99997 10.6666L14.7533 3.91992L15.6933 4.85992L7.99997 12.5533Z" fill="currentColor"/> 1065 </svg> 1066 1067</span> 1068 1069</a><div class="chd-submenu-overlay"></div> 1070 <div class="chd-submenu"> 1071 <div class="chd-submenu-container"> 1072 <div class="chd-submenu-inner-wrapper"><div class="chd-submenu-wrapper"><div class="chd-submenu-item "> 1073 <div class="chd-submenu-item-wrapper relative"><div class="chd-submenu-item-image-container"> 1074 <div class="chd-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 1;"><img 1075 class="chd-submenu-item-image custom-image lazyload" 1076 data-src="//www.respectedroots.com/cdn/shop/collections/IMG_1397_{width}x.JPG?v=1727250378" 1077 src="//www.respectedroots.com/cdn/shop/collections/IMG_1397_1x1.JPG?v=1727250378" 1078 data-widths="[400, 500]" 1079 data-sizes="auto" 1080 alt="Beard Care" 1081 width="832" 1082 height="832"></div> 1083 </div> 1084 1085 <div class="chd-submenu-item-title font-semibold">Beard Care</div> 1086 1087 <a href="/collections/beard-butters" class="absolute inset-0 opacity-0" title="Beard Care">Beard Care</a> 1088 </div> 1089 </div><div class="chd-submenu-item "> 1090 <div class="chd-submenu-item-wrapper relative"><div class="chd-submenu-item-image-container"> 1091 <div class="chd-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 1;"><img 1092 class="chd-submenu-item-image custom-image lazyload" 1093 data-src="//www.respectedroots.com/cdn/shop/collections/Razor-Bump-_-Shaving-Cream_{width}x.jpg?v=1727250350" 1094 src="//www.respectedroots.com/cdn/shop/collections/Razor-Bump-_-Shaving-Cream_1x1.jpg?v=1727250350" 1095 data-widths="[400, 500]" 1096 data-sizes="auto" 1097 alt="Shave" 1098 width="832" 1099 height="832"></div> 1100 </div> 1101 1102 <div class="chd-submenu-item-title font-semibold">Shave</div> 1103 1104 <a href="/collections/shave" class="absolute inset-0 opacity-0" title="Shave">Shave</a> 1105 </div> 1106 </div><div class="chd-submenu-item "> 1107 <div class="chd-submenu-item-wrapper relative"><div class="chd-submenu-item-image-container"> 1108 <div class="chd-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 1;"><img 1109 class="chd-submenu-item-image custom-image lazyload" 1110 data-src="//www.respectedroots.com/cdn/shop/collections/Screen_Shot_2017-08-24_at_11.07.04_PM_{width}x.png?v=1606000677"
1111 src="//www.respectedroots.com/cdn/shop/collections/Screen_Shot_2017-08-24_at_11.07.04_PM_1x1.png?v=1606000677" 1112 data-widths="[400, 500]" 1113 data-sizes="auto" 1114 alt="Body & Skin Care" 1115 width="1033" 1116 height="805"></div> 1117 </div> 1118 1119 <div class="chd-submenu-item-title font-semibold">Body & Skin Care</div> 1120 1121 <a href="/collections/body-butters" class="absolute inset-0 opacity-0" title="Body & Skin Care">Body & Skin Care</a> 1122 </div> 1123 </div><div class="chd-submenu-item "> 1124 <div class="chd-submenu-item-wrapper relative"><div class="chd-submenu-item-image-container"> 1125 <div class="chd-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 1;"><img 1126 class="chd-submenu-item-image custom-image lazyload" 1127 data-src="//www.respectedroots.com/cdn/shop/collections/hair_moisturizer_{width}x.png?v=1727421843" 1128 src="//www.respectedroots.com/cdn/shop/collections/hair_moisturizer_1x1.png?v=1727421843" 1129 data-widths="[400, 500]" 1130 data-sizes="auto" 1131 alt="Hair" 1132 width="1600" 1133 height="1600"></div> 1134 </div> 1135 1136 <div class="chd-submenu-item-title font-semibold">Hair</div> 1137 1138 <a href="/collections/hair" class="absolute inset-0 opacity-0" title="Hair">Hair</a> 1139 </div> 1140 </div><div class="chd-submenu-item "> 1141 <div class="chd-submenu-item-wrapper relative"><div class="chd-submenu-item-image-container"> 1142 <div class="chd-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 1;"><img 1143 class="chd-submenu-item-image custom-image lazyload" 1144 data-src="//www.respectedroots.com/cdn/shop/collections/Hair-M_-Foaming-Co_-Body-Butt_-Unscented-beard-Cond_{width}x.jpg?v=1727252469" 1145 src="//www.respectedroots.com/cdn/shop/collections/Hair-M_-Foaming-Co_-Body-Butt_-Unscented-beard-Cond_1x1.jpg?v=1727252469" 1146 data-widths="[400, 500]" 1147 data-sizes="auto" 1148 alt="Respected Roots Kits" 1149 width="416" 1150 height="416"></div> 1151 </div> 1152 1153 <div class="chd-submenu-item-title font-semibold">Respected Roots Kits</div> 1154 1155 <a href="/collections/gift-set" class="absolute inset-0 opacity-0" title="Respected Roots Kits">Respected Roots Kits</a> 1156 </div> 1157 </div><div class="chd-submenu-item "> 1158 <div class="chd-submenu-item-wrapper relative"><div class="chd-submenu-item-image-container"> 1159 <div class="chd-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 1;"><img 1160 class="chd-submenu-item-image custom-image lazyload" 1161 data-src="//www.respectedroots.com/cdn/shop/collections/Sensitive-Skin-for-Instagram_{width}x.jpg?v=1727252320" 1162 src="//www.respectedroots.com/cdn/shop/collections/Sensitive-Skin-for-Instagram_1x1.jpg?v=1727252320" 1163 data-widths="[400, 500]" 1164 data-sizes="auto" 1165 alt="Sensitive Skin" 1166 width="832" 1167 height="832"></div> 1168 </div> 1169 1170 <div class="chd-submenu-item-title font-semibold">Sensitive Skin</div> 1171 1172 <a href="/collections/sensitive-skin" class="absolute inset-0 opacity-0" title="Sensitive Skin">Sensitive Skin</a> 1173 </div> 1174 </div></div></div> 1175 </div> 1176 </div></div><div 1177 class="ch-desktop-nav-item chd-has-submenu " 1178> 1179 <a href="#" class="ch-desktop-nav"> 1180 <span class="ch-desktop-nav-title font-semibold">Find your Solution</span>
1181 <span class="custom-icon"> 1182 1183 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 1184 <path d="M7.99997 12.5533L0.306641 4.85992L1.24664 3.91992L7.99997 10.6666L14.7533 3.91992L15.6933 4.85992L7.99997 12.5533Z" fill="currentColor"/> 1185 </svg> 1186 1187</span> 1188 1189</a><div class="chd-submenu-overlay"></div> 1190 <div class="chd-submenu"> 1191 <div class="chd-submenu-container"> 1192 <div class="chd-submenu-inner-wrapper"><div class="chd-submenu-wrapper"><div class="chd-multilevel-submenu-items-wrapper"><div class="chd-multilevel-submenu-item"> 1193 <a 1194 class="chd-multilevel-submenu-item-parent-link font-semibold" 1195 href="/collections/hair" 1196 title="Hair Care" 1197 >Hair Care</a><div class="chd-multilevel-submenu-item-child-links"><a 1198 class="chd-multilevel-submenu-item-child-link" 1199 href="/collections/dryness-hydration" 1200 title="Dryness & Hydration" 1201 >Dryness & Hydration</a><a 1202 class="chd-multilevel-submenu-item-child-link" 1203 href="/collections/scalp-health" 1204 title="Scalp Health" 1205 >Scalp Health</a><a 1206 class="chd-multilevel-submenu-item-child-link" 1207 href="/collections/dandruff-prevention" 1208 title="Dandruff Prevention" 1209 >Dandruff Prevention</a></div></div><div class="chd-multilevel-submenu-item"> 1210 <a 1211 class="chd-multilevel-submenu-item-parent-link font-semibold" 1212 href="/collections/shop-all" 1213 title="Shaving & Hair Removal" 1214 >Shaving & Hair Removal</a><div class="chd-multilevel-submenu-item-child-links"><a 1215 class="chd-multilevel-submenu-item-child-link" 1216 href="/collections/bumps-irritation" 1217 title="Bumps & Irritation" 1218 >Bumps & Irritation</a><a 1219 class="chd-multilevel-submenu-item-child-link" 1220 href="/collections/precision-styling" 1221 title="Precision & Styling" 1222 >Precision & Styling</a><a 1223 class="chd-multilevel-submenu-item-child-link" 1224 href="/collections/post-shave-care" 1225 title="Post-Shave Care" 1226 >Post-Shave Care</a></div></div><div class="chd-multilevel-submenu-item"> 1227 <a 1228 class="chd-multilevel-submenu-item-parent-link font-semibold" 1229 href="/collections/shop-all" 1230 title="Styling & Maintenance" 1231 >Styling & Maintenance</a><div class="chd-multilevel-submenu-item-child-links"><a 1232 class="chd-multilevel-submenu-item-child-link" 1233 href="/collections/shop-all" 1234 title="Edge Control" 1235 >Edge Control</a><a 1236 class="chd-multilevel-submenu-item-child-link" 1237 href="/collections/beard-butters" 1238 title="Beard Care" 1239 >Beard Care</a></div></div></div></div></div> 1240 </div> 1241 </div></div><div 1242 class="ch-desktop-nav-item chd-has-submenu relative " 1243> 1244 <a href="#" class="ch-desktop-nav"> 1245 <span class="ch-desktop-nav-title font-semibold">Learn</span> 1246 <span class="custom-icon"> 1247 1248 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 1249 <path d="M7.99997 12.5533L0.306641 4.85992L1.24664 3.91992L7.99997 10.6666L14.7533 3.91992L15.6933 4.85992L7.99997 12.5533Z" fill="currentColor"/> 1250 </svg> 1251 1252</span> 1253 1254</a><div class="chd-submenu-list"> 1255 <div class="chd-submenu-list-wrapper"><a 1256 class="chd-submenu-list-item-link" 1257 href="/pages/about" 1258 title="About Us" 1259 >About Us</a><a 1260 class="chd-submenu-list-item-link" 1261 href="/blogs/respected-roots-blog" 1262 title="Blog" 1263 >Blog</a><a 1264 class="chd-submenu-list-item-link" 1265 href="/pages/videos-1" 1266 title="Videos" 1267 >Videos</a><a 1268 class="chd-submenu-list-item-link" 1269 href="/pages/media" 1270 title="Media" 1271 >Media</a></div> 1272 </div></div></nav> 1273 </div> 1274 1275 <div class="ch-logo-container"><div class="ch-logo-image-outer-wrapper"> 1276 <div class="ch-logo-image-wrapper" data-image-loading-animation style="padding-top:100.0%;" data-image-loading-animation><img class="ch-logo lazyload" 1277 src="//www.respectedroots.com/cdn/shop/files/LOGO_1x1.svg?v=17448
127718346" 1278 data-src="//www.respectedroots.com/cdn/shop/files/LOGO_{width}x.svg?v=1744818346" 1279 data-widths="[200, 300, 400, 600, 800, 1000, 1200, 1400, 1600]" 1280 data-aspectratio="1.0" 1281 data-sizes="auto" 1282 alt="RESPECTED ROOTS"> 1283 1284 <a class="ch-logo-link" href="/"></a> 1285 </div> 1286 </div></div> 1287 1288 <div class="ch-side-right-container ch-side-container"> 1289 <nav class="ch-desktop-nav-container"><div 1290 class="ch-desktop-nav-item relative " 1291> 1292 <a href="/pages/faqs" class="ch-desktop-nav"> 1293 <span class="ch-desktop-nav-title font-semibold">FAQs</span></a></div><div 1294 class="ch-desktop-nav-item relative " 1295> 1296 <a href="/pages/contact-us" class="ch-desktop-nav"> 1297 <span class="ch-desktop-nav-title font-semibold">Contacts</span></a></div></nav> 1298 <div class="ch-icons-container"> 1299 <div class="ch-icon-item"> 1300 <a href="/search" class="ch-icon-item-link" data-open-search-drawer><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 1301 <circle cx="10" cy="10" r="8" stroke="currentColor" stroke-width="2"/> 1302 <path d="M16 16L22 22" stroke="currentColor" stroke-width="2"/> 1303 </svg></a> 1304 </div><div class="ch-icon-item hidden-mobile"> 1305 <a href="https://www.respectedroots.com/a/account/subscriptions" class="ch-icon-item-link"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 1306 <circle cx="12" cy="6" r="4" stroke="currentColor" stroke-width="2"/> 1307 <path d="M21 23C21 17.4772 16.9706 13 12 13C7.02944 13 3 17.4772 3 23" stroke="currentColor" stroke-width="2"/> 1308 </svg></a> 1309 </div><div class="ch-cart-link-container ch-icon-item"> 1310 <a href="/cart" class="ch-cart-link ch-icon-item-link " data-toggle-cart-drawer><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 1311 <path d="M7 10V7C7 4 9 2 12 2C15 2 17 4 17.051 7V10" stroke="currentColor" stroke-width="2"/> 1312 <path d="M3.88754 7.94128C3.91863 7.41272 4.35633 7 4.88581 7H19.1142C19.6437 7 20.0814 7.41271 20.1125 7.94128L20.8772 20.9412C20.911 21.5156 20.4543 21.9999 19.8789 21.9999H4.12111C3.54573 21.9999 3.08904 21.5156 3.12283 20.9412L3.88754 7.94128Z" stroke="currentColor" stroke-width="2"/> 1313 </svg><span class="ch-cart-link-bubble"></span> 1314 </a> 1315 </div> 1316 </div> 1317 1318 </div> 1319 </div> 1320</div> 1321 1322<div class="mobile-menu-container critical-hidden"> 1323 <div class="mobile-menu-overlay" data-toggle-mobile-menu></div> 1324 <div class="mobile-menu-wrapper"> 1325 <div class="mm-content-container"><nav class="mm-links-container"><div class="mm-link-item" ><div class="mm-link-item-wrapper"> 1326 <a href="/a/account/login" class="mm-link font-semibold">My Account</a> 1327 </div></div><div class="mm-link-item" ><div class="mm-link-item-wrapper"> 1328 <a href="/pages/bundle-box" class="mm-link font-semibold">Bundle Up & Save</a> 1329 </div></div><div class="mm-link-item" data-collapsible-container><button type="button" 1330 class="mm-link-item-wrapper " 1331 data-toggle-collapsible 1332 > 1333 <span class="mm-link font-semibold">Shop by category</span> 1334 <span type="button" class="mm-toggler"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1335 <path d="M17 14L10 7L3 14" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"/> 1336 </svg></span> 1337 </button><div 1338 class="mm-submenu-items-container" 1339 data-collapsible-content 1340 1341 > 1342 <div class="mm-submenu-items-wrapper"><div class="mm-submenu-item relative"> 1343 <div class="mm-submenu-item-wrapper"><div class="mm-submenu-item-image-container"> 1344 <div class="mm-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 0.89;"><img 1345 class="mm-submenu-item-image custom-image lazyload" 1346 data-src="//www.respectedroots.com/cdn/shop/collections/IMG_1397_{width}x.JPG?v=1727250378" 1347 src="//www.respectedroots.com/cdn/shop/collections/IMG_1397_1x1.JPG?v=1727250378" 1348 data-widths="[200, 300]" 1349 data-sizes="auto" 1350 alt="Beard Care" 1351 width="832" 1352 height="832"></div> 1353 </div> 1354 1355 <div class="mm-submenu-item-title font-semibold">Beard Care</div> 1356 1357 <a href="/collections/beard-butters" class="absolute inset-0 opacity-0" title="Beard Care">Beard Care</a> 1358 </div> 1359 </div><div class="mm-submenu-item relative"> 1360 <div class="mm-submenu-item-wrapper"><div class="mm-submenu-item-image-container"> 1361 <div class="mm-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 0.89;"><img 1362 class="mm-submenu-item-image custom-image lazyload" 1363 data-src="//www.respectedroots.com/cdn/shop/collections/Razor-Bump-_-Shaving-Cream_{width}x.jpg?v=1727250350" 1364 src="//www.respectedroots.com/cdn/shop/collections/Razor-Bump-_-Shaving-Cream_1x1.jpg?v=1727250350" 1365 data-widths="[200, 300]" 1366 data-sizes="auto" 1367 alt="Shave" 1368 width="832" 1369 height="832"></div> 1370 </div> 1371 1372 <div class="mm-submenu-item-title font-semibold">Shave</div> 1373 1374 <a href="/collections/shave" class="absolute inset-0 opacity-0" title="Shave">Shave</a> 1375 </div> 1376 </div><div class="mm-submenu-item relative"> 1377 <div class="mm-submenu-item-wrapper"><div class="mm-submenu-item-image-container"> 1378 <div class="mm-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 0.89;"><img 1379 class="mm-submenu-item-image custom-image lazyload" 1380 data-src="//www.respectedroots.com/cdn/shop/collections/Screen_Shot_2017-08-24_at_11.07.04_PM_{width}x.png?v=1606000677"
1381 src="//www.respectedroots.com/cdn/shop/collections/Screen_Shot_2017-08-24_at_11.07.04_PM_1x1.png?v=1606000677" 1382 data-widths="[200, 300]" 1383 data-sizes="auto" 1384 alt="Body & Skin Care" 1385 width="1033" 1386 height="805"></div> 1387 </div> 1388 1389 <div class="mm-submenu-item-title font-semibold">Body & Skin Care</div> 1390 1391 <a href="/collections/body-butters" class="absolute inset-0 opacity-0" title="Body & Skin Care">Body & Skin Care</a> 1392 </div> 1393 </div><div class="mm-submenu-item relative"> 1394 <div class="mm-submenu-item-wrapper"><div class="mm-submenu-item-image-container"> 1395 <div class="mm-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 0.89;"><img 1396 class="mm-submenu-item-image custom-image lazyload" 1397 data-src="//www.respectedroots.com/cdn/shop/collections/hair_moisturizer_{width}x.png?v=1727421843" 1398 src="//www.respectedroots.com/cdn/shop/collections/hair_moisturizer_1x1.png?v=1727421843" 1399 data-widths="[200, 300]" 1400 data-sizes="auto" 1401 alt="Hair" 1402 width="1600" 1403 height="1600"></div> 1404 </div> 1405 1406 <div class="mm-submenu-item-title font-semibold">Hair</div> 1407 1408 <a href="/collections/hair" class="absolute inset-0 opacity-0" title="Hair">Hair</a> 1409 </div> 1410 </div><div class="mm-submenu-item relative"> 1411 <div class="mm-submenu-item-wrapper"><div class="mm-submenu-item-image-container"> 1412 <div class="mm-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 0.89;"><img 1413 class="mm-submenu-item-image custom-image lazyload" 1414 data-src="//www.respectedroots.com/cdn/shop/collections/Hair-M_-Foaming-Co_-Body-Butt_-Unscented-beard-Cond_{width}x.jpg?v=1727252469" 1415 src="//www.respectedroots.com/cdn/shop/collections/Hair-M_-Foaming-Co_-Body-Butt_-Unscented-beard-Cond_1x1.jpg?v=1727252469" 1416 data-widths="[200, 300]" 1417 data-sizes="auto" 1418 alt="Respected Roots Kits" 1419 width="416" 1420 height="416"></div> 1421 </div> 1422 1423 <div class="mm-submenu-item-title font-semibold">Respected Roots Kits</div> 1424 1425 <a href="/collections/gift-set" class="absolute inset-0 opacity-0" title="Respected Roots Kits">Respected Roots Kits</a> 1426 </div> 1427 </div><div class="mm-submenu-item relative"> 1428 <div class="mm-submenu-item-wrapper"><div class="mm-submenu-item-image-container"> 1429 <div class="mm-submenu-item-image-wrapper custom-image-wrapper" style="--aspect-ratio: 0.89;"><img 1430 class="mm-submenu-item-image custom-image lazyload" 1431 data-src="//www.respectedroots.com/cdn/shop/collections/Sensitive-Skin-for-Instagram_{width}x.jpg?v=1727252320" 1432 src="//www.respectedroots.com/cdn/shop/collections/Sensitive-Skin-for-Instagram_1x1.jpg?v=1727252320" 1433 data-widths="[200, 300]" 1434 data-sizes="auto" 1435 alt="Sensitive Skin" 1436 width="832" 1437 height="832"></div> 1438 </div> 1439 1440 <div class="mm-submenu-item-title font-semibold">Sensitive Skin</div> 1441 1442 <a href="/collections/sensitive-skin" class="absolute inset-0 opacity-0" title="Sensitive Skin">Sensitive Skin</a> 1443 </div> 1444 </div></div></div></div><div class="mm-link-item" data-collapsible-container><button type="button" 1445 class="mm-link-item-wrapper " 1446 data-toggle-collapsible 1447 >
1448 <span class="mm-link font-semibold">Find your Solution</span> 1449 <span type="button" class="mm-toggler"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1450 <path d="M17 14L10 7L3 14" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"/> 1451 </svg></span> 1452 </button><div 1453 class="mm-submenu-items-container" 1454 data-collapsible-content 1455 1456 > 1457 <div class="mm-submenu-links-list"><a 1458 href="/collections/hair" 1459 class="mm-submenu-link has-children font-semibold" 1460 title="Hair Care" 1461 >Hair Care</a><div class="mm-submenu-grandchildren-links-list"><a 1462 href="/collections/dryness-hydration" 1463 class="mm-submenu-link" 1464 title="Dryness & Hydration" 1465 >Dryness & Hydration</a><a 1466 href="/collections/scalp-health" 1467 class="mm-submenu-link" 1468 title="Scalp Health" 1469 >Scalp Health</a><a 1470 href="/collections/dandruff-prevention" 1471 class="mm-submenu-link" 1472 title="Dandruff Prevention" 1473 >Dandruff Prevention</a></div><a 1474 href="/collections/shave" 1475 class="mm-submenu-link has-children font-semibold" 1476 title="Shaving & Hair Removal" 1477 >Shaving & Hair Removal</a><div class="mm-submenu-grandchildren-links-list"><a 1478 href="/collections/bumps-irritation" 1479 class="mm-submenu-link" 1480 title="Bumps & Irritation" 1481 >Bumps & Irritation</a><a 1482 href="/collections/precision-styling" 1483 class="mm-submenu-link" 1484 title="Precision & Styling" 1485 >Precision & Styling</a><a 1486 href="/collections/post-shave-care" 1487 class="mm-submenu-link" 1488 title="Post-Shave Care" 1489 >Post-Shave Care</a></div><a 1490 href="/collections/shop-all" 1491 class="mm-submenu-link has-children font-semibold" 1492 title="Styling & Maintenance" 1493 >Styling & Maintenance</a><div class="mm-submenu-grandchildren-links-list"><a 1494 href="/collections/shop-all" 1495 class="mm-submenu-link" 1496 title="Edge Control" 1497 >Edge Control</a><a 1498 href="/collections/beard-butters" 1499 class="mm-submenu-link" 1500 title="Beard Care" 1501 >Beard Care</a></div></div> 1502 </div></div><div class="mm-link-item" data-collapsible-container><button type="button" 1503 class="mm-link-item-wrapper " 1504 data-toggle-collapsible 1505 > 1506 <span class="mm-link font-semibold">Learn</span> 1507 <span type="button" class="mm-toggler"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1508 <path d="M17 14L10 7L3 14" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"/> 1509 </svg></span> 1510 </button><div 1511 class="mm-submenu-items-container" 1512 data-collapsible-content 1513 1514 > 1515 <div class="mm-submenu-links-list"><a 1516 href="/pages/about" 1517 class="mm-submenu-link " 1518 title="About Us" 1519 >About Us</a><a 1520 href="/blogs/respected-roots-blog" 1521 class="mm-submenu-link " 1522 title="Blog" 1523 >Blog</a><a 1524 href="/pages/videos-1" 1525 class="mm-submenu-link " 1526 title="Videos" 1527 >Videos</a><a 1528 href="/pages/media" 1529 class="mm-submenu-link " 1530 title="Media" 1531 >Media</a></div> 1532 </div></div><div class="mm-link-item" ><div class="mm-link-item-wrapper"> 1533 <a href="/pages/locations" class="mm-link font-semibold">Stores</a> 1534 </div></div><div class="mm-link-item" ><div class="mm-link-item-wrapper"> 1535 <a href="/pages/contact-us" class="mm-link font-semibold">Contacts</a> 1536 </div></div></nav> 1537 </div> 1538 </div> 1539</div> 1540 1541<search-drawer aria-hidden="true"> 1542 <button type="button" class="search-drawer-overlay" data-close-search-drawer aria-label="Close search drawer"></button> 1543 <div class="search-drawer-container" data-search-container> 1544 <div class="search-drawer-wrapper"> 1545 <form 1546 action="/search" 1547 method="get" 1548 role="search" 1549 class="search-drawer-form" 1550 > 1551 <input type="hidden" name="options[prefix]" value="last" aria-hidden="true" /> 1552 <input 1553 type="search" 1554 name="q" 1555 value="" 1556 placeholder="Search" 1557 aria-label="Search" 1558 class="search-drawer-form__input" 1559 data-base-url="/search" 1560 data-search-input 1561 /> 1562 1563 <button type="submit" class="visually-hidden" aria-label="Submit" data-search-page-predictive-search-submit> 1564 Submit 1565 </button> 1566 </form> 1567 </div> 1568 </div> 1569</search-drawer> 1570 1571<style data-shopify> 1572 #shopify-section-custom-header {
1573 --announcement_bar_color: #dfb356; 1574 --announcement_bar_background: #181818; 1575 1576 --nav_color: #222222; 1577 --background_color: #ffffff; 1578 1579 --mega_menu_background: #ffffff; 1580 --mega_menu_nav_color: #181818; 1581 1582 --simple_dropdown_background: #ffffff; 1583 --simple_dropdown_nav_color: #181818; 1584 1585 --mobile_menu_background: #ffffff; 1586 --mobile_menu_nav_color: #181818; 1587 --mobile_menu_border: #f1f0f4; 1588 } 1589</style> 1590 1591 1592</header> 1593<div class="page-container drawer-page-content" id="PageContainer" data-template-name="search"> 1594 1595 <main class="main-content js-focus-hidden" id="MainContent" role="main" tabindex="-1"> 1596 1597 1598<div class="other-pages-container page-width"> 1599 1600 <div class="text-center"> 1601 <h1 class="h2">Search our site</h1> 1602 1603 <div class="grid"> 1604 <div class="grid__item medium-up--six-tenths medium-up--push-two-tenths"> 1605 1606 <form action="/search" method="get" role="search" class="search-form search-page-form"> 1607 <div class="input-group input-group--nowrap"> 1608 <div class="input-group__field input-group__field--connected search-form__input-wrapper"> 1609 <input 1610 type="search" 1611 name="q" 1612 value="" 1613 placeholder="Search" 1614 role="combobox" 1615 aria-autocomplete="list" 1616 aria-owns="predictive-search-results" 1617 aria-expanded="false" 1618 aria-label="Search" 1619 aria-haspopup="listbox" 1620 class="search-form__input" 1621 data-search-page-predictive-search-input 1622 data-base-url="/search" 1623 /> 1624 1625 <input type="hidden" name="options[prefix]" value="last" aria-hidden="true" /> 1626 1627 <button type="reset" class="search-form__clear-action" aria-label="Clear search term" data-search-page-predictive-search-clear> 1628 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 40 40"><path d="M23.868 20.015L39.117 4.78c1.11-1.108 1.11-2.77 0-3.877-1.109-1.108-2.773-1.108-3.882 0L19.986 16.137 4.737.904C3.628-.204 1.965-.204.856.904c-1.11 1.108-1.11 2.77 0 3.877l15.249 15.234L.855 35.248c-1.108 1.108-1.108 2.77 0 3.877.555.554 1.248.831 1.942.831s1.386-.277 1.94-.83l15.25-15.234 15.248 15.233c.555.554 1.248.831 1.941.831s1.387-.277 1.941-.83c1.11-1.109 1.11-2.77 0-3.878L23.868 20.015z" class="layer"/></svg> 1629 </button> 1630 1631 <div class="predictive-search-wrapper" data-predictive-search-mount="default"></div> 1632 </div> 1633 1634 <button type="submit" class="search-form__connected-submit" aria-label="Submit" data-search-page-predictive-search-submit> 1635 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 37 40"><path d="M35.6 36l-9.8-9.8c4.1-5.4 3.6-13.2-1.3-18.1-5.4-5.4-14.2-5.4-19.7 0-5.4 5.4-5.4 14.2 0 19.7 2.6 2.6 6.1 4.1 9.8 4.1 3 0 5.9-1 8.3-2.8l9.8 9.8c.4.4.9.6 1.4.6s1-.2 1.4-.6c.9-.9.9-2.1.1-2.9zm-20.9-8.2c-2.6 0-5.1-1-7-2.9-3.9-3.9-3.9-10.1 0-14C9.6 9 12.2 8 14.7 8s5.1 1 7 2.9c3.9 3.9 3.9 10.1 0 14-1.9 1.9-4.4 2.9-7 2.9z"/></svg> 1636 </button> 1637 </div> 1638 </form> 1639 </div> 1640 </div> 1641 </div> 1642 1643 1644 1645 <div class="search--less-than-2-results"></div> 1646 1647 1648 1649</div> 1650 1651 1652 1653 1654 </main><!-- BEGIN sections: footer-group --> 1655<div id="shopify-section-sections--27529236939062__custom-subscription" class="shopify-section shopify-section-group-footer-group custom-newsletter-subscription"><div class="custom-container csub-container"> 1656 <div 1657 class="custom-wrapper csub-wrapper" 1658 data-aos="fade-up" 1659 data-aos-easing="100" 1660 data-aos-easing="ease-in-quad" 1661 data-aos-once="true" 1662 > 1663 <div class="csub-text-container"> 1664 1665 <h2 class="csub-title custom-h2 heading">Limited Time 20% off</h2> 1666 1667 1668 <div class="csub-text custom-p extras"><p>Take 20 % off your first order when you sign up.</p></div> 1669 1670 </div> 1671 <div class="csub-form-container"><form method="post" action="/contact#CustomContact" id="CustomContact" accept-charset="UTF-8" class="csub-form" novalidate="novalidate"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" />�<input type="hidden" name="contact[tags]" value="newsletter"> 1672 <input type="email" 1673 name="contact[email]" 1674 id="CustomContact-email" 1675 class="custom-input newsletter__input" 1676 value="" 1677 placeholder="Email" 1678 aria-label="Email" 1679 aria-required="true" 1680 required 1681 autocorrect="off" 1682 autocapitalize="off" 1683 1684 /> 1685 <button type="submit" class="custom-newsletter-submit custom-button primary-button-with-border" name="commit" >Subscribe</button><div class="csub-form-additional-text custom-p"><p>Save on your first order and get email only offers when you join.</p></div> 1686 </form> 1687 </div> 1688 </div> 1689</div> 1690 1691<style data-shopify> 1692 #shopify-section-sections--27529236939062__custom-subscription { 1693 --bg_color: #f8f5f1; 1694 --inner_bg_color: #dfb356; 1695 --title_color: #ffffff; 1696 --text_color: #ffffff; 1697 --additional_text_color: #ffffff; 1698 1699 --input_bg_color: #ffffff; 1700 --input_border: #222222; 1701 --input_text_color: #181818; 1702 --input_placeholder_color: #6b6b6b; 1703 1704 --button_bg_color: #181818; 1705 --button_text_color: #ffffff; 1706 --button_bg_color_hover: #7b329f; 1707 --button_text_color_hover: #ffffff; 1708 --button_border_color: #181818; 1709 --button_border_color_hover: #7b329f; 1710 } 1711</style> 1712 1713 1714</div><div id="shopify-section-sections--27529236939062__rich_text_DWx6FA" class="shopify-section shopify-section-group-footer-group index-section"><div class="page-width rich-text"> 1715 <div class="grid"> 1716 <div class="grid__item medium-up--two-thirds medium-up--push-one-sixth"> 1717 1718 <div class="rich-text__heading--medium text-center"> 1719 <h2 class="h3">Download our app for early access to products and exclusive drops.</h2> 1720 </div> 1721 1722 1723 </div> 1724 </div> 1725</div> 1726 1727 1728 1729 1730</div><div id="shopify-section-sections--27529236939062__1749927125bf9d109e" class="shopify-section shopify-section-group-footer-group"> 1731 1732 <div id="shopify-block-AYW1uNk14NHp1VjQ4N__fuego_mobile_app_builder_buttons_LbkGfm" class="shopify-block shopify-app-block"><div 1733 class="fuego-store-urls" 1734 style=" 1735 1736 justify-content: center; 1737 1738 flex-direction: row; 1739 gap: 7.333333333333333px; 1740 " 1741> 1742 1743 <a href="https://apps.apple.com/app/6747262507" target="_blank" rel="noreferrer"> 1744 <img 1745 src="https://cdn.fuego.io/app-store.svg" 1746 alt="Download on the App Store" 1747 height="44" 1748 width="131.63333333333333" 1749 ></a> 1750 1751 1752 <a 1753 href="https://play.google.com/store/apps/details?id=com.fuego.respectedroots" 1754 target="_blank" 1755 rel="noreferrer" 1756 > 1757 <img 1758 src="https://cdn.fuego.io/google-play.svg" 1759 alt="Get it on Google Play" 1760 height="44" 1761 width="148.5" 1762 ></a> 1763 1764</div> 1765 1766 1767 1768<style> 1769 .fuego-store-urls { 1770 display: flex; 1771 flex-wrap: wrap; 1772 line-height: 0px; 1773 } 1774 1775 .fuego-warning { 1776 display: flex; 1777 padding: 8px; 1778 background-color: #ffe5ec; 1779 font-size: 14px; 1780 } 1781</style> 1782 1783 1784</div> 1785 1786 1787 1788 1789 1790</div><div id="shopify-section-sections--27529236939062__rich_text_iGj8EM" class="shopify-section shopify-section-group-footer-group index-section"><div class="page-width rich-text"> 1791 <div class="grid"> 1792 <div class="grid__item medium-up--two-thirds medium-up--push-one-sixth"> 1793 1794 1795 </div> 1796 </div> 1797</div> 1798 1799 1800 1801 1802</div><footer id="shopify-section-sections--27529236939062__footer" class="shopify-section shopify-section-group-footer-group custom-footer-section">�<div class="cf-container relative"> 1803 <div class="cf-wrapper custom-wrapper relative"><div class="cf-main-content-container"> 1804 <div class="cf-mcc-wrapper"><div class="cf-menu-container"> 1805 1806 <div 1807 class="cf-menu-item-container" 1808 > 1809 <div class="cf-menu-item-title">Info</div><nav class="cf-menu-item-links"><div class="cf-menu-item-link-container"> 1810 <a class="cf-menu-item-link" href="/blogs/respected-roots-blog">Blog</a> 1811 </div><div class="cf-menu-item-link-container"> 1812 <a class="cf-menu-item-link" href="/pages/media">Media</a> 1813 </div><div class="cf-menu-item-link-container"> 1814 <a class="cf-menu-item-link" href="/pages/the-brotherhood-initiative">Brotherhood Initiative</a> 1815 </div></nav></div> 1816 1817 <div 1818 class="cf-menu-item-container" 1819 > 1820 <div class="cf-menu-item-title">Legal</div><nav class="cf-menu-item-links"><div class="cf-menu-item-link-container"> 1821 <a class="cf-menu-item-link" href="/pages/terms-conditions">Terms & Conditions</a> 1822 </div><div class="cf-menu-item-link-container"> 1823 <a class="cf-menu-item-link" href="/pages/privacy-policy">Privacy Policy</a> 1824 </div><div class="cf-menu-item-link-container"> 1825 <a class="cf-menu-item-link" href="/pages/return-shipping">Shipping & Return</a> 1826 </div></nav></div> 1827 1828 </div><div class="cf-secondary-items-container"><div class="cf-social-icons-container"> 1829 <div class="cf-social-icons-wrapper"><div class="cf-social-icons__item"> 1830 <a class="cf-social-icons__link" href="https://www.facebook.com/RespectedRoots/" aria-describedby="a11y-external-message"><svg class="icon icon-facebook" aria-hidden="true" focusable="false" role="presentation" viewB
1830ox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"> 1831<path fill-rule="evenodd" clip-rule="evenodd" d="M0 18.1005C0 27.0495 6.4995 34.491 15 36V22.9995H10.5V18H15V13.9995C15 9.4995 17.8995 7.0005 22.0005 7.0005C23.2995 7.0005 24.7005 7.2 25.9995 7.3995V12H23.7C21.4995 12 21 13.0995 21 14.5005V18H25.8L25.0005 22.9995H21V36C29.5005 34.491 36 27.051 36 18.1005C36 8.145 27.9 0 18 0C8.1 0 0 8.145 0 18.1005Z" fill="currentColor"/> 1832</svg> 1833<span class="icon__fallback-text">Facebook</span> 1834 </a> 1835 </div><div class="cf-social-icons__item"> 1836 <a class="cf-social-icons__link" href="https://www.instagram.com/respectedroots/" aria-describedby="a11y-external-message"><svg class="icon icon-instagram" aria-hidden="true" focusable="false" role="presentation" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"> 1837 <path d="M17.9952 11.9974C14.69 11.9974 11.9927 14.6948 11.9927 18C11.9927 21.3053 14.69 24.0025 17.9952 24.0025C21.3003 24.0025 23.9976 21.3053 23.9976 18C23.9976 14.6948 21.3003 11.9974 17.9952 11.9974ZM35.9981 18C35.9981 15.5143 36.0206 13.0512 35.8809 10.57C35.7413 7.68804 35.084 5.1303 32.9765 3.02287C30.8646 0.910953 28.3115 0.258013 25.4295 0.118418C22.9439 -0.0211758 20.4809 0.0013394 17.9997 0.0013394C15.5141 0.0013394 13.0509 -0.0211758 10.5698 0.118418C7.68789 0.258013 5.13021 0.915457 3.02283 3.02287C0.910937 5.13482 0.258008 7.68804 0.118416 10.57C-0.0211755 13.0557 0.00133938 15.5189 0.00133938 18C0.00133938 20.4811 -0.0211755 22.9488 0.118416 25.43C0.258008 28.3119 0.915439 30.8697 3.02283 32.9771C5.13471 35.0891 7.68789 35.742 10.5698 35.8817C13.0554 36.0212 15.5186 35.9986 17.9997 35.9986C20.4854 35.9986 22.9484 36.0212 25.4295 35.8817C28.3115 35.742 30.8691 35.0845 32.9765 32.9771C35.0885 30.8652 35.7413 28.3119 35.8809 25.43C36.0251 22.9488 35.9981 20.4856 35.9981 18ZM17.9952 27.2358C12.8843 27.2358 8.75959 23.111 8.75959 18C8.75959 12.889 12.8843 8.76426 17.9952 8.76426C23.106 8.76426 27.2307 12.889 27.2307 18C27.2307 23.111 23.106 27.2358 17.9952 27.2358ZM27.609 10.543C26.4158 10.543 25.452 9.57932 25.452 8.38601C25.452 7.1927 26.4158 6.22905 27.609 6.22905C28.8023 6.22905 29.7659 7.1927 29.7659 8.38601C29.7663 8.66936 29.7107 8.95001 29.6025 9.21186C29.4942 9.47371 29.3354 9.71163 29.135 9.912C28.9346 10.1124 28.6967 10.2712 28.4348 10.3795C28.173 10.4878 27.8924 10.5433 27.609 10.543Z" fill="currentColor"/> 1838</svg> 1839<span class="icon__fallback-text">Instagram</span> 1840 </a> 1841 </div></div> 1842 </div></div></div> 1843 </div> 1844 <div 1845 class="cf-footer-content-container" 1846 > 1847 <div 1848 class="cf-fcc-wrapper" 1849 > 1850 <div 1851 class="cf-fcc-item" 1852 > 1853 <div class="cf-fcc-item-content"><div class="cf-fcc-copyright">©2026 <a href="/" title="">RESPECTED ROOTS</a></div> 1854 </div> 1855 </div><div 1856 class="cf-fcc-item" 1857 > 1858 <div class="cf-fcc-item-content cf-fcc-additional-text"> 1859 <p>Atlanta, Georgia</p> 1860 </div> 1861 </div><div class="cf-fcc-item"> 1862 <div 1863 class="cf-payment-methods-container"" 1864 > 1865 <div class="cf-payment-methods-wrapper"> 1866<div class="cf-payment-method"> 1867 <svg class="cf-payment-method-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/>
1867</svg> 1868 1869 </div><div class="cf-payment-method"> 1870 <svg class="cf-payment-method-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-blik"><title id="pi-blik">BLIK</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="url(#pi-blik-paint0_linear)"/><path d="M30.343 17.155l-2.785-3.639 2.563-3.236h-2.185l-2.456 3.138V6.78h-1.848v10.375h1.848v-3.532l2.456 3.532h2.407zM18.613 6.78h-1.848v10.366h1.848V6.78zm3.433 3.508h-1.848v6.867h1.848v-6.867z" fill="#fff"/><path d="M13.849 9.573a1.651 1.651 0 100-3.302 1.651 1.651 0 000 3.302z" fill="url(#pi-blik-paint1_radial)"/><path d="M12.041 10.206c-.574 0-1.138.144-1.642.419V6.82H8.534v6.9a3.516 3.516 0 103.507-3.515zm0 5.175a1.643 1.643 0 110-3.286 1.643 1.643 0 010 3.286z" fill="#fff"/><defs><radialGradient id="pi-blik-paint1_radial" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12.51 6.18) scale(5.41297)"><stop stop-color="red"/><stop offset=".49" stop-color="#E83E49"/><stop offset="1" stop-color="#F0F"/></radialGradient><linearGradient id="pi-blik-paint0_linear" x1="19" y1="4.977" x2="19" y2="55.605" gradientUnits="userSpaceOnUse"><stop/><stop offset=".732" stop-color="#fff"/><stop offset="1" stop-color="#fff"/></linearGradient></defs></svg> 1871 </div><div class="cf-payment-method"> 1872 <svg class="cf-payment-method-icon" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg> 1873 </div><div class="cf-payment-method"> 1874 <svg class="cf-payment-method-icon" viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg> 1875 </div><div class="cf-payment-method"> 1876 <svg class="cf-payment-method-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-eps"> <title id="pi-eps">EPS</title> <path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" opacity=".07"/> <path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#fff"/> <path fill="#71706f" d="M27.745 12.32h-2.322a.465.465 0 01-.468-.464c0-.258.21-.484.468-.484h3.535V9.628h-3.535c-1.233 0-2.237 1.006-2.237 2.236s1.004 2.237 2.237 2.237h2.29c.259 0 .469.205.469.462 0 .258-.21.448-.468.448h-4.912c-.417.796-.822 1.478-1.645 1.82h6.588c1.213-.018 2.205-1.045 2.205-2.265 0-1.22-.992-2.23-2.205-2.247z"/> <path fill="#71706f" d="M18.845 9.628c-1.968 0-3.571 1.612-3.571 3.594V20.697h1.782V16.83h1.785c1.968 0 3.565-1.634 3.565-3.615 0-1.98-1.593-3.587-3.561-3.587zm0 5.383h-1.79v-1.796c0-1.003.8-1.82
18761.79-1.82s1.796.817 1.796 1.82a1.79 1.79 0 01-1.796 1.796z"/> <path fill="#c8036f" d="M9.634 16.83c-1.685 0-3.101-1.2-3.484-2.768 0 0-.111-.519-.111-.86 0-.342.105-.865.105-.865a3.594 3.594 0 013.482-2.73c1.978 0 3.6 1.608 3.6 3.586v.87H7.973c.31.607.938.948 1.662.948h4.724l.006-5.13c0-.764-.625-1.39-1.39-1.39H6.278c-.764 0-1.39.607-1.39 1.371v6.696c0 .765.626 1.41 1.39 1.41h6.696c.686 0 1.259-.493 1.37-1.138h-4.71z"/> <path fill="#c8036f" d="M9.626 11.31c-.72 0-1.348.44-1.66 1.01h3.32c-.312-.57-.939-1.01-1.66-1.01zM12.659 6.314c0-1.635-1.359-2.96-3.034-2.96-1.647 0-2.987 1.282-3.031 2.879v.91c0 .106.086.21.195.21h1.116c.11 0 .205-.104.205-.21v-.83c0-.815.68-1.48 1.516-1.48.837 0 1.516.665 1.516 1.48v.83c0 .106.089.21.198.21h1.116c.109 0 .202-.104.202-.21v-.83z"/> <g> <path fill="#71706f" d="M20.843 19.142l-.16.914c-.082.462-.384.673-.794.673-.347 0-.616-.226-.538-.672l.161-.914h.249l-.161.913c-.05.285.078.447.32.447.249 0 .462-.148.513-.446l.161-.915h.25zm-.977-.285c0 .076.059.112.121.112.079 0 .164-.057.164-.162 0-.074-.05-.112-.114-.112-.08 0-.17.052-.17.162zm.538-.003c0 .079.06.114.126.114.07 0 .161-.056.161-.159 0-.074-.054-.114-.114-.114-.08 0-.173.052-.173.16zM21.445 19.142l-.112.632a.57.57 0 01.423-.199c.278 0 .47.163.47.465 0 .428-.297.686-.678.686-.148 0-.274-.055-.35-.194l-.042.165h-.218l.276-1.554h.23zm-.175 1.066c-.01.183.11.302.282.302a.444.444 0 00.441-.423c.01-.186-.111-.296-.28-.296a.45.45 0 00-.443.417zM22.68 20.242c-.01.151.11.275.311.275.112 0 .26-.044.34-.12l.126.145a.782.782 0 01-.508.188c-.319 0-.505-.19-.505-.482 0-.388.305-.677.695-.677.356 0 .558.216.437.67h-.896zm.708-.19c.018-.19-.094-.267-.28-.267-.168 0-.323.078-.39.267h.67zM24.193 19.597l-.012.146a.414.414 0 01.357-.17c.107 0 .204.039.255.095l-.139.201a.244.244 0 00-.183-.067.346.346 0 00-.352.3l-.106.595h-.23l.195-1.1h.215zM25.905 19.597l.116.87.422-.87h.257l-.578 1.1h-.27l-.11-.725-.178.36-.192.365h-.27l-.194-1.1h.26l.114.87.424-.87h.199zM26.997 20.242c-.01.151.11.275.311.275.112 0 .26-.044.34-.12l.126.145a.782.782 0 01-.508.188c-.319 0-.505-.19-.505-.482 0-.388.305-.677.695-.677.356 0 .558.216.437.67h-.896zm.708-.19c.018-.19-.094-.267-.28-.267-.168 0-.323.078-.39.267h.67zM28.525 19.597l-.194 1.1H28.1l.195-1.1h.23zm-.204-.3c0 .08.059.12.121.12.09 0 .173-.059.173-.168a.113.113 0 00-.117-.117c-.082 0-.177.054-.177.166zM29.55 19.87c-.072-.081-.164-.104-.274-.104-.152 0-.26.052-.26.148 0 .08.088.114.218.126.201.017.459.085.405.37-.038.205-.244.326-.53.326-.18 0-.353-.04-.47-.204l.151-.163c.083.114.229.161.358.164.11 0 .24-.04.26-.144.02-.098-.067-.136-.228-.152-.188-.018-.394-.087-.394-.296 0-.276.298-.372.522-.372.17 0 .295.038.399.148l-.157.152zM30.278 19.597l-.105.592c-.034.189.051.319.244.319.181 0 .336-.15.367-.334l.101-.576h.231l-.195 1.099h-.208l.015-.16a.573.573 0 01-.412.182c-.271 0-.432-.194-.374-.528l.105-.593h.231zM32.13 20.697l.105-.589c.033-.19-.032-.317-.242-.317-.184 0-.339.148-.37.33l-.1.576h-.232l.195-1.1h.21l-.015.16a.583.583 0 01.403-.176c.27 0 .444.187.384.525l-.106.59h-.233zM32.912 20.848c-.016.152.1.213.296.213.17 0 .354-.095.396-.337l.034-.189c-.1.142-.285.197-.421.197-.283 0-.48-.168-.48-.473 0-.434.323-.685.688-.685.155 0 .294.073.343.199l.038-.176h.224l-.193 1.132c-.071.42-.383.55-.668.55-.34 0-.528-.165-.481-.43h.224zm.065-.633c0 .188.123.302.3.302.477 0 .605-.733.128-.733a.42.42 0 00-.428.43z"/></g></svg> 1877 </div><div class="cf-payment-method"> 1878 <svg class="cf-payment-method-icon" width="38" height="24" role="img" aria-labelledby="pi-jcb" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg"><title id="pi-jcb">JCB</title><g fill="none" fill-rule="evenodd"><g fill-rule="nonzero"><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/></g><path d="M11.5 5H15v11.5a2.5 2.5 0 0 1-2.5 2.5H9V7.5A2.5 2.5 0 0 1 11.5 5z" fill="#006EBC"/><path d="M18.5 5H22v11.5a2.5 2.5 0 0 1-2.5 2.5H16V7.5A2.5 2.5 0 0 1 18.5 5z" fill="#F00036"/><path d="M25.5 5H29v11.5a2.5 2.5 0 0 1-2.5 2.5H23V7.5A2.5 2.5 0 0 1 25.5 5z" fill="#2AB419"/>
1878<path d="M10.755 14.5c-1.06 0-2.122-.304-2.656-.987l.78-.676c.068 1.133 3.545 1.24 3.545-.19V9.5h1.802v3.147c0 .728-.574 1.322-1.573 1.632-.466.144-1.365.221-1.898.221zm8.116 0c-.674 0-1.388-.107-1.965-.366-.948-.425-1.312-1.206-1.3-2.199.012-1.014.436-1.782 1.468-2.165 1.319-.49 3.343-.261 3.926.27v.972c-.572-.521-1.958-.898-2.919-.46-.494.226-.737.917-.744 1.448-.006.56.245 1.252.744 1.497.953.467 2.39.04 2.919-.441v1.01c-.358.255-1.253.434-2.129.434zm8.679-2.587c.37-.235.582-.567.582-1.005 0-.438-.116-.687-.348-.939-.206-.207-.58-.469-1.238-.469H23v5h3.546c.696 0 1.097-.23 1.315-.415.283-.25.426-.53.426-.96 0-.431-.155-.908-.737-1.212zm-1.906-.281h-1.428v-1.444h1.495c.956 0 .944 1.444-.067 1.444zm.288 2.157h-1.716v-1.513h1.716c.986 0 1.083 1.513 0 1.513z" fill="#FFF" fill-rule="nonzero"/></g></svg> 1879 </div><div class="cf-payment-method"> 1880 <svg class="cf-payment-method-icon" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-maestro"><title id="pi-maestro">Maestro</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><circle fill="#EB001B" cx="15" cy="12" r="7"/><circle fill="#00A2E5" cx="23" cy="12" r="7"/><path fill="#7375CF" d="M22 12c0-2.4-1.2-4.5-3-5.7-1.8 1.3-3 3.4-3 5.7s1.2 4.5 3 5.7c1.8-1.2 3-3.3 3-5.7z"/></svg> 1881 </div><div class="cf-payment-method"> 1882 <svg class="cf-payment-method-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg> 1883 1884 </div><div class="cf-payment-method"> 1885 <svg class="cf-payment-method-icon" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-mb" xmlns="http://www.w3.org/2000/svg"><title id="pi-mb">Multibanco</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M18.72 17.266h5.859c1.337 0 1.35-1.421 1.214-2.122-.075-.472-.876-.465-.965 0v.547c0 .25-.204.454-.455.455H13.144a.458.458 0 01-.456-.455v-.547c-.088-.465-.89-.472-.963 0-.137.701-.124 2.122 1.214 2.122h5.781zM14.58 3.649h9.032c.634 0 1.153.55 1.153 1.221v.584a.56.56 0 01-1.114.006v-.318a.372.372 0 00-.372-.371h-9.05a.372.372 0 00-.372.371v.312c0 .821-1.065.815-1.065.018v-.601c.003-.671.522-1.222 1.156-1.222z" fill="#3d73b9" fill-rule="evenodd"/><path d="M24.538 10.357a1.788 1.788 0 011.057 1.6c0 .984-.858 1.788-1.907 1.788h-2.943a.488.488 0 01-.5-.464V7.68a.493.493 0 01.492-.49h2.45c1.44-.004 2.343 1.553 1.626 2.801a1.855 1.855 0 01-.275.366m-2.195-.454h.933v-.011a.89.89 0 00.754-.878.89.89 0 00-.888-.888h-1.881v4.646h2.384a.92.92 0 100-1.835h-1.302a.517.517 0 010-1.032" fill="#1d1d1b" fill-rule="evenodd"/>
1885<path d="M14.953 18.986c0-.123.13-.199.236-.137.05.028.08.08.08.137v.851a.71.71 0 01-.708.709.71.71 0 01-.708-.708v-.851a.159.159 0 01.226-.156.155.155 0 01.088.156v.851a.397.397 0 00.395.393.395.395 0 00.394-.394zM16.447 20.23a.159.159 0 010 .317h-.44a.591.591 0 01-.591-.592v-.969c0-.122.13-.197.235-.136.05.027.08.08.08.136v.968c0 .152.124.277.277.277h.439zM19.778 13.187a.59.59 0 11-1.173.123l-.486-4.45-1.711 4.353v.053a.58.58 0 01-.148.168l-.009.007a.487.487 0 01-.102.073l-.011.005-.01.007H16.07a.608.608 0 01-.174.032h-.042a.593.593 0 01-.193-.04h-.05l-.01-.006-.009-.005h-.005a.538.538 0 01-.093-.062l-.02-.017-.014-.015-.036-.009-.017-.02a.66.66 0 01-.063-.093v-.006l-.005-.008-.006-.01v-.044L13.591 8.86l-.484 4.45a.59.59 0 11-1.174-.123l.572-5.248a.98.98 0 01.844-.862h.03c.051-.003.1-.003.15 0a.97.97 0 01.865.617l1.462 3.696 1.459-3.708a.97.97 0 01.866-.617.939.939 0 01.15 0h.03a.978.978 0 01.844.866zM13.792 20.371a.157.157 0 01-.209.176.16.16 0 01-.105-.139l-.134-1.136-.482 1.115a.158.158 0 01-.207.083.152.152 0 01-.082-.083l-.482-1.115-.136 1.136a.157.157 0 11-.312-.037l.158-1.319a.257.257 0 01.139-.196l.031-.015h.012a.273.273 0 01.298.097l.019.029c.002.007.005.012.009.019l.409.947.408-.956a.257.257 0 01.185-.149.793.793 0 01.048-.007h.048a.265.265 0 01.196.126.154.154 0 01.021.045.16.16 0 01.01.031v.02zM17.135 20.389a.158.158 0 01-.317 0v-1.246h-.449a.158.158 0 01-.136-.237.154.154 0 01.136-.079h1.214c.121 0 .197.132.137.237a.163.163 0 01-.137.079h-.448zM18.119 20.389a.157.157 0 01-.236.136.154.154 0 01-.08-.136v-1.403c0-.123.131-.199.237-.137a.16.16 0 01.079.137zM21.352 20.371a.158.158 0 01-.227.153.164.164 0 01-.086-.115l-.056-.446h-.542a.159.159 0 01-.155-.226.157.157 0 01.155-.089h.507l-.014-.116v-.012c-.004-.026-.012-.053-.019-.081a.383.383 0 00-.033-.081.356.356 0 00-.318-.213.307.307 0 00-.15.035.443.443 0 00-.22.352l-.099.877a.156.156 0 01-.249.109.154.154 0 01-.063-.142l.099-.878a.754.754 0 01.389-.598.668.668 0 01.293-.07.667.667 0 01.6.389.822.822 0 01.081.262.033.033 0 010 .014zM21.834 20.389a.158.158 0 11-.314 0v-1.3a.131.131 0 010-.028.152.152 0 01.012-.051l.012-.028a.23.23 0 01.124-.103l.022-.005H21.748a.219.219 0 01.166.086l.837 1.07v-1.044a.157.157 0 11.315 0v1.3a.222.222 0 01-.115.193c-.006.005-.013.007-.019.01l-.013.006a.228.228 0 01-.17-.009l-.019-.011a.157.157 0 01-.032-.024c-.007-.006-.013-.014-.021-.02l-.004-.007-.839-1.075zM24.298 20.23a.159.159 0 010 .317h-.464a.622.622 0 01-.622-.621v-.475a.625.625 0 01.622-.622h.464c.122 0 .198.132.137.238a.163.163 0 01-.137.078h-.464a.308.308 0 00-.218.093.298.298 0 00-.093.216v.474c0 .17.138.308.308.308h.465zM25.211 19.142a.432.432 0 00-.299.118.394.394 0 00-.121.28v.294a.39.39 0 00.12.279.434.434 0 00.299.118.432.432 0 00.299-.118.389.389 0 00.122-.279v-.294a.394.394 0 00-.122-.28.437.437 0 00-.299-.118m0-.315a.742.742 0 01.517.206.701.701 0 01.217.506v.294a.696.696 0 01-.217.505.743.743 0 01-.517.207.74.74 0 01-.516-.207.702.702 0 01-.218-.505v-.294a.706.706 0 01.218-.506.74.74 0 01.516-.206zM18.565 19.143v1.087h.61a.197.197 0 00.145-.332l-.006-.006a.199.199 0 00-.139-.059h-.21a.158.158 0 01-.137-.236.157.157 0 01.137-.078h.071a.2.2 0 00.119-.057.185.185 0 00-.13-.318h-.46zm-.315.534v-.686c0-.021.003-.042.012-.061a.172.172 0 01.037-.055.154.154 0 01.103-.045h.618c.278 0 .503.226.503.502a.506.506 0 01-.077.268c.033.02.064.043.093.07l.009.012a.51.51 0 01.142.353.515.515 0 01-.513.512h-.77a.157.157 0 01-.157-.158z" fill="#1d1d1b"/></svg> 1886 1887 </div><div class="cf-payment-method"> 1888 <svg class="cf-payment-method-icon" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-mobilepay"><title id="pi-mobilepay">MobilePay</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill-rule="evenodd" clip-rule="evenodd" d="M20.05 15.296s2.53-.771 4.282-.776c2.896-.007 4.857 1.15 4.857 1.15V10.06s-1.97-1.02-4.453-1.09c-2.481-.068-4.687 1.012-4.687 1.012v5.313z" fill="#5A78FF"/><path fill-rule="evenodd" clip-rule="evenodd" d="M17.308 9.19l2.082 4.957V9.396s1.646-.882 3.485-1.13c1.84-.249 4.181.08 4.181.08l-1.133-2.707s-2.461-.159-4.69.794c-2.228.952-3.925 2.756-3.925 2.756z" fill="#5A78FF"/><path d="M21.428 5.676l-.82-1.99a1.818 1.818 0 00-2.37-.996l-5.663 2.334a1.818 1.818 0 00-.98 2.376l5.46 13.247a1.818 1.818 0 002.37.995l5.662-2.334a1.817 1.817 0 00.98-2.376l-.677-1.642s-.462-.027-.676-.033c-.226-.006-.644-.001-.644-.001l.88 2.136a.606.606 0 01-.326.793l-5.663 2.333a.606.606 0 01-.79-.331L12.711 6.94a.606.606 0 01.327-.792L18.7 3.814a.606.606 0 01.79.332l.83 2.011s.383-.187.59-.27c.206-.082.518-.211.518-.211z" fill="#5A78FF"/></svg> 1889 </div><div class="cf-payment-method"> 1890 <svg class="cf-payment-method-icon" width="38" height="24" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2" aria-labelledby="pi-satispay"><title id="pi-satispay">Satispay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3Z" style="fill-opacity:.07;
1890fill-rule:nonzero"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" style="fill:#ef4323;fill-rule:nonzero"/><path d="M673.066 283.461h640.814l1012.66 924.379c50.64 46.22 79.68 112.06 79.68 180.62 0 68.57-29.04 134.4-79.68 180.63l-1012.66 924.37H673.066c-24.632 0-39.66-16.09-45.492-31.15-5.847-15.06-5.605-37.06 12.582-53.68L1724.9 1418.47a40.74 40.74 0 0 0 13.24-30.01c0-11.39-4.83-22.32-13.24-30L640.156 368.289c-18.187-16.609-18.429-38.617-12.582-53.668 5.832-15.062 20.86-31.16 45.492-31.16" style="fill:#fffcf0;fill-rule:nonzero" transform="matrix(.00765 0 0 -.00765 8.716 22.617)"/><path d="m868.125 2030.03-504.973-460.94c-50.636-46.23-79.683-112.06-79.683-180.63 0-68.56 29.047-134.4 79.683-180.62l504.973-460.949L1251.45 1096.8l-286.657 261.66a40.723 40.723 0 0 0-13.242 30 40.723 40.723 0 0 0 13.242 30.01l286.657 261.66-383.325 349.9Zm1148.515 463.43h-515.95l320.89-292.91 227.95 208.08c18.19 16.62 18.44 38.62 12.6 53.68-5.85 15.06-20.86 31.15-45.49 31.15M1821.58 576.379l-320.89-292.918h515.95c24.63 0 39.64 16.098 45.49 31.16 5.84 15.051 5.59 37.059-12.6 53.668l-227.95 208.09Z" style="fill:#fffcf0;fill-rule:nonzero" transform="matrix(.00765 0 0 -.00765 8.716 22.617)"/></svg> 1891 </div><div class="cf-payment-method"> 1892 <svg class="cf-payment-method-icon" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-twint"><title id="pi-twint">Twint</title><path d="M3 0h32a3 3 0 0 1 3 3v17.97a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V3a3 3 0 0 1 3-3z" fill="#000"/><path fill="#fff" d="M11.822 14.477a.49.49 0 0 1-.22.383L7.31 17.337a.49.49 0 0 1-.442 0L2.576 14.86a.49.49 0 0 1-.22-.383V9.522a.49.49 0 0 1 .22-.382l4.292-2.478a.49.49 0 0 1 .442 0l4.291 2.478a.49.49 0 0 1 .221.382v4.955zM35.645 9.88H31.8v.913h1.378v3.923h1.088v-3.923h1.379v-.914.001zm-17.452-.001h-3.845v.913h1.379v3.923h1.088v-3.923h1.378v-.914.001zm11.12-.154c-1.209 0-1.882.771-1.882 1.887v3.103h1.075V11.59c0-.486.289-.86.819-.86s.815.444.815.86v3.127h1.075v-3.103c0-1.116-.696-1.887-1.904-1.887h.002v-.002zm-4.061.154h1.08v4.836h-1.08V9.879zm-3.644 1.915l.036.215 1.009 2.706h.44l1.375-4.837h-1.063l-.655 2.541-.039.272-.053-.272-.875-2.54h-.35l-.876 2.54-.053.272-.039-.272-.654-2.54h-1.064l1.375 4.836h.44l1.01-2.706.036-.215"/><path fill="#ff4800" d="M9.324 12.012l-1.118 1.64-.573-.878.662-.988c.123-.177.385-.66.082-1.321a1.377 1.377 0 0 0-1.248-.796 1.377 1.377 0 0 0-1.247.796 1.27 1.27 0 0 0 .076 1.3l.674.995.495.716.75 1.145a.428.428 0 0 0 .334.19c.2 0 .322-.179.338-.201l1.754-2.597h-.979zm-2.202.042s-.293-.444-.483-.754a.556.556 0 0 1-.072-.275c0-.305.25-.556.555-.556s.556.251.556.556a.556.556 0 0 1-.072.275c-.187.31-.479.754-.479.754h-.005z"/><path fill="#007ce2" d="M6.046 13.6l-1.099-1.544s-.293-.446-.483-.756a.553.553 0 0 1-.074-.276c0-.304.25-.553.553-.553h.004a.582.582 0 0 1 .161.022l.389-.71a1.376 1.376 0 0 0-1.793.681 1.27 1.27 0 0 0 .076 1.301l1.92 2.847c.016.025.139.204.343.204a.427.427 0 0 0 .337-.2l.58-.884-.498-.734-.417.602z"/></svg> 1893 </div><div class="cf-payment-method"> 1894 <svg class="cf-payment-method-icon" viewBox="-36 25 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-unionpay"><title id="pi-unionpay">Union Pay</title><path fill="#005B9A" d="M-36 46.8v.7-.7zM-18.3 25v24h-7.2c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h1.4zm12.6 0c-1.3 0-2.9 1-3.2 2.3l-4.5 19.4c-.3 1.3.5 2.3 1.8 2.3h-4.9V25h10.8z"/><path fill="#E9292D" d="M-19.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3h-8.9c-.8 0-1.5-.6-1.5-1.4v-21c0-.8.7-1.6 1.5-1.6h14.7z"/><path fill="#0E73B9" d="M-5.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3H-26h.5c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h14z"/><path fill="#059DA4" d="M2 26.6v21c0 .8-.6 1.4-1.5 1.4h-12.1c-1.3 0-2.1-1.1-1.8-2.3l4.5-19.4C-8.6 26-7 25-5.7 25H.5c.9 0 1.5.7 1.5 1.6z"/><path fill="#fff" d="M-21.122 38.645h.14c.14 0 .28-.07.28-.14l.42-.63h1.19l-.21.35h1.4l-.21.63h-1.68c-.21.28-.42.42-.7.42h-.84l.21-.63m-.21.91h3.01l-.21.7h-1.19l-.21.7h1.19l-.21.7h-1.19l-.28 1.05c-.07.14 0 .28.28.21h.98l-.21.7h-1.89c-.35 0-.49-.21-.35-.63l.35-1.33h-.77l.21-.7h.77l.21-.7h-.7l.21-.7zm4.83-1.75v.42s.56-.42 1.12-.42h1.96l-.77 2.66c-.07.28-.35.49-.77.49h-2.24l-.49 1.89c0 .07 0 .14.14.14h.42l-.14.56h-1.12c-.42 0-.56-.14-.49-.35l1.47-5.39h.91zm1.68.77h-1.75l-.21.7s.28-.21.77-.21h1.05l.14-.49zm-.63 1.68c.14 0 .21 0 .21-.14l.14-.35h-1.75l-.14.56 1.54-.07zm-1.19.84h.98v.42h.28c.14 0 .21-.07.21-.14l.07-.28h.84l-.14.49c-.07.35-.35.49-.77.56h-.56v.77c0 .14.07.21.35.21h.49l-.14.56h-1.19c-.35 0-.49-.14-.49-.49l.07-2.1zm4.2-2.45l.21-.84h1.19l-.07.28s.56-.28 1.05-.28h1.47l-.21.84h-.21l-1.12 3.85
1894h.21l-.21.77h-.21l-.07.35h-1.19l.07-.35h-2.17l.21-.77h.21l1.12-3.85h-.28m1.26 0l-.28 1.05s.49-.21.91-.28c.07-.35.21-.77.21-.77h-.84zm-.49 1.54l-.28 1.12s.56-.28.98-.28c.14-.42.21-.77.21-.77l-.91-.07zm.21 2.31l.21-.77h-.84l-.21.77h.84zm2.87-4.69h1.12l.07.42c0 .07.07.14.21.14h.21l-.21.7h-.77c-.28 0-.49-.07-.49-.35l-.14-.91zm-.35 1.47h3.57l-.21.77h-1.19l-.21.7h1.12l-.21.77h-1.26l-.28.42h.63l.14.84c0 .07.07.14.21.14h.21l-.21.7h-.7c-.35 0-.56-.07-.56-.35l-.14-.77-.56.84c-.14.21-.35.35-.63.35h-1.05l.21-.7h.35c.14 0 .21-.07.35-.21l.84-1.26h-1.05l.21-.77h1.19l.21-.7h-1.19l.21-.77zm-19.74-5.04c-.14.7-.42 1.19-.91 1.54-.49.35-1.12.56-1.89.56-.7 0-1.26-.21-1.54-.56-.21-.28-.35-.56-.35-.98 0-.14 0-.35.07-.56l.84-3.92h1.19l-.77 3.92v.28c0 .21.07.35.14.49.14.21.35.28.7.28s.7-.07.91-.28c.21-.21.42-.42.49-.77l.77-3.92h1.19l-.84 3.92m1.12-1.54h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35.14.21.21.49.14.91l-.49 2.38h-.91l.42-2.17c.07-.28.07-.49 0-.56-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.63-3.57m9.8 0h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35s.21.49.14.91l-.49 2.38h-.91l.42-2.24c.07-.21 0-.42-.07-.49-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.7-3.57m-5.81 0h.98l-.77 3.5h-.98l.77-3.5m.35-1.33h.98l-.21.84h-.98l.21-.84zm1.4 4.55c-.21-.21-.35-.56-.35-.98v-.21c0-.07 0-.21.07-.28.14-.56.35-1.05.7-1.33.35-.35.84-.49 1.33-.49.42 0 .77.14 1.05.35.21.21.35.56.35.98v.21c0 .07 0 .21-.07.28-.14.56-.35.98-.7 1.33-.35.35-.84.49-1.33.49-.35 0-.7-.14-1.05-.35m1.89-.7c.14-.21.28-.49.35-.84v-.35c0-.21-.07-.35-.14-.49a.635.635 0 0 0-.49-.21c-.28 0-.49.07-.63.28-.14.21-.28.49-.35.84v.28c0 .21.07.35.14.49.14.14.28.21.49.21.28.07.42 0 .63-.21m6.51-4.69h2.52c.49 0 .84.14 1.12.35.28.21.35.56.35.91v.28c0 .07 0 .21-.07.28-.07.49-.35.98-.7 1.26-.42.35-.84.49-1.4.49h-1.4l-.42 2.03h-1.19l1.19-5.6m.56 2.59h1.12c.28 0 .49-.07.7-.21.14-.14.28-.35.35-.63v-.28c0-.21-.07-.35-.21-.42-.14-.07-.35-.14-.7-.14h-.91l-.35 1.68zm8.68 3.71c-.35.77-.7 1.26-.91 1.47-.21.21-.63.7-1.61.7l.07-.63c.84-.28 1.26-1.4 1.54-1.96l-.28-3.78h1.19l.07 2.38.91-2.31h1.05l-2.03 4.13m-2.94-3.85l-.42.28c-.42-.35-.84-.56-1.54-.21-.98.49-1.89 4.13.91 2.94l.14.21h1.12l.7-3.29-.91.07m-.56 1.82c-.21.56-.56.84-.91.77-.28-.14-.35-.63-.21-1.19.21-.56.56-.84.91-.77.28.14.35.63.21 1.19"/></svg> 1895 </div><div class="cf-payment-method"> 1896 <svg class="cf-payment-method-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778
189616.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 1897 1898 </div></div> 1899 </div> 1900 </div></div> 1901 </div> 1902 </div> 1903</div> 1904 1905<style data-shopify> 1906 #shopify-section-sections--27529236939062__footer { 1907 --background: #fff; 1908 --text_color: #181818; 1909 --color-text: var(--text_color); 1910 --color-body-text: var(--text_color); 1911 } 1912</style> 1913 1914 1915</footer> 1916<!-- END sections: footer-group --><div id="slideshow-info" class="visually-hidden" aria-hidden="true">Use left/right arrows to navigate the slideshow or swipe left/right if using a mobile device</div> 1917 1918 <!--
1918<script defer src="//cdn.codeblackbelt.com/js/modules/also-bought/main.min.js?shop=respected-roots.myshopify.com"></script>
1918 --> 1919 1920 </div>
1920<script type="application/json" data-cart-routes> 1921 { 1922 "cartUrl": "/cart", 1923 "cartAddUrl": "/cart/add", 1924 "cartChangeUrl": "/cart/change", 1925 "cartUpdateUrl": "/cart/update" 1926 } 1927 </script>
1927 1928 1929 <ul hidden> 1930 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li> 1931 <li id="a11y-selection-message">Press the space key then arrow keys to make a selection.</li> 1932 </ul> 1933 1934 1935 <!-- **BEGIN** Hextom FSB Integration // Main Include - DO NOT MODIFY --> 1936 <!-- **BEGIN** Hextom FSB Integration // Main - DO NOT MODIFY -->
1937<script type="application/javascript"> 1938 window.hextom_fsb_meta = { 1939 p1: [ 1940 1941 ], 1942 p2: { 1943 1944 }, 1945 p3: [ 1946 1947 ] 1948 }; 1949</script>
1949 1950<!-- **END** Hextom FSB Integration // Main - DO NOT MODIFY --> 1951 <!-- **END** Hextom FSB Integration // Main Include - DO NOT MODIFY --> 1952 <!-- PF EDT START --> 1953
1953<script type='text/javascript'></script>
1953 1954 <!-- PF EDT END --> 1955 1956
1957<script>(()=>{if(window.ZipifyPages??={},!window.ZipifyPages.isGlobalSectionScriptsLoaded)return;window.ZipifyPages.isGlobalSectionScriptsLoaded=!1;"https://cdn03.zipify.com/javascript/fr-page-published-scripts.min.js".split(",").map((i=>i.trim())).forEach((i=>{const e=document.createElement("script");Object.assign(e,{src:i,defer:!0,type:"module"}),document.body.appendChild(e)}))})();</script>
1957<script id="published-popup-template" type="text/template"><form class="zpa-crm-popup-form" id="zpa-crm-form" action="/subscribe" method="post" data-zpa-crm-form><header class="zpa-crm-popup-header"><button class="zpa-popup-btn-close" type="button"aria-label="Close Navigation" data-close-btn><svg class="zpa-popup-btn-close-icon" width="34" height="34" data-name="btn-close"><use href="#btn-close"></use></svg></button></header><div class="zpa-crm-popup-body" data-popup-content></div></form></script>
1957
1957<script id="crm-button-popup" type="text/template">{! if (progress_image_option == 1)!}<div class="zpa-crm-popup-progressbar-wrap"><img class="zpa-crm-popup-img-progress zpa-img-fluid zpa-center-block" src="{!= progress_image.src !}"></div>{! !}<h1 class="zpa-crm-popup-title" style="color:{!= form_name_color !}; font-family:{!= form_name_font_family !}; font-size:{!= form_name_font_size !};">{!= form_name !}</h1><div class="zpa-crm-popup-form-container">{! if (form_image_option == 1) !}<div class="zpa-crm-popup-image-box"><img class="zpa-crm-popup-img-asside zpa-img-fluid zpa-center-block" style="border-radius:{!= form_image_shape !};" src="{!= form_image.src !}"></div>{! !}<div class="zpa-crm-popup-form-box"><div class="zpa-crm-popup-field-wrap">{! if (first_name_option == 1) !}<label class="zpa-crm-popup-field-wrap zpa-crm-popup-field-first-name zpa-text-field zpa-offset-bottom-xs"><input class="zpa-text-field__input" type="text" name="first_name" data-user-fname data-zp-input><span class="zpa-text-field__label">First Name</span></label>{! !}{! if (last_name_option == 1) !}<label class="zpa-crm-popup-field-wrap zpa-crm-popup-field-last-name zpa-text-field zpa-offset-bottom-xs"><input class="zpa-text-field__input" type="text" name="last_name" data-user-lname data-zp-input><span class="zpa-text-field__label">Last Name</span></label>{! !}</div><label class="zpa-text-field"><input class="zpa-text-field__input" type="email" name="email" required data-user-email data-zp-input><span class="zpa-text-field__label">Email Address</span></label>{! if (phone_option == 1) !}<label class="zpa-text-field zpa-crm-popup-field-phone"><input class="zpa-text-field__input" name="phone" type="tel" data-user-phone data-zp-input><span class="zpa-text-field__label">Phone Number</span></label>{! !}</div></div>{! if (gdpr_status != 'disable') !}<div>{! if (gdpr_status == 'enable_with_checkbox') !}<label class="zpa-control zpa-control--top zpa-control-checkbox zpa-offset-bottom-xs hidden" data-gdpr-checkbox-section><input class="zpa-control__field" type="checkbox" name="gdpr" data-gdpr-checkbox><span class="zpa-control__indicator zpa-offset-right-xs"></span><span class="zpa-fsize-xs" data-gdpr-checkbox-text></span></label>{! !}{! if (gdpr_status == 'enable_without_checkbox') !}<p class="zpa-fsize-xs zpa-text-center zpa-offset-top-none zpa-offset-bottom-xs hidden" data-gdpr-message-section></p>{! !}</div>{! !}<button class="zpa-crm-button-checkout zpa-btn-custom" type="submit" style="color:{!= checkout_button_color !}; background-color: {!= checkout_button_background_color !}" data-checkout-btn data-zpa-submit-button>{!= checkout_button_caption !}</button>{! if (comment_text_status == 1) !}<p class="zpa-crm-popup-description" style="color: {!= comment_text_font_color !}" data-comment-text-status>{!= comment_text !}</p>{! !}{! if (banner_image_option == 1)!}<img class="zpa-crm-popup-img-footer zpa-img-fluid zpa-center-block" src="{!= banner_image.src !}">{! !}</script>
1957<div id="shopify-block-AakNoTzR0N0NkN3Z2W__11532412952436166569" class="shopify-block shopify-app-block">
1957<script async src="https://loox.io/widget/E1WOTCaB0_/loox.1593630631827.js?shop=respected-roots.myshopify.com"></script>
1957 1958 1959 1960 <!-- __LXV: 1791319932252;__LXR: https://loox.io;__LXC: E1WOTCaB0_; -->
1960<script>var loox_global_hash = '1791319932252'; 1961var loox_bundle_reviews_enabled = false;</script>
1961<style>.loox-reviews-default { max-width: 1200px; margin: 0 auto; }.loox-rating .loox-icon { color:#D4af37; } 1962:root { --lxs-rating-icon-color: #D4af37; }</style> 1963 1964 1965 1966 1967 1968 1969 1970</div><div id="shopify-block-AWlIvdkFVaWsydStBQ__4804304946286255945" class="shopify-block shopify-app-block"> 1971 1972
1972<script> 1973 const cookieBarMetaFields = {"shopId":"VrvyO33Ba39SWmnKMOtC","settings":{"theme":"light_theme","message":"We and our partners, including Shopify, use cookies and other technologies to personalize your experience, show you ads, and perform analytics, and we will not use cookies or other technologies for these purposes unless you accept them.","showPrivacyPolicy":true,"googlePrivacyLink":"https://business.safety.google/privacy/","privacyLink":"/policies/privacy-policy","privacyLinkText":"Privacy Policy","googlePrivacyPolicy":false,"googlePrivacyText":"Google policy","agreeButtonText":"Accept","denyButtonText":"Reject","showOnCountry":"all","displayType":"full_bar","desktopFloatCardPosition":"bottom_left","desktopPosition":"bottom","mobilePositions":"bottom","themeName":"Light theme","textFont":"Noto+Sans","showIcon":true,"customCss":"","removeBranding":true,"specificRegions":{"gdpr":false,"pipeda":false,"ccpa":false,"lgpd":false,"appi":false},"specificCountries":["DZA","AGO","BEN","BWA","IOT","BFA","BDI","CPV","CMR","CAF","TCD","COM","COG","COD","CIV","DJI","EGY","GNQ","ERI","SWZ","ETH","ATF","GAB","GMB","GHA","GIN","GNB","KEN","LSO","LBR","LBY","MDG","MWI","MLI","MRT","MUS","MYT","MAR","MOZ","NAM","NER","NGA","REU","RWA","STP","SEN","SYC","SLE","SOM","ZAF","SSD","SHN","SDN","TZA","TGO","TAA","TUN","UGA","ESH","ZMB","ZWE","AFG","ARM","AZE","BHR","BGD","BTN","BRN","KHM","CHN","GEO","HKG","IND","IDN","IRQ","ISR","JPN","JOR","KAZ","KWT","KGZ","LAO","LBN","MAC","MYS","MDV","MNG","MMR","NPL","OMN","PAK","PSE","PHL","QAT","SAU","SGP","KOR","LKA","TWN","TJK","THA","TLS","TUR","TKM","ARE","UZB","VNM","YEM","ALA","ALB","AND","AUT","BLR","BEL","BIH","BGR","HRV","CYP","CZE","DNK","EST","FRO","FIN","FRA","DEU","GIB","GRC","GGY","HUN","ISL","IRL","IMN","ITA","JEY","UNK","LVA","LIE","LTU","LUX","MLT","MDA","MCO","MNE","NLD","MKD","NOR","POL","PRT","ROU","RUS","SMR","SRB","SVK","SVN","ESP","SJM","SWE","CHE","UKR","GBR","VAT","AIA","ATG","ABW","BHS","BRB","BLZ","BMU","BES","VGB","CAN","CYM","CRI","CUW","DMA","DOM","SLV","GRL","GRD","GLP","GTM","HTI","HND","JAM","MTQ","MEX","MSR","NIC","PAN","PRI","SXM","KNA","LCA","SPM","VCT","TTO","TCA","Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","Washington DC","West Virginia","Wisconsin","Wyoming","VIR","AUS","CXR","CCK","COK","FJI","PYF","GUM","HMD","KIR","MHL","FSM","NRU","NCL","NZL","NIU","NFK","MNP","PLW","PNG","PCN","WSM","SLB","ARG","BOL","BRA","CHL","COL","ECU","FLK","GUF","GUY","PRY","PER","SGS","SUR","URY","VEN"],"specificUsCountries":null,"specificEuCountries":[],"customPrivacyLink":"","icon":"cookie_bar_icon_1","customIcon":false,"customIconUrl":"","textAlignment":"left","fontSize":13,"displayAfter":"0","optionPolicyLink":"auto","bannerType":"accept-or-decline","showReOpenButton":false,"reOpenPosition":"bottom-right","displayButtonAs":"icon","iconReOpen":"image-icon-1","isRevertPreferences":true,"textColor":"#000000","denyTextColor":"#000000","privacyLinkColor":"#000000","bgColor":"#F8F8FF","messageColor":"#2C332F","agreeBtnTextColor":"#F8F8F8","agreeBtnBgColor":"#000000","agreeBtnBorder":"#2C332F","iconColor":"#000000","textAvada":"rgba(0, 0, 0, 0.8)","textBtnColor":"#000000","checkoutBannerTitle":"We keep your privacy","notificationAfterConsent":"Privacy updated","visibleAfterConsent":true,"collapsedBannerContent":true,"showCloseIcon":true,"dataSalesCheckboxTitle":"Do not Sell or Share My Personal Information","showAtConsentBanner":true,"showAtPrefPopup":true,"isUseVipTheme":false,"isUseVipLogo":false,"preferencesButtonText":"Preferences","preferencesPopHeaderTitle":"Select type of Cookies you accept using.","preferencesPopHeaderDesc":"","strictCookiesTitle":"Strictly Required","strictCookiesDesc":"Those cookies are required to run our website properly and cannot be switched off.","analyticCookiesTitle":"Analytics","analyticCookiesDesc":"Those cookies help us to understand how visitors interact with websites by collecting and reporting information.","marketingCookiesTitle":"Marketing","marketingCookiesDesc":"These
1973cookies are usually set by our marketing and advertising partners to show you relevant ads.","functionalCookiesTitle":"Functional","functionalCookiesDesc":"Functional cookies enable our website to offer additional functions and personal settings.","acceptSelectedButtonText":"Save consent","acceptAllButtonText":"Accept All","reopenButtonText":"Cookie consent","preferenceStyleCustom":"default","shopId":"VrvyO33Ba39SWmnKMOtC","header":"We keep your privacy","fontStore":[{"label":"Roboto","value":"Roboto"},{"label":"Roomy Wide","value":"Roomy+Wide"},{"label":"SuisseIntl","value":"SuisseIntl"},{"label":"Kanit-Klaviyo-Hosted","value":"Kanit-Klaviyo-Hosted"},{"label":"Poppins-Klaviyo-Hosted","value":"Poppins-Klaviyo-Hosted"}],"tcfSpecialPeriodInfo":"Some purposes and/or special purposes may have different retention periods that are reported next to their descriptions.","illustrations":"Illustrations","cookieDescription":"Description","numberVendor":"{number} vendors","dataTrackingMethod":"Data tracking method","tcfPrivacyText":"Privacy policy","tcfPurposes":"Purposes","tcfAcceptAllButtonText":"Accept all","tcfPrivacyPolicyText":"Privacy policy","tcfDeclineAllButtonText":"Decline all","tcfPartnerText":"{number} partners","tcfGooglePolicyText":"Google policy","maxDurationCookie":"Maximum duration of cookies","tcfThirdPartyVendors":"TCF Third party vendors","tcfVendorTitle":"Vendors","tcfMessage3":"You may modify or withdraw your preferences at any time by clicking the \"Cookies Consent\" button (or Cookies icon) at the bottom of this site. For more details, please refer to our {tcfPrivacyText} and {tcfGooglePolicyText}.","tcfMessage2":"Store and/or access information on a device. Use limited data to select advertising. Use profiles to select personalised advertising. Create profiles for personalised advertising. Use profiles to select personalised content. Create profiles to personalise content. Measure advertising performance. Measure content performance. Understand audiences through statistics or combinations of data from different sources. Develop and improve services. Use limited data to select content. We may also use precise geolocation data and identify devices through scanning.","tcfMessage1":"We and our {partnersText} process data that concerns you. We may process data essential for the proper functioning of the site or for security reasons, classified as Strictly required, which does not require your consent. In addition to this data, we will process personal data (e.g. login-based identifiers, non-precise location, interaction with ads or content) only if you have given your consent. You express your consent by clicking âAcceptâ or manage your preferences by clicking on \"Customize preferences\".","tcfDeviceStorage":"Device storage information:","cookieName":"Cookie name","tcfSpecialPurposes":"Special purposes","tcfCategoryTitle":"Categories","tcfPeriod":"{days} days","tcfDenyButtonText":"Decline","tcfConsent":"Consent","tcfFeatures":"Features","tcfHeader":"We keep your privacy","cookieDuration":"Duration","tcfPreferencesButtonText":"Customize preferences","tcfDataRetention":"Data retention period:","dataCategories":"Data categories","tcfAcceptButtonText":"Accept","deviceStorageOverview":"Device Storage Overview","tcfLegIntClaim":"Legitimate interest claim:","vendorText":"vendors","tcfFeaturesAndPurposesTitle":"Features & Purposes","tcfFlexiblePurposes":"Flexible purposes","tcfHeader2":"We and our partners process data to provide:","tcfSpecialFeatureOptins":"Special features","tcfHeader3":"Withdraw consent","lifeTimeCookieRefresh":"Cookie lifetime is being refreshed","tcfPreferencesContent1":"Customize your consent preferences below. Granular consent for Purposes & Features and Vendors is supported.","cookieProvider":"Provider","tcfSaveButtonText":"Save consent","tcfPreferencesContent2":"Most {vendorText} require your explicit consent to process personal data, while some rely on legitimate interest. However, you have the right to object to their use of legitimate interest at anytime.","tcfPreferencesContent3":"The choices you make regarding the purposes and entities listed below are saved in a cookie named âavada-tcfâ in Local Storage and expire after 12 months.","tcfLegIntPurposes":"Legitimate interest","tcfLegitimate":"Legitimate interest","id":"UNqEnyyWBNrFFYyBmM31"},"status":true,"translations":{"id":"v3VJG7dtT9WMivTvkFkM","defaultLanguage":"en","detectMethod":"browser","shopId":"VrvyO33Ba39SWmnKMOtC","createdAt":"2025-08-05T12:22:03.163Z","updatedAt":"2025-08-05T12:22:03.163Z"},"cookies":{"strictly-required":[{"description":"Used in connection with browsing through site.","duration":"-","provider":"Shopify","name":"_Brochure_session"},{"description":"Used in connection with access to admin.","duration":"2y","provider":"Shopify","name":"_ab"},{"description":"Used for managing customer privacy settings.","duration":"1d","provider":"Shopify","name":"_cmp_a"},{"description":"Used in combination with the _secure_account_session_id cookie to track a user's session for new customer accounts","duration":"30d","provider":"Shopify","name":"_customer_account_shop_sessions"},{"description":"Used to track a user's session for new customer accounts","duration":"30d","provider":"Shopify","name":"_secure_account_session_id"},{"description":"Used to track a user's session through the multi-step checkout process and keep their order, payment and shipping details connected.","duration":"24h","provider":"Shopify","name":"_secure_session_id"},{"description":"For shops where pricing currency/country set from GeoIP, that c
1973ookie stores the country we've detected. This cookie helps avoid doing GeoIP lookups after the first request.","duration":"session","provider":"Shopify","name":"_shopify_country"},{"description":"Used for managing customer privacy settings.","duration":"1y","provider":"Shopify","name":"_shopify_m"},{"description":"Used for managing customer privacy settings.","duration":"30min","provider":"Shopify","name":"_shopify_tm"},{"description":"Used for managing customer privacy settings.","duration":"2w","provider":"Shopify","name":"_shopify_tw"},{"description":"Used to facilitate updating customer account information.","duration":"1min","provider":"Shopify","name":"_storefront_u"},{"description":"Used to store a user's preferences if a merchant has set up privacy rules in the visitor's region.","duration":"1y","provider":"Shopify","name":"_tracking_consent"},{"description":"Used in connection with checkout.","duration":"1y","provider":"Shopify","name":"c"},{"description":"Used in connection with checkout.","duration":"20m","provider":"Shopify","name":"card_update_verification_id"},{"description":"Used in connection with shopping cart.","duration":"2w","provider":"Shopify","name":"cart"},{"description":"Set after a checkout is completed to ensure that new carts are in the same currency as the last checkout.","duration":"2w","provider":"Shopify","name":"cart_currency"},{"description":"A hash of the contents of a cart. This is used to verify the integrity of the cart and to ensure performance of some cart operations.","duration":"2w","provider":"Shopify","name":"cart_sig"},{"description":"Used in connection with checkout.","duration":"2w","provider":"Shopify","name":"cart_ts"},{"description":"Used in connection with shopping cart.","duration":"2w","provider":"Shopify","name":"cart_ver"},{"description":"Used in connection with checkout.","duration":"4w","provider":"Shopify","name":"checkout"},{"description":"Used in connection with checkout.","duration":"5m","provider":"Shopify","name":"checkout_prefill"},{"description":"Used in connection with checkout.","duration":"1y","provider":"Shopify","name":"checkout_queue_checkout_token"},{"description":"Used in connection with checkout.","duration":"1y","provider":"Shopify","name":"checkout_queue_token"},{"description":"Used in connection with checkout.","duration":"3w","provider":"Shopify","name":"checkout_session_lookup"},{"description":"Used in connection with checkout.","duration":"3w","provider":"Shopify","name":"checkout_session_token"},{"description":"Used in connection with checkout.","duration":"3w","provider":"Shopify","name":"checkout_session_token_<<token>>"},{"description":"Used in connection with checkout.","duration":"1y","provider":"Shopify","name":"checkout_token"},{"description":"Used in connection with checkout.","duration":"3d","provider":"Shopify","name":"checkout_worker_session"},{"description":"Used to ensure our systems are working correctly","duration":"1m","provider":"Shopify","name":"cookietest"},{"description":"Used in connection with new customer accounts","duration":"1y","provider":"Shopify","name":"customer_account_locale"},{"description":"Used in connection with customer authentication","duration":"20m","provider":"Shopify","name":"customer_account_new_login"},{"description":"Used in connection with customer authentication","duration":"7d","provider":"Shopify","name":"customer_account_preview"},{"description":"Used in connection with checkout.","duration":"1h","provider":"Shopify","name":"customer_payment_method"},{"description":"Used in connection with checkout.","duration":"20m","provider":"Shopify","name":"customer_shop_pay_agreement"},{"description":"Used in connection with checkout.","duration":"session","provider":"Shopify","name":"discount_code"},{"description":"Used in connection with checkout.","duration":"30min","provider":"Shopify","name":"dynamic_checkout_shown_on_cart"},{"description":"Used in connection with checkout.","duration":"session","provider":"Shopify","name":"hide_shopify_pay_for_checkout"},{"description":"Used in connection with customer authentication","duration":"24h","provider":"Shopify","name":"identity-state"},{"description":"Used in connection with customer authentication","duration":"24h","provider":"Shopify","name":"identity-state-<<token>>"},{"description":"Used in connection with customer authentication","duration":"12w","provider":"Shopify","name":"identity_customer_account_number"},{"description":"Used in connection with buyer localization.","duration":"2w","provider":"Shopify","name":"keep_alive"},{"description":"Used in connection with checkout.","duration":"2w","provider":"Shopify","name":"localization"},{"description":"Used in connection with customer authentication","duration":"5m","provider":"Shopify","name":"login_with_
1973shop_finalize"},{"description":"Used in connection with merchant login.","duration":"2y","provider":"Shopify","name":"master_device_id"},{"description":"Used in connection with order status page.","duration":"3w","provider":"Shopify","name":"order"},{"description":"Used in connection with checkout.","duration":"20m","provider":"Shopify","name":"pay_update_intent_id"},{"description":"Used in connection with the theme editor","duration":"session","provider":"Shopify","name":"preview_theme"},{"description":"Used in connection with checkout.","duration":"1y","provider":"Shopify","name":"previous_step"},{"description":"Used in connection with checkout.","duration":"5m","provider":"Shopify","name":"profile_preview_token"},{"description":"Used in connection with checkout.","duration":"1y","provider":"Shopify","name":"remember_me"},{"description":"Used to identify a user after they sign into a shop as a customer so they do not need to log in again.","duration":"1y","provider":"Shopify","name":"secure_customer_sig"},{"description":"Used in connection with checkout.","duration":"1y","provider":"Shopify","name":"shop_pay_accelerated"},{"description":"Used in connection with the theme editor","duration":"16h","provider":"Shopify","name":"shopify-editor-unconfirmed-settings"},{"description":"Used in connection with checkout.","duration":"1y","provider":"Shopify","name":"shopify_pay"},{"description":"Used in connection with checkout.","duration":"1 hour, 3w or 1y depending on value","provider":"Shopify","name":"shopify_pay_redirect"},{"description":"Used in connection with Shop login.","duration":"1y","provider":"Shopify","name":"signed_in"},{"description":"Used in combination with mobile apps to provide custom checkout behavior, when viewing a store from within a compatible mobile app.","duration":"session","provider":"Shopify","name":"source_name"},{"description":"Stores a digest of the storefront password, allowing merchants to preview their storefront while it's password protected.","duration":"2y","provider":"Shopify","name":"storefront_digest"},{"description":"Used in connection with checkout.","duration":"1y","provider":"Shopify","name":"tracked_start_checkout"},{"description":"Used in connection with Shop login.","duration":"1y","provider":"Shopify","name":"user"},{"description":"Used to ensure our systems are working correctly.","duration":"session","provider":"Shopify","name":"wpm-test-cookie"}],"reporting-analytics":[{"description":"ID used to identify users","duration":"2 years","provider":"Google","name":"_ga"},{"description":"ID used to identify users for 24 hours after last activity","duration":"24 hours","provider":"Google","name":"_gid"},{"description":"Track landing pages.","duration":"2w","provider":"Shopify","name":"_landing_page"},{"description":"Track landing pages.","duration":"2w","provider":"Shopify","name":"_orig_referrer"},{"description":"Shopify analytics.","duration":"30min","provider":"Shopify","name":"_s"},{"description":"Shopify analytics.","duration":"session","provider":"Shopify","name":"_shopify_d"},{"description":"Shopify analytics.","duration":"30min","provider":"Shopify","name":"_shopify_fs"},{"description":"Shopify and Google Analytics.","duration":"session","provider":"Shopify","name":"_shopify_ga"},{"description":"Shopify analytics.","duration":"30min","provider":"Shopify","name":"_shopify_s"},{"description":"Shopify analytics relating to marketing & referrals.","duration":"30min","provider":"Shopify","name":"_shopify_sa_p"},{"description":"Shopify analytics relating to marketing & referrals.","duration":"30min","provider":"Shopify","name":"_shopify_sa_t"},{"description":"Shopify analytics.","duration":"1y","provider":"Shopify","name":"_shopify_y"},{"description":"Shopify analytics.","duration":"1y","provider":"Shopify","name":"_y"},{"description":"Shopify analytics.","duration":"session","provider":"Shopify","name":"customer_auth_provider"},{"description":"Shopify analytics.","duration":"session","provider":"Shopify","name":"customer_auth_session_created_at"}
1973,{"description":"Shopify analytics.","duration":"10min","provider":"Shopify","name":"unique_interaction_id"}],"marketing-retargeting":[{"description":"When Klaviyoâs JavaScript is enabled, the __kla_id cookie can track and identify site visitors through an auto-generated ID. This cookie can temporarily hold personally identifiable information. Once a visitor is identified, the cookie can pass their data into Klaviyo.","duration":"2 years","provider":"Klaviyo","name":"__kla_id"},{"description":"Used by Facebook to deliver a series of advertisement products such as real time bidding from third party advertisers","duration":"4 months","provider":"Facebook","name":"_fbp"},{"description":"Used by Google AdSense for experimenting with advertisement efficiency across websites using their services.","duration":"3 months","provider":"Google","name":"_gcl_au"},{"description":"Tracking cookie used by TikTok to identify a visitor","duration":"13 months","provider":"TikTok","name":"_ttp"}],"functional":[{"description":"Cloudflare's bot products identify and mitigate automated traffic to protect your site from bad bots. Cloudflare places the __cf_bm cookie on End User devices that access Customer sites that are protected by Bot Management or Bot Fight Mode. The __cf_bm cookie is necessary for the proper functioning of these bot solutions.","duration":"session","provider":"Cloudflare","name":"__cf_bm"},{"description":"This cookie is set by DoubleClick (which is owned by Google) to determine if the website visitor's browser supports cookies.","duration":"1 year","provider":"Google","name":"test_cookie"}]},"integration":{"shopify":{"connected":true},"globalPrivacyControl":{"enabled":false},"googleConsentMode":{"enabled":false},"metaPixel":{"enabled":false,"script":""},"tiktokPixel":{"enabled":false,"script":""},"microsoftConsentMode":{"enabled":false},"pinterestConsent":{"enabled":false,"script":""},"klaviyo":{"enabled":false},"headlessCommerce":{"enabled":false},"shopId":"VrvyO33Ba39SWmnKMOtC","createdAt":"2025-08-05T12:54:47.447Z","tcf":{"enabled":true},"updatedAt":"2025-08-07T20:11:21.140Z","id":"Dnw8Nt3od1ivvo4T1zty"}} || {}; 1974 const resetMetafields = false || {}; 1975 const {integration: avadaCbIntegration} = cookieBarMetaFields; 1976 const shopNameCookie = 'RESPECTED ROOTS'; 1977 window.AVADA_COOKIES_BAR = { 1978 shopName: shopNameCookie, 1979 shopId: cookieBarMetaFields.shopId, 1980 status: cookieBarMetaFields.status, 1981 ...(window.AVADA_COOKIES_BAR || {}), 1982 ...cookieBarMetaFields.settings, 1983 translation: cookieBarMetaFields.translations, 1984 cookies: cookieBarMetaFields.cookies, 1985 integration: avadaCbIntegration, 1986 customer: { 1987 id: null, 1988 email: null, 1989 first_name: null, 1990 last_name: null, 1991 phone: null, 1992 emailSignature: null 1993 }, 1994 reset: resetMetafields, 1995 brandData: { 1996 primaryBackground: null, 1997 primaryForeground: null, 1998 secondaryBackground: null, 1999 secondaryForeground: null, 2000 logo: null 2001 } 2002 }; 2003 2004 // Single definition of "a Meta pixel id Avada manages". Kept deliberately 2005 // loose about what follows the id so `fbq('init','123',{em:'...'})` counts â 2006 // an earlier stricter copy required a literal `);` and silently disagreed 2007 // with this one. Mirrors extractKnownVendorPixelIds in 2008 // packages/functions/src/helpers/utils/autoBlocker.js. 2009 function extractMetaPixelIds(code) { 2010 return Array.from( 2011 String(code || '').matchAll(/fbq\(\s*['"]init['"]\s*,\s*['"](\d+)['"]/g), 2012 match => match[1] 2013 ); 2014 } 2015 2016 if (avadaCbIntegration?.pinterestConsent?.enabled && typeof pintrk === 'function') { 2017 console.log('Disabled pinterest consent'); 2018 pintrk('setconsent', false); 2019 } 2020 2021 (() => { 2022 const getCookie= (name) => { 2023 const nameEQ = name + '='; 2024 const ca = document.cookie.split(';'); 2025 for (let i = 0; i < ca.length; i++) { 2026 let c = ca[i]; 2027 while (c.charAt(0) === ' ') c = c.substring(1, c.length); 2028 if (c.indexOf(nameEQ) === 0) return JSON.parse(decodeURIComponent(c.substring(nameEQ.length, c.length))); 2029 } 2030 return {}; 2031 }
2032 window.AVADA_COOKIE_CONSENT = getCookie('avada_cookie_consent'); 2033 })(); 2034 2035 try { 2036 // Ownership is "the merchant handed us a tag id AND the integration is on". 2037 // The backend decides it that way â readVendorScript in autoBlocker.js 2038 // returns '' for a disabled vendor, so a disabled one never reaches the 2039 // denylist. Testing only the script here made the two disagree whenever an 2040 // integration was switched off with its script still saved: the storefront 2041 // published "we own this pixel" while blockedScriptHosts said we did not. 2042 // Nothing acted on the difference, because every use site below also ANDs 2043 // with `enabled` â but the flag is what verification, the e2e suite and CS 2044 // read, so it has to be the same answer. 2045 const metaPixelEnabled = !!avadaCbIntegration?.metaPixel?.enabled; 2046 const metaPixelScript = metaPixelEnabled ? avadaCbIntegration?.metaPixel?.script || '' : ''; 2047 window.__avadaManagesMetaPixel = extractMetaPixelIds(metaPixelScript).length > 0; 2048 window.metaPixelFunc = window.__avadaManagesMetaPixel 2049 ? new Function(metaPixelScript) 2050 : null; 2051 if(window.__avadaManagesMetaPixel && avadaCbIntegration?.metaPixel?.enabled && window.AVADA_COOKIE_CONSENT.analytics && window.AVADA_COOKIE_CONSENT.marketing) { 2052 window.metaPixelFunc(); 2053 } 2054 } catch (e) { 2055 console.error('Something went wrong in Meta Pixel:', e) 2056 } 2057 2058 try { 2059 if(avadaCbIntegration?.pinterestConsent?.enabled && window.AVADA_COOKIE_CONSENT.analytics && window.AVADA_COOKIE_CONSENT.marketing) { 2060 pintrk('setconsent', true); 2061 console.log('Enabled pinterest consent'); 2062 } 2063 } catch (e) { 2064 console.error('Something went wrong in Pinterest integration:', e) 2065 } 2066 2067 try { 2068 const tiktokPixelScript = avadaCbIntegration?.tiktokPixel?.script || ''; 2069 // Same ownership test as Meta: no ttq.load() id means the merchant runs the 2070 // official TikTok sales channel, so the pixel lives in Shopify's Web Pixel 2071 // sandbox and Customer Privacy governs it. Taking over window.ttq there is 2072 // exactly the interference SB-16468 is about. 2073 window.__avadaManagesTiktokPixel = 2074 !!avadaCbIntegration?.tiktokPixel?.enabled && 2075 /ttq\.load\(\s*['"][^'"]+['"]/.test(tiktokPixelScript); 2076 if(avadaCbIntegration?.tiktokPixel?.enabled && window.__avadaManagesTiktokPixel) { 2077 window.tiktokPixelFunc = new Function(tiktokPixelScript); 2078 2079 // Extract pixel IDs from script for loading when theme pixel already exists 2080 const tiktokIdRegex = /ttq\.load\('([^']+)'\)/g; 2081 window._avadaTiktokPixelIds = []; 2082 let tiktokIdMatch; 2083 while ((tiktokIdMatch = tiktokIdRegex.exec(tiktokPixelScript)) !== null) { 2084 window._avadaTiktokPixelIds.push(tiktokIdMatch[1]); 2085 } 2086 2087 const manageTikTokConsent = () => { 2088 if (!window.ttq) return; 2089 try { 2090 const hasConsent = window.AVADA_COOKIE_CONSENT?.analytics && window.AVADA_COOKIE_CONSENT?.marketing; 2091 if (hasConsent) { 2092 if (typeof window.ttq.grantConsent === 'function') window.ttq.grantConsent(); 2093 window._tiktokConsentRevoked = false; 2094 } else { 2095 if (typeof window.ttq.holdConsent === 'function') window.ttq.holdConsent(); 2096 if (typeof window.ttq.revokeConsent === 'function') window.ttq.revokeConsent(); 2097 window._tiktokConsentRevoked = true; 2098 } 2099 } catch (e) { 2100 console.error('Error managing TikTok consent:', e); 2101 } 2102 }; 2103 2104 if (window.ttq) { 2105 // Theme pixel already loaded ttq - load app pixel IDs that aren't loaded yet 2106 let hasNewPixels = false; 2107 (window._avadaTiktokPixelIds || []).forEach(function(id) { 2108 if (!window.ttq._i || !window.ttq._i[id]) { 2109 window.ttq.load(id); 2110 hasNewPixels = true; 2111 } 2112 }); 2113 if (hasNewPixels) window.ttq.page(); 2114 manageTikTokConsent(); 2115 } else { 2116 // Intercept ttq creation to apply consent before SDK processes queued events. 2117 // Self-removes after first interception to avoid conflicts with other scripts. 2118 try { 2119 let _ttqValue = undefined; 2120 Object.defineProperty(window, 'ttq', { 2121 get() { return _ttqValue; }, 2122 set(val) { 2123 _ttqValue = val; 2124 if (val) { 2125 // Restore normal property immediately to prevent conflicts 2126 try { 2127 Object.defineProperty(window, 'ttq', { 2128 value: val, writable: true, configurable: true, enumerable: true 2129 }); 2130 } catch(e) {} 2131 manageTikTokConsent(); 2132 } 2133 }, 2134 configurable: true, 2135 enumerable: true 2136 }); 2137 // Coordination with Avada auto-blocker: if the TikTok sandbox is ever 2138 // removed before ttq initializes, drop the accessor so the property can 2139 // behave normally again (prevents a stranded interceptor). 2140 setTimeout(function () { 2141 if (_ttqValue === undefined) { 2142 try { delete window.ttq; } catch (e) {} 2143 } 2144 }, 10000); 2145 } catch (e) { 2146 // defineProperty failed - fallback to DOMContentLoaded 2147 const onReady = () => manageTikTokConsent(); 2148 if (document.readyState === 'loading') { 2149 document.addEventListener('DOMContentLoaded', onReady, {once: true}); 2150 } else { 2151 setTimeout(onReady, 0); 2152 } 2153 } 2154 } 2155 } 2156 } catch (e) { 2157 console.error('Error handling TikTok Pixel consent:', e); 2158 } 2159 2160 // handle for customer add metaPixel script in theme 2161 try { 2162 if(avadaCbIntegration?.metaPixel?.enabled && window.__avadaManagesMetaPixel && window.fbq) { 2163 window.pixelIds = []; 2164 window.fbq = function () { 2165 console.log('Meta/FB Pixel disabled'); 2166 }; 2167 function savePixelIds() { 2168 const scripts = document.querySelectorAll('script'); 2169 for (let script of scripts) { 2170 const contentScript = script.innerHTML.trim(); 2171 if (contentScript.includes("!function(f,b,e,v,n,t,s)")) { 2172 window.pixelIds.push(...extractMetaPixelIds(contentScript)); 2173 } 2174 } 2175 } 2176 savePixelIds(); 2177 } 2178 } catch (e) { 2179 console.error('Something went wrong in Meta Pixel:', e) 2180 } 2181 2182 </script>
2182 2183 2184 2185 2186</div><div id="shopify-block-AcVdWR1d0ZzhmRUg1e__11560147490181472608" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: rivo-init -->
2186<script type="text/javascript" id="rivo-app-embed-init"> 2187 window.Rivo = window.Rivo || {}; 2188 window.Rivo.embedded_version_enabled = true; 2189 window.Rivo.common = window.Rivo.common || {}; 2190 window.Rivo.common.shop = { 2191 permanent_domain: 'respected-roots.myshopify.com', 2192 currency: "USD", 2193 money_format: "${{amount}}", 2194 id: 10788786 2195 }; 2196 2197 window.Rivo.common.template = 'search'; 2198 window.Rivo.common.full_template = 'search'; 2199 window.Rivo.common.cart = {}; 2200 window.Rivo.common.translations = {"loyalty_landing_page":{"en":{"loyalty_page_rewards_title":"Rewards","loyalty_page_rewards_subtitle":"You have the following rewards ready to use","loyalty_page_banner_earn_button":"Earn cash back","loyalty_page_rewards_no_rewards":"No rewards yet","loyalty_page_ways_to_earn_title":"Score Credit, Stay Groomed","loyalty_page_banner_login_button":"Sign In","loyalty_page_upload_receipt_help":"Upload a receipt within the last 30 days to earn points. Please lay the receipt on a flat surface and take a photo from a close distance.","loyalty_page_banner_redeem_button":"Redeem Rewards","loyalty_page_subscribe_email_help":"Subscribe to our email list and earn points","loyalty_page_ways_to_redeem_title":"Redeem Like a King","loyalty_page_customer_birthday_day":"Day","loyalty_page_upload_receipt_attach":"Attach File","loyalty_page_upload_receipt_button":"Submit Receipt","loyalty_page_ways_to_earn_subtitle":"Simple steps to score serious rewards","loyalty_page_banner_logged_in_title":"Welcome to your rewards journey","loyalty_page_banner_register_button":"Join Now","loyalty_page_explainer_step_1_title":"Sign Up","loyalty_page_explainer_step_2_title":"Earn","loyalty_page_explainer_step_3_title":"Redeem","loyalty_page_subscribe_email_button":"Subscribe","loyalty_page_upload_receipt_no_file":"Please select a file to upload","loyalty_page_upload_receipt_success":"Thanks! Your receipt will be reviewed shortly","loyalty_page_banner_logged_out_title":"Roots Rewards","loyalty_page_banner_login_button_url":"","loyalty_page_customer_birthday_month":"Month","loyalty_page_customer_birthday_title":"Celebrate your birthday","loyalty_page_ways_to_redeem_subtitle":"Use credit to unlock these deals","loyalty_page_explainer_logged_in_title":"Hi \u003cspan rivo-x-data=\"{ username: $store.customer.first_name || 'there' }\" rivo-x-text=\"username\"\u003e\u003c\/span\u003e, you have \u003cstrong\u003e\u003cspan rivo-x-data rivo-x-text=\"$store.customer.pretty_credits_tally\"\u003e\u003c\/span\u003e\u003c\/strong\u003e Credit","loyalty_page_explainer_step_1_subtitle":"Create an account and get in the game","loyalty_page_explainer_step_2_subtitle":"The more you shop, the more you score","loyalty_page_explainer_step_3_subtitle":"Use credits for sweet savings","loyalty_page_vip_tier_1_threshold_text":"","loyalty_page_vip_tier_2_threshold_text":"","loyalty_page_vip_tier_3_threshold_text":"","loyalty_page_vip_tier_4_threshold_text":null,"loyalty_page_vip_tier_5_threshold_text":null,"loyalty_page_vip_tier_6_threshold_text":null,"loyalty_page_vip_tiers_logged_in_title":"Your VIP Journey","loyalty_page_activity_table_header_date":"Date","loyalty_page_activity_table_no_activity":"No activity yet","loyalty_page_banner_register_button_url":"","loyalty_page_explainer_logged_out_title":"How it Works","loyalty_page_vip_tiers_logged_out_title":"Your VIP Journey","loyalty_page_activity_expiration_warning":"Expiration Date: \u003cspan rivo-x-data rivo-x-text=\"$store.customer.points_expiry\"\u003e\u003c\/span\u003e","loyalty_page_customer_birthday_save_date":"Save Date","loyalty_page_activity_table_header_action":"Activity","loyalty_page_banner_logged_in_description":"Shop like you always do, just get rewarded for it now!","loyalty_page_explainer_logged_in_subtitle":"Here's an overview of your current credit balance and recent activity","loyalty_page_vip_tiers_logged_in_subtitle":"You are on the \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.current_vip_tier_info?.tier?.name\"\u003e\u003c\/span\u003e tier","loyalty_page_banner_logged_out_description":"Sign up for free, stack credits like a king, and get rewarded just for staying fly.","loyalty_page_vip_tiers_logged_out_subtitle":"Unlock elite perks at every tier.","loyalty_page_activity_table_header_earnings":"Credit","loyalty_page_vip_tiers_progress_column_title":"Tier Status","loyalty_page_vip_tiers_progress_column_subtitle":"Earn \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.current_vip_tier_info?.next_tier?.formatted_to_spend_or_earn\"\u003e\u003c\/span\u003e credit to reach the \u
2200003cspan rivo-x-data rivo-x-text=\"$store.customer?.current_vip_tier_info?.next_tier?.name\"\u003e\u003c\/span\u003e tier.","loyalty_page_activity_table_header_expiration":"Expires At","loyalty_page_general_redeem":"Redeem","loyalty_page_general_enter_valid_date":"Please enter a valid date","loyalty_page_general_points":"Points","loyalty_page_general_activate_store_credit":"Activate Store Credit","loyalty_page_general_redeemed_store_credit":"Redeemed Store Credit","loyalty_page_general_spent":"Spent","loyalty_page_upload_challenge_photo_button":"Submit Challenge Photo","loyalty_page_upload_challenge_photo_attach":"Attach File","loyalty_page_upload_challenge_photo_no_file":"Please select a file to upload","loyalty_page_upload_challenge_photo_success":"Thanks! Your challenge photo will be reviewed shortly","loyalty_page_upload_challenge_photo_help":"Upload a challenge photo to earn.","acct_creation_title":"Join and Earn Rewards","acct_creation_desc":"Get rewarded for being an awesome customer","acct_creation_sign_in":"Already a member?","acct_creation_btn":"Start Earning","visitor_point_desc":"Earn points and turn these into rewards!","vip_tiers_table_perk_translations":[]}},"general":{"en":{"vip_perks":"Perks","vip_tiers":"VIP Tiers","general_by":"by","vip_reward":"VIP reward","vip_status":"VIP Status","general_day":"Day","social_like":"Like","social_share":"Share","vip_benefits":"Benefits","general_error":"Hmm, something went wrong, please try again shortly","general_month":"Month","general_point":"Credit","general_spend":"you spend","general_spent":"Spent","social_follow":"Follow","tos_expiry_at":"Reward expires on {{expiry_date}}.","vip_tier_desc":"Gain access to exclusive rewards.","general_credit":"Credit","general_points":"Credit","general_redeem":"Redeem","general_reward":"reward","vip_tier_spend":"Spend {{amount}}","general_credits":"Credits","general_go_back":"Go back","general_pending":"Pending","general_rewards":"Rewards","general_sign_in":"Sign in","general_sign_up":"Sign up","referrals_title":"Referral Program","review_complete":"Post a product review","survey_complete":"Complete a Survey","general_approved":"Approved","general_share_on":"Share on","general_you_have":"You have","tos_free_product":"Reward only applies to {{product_name}}","general_cancelled":"Cancelled","general_edit_date":"Edit Date","general_save_date":"Save date","general_show_more":"Show more","general_signed_up":"signed up","referral_complete":"Complete a Referral","tos_expiry_months":"Expires {{expiry_months}} month(s) after being redeemed.","vip_tier_achieved":"Unlocked {{tier_name}}","vip_tier_added_to":"Added to {{tier_name}}","general_apply_code":"Apply code","general_share_link":"Share your Personal Link","referrals_email_to":"To","vip_achieved_until":"Achieved until","vip_tier_to_unlock":"to unlock","general_reward_show":"Show","referrals_completed":"referrals completed so far","vip_tier_dropped_to":"Fell to {{tier_name}}","vip_tier_on_highest":"You did it! You're on the highest tier ð","general_balance_text":"store credit","general_past_rewards":"Past rewards","general_product_page":"product page","general_ways_to_earn":"Ways to earn","general_your_rewards":"Your rewards","referrals_email_send":"Send email","referrals_get_reward":"Get your","referrals_share_link":"Share this link with a friend for them to claim the reward","social_facebook_like":"Like page on Facebook","social_tiktok_follow":"Follow on TikTok","social_twitter_share":"Share link on X","tos_min_order_amount":"Applies to all orders over {{min_order_amount}}.","vip_tier_earn_points":"Earn {{credits}} Credits","vip_tier_retained_to":"Kept {{tier_name}}","vip_tier_vip_history":"VIP History","general_cancel_points":"Credits canceled","general_no_points_yet":"No Credits yet","general_refund_points":"Credits refunded","general_sms_subscribe":"Subscribe to SMS","social_facebook_share":"Share link on Facebook","social_twitter_follow":"Follow on X","vip_reward_earned_via":"Earned via {{vip_tier_name}} tier","vip_you_have_achieved":"You've achieved","wallet_pass_subscribe":"Add Wallet Pass","general_cancel_credits":"Credits canceled","general_no_rewards_yet":"No rewards yet","general_place_an_order":"Place an order","general_points_expired":"Points expired","general_refund_credits":"Credits refunded","general_sms_subscribed":"Subscribed to SMS","general_upload_receipt":"Submit a Receipt","general_ways_to_redeem":"Ways to redeem","referrals_claim_reward":"Claim your gift","referrals_code_invalid":"This referral code is invali
2200d","referrals_email_invite":"Refer friends by email","referrals_visitor_desc":"Refer a friend who makes a purchase and both of you will claim rewards.","review_complete_points":"{{credits_amount}} Credits for every review posted","tos_min_order_quantity":"Minimum {{min_order_quantity}} items required in cart.","general_birthday_reward":"Celebrate with a reward","general_challenge_photo":"Submit a Challenge Photo","general_credits_expired":"Credits expired","general_discount_amount":"credits for ${{discount_amount}} off","general_email_subscribe":"Subscribe to Emails","general_expiration_date":"Expiration Date","general_no_activity_yet":"No activity yet","general_placed_an_order":"Placed an order","general_points_activity":"Credits History","general_share_via_email":"Share via Email","general_upcoming_reward":"Upcoming reward","general_you_have_points":"You have {{credits}} credits","membership_order_placed":"Credits earned from placing an order","referrals_email_message":"Message","referrals_invalid_email":"Please enter a valid email address","referrals_referral_code":"Your referral link to share","social_instagram_follow":"Follow on Instagram","tos_apply_to_collection":"Only for products in specific collections.","tos_max_shipping_amount":"Maximum shipping amount of {{max_shipping_amount}}.","vip_tier_no_vip_history":"No VIP membership history yet","general_email_subscribed":"Subscribed to Emails","general_enter_valid_date":"Please enter a valid date","general_points_for_every":"Credots for every","general_uploaded_receipt":"Submitted a Receipt","general_vip_tier_upgrade":"VIP Tier Upgrade Credit","referral_complete_points":"{{credits_amount}} Points for every referral completed","referrals_call_to_action":"Refer friends and earn","referrals_claimed_reward":"Here's your","referrals_create_account":"Create an Account","referrals_status_blocked":"blocked","referrals_status_pending":"pending","referrals_your_referrals":"Your referrals","general_click_to_see_more":"View My Rewards Account","general_product_purchased":"Product Purchased","general_redeemed_a_reward":"Redeemed a Reward","general_use_discount_code":"Use this discount code on your next order!","gift_card_sync_past_tense":"Gift card sync","referrals_already_visited":"Already visited this page","referrals_general_invalid":"Sorry, looks like this referral is invalid","referrals_referred_reward":"They will get","referrals_referrer_reward":"You will get","general_celebrate_birthday":"Celebrate a birthday","general_how_to_earn_points":"How do I earn Credits?","referrals_no_referrals_yet":"No referrals yet","referrals_program_disabled":"This referral program is disabled","referrals_status_completed":"completed","review_complete_past_tense":"Posted a product review","survey_complete_past_tense":"Completed a Survey","general_add_product_to_cart":"Add product to cart","general_balance_text_plural":"Credits","general_fallback_first_name":"there","general_not_enough_earnings":"Not enough earnings to redeem","general_were_awarded_points":"were awarded credits","activity_table_header_status":"Status","general_manual_points_adjust":"manual credits adjustment","referral_complete_past_tense":"Completed a Referral","referrals_similar_ip_invalid":"We are unable to process referrals within the same IP address","store_credit_sync_past_tense":"Store credit sync","vip_tier_orders_placed_count":"Place {{amount}} Orders","general_activate_store_credit":"Activate Store Credit","general_celebrate_anniversary":"Celebrate Loyalty Anniversary","general_punch_card_checkpoint":"Punch Card Checkpoint","general_redeemed_store_credit":"Redeemed Store Credit","checkout_ui_redeem_points_desc":"You have {{credits}} credits! Redeem for discounts on this order.","general_discount_amount_coupon":"${{discount_amount}} off coupon","general_have_not_earned_points":"You haven't earned any Credots yet.","membership_page_benefits_title":"Membership Benefits","referrals_email_to_placeholder":"Add a comma-separated list of emails","referrals_name_must_be_present":"Please enter your first name","checkout_ui_redeem_points_login":"Log in","checkout_ui_redeem_points_title":"Redeem your credit","general_add_points_default_note":"Credit granted by credit import","general_celebrate_your_birthday":"Let's celebrate your birthday! ð Please give us 30 days notice - otherwise, you'll have to wait another year.","general_please_choose_an_option":"Please choose an option from the","general_redeem_error_max_points":"Exceeded maximum points to spend","general_redeem_error_min_points":"Did not meet minimum points to redeem","referrals_email_already_claimed":"This email has already been claimed","referrals_general_invalid_title":"We're Sorry","social_facebook_like_past_tense":"Liked a page on Facebook","social_tiktok_follow_past_tense":"Followed on TikTok","
2200social_twitter_share_past_tense":"Shared a link on X","social_facebook_share_past_tense":"Shared a link on Facebook","social_twitter_follow_past_tense":"Followed on X","wallet_pass_subscribe_past_tense":"Added Wallet Pass","general_points_for_judgeme_review":"JudgeMe review","membership_page_benefits_subtitle":"Here's an overview of your membership benefits","referrals_account_already_claimed":"You already have an account. You can invite your friends to win rewards!","vip_tier_products_purchased_count":"Purchase {{amount}} Specific Products","checkout_ui_activate_account_title":"Activate Your Account","checkout_ui_redeemed_rewards_title":"Your rewards","general_reset_removal_default_note":"Existing credit removed for credit reset from import","referrals_your_referrals_show_here":"Your referrals will show here.","social_instagram_follow_past_tense":"Followed on Instagram","checkout_ui_points_estimation_title":"Complete this purchase to earn up to {{points}} credit","checkout_ui_refer_friends_login_url":"account\/login?return_url=\/account\u0026email={{customer_email}}","general_loyalty_program_and_rewards":"Loyalty Program \u0026 Rewards","general_vip_tier_upgrade_past_tense":"{{tier_name}} Entry Credit","general_your_rewards_will_show_here":"Your rewards will show here.","membership_page_banner_login_button":"Sign In","membership_page_banner_login_prefix":"Already a member?","membership_tier_unlocked_past_tense":"Membership Signup","referrals_email_message_placeholder":"Customize your referral message. The referral link will be automatically added.","checkout_ui_redeem_points_login_desc":"to view your credit balance and discover rewards available for redemption.","checkout_ui_redeem_store_credit_desc":"You have ${{store_credit}} in store credit.","vip_tier_product_ids_purchased_count":"Purchase {{amount}} Specific Products","checkout_ui_cashback_estimation_title":"Complete this purchase to earn up to {{cashback}} in CashBack","checkout_ui_install_wallet_pass_title":"Install our Wallet Pass for Exclusive Offers","checkout_ui_points_estimation_subtext":"Credit can be redeemed for rewards on future purchases. Actual credit awarded may differ if other discounts are applied.","checkout_ui_redeem_store_credit_title":"Apply your store credit","checkout_ui_refer_friends_login_title":"Claim your credit from this purchase!","general_celebrate_birthday_past_tense":"Celebrated a birthday","general_reset_new_balance_default_note":"Credit reset to new balance by credit import","general_use_discount_code_free_product":"Use this discount code on your next order to get a free product!","membership_page_explainer_step_1_title":"Signup","membership_page_explainer_step_2_title":"Earn","membership_page_explainer_step_3_title":"Redeem","membership_recurring_signup_past_tense":"Recurring Credit","referrals_advocate_stats_email_claimed":"Claimed","checkout_ui_activate_account_button_url":"\/account\/login?return_url=\/account","checkout_ui_cashback_estimation_subtext":"CashBack can be redeemed for rewards on future purchases. Actual CashBack awarded may differ if other discounts are applied.","membership_page_banner_login_button_url":"\/account\/login?return_url=\/account","checkout_ui_activate_account_button_text":"Activate Account","checkout_ui_activate_account_description":"Activate your loyalty account to start earning points, tracking rewards, and accessing exclusive member benefits.","checkout_ui_redeem_points_alternate_name":"credit","checkout_ui_redeemed_rewards_description":"Your rewards available to use","checkout_ui_redeemed_rewards_login_title":"Log in","checkout_ui_refer_friends_referral_title":"Refer a Friend","general_celebrate_anniversary_past_tense":"Celebrated Loyalty Anniversary","referrals_advocate_stats_email_completed":"Completed","referrals_create_account_to_claim_coupon":"Create an Account to claim your coupon","checkout_ui_redeemed_rewards_select_label":"Select a Reward","membership_page_banner_add_to_cart_button":"Join Now","membership_page_explainer_step_1_subtitle":"Create an account on our store","membership_page_explainer_step_2_subtitle":"Earn credit for shopping","membership_page_explainer_step_3_subtitle":"Redeem credit for discounts","checkout_ui_install_wallet_pass_button_url":"\/#rivo","general_converted_to_credits_external_note":"Converted your points balance to store credit","general_converted_to_credits_internal_note":"Converted from points to store credit","membership_page_activity_table_header_date":"Date","membership_page_activity_table_no_activity":"No activity yet","membership_page_banner_is_subscriber_title":"Welcome to our Membership Program","membership_page_status_is_subscriber_title":"You have an Active Membership","referrals_advocate_stats_email_link_clicks":"Link Clicks","checkout_ui_install_wallet_pass_button_text":"Install Wallet Pass","checkout_ui_install_wallet_pass_description":"Unlock exclusive offers and rewards with our Wallet Pass.","checkout_ui_login_notification_banner_title":"Have loyalty discounts or rewards that you'd like to apply?","checkout_ui_refer_friends_login_description":"Log in or register to activate your loyalty account, redeem your credit and access your special offers.","membership_page_activity_expiration_warning":"Expiration Date: \u003cspan rivo-x-data rivo-x-text=\"$store.customer.points_expiry\"\u003e\u003c\/span\u003e","membership_page_banner_non_subscriber_title":"Join our Membership Program","membership_recurring_anniversary_past_tense":"Membership Anniversary Credits","checkout_ui_redeem_incremental_earnings_desc":"You have ${{balance_to_currency}} in credit, would you like to redeem?","checkout_ui_refer_friends_login_button_title":"Activate my account","general_order_placed_store_credit_multiplier":"Earn cash back for every $1 spent","membership_page_activity_table_header_action":"Activity","referrals_advocate_stats_email_unique_visits":"Unique visits from your link","referrals_email_your_friend_has_referred_you":"Your friend has referred you to {{shop_name}}","checkout_ui_login_notification_banner_subtext":"to login to your account","checkout_ui_redeem_incremental_earnings_login":"Log in","checkout_ui_redeem_incremental_earnings_title":"Respected Roots Credit","checkout_ui_redeem_points_select_custom_label":"{{reward_name}} orders ${{min_order_amount}}+ for {{points_amount}} credits","checkout_ui_refer_friends_referral_button_url":"","membership_page_banner_add_to_cart_button_url":"\/membership-add-to-cart","membership_page_cancel_membership_modal_title":"Are you sure you want to cancel your membership?","membership_page_explainer_is_subscriber_title":"Hi \u003cspan rivo-x-data=\"{ username: $store.customer.first_name || 'there' }\" rivo-x-text=\"username\"\u003e\u003c\/span\u003e, you have \u003cstrong\u003e\u003cspan rivo-x-data rivo-x-text=\"$store.customer.pretty_credits_tally\"\u003e\u003c\/span\u003e\u003c\/strong\u003e in Store Credit","membership_page_status_is_subscriber_subtitle":"You will be charged next on \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.membership?.pretty_next_charge_date\"\u003e\u003c\/span\u003e","referrals_email_checkout_out_and_claim_reward":"Check out the referral link and claim a free reward.","checkout_ui_redeem_points_select_discount_desc":"Please select a discount","checkout_ui_redeemed_rewards_login_description":"to view your rewards available to use.","checkout_ui_refer_friends_referral_description":"Share your referral link with friends and earn rewards each time a new friend makes a purchase.","membership_page_activity_table_header_earnings":"Credit","membership_page_cancel_membership_modal_button":"Yes, Cancel my Membership","membership_page_explainer_non_subscriber_title":"How it Works","checkout_ui_login_notification_banner_link_text":"Click here","checkout_ui_redeem_points_select_discount_label":"Select Discount","checkout_ui_redeemed_rewards_select_description":"Please select a reward","checkout_ui_refer_friends_referral_button_title":"Refer a Friend","membership_page_status_update_payment_link_text":"Update Payment Method","referrals_advocate_stats_email_no_referrals_yet":"No referrals yet.","membership_page_banner_is_subscriber_description":"You'v unlocked exclusive savings, rewards \u0026 VIP access.","membership_page_explainer_is_subscriber_subtitle":"Here's an overview of your current credits balance and recent activity","checkout_ui_redeem_store_credit_apply_button_text":"Apply Store Credit","membership_page_banner_non_subscriber_description":"Unlock exclusive savings, rewards \u0026 VIP access.","membership_page_update_payment_method_modal_title":"Update Payment Method","checkout_ui_redeem_incremental_earnings_login_desc":"to view your balance.","membership_page_status_cancel_membership_link_text":"Cancel","membership_page_status_rejoin_membership_link_text":"Rejoin Membership","checkout_ui_refer_friends_referral_text_field_label":"Your referral link","membership_page_cancel_membership_modal_description":"We'd hate to see you leave. Your membership includes exclusive benef
2200its that you'll lose access to immediately.","checkout_ui_redeem_incremental_earnings_desc_applied":"You're using {{applied_balance}} of your available {{balance}} in store credit","membership_page_status_pending_cancellation_subtitle":"Your membership will be cancelled on \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.membership?.pretty_queued_for_cancellation_at\"\u003e\u003c\/span\u003e","checkout_ui_cashback_estimation_title_usd_to_currency":"Complete this purchase to earn up to {{cashback_usd_to_currency}} in CashBack","referrals_advocate_stats_email_friends_order_verified":"Friends order was verified","referrals_advocate_stats_email_referral_link_to_share":"Here's your referral link to share with friends.","referrals_advocate_stats_email_friend_claimed_discount":"Friend claimed discount","checkout_ui_cashback_estimation_subtext_usd_to_currency":"CashBack can be redeemed for rewards on future purchases. Actual CashBack awarded may differ if other discounts are applied.","checkout_ui_post_purchase_account_activation_button_url":"\/account\/login?return_url=\/account","membership_page_update_payment_method_modal_description":"We've sent you an email to update your payment method. Please check your inbox and follow the instructions.","checkout_ui_redeem_incremental_earnings_form_input_label":"Credit amount","checkout_ui_redeem_incremental_discount_code_change_error":"{{code}} couldn't be used with your existing discounts.","checkout_ui_redeem_incremental_earnings_form_submit_button":"Apply ${{points_to_currency}} off","checkout_ui_redeem_points_not_enough_points_banner_message":"You're {{points_amount}} credit away from a reward","checkout_ui_redeem_incremental_earnings_desc_usd_to_currency":"You have {{formatted_credits_tally_usd_to_currency}}) in store credit to redeem (subject to FX rates at time of redemption)","checkout_ui_redeem_incremental_earnings_desc_usd_to_currency_applied":"You're using {{applied_balance_to_currency}} of your available {{formatted_credits_tally_usd_to_currency}} in store credit","general_applied_to_subscription_order":"Applied to subscription order","general_cashback_not_earned_subject":"You didn't earn CashBack on this order","general_cashback_not_earned_title":"You didn't earn CashBack on this order","general_cashback_not_earned_subtitle":"This order wasn't eligible for CashBack.","general_drop_points":"Limited time bonus points","general_drop_credits":"Limited time bonus credits","general_store_credit_transfer_sent_via_gift_url":"Sent {{amount}} credit via gift URL {{transfer_url}}","general_store_credit_transfer_sent":"Sent {{amount}} credit to {{recipient_email}}","general_store_credit_transfer_received":"Received {{amount}} credit from {{sender_email}}","general_drop_points_expired":"Limited time bonus points expired","general_drop_credits_expired":"Limited time bonus credits expired","general_store_credit_redeemed":"{{store_credit_amount}} in store credit has been added to your account. Apply at checkout.","general_discount_code_applied_to_cart":"Discount applied to your cart","general_apply_code_now":"Apply code now","general_apply_to_subscription":"Apply to subscription","general_or":"OR","general_choose_redemption_destination":"Choose to use it now or on your next subscription order","general_subscription_redemption_applied":"This reward will apply to your next subscription order","activity_expiration_label":"Expires","activity_table_header_expiration":"Expires At","social_provide_instagram_handle":"Share your Instagram handle","social_provide_tiktok_handle":"Share your TikTok handle","social_provide_instagram_handle_past_tense":"Shared your Instagram handle","social_provide_tiktok_handle_past_tense":"Shared your TikTok handle","social_provide_handle_button":"Share handle","social_handle_placeholder":"@username","social_handle_missing":"Please enter your handle","checkout_ui_redeem_points_store_credit_success":"{{store_credit_amount}} in store credit redeemed. Apply to this order from the payment section.","checkout_ui_gift_with_purchase_applied_message":"Free gift applied","checkout_ui_redeem_incremental_earnings_store_credit_success":"{{store_credit_amount}} in store credit redeemed. Apply to this order from the payment section.","membership_page_activity_table_header_expiration":"Expires At"}}}; 2201 window.Rivo.global_config = {"asset_urls":{"loy":{"api_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_rivo_api.js?v=1764090844","lp_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_rivo_lp.js?v=1764090843","lp_css":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_rivo_lp.css?v=1791224028","profile_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_rivo_profile.js?v=1764090842","profile_loyalty_js":null,"profile_css":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_rivo_profile.css?v=1791224029","init_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_loy_init.js?v=1764090841","referrals_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_loy_referrals.js?v=1764090845","referrals_css":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_loy_referrals.css?v=1700287043","widget_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0037\/2110\/1430\/t\/963\/assets\/ba_loy_widget.js?v=1728252181","widget_css":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_loy_widget.css?v=1692840875","page_init_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_loy_page_init.js?v=1711433130","page_widget_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_loy_page_widget.js?v=1711432435","page_widget_css":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_loy_page.css?v=1693059047","page_preview_js":null,"app_proxy_applications_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/app_proxy_application.js?v=1708835151"},"forms":{"init_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_forms_init.js?v=1711433134","widget_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_forms_widget.js?v=1711433135","forms_css":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_forms.css?v=1691714518"},"global":{"helper_js":"https:\/\/cdn.shopify.com\/s\/files\/1\/0194\/1736\/6592\/t\/1\/assets\/ba_tracking.js?v=1764090840"}},"proxy_paths":{"loy":"\/community\/prime","app_metrics":"\/community\/prime\/app_metrics"},"aat":["loy"],"pv":false,"sts":false,"bam":true,"batc":false,"base_money_format":"${{amount}}","points_delimiter":",","online_store_version":2,"loy_js_api_enabled":true,"hide_console_ad":false,"shopify_markets_enabled":false,"google_client_id":"105612801293-i27f7uh4jfd7tajl14hqbqlvd6dr5psc.apps.googleusercontent.com","multipass_v_token":false,"clear_latest_order_cache":false,"shop":{"id":10788786,"name":"RESPECTED ROOTS","domain":"www.respectedroots.com"},"theme_extension_local_assets":false}; 2202 2203 if (!window.Rivo.global_config.theme_extension_local_assets) { 2204 window.Rivo.global_config.asset_urls = { 2205 ...window.Rivo.global_config.asset_urls, 2206 loy: { 2207 api_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_rivo_api.js', 2208 init_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_loy_init.js', 2209 referrals_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_loy_referrals.js', 2210 referrals_css: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_loy_referrals.css', 2211 widget_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_loy_widget.js', 2212 widget_css: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_loy_widget.css', 2213 page_init_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_loy_page_init.js', 2214 page_widget_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_loy_page_widget.js', 2215 page_widget_css: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_loy_page.css', 2216 page_preview_js: "/assets/msg/loy_page_preview.js", 2217 app_proxy_application_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/app_proxy_application.js', 2218 lp_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_rivo_lp.js', 2219 profile_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_rivo_profile.js', 2220 profile_loyalty_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_rivo_profile_loyalty.js' 2221 }, 2222 forms: { 2223 init_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_forms_init.js', 2224 widget_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_forms_widget.js', 2225 forms_css: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_forms.css' 2226 }, 2227 global: { 2228 helper_js: 'https://cdn.shopify.com/extensions/01a10d40-3d79-7bc5-a223-fec3fa0dedc8/rivo-loyalty-rewards-referrals-824/assets/ba_tracking.js' 2229 } 2230 }; 2231 } 2232 2233 2234 2235 window.Rivo.loy_config = {"brand_theme_settings":{"enabled":false,"button_bg":"#20124d","header_bg":"#20124d","desc_color":"#737376","icon_color":"#3a3a3a","link_color":"#20124d","visibility":"both","cards_shape":"rounded","hide_widget":false,"launcher_bg":"#20124d","mobile_icon":"star","mobile_text":"Rewards","title_color":"#212b36","banner_image":"","desktop_icon":"star","desktop_text":"Rewards","inputs_shape":"rounded","primary_font":"Inter","buttons_shape":"rounded","mobile_layout":"icon_with_text","primary_color":"#20124d","desktop_layout":"icon_with_text","launcher_shape":"circle","secondary_font":"Inter","container_shape":"rounded","mobile_placement":"left","button_text_color":"#FFFFFF","desktop_placement":"left","header_text_color":"#FFFFFF","powered_by_hidden":false,"launcher_text_color":"#ffffff","mobile_side_spacing":20,"desktop_side_spacing":20,"panel_order_settings":{"vip":3,"points":1,"referrals":2},"mobile_bottom_spacing":20,"desktop_bottom_spacing":20,"hide_widget_permanently":false,"hide_widget_launcher_on_mobile":false},"launcher_style_settings":{"enabled":false,"button_bg":"#20124d","header_bg":"#20124d","desc_color":"#737376","icon_color":"#3a3a3a","link_color":"#20124d","visibility":"both","cards_shape":"rounded","hide_widget":false,"launcher_bg":"#20124d","mobile_icon":"star","mobile_text":"Rewards","title_color":"#212b36","banner_image":"","desktop_icon":"star","desktop_text":"Rewards","inputs_shape":"rounded","primary_font":"Inter","buttons_shape":"rounded","mobile_layout":"icon_with_text","primary_color":"#20124d","desktop_layout":"icon_with_text","launcher_shape":"circle","secondary_font":"Inter","container_shape":"rounded","mobile_placement":"left","button_text_color":"#FFFFFF","desktop_placement":"left","header_text_color":"#FFFFFF","powered_by_hidden":false,"launcher_text_color":"#ffffff","mobile_side_spacing":20,"desktop_side_spacing":20,"panel_order_settings":{"vip":3,"points":1,"referrals":2},"mobile_bottom_spacing":20,"desktop_bottom_spacing":20,"hide_widget_permanently":false,"hide_widget_launcher_on_mobile":false},"points_program_enabled":true,"referral_program_enabled":true,"membership_program_enabled":true,"vip_program_enabled":true,"vip_progress_block_show_highest_tier":false,"vip_program_tier_type":"amount_spent","vip_program_peri
2235od":"lifetime","floating_widget_settings":{"enabled":false,"button_bg":"#20124d","header_bg":"#20124d","desc_color":"#737376","icon_color":"#3a3a3a","link_color":"#20124d","visibility":"both","cards_shape":"rounded","hide_widget":false,"launcher_bg":"#20124d","mobile_icon":"star","mobile_text":"Rewards","title_color":"#212b36","banner_image":"","desktop_icon":"star","desktop_text":"Rewards","inputs_shape":"rounded","primary_font":"Inter","buttons_shape":"rounded","mobile_layout":"icon_with_text","primary_color":"#20124d","desktop_layout":"icon_with_text","launcher_shape":"circle","secondary_font":"Inter","container_shape":"rounded","mobile_placement":"left","button_text_color":"#FFFFFF","desktop_placement":"left","header_text_color":"#FFFFFF","powered_by_hidden":false,"launcher_text_color":"#ffffff","mobile_side_spacing":20,"desktop_side_spacing":20,"panel_order_settings":{"points":1,"referrals":2,"vip":3},"mobile_bottom_spacing":20,"desktop_bottom_spacing":20,"hide_widget_permanently":false,"hide_widget_launcher_on_mobile":false,"desktop_launcher_icon":null,"mobile_launcher_icon":null},"widget_custom_icons":{"brand_icon":null,"rewards":null,"ways_to_earn":null,"ways_to_redeem":null},"widget_css":"#baLoySectionWrapper .ba-loy-bg-color {\n background: linear-gradient(125deg, hsla(254,62%,19%,1), hsla(254,71%,3%,1));\n}\n\n#baLoySectionWrapper .section-panel-wrapper {\n box-shadow:rgba(0, 0, 0, 0.1) 0px 4px 15px 0px, rgba(0, 0, 0, 0.1) 0px 1px 2px 0px, #20124d 0px 2px 0px 0px inset;\n}\n\n\n\n\n.header-main, .header-secondary, .points-expiry-desc {\n color: #FFFFFF !important;\n}\n.main-default a.sign-in{\n color: #20124d !important;\n}\n\n.section-table-piece-detail-items .li-img path {\n fill: #3a3a3a;\n}\n\n.buttons-icons-detail-image .li-img {\n fill: #3a3a3a;\n}\n\n#baLoySectionWrapper .loy-button-main{\n background: #20124d;\n color: #FFFFFF;\n}\n\n #baLoySectionWrapper .loy-button-main{\n color: #FFFFFF;\n }\n\n #baLoySectionWrapper .main-default, #baLoySectionWrapper div.panel-section .head-title,#baLoySectionWrapper body {\n color: #212b36;\n }\n\n #baLoySectionWrapper .section-panel-wrapper .panel-desc, #baLoySectionWrapper .main-default.sign-in-text{\n color: #737376;\n }\n\n #launcher-wrapper{\n background: #20124d;\n }\n\n#baLoySectionWrapper div.section-bottom{\n display:none;\n}\n\n.ba-loy-namespace .ba-loy-messenger-frame, #launcher-wrapper{\n left: 20px;\n right: auto;\n}\n.ba-loy-namespace .ba-loy-messenger-frame {\n bottom: 90px;\n}\n#launcher-wrapper{\n bottom: 20px;\n}\n\n.launcher-text{\n color: #ffffff !important;\n}\n\n#launcher-wrapper .launcher-desktop { display: block; }\n#launcher-wrapper .launcher-mobile { display: none; }\n\n@media (max-device-width: 851px) and (orientation: landscape), (max-width: 500px) {\n .ba-loy-namespace .ba-loy-messenger-frame{\n height: 100%;\n min-height: 100%;\n bottom: 0;\n right: 0;\n left: 0;\n top: 0;\n width: 100%;\n border-radius: 0 !important;\n }\n #launcher-wrapper.up{\n display: none;\n }\n #launcher-wrapper{\n left: 20px;\n right: auto;\n bottom: 20px;\n }\n #launcher-wrapper .launcher-desktop { display: none; }\n #launcher-wrapper .launcher-mobile { display: block; }\n}\n\n\n\n.ba-loy-circle{border-radius: 30px !important;}\n.ba-loy-rounded{border-radius: 10px !important;}\n.ba-loy-square{border-radius: 0px !important;}\n","domain_name":"loyalty.rivo.io","font_settings":{"primary_font":"Inter","secondary_font":"Inter"},"translations":{"vip_perks":"Perks","vip_tiers":"VIP Tiers","general_by":"by","general_or":"OR","vip_reward":"VIP reward","vip_status":"VIP Status","general_day":"Day","social_like":"Like","social_share":"Share","vip_benefits":"Benefits","general_error":"Hmm, something went wrong, please try again shortly","general_month":"Month","general_point":"Credit","general_spend":"you spend","general_spent":"Spent","social_follow":"Follow","tos_expiry_at":"Reward expires on {{expiry_date}}.","vip_tier_desc":"Gain access to exclusive rewards.","general_credit":"Credit","general_points":"Credit","general_redeem":"Redeem","general_reward":"reward","vip_tier_spend":"Spend {{amount}}","general_credits":"Credits","general_go_back":"Go back","general_pending":"Pending","general_rewards":"Rewards","general_sign_in":"Sign in","general_sign_up":"Sign up","referrals_title":"Referral Program","review_complete":"Post a product review","survey_complete":"Complete a Survey","general_approved":"Approved","general_share_on":"Share on","general_you_have":"You have","tos_free_product":"Reward only applies to {{product_name}}","acct_creation_btn":"Start Earning","general_cancelled":"Cancelled","general_edit_date":"Edit Date","general_save_date":"Save date","general_show_more":"Show more","general_signed_up":"signed up","member_point_desc":"Earn points and turn these into rewards!","referral_complete":"Complete a Referral","tos_expiry_months":"Expires {{expiry_months}} month(s) after being redeemed.","vip_tier_achieved":"Unlocked {{tier_name}}","vip_tier_added_to":"Added to {{tier_name}}","acct_creation_desc":"Get rewarded for being an awesome customer","general_apply_code":"Apply code","general_share_link":"Share your Personal Link","referrals_email_to":"To","vip_achieved_until":"Achieved until","vip_tier_to_unlock":"to unlock","visitor_point_desc":"Earn points and turn these into rewards!","acct_creation_title":"Join and Earn Rewards","general_drop_points":"Limited time bonus points","general_reward_show":"Show","member_header_title":"{points}","member_point_header":"Points","referrals_completed":"referrals completed so far","vip_tier_dropped_to":"Fell to {{tier_name}}","vip_tier_on_highest":"You did it! You're on the highest tier ð","general_balance_text":"store credit","general_drop_credits":"Limited time bonus credits","general_past_rewards":"Past rewards","general_product_page":"product page","general_ways_to_earn":"Ways to earn","general_your_rewards":"Your rewards","referrals_email_send":"Send email","referrals_get_reward":"Get your","referrals_share_link":"Share this link with a friend for them to claim the reward","social_facebook_like"
2235:"Like page on Facebook","social_tiktok_follow":"Follow on TikTok","social_twitter_share":"Share link on X","tos_min_order_amount":"Applies to all orders over {{min_order_amount}}.","vip_tier_earn_points":"Earn {{credits}} Credits","vip_tier_retained_to":"Kept {{tier_name}}","vip_tier_vip_history":"VIP History","visitor_header_title":"Rewards Program","visitor_point_header":"Earn Points","acct_creation_sign_in":"Already a member?","general_cancel_points":"Credits canceled","general_no_points_yet":"No Credits yet","general_refund_points":"Credits refunded","general_sms_subscribe":"Subscribe to SMS","member_header_caption":"Your points","social_facebook_share":"Share link on Facebook","social_handle_missing":"Please enter your handle","social_twitter_follow":"Follow on X","vip_reward_earned_via":"Earned via {{vip_tier_name}} tier","vip_you_have_achieved":"You've achieved","wallet_pass_subscribe":"Add Wallet Pass","general_apply_code_now":"Apply code now","general_cancel_credits":"Credits canceled","general_no_rewards_yet":"No rewards yet","general_place_an_order":"Place an order","general_points_expired":"Points expired","general_refund_credits":"Credits refunded","general_sms_subscribed":"Subscribed to SMS","general_upload_receipt":"Submit a Receipt","general_ways_to_redeem":"Ways to redeem","referrals_claim_reward":"Claim your gift","referrals_code_invalid":"This referral code is invalid","referrals_email_invite":"Refer friends by email","referrals_visitor_desc":"Refer a friend who makes a purchase and both of you will claim rewards.","review_complete_points":"{{credits_amount}} Credits for every review posted","tos_min_order_quantity":"Minimum {{min_order_quantity}} items required in cart.","visitor_header_caption":"Earn points, save, and unlock exclusive perks","general_birthday_reward":"Celebrate with a reward","general_challenge_photo":"Submit a Challenge Photo","general_credits_expired":"Credits expired","general_discount_amount":"credits for ${{discount_amount}} off","general_email_subscribe":"Subscribe to Emails","general_expiration_date":"Expiration Date","general_no_activity_yet":"No activity yet","general_placed_an_order":"Placed an order","general_points_activity":"Credits History","general_share_via_email":"Share via Email","general_upcoming_reward":"Upcoming reward","general_you_have_points":"You have {{credits}} credits","membership_order_placed":"Credits earned from placing an order","referrals_email_message":"Message","referrals_invalid_email":"Please enter a valid email address","referrals_referral_code":"Your referral link to share","social_instagram_follow":"Follow on Instagram","tos_apply_to_collection":"Only for products in specific collections.","tos_max_shipping_amount":"Maximum shipping amount of {{max_shipping_amount}}.","vip_tier_no_vip_history":"No VIP membership history yet","general_email_subscribed":"Subscribed to Emails","general_enter_valid_date":"Please enter a valid date","general_points_for_every":"Credots for every","general_uploaded_receipt":"Submitted a Receipt","general_vip_tier_upgrade":"VIP Tier Upgrade Credit","referral_complete_points":"{{credits_amount}} Points for every referral completed","referrals_call_to_action":"Refer friends and earn","referrals_claimed_reward":"Here's your","referrals_create_account":"Create an Account","referrals_status_blocked":"blocked","referrals_status_pending":"pending","referrals_your_referrals":"Your referrals","activity_expiration_label":"Expires","general_click_to_see_more":"View My Rewards Account","general_product_purchased":"Product Purchased","general_redeemed_a_reward":"Redeemed a Reward","general_use_discount_code":"Use this discount code on your next order!","gift_card_sync_past_tense":"Gift card sync","referrals_already_visited":"Already visited this page","referrals_general_invalid":"Sorry, looks like this referral is invalid","referrals_referred_reward":"They will get","referrals_referrer_reward":"You will get","social_handle_placeholder":"@username","general_celebrate_birthday":"Celebrate a birthday","general_how_to_earn_points":"How do I earn Credits?","loyalty_page_general_spent":"Spent","loyalty_page_rewards_title":"Rewards","referrals_no_referrals_yet":"No referrals yet","referrals_program_disabled":"This referral program is disabled","referrals_status_completed":"completed","review_complete_past_tense":"Posted a product review","survey_complete_past_tense":"Completed a Survey","general_add_product_to_cart":"Add product to cart","general_balance_text_plural":"Credits","general_drop_points_expired":"Limited time bonus points expired","general_fallback_first_name":"there","general_not_enough_earnings":"Not enough earnings to redeem","general_were_awarded_points":"were awarded credits","loyalty_page_general_points":"Points","loyalty_page_general_redeem":"Redeem","activity_table_header_status":"Status","general_drop_credits_expired":"Limited time bonus credits expired","general_manual_points_adjust":"manual credits adjustment","referral_complete_past_tense":"Completed a Referral","referrals_similar_ip_invalid":"We are unable to process referrals within the same IP address","social_provide_handle_button":"Share handle","social_provide_tiktok_handle":"Share your TikTok handle","store_credit_sync_past_tense":"Store credit sync","vip_tier_orders_placed_count":"Place {{amount}} Orders","general_activate_store_credit":"Activate Store Credit","general_apply_to_subscription":"Apply to
2235subscription","general_celebrate_anniversary":"Celebrate Loyalty Anniversary","general_punch_card_checkpoint":"Punch Card Checkpoint","general_redeem_error_vip_tier":"This reward requires a higher VIP tier","general_redeemed_store_credit":"Redeemed Store Credit","general_store_credit_redeemed":"{{store_credit_amount}} in store credit has been added to your account. Apply at checkout.","loyalty_page_rewards_subtitle":"You have the following rewards ready to use","checkout_ui_redeem_points_desc":"You have {{credits}} credits! Redeem for discounts on this order.","general_discount_amount_coupon":"${{discount_amount}} off coupon","general_have_not_earned_points":"You haven't earned any Credots yet.","membership_page_benefits_title":"Membership Benefits","referrals_email_to_placeholder":"Add a comma-separated list of emails","referrals_name_must_be_present":"Please enter your first name","account_ui_loyalty_status_title":"Welcome, {{first_name}}! You have {{balance}} points","checkout_ui_redeem_points_login":"Log in","checkout_ui_redeem_points_title":"Redeem your credit","general_add_points_default_note":"Credit granted by credit import","general_celebrate_your_birthday":"Let's celebrate your birthday! ð Please give us 30 days notice - otherwise, you'll have to wait another year.","general_please_choose_an_option":"Please choose an option from the","general_redeem_error_max_points":"Exceeded maximum points to spend","general_redeem_error_min_points":"Did not meet minimum points to redeem","loyalty_page_banner_earn_button":"Earn cash back","loyalty_page_rewards_no_rewards":"No rewards yet","loyalty_page_ways_to_earn_title":"Score Credit, Stay Groomed","referrals_email_already_claimed":"This email has already been claimed","referrals_general_invalid_title":"We're Sorry","social_facebook_like_past_tense":"Liked a page on Facebook","social_provide_instagram_handle":"Share your Instagram handle","social_tiktok_follow_past_tense":"Followed on TikTok","social_twitter_share_past_tense":"Shared a link on X","activity_table_header_expiration":"Expires At","loyalty_page_banner_login_button":"Sign In","loyalty_page_upload_receipt_help":"Upload a receipt within the last 30 days to earn points. Please lay the receipt on a flat surface and take a photo from a close distance.","social_facebook_share_past_tense":"Shared a link on Facebook","social_twitter_follow_past_tense":"Followed on X","wallet_pass_subscribe_past_tense":"Added Wallet Pass","account_slideout_home_login_title":"Sign in to manage your account","general_cashback_not_earned_title":"You didn't earn CashBack on this order","general_cross_collection_purchase":"Cross Collection Purchase","general_points_for_judgeme_review":"JudgeMe review","loyalty_page_banner_redeem_button":"Redeem Rewards","loyalty_page_subscribe_email_help":"Subscribe to our email list and earn points","loyalty_page_ways_to_redeem_title":"Redeem Like a King","membership_page_benefits_subtitle":"Here's an overview of your membership benefits","referrals_account_already_claimed":"You already have an account. You can invite your friends to win rewards!","vip_tier_products_purchased_count":"Purchase {{amount}} Specific Products","account_ui_loyalty_status_subtitle":"You're on the {{vip_tier_name}} tier","checkout_ui_activate_account_title":"Activate Your Account","checkout_ui_redeemed_rewards_title":"Your rewards","general_reset_removal_default_note":"Existing credit removed for credit reset from import","general_store_credit_transfer_sent":"Sent {{amount}} credit to {{recipient_email}}","loyalty_page_customer_birthday_day":"Day","loyalty_page_upload_receipt_attach":"Attach File","loyalty_page_upload_receipt_button":"Submit Receipt","loyalty_page_ways_to_earn_subtitle":"Simple steps to score serious rewards","referrals_your_referrals_show_here":"Your referrals will show here.","social_instagram_follow_past_tense":"Followed on Instagram","account_slideout_orders_login_title":"Sign in to view your orders","checkout_ui_points_estimation_title":"Complete this purchase to earn up to {{points}} credit","checkout_ui_refer_friends_login_url":"account\/login?return_url=\/account\u0026email={{customer_email}}","general_cashback_not_earned_subject":"You didn't earn CashBack on this order","general_loyalty_program_and_rewards":"Loyalty Program \u0026 Rewards","general_vip_tier_upgrade_past_tense":"{{tier_name}} Entry Credit","general_your_rewards_will_show_here":"Your rewards will show here.","loyalty_page_banner_logged_in_title":"Welcome to your rewards journey","loyalty_page_banner_register_button":"Join Now","loyalty_page_explainer_step_1_title":"Sign Up","loyalty_page_explainer_step_2_title":"Earn","loyalty_page_explainer_step_3_title":"Redeem","loyalty_page_subscribe_email_button":"Subscribe","loyalty_page_upload_receipt_no_file":"Please select a file to upload","loyalty_page_upload_receipt_success":"Thanks! Your receipt will be reviewed shortly","membership_page_banner_login_button":"Sign In","membership_page_banner_login_prefix":"Already a member?","membership_tier_unlocked_past_tense":"Membership Signup","referrals_email_message_placeholder":"Customize your referral message. The referral link will be automatically added.","account_slideout_profile_login_title":"Sign in to manage your profile","checkout_ui_redeem_points_login_desc":"to view your credit balance and discover rewards available for redemption.","checkout_ui_redeem_store_credit_desc":"You have ${{store_credit}} in store credit.","general_cashback_not_earned_subtitle":"This order wasn't eligible for CashBack.","loyalty_page_banner_logged_out_title":"Roots Rewards","loyalty_page_banner_login_button_url":"","loyalty_page_customer_birthday_month":"Month","loyalty_page_customer_birthday_title":"Celebrate your birthday","loyalty_page_ways_to_redeem_subtitle":"Use credit to unlock these deals","vip_tier_product_ids_purchased_count":"Purchase {{amount}} Specific Products","checkout_ui_cashback_estimation_title":"Complete this purchase to earn up to {{cashback}} in CashBack","checkout_ui_install_wallet_pass_title":"Install our Wallet Pass for E
2235xclusive Offers","checkout_ui_points_estimation_subtext":"Credit can be redeemed for rewards on future purchases. Actual credit awarded may differ if other discounts are applied.","checkout_ui_redeem_store_credit_title":"Apply your store credit","checkout_ui_refer_friends_login_title":"Claim your credit from this purchase!","general_applied_to_subscription_order":"Applied to subscription order","general_celebrate_birthday_past_tense":"Celebrated a birthday","general_choose_redemption_destination":"Choose to use it now or on your next subscription order","general_discount_code_applied_to_cart":"Discount applied to your cart","loyalty_page_general_enter_valid_date":"Please enter a valid date","account_dashboard_activity_block_title":"Your Activity","account_dashboard_member_card_cta_text":"View Rewards","account_dashboard_referral_block_title":"Refer a friend","general_reset_new_balance_default_note":"Credit reset to new balance by credit import","general_store_credit_transfer_received":"Received {{amount}} credit from {{sender_email}}","general_use_discount_code_free_product":"Use this discount code on your next order to get a free product!","loyalty_page_explainer_logged_in_title":"Hi \u003cspan rivo-x-data=\"{ username: $store.customer.first_name || 'there' }\" rivo-x-text=\"username\"\u003e\u003c\/span\u003e, you have \u003cstrong\u003e\u003cspan rivo-x-data rivo-x-text=\"$store.customer.pretty_credits_tally\"\u003e\u003c\/span\u003e\u003c\/strong\u003e Credit","loyalty_page_explainer_step_1_subtitle":"Create an account and get in the game","loyalty_page_explainer_step_2_subtitle":"The more you shop, the more you score","loyalty_page_explainer_step_3_subtitle":"Use credits for sweet savings","loyalty_page_vip_tier_1_threshold_text":"","loyalty_page_vip_tier_2_threshold_text":"","loyalty_page_vip_tier_3_threshold_text":"","loyalty_page_vip_tiers_logged_in_title":"Your VIP Journey","membership_page_explainer_step_1_title":"Signup","membership_page_explainer_step_2_title":"Earn","membership_page_explainer_step_3_title":"Redeem","membership_recurring_signup_past_tense":"Recurring Credit","referrals_advocate_stats_email_claimed":"Claimed","checkout_ui_activate_account_button_url":"\/account\/login?return_url=\/account","checkout_ui_cashback_estimation_subtext":"CashBack can be redeemed for rewards on future purchases. Actual CashBack awarded may differ if other discounts are applied.","general_subscription_redemption_applied":"This reward will apply to your next subscription order","loyalty_page_activity_table_header_date":"Date","loyalty_page_activity_table_no_activity":"No activity yet","loyalty_page_banner_register_button_url":"","loyalty_page_explainer_logged_out_title":"How it Works","loyalty_page_vip_tiers_logged_out_title":"Your VIP Journey","membership_page_banner_login_button_url":"\/account\/login?return_url=\/account","social_provide_tiktok_handle_past_tense":"Shared your TikTok handle","account_dashboard_member_card_body_title":"You have \u003cstrong\u003e\u003cspan rivo-x-data rivo-x-text=\"$store.customer.pretty_points_tally\"\u003e\u003c\/span\u003e\u003c\/strong\u003e Points","account_ui_loyalty_status_cta_button_url":"\/pages\/loyalty-program","checkout_ui_activate_account_button_text":"Activate Account","checkout_ui_activate_account_description":"Activate your loyalty account to start earning points, tracking rewards, and accessing exclusive member benefits.","checkout_ui_redeem_points_alternate_name":"credit","checkout_ui_redeemed_rewards_description":"Your rewards available to use","checkout_ui_redeemed_rewards_login_title":"Log in","checkout_ui_refer_friends_referral_title":"Refer a Friend","general_celebrate_anniversary_past_tense":"Celebrated Loyalty Anniversary","loyalty_page_activity_expiration_warning":"Expiration Date: \u003cspan rivo-x-data rivo-x-text=\"$store.customer.points_expiry\"\u003e\u003c\/span\u003e","loyalty_page_customer_birthday_save_date":"Save Date","loyalty_page_upload_challenge_photo_help":"Upload a challenge photo to earn.","referrals_advocate_stats_email_completed":"Completed","referrals_create_account_to_claim_coupon":"Create an Account to claim your coupon","account_dashboard_referral_block_subtitle":"Give your friends a reward and claim your own when they make a purchase","account_ui_loyalty_status_cta_button_text":"View Rewards","checkout_ui_redeemed_rewards_select_label":"Select a Reward","loyalty_page_activity_table_header_action":"Activity","loyalty_page_banner_logged_in_description":"Shop like you always do, just get rewarded for it now!","loyalty_page_explainer_logged_in_subtitle":"Here's an overview of your current credit balance and recent activity","loyalty_page_vip_tiers_logged_in_subtitle":"You are on the \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.current_vip_tier_info?.tier?.name\"\u003e\u003c\/span\u003e tier","membership_page_banner_add_to_cart_button":"Join Now","membership_page_explainer_step_1_subtitle":"Create an account on our store","membership_page_explainer_step_2_subtitle":"Earn credit for shopping","membership_page_explainer_step_3_subtitle":"Redeem credit for discounts","account_dashboard_member_card_header_title":"Welcome \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.first_name\"\u003e\u003c\/span\u003e","account_dashboard_vip_tiers_progress_t
2235itle":"VIP Tier Status","checkout_ui_install_wallet_pass_button_url":"\/#rivo","general_converted_to_credits_external_note":"Converted your points balance to store credit","general_converted_to_credits_internal_note":"Converted from points to store credit","loyalty_page_banner_logged_out_description":"Sign up for free, stack credits like a king, and get rewarded just for staying fly.","loyalty_page_general_activate_store_credit":"Activate Store Credit","loyalty_page_general_redeemed_store_credit":"Redeemed Store Credit","loyalty_page_upload_challenge_photo_attach":"Attach File","loyalty_page_upload_challenge_photo_button":"Submit Challenge Photo","loyalty_page_vip_tiers_logged_out_subtitle":"Unlock elite perks at every tier.","membership_page_activity_table_header_date":"Date","membership_page_activity_table_no_activity":"No activity yet","membership_page_banner_is_subscriber_title":"Welcome to our Membership Program","membership_page_status_is_subscriber_title":"You have an Active Membership","referrals_advocate_stats_email_link_clicks":"Link Clicks","social_provide_instagram_handle_past_tense":"Shared your Instagram handle","account_dashboard_member_card_body_subtitle":"You're on the \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.current_vip_tier_info?.tier?.name\"\u003e\u003c\/span\u003e tier","account_dashboard_referral_block_share_html":"\u003ca href=\"\/pages\/refer-a-friend\"\u003eEmail your link to friends\u003c\/a\u003e or \u003ca href=\"\/pages\/refer-a-friend?popup_panel=email_stats\"\u003eget your stats\u003c\/a\u003e","checkout_ui_install_wallet_pass_button_text":"Install Wallet Pass","checkout_ui_install_wallet_pass_description":"Unlock exclusive offers and rewards with our Wallet Pass.","checkout_ui_login_notification_banner_title":"Have loyalty discounts or rewards that you'd like to apply?","checkout_ui_refer_friends_login_description":"Log in or register to activate your loyalty account, redeem your credit and access your special offers.","loyalty_page_activity_table_header_earnings":"Credit","loyalty_page_upload_challenge_photo_no_file":"Please select a file to upload","loyalty_page_upload_challenge_photo_success":"Thanks! Your challenge photo will be reviewed shortly","membership_page_activity_expiration_warning":"Expiration Date: \u003cspan rivo-x-data rivo-x-text=\"$store.customer.points_expiry\"\u003e\u003c\/span\u003e","membership_page_banner_non_subscriber_title":"Join our Membership Program","membership_recurring_anniversary_past_tense":"Membership Anniversary Credits","account_dashboard_unused_rewards_block_title":"Use your rewards","checkout_ui_redeem_incremental_earnings_desc":"You have ${{balance_to_currency}} in credit, would you like to redeem?","checkout_ui_refer_friends_login_button_title":"Activate my account","general_order_placed_store_credit_multiplier":"Earn cash back for every $1 spent","loyalty_page_vip_tiers_progress_column_title":"Tier Status","membership_page_activity_table_header_action":"Activity","referrals_advocate_stats_email_unique_visits":"Unique visits from your link","referrals_email_your_friend_has_referred_you":"Your friend has referred you to {{shop_name}}","account_dashboard_vip_tiers_progress_subtitle":"Earn \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.current_vip_tier_info?.next_tier?.formatted_to_spend_or_earn\"\u003e\u003c\/span\u003e points to reach the \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.current_vip_tier_info?.next_tier?.name\"\u003e\u003c\/span\u003e tier.","checkout_ui_login_notification_banner_subtext":"to login to your account","checkout_ui_redeem_incremental_earnings_login":"Log in","checkout_ui_redeem_incremental_earnings_title":"Respected Roots Credit","checkout_ui_redeem_points_select_custom_label":"{{reward_name}} orders ${{min_order_amount}}+ for {{points_amount}} credits","checkout_ui_refer_friends_referral_button_url":"","loyalty_page_activity_table_header_expiration":"Expires At","membership_page_banner_add_to_cart_button_url":"\/membership-add-to-cart","membership_page_cancel_membership_modal_title":"Are you sure you want to cancel your membership?","membership_page_explainer_is_subscriber_title":"Hi \u003cspan rivo-x-data=\"{ username: $store.customer.first_name || 'there' }\" rivo-x-text=\"username\"\u003e\u003c\/span\u003e, you have \u003cstrong\u003e\u003cspan rivo-x-data rivo-x-text=\"$store.customer.pretty_credits_tally\"\u003e\u003c\/span\u003e\u003c\/strong\u003e in Store Credit","membership_page_status_is_subscriber_subtitle":"You will be charged next on \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.membership?.pretty_next_charge_date\"\u003e\u003c\/span\u003e","referrals_email_checkout_out_and_claim_reward":"Check out the referral link and claim a free reward.","account_dashboard_rewards_progress_block_t
2235itle":"Earn more rewards","checkout_ui_gift_with_purchase_applied_message":"Free gift applied","checkout_ui_redeem_points_select_discount_desc":"Please select a discount","checkout_ui_redeem_points_store_credit_success":"{{store_credit_amount}} in store credit redeemed. Apply to this order from the payment section.","checkout_ui_redeemed_rewards_login_description":"to view your rewards available to use.","checkout_ui_refer_friends_referral_description":"Share your referral link with friends and earn rewards each time a new friend makes a purchase.","membership_page_activity_table_header_earnings":"Credit","membership_page_cancel_membership_modal_button":"Yes, Cancel my Membership","membership_page_explainer_non_subscriber_title":"How it Works","account_dashboard_unused_rewards_block_subtitle":"Use your previously redeemed rewards:","checkout_ui_login_notification_banner_link_text":"Click here","checkout_ui_redeem_points_select_discount_label":"Select Discount","checkout_ui_redeemed_rewards_select_description":"Please select a reward","checkout_ui_refer_friends_referral_button_title":"Refer a Friend","general_store_credit_transfer_sent_via_gift_url":"Sent {{amount}} credit via gift URL {{transfer_url}}","loyalty_page_upload_challenge_photo_daily_limit":"You've already submitted a photo for this challenge today. Try again tomorrow.","loyalty_page_vip_tiers_progress_column_subtitle":"Earn \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.current_vip_tier_info?.next_tier?.formatted_to_spend_or_earn\"\u003e\u003c\/span\u003e credit to reach the \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.current_vip_tier_info?.next_tier?.name\"\u003e\u003c\/span\u003e tier.","membership_page_status_update_payment_link_text":"Update Payment Method","referrals_advocate_stats_email_no_referrals_yet":"No referrals yet.","account_dashboard_unused_rewards_block_date_text":"Redeemed on: {{date}}","membership_page_activity_table_header_expiration":"Expires At","membership_page_banner_is_subscriber_description":"You'v unlocked exclusive savings, rewards \u0026 VIP access.","membership_page_explainer_is_subscriber_subtitle":"Here's an overview of your current credits balance and recent activity","account_dashboard_referral_block_copy_button_text":"Copy","account_dashboard_rewards_progress_block_subtitle":"Earn another \u003cspan rivo-x-data rivo-x-text=\"$store.customer.pretty_points_amount_to_next_reward\"\u003e\u003c\/span\u003e points to unlock a \u003cspan rivo-x-data rivo-x-text=\"$store.customer.next_reward?.name\"\u003e\u003c\/span\u003e reward\u003c\/p\u003e","account_dashboard_unused_rewards_block_no_rewards":"No rewards yet","checkout_ui_redeem_store_credit_apply_button_text":"Apply Store Credit","membership_page_banner_non_subscriber_description":"Unlock exclusive savings, rewards \u0026 VIP access.","membership_page_update_payment_method_modal_title":"Update Payment Method","checkout_ui_redeem_incremental_earnings_login_desc":"to view your balance.","membership_page_status_cancel_membership_link_text":"Cancel","membership_page_status_rejoin_membership_link_text":"Rejoin Membership","checkout_ui_refer_friends_referral_text_field_label":"Your referral link","membership_page_cancel_membership_modal_description":"We'd hate to see you leave. Your membership includes exclusive benefits that you'll lose access to immediately.","checkout_ui_redeem_incremental_earnings_desc_applied":"You're using {{applied_balance}} of your available {{balance}} in store credit","membership_page_status_pending_cancellation_subtitle":"Your membership will be cancelled on \u003cspan rivo-x-data rivo-x-text=\"$store.customer?.membership?.pretty_queued_for_cancellation_at\"\u003e\u003c\/span\u003e","checkout_ui_cashback_estimation_title_usd_to_currency":"Complete this purchase to earn up to {{cashback_usd_to_currency}} in CashBack","referrals_advocate_stats_email_friends_order_verified":"Friends order was verified","referrals_advocate_stats_email_referral_link_to_share":"Here's your referral link to share with friends.","referrals_advocate_stats_email_friend_claimed_discount":"Friend claimed discount","account_dashboard_vip_tiers_progress_completed_subtitle":"Congrats! You've reached the highest tier.","checkout_ui_cashback_estimation_subtext_usd_to_currency":"CashBack can be redeemed for rewards on future purchases. Actual CashBack awarded may differ if other discounts are applied.","checkout_ui_post_purchase_account_activation_button_url":"\/account\/login?return_url=\/account","membership_page_update_payment_method_modal_description":"We've sent you an email to update your payment method. Please check your inbox and follow the instructions.","checkout_ui_redeem_incremental_earnings_form_input_label":"Credit amount","checkout_ui_redeem_incremental_discount_code_change_error":"{{code}} couldn't be used with your existing discounts.","checkout_ui_redeem_incremental_earnings_form_submit_button":"Apply ${{points_to_currency}} off","checkout_ui_redeem_points_not_enough_points_banner_message":"You're {{points_amount}} credit away from a reward","account_dashboard_rewards_progress_block_completed_subtitle":"Keep earning points to unlock more rewards","checkout_ui_redeem_incremental_earnings_desc_usd_to_currency":"You have {{formatted_credits_tally_usd_to_currency}}) in store credit to redeem (subject to FX rates at time of redemption)","checkout_ui_redeem_incremental_earnings_store_credit_success":"{{store_credit_amount}} in store credit redeemed. Apply to this order from the payment section.","checkout_ui_redeem_incremental_earnings_desc_usd_to_currency_applied":"You're using {{applied_balance_to_currency}} of your available {{formatted_credits_tally_usd_to_currency}} in store credit"},"custom_css":null,"ways_to_earn":[{"id":375382,"title":"Sign up","status":"active","name":null,"trigger":"customer_member_enabled","points_amount":100,"credits_amount":5.0,"balance_amount":5.0,"description":null,"url":null,"button_text":null,"pretty_earnings_text":"$5.00 Credits","card_click_method":null,"hidden_from_ui":false,"creation_source":null,"translations":[],"icon_url":"https:\/\/loyalty.rivo.io\/assets\/gvn2xmzybcefdlspxfzpge123sry","multi_balance_settings_by_tiers":{},"multipliers":[],"currency_base_amount":1,"points_type":"fixed"},{"id":375383,"title":"Place an order","status":"active","name":null,"trigger":"order_placed","points_amount":1,"credits_amount":0.05,"balance_amount":0.05,"description":"Get 5% cashback","url":"","button_text":null,"pretty_earnings_text":"$0.05 Credits","card_click_method":"modal","hidden_from_ui":false,"creation_source":null,"translations":[],"icon_url":"https:\/\/loyalty.rivo.io\/assets\/ac70x98vmkv58qn17oxomvgng0nn","multi_balance_settings_by_tiers":{},"multipliers":[],"currency_base_amount":1,"points_type":"multiplier"},{"id":389869,"title":"Follow on Instagram","social":true,"trigger":"instagram_follow","status":"active","points_amount":50,"credits_amount":5.0,"balance_amount":5.0,"url":"https:\/\/instagram.com\/respectedroots","pretty_earnings_text":"$5.00 Credits","hidden_from_ui":false,"translations":[],"icon_url":"https:\/\/loyalty.rivo.io\/assets\/g6j1lzxjf5clo4ywajjijetfbowi"},{"id":389870,"title":"Like page on Facebook","social":true,"trigger":"facebook_like","status":"active","points_amount":50,"credits_amount":5.0,"balance_amount":5.0,"url":"https:\/\/facebook.com\/RespectedRoots","pretty_earnings_text":"$5.00 Credits","hidden_from_ui":false,"translations":[],"icon_url":"https:\/\/loyalty.rivo.io\/assets\/6omw6c39uqt0zm1zba7h9gj5cm31"},{"id":389871,"title":"Sign Up For Emails","status":"active","name":"Sign Up For Emails","trigger":"email_subscribe","points_amount":50,"credits_amount":5.0,"balance_amount":5.0,"description":null,"url":"","button_text":null,"pretty_earnings_text":"$5.00 Credits","card_click_method":"modal","hidden_from_ui":false,"creation_source":null,"translations":[],"icon_url":"https:\/\/loyalty.rivo.io\/assets\/arcgxcq00gdr3q3mtt6b5693wgs9"},{"id":389872,"title":"Leave a testimonial","status":"active","name":"Leave a testimonial","trigger":"review_complete","points_amount":50,"credits_amount":5.0,"balance_amount":5.0,"description":null,"url":"","button_text":null,"pretty_earnings_text":"$5.00 Credits","card_click_method":"modal","hidden_from_ui":false,"creation_source":null,"translations":[],"icon_url":"https:\/\/loyalty.rivo.io\/assets\/q5v29bq2wf4bk5pve8opn3aepafp"},{"id":389873,"title":"Start A Subscription","status":"active","name":"Start A Subscription","trigger":"custom_action","points_amount":50,"credits_amount":10.0,"balance_amount":10.0,"description":"${{points_amount}} credits","url":"","button_text":"","pretty_earnings_text":"$10.00 Credits","card_click_method":null,"hidden_from_ui":false,"creation_source":null,"translations":[],"icon_url":"https:\/\/loyalty.rivo.io\/assets\/w7ghyh7eebjax0pginjbrf8obohc"}],"reorder_completed_ways_to_earn":false,"points_rewards":[],"rewards":[{"id":446523,"name":"Store Credit","enabled":true,"points_amount":1,"points_type":"multiplier","reward_type":"fixed_amount","source":"credits","pretty_display_rewards":"Store Credit (1 points required)","icon_url":"https:\/\/loyalty.rivo.io\/assets\/axaaata0dtwszfzkmv9znoycc7xu","pretty_points_amount":"1","purchase_type":"one_time","recurring_cycle_limit":null,"min_order_quantity":null,"translations":[],"reward_value":1.0,"min_order_value_in_cents":null,"increment_points_value":1,"customer_points_get":1.0,"min_points_to_redeem_value":1,"max_points_to_spend_value":null,"terms_of_service":{"reward_type":"fixed_amount","applies_to":"entire","show_tos":false},"pretty_terms_of_service":"","translated_terms_of_service":{}}],"referral_rewards":{"referrer_reward":{"id":486491,"name":"25% off coupon","reward_type":"percentage","properties":{"applies_to":"collection","collection_id":"33326628970","min_requirement":"none","auto_redeem_enabled":false,"customer_points_get":1.0,"increment_points_value":100,"refund_on_expiry_enabled":false,"hide_from_checkout_enabled":false,"hide_from_site_enabled":false,"min_order_value_excludes_free_product":false,"applies_to_full_price_items_only":false,"translations":[]}},"referred_reward":{"id":486492,"name":"20% off coupon","reward_type":"percentage","properties":{"applies_to":"collection","collection_id":"33326628970","min_requirement":"none","auto_redeem_enabled":false,"customer_points_get":1.0,"increment_points_value":100,"refund_on_expiry_enabled":false,"hide_from_checkout_enabled":false,"hide_from_site_enabled":false,"min_order_value_excludes_free_product":false,"applies_to_full_price_items_only":false,"translations":[]}}},"referral_settings":{"referrals_landing_path":"","referrals_landing_domain":""},"referral_social_settings":{"facebook":false,"email":true,"twitter":false,"twitter_message":"","sms":true,"sms_message":"","whatsapp":false,"whatsapp_message":"","share_order":["sms","email","link","twitter","facebook","whatsapp"]},"referrals_customer_account_required":false,"friend_discounts_disabled":false,"vip_tiers":[{"id":346144,"name":"Free Membership","threshold":0,"perks":[],"icon_url":"https:\/\/loyalty.rivo.io\/assets\/oj7gs4shbrfq984vuzotmgl4ny1v","desc":"\u003cspan\u003eSpend $0.00 \u003c\/span\u003e","translations":[],"rewards":[],"threshold_text":""},{"id":346145,"name":"Respected Roots Prime","threshold":1000000,"perks":[],"icon_url":"https:\/\/loyalty.rivo.io\/assets\/0lv8wuvadrob61up94u32v01z8u5","desc":"\u003cspan\u003eSpend $1,000,000 \u003c\/span\u003e","translations":[],"rewards":[{"id":456504,"name":"Respected Roots Prime - 20% off coupon","enabled":false,"points_amount":0,"points_type":"fixed","reward_type":"percentage","source":"vip_tier","pretty_display_rewards":"Respected Roots Prime - 20% off coupon (0 points required)","icon_url":null,"pretty_points_amount":"0","purchase_type":"both","recurring_cycle_limit":null,"min_order_quantity":null,"translations":[],"reward_value":20.0,"min_order_value_in_cents":null,"terms_of_service":{"reward_type":"percentage","applies_to":"entire","show_tos":false},"pretty_terms_of_service":"","vip_tier":{"id":346145,"shop_id":10788786,"name":"Respected Roots Prime","threshold":1000000,"perks":[],"created_at":"2025-04-01T15:56:31.325Z","updated_at":"2025-06-06T14:38:48.955Z","deleted_at":null,"properties":{"entry_rules":[],"entry_product_ids":[],"translations":[]},"entry_rules":[],"entry_rules_operator":null,"entry_product_count":null,"entry_product_ids":[],"translations":[]}},{"id":483252,"name":"Respected Roots Prime Shipping","enabled":false,"points_amount":0,"points_type":"fixed","reward_type":"free_shipping","source":"vip_tier","pretty_display_rewards":"Respected Roots Prime Shipping (0 points required)","icon_url":null,"pretty_points_amount":"0","purchase_type":"both","recurring_cycle_limit":0,"min_order_quantity":null,"translations":[],"reward_value":100.0,"min_order_value_in_cents":null,"terms_of_service":{"reward_type":"free_shipping","show_tos":true},"pretty_terms_of_service":"","vip_tier":{"id":346145,"shop_id":10788786,"name":"Respected Roots Prime","threshold":1000000,"perks":[],"created_at":"2025-04-01T15:56:31.325Z","updated_at":"2025-06-06T14:38:48.955Z","deleted_at":null,"properties":{"entry_rules":[],"entry_product_ids":[],"translations":[]},"entry_rules":[],"entry_rules_operator":null,"entry_product_count":null,"entry_product_ids":[],"translations":[]}}],"threshold_text":""}],"account_embed_widget_settings":{"enabled":false,"target_page":"customers\/account","custom_insert_method":"beforeend"},"loyalty_landing_page_settings":{"enabled":false,"theme_id":"","template_suffix":"rivo-loyalty-landing-page","vip_tiers_table_data":[{"perk":"Fee","tiers":[{"id":"346144","value":"$0\/year"},{"id":"346145","value":"$135\/year"}]}
2235,{"perk":"Exclusive Shipping Discount (U.S. Only)","tiers":[{"id":"346144","value":"Spend $75 minimum"},{"id":"346145","value":"On all orders"}]},{"perk":"Instant Welcome Gift","tiers":[{"id":"346144","value":"$5 Welcome Credit"},{"id":"346145","value":"$10 Welcome Credit"}]},{"perk":"VIP Customer Support","tiers":[{"id":"346144","value":"No"},{"id":"346145","value":"Yes"}]},{"perk":"Exclusive Events","tiers":[{"id":"346144","value":"Yes"},{"id":"346145","value":"Yes"}]},{"perk":"Priority Access to New Releases","tiers":[{"id":"346144","value":"No"},{"id":"346145","value":"Yes"}]},{"perk":"Exclusive Discounts","tiers":[{"id":"346144","value":"No"},{"id":"346145","value":"20% off all purchases (works with other discounts)"}]},{"perk":"Receive a copy of the Dossier","tiers":[{"id":"346144","value":"No"},{"id":"346145","value":"Yes"}]}],"primary_button_class_names":"custom-button primary-button","secondary_button_class_names":"custom-button primary-button","theme_extension_files_added_at":"2025-06-26T17:59:13.834Z","theme_extension_files_verified_at":"2025-06-26T17:59:13.834Z"},"membership_landing_page_settings":{"enabled":false,"template_suffix":"rivo-membership-landing-page"},"account_dashboard_settings":{},"forms":[],"points_expiry_enabled":false,"credits_expiry_enabled":false,"points_per_points_log_expiry_enabled":false,"credits_per_points_log_expiry_enabled":false,"frontend":{"potential_points":{"order_placed":{"enabled":true,"points_type":"multiplier","points_amount":1,"currency_base_amount":1,"multi_balance_settings_by_tiers":{}}}},"referral_campaigns":[{"id":54451,"name":"Refer A Friend","display_type":"inline","status":"active","page_settings":{"friend_claim_title":"You've received a discount from a friend.","friend_reward_title":"Youâve officially joined!","invalid_button_text":"Shop Now","advocate_share_title":"Put your crew on and get rewarded.","advocate_reward_title":"Time to cash in your grooming bonus.","advocate_signup_title":"Put your crew on and get rewarded.","friend_reward_copy_text":"Copy","advocate_share_link_mode":"exposed","friend_claim_button_text":"Claim Discount","friend_claim_description":"Enter your email, get a discount for your first order.","advocate_email_stats_text":"My Stats","advocate_reward_copy_text":"Copy","advocate_share_link_title":"Share your link","friend_claim_expired_text":"Sorry, this referral link has expired. Come back later!","friend_reward_description":"Here's your {{discount_amount}} reward. Use this discount code on your next order.","advocate_email_stats_title":"Send my Stats","advocate_share_description":"Send your friends a discount code for their first order, and get a credit after each purchase.","advocate_share_email_title":"Share via Email","advocate_reward_description":"Here's your {{discount_amount}} reward. Use this discount code on your next order.","advocate_share_expired_text":"Sorry, this referral link has expired. Come back later!","advocate_share_header_title":"Refer a friend","advocate_signup_button_text":"Invite Friends","advocate_signup_description":"Each friend = more money off your next grooming haul.","advocate_email_stats_enabled":false,"advocate_share_email_subject":"Your friend has sent you a gift","advocate_signup_expired_text":"Sorry, this referral link has expired. Come back later!","friend_claim_disclaimer_text":"Offer only valid for new customers","friend_reward_disclaimer_text":"Offer only valid for new customers","advocate_share_appended_params":"","advocate_share_disclaimer_text":"Offer only valid for new customers","friend_claim_email_placeholder":"Your email","advocate_reward_disclaimer_text":"","advocate_share_copy_button_text":"Copy Link","advocate_share_email_note_label":"Additional Note:","advocate_share_link_description":"You can share this link anywhere with a friend.","advocate_signup_disclaimer_text":"Offer only valid for new customers","friend_reward_apply_button_text":"Apply code","advocate_email_stats_button_text":"Send Email","advocate_email_stats_description":"Your stats will be sent to {{email}}","advocate_share_email_button_text":"Send Email","friend_claim_cta_version_enabled":false,"friend_reward_auto_apply_enabled":false,"friend_reward_post_discount_path":"","advocate_reward_apply_button_text":"Apply code","advocate_signup_email_placeholder":"Your email","advocate_reward_auto_apply_enabled":false,"advocate_reward_post_discount_path":"","advocate_share_email_subject_label":"Subject:","advocate_share_personal_link_label":"Here is your personal link:","friend_reward_coupon_field_enabled":true,"advocate_share_email_reminder_label":"Send reminder after 3 days","advocate_reward_coupon_field_enabled":true,"advocate_share_email_sent_from_label":"To:","friend_claim_additional_close_params":[],"advocate_share_email_note_placeholder":"Add something else for your friends here. We'll prepopulate the rest!","advocate_signup_first_name_placeholder":"Your first name","friend_claim_terms_and_conditions_path":"","friend_claim_terms_and_conditions_text":"Terms \u0026 Conditions","friend_reward_terms_and_conditions_path":"","friend_reward_terms_and_conditions_text":"Terms \u0026 Conditions","advocate_share_email_subject_placeholder":"Here's a gift","advocate_share_terms_and_conditions_path":"","advocate_share_terms_and_conditions_text":"Terms \u0026 Conditions","advocate_signup_first_name_field_enabled":true,"advocate_reward_terms_and_conditions_path":"","advocate_reward_terms_and_conditions_text":"Terms \u0026 Conditions","advocate_signup_terms_and_conditions_path":"","advocate_signup_terms_and_conditions_text":"Terms \u0026 Conditions","friend_claim_terms_and_conditions_enabled":false,"friend_reward_terms_and_conditions_enabled":false,"advocate_email_stats_logged_out_description":"Please enter the email you used to signup","advocate_share_email_recipients_placeholder":"Comma separated list of email addresses","advocate_share_terms_and_conditions_enabled":false,"advocate_reward_terms_and_conditions_enabled":false,"advocate_signup_terms_and_conditions_enabled":false,"friend_claim_accepts_marketing_checkbox_text":"Subscribe to email marketing","advocate_signup_accepts_marketing_checkbox_text":"Subscribe to email marketing","friend_claim_accepts_marketing_checkbox_enabled":false,"advocate_signup_accepts_marketing_checkbox_enabled":false,"advocate_signup_accepts_marketing_checkbox_default_checked":false,"advocate_signup_requires_login_enabled":false,"advocate_signup_requires_login_button_text":"Sign In or Sign Up","friend_claim_first_name_field_enabled":false,"friend_claim_first_name_placeholder":"Your first name"},"design_settings":{"share_mode":"blocks","primary_color":"#000000","background_type":"column","secondary_color":"#CCCCCC","title_font_size":36,"button_font_size":15,"footer_font_size":12,"header_font_size":18,"title_font_color":"#000000","title_text_align":"center","button_font_color":"#ffffff","footer_font_color":"#000000","footer_text_align":"center","header_font_color":"#000000","header_text_align":"center","subtitle_font_size":18,"background_position":"right","button_border_color":"#ffffff","primary_font_family":"inherit","subtitle_font_color":"#000000","subtitle_text_align":"center","mobile_inline_height":900,"desktop_inline_height":800,"secondary_font_family":"inherit","button_background_color":"#000000","header_background_color":"#f8f5f1","advocate_share_email_note_enabled":true,"advocate_share_email_subject_enabled":true,"advocate_share_email_reminder_enabled":true},"advocate_rules":[],"friend_rules":[],"advocate_reward":{"id":486491,"name":"25% off coupon","enabled":true,"points_amount":0,"points_type":"fixed","reward_type":"percentage","source":"referrer","pretty_display_rewards":"25% off coupon (0 points required)","icon_url":null,"pretty_points_amount":"0","purchase_type":"one_time","recurring_cycle_limit":null,"min_order_quantity":null,"translations":[],"reward_value":25.
22350,"min_order_value_in_cents":null,"terms_of_service":{"reward_type":"percentage","applies_to":"collection","show_tos":true},"pretty_terms_of_service":"Only for products in specific collections. "},"friend_reward":{"id":486492,"name":"20% off coupon","enabled":true,"points_amount":0,"points_type":"fixed","reward_type":"percentage","source":"referred","pretty_display_rewards":"20% off coupon (0 points required)","icon_url":null,"pretty_points_amount":"0","purchase_type":"one_time","recurring_cycle_limit":null,"min_order_quantity":null,"translations":[],"reward_value":20.0,"min_order_value_in_cents":null,"terms_of_service":{"reward_type":"percentage","applies_to":"collection","show_tos":true},"pretty_terms_of_service":"Only for products in specific collections. "},"expires_at":null,"background_image_url":"https:\/\/loyalty.rivo.io\/assets\/c1gh7zioazgngg8ddihl6xwr2hp8","custom_css":"@import url(\"https:\/\/fonts.googleapis.com\/css2?family=Roboto:ital,wght@0,100..900;1,100..900\u0026display=swap\");\n\n@font-face {\n font-family: \"Roomy Wide\";\n src: url(\"https:\/\/db.onlinewebfonts.com\/t\/fc4b93c7e517d99d2afaf0c73e539e0e.eot\");\n src: url(\"https:\/\/db.onlinewebfonts.com\/t\/fc4b93c7e517d99d2afaf0c73e539e0e.eot?#iefix\")\n format(\"embedded-opentype\"),\n url(\"https:\/\/db.onlinewebfonts.com\/t\/fc4b93c7e517d99d2afaf0c73e539e0e.woff\")\n format(\"woff\"),\n url(\"https:\/\/db.onlinewebfonts.com\/t\/fc4b93c7e517d99d2afaf0c73e539e0e.woff2\")\n format(\"woff2\"),\n url(\"https:\/\/db.onlinewebfonts.com\/t\/fc4b93c7e517d99d2afaf0c73e539e0e.ttf\")\n format(\"truetype\"),\n url(\"https:\/\/db.onlinewebfonts.com\/t\/fc4b93c7e517d99d2afaf0c73e539e0e.svg#Roomy Wide Bold\")\n format(\"svg\");\n font-weight: 700;\n font-style: normal;\n \n}\n\n*,\np,\n.icon-and-text-row,\n.ba-tooltip,\n.sign-in-text,\n.less-color.text-nowrap,\n.panel-desc,\n.section-table-piece-detail-items,\n.account-login,\n.txt-info,\n.txt-warning,\n.section-top-bar,\n.content,\n.content-subtitle,\n.header-secondary,\nbutton,\n.loy-button,\n.loy-button-secondary,\n.loy-button-link-main,\n.content-subtitle,\n.txt-field,\n.section-footer,\ninput,\n.dob-fields,\nlabel,\n.content .header {\n font-family: \"Roboto\", sans-serif !important;\n}\n\nh1,\n.content-title {\n font-family: \"Roomy Wide\", sans-serif !important;\n}\n\n.content {\n align-self: center;\n width: 100%;\n padding: 50px;\n}\n\n.content-title,\nh1 {\n font-weight: 700;\n line-height: 1.1;\n color: #181818;\n text-transform: capitalize;\n letter-spacing: 0.6px;\n}\n\n.content-subtitle {\n line-height: 1.2 !important;\n letter-spacing: normal !important;\n}\n\n.content-title {\n margin-top: 0;\n}\n\n.content .header {\n margin: 0 auto;\n text-transform: uppercase;\n letter-spacing: 3px;\n font-size: 15px;\n font-weight: 400;\n background: transparent;\n}\n\n.form-label,\nlabel {\n color: #000000 !important;\n font-weight: 600;\n}\n\n\/* ---- BUTTONS ---- *\/\n.button,\n.copy-coupon.dflex button.button {\n min-height: 40px;\n transition: 0.3s ease-out;\n cursor: pointer;\n border-radius: 5px !important;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n font-weight: bold;\n padding-left: 10px;\n padding-right: 10px;\n}\n\n#advocate-signup-page .button {\n padding-top: 20px;\n padding-bottom: 20px;\n}\n\n.button:hover,\n.copy-coupon.dflex button.button:hover,\n.copy-coupon.dflex button.button:focus-visible {\n}\n\n\/* --- BUTTON ICONS --- *\/\n.button svg.path-stroke path {\n stroke: #fff;\n}\n\n.button .icon-and-text-row svg {\n fill: #fff;\n}\n\n.button:hover svg.path-stroke path {\n stroke: #fff;\n}\n\n.button:hover .icon-and-text-row svg {\n fill: #fff;\n}\n\n\/* --- FOOTER --- *\/\n.section-footer {\n letter-spacing: 0.4px;\n}\n\n\/* --- FORM STARTS HERE --- *\/\ninput.txt-field {\n background: #fff;\n transition: all 0.2s ease-in;\n border-color: #ffffff !important;\n border-radius: 6px;\n}\n\ninput.txt-field::placeholder {\n color: #777777;\n border-color: #d3d3d3;\n font-size: 15px;\n}\n\ninput,\ntextarea {\n margin-top: 10px !important;\n}\n\ninput.txt-field:active,\ninput.txt-field:hover {\n border: 1px solid #f0eae4 !important;\n box-shadow: 0 0 0 0.5px #f0eae4 inset;\n}\n\ninput.referral-link {\n background-color: #fff;\n font-size: 15px !important;\n}
2235\n\n.txt-field,\n.form-input {\n color: #212121 !important;\n border: 1px solid #f0eae4 !important;\n font-size: 16px;\n}\n\n\/* --- FORM ENDS HERE --- *\/\n\/* --- POPUP --- *\/\n.popup-page.active {\n background: #f7f5f1 !important;\n border: 2px solid #181818 !important;\n border-radius: 0px;\n opacity: 0.98;\n border-radius: 10px;\n box-shadow: 0 5px 35px rgb(0 0 0 \/ 18%);\n}\n\n\/* --- SUCCESS MESSAGE --- *\/\n.toast.success {\n z-index: 999999;\n position: absolute;\n}\n\n.content-subtitle {\n letter-spacing: 1px;\n line-height: 2.5rem;\n}\n\n.referral-body {\n background-color: #f7f5f1 !important;\n}\n\n\/* -- Put copy button on the same height as the input text, removing the margin of the input -- *\/\n#referred_reward_code {\n margin-top: 0px !important;\n}\n\n\/* --- Custom Checkbox --- *\/\n#accepts_marketing,\ninput[type=\"checkbox\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n width: 20px;\n height: 20px;\n border: 2px solid #000000 !important;\n border-radius: 24px !important;\n position: relative;\n cursor: pointer;\n outline: none;\n}\n\n#accepts_marketing:checked,\ninput[type=\"checkbox\"]:checked {\n background-color: #000000 !important;\n border-color: #000000 !important;\n}\n\n#accepts_marketing:checked::after,\ninput[type=\"checkbox\"]:checked::after {\n content: \"\";\n display: block;\n width: 2px;\n height: 7px;\n border: solid #ffffff;\n border-width: 0 2px 2px 0;\n position: absolute;\n top: 2px;\n left: 6px;\n transform: rotate(45deg);\n}\n\n\/* --- Fix the checkbox in the email popup --- *\/\n.checkbox,\n.popup-page input[type=\"checkbox\"] {\n margin-top: 0 !important;\n}\n\n.popup-page.active .form-label {\n margin-bottom: 15px;\n margin-top: 0;\n display: flex;\n gap: 5px;\n align-items: center;\n}\n\ninput[type=\"checkbox\"] {\n margin-top: 0 !important;\n margin-bottom: 0;\n}\n\n.copy-coupon.dflex {\n gap: 5px;\n}\n\n\/* --- MOBILE --- *\/\n@media (max-width: 680px) {\n .content {\n padding: 0px;\n }\n\n .mobile-image {\n background-position: center;\n margin: 0px;\n border-radius: 0px;\n }\n\n .content-title {\n font-size: 26px;\n }\n\n .content-subtitle {\n font-size: 15px;\n }\n\n #advocate-reward-page .content-title,\n #friend-claim-page .content-title,\n #friend-reward-page .content-title {\n font-size: 22px !important;\n margin-top: 24px !important;\n }\n\n .referral-body {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n }\n\n .content .header {\n text-decoration: none !important;\n margin-bottom: 10px !important;\n font-size: 15px !important;\n }
2235\n\n #invalid-page .content-wrapper,\n #advocate-reward-page .content-wrapper,\n #friend-reward-page .content-wrapper {\n margin-top: 20px;\n }\n\n .popup-page {\n text-align: center;\n }\n\n .referral-body.background-left {\n flex-direction: column;\n }\n\n .button,\n .copy-coupon.dflex button.button {\n padding-left: 10px;\n padding-right: 10px;\n }\n\n #advocate-share-page div.section-body {\n margin-bottom: 0px !important;\n }\n}","share_via_email_default_subject":"I'm sending you a {{reward_name}} to shop at {{shop_name}}","landing_path":null,"advocate_overlay_enabled":false,"post_order_advocate_overlay_enabled":false,"post_order_advocate_overlay_delay":0,"post_order_advocate_overlay_frequency":0,"streamlined_enabled":false,"locale_translations":{}}],"paid_membership_settings":{"landing_path":"\/","legacy_product_ids":[],"cancellation_policy":"immediate","final_reminder_days":3,"rebill_reminder_days":5,"migration_mode_enabled":false,"rebill_attempt_interval":"hourly","daily_rebill_attempt_utc_hour":16,"landing_path_redirect_enabled":false,"default_enrollment_tier_method":"customer_creation","failed_payments_retry_schedule":[{"days_after_last_retry":1},{"days_after_last_retry":2},{"days_after_last_retry":3},{"days_after_last_retry":5},{"days_after_last_retry":5},{"days_after_last_retry":5},{"days_after_last_retry":5}],"daily_failed_payments_attempt_utc_hour":20,"selling_plan_after_add_to_cart_js_method":"redirect_to_cart","membership_gift_order_count_starts_at_enrollment":false},"checkout_ui_settings":{"global_show_login_url":"\/customer_authentication\/login?return_to=\/checkout","global_show_login_enabled":false,"redeem_points_max_rewards":10,"redeem_store_credit_button_kind":"primary","global_show_login_header_enabled":false,"shopify_markets_metaobject_enabled":false,"post_purchase_referral_hero_image_url":"","post_purchase_referral_preview_emails":"","redeem_points_use_custom_select_label":false,"redeem_points_expanded_version_enabled":false,"redeem_points_only_show_from_countries":[],"redeem_points_show_all_rewards_enabled":false,"redeem_points_select_apply_button_enabled":false,"redeemed_rewards_only_show_from_countries":[],"post_purchase_referral_hide_from_countries":[],"redeem_points_default_select_label_enabled":true,"hide_all_checkout_extensions_from_countries":[],"post_purchase_referral_preview_mode_enabled":false,"only_show_checkout_extensions_from_countries":[],"post_purchase_referral_share_buttons_enabled":false,"redeem_points_disable_reward_options_enabled":false,"redeem_store_credit_only_show_from_countries":[],"redeem_points_hide_redeem_when_discount_exists":false,"redeem_points_not_enough_points_banner_enabled":false,"post_purchase_referral_only_show_from_countries":[],"redeem_incremental_earnings_balance_to_currency":false,"redeem_points_expanded_show_custom_icons_enabled":true,"redeemed_rewards_hide_selections_when_no_options":true,"clear_discount_codes_with_prefix_on_consolidation":"","post_purchase_account_activation_button_full_width":true,"cashback_estimation_balance_usd_to_currency_enabled":false,"redeem_points_hide_redeem_when_free_product_applied":false,"redeem_incremental_earnings_only_show_from_countries":[],"redeem_points_hide_selections_unless_discount_exists":false,"post_purchase_account_activation_preview_mode_enabled":false,"post_purchase_referral_always_show_to_advocate_enabled":false,"redeemed_rewards_hide_selections_when_discount_applied":false,"post_purchase_account_activation_membership_mode_enabled":false,"redeem_incremental_earnings_balance_applied_mode_enabled":false,"redeem_incremental_earnings_input_amount_stepper_enabled":true,"post_purchase_account_activation_only_show_from_countries":[],"post_purchase_install_wallet_pass_only_show_from_countries":[],"redeem_incremental_earnings_balance_usd_to_currency_enabled":false,"redeem_incremental_earnings_hide_redeem_when_discount_exists":false,"redeem_incremental_earnings_hide_redeem_when_insufficient_balance":false,"redeem_incremental_earnings_hide_redeem_unless_minimum_order_value_is_met":false},"discount_code_prefix_settings":{"global_prefix":"RRLOY-","loyalty_prefix":"RRLOY-","vip_tier_prefix":"RRLOY-","loyalty_gift_prefix":"LGIFT-","referral_friend_prefix":"RRLOY-","referral_advocate_prefix":"RRLOY-"}
2235,"membership_tiers":[{"id":793,"name":"Respected Roots Prime","icon_url":"https:\/\/loyalty.rivo.io\/assets\/y8e6r2x1qnuztvn5kj1yxzx9jx8u","price":135.0,"billing_interval":"annually","enabled":true,"product_id":10249089515830,"variant_id":52307472286006,"selling_plan_id":8097464630,"gwp_reward_enabled":false,"gwp_product_id":null,"gwp_variant_id":null,"gwp_variant_ids":[],"gwp_gifts":[],"static_discounts":[{"id":498795,"identifier":"membership_shipping_discount","code":"RR Prime Shipping","description":"Respected Roots Prime Shipping","is_auto_applied":false},{"id":498799,"identifier":"default","code":"RR Prime Membership","description":"Respected Roots Prime Membership","is_auto_applied":false}],"benefits":[{"identifier":"membership_early_access","title":"20% off all purchases","description":"(works with other discounts)","position":1,"show_on_landing_page":true,"benefitable_id":null,"benefitable_type":null,"icon_url":"https:\/\/loyalty.rivo.io\/assets\/s1aekzb1yidk3gd07j6rs0usg1qr"},{"identifier":"membership_gated_content","title":"Exclusive Shipping Discount","description":"(U.S. Only)","position":2,"show_on_landing_page":true,"benefitable_id":null,"benefitable_type":null,"icon_url":"https:\/\/loyalty.rivo.io\/assets\/cb9zmka82vkgdm4450atjs7dwypi"},{"identifier":"membership_shipping_discount","title":"Instant Welcome Gift","description":"$10 Welcome Credit","position":3,"show_on_landing_page":true,"benefitable_id":498795,"benefitable_type":"Reward","icon_url":"https:\/\/loyalty.rivo.io\/assets\/t6huzp01riot3nkw1d70n53b14wx"},{"identifier":"membership_signup_discount","title":"Receive a copy of the Dossier\t","description":"Monthly Exclusive Newsletter","position":4,"show_on_landing_page":true,"benefitable_id":498796,"benefitable_type":"Reward","icon_url":"https:\/\/loyalty.rivo.io\/assets\/sq7e95iokvbw7pv177mlsw55ixc1"},{"identifier":"membership_tier_unlocked","title":"Priority Access","description":"First to access new releases\t","position":5,"show_on_landing_page":true,"benefitable_id":437086,"benefitable_type":"EarningRule","icon_url":"https:\/\/loyalty.rivo.io\/assets\/9chykkwqxn6wl3je8qus3g4sg7ey"},{"identifier":"membership_recurring_signup","title":"Exclusive Events\t","description":"Join exclusive RR events","position":6,"show_on_landing_page":true,"benefitable_id":437087,"benefitable_type":"EarningRule","icon_url":"https:\/\/loyalty.rivo.io\/assets\/drltfxacv9a3lvduir6y1iqjqytb"}],"ways_to_earn":[{"id":437086,"title":null,"status":"active","name":null,"trigger":"membership_tier_unlocked","points_amount":0,"credits_amount":10.0,"balance_amount":10.0,"description":null,"url":null,"button_text":null,"pretty_earnings_text":"$10.00 Credits","card_click_method":null,"hidden_from_ui":false,"creation_source":null,"translations":[]},{"id":437087,"title":null,"status":"inactive","name":null,"trigger":"membership_recurring_signup","points_amount":0,"credits_amount":0.0,"balance_amount":0,"description":null,"url":null,"button_text":null,"pretty_earnings_text":"0 Credit","card_click_method":null,"hidden_from_ui":false,"creation_source":null,"translations":[]},{"id":437088,"title":null,"status":"inactive","name":null,"trigger":"membership_recurring_anniversary","points_amount":0,"credits_amount":0.0,"balance_amount":0,"description":null,"url":null,"button_text":null,"pretty_earnings_text":"0 Credit","card_click_method":null,"hidden_from_ui":false,"creation_source":null,"translations":[]},{"id":437089,"title":"Credits earned from placing an order","status":"inactive","name":null,"trigger":"membership_order_placed","points_amount":0,"credits_amount":0.0,"balance_amount":0,"description":null,"url":null,"button_text":null,"pretty_earnings_text":"0 Credit","card_click_method":null,"hidden_from_ui":false,"creation_source":null,"translations":[],"multi_balance_settings_by_tiers":{},"multipliers":[],"currency_base_amount":1,"points_type":"multiplier"}]}],"credit_mode":true,"active_bonus_campaign":null,"active_bonus_campaigns":[],"js_api_config":{"emit_points_balances_on_load":false},"auto_login":{"enabled":false,"email_provider":"kl","email_identifier":"utm_klaviyo_profile_id","auto_login_reload_enabled":false,"auto_login_bypass_only_mode_enabled":false},"account_widget_settings":{"enabled":false,"or_text":"OR","city_text":"City","edit_text":"Edit","name_text":"Name","email_text":"Email","order_text":"Order","phone_text":"Phone","taxes_text":"Taxes","total_text":"Total","cards_shape":"rounded","delete_text":"Delete","select_text":"Select","address_text":"Address","company_text":"Company","country_text":"Country","inputs_shape":"rounded","buttons_shape":"rounded","discount_text":"Discount","primary_color":"#20124d","province_text":"Province","shipping_text":"Shipping","sold_out_text":"Sold out","subtotal_text":"Subtotal","zip_code_text":"ZIP Code","community_text":"Community","home_cta_1_url":"\/pages\/loyalty-program","last_name_text":"Last Name","launcher_shape":"circle","container_shape":"rounded","favorites_title":"Favorites","first_name_text":"First Name","home_cta_1_text":"View Rewards","home_cta_2_text":"Manage Subscriptions","input_font_size":16,"show_powered_by":false,"add_to_cart_text":"Add to Cart","amount_paid_text":"Amount paid","footer_font_size":14,"footer_home_text":"For You","net_payment_text":"Net payment","orders_page_size":10,"s
2235aved_cart_title":"Saved from Cart","toast_font_color":"#FFFFFF","are_you_sure_text":"Are you sure you want to?","cache_app_enabled":false,"collections_title":"Collections","community_enabled":false,"contact_info_text":"Contact info","currency_decimals":0,"default_font_size":16,"desktop_placement":"left","email_placeholder":"Email","favorites_enabled":false,"google_login_text":"Sign in with Google","home_referral_url":"\/pages\/refer-a-friend","login_button_text":"Sign In","login_issues_link":"\/account\/login","login_issues_text":"Click here to sign in with your password if you are having issues","my_addresses_text":"My Addresses","order_placed_text":"Placed on","verify_title_text":"Enter the code sent to [[email]]","all_favorites_text":"All Favorites","footer_orders_text":"Orders","home_cta_1_enabled":true,"home_cta_2_enabled":true,"home_cta_3_enabled":false,"latest_order_title":"Latest Order","notifications_text":"Notifications","profile_list_links":[],"reload_after_login":false,"saved_cart_enabled":false,"shop_login_enabled":false,"verify_button_text":"Verify Code","address_line_2_text":"Apartment, suite, etc.","apple_login_enabled":false,"delete_address_text":"Yes, Delete Address","external_login_text":"Sign in or Sign up","footer_profile_text":"Profile","home_referral_title":"Refer a Friend \u0026 Earn","locale_urls_enabled":false,"mobile_side_spacing":20,"my_preferences_text":"My Preferences","payment_method_text":"Payment Method","popular_today_title":"Popular Today","select_country_text":"Select Country","select_options_text":"Select Options","skip_edgemesh_cache":false,"slideout_icon_color":"#303030","taxes_included_text":"Taxes (included)","update_profile_text":"Update Profile","view_favorites_text":"View Favorites","amount_refunded_text":"Amount refunded","billing_address_text":"Billing Address","desktop_side_spacing":20,"excluded_product_ids":[],"favorites_load_delay":0,"footer_icons_enabled":false,"google_login_enabled":false,"hide_rivo_login_form":false,"home_logged_in_title":"Welcome \u003cspan rivo-ax-text='$store.rivo_profile_customer?.first_name'\u003e\u003c\/span\u003e","legacy_login_enabled":true,"order_cancelled_text":"Cancelled on","profile_log_out_text":"Log out","save_collection_text":"Save Collection","select_province_text":"Select Province","shipping_method_text":"Shipping Method","address_default_badge":"Default","alternate_login_title":"Having issues signing in?","home_logged_out_title":"Sign in to your account","home_referral_enabled":false,"mobile_bottom_spacing":20,"order_returns_enabled":false,"popular_today_enabled":true,"recently_viewed_title":"Recently Viewed","redeem_rewards_filter":"all","replace_account_links":false,"shipping_address_text":"Shipping Address","slideout_border_color":"#E0E0E0","vip_tier_progress_url":"\/pages\/loyalty-program","add_to_collection_text":"Add to Collection","compare_at_price_color":"#c70000","custom_sub_cta_enabled":false,"desktop_bottom_spacing":20,"external_login_enabled":false,"hide_sold_out_products":false,"home_referral_subtitle":"\u003cspan rivo-ax-text='$store.rivo_profile_customer?.referral_stats?.completed_count'\u003e\u003c\/span\u003e referrals completed so far","home_wallet_pass_title":"Add Wallet Pass","login_footer_font_size":12,"next_billing_date_text":"You will be charged next on \u003cspan rivo-ax-text='$store.membership_subscription_contract.pretty_next_billing_date_at'\u003e\u003c\/span\u003e","order_tracking_partner":"shopify","orders_logged_in_title":"Your Orders","popular_products_count":20,"product_rating_enabled":false,"profile_pos_qr_enabled":false,"shop_pay_login_enabled":false,"slideout_subdued_color":"#F7F7F7","toast_background_color":"#1a1a1a","added_to_cart_link_text":"Go to Cart","additional_details_text":"Additional Details","alternate_login_enabled":false,"home_logged_in_subtitle":"You have \u003cspan class='rivo-pretty-points-balance' rivo-ax-text='$store.rivo_profile_customer?.pretty_points_tally'\u003e\u003c\/span\u003e points","home_referral_copy_text":"Referral link copied to clipboard","ignore_inventory_policy":false,"order_buy_again_enabled":false,"orders_empty_state_text":"You haven't placed any orders yet","orders_logged_out_title":"Log in to view, track, and manage your orders","post_login_reload_paths":[],"recently_viewed_enabled":true,"section_title_font_size":18,"survey_next_button_text":"Next","survey_ski
2235p_button_text":"Skip","alternate_login_subtitle":"Use one of the following methods below to sign in.","custom_hide_product_tags":[],"desktop_sidebar_position":"left","home_logged_out_subtitle":"Get access to your rewards, referrals, and more","home_wallet_pass_enabled":false,"legacy_gift_card_enabled":false,"order_cancel_button_text":"Cancel Order","replace_legacy_app_links":false,"shipping_addresses_title":"Shipping Addresses","verify_login_issues_link":"\/#rivo","verify_login_issues_text":"Having issues? Click here to try again.","home_cta_1_primary_button":true,"home_cta_2_primary_button":false,"home_cta_3_primary_button":false,"home_wallet_pass_subtitle":"Unlock exclusive rewards and offers.","order_returns_button_text":"Start a Return","slideout_background_color":"#FFFFFF","accepts_sms_marketing_text":"Text me with news and offers","add_shipping_address_title":"Add Shipping Address","added_to_cart_link_enabled":false,"alternate_login_email_text":"Sign in with an email and password","create_new_collection_text":"Create New Collection","favorites_empty_state_text":"No favorited products","logged_out_title_font_size":24,"mini_block_title_font_size":13,"order_tracking_button_text":"Track Shipment","primary_button_class_names":"button button--primary","redirect_from_account_page":true,"save_shipping_address_text":"Save Shipping Address","vip_progress_block_enabled":false,"alternate_login_google_text":"Sign in with Google","buy_again_notification_text":"Order added to the cart","edit_shipping_address_title":"Edit Shipping Address","favorite_button_active_text":"Added to favorites","home_button_membership_text":"Credit","home_loyalty_button_enabled":false,"home_referral_page_subtitle":"Refer a friend who makes a purchase and both of you will claim rewards.","login_verify_identity_title":"Verify your identity","loyalty_opt_in_checkbox_tag":"rivo-loyalty-opt-in","order_buy_again_button_text":"Buy Again","order_cancel_button_enabled":false,"saved_cart_empty_state_text":"No saved cart items","set_as_default_address_text":"Set as default address","slideout_heading_font_color":"#303030","account_verification_enabled":false,"collections_empty_state_text":"No collections","email_cannot_be_changed_text":"Email used for login cannot be updated","exposed_line_item_properties":[],"favorite_button_active_color":"#FF5E5E","home_logged_out_orders_title":"Manage orders, track shipments, and easily start a return","login_accepts_marketing_text":"Email me with updates and offers","loyalty_opt_in_checkbox_text":"Email me just loyalty offers","order_returns_fulfilled_only":false,"order_track_shipment_enabled":true,"redeem_rewards_block_enabled":false,"redeem_rewards_display_style":"horizontal","secondary_button_class_names":"button button--secondary","accepts_sms_marketing_enabled":false,"add_to_cart_notification_text":"Added to cart","alternate_login_shop_pay_text":"Sign in to an existing account with Shop Pay","favorite_button_inactive_text":"Add to favorites","featured_home_content_enabled":false,"home_gift_card_button_enabled":false,"home_logged_out_profile_title":"Manage addresses, contact info, and personal preferences","international_returns_enabled":false,"legacy_points_balance_enabled":false,"mini_block_subtitle_font_size":13,"new_customer_accounts_enabled":false,"same_as_shipping_address_text":"Same as shipping address","shop_pay_login_button_enabled":false,"home_button_components_enabled":false,"home_button_gift_card_cta_text":"My Credit","home_membership_button_enabled":false,"address_saved_notification_text":"Address saved","apply_discount_add_to_cart_text":"Apply discount \u0026 add to cart","featured_content_image_position":"center center","home_button_balance_points_text":"Points","home_button_gift_card_code_text":"ID: ","home_button_gift_card_copy_text":"Copy ID","home_button_membership_cta_text":"My Membership","home_expiration_message_enabled":false,"home_logged_out_favorites_title":"Sign in to access your favorites","home_logged_out_orders_subtitle":"Get access to your rewards, referrals, and more","login_accepts_marketing_default":true,"login_accepts_marketing_enabled":true,"loyalty_opt_in_checkbox_default":true,"loyalty_opt_in_checkbox_enabled":false,"profile_list_personal_info_text":"Personal Information","view_product_action_button_text":"View product","home_additional_button_1_enabled":false,"home_additional_button_2_enabled":false,"home_logged_out_profile_subtitle":"Get access to your rewards, referrals, and more","home_wallet_pass_ios_button_text":"Add Apple Wallet Pass","mini_block_product_price_enabled":false,"mini_block_product_title_enabled":false,"orders_additional_button_enabled":false,"product_compare_at_price_enabled":true,"recently_viewed_empty_state_text":"No recently viewed products","slideout_body_primary_font_color":"#303030","address_deleted_notification_text":"Address deleted successfully","international_returns_button_text":"Start an International Return","login_accepts_marketing_countries":[],"order_limited_time_button_enabled":false,"profile_updated_notification_text":"Profile updated","shipping_address_empty_state_text":"You haven't added any shipping addresses yet","add_to_favorites_notification_text":"Save Item","alternate_login_another_email_text":"Try sending another code","home_logged_out_favorites_subtitle":"Get access to your rewards, referrals, and more","redirect_to_classic_login_on_error":false,"share_favorite_collections_enabled":false,"shop_pay_login_email_field_enabled":false,"slideout_body_secondary_font_color":"#707070","verify_login_
2235issues_alt_login_text":"Having issues? Click here to sign in with an alternate method","view_product_action_button_enabled":false,"cancel_membership_notification_text":"Membership canceled","home_button_balance_points_cta_text":"My Rewards","order_returns_button_primary_button":false,"recently_viewed_collections_enabled":false,"added_to_favorites_notification_text":"Item saved","home_wallet_pass_android_button_text":"Add Google Wallet Pass","order_tracking_button_primary_button":true,"profile_list_shipping_addresses_text":"Shipping Addresses","apple_login_private_relay_error_title":"Please sign in using a different method","order_buy_again_button_primary_button":false,"order_cancel_button_threshold_enabled":true,"home_button_membership_paywall_cta_text":"Join our Membership","orders_additional_button_primary_button":false,"remove_from_favorites_notification_text":"Remove item","apple_login_private_relay_error_subtitle":"Sorry, we couldn't authenticate your Apple account. Please try again using your email or Sign in with Google.","apple_login_reject_private_relay_enabled":false,"home_logged_out_profile_subtitle_enabled":false,"order_cancel_button_threshold_in_minutes":30,"order_limited_time_button_primary_button":false,"removed_from_favorites_notification_text":"Item removed","show_as_loyalty_page_login_modal_enabled":false,"orders_secondary_additional_button_enabled":false,"international_returns_button_primary_button":false,"send_payment_method_email_notification_text":"Confirmation email sent","order_limited_time_button_threshold_in_minutes":15,"orders_secondary_additional_button_primary_button":false,"css_variables":":root {\n --rivo-aw-background-color: #FFFFFF;\n --rivo-aw-desktop-sidebar-left: 0px;\n --rivo-aw-desktop-sidebar-right: auto;\n --rivo-aw-desktop-slidein-translate-x: -100%;\n --rivo-aw-desktop-slideout-translate-x: -100%;\n --rivo-aw-heading-font-color: #303030;\n --rivo-aw-body-primary-font-color: #303030;\n --rivo-aw-body-secondary-font-color: #707070;\n --rivo-aw-border-color: #E0E0E0;\n --rivo-aw-subdued-color: #F7F7F7;\n --rivo-aw-icon-color: #303030;\n --rivo-aw-primary-color: #20124d;\n --rivo-aw-favorite-button-active-color: #FF5E5E;\n --rivo-aw-toast-offset-left: 15px;\n --rivo-aw-toast-offset-right: auto;\n --rivo-aw-default-font-size: 16px;\n \n --rivo-aw-input-font-size: 16px;\n --rivo-aw-section-title-font-size: 18px;\n --rivo-aw-logged-out-title-font-size: 24px;\n \n --rivo-aw-mini-block-title-font-size: 13px;\n --rivo-aw-mini-block-subtitle-font-size: 13px;\n --rivo-aw-login-footer-font-size: 12px;\n --rivo-aw-footer-font-size: 14px;\n --rivo-aw-toast-background-color: #1a1a1a;\n --rivo-aw-toast-font-color: #FFFFFF;\n \n \n --rivo-aw-home-featured-content-image-position: center center;\n --rivo-aw-compare-at-price-color: #c70000;\n \n }","terms_and_conditions":null,"sms_terms_and_conditions":null},"persisted_login_enabled":false,"preference_questions":[],"customer_id_verification_enabled":false,"ping_enabled":false,"contests":[],"active_contest":null,"activate_store_balance_consolidation_enabled":true,"deduct_after_order_placed_channels":["checkout","storefront","merchant_api","auto_redeem","in_app"],"edit_order_settings":{"enabled":false,"note_text":"Order Note","note_enabled":false,"cancel_enabled":true,"cancel_reasons":["Changed my mind","Shipping concerns","Ordered by mistake","Other"],"note_button_text":"Update Note","note_placeholder":"Add a note to your order","threshold_method":"fulfilled","cancel_button_text":"Cancel Order","contact_info_enabled":true,"preview_mode_enabled":false,"contact_info_button_text":"Update Contact Information","shipping_address_enabled":true,"threshold_time_in_minutes":15,"preview_mode_email_domains":[],"shipping_address_button_text":"Update Shipping Address"},"gift_card_settings":{"enabled":false,"gift_card_product_ids":[]},"surveys":[],"order_earnings_delay_in_seconds":null,"cashback_program_enabled":false,"cashback_offers":[],"fallback_to_db_from_shopify_api_enabled":false,"credit_transfers_enabled":false,"wallet_pass_enabled":false,"account_widget_sections":[],"order_settings":{"order_price_exclude_discounts":false,"order_price_include_taxes":true,"order_price_include_shipping":true,"order_reward_channels":"all","order_reward_financial_statuses":["paid"],"order_revoke_financial_statuses":["0","refunded","0","partially_refunded","0","voided"],"convert_pos_customers_to_members":false,"discount_code_prefix_settings":{"global_prefix":"RRLOY-","loyalty_prefix":"RRLOY-","vip_tier_prefix":"RRLOY-","loyalty_gift_prefix":"LGIFT-","referral_friend_prefix":"RRLOY-","referral_advocate_prefix":"RRLOY-"},"capitalize_discount_codes":false,"discount_combination_settings":{},"discount_combinations_with_product_enabled":true,"discount_combinations_with_order_enabled":true,"discount_combinations_with_shipping_enabled":true,"points_program_excluded_collection_ids":[],"points_program_excluded_product_ids":[null],"points_program_excluded_order_tags":[],"skip_order_earnings_on_product_ids":[],"points_order_earnings_rounding_enabled":true,"points_order_earnings_rounding_type":"round","credits_order_earnings_rounding_enabled":false,"credits_order_earnings_rounding_type":"round","credits_order_earnings_rounding_precision":2,"points_order_earnings_rounding_precision":0,"points_program_fulfillment_earnings_trigger":"order_placed"}}; 2236 window.Rivo.loy_config.api_endpoint = "\/community\/prime"; 2237</script>
2237 2238
2239<script type="text/javascript" id="rivo-js-customer-init" dynamic> 2240 2241</script>
2241 2242 2243 2244<!-- END app snippet --> 2245 2246 2247</div>
2247<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
2247 2248</body> 2249</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.