PageSourceSearch

https://www.respectedroots.com/search

html respectedroots.com collected 2026-10-07 00:30:07 UTC 471,433 bytes, 2,249 lines download raw bytes

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&ndash; RESPECTED ROOTS</title><meta name="description" content="Respected Roots offers premium personal grooming products curated with natural ingredients for men, women, &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; Irritation"
1218                            >Bumps & Irritation</a><a
1219                              class="chd-multilevel-submenu-item-child-link"
1220                              href="/collections/precision-styling"
1221                              title="Precision &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; Irritation"
1481                  >Bumps & Irritation</a><a
1482                    href="/collections/precision-styling"
1483                    class="mm-submenu-link"
1484                    title="Precision &amp; 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 &amp; 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">&#169;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.