1<!doctype html> 2<html class="no-js" lang="en"> 3 <head> 4<!-- Start of Shoplift scripts --> 5<!-- 2026-08-24T10:03:22.9272709Z --> 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-09-06T10:30:01.4688034Z */(function(){"use strict";var te=document.createElement("style");te.textContent=`#shoplift-preview-control{position:fixed;max-width:332px;height:56px;background-color:#141414;z-index:9999;bottom:20px;display:flex;border-radius:8px;box-shadow:13px 22px 7px #0000,9px 14px 7px #00000003,5px 8px 6px #0000000d,2px 4px 4px #00000017,1px 1px 2px #0000001a,0 0 #0000001a;align-items:center;margin:0 auto;left:16px;right:16px;opacity:0;transform:translateY(20px);visibility:hidden;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s .4s}#shoplift-preview-control.visible{opacity:1;transform:translateY(0);visibility:visible;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s 0s}#shoplift-preview-control *{font-family:Inter,sans-serif;color:#fff;box-sizing:border-box;font-size:16px}#shoplift-preview-variant-title{font-weight:400;line-height:140%;font-size:16px;text-align:start;letter-spacing:-.16px;flex-grow:1;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}#shoplift-preview-variant-selector{position:relative;display:block;padding:6px 0;height:100%;min-width:0;flex:1 1 auto}#shoplift-preview-variant-menu-trigger{border:none;cursor:pointer;width:100%;background-color:transparent;padding:0 16px;border-left:1px solid #333;border-right:1px solid #333;height:100%;display:flex;align-items:center;justify-content:start;gap:8px}#shoplift-preview-variant-selector .menu-variant-label{width:24px;height:24px;border-radius:50%;padding:6px;display:flex;justify-content:center;align-items:center;font-size:12px;font-style:normal;font-weight:600;line-height:100%;letter-spacing:-.12px;flex-shrink:0}#shoplift-preview-variant-selector .preview-variant-menu{position:absolute;bottom:110%;transform:translate3d(0,20px,0);visibility:hidden;pointer-events:none;opacity:0;cursor:pointer;background-color:#141414;border:1px solid #141414;border-radius:6px;width:100%;max-height:156px;overflow-y:auto;box-shadow:0 8px 16px #0003;z-index:1;transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s .3s}#shoplift-preview-variant-selector .preview-variant-menu.preview-variant-menu__visible{visibility:visible;pointer-events:auto;opacity:100;transform:translateZ(0);transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s 0s}@media screen and (max-width:400px){#shoplift-preview-variant-selector .preview-variant-menu{position:fixed;left:0;right:0;width:auto;bottom:110%}}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item{padding:12px 16px;display:flex;overflow:hidden}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item .menu-variant-label{margin-right:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item span{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;white-space:nowrap;color:#f6f6f6;font-size:14px;font-style:normal;font-weight:500}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:hover{background-color:#545454}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:last-of-type{border-bottom-left-radius:6px;border-bottom-right-radius:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}#shoplift-preview-control div:has(#shoplift-exit-preview-button){padding:0 16px}#shoplift-exit-preview-button{padding:6px 8px;font-weight:500;line-height:75%;border-radius:4px;background-color:transparent;border:none;text-decoration:none}#shoplift-exit-preview-button:hover{cursor:pointer;background-color:#333}#shoplift-preview-subscription-warning{position:relative;display:flex;align-items:center;gap:6px;padding:6px 10px;margin:0 4px;border-left:1px solid #333;cursor:help;outline:none}#shoplift-preview-subscription-warning__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background-color:#f59e0b;color:#141414!important;font-weight:700;font-size:12px!important;line-height:1;flex-shrink:0}#shoplift-preview-subscription-warning__label{font-size:13px!important;font-weight:500;color:#fbbf24!important;text-wrap:nowrap;white-space:nowrap}#shoplift-preview-subscription-warning__tooltip{position:absolute;bottom:calc(100% + 8px);right:0;max-width:320px;width:max-content;padding:10px 12px;border-radius:6px;background-color:#1f1f1f;color:#fff!important;font-size:12px!important;line-height:1.4!important;box-shadow:0 8px 16px #0000004d;z-index:10000;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s .2s;pointer-events:none}#shoplift-preview-subscription-warning__tooltip.shoplift-preview-subscription-warning__tooltip--visible{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s 0s}#shoplift-preview-subscription-warning:focus-visible{box-shadow:inset 0 0 0 2px #f59e0b;border-radius:4px}#shoplift-preview-control:has(#shoplift-preview-subscription-warning){max-width:480px}/*$vite$:1*/`,document.head.appendChild(te);var fe=" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x
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/",ge=/bot|crawl|http|lighthouse|scan|search|spider/i,z;function me(){if(z instanceof RegExp)return z;try{z=new RegExp(fe,"i")}catch{z=ge}return z}var ye=a=>typeof a=="string"&&a!=="";function ve(a){return ye(a)&&me().test(a)}var we=ve;class Q{timestamp;constructor(){this.timestamp=new Date}}class be extends Q{type;testId;hypothesisId;constructor(e,t,i){super(),this.type=3,this.testId=e,this.hypothesisId=t,this.timestamp=i}}class Se extends Q{type;path;constructor(e){super(),this.type=4,this.path=e}}class Ce extends Q{type;cart;constructor(e){super(),this.type=5,this.cart=e}}class ie extends Error{isBot;constructor(){super(),this.isBot=!0}}function Te(a,e,t){for(const i of e.selectors){const s=a.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)t(e.testId,e.hypothesisId)}re(a,e,(i,s,r,n,o)=>o(s,r),t)}function U(a,e,t){for(const i of e.selectors)ne(a,e.testId,e.hypothesisId,i,t??(()=>{}));re(a,e,ne,t??(()=>{}))}function se(a){return a.urlPatterns.reduce((e,t)=>{switch(t.operator){case"contains":return e+`.*${t}.*`;case"endsWith":return e+`.*${t}`;case"startsWith":return e+`${t}.*`}},"")}function re(a,e,t,i){new MutationObserver(()=>{for(const r of e.selectors)t(a,e.testId,e.hypothesisId,r,i)}).observe(a.documentElement,{childList:!0,subtree:!0})}function ne(a,e,t,i,s){const r=a.querySelectorAll(i.cssSelector);for(let 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(Re))o=Ie(a,i.cssSelector,o,l)}}return r.length>0&&s?(s(e,t),!0):!1}function Ie(a,e,t,i){switch(i.type){case"innerHtml":t.innerHTML=i.value;break;case"attribute":Pe(t,i.scope,i.value);break;case"css":Ae(a,e,i.value);break;case"js":ke(a,t,i);break;case"copy":return Ee(t);case"remove":xe(t);break;case"move":_e(t,parseInt(i.value));break}return t}function Pe(a,e,t){a.setAttribute(e,t)}function Ae(a,e,t){const i=a.createElement("style");i.innerHTML=`${e} { ${t} }`,a.getElementsByTagName("head")[0]?.appendChild(i)}function ke(a,e,t){Function("document","element",`"use strict"; ${t.value}`)(a,e)}function Ee(a){const e=a.cloneNode(!0);if(!a.parentNode)throw"Can't copy node outside of DOM";return a.parentNode.insertBefore(e,a.nextSibling),e}function xe(a){a.remove()}function _e(a,e){if(e===0)return;const t=Array.prototype.slice.call(a.parentElement.children).indexOf(a),i=Math.min(Math.max(t+e,0),a.parentElement.children.length-1);a.parentElement.children.item(i).insertAdjacentElement(e>0?"afterend":"beforebegin",a)}function Re(a,e){return oe(a)-oe(e)}function oe(a){return a.type==="copy"||a.type==="remove"?0:1}var M=(a=>(a[a.Template=0]="Template",a[a.Theme=1]="Theme",a[a.UrlRedirect=2]="UrlRedirect",a[a.Script=3]="Script",a[a.Dom=4]="Dom",a[a.Price
8=5]="Price",a))(M||{});const De="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.96001%207.90004C9.86501%207.90004%209.77001%207.86504%209.69501%207.79004L6.43501%204.53004C6.19501%204.29004%205.80501%204.29004%205.56501%204.53004L2.30501%207.79004C2.16001%207.93504%201.92001%207.93504%201.77501%207.79004C1.63001%207.64504%201.63001%207.40504%201.77501%207.26004L5.03501%204.00004C5.56501%203.47004%206.43001%203.47004%206.96501%204.00004L10.225%207.26004C10.37%207.40504%2010.37%207.64504%2010.225%207.79004C10.15%207.86004%2010.055%207.90004%209.96001%207.90004Z'%20fill='white'/%3e%3c/svg%3e",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 Oe(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 X(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 ae(a){return a.replace(/[^\d.,\s-]/g,"").trim()}function j(a){const e=new Map;for(const[t,i,s]of a.variants)e.set(t,{priceInCents:i,compareAtPriceInCents:s});return e}function Le(a,e,t,i){const{priceInCents:s,compareAtPriceInCents:r}=t,{moneyFormat: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=ae(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 $e(a){const e=[],t={id:"url-pattern",operator:"contains",value:"/"};for(const[i,s,r]of a.variants){e.push({id:`p-${i}`,cssSelector:`[data-sl-attribute-p="${i}"]`,urlPatterns:[t],actions:[{id:`p-action-${i}`,type:"innerHtml",scope:"price",value:H(s,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]});const 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=ae(H(r-s,a.moneyFormat,a.currency,!1));e.push({id:`d-${i}`,cssSelector:`[data-sl-attribute-discount="${i}"]`,urlPatterns:[t],actions:[{id:`d-action-${i}`,type:"js",scope:null,value:`var format = element.getAttribute('data-sl-format') || 'percent'; if (format === 'percent') { element.textContent = '-${o}%'; } else if (format === 'amount') { element.textContent = '-${l}'; } else if (format === 'both') { element.textContent = '-${o}% (-${l})'; }`}]})}}return e}const Me=a=>{let e=5381;for(let t=0;t<a.length;t++)e=(e*33^a.charCodeAt(t))>>>0;return e.toString(36)},qe=()=>Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4),He=a=>btoa(JSON.stringify(a)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),ee=a=>a.replace(/#slr-[a-z0-9]+$/,""),tt="modulepreload",it=function(a){return"/"+a},st={},Ne=function(e,t,i){let s=Promise.resolve();function r(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 le(a,e,t){const i=t?a.plans.filter(c=>!c.variantId||c.variantId===t):a.plans,s=[],r=[];for(const c of i)c.direction==="decrease"?(s.push(c.existingShopifyPlanId),r.push(c.createdShopifyPlanId)):(s.push(c.createdShopifyPlanId),r.push(c.existingShopifyPlanId));const 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 ce(a,e,t){const i=e?a.plans.find(r=>r.variantId===e):void 0;if(i)return i.direction;if(t){const r=a.plans.find(n=>n.productId===t);if(r)return r.direction}return a.plans.find(r=>!r.variantId)?.direction??null}function K(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 de(a,e){return a===null?!1:a==="decrease"?!e:e}async function Ue(a){if(a.subscriptionSwapDone)return;const e=a.getActiveAssignment();if(!e)return;const t=a.getHypothesis(e.hypothesisId);if(!t?.subscriptionData)return;a.subscriptionSwapDone=!0;const i=t.subscriptionData,s=t.isControl,r=[...new Set(i.plans.map(d=>d.direction))].join(",");a.log(`[SUB-SWAP] ${s?"A":"B"} side, directions=${r}`);const 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}=le(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=le(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 J(a,e){const t=D(a,"subscriptionPlans");return t.length?e.querySelector(t[0].selector)?.shadowRoot??null:null}function Y(a,e){const t=new URLSearchParams(window.location.search).get("variant");if(t)return t;{const i=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(i)return i}return a.size>0?[...a.keys()][0]:void 0}function G(a,e){return H(a,e.moneyFormat,e.currency,e.currencyCodeEnabled)}function Fe({originalFetch:a,swapMap:e,slptValue:t,getSelectedPlanId:i,log:s}){if(window.fetch.__shoplift_intercepted)return s("[SUB-INTERCEPT] already installed â skipping"),()=>{};function r(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 Be({log:a}){if(window.fetch.__shoplift_intercepted)return a("[SUB-PREVIEW-BLOCK] already installed â skipping"),()=>{};const e=window.fetch,t=function(i,s){const r=typeof i=="string"?i:i instanceof URL?i.href:i.url;return r.includes("/cart/add")?(a("[SUB-PREVIEW-BLOCK] cart-add blocked in preview mode",{url:r}),Promise.resolve(new Response(JSON.stringify({id:0,properties:{},quantity:0,variant_id:0,key:"preview",title:"Preview â cart-add blocked",price:0,original_price:0,line_price:0,original_line_price:0,total_discount:0,discounts:[],preview:!0}),{status:200,headers:{"Content-Type":"application/json"}}))):e.call(window,i,s)};return t.__shoplift_intercepted=!0,window.fetch=t,function(){window.fetch===t&&(window.fetch=e)}}function 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 ze(a){if(a.subscriptionPriceDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=t?.subscriptionData?null:a.findActiveSubscriptionTestControl(),s=t?.subscriptionData?t:i?.hypothesis;if(!s?.subscriptionData)return;const r=t?.subscriptionData?e.testId:i.testId;a.subscriptionPriceDone=!0;const n=s.subscriptionData,o=s.isControl,l=s.priceData,c=n.widget.widgetType;let d=W(l),p=K(n,d),h=p.discountMap,u=p.maxDiscount;function b(){const g=W(l);g!==d&&(d=g,p=K(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=Y(g),A=ce(n,P,d);if(!de(A,o))return null;const k=P?g.get(P):void 0;return k?{formattedVariantPrice:G(k.priceInCents,l),formattedDiscounted:G(k.priceInCents*(1-u/100),l)}:null}Fe({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=J(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 O=R.querySelector(A),V=R.querySelector(x);if(O&&V){const L=h[O.value];if(L!==void 0){if(L===0)V.style.display!=="none"&&(V.style.display="none");else if(V.style.display==="none"&&(V.style.display=""),V.textContent){const Z=V.textContent.match(/[\d.]+%/)?.[0];Z&&Z!==`${L}%`&&$(V,et=>N(et,L))}}}}}function m(g){const P=g.querySelector("select");if(P)for(const A of Array.from(P.options)){const k=h[A.value];if(k!==void 0&&A.textContent){const x=A.textContent.match(/[\d.]+%/)?.[0];x&&x!==`${k}%`&&(A.textContent=N(A.textContent,k))}}}function y(g,P){const k=D(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 O of Array.from(R.shadowRoot.querySelectorAll("li")))if(O.textContent?.includes("Save")){const V=O;if(P===0)V.style.display!=="none"&&(V.style.display="none");else{V.style.display==="none"&&(V.style.display="");const L=O.textContent.match(/[\d.]+%/)?.[0];L&&L!==`${P}%`&&$(O,Z=>N(Z,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=J(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 O=h[R.value];O!==void 0&&(A=O)}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 O of R){const V=P.querySelector(O.selector)||P.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(g.formattedDiscounted)&&$(V,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 We(a){if(a.subscriptionOneTimeDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=!!(t?.subscriptionData&&t.priceData),s=i?null:a.findActiveSubscriptionTestControl(),r=i?t:s?.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=Y(c);if(!b)return;const E=W(l),S=ce(o,b,E);if(!de(S,d))return;const C=c.get(b);if(!C)return;const _=H(C.priceInCents,l.moneyFormat,l.currency,l.currencyCodeEnabled),T=D(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 Ge(a,e){const{subscriptionPreviewRender:t}=await Ne(async()=>{const{subscriptionPreviewRender:i}=await Promise.resolve().then(()=>Xe);return{subscriptionPreviewRender:i}},void 0);return t(a.subscriptionData,a.priceData,a.isControl,e)}function je(a,e){const t=a.widget.selectors.widgetParent??[],i=a.widget.selectors.subscriptionPlans??[],s=a.widget.selectors.subscriptionInput??[];if(!t.length||!i.length||!s.length){e("[SUB-GLOBAL-HIDE] Missing required selectors â skipping");return}const r=t[0].selector,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 pe="Limited preview",Ke="Add-to-cart and checkout prices won't reflect this test until it launches â test selling plans are not created in your subscription app until after a test is launched.",Je=5e3;function Ye(){const a=document.createElement("div");a.id="shoplift-preview-subscription-warning";const e=document.createElement("span");e.id="shoplift-preview-subscription-warning__icon",e.setAttribute("aria-hidden","true"),e.textContent="!";const t=document.createElement("span");t.id="shoplift-preview-subscription-warning__label",t.textContent=pe;const i=document.createElement("div");i.id="shoplift-preview-subscription-warning__tooltip",i.setAttribute("role","tooltip"),i.textContent=Ke,a.appendChild(e),a.appendChild(t),a.appendChild(i),a.setAttribute("tabindex","0"),a.setAttribute("aria-describedby",i.id),a.setAttribute("aria-label",pe);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},Je)}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 he=!1;class Ze{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))}shop;host;eventHost;disableReferrerOverride;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";legacySessionKey;cssHideClass;testConfigs;inactiveTestConfigs;hiddenSubscriptionPlans;testsFilteredByAudience;sendPageView;shopliftDebug;gaConfig;telemetryEnabled;getCountryTimeout;geoViaShopify;resolvedRegion=null;state;subscriptionPreviewWarningCleanup=null;shopifyAnalyticsId;cookie=document.cookie;isSyncing=!1;isSyncingGA=!1;fetch;localStorageSet;localStorageGet;sessionStorageSet=window.sessionStorage.setItem.bind(window.sessionStorage);sessionStorageGet=window.sessionStorage.getItem.bind(window.sessionStorage);urlParams=new URLSearchParams(window.location.search);device;logHistory;activeViewportObservers=new Map;clientIdRetryCount=0;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)}}
8async 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,we(navigator.userAgent))return;const e=Date.now(),t=!this.state.temporary.lastSeen||e-this.state.temporary.lastSeen>1800*1e3;(!this.state.temporary.entryPage||t)&&(this.state.temporary.entryPage=ee(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(),X)}).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(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`),je(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 ie)return;throw e}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(e){switch(e){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(e){return e.title?e.title:e.type==="price"?e.isControl?"Original prices":"Variant prices":e.isControl?"Original":"Untitled variant "+e.label.toUpperCase()}async 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 Oe(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));
8if(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=De,b.width=12,b.height=12,b.style.height="12px",b.style.width="12px",c.appendChild(b);const E=document.createElement("div");E.className="preview-variant-menu";for(const S of e.variants.filter(C=>C.id!==e.currentVariant)){const C=document.createElement("div");C.className="preview-variant-menu--item";const _=document.createElement("div");_.className="menu-variant-label",_.style.backgroundColor=this.getVariantColor(S.label).bg,_.style.color=this.getVariantColor(S.label).text,_.style.flexShrink="0",_.innerText=S.label.toUpperCase(),C.appendChild(_);const T=document.createElement("span");T.innerText=this.getDefaultVariantTitle(S),C.appendChild(T),C.addEventListener("click",()=>{this.pickVariant(S.id)}),E.appendChild(C)}l.appendChild(E),c.addEventListener("click",()=>{E.className!=="preview-variant-menu preview-variant-menu__visible"?E.classList.add("preview-variant-menu__visible"):E.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",S=>{S.target instanceof Element&&!c.contains(S.target)&&E.className==="preview-variant-menu preview-variant-menu__visible"&&E.classList.remove("preview-variant-menu__visible")})}else c.style.pointerEvents="none",d.style.margin="0";if(l.appendChild(c),r.appendChild(l),e.hasSubscription){this.subscriptionPreviewWarningCleanup?.();const b=Ye();r.appendChild(b.root),this.subscriptionPreviewWarningCleanup=b.cleanup}const h=document.createElement("div"),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 Ge({id:t.id,isControl:t.isControl,subscriptionData:t.subscriptionData,priceData:t.priceData},(i,...s)=>this.log(i,...s)))}async handleSubscriptionLivePreview(e){this.testConfigs.find(s=>s.id===e.testId)?.hypotheses.find(s=>s.id===e.currentVariant)?.subscriptionData&&(this.log("Setting up subscription live preview"),this.subscriptionSwapDone=!1,this.subscriptionOneTimeDone=!1,this.subscriptionPriceDone=!1,await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange())}async finalize(){const e=await this.getCartState();e!==null&&this.queueCartUpdate(e),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),t)return this.log("Forcing variant for hypothesis '%s'",s),!0;if(i!==null)return this.log("Forcing hypothesis '%s'",i),s===i;const r=this.testConfigs.find(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]);const t=this.getReservationForTest(e.id);t&&!t.isRealized&&t.entryCriteriaKey&&(this.log("Realizing manual API reservation for test '%s'",e.id),this.realizeReservationForCriteria(t.entryCriteriaKey)),this.saveState(),this.syncAllEvents()}async handleVisitorTest(e){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests),this.pruneStaleVisitorTests(),this.deriveC
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 n=RegExp("^(/w{2}-w{2})/").exec(t.pathname);if(n&&n.length>1){const o=n[1];t.pathname=`${o}${e.redirectPath}`}else t.pathname=e.redirectPath}else e.type==="theme"?(t.searchParams.set("_ab","0"),t.searchParams.set("_fd","0"),t.searchParams.set("_sc","1"),t.searchParams.set("preview_theme_id",e.themeId.toString())):e.type!=="urlRedirect"&&t.searchParams.set("view",e.affix);const i=this.state.essential.visitorTests.find(n=>n.hypothesisId===e.id)?.testId,s=t.pathname+t.search,r=window.location.pathname+window.location.search;if(i&&s!==r){const n=qe(),o=He({v:2,t:i,n,fh:Me(window.location.pathname+window.location.search)});t.hash=`slr-${n}`;const l=new Date(Date.now()+3e4).toUTCString();document.cookie=`shoplift_redirect=${o};domain=.${window.location.hostname};path=/;SameSite=Strict;expires=${l}`}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(se(r)).test(ee(t.toString())))))}async filterTestsByAudience(e,t,i){const s=[],r=e.some(o=>(o.requiresRegion||this.geoViaShopify&&o.requiresCountry)&&!i.some(l=>l.testId===o.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(o=>o.requiresCountry&&!i.some(l=>l.testId===o.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(o=>(this.log("Error getting country",o),null)));for(const o of e){if(this.log("Checking audience for test '%s'",o.id),this.state.essential.visitorTests.some(d=>d.testId===o.id&&d.hypothesisId==null)){console.log(`Skipping blocked test '${o.id}'`);continue}const l=this.visitorCreatedDuringTestActive(o.statusHistory);(i.some(d=>d.testId===o.id&&(o.device==="all"||o.device===t.device&&o.device===this.device))||this.isTargetAudience(o,t,l,n))&&(this.log("Visitor is in audience for test '%s'",o.id),s.push(o))}this.testsFilteredByAudience=s}async waitForResolvedRegion(e=1500,t=50){const i=Date.now();for(;this.resolvedRegion===null&&Date.now()-i<e;)await new Promise(s=>window.setTimeout(s,t))}isTargetAudience(e,t,i,s){const r=this.getChannel(t);return(e.device==="all"||e.device===t.device&&e.device===this.device)&&(e.visitorOption==="all"||e.visitorOption==="new"&&i||e.visitorOption==="returning"&&!i)&&(e.targetAudiences.length===0||e.targetAudiences.reduce((n,o)=>n||o.reduce((l,c)=>l&&c(t,i,r,s),!0),!1))}visitorCreatedDuringTestActive(e){let t="";for(const i of e){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;t=i.status}return t==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(e){return e.flatMap(t=>t.hypotheses).find(t=>t.type!=="dom"&&t.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getVisitorDomHypothesis(e){return e.flatMap(t=>t.hypotheses).filter(t=>(t.type==="dom"||t.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getHypothesis(e){return this.testConfigs.filter(t=>t.hypotheses.some(i=>i.id===e)).map(t=>t.hypotheses.find(i=>i.id===e))[0]}getActiveAssignment(){if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;return t.currentVariant&&t.testId?{testId:t.testId,hypothesisId:t.currentVariant}:null}const e=this.state.essential.visitorTests.find(t=>t.hypothesisId);return e?.hypothesisId?{testId:e.testId,hypothesisId:e.hypothesisId}:null}findActiveSubscriptionTestControl(){for(const e of this.testConfigs){const t=e.hypotheses.find(i=>i.isControl);if(t?.subscriptionData)return{testId:e.id,hypothesis:t}}return null}getDomSelectorsForHypothesis(e){if(!e)return[];if(e.domSelectors&&e.domSelectors.length>0)return e.domSelectors;if(e.priceData){const t=`${this.priceSelectorsSessionKey}_${e.id}`;try{const s=sessionStorage.getItem(t);if(s){const r=JSON.parse(s);return e.domSelectors=r,this.log("Loaded %d price selectors from cache for hypothesis '%s'",r.length,e.id),r}}catch{}const i=$e(e.priceData);e.domSelectors=i;try{sessionStorage.setItem(t,JSON.stringify(i)),this.log("Generated and cached %d price selectors for hypothesis '%s'",i.length,e.id)}catch{this.log("Generated %d price selectors for hypothesis '%s' (cache unavailable)",i.length,e.id)}return i}return[]}hasThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(e){return this.hasThemeTest(e)&&this.hasTestThatIsNotThemeTest(e)}testIsPaused(e){return e.status==="paused"||e.status==="incompatible"||e.status==="suspended"}visitorActiveTestType(){const e=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==t.hypothesisId)));return e.length===0?null:e.some(t=>t.isThemeTest)?"theme":"templateOrUrlRedirect"}getReservationType(e){return e==="price"||this.isTemplateTestType(e)?"deferred":"immediate"}isTemplateTestType(e){return["product","collection","landing","index","cart","search","blog","article","collectionList"].includes(e)}getEntryCriteriaKey(e){const t=e.hypotheses.find(i=>i.isControl);if(!t)return`unknown:${e.id}`;switch(t.type){case"theme":return"global:theme";case"basicScript":return"global:autoApi";case"price":return"global:price";case"manualScript":return`conditional:manualApi:${e.id}`;case"urlRedirect":return`conditional:url:${t.redirectPath||"unknown"}`;default:return`conditional:template:${t.type}`}}isGlobalEntryCriteria(e){return e.startsWith("global:")}groupTestsByEntryCriteria(e){const t=new Map;for(const i of e){const s=this.getEntryCriteriaKey(i),r=t.get(s)||[];r.push(i),t.set(s,r)}return t}doesCurrentPageMatchEntryCriteria(e){if(this.isGlobalEntryCriteria(e))return!0;
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(se(c)).test(ee(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 be(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(he)return;he=!0,this.log("UseGtag is false â skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const e=this.state.essential.visitorTests.filter(t=>t.shouldSendToGa);e.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",e.length),Promise.allSettled(e.map(t=>this.sendGAEvent(t))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(e){return new Promise(t=>{this.log("Sending GA Event for test %s, hypothesis %s",e.testId,e.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",e.hypothesisId),e.shouldSendToGa=!1,this.persistEssentialState(),t()},s={exp_variant_string:`SL-${e.testId}-${e.hypothesisId}`};
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){const i=decodeURIComponent(window.location.search.substring(1)).split("&");for(let s=0;s<i.length;s++){const r=i[s].split("=");if(r[0]===e)return r[1]||null}return 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 Ue(this)}async subscriptionPriceChange(){await ze(this)}async subscriptionOneTimePrice(){await We(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"),(!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 ie}throw new Error(`Error sending shoplift request ${l.status}`)}return l}queueAddVisitorToTest(e,t){if(this.state.essential.visitorTests.some(s=>s.testId===e))return;const i=this.testConfigs.find(s=>s.id===e);if(this.state.essential.visitorTests.push({createdAt:new Date,testId:e,hypothesisId:t.id,isThemeTest:t.type==="theme",themeId:t.themeId,isSaved:!1,isInvalid:!1,shouldSendToGa:!0,testType:t.type,assignedTo:t.isControl?"control":"variant",testTitle:i?.title}),t.type==="price"){const s=t.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",e,s),this.updatePriceTestHiddenInputs(e,s,!1)}}queueCartUpdate(e){this.queueEvent(new Ce(e))}queuePageView(e){this.queueEvent(new Se(e))}queueEvent(e){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(e)}legacyGetLocalStorageVisitor(){const e=this.localStorageGet(this.legacySessionKey);if(e)try{return JSON.parse(e,F)}catch{}return null}pruneStaleVisitorTests(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(t=>t.id==e.testId)||this.inactiveTestConfigs.filter(t=>this.testIsPaused(t)).some(t=>t.id===e.testId))}pruneStateAndSave(){this.pruneStaleVisitorTests(),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const e=this.loadAnalyticsState(),t={analytics:e,essential:this.loadEssentialState(e),temporary:this.loadTemporaryState()},i=this.legacyGetLocalStorageVisitor(),s=this.legacyGetCookieVisitor(),r=[i,s].filter(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){const t=this.cookie.split("; ").filter(i=>i.split("=").at(0)===e).at(0);return t===void 0?null:t.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",e=>{(async()=>await this.onConsentChange(e.detail.analyticsAllowed,!0))()}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let e=0;const t=()=>{this.loadShopifyConsentApi()||e++<10&&window.setTimeout(t,100)};t()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const e=async()=>{if(!window.Shopify){this.log("Shopify object missing... suddenly?");return}if(window.Shopify.customerPrivacy===void 0){this.log("Shopify CustomerPrivacy api still missing, trying again in 1000ms"),t=window.setTimeout(()=>{(async()=>await e())()},1e3);return}if(this.geoViaShopify){const s=window.Shopify.customerPrivacy.getRegion?.();this.resolvedRegion=typeof s=="string"?s.replace(/-/g,""):""}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let t=window.setTimeout(()=>{(async()=>await e())()},5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(t),i){this.log("Error loading consent tracking",i);return}await e()})()}),!0}return!1}async onConsentChange(e,t){try{if(this.log("Consent change detected",e,t),this.state.essential.consentApproved=e,this.state.essential.hasConsentInteraction=t,!this.state.essential.consentApproved){this.state.essential.hasConsentInteraction&&(this.state.analytics.queue.length=0),this.saveState();return}this.cookie=document.cookie,this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.saveState(),await this.syncAllEvents()}catch(i){this.log("Error syncing on consent change",i)}}isThemePreview(){return isThemePreview||themeRole!=="main"}isAppProxyPath(){const e=["/apps/","/tools/","/a/"],t=window.location.pathname;return e.some(i=>t.startsWith(i))}clearThemeBar(e,t,i){const s=structuredClone(i);this.log("Looking for theme bar"),this.waitForElement(null,"body").then(r=>this.waitForElement(r,"#preview-bar-iframe, #PBarNextFrameWrapper").then(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},X)}):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,()=>{}),Te(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),Le(S,m,y,l),this.log("Applied price to element for product %s",m)),!d&&!this.state.essential.visitorTests.some(w=>w.testId===e)&&(S.setAttribute(this.DATA_SL_TEST_ID,String(e)),this.setupElementViewportTracking(S,e,()=>{d||(d=!0,s(e))}))},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,X,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new Ze("chebeauty-brand.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",false,false,false,{"sendEvents":false,"mode":"gtag"}
8,false,false,1000,[],[],null,false),await window.shopliftInstance.init())})();async function Qe(a,e,t,i){const s=Be({log:i});if(t)return i("[SUB-PREVIEW] A side â no overlay applied; widget renders naturally"),s;const r=a.widget.widgetType,n=e?j(e):null;let o=W(e),l=K(a,o),c=l.discountMap,d=l.maxDiscount;function p(){const f=W(e);f!==o&&(o=f,l=K(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=Y(n),g=v?n.get(v):void 0;return g?{formattedVariantPrice:G(g.priceInCents,e),formattedDiscounted:G(g.priceInCents*(1-f/100),e)}:null}function u(f){const v=J(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 O=c[x.value];if(O!==void 0){const V=R.textContent.match(/[\d.]+%/)?.[0];V&&V!==`${O}%`&&$(R,L=>N(L,O))}}}}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=Y(n),P=g?n.get(g):void 0;if(!P)return;const A=G(P.priceInCents,e),k=D(a,"onetimeContainer"),x=k.length?k[0].selector:'[part~="rc-purchase-option__onetime"]',R=f.querySelector(x);if(R)for(const O of v){const V=R.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(A)&&$(V,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,O=>N(O,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=J(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 Xe=Object.freeze(Object.defineProperty({__proto__:null,subscriptionPreviewRender:Qe},Symbol.toStringTag,{value:"Module"}))})(); })("/", { suffix: "", type: "login" }, "main", 156109275314, false)</script>
8 9<!-- End of Shoplift scripts --> 10 11 12
13<script src="/cdn/shopifycloud/consent-tracking-api/v0.1/consent-tracking-api.js"></script>
13 14
15<script type="text/javascript"> 16 17;(function() { 18 var Rt=Object.defineProperty;var kt=(b,I,E)=>I in b?Rt(b,I,{enumerable:!0,configurable:!0,writable:!0,value:E}):b[I]=E;var c=(b,I,E)=>kt(b,typeof I!="symbol"?I+"":I,E);(function(){"use strict";/*! js-cookie v3.0.8 | MIT */function b(o){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var i in e)i!=="__proto__"&&(o[i]=e[i])}return o}var I={read:function(o){return o[0]==='"'&&(o=o.slice(1,-1)),o.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(o){return encodeURIComponent(o).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function E(o,t){function e(s,n,r){if(!(typeof document>"u")){r=b({},t,r),typeof r.expires=="number"&&(r.expires=new Date(Date.now()+r.expires*864e5)),r.expires&&(r.expires=r.expires.toUTCString()),s=encodeURIComponent(s).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var d="";for(var a in r)r[a]&&(d+="; "+a,r[a]!==!0&&(d+="="+r[a].split(";")[0]));return document.cookie=s+"="+o.write(n,s)+d}}function i(s){if(!(typeof document>"u"||arguments.length&&!s)){for(var n=document.cookie?document.cookie.split("; "):[],r={},d=0;d<n.length;d++){var a=n[d].split("="),l=a.slice(1).join("=");try{var u=decodeURIComponent(a[0]);if(u in r||(r[u]=o.read(l,u)),s===u)break}catch{}}return s?r[s]:r}}return Object.create({set:e,get:i,remove:function(s,n){e(s,"",b({},n,{expires:-1}))},withAttributes:function(s){return E(this.converter,b({},this.attributes,s))},withConverter:function(s){return E(b({},this.converter,s),this.attributes)}},{attributes:{value:Object.freeze(t)},converter:{value:Object.freeze(o)}})}var $=E(I,{path:"/"});const U=class U{constructor(t,e={}){c(this,"_writable");this.kind=t,this.cookieAttributes=e}get writable(){if(this._writable===void 0){const t=`${U.PROBE_KEY}_${this.kind}`;this._writable=this.set(t,"1"),this.remove(t)}return this._writable}get(t){var e;try{return this.kind==="cookie"?$.get(t)??null:((e=this.storage)==null?void 0:e.getItem(t))??null}catch(i){return console.debug(`shogun: could not read '${t}' from ${this.kind} store`,i),null}}set(t,e){try{if(this.kind==="cookie")$.set(t,e,this.cookieAttributes);else{const i=this.storage;if(!i)return!1;i.setItem(t,e)}}catch(i){return console.debug(`shogun: could not write '${t}' to ${this.kind} store`,i),!1}return this.get(t)===e}remove(t){try{if(this.kind==="cookie")$.remove(t,this.cookieAttributes);else{const e=this.storage;if(!e)return!1;e.removeItem(t)}}catch(e){return console.debug(`shogun: could not remove '${t}' from ${this.kind} store`,e),!1}return this.get(t)===null}get storage(){try{return(this.kind==="local"?globalThis.localStorage:globalThis.sessionStorage)??null}catch{return null}}};c(U,"PROBE_KEY","_shg_storage_probe");let v=U;class nt{constructor(t,e){c(this,"CACHE_KEY","_shg_audience_cache");c(this,"CACHE_EXPIRATION_DAYS",7);c(this,"DEVICE_MOBILE_BREAKPOINT",768);c(this,"cache",{timestamp:Date.now(),data:{}});c(this,"storage",new v("local"));this.visitor=t,this.locationApiUrl=e,this.restoreCache()}evaluate(t){switch(t.value=this.snakeCaseKeys(t.value),t.audience_type){case"location":return this.locationMatches(t);case"b2b":return this.b2bMatches(t);case"device":return this.deviceMatches(t);case"logged_in":return this.loggedInMatches(t);case"referrer_contains":return this.referrerContainsMatches(t);case"url_contains":return this.urlContainsMatches(t);case"new_visitor":return this.newVisitorMatches(t);case"returning_visitor":return this.returningVisitorMatches(t);default:return{status:"skipped",expected:t.value,actual:null,reason:`No evaluator implemented for audience type: ${t.audience_type}`}}}evaluateAll(t,e="every"){if(!t||t.length===0)return{status:"eligible",condition:e,expected:{},actual:{}};if(!["every","any"].includes(e))return{status:"error",condition:e,expected:{},actual:{}};const i=t.map(d=>({type:d.audience_type,evaluation:this.evaluate(d)})),s=e==="every"?i.every(d=>d.evaluation.status==="match"):i.some(d=>d.evaluation.status==="match"),n=i.some(d=>d.evaluation.status==="error"),r=e==="every"&&i.some(d=>d.evaluation.status==="no_match");return{status:s?"eligible":n&&!r?"error":"not_eligible",condition:e,expected:t.reduce((d,a)=>(d[a.audience_type]={condition:a.condition,value:a.value},d),{}),actual:i.reduce((d,a)=>(d[a.type]=a.evaluation.actual,d),{}),evaluations:i.reduce((d,a)=>(d[a.type]={status:a.evaluation.status,reason:a.evaluation.reason},d),{})}}b2bMatches(t){const e=t.value===this.visitor.isB2B;return{status:(t.condition==="is_not"?!e:e)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:this.visitor.isB2B}}}deviceMatches(t){const e=window.innerWidth<this.DEVICE_MOBILE_BREAKPOINT||window.outerWidth<this.DEVICE_MOBILE_BREAKPOINT?"mobile":"desktop",i=t.value===e;return{status:(t.condition==="is_not"?!i:i)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:e}}}truncate(t){return t?t.slice(0,200):void 0}locationMatches(t){let e=null;if(!this.cache.data.location){let h=null,_=0;try{const m=new XMLHttpRequest;m.open("GET",this.locationApiUrl,!1),m.send(null),_=m.status,_===200?h=JSON.parse(m.responseText):e={cause:"http_status",status:_,error:this.truncate(m.responseText)}}
18catch(m){e={cause:_===200?"invalid_response":"request_failed",status:_,error:this.truncate(String(m))}}e&&console.debug("shogun: location lookup failed, location audiences cannot be evaluated",e),h&&(this.cache.data.location={country:h==null?void 0:h.country,region:h==null?void 0:h.region,city:h==null?void 0:h.city,timestamp:Date.now()},this.saveCache())}const i={condition:t.condition,value:t.value},s=this.cache.data.location;if(!i||!i.value||!i.value.type||!i.value.country_code)return{status:"no_match",expected:i,actual:s?{value:s}:null};if(!s)return{status:"error",expected:i,actual:e,reason:"location_unavailable"};const{type:n,country_code:r,toponym_name:d,parent_name:a}=i.value;let l=!1;switch(n){case"country":l=s.country===r;break;case"region":l=s.region===d&&s.country===r;break;case"city":l=s.city===d&&s.region===a&&s.country===r;break;default:l=!1}return{status:(t.condition==="is_not"?!l:l)?"match":"no_match",expected:i,actual:{value:s}}}loggedInMatches(t){const e=String(t.value)==="true",i=this.visitor.isLoggedIn===e;return{status:(t.condition==="is_not"?!i:i)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:this.visitor.isLoggedIn}}}referrerContainsMatches(t){if(typeof t.value!="string")return{status:"error",expected:{condition:t.condition,value:t.value},actual:null,reason:"Invalid expected value"};const e=document.referrer.toLowerCase().includes(t.value.toLowerCase());return{status:(t.condition==="is_not"?!e:e)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:document.referrer}}}urlContainsMatches(t){if(typeof t.value!="string")return{status:"error",expected:{condition:t.condition,value:t.value},actual:null,reason:"Invalid expected value"};const e=window.location.href.toLowerCase().includes(t.value.toLowerCase());return{status:(t.condition==="is_not"?!e:e)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:window.location.href}}}returningVisitorMatches(t){if(!this.visitor.detailsPersisted||!this.visitor.details)return{status:"error",expected:{condition:t.condition,value:t.value},actual:null,reason:"visitor_details_unavailable"};const{expected_time_in_milliseconds:e,within_or_after:i}=t.value||{};if(typeof e!="number"||!i)return{status:"error",expected:{condition:t.condition,value:t.value},actual:null,reason:"Invalid expected data"};const s=this.visitor.details.first_visit_timestamp,n=Date.now();if(i==="within"){const r=s+e>n;return{status:(t.condition==="is_not"?!r:r)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:s}}}else{const r=s+e<n;return{status:(t.condition==="is_not"?!r:r)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:s}}}}newVisitorMatches(t){if(!this.visitor.detailsPersisted)return{status:"error",expected:{condition:t.condition,value:t.value},actual:null,reason:"visitor_details_unavailable"};const e=t.value==this.visitor.isFirstVisit;return{status:(t.condition==="is_not"?!e:e)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:this.visitor.isFirstVisit}}}restoreCache(){const t=this.storage.get(this.CACHE_KEY);if(t)try{const e=JSON.parse(t);e.timestamp<=Date.now()-this.CACHE_EXPIRATION_DAYS*24*60*60*1e3?(this.storage.remove(this.CACHE_KEY),this.cache.data={}):this.cache=e}catch{this.storage.remove(this.CACHE_KEY),this.cache.data={}}}saveCache(){this.cache.timestamp=Date.now(),this.storage.set(this.CACHE_KEY,JSON.stringify(this.cache))}snakeCaseKeys(t){if(t==null||typeof t!="object")return t;const e={};for(const[i,s]of Object.entries(t)){const n=i.replace(/[A-Z]/g,r=>`_${r.toLowerCase()}`);e[n]=s}return e}}class A extends Error{constructor(e,i,s={}){super(e,{cause:s.cause});c(this,"optimization");this.reason=i,this.name="DispatchError",this.optimization=s.optimization}}const g=class g{constructor(t){c(this,"customerId");c(this,"isB2B");c(this,"details",null);c(this,"sessionId",null);c(this,"id",null);c(this,"_idsPersisted",!0);c(this,"_detailsPersisted",!0);c(this,"storage",new v("local"));c(this,"sessionCookie",new v("cookie",{expires:1/48,path:"/"}));c(this,"visitorCookie",new v("cookie",{expires:365,path:"/"}));this.context=t,this.sessionId=t.sessionId,this.customerId=t.customerId,this.isB2B=t.isB2B,this.loadCachedDetails(),this.loadAndStoreVisitorId(),this.loadAndStoreSessionId()}static storedIds(){const t=new v("cookie");return{id:t.get(g.VISITOR_ID_KEY),sessionId:t.get(g.SESSION_ID_KEY)}}get bin(){return this.sessionId?this.hashWithDjb2(this.sessionId)%g.DEFAULT_NUMBER_OF_BINS:0}
18get firstVisitTimestamp(){var t;return((t=this.details)==null?void 0:t.first_visit_timestamp)??Date.now()}get isFirstVisit(){return this.firstVisitTimestamp>=Date.now()-g.NEW_VISITOR_THRESHOLD_MINUTES*60*1e3}get isLoggedIn(){return!!this.customerId}loadCachedDetails(){var e;const t=this.storage.get(g.DETAILS_KEY);if(t)try{this.details=JSON.parse(t),typeof((e=this.details)==null?void 0:e.first_visit_timestamp)!="number"&&(console.warn("Invalid visitor details found in storage, resetting."),this.details=null)}catch(i){console.error("Error loading visitor details from storage:",i),this.details=null}this.details||(this.details={first_visit_timestamp:Date.now()},this._detailsPersisted=this.storage.set(g.DETAILS_KEY,JSON.stringify(this.details)))}get detailsPersisted(){return this._detailsPersisted}get idsPersisted(){return this._idsPersisted}get cookiesWritable(){return this.visitorCookie.writable}newId(){try{return crypto.randomUUID()}catch{return console.debug("shogun: this platform will not generate an identifier for the visitor"),null}}loadAndStoreSessionId(){const t=this.sessionId||this.sessionCookie.get(g.SESSION_ID_KEY)||null;t?this.sessionId=t:(this.sessionId=this.newId(),this.sessionId||(this._idsPersisted=!1)),this.sessionId&&(this._idsPersisted=this.sessionCookie.set(g.SESSION_ID_KEY,this.sessionId)&&this._idsPersisted)}loadAndStoreVisitorId(){const t=this.visitorCookie.get(g.VISITOR_ID_KEY)||null;t?this.id=t:(this.id=this.newId(),this.id?this._idsPersisted=this.visitorCookie.set(g.VISITOR_ID_KEY,this.id)&&this._idsPersisted:this._idsPersisted=!1)}hashWithDjb2(t){let e=5381;for(let i=0;i<t.length;i++)e=(e<<5)-e+t.charCodeAt(i),e|=0;return Math.abs(e)}};c(g,"DETAILS_KEY","_shg_ab_visitor_details"),c(g,"SESSION_ID_KEY","_shg_ab_session_id"),c(g,"VISITOR_ID_KEY","_shg_ab_visitor_id"),c(g,"DEFAULT_NUMBER_OF_BINS",1e4),c(g,"NEW_VISITOR_THRESHOLD_MINUTES",30);let T=g;const S=class S{constructor(t){c(this,"buyItNowHandlerAttached",!1);this.config=t}run(){typeof document<"u"&&document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{this.attachBuyItNowHandler()}):setTimeout(()=>{this.attachBuyItNowHandler()},100)}attachBuyItNowHandler(){var s;const t=(s=this.config)==null?void 0:s.currentCartVariantId;if(!t){console.debug("shogun: no current cart variant ID assigned, buy-it-now interception skipped");return}if(this.buyItNowHandlerAttached)return;this.buyItNowHandlerAttached=!0,console.debug("shogun: setting up buy-it-now interception with cart variant ID:",t);const e=async(n,r)=>{var u,h,_,m;const d=(r==null?void 0:r.formData)??new FormData(n);let a=(r==null?void 0:r.variantId)??this.extractVariantIdFromFormData(d);if(!a){console.debug("shogun: no product variant ID found for buy-it-now, interception skipped");return}const l=(r==null?void 0:r.quantity)??(parseInt(d.get("quantity")||"1",10)||1);if(console.debug("shogun: buy-it-now details:",{productVariantId:a,quantity:l,cartVariantId:t,storefrontAccessToken:(u=this.config)!=null&&u.storefrontAccessToken?"***":null,shopDomain:(h=this.config)==null?void 0:h.shopDomain}),(_=this.config)!=null&&_.storefrontAccessToken&&((m=this.config)!=null&&m.shopDomain)){console.debug("shogun: attempting cartCreate with merchandiseId:",`gid://shopify/ProductVariant/${a}`);const D=await this.createCartAndGetCheckoutUrl(a,l,t);if(D){console.debug("shogun: redirecting to cartCreate checkoutUrl (original cart preserved)"),window.location.href=D;return}}console.debug("shogun: falling back to cart add with cart variant"),await this.addToCartAndCheckout(a,l,t)};typeof document<"u"&&(()=>{document.addEventListener("click",n=>{const r=n.target;if(!r)return;const d=this.findPaymentElementFromClick(n,r);if(!d)return;const a=this.findFormForPaymentElement(d,r,n);if(!a)return;
18const l=this.getBuyItNowDetailsFromForm(a);l&&(n.preventDefault(),n.stopPropagation(),n.stopImmediatePropagation(),e(a,l))},{capture:!0})})()}async createCartAndGetCheckoutUrl(t,e,i){var a,l,u,h,_,m,D;if(!((a=this.config)!=null&&a.storefrontAccessToken)||!((l=this.config)!=null&&l.shopDomain))return null;const s=` 19 mutation cartCreate($input: CartInput!) { 20 cartCreate(input: $input) { 21 cart { 22 id 23 checkoutUrl 24 } 25 userErrors { 26 field 27 message 28 } 29 } 30 } 31 `,n=i?[{key:"shogun_variant_id",value:i}]:[];let r=[];i&&this.config.lineItemLevelVariant&&(r=[{key:"_shogun_variant_id",value:i}]);const d={input:{lines:[{merchandiseId:`gid://shopify/ProductVariant/${t}`,quantity:e,attributes:r}],attributes:n}};try{const M=JSON.stringify({query:s,variables:d}),st=`https://${this.config.shopDomain}/api/2026-07/graphql.json`;console.debug("shogun: cartCreate request URL:",st),console.debug("shogun: cartCreate request body:",M);const P=await(await fetch(st,{method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":this.config.storefrontAccessToken},body:M})).json();return console.debug("shogun: cartCreate full response:",JSON.stringify(P,null,2)),(_=(h=(u=P.data)==null?void 0:u.cartCreate)==null?void 0:h.cart)!=null&&_.checkoutUrl?(console.debug("shogun: cartCreate successful, checkoutUrl:",P.data.cartCreate.cart.checkoutUrl),P.data.cartCreate.cart.checkoutUrl):(console.error("shogun: cartCreate failed:",((D=(m=P.data)==null?void 0:m.cartCreate)==null?void 0:D.userErrors)||P.errors),null)}catch(M){return console.error("shogun: cartCreate error:",M),null}}async addToCartAndCheckout(t,e,i){var n;const s={items:[{id:t,quantity:e,properties:{}}]};i&&(s.attributes={shogun_variant_id:i},(n=this.config)!=null&&n.lineItemLevelVariant&&(s.items[0].properties={_shogun_variant_id:i}));try{const r=await fetch("/cart/add.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});r.ok?(console.debug("shogun: added to cart, redirecting to checkout"),window.location.href="/checkout"):console.error("shogun: cart add failed:",await r.text())}catch(r){console.error("shogun: cart add error:",r)}}findPaymentElementFromClick(t,e){const i=e.closest(S.SHOPIFY_PAYMENT_BUTTON_SELECTOR);if(i)return i;const s=typeof t.composedPath=="function"?t.composedPath():[];for(const n of s)if(n instanceof HTMLElement&&n.matches(S.SHOPIFY_PAYMENT_BUTTON_SELECTOR))return n;return null}findFormForPaymentElement(t,e,i){const s=t.closest("form");if(s)return s;const n=e==null?void 0:e.closest("form");if(n)return n;const r=(e==null?void 0:e.closest("[form]"))||t.closest("[form]")||t.querySelector("[form]"),d=r==null?void 0:r.getAttribute("form");if(d){const h=document.getElementById(d);if(h instanceof HTMLFormElement)return h}const a=typeof(i==null?void 0:i.composedPath)=="function"?i.composedPath():[];for(const h of a)if(h instanceof HTMLFormElement)return h;const l=document.querySelectorAll("form");let u=null;for(const h of l)if(h.querySelector(S.SHOPIFY_PAYMENT_BUTTON_SELECTOR)){if(u)return console.debug("shogun: multiple payment-button forms found; skipping ambiguous buy-it-now form mapping"),null;u=h}return u}normalizeProductVariantId(t){if(!t)return null;const e=String(t);if(!e.includes("gid://"))return e;const i=e.match(/\/(\d+)$/);return i?i[1]:e}extractVariantIdFromFormData(t){const e=t.get("id")||t.get("variant_id");if(!e)return null;const i=this.normalizeProductVariantId(e);return i&&i!==e&&console.debug("shogun: extracted numeric ID from GID:",i),i}
31getBuyItNowDetailsFromForm(t){const e=new FormData(t),i=this.extractVariantIdFromFormData(e);if(!i)return null;const s=parseInt(e.get("quantity")||"1",10)||1;return{formData:e,variantId:i,quantity:s}}};c(S,"SHOPIFY_PAYMENT_BUTTON_SELECTOR",'shopify-buy-it-now-button, shopify-accelerated-checkout, [data-shopify="payment-button"], .shopify-payment-button');let z=S;class V{constructor(t,e,i){c(this,"id");c(this,"name");c(this,"type");c(this,"scope");c(this,"config");c(this,"variants");c(this,"assignedVariantId");c(this,"state");c(this,"assignedAt");c(this,"eligibility");c(this,"context");c(this,"audienceEvaluator");this.id=t.id,this.name=t.name,this.type=t.type,this.scope=t.scope,this.config=t.config||{},this.variants=t.variants||[],this.assignedVariantId=t.assignedVariantId,this.state=t.assignedVariantId?t.state:void 0,this.assignedAt=t.assignedVariantId?t.assignedAt:void 0,this.context=e,this.audienceEvaluator=i}get isFirstAssignment(){return!!this.assignedVariantId&&this.state===void 0}get isFirstView(){return!!this.assignedVariantId&&(this.isEligible||this.isOnAssignedVariant)&&this.state!=="started"}get assignedVariant(){return this.assignedVariantId&&this.variants.find(t=>t.id===this.assignedVariantId)||null}get originalVariant(){return this.variants.find(t=>t.config.original)||null}get isOnAssignedVariant(){var t;return this.assignedVariantId?this.assignedVariantId===((t=this.currentVariant)==null?void 0:t.id):!1}get isEligible(){var t;return((t=this.eligibility)==null?void 0:t.status)==="eligible"}get firstNonDefaultEligibleVariant(){if(!this.eligibility||!this.eligibility.variants)return null;const t=Object.entries(this.eligibility.variants).filter(([i,s])=>s.status==="eligible").map(([i,s])=>i);return this.variantsByPosition().find(i=>t.includes(i.id)&&!i.config.original)||null}get inReview(){return this.type==="review"}get canDispatch(){return!!this.assignedVariant}get needsDispatch(){return this.assignedVariantId?!this.isOnAssignedVariant&&(this.inReview||this.isEligible):!1}evaluateEligibility(){const t=this.type=="ab_test"?this.evaluateAudienceEligibility():{status:"eligible",condition:void 0,expected:{},actual:{}},e=this.evaluateScopeEligibility(),i=this.evaluateVariantAudienceEligibility(),s=[t,e].every(r=>r.status==="eligible"||r.status==="match")&&(Object.keys(i).length===0||Object.values(i).some(r=>r.status==="eligible")),n=[t,e,...Object.values(i)].some(r=>r.status==="error");this.eligibility={status:s?"eligible":n?"error":"not_eligible",audience:t,scope:e,variants:i}}evaluateAudienceEligibility(){return this.audienceEvaluator.evaluateAll(this.config.audiences||[],this.config.audiences_condition||"every")}evaluateVariantAudienceEligibility(){const t={};for(const e of this.variants)e.config.audiences&&e.config.audiences.length>0?t[e.id]=this.audienceEvaluator.evaluateAll(e.config.audiences,e.config.audiences_condition||"every"):e.config.original||(t[e.id]={status:"eligible",condition:void 0,expected:{},actual:{}});return t}finalize(){this.isEligible&&this.removeViewParam()}extractPartialTemplateKey(t){if(!t)return;const e=t.split(".");return e.length<2?t:e.slice(0,-1).join(".")}variantForCurrentTemplate(){const t=this.pagePartialTemplateKey();return this.variants.find(e=>this.extractPartialTemplateKey(e.config.full_template_key)===t)||null}matchesCurrentTemplate(){return this.variantForCurrentTemplate()!==null}pagePartialTemplateKey(){const t=this.context.page.templateDirectory||(this.context.page.pageType==="metaobject"?"metaobject":null),e=t?`templates/${t}/`:"templates/",i=[this.context.page.templateName,this.context.page.templateSuffix].filter(Boolean).join(".");return e+i}extractViewParamFromFullTemplateKey(t){if(!t)return;const e=t.split("/").pop().split(".")||[];return e.slice(1,e.length-1).join(".")}variantsByPosition(){return this.variants.slice().sort((t,e)=>{const i=t.position||0,s=e.position||0;return i-s})}removeViewParam(){const t=new URL(window.location.href);t.searchParams.delete("view"),window.history.replaceState({},"",t.toString())}redirect(t){t.searchParams.delete("cache"),window.location.replace(t.toString())}}class N extends V{constructor(e,i,s){super(e,i,s);c(this,"buyItNowFinalizer",null);this.buyItNowFinalizer=new z({currentCartVariantId:this.context.page.currentCartVariantId,shopDomain:this.context.shop.shopDomain,storefrontAccessToken:this.context.shop.storefrontAccessToken})}get currentVariant(){return this.variants.find(e=>e.id===this.context.page.currentCartVariantId)||null}evaluateScopeEligibility(){return{status:"match",expected:this.scope,actual:this.scope}}
31dispatch(){this.dispatchCartAssignment(new URL(window.location.href))}dispatchCartAssignment(e){var n;const i=this.assignedVariant;if(!i)throw new Error(`Cannot dispatch ${this.scope} optimization because the assigned variant is not set`);const s=new XMLHttpRequest;if(s.open("POST","/cart/update.js",!1),s.setRequestHeader("Content-Type","application/json"),s.send(JSON.stringify({attributes:{shogun_variant_id:i==null?void 0:i.id}})),s.status===200){const r=(n=i==null?void 0:i.config)==null?void 0:n.theme_id;console.debug(`shogun: dispatching ${this.scope} optimization by setting cart attribute and reloading the page to reflect cart changes`+(r?` with theme_id '${r}'`:"")),this.redirect(e)}else throw new Error(`Failed to update cart for ${this.scope} optimization dispatch, status: ${s.status}`)}finalize(){var e;(this.isEligible||this.inReview)&&((e=this.buyItNowFinalizer)==null||e.run())}}class rt extends N{}class at extends V{get currentVariant(){return this.matchesPage()?this.variantForCurrentTemplate():null}matchesPage(){const{page_type:t,page_id:e}=this.config,i=!t||t===this.context.page.pageType,s=!e||e===this.context.page.pageId;return i&&s}evaluateScopeEligibility(){const{page_type:t,page_id:e}=this.config,i=new URLSearchParams(window.location.search).get("view");return i&&!this.variants.some(s=>this.extractViewParamFromFullTemplateKey(s.config.full_template_key)===i)?{status:"skipped",expected:void 0,actual:void 0,reason:"Visitor has view param that does not match any variant template keys, likely previewing a template change from theme editor"}:{status:this.scope==="page"&&this.matchesCurrentTemplate()&&this.matchesPage()?"match":"no_match",expected:{page_type:t,page_id:e},actual:{page_type:this.context.page.pageType,page_id:this.context.page.pageId}}}get canDispatch(){var t;return super.canDispatch&&!!this.extractViewParamFromFullTemplateKey((t=this.assignedVariant)==null?void 0:t.config.full_template_key)}dispatch(){var i,s,n;const t=new URL(window.location.href),e=this.extractViewParamFromFullTemplateKey((i=this.assignedVariant)==null?void 0:i.config.full_template_key);if(!e)throw new Error(`Assigned variant does not have a valid viewParam for dispatching full_template_key: ${(s=this.assignedVariant)==null?void 0:s.config.full_template_key}, variant: ${(n=this.assignedVariant)==null?void 0:n.id}`);t.searchParams.set("view",e),console.debug("shogun: Dispatching page optimization by redirecting to ",t.toString()),this.redirect(t)}}class ot extends N{}class ct extends N{}const B="_shogun_variant_id",x=`properties[${B}]`,dt=/\/cart\/add(\.js)?$/;class lt{constructor(t){c(this,"addToCartHandlerAttached",!1);c(this,"cartAddRequestInterceptionAttached",!1);this.config=t}run(){var e;const t=(e=this.config)==null?void 0:e.currentCartVariantId;if(!t){console.debug("shogun: no current cart variant ID assigned, add-to-cart interception skipped");return}this.interceptCartAddRequests(t),typeof document<"u"&&document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{this.attachAddToCartHandler(t)}):setTimeout(()=>{this.attachAddToCartHandler(t)},100)}attachAddToCartHandler(t){this.addToCartHandlerAttached||(this.addToCartHandlerAttached=!0,console.debug("shogun: setting up add-to-cart interception with cart variant ID:",t),document.querySelectorAll('form[action="/cart/add"]').forEach(e=>{const i=document.createElement("input");i.name=x,i.value=t,i.type="hidden",e.appendChild(i)}))}interceptCartAddRequests(t){this.cartAddRequestInterceptionAttached||(this.cartAddRequestInterceptionAttached=!0,this.interceptFetchCartAdd(t),this.interceptXhrCartAdd(t))}interceptFetchCartAdd(t){if(typeof window>"u"||typeof window.fetch!="function")return;const e=window.fetch,i=this;window.fetch=function(s,n){try{const r=((n==null?void 0:n.method)??(s instanceof Request?s.method:"GET")).toUpperCase(),d=s instanceof Request?s.url:String(s);if(r==="POST"&&i.isCartAddUrl(d)&&(n==null?void 0:n.body)!=null){const a=i.withShogunVariantProperty(n.body,t);if(a!==null)return e.call(this,s,{...n,body:a})}}catch(r){console.debug("shogun: failed to inject cart variant into fetch cart add request:",r)}return e.call(this,s,n)}}interceptXhrCartAdd(t){if(typeof XMLHttpRequest>"u")return;const e=XMLHttpRequest.prototype.open,i=XMLHttpRequest.prototype.send,s=this;XMLHttpRequest.prototype.open=function(n,r,d=!0,a,l){return this.__shogunIsCartAdd=(n==null?void 0:n.toUpperCase())==="POST"&&s.isCartAddUrl(String(r)),e.call(this,n,r,d,a,l)},XMLHttpRequest.prototype.send=function(n){if(this.__shogunIsCartAdd&&n!=null&&!(n instanceof Document))try{const r=s.withShogunVariantProperty(n,t);if(r!==null)return i.call(this,r)}catch(r){console.debug("shogun: failed to inject cart variant into XHR cart add request:",r)}return i.call(this,n)}}isCartAddUrl(t){try{const e=new URL(t,window.location.origin);return e.origin===window.location.origin&&dt.test(e.pathname)}catch{return!1}}withShogunVariantProperty(t,e){return t instanceof FormData||t instanceof URLSearchParams?(t.has(x)||t.append(x,e),t):typeof t=="string"?this.withShogunVariantPropertyInString(t,e):null}withShogunVariantPropertyInString(t,e){try{const s=JSON.parse(t);return s&&typeof s=="object"&&!Array.isArray(s)?JSON.stringify(this.withShogunVariantPropertyInPayload(s,e)):null}catch{}if(!t.includes("="))return null;const i=new URLSearchParams(t);return i.has(x)||i.append(x,e),i.toString()}withShogunVariantPropertyInPayload(t,e){return Array.isArray(t.items)?{...t,items:t.items.map(i=>i&&typeof i=="object"?{...i,properties:this.withVariantProperty(i.properties,e)}:i)}:"id"in t?{...t,properties:this.withVariantProperty(t.properties,e)}:t}withVariantProperty(t,e){const i=t&&typeof t=="object"?t:{};return i[B]!=null?i:{...i,[B]:e}}}const R=class R{constructor(){c(this,"observer",null)}removePreviewBar(t){t instanceof Element&&t.matches(R.PREVIEW_BAR_IFRAME_SELECTOR)&&(console.debug(`shogun: Removing preview bar iframe with id: ${t.id}`),t.remove(),this.stop()),t.querySelectorAll(R.PREVIEW_BAR_IFRAME_SELECTOR).forEac
31h(e=>{console.debug(`shogun: Removing preview bar iframe with id: ${e.id}`),e.remove(),this.stop()})}run(){if(this.observer)return;const t=document.documentElement;t&&(this.observer=new MutationObserver(e=>{for(const i of e)for(const s of i.addedNodes)s instanceof Element&&this.removePreviewBar(s)}),this.observer.observe(t,{childList:!0,subtree:!0}),this.removePreviewBar(document))}stop(){var t;(t=this.observer)==null||t.disconnect(),this.observer=null}};c(R,"PREVIEW_BAR_IFRAME_SELECTOR","#preview-bar-iframe, #PBarNextFrameWrapper");let F=R;class ht extends N{constructor(e,i,s){super(e,i,s);c(this,"addToCartFinalizer",null);c(this,"themePreviewFinalizer",null);this.buyItNowFinalizer=new z({currentCartVariantId:this.context.page.currentCartVariantId,shopDomain:this.context.shop.shopDomain,storefrontAccessToken:this.context.shop.storefrontAccessToken,lineItemLevelVariant:!0}),this.addToCartFinalizer=new lt({currentCartVariantId:this.context.page.currentCartVariantId})}get currentVariant(){const e=super.currentVariant;if(!e)return null;const i=e.config.theme_id;return i?i===this.context.page.themeId?e:null:e}dispatch(){var s;const e=new URL(window.location.href),i=(s=this.assignedVariant)==null?void 0:s.config.theme_id;i&&i!==this.context.page.themeId&&e.searchParams.set("preview_theme_id",i),this.dispatchCartAssignment(e)}finalize(){var e,i,s,n;(this.isEligible||this.inReview)&&((e=this.addToCartFinalizer)==null||e.run(),(i=this.buyItNowFinalizer)==null||i.run()),this.isOnAssignedVariant&&((s=this.assignedVariant)!=null&&s.config.theme_id)&&(this.themePreviewFinalizer||(this.themePreviewFinalizer=new F),(n=this.themePreviewFinalizer)==null||n.run())}}class ut extends V{get currentVariant(){return this.variantForCurrentTemplate()}evaluateScopeEligibility(){const t=this.pagePartialTemplateKey();return{status:this.matchesCurrentTemplate()?"match":"no_match",expected:t,actual:t}}get canDispatch(){var t;return super.canDispatch&&!!this.extractViewParamFromFullTemplateKey((t=this.assignedVariant)==null?void 0:t.config.full_template_key)}dispatch(){var i,s,n;const t=new URL(window.location.href),e=this.extractViewParamFromFullTemplateKey((i=this.assignedVariant)==null?void 0:i.config.full_template_key);if(!e)throw new Error(`Assigned variant does not have a valid viewParam for dispatching full_template_key: ${(s=this.assignedVariant)==null?void 0:s.config.full_template_key}, variant: ${(n=this.assignedVariant)==null?void 0:n.id}`);t.searchParams.set("view",e),console.debug("shogun: Dispatching template optimization by redirecting to ",t.toString()),this.redirect(t)}}class J extends V{constructor(e,i,s){super(e,i,s);c(this,"themePreviewFinalizer",null);this.themePreviewFinalizer=new F}get currentVariant(){return this.variants.find(e=>e.config.theme_id===this.context.page.themeId)||null}evaluateScopeEligibility(){if(!this.originalVariant)return{status:"error",expected:void 0,actual:void 0,reason:"Original variant is missing"};const e=this.originalVariant.config.theme_id;return e?{status:e===this.context.page.themeId?"match":"no_match",expected:e,actual:this.context.page.themeId}:{status:"error",expected:void 0,actual:void 0,reason:"Original variant is missing theme_id in config"}}
31get needsDispatch(){return this.isEligible&&!this.isOnAssignedVariant&&this.isFirstView}get canDispatch(){var e;return super.canDispatch&&!!((e=this.assignedVariant)!=null&&e.config.theme_id)}dispatch(){var s,n;const e=(s=this.assignedVariant)==null?void 0:s.config.theme_id;if(!e)throw new Error(`Assigned variant does not have a valid theme_id for dispatching, variant: ${(n=this.assignedVariant)==null?void 0:n.id}`);const i=new URL(window.location.href);i.searchParams.set("preview_theme_id",e),console.debug("shogun: Dispatching theme optimization by redirecting to ",i.toString()),this.redirect(i)}finalize(){var e;this.isOnAssignedVariant&&((e=this.themePreviewFinalizer)==null||e.run())}}c(J,"PREVIEW_BAR_IFRAME_IDS",["preview-bar-iframe","PBarNextFrameWrapper"]);class gt extends V{get currentVariant(){const t=decodeURIComponent(this.getCurrentPathWithoutLanguagePrefix());return this.variants.find(e=>e.config.path===t)||null}evaluateScopeEligibility(){const t=this.variants.find(r=>r.config.original);if(!t)return{status:"error",expected:void 0,actual:void 0,reason:"Original variant is missing"};const e=t.config.path;if(!e)return{status:"error",expected:void 0,actual:void 0,reason:"Original variant is missing path in config"};if(new URL(window.location.href).searchParams.get("view"))return{status:"skipped",expected:void 0,actual:void 0,reason:"Visitor is likely previewing a template change from theme editor"};const s=this.getCurrentPathWithoutLanguagePrefix(),n=decodeURIComponent(s);return{status:decodeURIComponent(e)===n?"match":"no_match",expected:e,actual:n}}get needsDispatch(){return!this.assignedVariantId||!this.isEligible?!1:(console.debug("shogun: Checking if URL redirect optimization needs dispatch. isOnAssignedVariant:",this.isOnAssignedVariant,"isFirstView:",this.isFirstView,"permanentRedirect:",this.config.permanent_redirect),this.config.permanent_redirect===!0&&!this.isOnAssignedVariant||!this.isOnAssignedVariant&&this.isFirstView===!0)}get canDispatch(){var t;return super.canDispatch&&!!((t=this.assignedVariant)!=null&&t.config.path)}get isOnAssignedVariant(){var e;if(super.isOnAssignedVariant)return!0;const t=((e=this.currentVariant)==null?void 0:e.config.original)===!0;return!!this.assignedVariantId&&t&&this.state==="started"&&this.config.permanent_redirect!==!0}dispatch(){var e,i,s,n,r;const t=new URL(window.location.href);if(!((e=this.assignedVariant)!=null&&e.config.path))throw new Error(`Assigned variant does not have a valid path for dispatching path: ${(i=this.assignedVariant)==null?void 0:i.config.path}, variant: ${(s=this.assignedVariant)==null?void 0:s.id}`);t.pathname=this.context.page.languageRootUrl!=="/"?this.context.page.languageRootUrl+((n=this.assignedVariant)==null?void 0:n.config.path):(r=this.assignedVariant)==null?void 0:r.config.path,console.debug("shogun: Dispatching url optimization by redirecting to ",t.toString()),this.redirect(t)}getCurrentPathWithoutLanguagePrefix(){return this.context.page.languageRootUrl==="/"||!this.context.page.path.startsWith(this.context.page.languageRootUrl)?this.context.page.path:this.context.page.path.replace(this.context.page.languageRootUrl,"")}}function X(o,t,e){switch(o.scope){case"page":return new at(o,t,e);case"template":return new ut(o,t,e);case"theme":return new J(o,t,e);case"url_redirect":return new gt(o,t,e);case"price":return new ot(o,t,e);case"product_details":return new ct(o,t,e);case"checkout":return new rt(o,t,e);case"shipping":return new ht(o,t,e);default:return console.debug(`shogun: No implementation for optimization scope '${o.scope}', ignoring optimization '${o.name}' (${o.id})`),null}}class H{constructor(t){c(this,"visitorBin");this.visitorBin=t}getRandomVariantForVisitorBin(t){let e=null,i=0;for(const s of t)if(i+=T.DEFAULT_NUMBER_OF_BINS*this.trafficForVariant(s)/100,this.visitorBin<i){e=s;break}return e||null}trafficForVariant(t){return t.config.percentage||0}}const k=class k extends H{assign(t){var s,n;if(t.length===0)return null;const e=this.sortOptimizationsByPriority(t),i=e.find(r=>r.firstNonDefaultEligibleVariant!==null);return i?(i.assignedVariantId=(s=i.firstNonDefaultEligibleVariant)==null?void 0:s.id,i):(e[0].assignedVariantId=(n=e[0].originalVariant)==null?void 0:n.id,e[0])}sortOptimizationsByPriority(t){return t.sort((e,i)=>{const s=this.scopePriority(e.scope),n=this.scopePriority(i.scope);return s-n})}
31scopePriority(t){return k.SCOPE_PRIORITIES[t||"page"]??k.SCOPE_PRIORITIES.page}};c(k,"SCOPE_PRIORITIES",{theme:1,template:2,page:3,url_redirect:4,price:5,product_details:6,checkout:7,shipping:8});let K=k;class Z extends H{assign(t){const e=t.filter(n=>n.isEligible);if(e.length===0)return null;const i=e[Math.floor(Math.random()*e.length)],s=this.getRandomVariantForVisitorBin(i.variants);return s?(i.assignedVariantId=s.id,i):null}}class pt extends H{assign(t){const e=t.flatMap(n=>n.variants),i=this.getRandomVariantForVisitorBin(e),s=t.find(n=>n.variants.some(r=>r.id===(i==null?void 0:i.id)))||null;return s&&i?(s.assignedVariantId=i.id,s):null}trafficForVariant(t){return t.traffic_percentage||0}}const O=class O{constructor(){c(this,"storage",new v("session"))}save(){typeof document>"u"||this.storage.set(O.STORAGE_KEY,document.referrer)||console.debug("shogun: could not retain the referrer, this visitor will be attributed to an internal redirect")}restore(){const t=this.storage.get(O.STORAGE_KEY);return t===null?typeof document<"u"&&document.referrer||null:(this.overrideDocumentReferrer(t),t||null)}clear(){this.storage.remove(O.STORAGE_KEY)}overrideDocumentReferrer(t){if(!(typeof document>"u"))try{Object.defineProperty(document,"referrer",{configurable:!0,get:()=>t})}catch(e){console.debug("shogun: failed to set original referrer via `Object.defineProperty`"),console.error(e);try{window.document.__defineGetter__("referrer",()=>t)}catch(i){console.debug("shogun: failed to set original referrer via `__defineGetter__`"),console.error(i)}}}};c(O,"STORAGE_KEY","_shg_referrer");let Y=O;const p=class p{constructor(t,e){c(this,"storage",new v("session"));c(this,"previewLinkHandlerAttached",!1);c(this,"_optimizationInReview");c(this,"optimizationResolved",!1);this.context=t,this.audienceEvaluator=e}get inReview(){return!!this.optimizationInReview}get optimizationInReview(){if(!this.optimizationResolved){const t=this.previewVariantId;this._optimizationInReview=t?X({id:"review-optimization",name:"Review Optimization",type:"review",scope:this.previewScope,state:"started",variants:[{id:t,name:"Preview Variant",optimization_id:"review-optimization",traffic_percentage:100,config:{original:!1,percentage:100}}],assignedVariantId:t},{page:this.context.page,shop:this.context.shop},this.audienceEvaluator):null,this.optimizationResolved=!0}return this._optimizationInReview||null}run(){const t=document.getElementById(p.PANEL_TEMPLATE_ID);if(!t){console.debug("shogun: sidebar not found!!!");return}const e=t.content.cloneNode(!0);this.attachPreviewLinkClickHandler();const i=()=>{document.body.style.paddingLeft="360px",document.body.style.paddingTop="50px",document.body.prepend(e),typeof window.restoreCollapsedState=="function"&&window.restoreCollapsedState(),typeof window.restoreDescriptionHeightState=="function"&&window.restoreDescriptionHeightState()};if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",i);return}i()}get previewVariantId(){const e=new URLSearchParams(window.location.search).get(p.REVIEW_OPTIMIZATION_VARIANT_ID_PARAM),i=this.storage.get(p.PREVIEW_VARIANT_ID_STORAGE_KEY);return e&&e!==i?(console.debug(`shogun: theme review in progress, setting variant: ${e}`),this.storage.set(p.PREVIEW_VARIANT_ID_STORAGE_KEY,e),e):(i&&console.debug(`shogun: theme review in progress, viewing variant: ${i}`),i)}get previewScope(){const e=new URLSearchParams(window.location.search).get(p.REVIEW_OPTIMIZATION_SCOPE_PARAM),i=this.storage.get(p.PREVIEW_OPTIMIZATION_SCOPE_STORAGE_KEY);return e&&e!==i?(console.debug(`shogun: theme review in progress, setting scope: ${e}`),this.storage.set(p.PREVIEW_OPTIMIZATION_SCOPE_STORAGE_KEY,e),e):i?(console.debug(`shogun: theme review in progress, using scope: ${i}`),i):p.DEFAULT_REVIEW_SCOPE}attachPreviewLinkClickHandler(){this.previewLinkHandlerAttached||(this.previewLinkHandlerAttached=!0,document.addEventListener("click",t=>{var n,r;const e=(r=(n=t.target).closest)==null?void 0:r.call(n,'a[id^="shg-preview-btn-"]'),i=e==null?void 0:e.dataset.variantId;if(!i)return;t.preventDefault();const s=new URLSearchParams(window.location.search);s.set(p.REVIEW_OPTIMIZATION_VARIANT_ID_PARAM,i),window.location.href=`${window.location.pathname}?${s.toString()}`}))}};c(p,"PANEL_TEMPLATE_ID","shogun-price-test-preview"),c(p,"PREVIEW_VARIANT_ID_
31STORAGE_KEY","_shg_preview_variant_id"),c(p,"PREVIEW_OPTIMIZATION_SCOPE_STORAGE_KEY","_shg_preview_optimization_scope"),c(p,"REVIEW_OPTIMIZATION_VARIANT_ID_PARAM","shgpvid"),c(p,"REVIEW_OPTIMIZATION_SCOPE_PARAM","shgsc"),c(p,"DEFAULT_REVIEW_SCOPE","product_details");let j=p;var ft=" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x7|;\\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/",mt=/bot|crawl|http|lighthouse|scan|search|spider/i,C;function vt(){if(C instanceof RegExp)return C;try{C=new RegExp(ft,"i")}catch{C=mt}return C}var wt=o=>typeof o=="string"&&o!=="";function _t(o){return wt(o)&&vt().test(o)}var bt=_t;const f=class f{constructor(t){c(this,"storage",new v("local"));this.publishedOptimizationIds=t}get writable(){return this.storage.writable}get legacyEntries(){return Object.values(this.getState()).filter(t=>typeof t=="string").length}get(t){const e=this.getState()[t];return!e||typeof e=="string"?void 0:{...e,state:e.state??"started"}}update(t){var r,d,a,l;if(t.type!=="ab_test"||t.inReview)return!0;console.debug(`shogun: Caching assignment for optimization: '${t.name}' (${t.id}) to variant: '${(r=t.assignedVariant)==null?void 0:r.name}' (${(d=t.assignedVariant)==null?void 0:d.id})'`);const e=this.getState(),i=t.state??"assigned",s=e[t.id],n=s&&typeof s=="object"?s.assignedAt:t.assignedAt??(t.isFirstAssignment?Date.now():void 0);return t.assignedAt=n,this.storage.set(f.STORAGE_KEY,JSON.stringify({...e,[t.id]:{variantId:t.assignedVariantId,themeId:(l=(a=t.assignedVariant)==null?void 0:a.config)==null?void 0:l.theme_id,state:i,assignedAt:n}}))}markDispatched(t){const e=this.getState(),i=e[t];if(!i||typeof i!="object")return null;const s=Date.now();return this.storage.set(f.STORAGE_KEY,JSON.stringify({...e,[t]:{...i,dispatchedAt:s}}))?s:null}pendingDispatch(){let t;try{t=JSON.parse(this.storage.get(f.STORAGE_KEY)||"{}")??{}}catch{return null}for(const[e,i]of Object.entries(t))if(i&&typeof i=="object"&&typeof i.dispatchedAt=="number"){const s=typeof i.landedAt=="number"?i.landedAt:void 0;return{optimizationId:e,variantId:i.variantId,dispatchedAt:i.dispatchedAt,landedAt:s}}return null}markLanded(t,e){const i=this.getState(),s=i[t];!s||typeof s!="object"||s.dispatchedAt!==e||this.storage.set(f.STORAGE_KEY,JSON.stringify({...i,[t]:{...s,landedAt:Date.now()}}))}clearDispatched(){const t=this.getState(),e=Object.keys(t).filter(i=>{const s=t[i];return typeof s=="object"&&s!==null&&(s.dispatchedAt!==void 0||s.landedAt!==void 0)});e.length!==0&&(e.forEach(i=>
31{const{dispatchedAt:s,landedAt:n,...r}=t[i];t[i]=r}),this.storage.set(f.STORAGE_KEY,JSON.stringify(t)))}clearExpired(){const t=this.getState();if(this.expiredOptimizationIds().forEach(i=>delete t[i]),!this.storage.set(f.STORAGE_KEY,JSON.stringify(t))){console.debug("shogun: could not clear expired optimization state, not redirecting so the visitor is not sent round in a loop");return}console.debug("shogun: cleared expired optimization state, redirecting to default theme");const e=new URL(window.location.href);e.searchParams.set(f.PREVIEW_THEME_PARAM,""),window.location.replace(e.toString())}hasExpiredEntries(){return this.expiredOptimizationIds().length>0}expiredOptimizationIds(){return Object.entries(this.getState()).filter(([t,e])=>typeof e=="string"?!0:!!e.themeId).map(([t])=>t).filter(t=>!this.publishedOptimizationIds.includes(t))}getState(){try{const t=JSON.parse(this.storage.get(f.STORAGE_KEY)||"{}");return!t||typeof t!="object"||Array.isArray(t)?{}:t}catch{return this.storage.remove(f.STORAGE_KEY),{}}}};c(f,"STORAGE_KEY","_shg_ab_optimizations_cache"),c(f,"PREVIEW_THEME_PARAM","preview_theme_id");let q=f;function Q(){const o=At(),t=yt();return{navigation_type:(o==null?void 0:o.type)??null,prerendering:t.prerendering,activation_start:typeof(o==null?void 0:o.activationStart)=="number"?Math.round(o.activationStart):null,visibility:t.visibility,elapsed_ms:It(),webdriver:Et()}}function yt(){try{return{prerendering:"prerendering"in document?!!document.prerendering:null,visibility:document.visibilityState??null}}catch(o){return console.debug("shogun: could not read the state of this page",o),{prerendering:null,visibility:null}}}function It(){try{return Math.round(performance.now())}catch(o){return console.debug("shogun: could not read how long this page has been loading",o),null}}function Et(){try{return"webdriver"in navigator?!!navigator.webdriver:null}catch(o){return console.debug("shogun: could not read whether this page is driven by automation",o),null}}function At(){try{return performance.getEntriesByType("navigation")[0]??null}catch(o){return console.debug("shogun: could not read the navigation timing for this page",o),null}}const tt={visitor_consent:null,banner:null,region:null};function et(o){var t,e,i;if(!o)return tt;try{return{visitor_consent:((t=o.currentVisitorConsent)==null?void 0:t.call(o))??null,banner:((e=o.shouldShowBanner)==null?void 0:e.call(o))??null,region:((i=o.getRegion)==null?void 0:i.call(o))||null}}catch(s){return console.debug("shogun: could not read the consent state",s),tt}}const y=class y{constructor(t){c(this,"pixelTrackingStarted",!1);c(this,"assignedOptimization",null);c(this,"pageViewId",y.newPageViewId());this.context=t}static newPageViewId(){try{return crypto.randomUUID()}catch{return null}}get configLapsed(){const t=this.context.shop.configExpiresAt;return typeof t=="number"&&Date.now()-t>=y.CONFIG_LAPSE_GRACE_MS}static isoOrNull(t){if(typeof t!="number"||!Number.isFinite(t))return null;const e=new Date(t);return Number.isNaN(e.getTime())?null:e.toISOString()}async track(t,e,{reason:i,details:s}={}){var d,a,l;if(e!=null&&e.inReview||this.configLapsed)return;console.debug(`shogun: tracking event '${t}' for optimization '${(e==null?void 0:e.name)||"none"}' (${(e==null?void 0:e.id)||"none"}) ${i?`with reason '${i}'`:""}`),this.assignedOptimization=e??this.assignedOptimization,(t=="started"||t=="viewed"||t=="skipped")&&this.startPixelTracking(t==="started").catch(u=>this.reportCollectionFailure(u));const n=(d=window.Shopify)==null?void 0:d.customerPrivacy;let r=!1;try{r=(n==null?void 0:n.analyticsProcessingAllowed())??!1}catch(u){console.debug("shogun: could not read the consent status",u)}try{const u=await fetch(`${this.context.shop.analyticsUrl}/dispatcher/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,shop_id:this.context.shop.shopId,pageview_id:this.pageViewId,session_id:this.context.visitor.sessionId,visitor_id:this.context.visitor.id,optimization_id:e==null?void 0:e.id,variant_id:(a=e==null?void 0:e.assignedVariant)==null?void 0:a.id,reason:i,details:{optimization_ids:this.context.publishedOptimizations.map(h=>h.id),distribution_method:this.context.assignmentStrategy,context:this.context.page,default_theme_id:this.context.shop.defaultThemeId??null,legacy_cache_entries:this.context.legacyCacheEntries,client_timestamp:new Date().toISOString(),optimizations:this.context.publishedOptimizations.map(h=>({id:h.id,assigned_variant_id:h.assignedVariantId,first_assignment:h.isFirstAssignment,assigned_at:y.isoOrNull(h.assignedAt),eligibility:h.eligibility}
31)),from_dispatch_at:y.isoOrNull(this.context.fromDispatchAt),first_visit_at:this.context.visitor.detailsPersisted?y.isoOrNull((l=this.context.visitor.details)==null?void 0:l.first_visit_timestamp):null,consented:r,consent_api:n?"available":"unavailable",consent:et(n),environment:{version:this.context.version,storage:this.context.storage,config_expires_at:y.isoOrNull(this.context.configExpiresAt),...this.context.deferral,...Q()},...s}}),keepalive:!0});u.ok||console.error(`shogun: the analytics endpoint refused the '${t}' event with status ${u.status}, it was not recorded`)}catch(u){console.error("shogun: failed to send tracking event",u)}}static async trackLanded(t){var e;try{const i=await fetch(`${t.analyticsUrl}/dispatcher/landed`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"landed",shop_id:t.shopId,pageview_id:null,session_id:t.visitor.sessionId,visitor_id:t.visitor.id,optimization_id:t.optimization.id,variant_id:t.optimization.variantId,details:{context:t.page,client_timestamp:new Date().toISOString(),from_dispatch_at:y.isoOrNull(t.dispatchedAt),consent:et((e=window.Shopify)==null?void 0:e.customerPrivacy),environment:{version:t.version,...Q()}}}),keepalive:!0});return i.ok||console.error(`shogun: the analytics endpoint refused the 'landed' event with status ${i.status}, it was not recorded`),i.ok}catch(i){return console.error("shogun: failed to send tracking event",i),!1}}async startPixelTracking(t=!1){var n,r,d,a,l;if(console.debug("shogun: attempting to start pixel tracking for optimizations"),this.pixelTrackingStarted)return;const e=Date.now(),[i,s]=await Promise.all([this.getCustomerPrivacy(),this.getAnalytics()]);i.analyticsProcessingAllowed()||(console.debug("shogun: Visitor has not consented to tracking, unable to start pixel tracking for optimizations, waiting for consent..."),await this.waitForConsent(i),this.track("consented",this.assignedOptimization??void 0).catch(u=>console.error("shogun: could not report consent",u))),console.debug("shogun: Visitor has consented to tracking, starting pixel tracking for optimizations");try{s.publish("shogun:load",{app_type:((n=this.assignedOptimization)==null?void 0:n.type)=="personalization"?"personalization":"ab_testing",page_type:this.context.page.pageType,page_id:this.context.page.pageId,optimization_id:((r=this.assignedOptimization)==null?void 0:r.id)??null,variant_id:((a=(d=this.assignedOptimization)==null?void 0:d.assignedVariant)==null?void 0:a.id)??null,on_assigned_variant:((l=this.assignedOptimization)==null?void 0:l.isOnAssignedVariant)??!1,session_id:this.context.visitor.sessionId,visitor_id:this.context.visitor.id,pageview_id:this.pageViewId,original_referrer:this.context.originalReferrer}),this.pixelTrackingStarted=!0}catch(u){this.reportCollectionFailure(u);return}t&&this.track("collecting",this.assignedOptimization??void 0,{details:{waited_ms:Date.now()-e}}).catch(u=>console.error("shogun: could not report that collection started",u))}reportCollectionFailure(t){console.error("shogun: pixel tracking did not start, this visitor will not be collected",t);const e=t instanceof A?t.reason:"analytics_unavailable";this.track("errored",this.assignedOptimization??void 0,{reason:e,details:{error:t instanceof Error?{message:t.message,stack:t.stack}:String(t)}}).catch(i=>console.error("shogun: could not report the collection failure",i))}async getShopify(){return this.until(()=>window.Shopify,"Timed out waiting for Shopify API","analytics_unavailable")}
31async getAnalytics(){const t=await this.getShopify();return this.until(()=>{const e=t.analytics;return e!=null&&e.publish?e:void 0},"Timed out waiting for Shopify analytics API","analytics_unavailable")}async getCustomerPrivacy(){const t=await this.getShopify();return t!=null&&t.customerPrivacy?t.customerPrivacy:(await this.loadConsentTrackingApi(),this.until(()=>{var e;return(e=window.Shopify)==null?void 0:e.customerPrivacy},"Timed out waiting for Shopify customerPrivacy API","analytics_unavailable"))}loadConsentTrackingApi(){return new Promise((t,e)=>{const i=window.Shopify;if(!(i!=null&&i.loadFeatures)){e(new A("Shopify.loadFeatures is not available","analytics_unavailable"));return}i.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],s=>{s&&s.length>0?e(s[0]):t()})})}waitForConsent(t){return t.analyticsProcessingAllowed()?Promise.resolve():new Promise((e,i)=>{let s=!1,n=!1;const r=()=>{document.removeEventListener("visitorConsentCollected",d)},d=()=>{try{s=t.analyticsProcessingAllowed(),s||(n=!0)}catch(a){console.debug("shogun: could not read the consent status after it was collected",a)}};document.addEventListener("visitorConsentCollected",d),this.until(()=>s?!0:void 0,"Timed out waiting for user consent","consent_timeout").then(()=>{r(),e()}).catch(a=>{r(),i(n?new A("Consent was declined","consent_declined",{cause:a}):a)})})}until(t,e,i,{intervalMs:s=250,timeoutMs:n=15e3}={}){return new Promise((r,d)=>{const a=t();if(a){r(a);return}const l=Date.now(),u=window.setInterval(()=>{const h=t();if(h){window.clearInterval(u),r(h);return}Date.now()-l>n&&(window.clearInterval(u),d(new A(e,i)))},s)})}};c(y,"CONFIG_LAPSE_GRACE_MS",4320*60*1e3);let L=y;class St{constructor(t){c(this,"deferredAt",null);c(this,"shownAt",null);c(this,"resume",()=>{this.hidden||(this.shownAt===null&&(this.shownAt=Date.now()),this.onShown())});this.onShown=t}get hidden(){try{const t=document.visibilityState;return!!document.prerendering||t==="hidden"||t==="prerender"}catch(t){return console.debug("shogun: could not read whether the page is visible, treating it as visible",t),!1}}holdUntilShown(){if(!this.hidden)return!1;if(this.deferredAt!==null)return!0;try{this.listen(!0)}catch(t){return console.debug("shogun: could not wait for the page to be shown, running now",t),this.release(),!1}return this.deferredAt=Date.now(),!0}release(){try{this.listen(!1)}catch(t){console.debug("shogun: could not stop waiting for the page to be shown",t)}}get deferral(){return this.deferredAt===null?{was_hidden:!1,hidden_ms:0}:{was_hidden:!0,hidden_ms:(this.shownAt??Date.now())-this.deferredAt}}listen(t){const e=t?"addEventListener":"removeEventListener";document[e]("visibilitychange",this.resume),document[e]("prerenderingchange",this.resume),window[e]("pageshow",this.resume)}}const Ot=["gclid","gbraid","wbraid","fbclid","ttclid","msclkid","srsltid"],Pt=64;function Tt(o,t){const e=Vt(o);return{click_ids:Ot.filter(i=>e==null?void 0:e.has(i)),utm_source:W(e==null?void 0:e.get("utm_source")),utm_medium:W(e==null?void 0:e.get("utm_medium")),utm_campaign:W(e==null?void 0:e.get("utm_campaign")),referrer_host:xt(t)}}function Vt(o){try{return new URL(o).searchParams}catch{return null}}function xt(o){if(!o)return null;try{return new URL(o).host||null}catch{return null}}function W(o){return o?o.slice(0,Pt):null}const Ct={location_unavailable:"location_unavailable",visitor_details_unavailable:"storage_unavailable"},it=o=>o instanceof Error?{message:o.message,stack:o.stack}:String(o),w=class w{constructor(t){c(this,"retainedReferrer");c(this,"originalReferrer");c(this,"optimizationCache");c(this,"_visitor");c(this,"_audienceEvaluator");c(this,"_optimizationReview");c(this,"attemptsStore",new v("session"));c(this,"tracker");c(this,"hasRun",!1);c(this,"pageVisibility",new St(()=>this.run()));c(this,"legacyCacheEntries",0);c(this,"_publishedOptimizations");c(this,"_assignedOptimization");c(this,"fromDispatchAt",null);this.context=t,this.retainedReferrer=new Y,this.originalReferrer=this.retainedReferrer.restore(),this.optimizationCache=new q(t.publishedOptimizations.map(e=>e.id)),this.reportHeldLanding()}reportHeldLanding(){try{if(!this.pageVisibility.hidden)return;const t=this.optimizationCache.pendingDispatch();if(!t||t.landedAt!==void 0)return;
31L.trackLanded({analyticsUrl:this.context.shop.analyticsUrl,shopId:this.context.shop.shopId,version:w.VERSION,page:this.context.page,visitor:T.storedIds(),optimization:{id:t.optimizationId,variantId:t.variantId},dispatchedAt:t.dispatchedAt}).then(e=>{e&&this.optimizationCache.markLanded(t.optimizationId,t.dispatchedAt)}).catch(e=>console.debug("shogun: could not note that a hidden landing was reported",e))}catch(t){console.debug("shogun: could not report a page that loaded hidden after a redirect",t)}}get visitor(){return this._visitor||(this._visitor=new T(this.context.session)),this._visitor}get audienceEvaluator(){return this._audienceEvaluator||(this._audienceEvaluator=new nt(this.visitor,this.context.shop.geoLocationApi)),this._audienceEvaluator}get optimizationReview(){return this._optimizationReview||(this._optimizationReview=new j(this.context,this.audienceEvaluator)),this._optimizationReview}get publishedOptimizations(){return this._publishedOptimizations||(this._publishedOptimizations=this.context.publishedOptimizations.flatMap(t=>{var r,d;const e=this.optimizationCache.get(t.id),i=(e==null?void 0:e.variantId)||t.assignedVariantId,s=(e==null?void 0:e.state)||t.state,n=(e==null?void 0:e.assignedAt)??t.assignedAt;if(i){const a=((d=(r=t.variants)==null?void 0:r.find(l=>l.id===i))==null?void 0:d.name)||i;console.debug(`shogun: Found cached optimization for optimization: '${t.name}' (${t.id}), with variant: '${a}' (${i})`)}return X({...t,assignedVariantId:i,state:s,assignedAt:n},{page:this.context.page,shop:this.context.shop},this.audienceEvaluator)??[]})),this._publishedOptimizations}get abTestStrategy(){switch(this.context.assignmentStrategy){case"greedy":return new Z(this.visitor.bin);case"even":return new pt(this.visitor.bin);default:return new Z(this.visitor.bin)}}get personalizationStrategy(){return new K(this.visitor.bin)}get assignedOptimization(){return this._assignedOptimization===void 0&&(this._assignedOptimization=this.optimizationReview.optimizationInReview||this.previouslyAssignedOptimization||this.abTestStrategy.assign(this.publishedOptimizations.filter(t=>t.type==="ab_test"))||this.personalizationStrategy.assign(this.publishedOptimizations.filter(t=>t.type==="personalization"))||null),this._assignedOptimization}get previouslyAssignedOptimization(){return this.publishedOptimizations.find(t=>t.assignedVariantId!==void 0)||null}get isBot(){return bt(navigator.userAgent)}get dispatchAttempts(){return Number(this.attemptsStore.get(w.DISPATCH_ATTEMPTS_KEY)||"0")}get trackingService(){return this.tracker||(this.tracker=new L({shop:this.context.shop,page:this.context.page,visitor:this.visitor,assignmentStrategy:this.context.assignmentStrategy,publishedOptimizations:this.publishedOptimizations,originalReferrer:this.originalReferrer,storage:{cookie:this.visitor.cookiesWritable,local:this.optimizationCache.writable,session:this.attemptsStore.writable},version:w.VERSION,legacyCacheEntries:this.legacyCacheEntries,deferral:this.pageVisibility.deferral,configExpiresAt:this.context.configExpiresAt??null,fromDispatchAt:this.fromDispatchAt})),this.tracker}get isThemePreview(){var i,s,n;if(this.optimizationReview.inReview)return!1;const t=this.context.page.themeId!=this.context.shop.defaultThemeId,e=(n=(s=(i=this.previouslyAssignedOptimization)==null?void 0:i.assignedVariant)==null?void 0:s.config)==null?void 0:n.theme_id;return t&&(e===void 0||e!==this.context.page.themeId)}set dispatchAttempts(t){this.attemptsStore.set(w.DISPATCH_ATTEMPTS_KEY,t.toString())||console.debug("shogun: could not record the dispatch attempt, this session is not protected against a redirect loop")}exclude(t,e,i=this.previouslyAssignedOptimization){const s=i&&!i.inReview?i:void 0;this.trackingService.track("excluded",s,e?{reason:t,details:e}:{reason:t})}get unassignedReason(){if(this.context.configExpired&&this.publishedOptimizations.length===0)return"config_expired";const e=this.publishedOptimizations.flatMap(i=>{var s,n;return[...Object.values(((s=i.eligibility)==null?void 0:s.audience.evaluations)??{}),...Object.values(((n=i.eligibility)==null?void 0:n.variants)??{}).flatMap(r=>Object.values(r.evaluations??{}))]}).find(i=>i.status==="error");return Ct[(e==null?void 0:e.reason)??""]??"no_assigned_variant"}run(){var t,e,i,s,n,r;if(!this.hasRun&&!this.pageVisibility.holdUntilShown()){this.hasRun=!0,this.pageVisibility.release(),this.legacyCacheEntries=this.optimizationCache.legacyEntries,this.fromDispatchAt=((t=this.optimizationCache.pendingDispatch())==null?void 0:t.dispatchedAt)??null,this.optimizationCache.clearDispatched();try{if(this.isBot){console.debug("shogun: Visitor identified as bot, skipping optimization assignment and execution."),this.exclude("bot");return}const d=!this.optimizationCache.writable&&this.publishedOptimizations.some(l=>l.type==="ab_test");
31if(!this.visitor.idsPersisted||d){console.debug("shogun: Visitor cannot persist their assignment, skipping optimization assignment and execution."),this.exclude("storage_unavailable");return}if(this.dispatchAttempts>=w.MAX_DISPATCH_ATTEMPTS)throw new A(`Maximum dispatch attempts of ${w.MAX_DISPATCH_ATTEMPTS} exceeded. Possible redirect loop detected.`,"max_dispatch_attempts");if(this.optimizationCache.hasExpiredEntries()){this.exclude("cache_expired",{expired_optimization_ids:this.optimizationCache.expiredOptimizationIds()},null),this.optimizationCache.clearExpired();return}if(this.isThemePreview){console.debug("shogun: Visitor identified as theme preview, skipping optimization assignment and execution."),this.exclude("theme_preview");return}this.publishedOptimizations.forEach(l=>l.evaluateEligibility()),console.debug(`shogun: Running dispatcher with ${this.publishedOptimizations.length} published optimizations (${this.publishedOptimizations.map(l=>l.name).join(", ")})`);const a=this.assignedOptimization;if(a){if(!this.optimizationCache.update(a)){console.debug("shogun: Could not record the assignment, skipping optimization execution."),this.exclude("storage_unavailable",void 0,a);return}if(a.isFirstAssignment&&this.trackingService.track("assigned",a,{details:{traffic:Tt(window.location.href,this.originalReferrer)}}),a.needsDispatch){if(!a.canDispatch)throw new A(`Optimization '${a.name}' (${a.id}) cannot dispatch variant '${(e=a.assignedVariant)==null?void 0:e.id}'`,"invalid_variant_config",{optimization:a});console.debug(`shogun: Dispatching optimization: ${a.name} (${a.id}) with variant: ${(i=a.assignedVariant)==null?void 0:i.name} (${(s=a.assignedVariant)==null?void 0:s.id}) [attempt ${this.dispatchAttempts+1}]`),this.dispatchAttempts==0&&this.retainedReferrer.save();const l=this.optimizationCache.markDispatched(a.id);this.trackingService.track("dispatched",a,{details:{dispatched_at:l===null?null:new Date(l).toISOString()}}),this.dispatchAttempts=this.dispatchAttempts+1;try{a.dispatch()}catch(u){throw this.optimizationCache.clearDispatched(),new A(`Dispatch failed for optimization '${a.id}'`,"dispatch_failed",{cause:u,optimization:a})}return}console.debug(`shogun: Running optimization: '${a.name}' (${a.id}) with variant: '${(n=a.assignedVariant)==null?void 0:n.name}' (${(r=a.assignedVariant)==null?void 0:r.id})`),a.inReview?(console.debug("shogun: Optimization is in review, running optimization review flow for optimization"),this.optimizationReview.run()):a.isFirstView?(console.debug("shogun: This is the first view for this optimization, tracking started event."),a.state="started",this.optimizationCache.update(a),this.trackingService.track("started",a)):a.isOnAssignedVariant?(console.debug("shogun: This is not the first view for this optimization, tracking viewed event."),this.trackingService.track("viewed",a)):(console.debug("shogun: Visitor is not eligible for the assigned optimization, skipping view tracking and finalization."),this.trackingService.track("skipped",a,{reason:"not_eligible"})),this.dispatchAttempts=0,a.finalize()}else console.debug("shogun: No optimization assigned to this visitor."),this.trackingService.track("skipped",void 0,{reason:this.unassignedReason});this.retainedReferrer.clear()}catch(d){console.error("shogun: Error running optimizations",d);try{const a=d instanceof A?d:void 0;this.trackingService.track("errored",a==null?void 0:a.optimization,{reason:a==null?void 0:a.reason,details:{error:it(d),cause:(a==null?void 0:a.cause)===void 0?void 0:it(
31a.cause)}})}catch(a){console.error("shogun: Failed to report dispatcher error",a)}this.retainedReferrer.clear()}}}};c(w,"VERSION","2.2.0"),c(w,"MAX_DISPATCH_ATTEMPTS",5),c(w,"DISPATCH_ATTEMPTS_KEY","_shg_dispatch_attempts");let G=w;window.ShogunDispatcher=G})(); 32 33})(); 34 35</script>
35<script type="text/javascript"> 36 ;(function() { 37 const designMode = false; 38 if (designMode) { 39 console.debug("shogun: Design mode is enabled, skipping optimizer initialization"); 40 return; 41 } 42 43 // an Error cannot be sent as-is: message and stack are non-enumerable, so JSON.stringify gives {} 44 const describeThrown = (value) => 45 value instanceof Error ? { message: value.message, stack: value.stack } : String(value); 46 47 const reportExclusion = (reason, details) => { 48 try { 49 if (typeof fetch !== 'function') return; 50 51 fetch("https://shogun-abc-production.global.ssl.fastly.net/dispatcher/excluded", { 52 method: 'POST', 53 headers: { 'Content-Type': 'application/json' }, 54 body: JSON.stringify({ 55 name: 'excluded', 56 shop_id: "08e05761-33dc-478c-ad5c-3bb9579efda2", 57 reason: reason, 58 details: details || {} 59 }), 60 keepalive: true, 61 }).catch(() => {}); 62 } catch (_error) { 63 // reporting a bail must never be a thing that breaks a merchant's page 64 } 65 }; 66 67 // If the referrer url is the Shopify admin url or other known merchant domains, then set a local storage shg_is_merchant flag to true 68 // This is used to remove the preview bar from the page for shoppers 69 // 70 // Reading localStorage throws outright where the origin is denied storage, and this only decides whether a 71 // merchant sees the preview bar. Letting it escape would take the dispatcher down with it and leave the visitor 72 // reporting nothing at all. 73 try { 74 const referrer = document.referrer 75 const merchantDomains = ['admin.shopify.com', 'ab.shgapi.com', 'abc.shogun.dev'] 76 if (!localStorage.getItem('_shg_is_merchant') && merchantDomains.some(domain => referrer.includes(domain))) { 77 console.debug('shogun: Setting shg_is_merchant to true') 78 localStorage.setItem('_shg_is_merchant', 'true') 79 } 80 } catch (error) { 81 console.debug('shogun: could not read the merchant flag, continuing without it', error) 82 } 83 84 // Check for optimization disable flags 85 const urlParams = new URLSearchParams(window.location.search); 86 const optimizationDisabled = urlParams.get('shg') === "false" || window.location.hostname.includes('shopifypreview'); 87 88 if (optimizationDisabled) { 89 console.debug("shogun: Optimization is disabled, skipping optimizer initialization"); 90 return; 91 } 92 93 // Load shop metafield configuration 94 95 const shopMetafieldConfig = {"default_theme_id":156109275314,"method":"greedy","optimizations":[],"expires_at":1790970303000,"env":"production"}; 96 97 if (!shopMetafieldConfig) { 98 console.debug("shogun: Shop metafield configuration for optimizations is missing. Skipping optimizer initialization."); 99 reportExclusion('config_unavailable'); 100 return; 101 } 102 103 // A lapsed metafield yields no optimizations, which on its own is indistinguishable from a shop running none. 104 const configExpired = !(shopMetafieldConfig.expires_at > Date.now()); 105 const optimizationsData = configExpired ? [] : (shopMetafieldConfig.optimizations || []); 106 107 // These ID should match. It is possible for them to be different if a theme is copied from a different shop. 108 const intendedShopifyId = "62838014130"; // The hard coded shopify ID when this snippet was pushed to the theme. 109 const currentShopifyId = "62838014130"; // The current shopify ID that this theme is rendered in. 110 if (intendedShopifyId !== currentShopifyId) { 111 console.debug(`shogun: Shopify ID mismatch: intendedShopifyId=${intendedShopifyId} currentShopifyId=${currentShopifyId}. This may indicate the theme was copied from another shop and not properly set up. Skipping optimizer initialization to avoid potential issues.`); 112 // Attributed to the shop the snippet was written for, the only internal id it carries; both Shopify ids ride 113 // along so the shop it is actually running on can be resolved. 114 reportExclusion('shop_mismatch', { intended_shopify_id: intendedShopifyId, current_shopify_id: currentShopifyId }); 115 return; 116 } else { 117 console.debug(`shogun: Shopify ID verified: ${intendedShopifyId}`); 118 } 119 120
121 if (typeof ShogunDispatcher === 'undefined') { 122 console.error("shogun: Dispatcher is not defined. Please ensure the shogun optimizer script is properly loaded."); 123 reportExclusion('dispatcher_unavailable', { optimizer_version: 2 }); 124 return; 125 } 126 127 const dispatcherConfig = { 128 shop: { 129 shopId: "08e05761-33dc-478c-ad5c-3bb9579efda2", 130 shopDomain: "chebeauty-brand.myshopify.com", 131 analyticsUrl: "https://shogun-abc-production.global.ssl.fastly.net", 132 geoLocationApi: "https://ipinfo.io/json?token=f2ae3a557d807b", 133 storefrontAccessToken: "80ec4b4ef46c33cb5742845004cc01d6", 134 defaultThemeId: shopMetafieldConfig.default_theme_id ? shopMetafieldConfig.default_theme_id.toString() : null, 135 configExpiresAt: shopMetafieldConfig.expires_at, 136 }, 137 page: { 138 pageId: "", 139 pageType: "customers", 140 templateName: "login", 141 templateSuffix: "", 142 templateDirectory: "customers", 143 themeId: "156109275314", 144 languageRootUrl: "/", 145 path: window.location.pathname, 146 currentCartVariantId: null, 147 }, 148 session: { 149 sessionId: urlParams.get('shgSessionId'), 150 customerId: "", 151 isB2B: false, 152 }, 153 assignmentStrategy: shopMetafieldConfig.method, 154 publishedOptimizations: optimizationsData, 155 configExpired: configExpired, 156 configExpiresAt: typeof shopMetafieldConfig.expires_at === 'number' ? shopMetafieldConfig.expires_at : null 157 } 158 159 console.debug("shogun: Initializing ShogunOptimizer v2"); 160 try { 161 const dispatcher = new ShogunDispatcher(dispatcherConfig); 162 dispatcher.run(); 163 } catch (error) { 164 console.error("shogun: Dispatcher failed to start.", error); 165 reportExclusion('dispatcher_unavailable', { optimizer_version: 2, error: describeThrown(error) }); 166 } 167 168 })(); 169 170</script>
170 171 172 173
173<script> 174 175 </script>
175 176 177 178 179 180 181
181<script> 182 window.track_store = window.track_store || {}; 183 window.track_store.gtm_url = "https://www.googletagmanager.com"; 184 window.track_store.gtm_fallback_url = "https://googletagmanager.com"; 185 window.track_store.gtm_id = 'GTM-PMKJGJD'; 186 window.dataLayer = window.dataLayer || []; 187 188 var process_url_params = function(url,decode) { 189 if (decode !== true) decode = false; 190 var regex = /[?&]([^=#]+)=([^&#]*)/g, 191 params = {}, 192 match; 193 while(match = regex.exec(url)) { 194 if (decode === false) params[match[1]] = match[2]; 195 else params[match[1]] = decodeURIComponent(match[2]); 196 } 197 return params; 198 } 199 200 var url_params = process_url_params(window.location.href,false); 201 202 function get_ad_data() { 203 //Extract AD Platform Data 204 var ad_template = [{ 205 param: 'acnl', 206 key: 'ad_channel' 207 },{ 208 param: 'aaid', 209 key: 'ad_account_id' 210 },{ 211 param: 'acid', 212 key: 'ad_campaign_id', 213 },{ 214 param: 'asid', 215 key: 'ad_group_id', 216 },{ 217 param: 'aid', 218 key: 'ad_id', 219 }] 220 221 var ad_data = {}, check = false; 222 for (var i = 0; i < ad_template.length; i++) { 223 var t = ad_template[i]; 224 var v = url_params[t.param]; 225 if (v === undefined) continue; 226 227 ad_data[t.key] = v, check = true; 228 } 229 230 var cnl = ad_template.find(function(e) {e.key === 'ad_channel'}); 231 if (cnl !== undefined && ad_data[cnl.key] === undefined) { 232 if (url_params['fbclid'] !== undefined) ad_data[cnl.key] = 'facebook_ads', check = true; 233 else if (url_params['gclid'] !== undefined || url_params['dclid'] !== undefined || url_params['wbraid'] !== undefined || url_params['gbraid'] !== undefined ) ad_data[cnl.key] = 'google_ads', check = true; 234 else if (url_params['ttclid'] !== undefined) ad_data[cnl.key] = 'tiktok_ads', check = true; 235 else if (url_params['twclid'] !== undefined) ad_data[cnl.key] = 'twitter_ads', check = true; 236 else if (url_params['_kx'] !== undefined) ad_data[cnl.key] = 'klaviyo', check = true; 237 else if (url_params['tblci'] !== undefined) ad_data[cnl.key] = 'taboola', check = true; 238 else if (url_params['padid'] !== undefined) ad_data[cnl.key] = 'pinterest_ads', check = true; 239 } 240 241 if (check === false) return; 242 243 ad_data.event = 'ad_data'; 244 window.dataLayer.push(ad_data); 245 } 246 get_ad_data() 247 248 !function() { 249 250 window.dataLayer.push({ 251 "visitorType": "Guest", 252 "domain": 'chebeauty.com', 253 "shopifyDomain": 'chebeauty-brand.myshopify.com' 254 }); 255 256 }(0) 257 258 //Event ID Generator 259 window.temp_track_store = window.temp_track_store || {}; 260 window.temp_track_store.event_id = window.temp_track_store.event_id || {}; 261 window.temp_track_store.generateEventId = function (event) { 262 if ( 263 window.crypto && 264 typeof window.crypto.randomUUID === 'function' 265 ) { 266 return event + '_' + window.crypto.randomUUID(); 267 } 268 269 var length = 15; 270 var result = ''; 271 var characters = 272 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; 273 274 for (var i = 0; i < length; i++) { 275 result += characters.charAt( 276 Math.floor(Math.random() * characters.length) 277 ); 278 } 279 280 return event + '_' + result + '_' + Date.now(); 281 }; 282 283 var generateEventId = window.temp_track_store.generateEventId; 284 285 286 //Page View 287 window.temp_track_store.event_id['gtm.js'] = generateEventId('gtm.js'); 288 //Dom Ready 289 window.temp_track_store.event_id['gtm.dom'] = generateEventId('gtm.dom'); 290 //Window Loaded 291 window.temp_track_store.event_id['gtm.load'] = generateEventId('gtm.load'); 292 293 //Login Event 294 295 if (sessionStorage.getItem('login_event') !== null) sessionStorage.removeItem('login_event'); 296 297 298</script>
298 299
300<script defer> 301 //GTM Fallback Code 302 !function() { 303 window.gtm_error_count = 0; 304 var gtm_error = function(e) { 305 if (window.gtm_error_count >= 15) window.removeEventListener('error',gtm_error); 306 window.gtm_error_count++; 307 if (e.target && e.target.src && e.target.src.includes(window.track_store.gtm_url+'/gtm.js?id') === true) { 308 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({"gtm.start": 309 new Date().getTime(),event:"gtm.js", event_id: window.temp_track_store.event_id['gtm.js'] = generateEventId('gtm.js')});var f=d.getElementsByTagName(s)[0], 310 j=d.createElement(s),dl=l!="dataLayer"?"&l="+l:"";j.async=true;j.src= 311 window.track_store.gtm_fallback_url+"/gtm.js?id="+i+dl;f.parentNode.insertBefore(j,f); 312 })(window,document,"script","dataLayer",window.track_store.gtm_id); 313 314 window.gtm_s2s_fallback=true; 315 window.removeEventListener('error',gtm_error) 316 } 317 } 318 window.addEventListener('error',gtm_error,true); 319 }(0) 320</script>
320 321 322<!-- Google Tag Manager -->
323<script defer> 324 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 325 new Date().getTime(),event:'gtm.js', event_id: window.temp_track_store.event_id['gtm.js']});var f=d.getElementsByTagName(s)[0], 326 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 327 window.track_store.gtm_url+'/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 328 })(window,document,'script','dataLayer',window.track_store.gtm_id); 329</script>
329 330<!-- End Google Tag Manager --> 331
332<script defer> 333 //Loads Additional Resources 334 /* !function() { 335 var x = document.createElement('script'); 336 x.src = window.track_store.gtm_url+'/plugins/ua/ec.js' 337 document.head.appendChild(x); 338 339 var y = document.createElement('script'); 340 y.src = window.track_store.gtm_url+'/plugins/ua/linkid.js' 341 document.head.appendChild(y); 342 }(0)*/ 343</script>
343 344 345 <!-- Cart Attributes -->
346<script defer> 347 window.track_store = window.track_store || {}; 348 window.add_cart_attribute = function(key,value) { 349 if (key === null || key === undefined || value === null || value === undefined) return; 350 var form = window.track_store.cart_form? window.track_store.cart_form : document.querySelector('form[action*="cart"]'); 351 if (!form) return; 352 if (!window.track_store.cart_form) window.track_store.cart_form = form; 353 354 var p = document.createElement('p'); 355 var input = document.createElement('input'); 356 input.id = 'attr_'+key; 357 input.type = 'hidden'; 358 input.name = 'attributes['+key+']'; 359 input.value = value; 360 p.appendChild(input); 361 form.appendChild(p); 362 }; 363 var _ls = { 364 set: function(key,data) { 365 if (typeof localStorage === 'undefined' || !localStorage) return; 366 if (typeof data === 'object') data = JSON.stringify(data); 367 localStorage.setItem(key,data); 368 }, 369 get: function(key, json) { 370 if (typeof localStorage === 'undefined' || !localStorage) return; 371 var data = localStorage.getItem(key); 372 if (data === null) return; 373 try { 374 if (json === true) return JSON.parse(data); 375 return data; 376 } catch(e) { 377 return 378 } 379 } 380 } 381 window.addEventListener('DOMContentLoaded', function() { 382 var process_url = function(url) { 383 var regex = /[?&]([^=#]+)=([^&#]*)/g, 384 params = {}, 385 match; 386 while(match = regex.exec(url)) { 387 params[match[1]] = match[2]; 388 } 389 return params; 390 } 391 392 var get_cookie = function(x) { 393 x = x+'='; 394 y = false; 395 var ca = document.cookie.split(';'); 396 for(var i=0;i < ca.length;i++) { 397 var c = ca[i]; 398 while (c.charAt(0)==' ') c = c.substring(1,c.length); 399 if (c.indexOf(x) == 0) { 400 y = c.substring(x.length,c.length) 401 }; 402 } 403 if (y === undefined || y === "undefined") return; 404 return y; 405 } 406 407 var params = process_url(window.location.href); 408 if (params._kx) _ls.set('klaid',params._kx); 409 410 //GA Client ID 411 var _ga = get_cookie('_ga'); 412 if (_ga) window.add_cart_attribute('_ga',_ga); 413 //Klaviyo ID 414 var _kx = _ls.get('klaid'); 415 if (_kx) window.add_cart_attribute('_kx',_kx); 416 //FBP 417 var _fbp = get_cookie('_fbp'); 418 if (_fbp) window.add_cart_attribute('_fbp',_fbp); 419 //FBC 420 var _fbc = get_cookie('_fbc'); 421 if (_fbc) window.add_cart_attribute('_fbc',_fbc); 422 }); 423</script>
423 424 425 426 427 <meta charset="utf-8"> 428 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 429 <meta name="viewport" content="width=device-width,initial-scale=1"> 430 <meta name="theme-color" content=""> 431 <meta 432 name="google-site-verification" 433 content="oj6BAccszMrXb6yEVwjtSNDcjYD274TPaMv35Q-FQaY" 434 > 435 <meta 436 name="facebook-domain-verification" 437 content="y72bcmqihzxqg001b8dva9m6dlj4ro" 438 > 439 <link rel="canonical" href="https://chebeauty.com/account/login"><link 440 rel="icon" 441 type="image/png" 442 href="//chebeauty.com/cdn/shop/files/Group_48095726.png?crop=center&height=32&v=1666347767&width=32" 443 ><link rel="preload" href="//chebeauty.com/cdn/shop/t/163/assets/Caudex-Bold.woff2?v=54990968698345543671786105098" as="font" type="font/woff2" crossorigin> 444 <link rel="preload" href="//chebeauty.com/cdn/shop/t/163/assets/Gilroy-Regular.woff2?v=128203128988349514901781941838" as="font" type="font/woff2" crossorigin> 445 446 447 448 449 <title> 450 Account 451 452 – Chebeauty</title> 453 454 455 456 457 458<meta property="og:site_name" content="Chebeauty"> 459<meta property="og:url" content="https://chebeauty.com/account/login"> 460<meta property="og:title" content="Account"> 461<meta property="og:type" content="website">
462<meta property="og:description" content="Chebeauty is a haircare brand that provides chebe hair products to bring the best experience to curly & textured hair."><meta property="og:image" content="http://chebeauty.com/cdn/shop/files/chebeauty-12287-hor.jpg?v=1762598213"> 463 <meta property="og:image:secure_url" content="https://chebeauty.com/cdn/shop/files/chebeauty-12287-hor.jpg?v=1762598213"> 464 <meta property="og:image:width" content="5000"> 465 <meta property="og:image:height" content="3750"><meta name="twitter:card" content="summary_large_image"> 466<meta name="twitter:title" content="Account"> 467<meta name="twitter:description" content="Chebeauty is a haircare brand that provides chebe hair products to bring the best experience to curly & textured hair."> 468 469 470
470<script src="//chebeauty.com/cdn/shop/t/163/assets/global.js?v=180919978362470844261781941837" defer="defer"></script>
470 471 472 473
473<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
473<meta name="google-site-verification" content="YggEFiMGyGw_pp1keHY7FdRzcJ2w0libQV-wJKb_LXM"> 474<meta name="facebook-domain-verification" content="y72bcmqihzxqg001b8dva9m6dlj4ro"> 475<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/62838014130/digital_wallets/dialog"> 476<meta id="in-context-paypal-metadata" data-shop-id="62838014130" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 477<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" hreflang="x-default" href="https://chebeauty.com/account/login"> 478<link rel="alternate" hreflang="en" href="https://chebeauty.com/account/login"> 479<link rel="alternate" hreflang="en-CA" href="https://chebeauty.com/en-ca/account/login">
480<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2249883826"></script>
480 481<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
482<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2249883826&shop_id=62838014130" crossorigin="anonymous"></script>
vendor: 1 bytes, line 482
482
483<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":62838014130,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/62838014130","merchantName":"Chebeauty","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Chebeauty","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 483
483
484<script id="shopify-features" type="application/json">{"accessToken":"82b6a6e3f9ac9aa7037af2b06d69616d","betas":["rich-media-storefront-analytics"],"domain":"chebeauty.com","predictiveSearch":true,"shopId":62838014130,"locale":"en"}</script>
vendor: 1 bytes, line 484
484
485<script>var Shopify = Shopify || {}; 486Shopify.shop = "chebeauty-brand.myshopify.com"; 487Shopify.locale = "en"; 488Shopify.currency = {"active":"USD","rate":"1.0"}; 489Shopify.country = "US"; 490Shopify.theme = {"name":"chebeauty\/main","id":156109275314,"schema_name":"Dawn","schema_version":"7.0.1","theme_store_id":null,"role":"main"}; 491Shopify.theme.handle = "null"; 492Shopify.theme.style = {"id":null,"handle":null}; 493Shopify.cdnHost = "chebeauty.com/cdn"; 494Shopify.routes = Shopify.routes || {}; 495Shopify.routes.root = "/"; 496Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 497Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 498Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 499Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 499
499
500<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 500
500
501<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 501
501
502<script> 503 window.ShopifyPay = window.ShopifyPay || {}; 504 window.ShopifyPay.apiHost = "shop.app\/pay"; 505 window.ShopifyPay.redirectState = null; 506</script>
vendor: 1 bytes, line 506
506
507<script> 508 window.Shopify = window.Shopify || {}; 509 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 510 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 511 window.Shopify.SignInWithShop.eligible = true; 512</script>
vendor: 1 bytes, line 512
512
513<script id="shop-js-analytics" type="application/json">{"pageType":"customers/login"}</script>
vendor: 1 bytes, line 513
513
514<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts.en.esm.js"></script>
vendor: 1 bytes, line 514
514
515<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"></script>
vendor: 1 bytes, line 515
515
516<script type="module"> 517 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts.en.esm.js"); 518await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"); 519 520 window.Shopify.SignInWithShop?.initCustomerAccounts?.(true, {"fedCMEnabled":true,"windoidEnabled":true}); 521window.Shopify.SignInWithShop?.initCustomerAccountsSignUp?.({"fedCMEnabled":true,"windoidEnabled":true}); 522 523</script>
vendor: 1 bytes, line 523
523
524<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 524
524
525<script type="module"> 526 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 527 528 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 529 530</script>
vendor: 1 bytes, line 530
530
531<script> 532 window.Shopify = window.Shopify || {}; 533 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 534 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"]}; 535</script>
vendor: 1 bytes, line 535
535
536<script>(function() { 537 var isLoaded = false; 538 function asyncLoad() { 539 if (isLoaded) return; 540 isLoaded = true; 541 var urls = ["https:\/\/static.rechargecdn.com\/assets\/js\/widget.min.js?shop=chebeauty-brand.myshopify.com","https:\/\/app.electricsms.com\/cart-widget\/widget.min.js?shop=chebeauty-brand.myshopify.com","https:\/\/triplewhale-pixel.web.app\/triplepx.js?shop=chebeauty-brand.myshopify.com","https:\/\/config.gorgias.chat\/bundle-loader\/01GYCCQ8WD1GYT8DPEV56CZ5K6?source=shopify1click\u0026shop=chebeauty-brand.myshopify.com","https:\/\/app.octaneai.com\/brxlqwf79qyvh40b\/shopify.js?x=T2edDYdBlfsBkK5y\u0026shop=chebeauty-brand.myshopify.com","https:\/\/media.9gtb.com\/loader.js?g_cvt_id=d34d5ae6-b0aa-46db-994a-599b0babba2c\u0026shop=chebeauty-brand.myshopify.com"]; 542 for (var i = 0; i < urls.length; i++) { 543 var s = document.createElement('script'); 544 s.type = 'text/javascript'; 545 s.async = true; 546 s.src = urls[i]; 547 var x = document.getElementsByTagName('script')[0]; 548 x.parentNode.insertBefore(s, x); 549 } 550 }; 551 if(window.attachEvent) { 552 window.attachEvent('onload', asyncLoad); 553 } else { 554 window.addEventListener('load', asyncLoad, false); 555 } 556})();</script>
vendor: 1 bytes, line 556
556
557<script id="__st">var __st={"a":62838014130,"offset":7200,"reqid":"614f020a-c6f8-4d32-b7ad-3fb494a76a46-1790955022","pageurl":"chebeauty.com\/account\/login?return_url=%2Faccount","u":"d87d053f0f2d"};</script>
vendor: 1 bytes, line 557
557
558<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 558
558
559<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!1,!0)}();</script>
vendor: 1 bytes, line 559
559
560<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//chebeauty.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 560
560
561<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 = "//chebeauty.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>
561<script crossorigin="anonymous" defer="defer" src="//chebeauty.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 561
561
562<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 562
562
563<script> 564 window.Shopify = window.Shopify || {}; 565 window.Shopify.MCP = window.Shopify.MCP || {}; 566 window.Shopify.MCP.enabled = true; 567 window.Shopify.MCP.shop = "chebeauty-brand.myshopify.com"; 568 window.Shopify.MCP.mcpEndpoint = "https:\/\/chebeauty.com\/api\/mcp"; 569 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 570</script>
vendor: 1 bytes, line 570
570
571<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("\/\/chebeauty.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 572</script>
vendor: 1 bytes, line 572
572
573<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://chebeauty.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 574</script>
vendor: 1 bytes, line 574
574
575<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 576 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); 577</script>
vendor: 1 bytes, line 577
577
578<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})}})); 579</script>
579 580<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://chebeauty.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 581<style id="shopify-accelerated-checkout-cart"> 582 #shopify-buyer-consent { 583 margin-top: 1em; 584 display: inline-block; 585 width: 100%; 586} 587 588#shopify-buyer-consent.hidden { 589 display: none; 590} 591 592#shopify-subscription-policy-button { 593 background: none; 594 border: none; 595 padding: 0; 596 text-decoration: underline; 597 font-size: inherit; 598 cursor: pointer; 599} 600 601#shopify-subscription-policy-button::before { 602 box-shadow: none; 603} 604 605 </style>
606<script id="sections-script" data-sections="custom-header" defer="defer" src="//chebeauty.com/cdn/shop/t/163/compiled_assets/scripts.js?v=48287672232694984061781941907"></script>
vendor: 1 bytes, line 606
606
607<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
607 608 609 610 611 <style> 612 .card-product-opt.active { 613 border-color: #DAA015 !important; 614 border-width: 2px !important; 615 font-weight: 600 !important; 616 background-color: #FFFBEC !important; 617 } 618 .forab { 619 display: none; 620 } 621 .mainab { 622 display: block; 623 } 624 .custom-klarna-icon .klarna-info-reversed { 625 top: unset !important; 626 bottom: 15px !important; 627 padding-bottom: 12px !important; 628 padding-top: unset !important; 629 } 630 .custom-klarna-icon .klarna-info-reversed .custom-klarna-arrow { 631 top: 107px !important; 632 } 633 @media screen and (max-width: 768px) { 634 .custom-klarna-icon .klarna-info-reversed { 635 width: 310px !important; 636 } 637 } 638 </style> 639 640 <style data-shopify> 641 @font-face { 642 font-family: 'Gilroy'; 643 src: url('//chebeauty.com/cdn/shop/t/163/assets/Gilroy-Regular.woff2?v=128203128988349514901781941838') format('woff2'), 644 url('//chebeauty.com/cdn/shop/t/163/assets/Gilroy-Regular.woff?v=115217151926458889621781941837') format('woff'); 645 font-weight: normal; 646 font-style: normal; 647 font-display: swap; 648 } 649 650 @font-face { 651 font-family: 'Gilroy'; 652 src: url('//chebeauty.com/cdn/shop/t/163/assets/Gilroy-Medium.woff2?v=58692541512685563291781941837') format('woff2'), 653 url('//chebeauty.com/cdn/shop/t/163/assets/Gilroy-Medium.woff?v=122241071967980716211781941836') format('woff'); 654 font-weight: 500; 655 font-style: normal; 656 font-display: swap; 657 } 658 659 @font-face { 660 font-family: 'Gilroy'; 661 src: url('//chebeauty.com/cdn/shop/t/163/assets/Gilroy-Bold.woff2?v=147127017312695584301781941836') format('woff2'), 662 url('//chebeauty.com/cdn/shop/t/163/assets/Gilroy-Bold.woff?v=16663112177120882581781941836') format('woff'); 663 font-weight: bold; 664 font-style: normal; 665 font-display: swap; 666 } 667 668 @font-face { 669 font-family: 'Caudex'; 670 src: url('//chebeauty.com/cdn/shop/t/163/assets/Caudex-Regular.woff2?v=111169594199238966191786105099') format('woff2'); 671 font-weight: 400; 672 font-style: normal; 673 font-display: swap; 674 } 675 676 @font-face { 677 font-family: 'Caudex'; 678 src: url('//chebeauty.com/cdn/shop/t/163/assets/Caudex-Bold.woff2?v=54990968698345543671786105098') format('woff2'); 679 font-weight: 700; 680 font-style: normal; 681 font-display: swap; 682 } 683 684 @font-face { 685 font-family: Assistant; 686 font-weight: 400; 687 font-style: normal; 688 font-display: swap; 689 src: url("//chebeauty.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"), 690 url("//chebeauty.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff"); 691} 692 693 @font-face { 694 font-family: Assistant; 695 font-weight: 700; 696 font-style: normal; 697 font-display: swap; 698 src: url("//chebeauty.com/cdn/fonts/assistant/assistant_n7.bf44452348ec8b8efa3aa3068825305886b1c83c.woff2") format("woff2"), 699 url("//chebeauty.com/cdn/fonts/assistant/assistant_n7.0c887fee83f6b3bda822f1150b912c72da0f7b64.woff") format("woff"); 700} 701 702 703 704 @font-face { 705 font-family: Assistant; 706 font-weight: 400; 707 font-style: normal; 708 font-display: swap; 709 src: url("//chebeauty.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"), 710 url("//chebeauty.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff"); 711} 712 713 714 :root { 715 --font-body-family: Assistant, sans-serif; 716 --font-body-style: normal; 717 --font-body-weight: 400; 718 --font-body-weight-bold: 700; 719 720 --font-heading-family: Assistant, sans-serif; 721 --font-heading-style: normal; 722 --font-heading-weight: 400; 723 724 --font-body-scale: 1.0; 725 --font-heading-scale: 1.0; 726 727 --color-base-text: 18, 18, 18; 728 --color-shadow: 18, 18, 18; 729 --color-base-background-1: 255, 255, 255; 730 --color-base-background-2: 243, 243, 243; 731 --color-base-solid-button-labels: 255, 255, 255; 732 --color-base-outline-button-labels: 18, 18, 18; 733 --color-base-accent-1: 18, 18, 18; 734 --color-base-accent-2: 51, 79, 180; 735 --payment-terms-background-color: #ffffff; 736 737 --gradient-base-background-1: #ffffff; 738 --gradient-base-background-2: #f3f3f3; 739 --gradient-base-accent-1: #121212; 740 --gradient-base-accent-2: #334fb4; 741 742 --media-padding: px; 743 --media-border-opacity: 0.05; 744 --media-border-width: 1px; 745 --media-radius: 0px;
746 --media-shadow-opacity: 0.0; 747 --media-shadow-horizontal-offset: 0px; 748 --media-shadow-vertical-offset: 4px; 749 --media-shadow-blur-radius: 5px; 750 --media-shadow-visible: 0; 751 752 --page-width: 120rem; 753 --page-width-margin: 0rem; 754 755 --product-card-image-padding: 0.0rem; 756 --product-card-corner-radius: 0.0rem; 757 --product-card-text-alignment: left; 758 --product-card-border-width: 0.0rem; 759 --product-card-border-opacity: 0.1; 760 --product-card-shadow-opacity: 0.0; 761 --product-card-shadow-visible: 0; 762 --product-card-shadow-horizontal-offset: 0.0rem; 763 --product-card-shadow-vertical-offset: 0.4rem; 764 --product-card-shadow-blur-radius: 0.5rem; 765 766 --collection-card-image-padding: 0.0rem; 767 --collection-card-corner-radius: 0.0rem; 768 --collection-card-text-alignment: left; 769 --collection-card-border-width: 0.0rem; 770 --collection-card-border-opacity: 0.1; 771 --collection-card-shadow-opacity: 0.0; 772 --collection-card-shadow-visible: 0; 773 --collection-card-shadow-horizontal-offset: 0.0rem; 774 --collection-card-shadow-vertical-offset: 0.4rem; 775 --collection-card-shadow-blur-radius: 0.5rem; 776 777 --blog-card-image-padding: 0.0rem; 778 --blog-card-corner-radius: 0.0rem; 779 --blog-card-text-alignment: left; 780 --blog-card-border-width: 0.0rem; 781 --blog-card-border-opacity: 0.1; 782 --blog-card-shadow-opacity: 0.0; 783 --blog-card-shadow-visible: 0; 784 --blog-card-shadow-horizontal-offset: 0.0rem; 785 --blog-card-shadow-vertical-offset: 0.4rem; 786 --blog-card-shadow-blur-radius: 0.5rem; 787 788 --badge-corner-radius: 4.0rem; 789 790 --popup-border-width: 1px; 791 --popup-border-opacity: 0.1; 792 --popup-corner-radius: 0px; 793 --popup-shadow-opacity: 0.0; 794 --popup-shadow-horizontal-offset: 0px; 795 --popup-shadow-vertical-offset: 4px; 796 --popup-shadow-blur-radius: 5px; 797 798 --drawer-border-width: 1px; 799 --drawer-border-opacity: 0.1; 800 --drawer-shadow-opacity: 0.0; 801 --drawer-shadow-horizontal-offset: 0px; 802 --drawer-shadow-vertical-offset: 4px; 803 --drawer-shadow-blur-radius: 5px; 804 805 --spacing-sections-desktop: 0px; 806 --spacing-sections-mobile: 0px; 807 808 --grid-desktop-vertical-spacing: 8px; 809 --grid-desktop-horizontal-spacing: 8px; 810 --grid-mobile-vertical-spacing: 4px; 811 --grid-mobile-horizontal-spacing: 4px; 812 813 --text-boxes-border-opacity: 0.1; 814 --text-boxes-border-width: 0px; 815 --text-boxes-radius: 0px; 816 --text-boxes-shadow-opacity: 0.0; 817 --text-boxes-shadow-visible: 0; 818 --text-boxes-shadow-horizontal-offset: 0px; 819 --text-boxes-shadow-vertical-offset: 4px; 820 --text-boxes-shadow-blur-radius: 5px; 821 822 --buttons-radius: 0px; 823 --buttons-radius-outset: 0px; 824 --buttons-border-width: 1px; 825 --buttons-border-opacity: 1.0; 826 --buttons-shadow-opacity: 0.0; 827 --buttons-shadow-visible: 0; 828 --buttons-shadow-horizontal-offset: 0px; 829 --buttons-shadow-vertical-offset: 4px; 830 --buttons-shadow-blur-radius: 5px; 831 --buttons-border-offset: 0px; 832 833 --inputs-radius: 0px; 834 --inputs-border-width: 1px; 835 --inputs-border-opacity: 0.55; 836 --inputs-shadow-opacity: 0.0; 837 --inputs-shadow-horizontal-offset: 0px; 838 --inputs-margin-offset: 0px; 839 --inputs-shadow-vertical-offset: 4px; 840 --inputs-shadow-blur-radius: 5px; 841 --inputs-radius-outset: 0px; 842 843 --variant-pills-radius: 40px; 844 --variant-pills-border-width: 1px; 845 --variant-pills-border-opacity: 0.55; 846 --variant-pills-shadow-opacity: 0.0; 847 --variant-pills-shadow-horizontal-offset: 0px; 848 --variant-pills-shadow-vertical-offset: 4px; 849 --variant-pills-shadow-blur-radius: 5px; 850 } 851 852 *, 853 *::before, 854 *::after { 855 box-sizing: inherit; 856 } 857 858 html { 859 box-sizing: border-box; 860 font-size: calc(var(--font-body-scale) * 62.5%); 861 height: 100%; 862 } 863 864 body { 865 display: grid; 866 grid-template-rows: auto auto 1fr auto; 867 grid-template-columns: 100%; 868 min-height: 100%; 869 margin: 0; 870 font-size: 1.5rem; 871 line-height: calc(1 + 0.8 / var(--font-body-scale)); 872 font-family: var(--font-body-family); 873 font-style: var(--font-body-style); 874 font-weight: var(--font-body-weight); 875 } 876 877 @media screen and (min-width: 750px) { 878 body { 879 font-size: 1.6rem; 880 } 881 } 882 </style> 883 884 885 886 887 888 889 890 891 <link href="//chebeauty.com/cdn/shop/t/163/assets/base.css?v=76314016365986820591786105102" rel="stylesheet" type="text/css" media="all" /> 892 <link href="//chebeauty.com/cdn/shop/t/163/assets/app.css?v=48190249541468703911781941840" rel="stylesheet" type="text/css" media="all" /> 893 894 895 896 897 <link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/basicLightbox.css?v=8244199544529336731781941837" media="print" onload="this.media='all'"> 898 <link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/tabby-ui.min.css?v=177220970746613202751786105110" media="print" onload="this.media='all'"> 899 900 901 902<link 903 rel="stylesheet" 904 href="//chebeauty.com/cdn/shop/t/163/assets/component-predictive-search.css?v=75898677894107037981781941834" 905 media="print" 906 onload="this.media='all'" 907 >
907<script defer> 908 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 909 if (Shopify.designMode) { 910 document.documentElement.classList.add('shopify-design-mode'); 911 } 912 </script>
912 913
913<script src="//chebeauty.com/cdn/shop/t/163/assets/embla.js?v=98379649599458330231786105108" defer></script>
913 914 915
915<script defer> 916 const setupDotBtns = (dotsArray, embla) => { 917 dotsArray.forEach((dotNode, i) => { 918 dotNode.addEventListener('click', () => embla.scrollTo(i), false); 919 }); 920 }; 921 const generateDotBtns = (dots, embla) => { 922 const template = document.getElementById('embla-dot-template').innerHTML; 923 dots.innerHTML = embla.scrollSnapList().reduce((acc) => acc + template, ''); 924 return [].slice.call(dots.querySelectorAll('.embla__dot')); 925 }; 926 const selectDotBtn = (dotsArray, embla) => () => { 927 const previous = embla.previousScrollSnap(); 928 const selected = embla.selectedScrollSnap(); 929 dotsArray[previous].classList.remove('is-selected'); 930 dotsArray[selected].classList.add('is-selected'); 931 }; 932 </script>
932 933 934 935
935<script src="//chebeauty.com/cdn/shop/t/163/assets/basicLightbox.js?v=143976871488169192831781941838" defer></script>
935 936
936<script 937 defer 938 src="//chebeauty.com/cdn/shop/t/163/assets/tabby.polyfills.min.js?v=57809381959465942411786105111" 939 > 940 </script>
940 941 942 943
943<script defer> 944 (function () { 945 var a = document.createElement('script'); 946 (a.type = 'text/javascript'), 947 (a.async = !0), 948 (a.src = 'https://3648592835.chebeauty.com/javascript/script.js'), 949 document.getElementsByTagName('script')[0].appendChild(a); 950 })(); 951 </script>
951 952 953 954 955 <meta 956 name="tapcart-banner:appIcon" 957 content="https://storage.googleapis.com/tapcart-150607.appspot.com/c49dc5255c5fdbddd9246507de999ea7_i.png" 958 > 959 960 <!-- Klar Code for Chebeauty --> 961
961<script defer> 962 (function () { 963 var a = document.createElement('script'); 964 (a.type = 'text/javascript'), 965 (a.async = !0), 966 (a.src = 'https://236071693.chebeauty.com/javascript/script.js'), 967 document.getElementsByTagName('script')[0].appendChild(a); 968 })(); 969 </script>
969 970 971 <!-- Triple Whale Tracking Code for Chebeauty --> 972 <link 973 rel="preconnect dns-prefetch" 974 href="https://triplewhale-pixel.web.app/" 975 crossorigin 976 > 977 978
978<script defer> 979 /* >> TriplePixel :: start*/ 980 ~(function (W, H, A, L, E, _, B, N) { 981 function O(U, T, H, R) { 982 void 0 === R && (R = !1), 983 (H = new XMLHttpRequest()), 984 H.open('GET', U, !0), 985 H.send(null), 986 (H.onreadystatechange = function () { 987 4 === H.readyState && 200 === H.status 988 ? ((R = H.responseText), U.includes('.txt') ? eval(R) : (N[B] = R)) 989 : (299 < H.status || H.status < 200) && T && !R && ((R = !0), O(U, T - 1)); 990 }); 991 } 992 if (((N = window), !N[H + 'sn'])) { 993 N[H + 'sn'] = 1; 994 try { 995 A.setItem(H, 1 + (0 | A.getItem(H) || 0)), 996 (E = JSON.parse(A.getItem(H + 'U') || '[]')).push(location.href), 997 A.setItem(H + 'U', JSON.stringify(E)); 998 } catch (e) {} 999 A.getItem('"!nC`') || 1000 ((A = N), 1001 A[H] || 1002 ((L = function () { 1003 return Date.now().toString(36) + '_' + Math.random().toString(36); 1004 }), 1005 (E = A[H] = 1006 function (t, e) { 1007 return (W = L()), (E._q = E._q || []).push([W, t, e]), W; 1008 }), 1009 (E.ch = W), 1010 (B = 'configSecurityConfModel'), 1011 (N[B] = 1), 1012 O('//conf.config-security.com/model', 0), 1013 O('//triplewhale-pixel.web.app/triplefw.txt?', 5))); 1014 } 1015 })('', 'TriplePixel', localStorage); 1016 /* << TriplePixel :: end*/ 1017 </script>
1017 1018 1019
1019<script id="docapp-volume-speedup"> 1020 (() => { 1021 if ( 1022 !document.documentElement.innerHTML.includes('\\/shop' + '\\/js' + '\\/shopdocs-volume-discounts.min.js') || 1023 window.shopdocsVolumeDiscountsAppLoaded 1024 ) 1025 return; 1026 let script = document.createElement('script'); 1027 script.src = 1028 'https://d2e5xyzdl0rkli.cloudfront.net/shop/js/shopdocs-volume-discounts.min.js?shop=chebeauty-abt.myshopify.com'; 1029 document.getElementById('docapp-volume-speedup').after(script); 1030 })(); 1031 </script>
1031 1032 1033
1033<script> 1034 // MobiLoud + Klaviyo 1035 document.addEventListener('DOMContentLoaded', function() { 1036 // Check if the user agent contains 'canvas' (case insensitive) 1037 if (navigator.userAgent.toLowerCase().includes('canvas')) { 1038 // Liquid variables to check if user is logged in and get the user's email 1039 1040 1041 1042 var userLoggedIn = ""; 1043 var userEmail = null; 1044 1045 if (userLoggedIn) { 1046 // Set user email using the native function 1047 nativeFunctions.klaviyoSetEmail(userEmail) 1048 } 1049 } 1050 }); 1051 </script>
1051 1052 1053 1054 1055 1056 1057 <style> 1058 .ab_var_offset .purchase-toggle__section .product-variation:last-child { 1059 display: none !important; 1060 } 1061 .ab_bc_offset .productOptOptions .cart-product-opt:last-child { 1062 display: none !important; 1063 } 1064 </style> 1065 <!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core --> 1066 1067 1068 1069 1070 1071 1072 1073<link rel="dns-prefetch" href="https://cdn.judge.me"> 1074<link rel="dns-prefetch" href="https://cdn1.judge.me"> 1075<link rel="dns-prefetch" href="https://api.judge.me"> 1076
1077<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"with_picture","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":false,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","badge_star_color":"#ffc632","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
1077ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"","widget_rating_filter_color":"","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","widget_star_color":"#ffc632","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":false,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":false,"widget_location_format":"country_iso_code","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"leex","review_date_format":"mm/dd/yyyy","default_sort_method":"pictures-first","widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":true,"show_pictures_on_all_rev_page_desktop":true,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"â
Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"text","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":true,"featured_carousel_title":"Let customers speak for us","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":250,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"vintage","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":false,"widget_pagination_use_custom_color":true,"widget_star_use_custom_color":true,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":true,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":true,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":false,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","featured_carousel_theme":"default","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":false,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":true,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
1077itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#ffbe32","widget_ugc_primary_button_text_color":"#0a0800","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#daa015","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffbe32","widget_ugc_secondary_button_text_color":"#0a0800","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#daa015","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#000000","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#fac632","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"store-product-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#000000","widget_enable_secondary_color":true,"widget_secondary_color":"#dcd9d4","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":true,"widget_show_product_medals":false,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":false,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#dcd9d4","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"vertical","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#108474","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":false,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":true,"redirect_reviewers_invited_via_email":"review_widget","request_store_review_after_product_review":false,"request_review_other_products_in_order":false,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":{},"review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":{},"review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
1077youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":false,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":false,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_store_review_label_text":"Review about the store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":true,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":true,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":true,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
1077:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"Weâll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"platform":"shopify","branding_url":"https://app.judge.me/reviews","branding_text":"Powered by Judge.me","locale":"en","reply_name":"Chebeauty","widget_version":"3.0","footer":true,"autopublish":false,"review_dates":false,"enable_custom_form":true,"shop_locale":"en","enable_multi_locales_translations":false,"show_review_title_input":true,"review_verification_email_status":"always","require_verification_before_submit":false,"customer_account_val
1077idation_enabled":true,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"can_be_branded":false,"reply_name_text":"Chebeauty"};</script>
1077 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #000;--jdgm-secondary-color: #dcd9d4;--jdgm-star-color: #ffc632;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #000000;--jdgm-paginate-color: #dcd9d4;--jdgm-border-radius: 10;--jdgm-reviewer-name-color: #000000}.jdgm-histogram__bar-content{background-color:#000}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#000}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-preview-badge .jdgm-star.jdgm-star{color:#ffc632}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-rev .jdgm-rev__timestamp,.jdgm-quest .jdgm-rev__timestamp,.jdgm-carousel-item__timestamp{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-author-last-initial{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_etsy"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_google_business"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_shop_app"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#108474}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'Chebeauty'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )} 1078</style> <style class='jdgm-settings-style'></style> 1079 1080 1081 1082 1083 <style class='jdgm-miracle-styles'> 1084 @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
1084/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-prev-badge{display:block !important} 1085 1086</style> 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099
1099<script id="judgeme_widget_leex_js" data-cfasync="false" type="text/javascript" async src="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/shopify_v2_leex.js"></script>
1099 1100 1101 1102 1103 1104 1105 <link id="judgeme_widget_leex_css" rel="stylesheet" type="text/css" media="nope!" onload="this.media='all'" href="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/widget_v3_theme_leex.css"> 1106 1107 1108 1109
1110<script data-cfasync='false' class='jdgm-script'> 1111!function(e){window.jdgm=window.jdgm||{}; 1112/* INF-1976 */ 1113var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}(); 1114if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;} 1115jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/", 1116jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 1117setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){ 1118!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 1119(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!", 1120a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))}, 1121jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest; 1122t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))}, 1123t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll( 1124".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 1125parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"): 1126jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css") 1127)}))}(document); 1128</script>
1128 1129<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/shopify_v2.css"></noscript> 1130 1131<!-- BEGIN app snippet: theme_fix_tags -->
1131<script> 1132 (function() { 1133 var jdgmThemeFixes = null; 1134 if (!jdgmThemeFixes) return; 1135 1136 // "All themes" fix: CSS and JS applied on every theme. CSS is injected 1137 // before the per-theme fix so the theme-specific CSS wins the cascade. 1138 // HTML is never applied globally (too risky). 1139 var allThemesFix = jdgmThemeFixes['all']; 1140 if (allThemesFix && allThemesFix.css) { 1141 var allStyleTag = document.createElement('style'); 1142 allStyleTag.classList.add('jdgm-theme-fix-style-all'); 1143 allStyleTag.innerHTML = allThemesFix.css; 1144 document.head.append(allStyleTag); 1145 }; 1146 1147 if (allThemesFix && allThemesFix.js) { 1148 var allScriptTag = document.createElement('script'); 1149 allScriptTag.classList.add('jdgm-theme-fix-script-all'); 1150 allScriptTag.innerHTML = allThemesFix.js; 1151 document.head.append(allScriptTag); 1152 }; 1153 1154 var thisThemeFix = jdgmThemeFixes[Shopify.theme.id]; 1155 if (!thisThemeFix) return; 1156 1157 if (thisThemeFix.html) { 1158 document.addEventListener("DOMContentLoaded", function() { 1159 var htmlDiv = document.createElement('div'); 1160 htmlDiv.classList.add('jdgm-theme-fix-html'); 1161 htmlDiv.innerHTML = thisThemeFix.html; 1162 document.body.append(htmlDiv); 1163 }); 1164 }; 1165 1166 if (thisThemeFix.css) { 1167 var styleTag = document.createElement('style'); 1168 styleTag.classList.add('jdgm-theme-fix-style'); 1169 styleTag.innerHTML = thisThemeFix.css; 1170 document.head.append(styleTag); 1171 }; 1172 1173 if (thisThemeFix.js) { 1174 var scriptTag = document.createElement('script'); 1175 scriptTag.classList.add('jdgm-theme-fix-script'); 1176 scriptTag.innerHTML = thisThemeFix.js; 1177 document.head.append(scriptTag); 1178 }; 1179 })(); 1180</script>
1180 1181<!-- END app snippet --> 1182<!-- End of Judge.me Core --> 1183 1184 1185 1186<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199
1199<script async src="https://static.klaviyo.com/onsite/js/Uv4ZuA/klaviyo.js?company_id=Uv4ZuA"></script>
1199 1200
1200<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>
1200 1201 1202 1203 1204 1205 1206 1207
1207<script> 1208 window.klaviyoReviewsProductDesignMode = false 1209 </script>
1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219<!-- END app block --><!-- BEGIN app block: shopify://apps/storerank-ai/blocks/script/20267567-9216-4bad-b7a9-f17b46b79883 --><!-- END app block --><!-- BEGIN app block: shopify://apps/absolutely/blocks/absolutely_extension/121741f7-5296-410e-8ae4-71174169eced --> 1220 1221 1222 1223<style> 1224 .abs-hide { 1225 visibility: hidden !important; 1226 } 1227</style> 1228
1229<script> 1230 const cachedValue = window.sessionStorage.getItem('abs-config'); 1231 1232 if (localStorage.getItem('abs-has-redirect-tests') === '1' || !cachedValue || JSON.parse(cachedValue)?.templateTests.length > 0) { 1233 document.documentElement.classList.add('abs-hide'); 1234 setTimeout(function() { 1235 document.documentElement.classList.remove('abs-hide'); 1236 }, 3000); 1237 } 1238 1239 window._abs_template = { 1240 directory: "customers", 1241 name: "login", 1242 suffix: "" 1243 }; 1244 1245 window._abs_customer = { 1246 b2b: false 1247 }; 1248</script>
1248 1249
1250<script 1251 src="https://app.absolutelyapp.com/merchant-scripts/absolutely.js" 1252 blocking="render" 1253 fetchpriority="high" 1254 type="module" 1255></script>
1255 1256 1257 1258<!-- END app block --><!-- BEGIN app block: shopify://apps/abconvert/blocks/app-embed-abconvert/5c6be9a4-14ad-4ad6-a0b5-a41137ce4ddf --> 1259 1260
1261<script class="abconvert" id="ABConvert-page-context"> 1262 window.abconvertPageContext = { 1263 template: "login", 1264 suffix: null, 1265 pageType: "customers\/login", 1266 productId: null, 1267 collectionId: null 1268 }; 1269 // Active Shopify Markets context, distinct from IP-derived visitor country. 1270 // Captured by the assignment script and frozen with the first-touch snapshot. 1271 window.abconvertMarket = "us"; 1272 1273 // Customer identity for audience targeting (PRO-2815). EXACTLY these four 1274 // fields â never id, email, name, phone, or address. The visitor context 1275 // travels to our servers with assignment tracking, so PII kept out of the 1276 // injection is PII kept out everywhere. Never render `customer | json`. 1277 // 1278 // Absent (app embed off, legacy snippet) means the identity is UNKNOWN and 1279 // the assignment script decides nothing; logged out is the zeroed object 1280 // below, which is a decidable state. 1281 // 1282 // `customer.total_spent` is a money value in the currency's SUBUNIT (cents): 1283 // $56.50 renders as 5650. The context contract is MAJOR units, so it is 1284 // divided here. The `.0` on the divisor is load-bearing â `divided_by: 100` 1285 // with an integer divisor truncates to 56 and a "spent over $100" filter 1286 // silently drifts. 1287 1288 window.abconvertCustomer = { 1289 loggedIn: false, 1290 tags: [], 1291 ordersCount: 0, 1292 totalSpent: 0 1293 }; 1294 1295</script>
1295 1296
1297<script class="abconvert" id="ABConvert-onsite-editor-src"> 1298 window.abconvertOnsiteEditorSrc = "https:\/\/cdn.shopify.com\/extensions\/01a0f9b7-899f-7377-b60c-23d7e19ae135\/v2.14.153\/assets\/onsite-editor.js"; 1299</script>
vendor: 1 bytes, line 1299
1299
1300<script class="abconvert" src="https://cdn.shopify.com/extensions/01a0f9b7-899f-7377-b60c-23d7e19ae135/v2.14.153/assets/abconvert-runtime.js"></script>
1300 1301 1302
1303<script class="abconvert"> 1304 /* abc-preview-widget-gate */ 1305 (function () { 1306 var inPreview = false; 1307 try { 1308 inPreview = 1309 /[?&]abconvert_(preview_key|experiment_id)=/.test(window.location.search) || 1310 window.sessionStorage.getItem('abconvert.preview') === 'true'; 1311 } catch (e) { 1312 /* sessionStorage blocked (privacy mode) â treat as not in preview */ 1313 } 1314 if (!inPreview) return; 1315 var s = document.createElement('script'); 1316 s.className = 'abconvert'; 1317 s.src = "https://cdn.shopify.com/extensions/01a0f9b7-899f-7377-b60c-23d7e19ae135/v2.14.153/assets/preview-widget.js"; 1318 s.defer = true; 1319 document.head.appendChild(s); 1320 })(); 1321</script>
1321 1322 1323
1324<script class="abconvert" src="https://cdn.shopify.com/extensions/01a0f9b7-899f-7377-b60c-23d7e19ae135/v2.14.153/assets/abconvert-engagement.js" defer></script>
1324 1325 1326 1327 1328
1328<script class="abconvert" id="ABConvert-namespace-groups"> 1329 window.abconvertNamespaceGroups = {"2dfee6f4-2a14-4e28-993c-dae1741b1222":{"memberExperimentIds":["6a75ddc206a95fda3fba117b","6a75de347154a3704f3365b3"],"inactiveExperimentIds":["6a75ddc206a95fda3fba117b","6a75de347154a3704f3365b3"],"excludedExperimentIds":[],"ranges":{}}}; 1330 </script>
1330 1331 1332 1333 1334 1335 1336
1337<script class="abconvert" src="https://cdn.shopify.com/extensions/01a0f9b7-899f-7377-b60c-23d7e19ae135/v2.14.153/assets/theme-clear-cache-script.js"></script>
1337 1338 1339 1340 1341 1342 1343 1344 1345
1345<script class="abconvert" id="ABConvert-price-cart-transform-dict"> 1346 window.abconvertLiquidVariables = { 1347 abconvertProduct: null, 1348 shopMoneyFormat: "${{amount}}", 1349 shopMoneyWithCurrencyFormat: "${{amount}} USD", 1350 currencySymbol: "$", 1351 currencyCode: "USD", 1352 shopifyProductId: null, 1353 shopifyProductHandle: null, 1354 pageType: "customers\/login", 1355 shopifySelectedOrFirstAvailableVariantId: null 1356 }; 1357 Object.assign(window, window.abconvertLiquidVariables); 1358 window.abconvertPriceCartTransformTestDict = "{\"7470513193138\":{\"experimentId\":\"66fa3c3c8105c394ac9d92c6\",\"startTime\":\"2024-09-30T05:50:52.416Z\",\"slug\":\"chebe-hair-butter\",\"title\":\"Chebe Hair Butter\",\"productId\":\"7470513193138\",\"hasOnlyDefaultVariant\":false,\"isFirstVariantSelected\":true,\"firstVariantId\":42447567356082,\"testPercentages\":[100,0],\"variantIds\":{\"0\":[\"42447567356082\",\"42447567388850\",\"43292577956018\"],\"1\":[\"42447567356082\",\"42447567388850\",\"43292577956018\"]},\"lowestPrice\":{\"0\":\"13.00\",\"1\":16},\"lowestCompareAtPrice\":{\"0\":0,\"1\":0},\"productIndex\":0,\"variantToGroupIndexToPrice\":{\"42447567356082\":{\"0\":{\"compareAtPrice\":null,\"price\":\"16.00\"},\"1\":{\"price\":16}},\"42447567388850\":{\"0\":{\"compareAtPrice\":null,\"price\":\"20.00\"},\"1\":{\"price\":16}},\"43292577956018\":{\"0\":{\"compareAtPrice\":null,\"price\":\"13.00\"},\"1\":{\"price\":16}}},\"allLowestPrice\":13,\"allLowestCompareAtPrice\":0,\"firstVariantPrice\":{\"0\":\"16.00\",\"1\":16},\"firstVariantCompareAtPrice\":{},\"isSamePrice\":false},\"7825728012466\":{\"experimentId\":\"66fa3c3c8105c394ac9d92c6\",\"startTime\":\"2024-09-30T05:50:52.416Z\",\"slug\":\"chebeauty-bestsellers-bundle\",\"title\":\"Bestsellers Bundle\",\"productId\":\"7825728012466\",\"hasOnlyDefaultVariant\":true,\"isFirstVariantSelected\":true,\"firstVariantId\":43365820334258,\"testPercentages\":[100,0],\"variantIds\":{\"0\":[\"43365820334258\"],\"1\":[\"43365820334258\"]},\"lowestPrice\":{\"0\":\"64.00\",\"1\":69},\"lowestCompareAtPrice\":{\"0\":\"100.00\",\"1\":100},\"productIndex\":1,\"variantToGroupIndexToPrice\":{\"43365820334258\":{\"0\":{\"compareAtPrice\":\"100.00\",\"price\":\"64.00\"},\"1\":{\"compareAtPrice\":100,\"price\":69}}},\"allLowestPrice\":64,\"allLowestCompareAtPrice\":100,\"firstVariantPrice\":{\"0\":\"64.00\",\"1\":69},\"firstVariantCompareAtPrice\":{\"0\":\"100.00\",\"1\":100},\"isSamePrice\":true},\"7825733583026\":{\"experimentId\":\"66fa3c3c8105c394ac9d92c6\",\"startTime\":\"2024-09-30T05:50:52.416Z\",\"slug\":\"ultimate-hair-growth-bundle-2\",\"title\":\"Ultimate Hair Growth Bundle\",\"productId\":\"7825733583026\",\"hasOnlyDefaultVariant\":true,\"isFirstVariantSelected\":true,\"firstVariantId\":43365839503538,\"testPercentages\":[100,0],\"variantIds\":{\"0\":[\"43365839503538\"],\"1\":[\"43365839503538\"]},\"lowestPrice\":{\"0\":\"56.00\",\"1\":59},\"lowestCompareAtPrice\":{\"0\":\"85.00\",\"1\":85},\"productIndex\":2,\"variantToGroupIndexToPrice\":{\"43365839503538\":{\"0\":{\"compareAtPrice\":\"85.00\",\"price\":\"56.00\"},\"1\":{\"compareAtPrice\":85,\"price\":59}}},\"allLowestPrice\":56,\"allLowestCompareAtPrice\":85,\"firstVariantPrice\":{\"0\":\"56.00\",\"1\":59},\"firstVariantCompareAtPrice\":{\"0\":\"85.00\",\"1\":85},\"isSamePrice\":true},\"7825737089202\":{\"experimentId\":\"66fa3c3c8105c394ac9d92c6\",\"startTime\":\"2024-09-30T05:50:52.416Z\",\"slug\":\"chebeauty-starter-pack-2\",\"title\":\"Chebeauty Starter Pack\",\"productId\":\"7825737089202\",\"hasOnlyDefaultVariant\":true,\"isFirstVariantSelected\":true,\"firstVariantId\":43365854150834,\"testPercentages\":[100,0],\"variantIds\":{\"0\":[\"43365854150834\"],\"1\":[\"43365854150834\"]},\"lowestPrice\":{\"0\":\"50.00\",\"1\":54},\"lowestCompareAtPrice\":{\"0\":\"70.00\",\"1\":70},\"productIndex\":3,\"variantToGroupIndexToPrice\":{\"43365854150834\":{\"0\":{\"compareAtPrice\":\"70.00\",\"price\":\"50.00\"},\"1\":{\"compareAtPrice\":70,\"price\":54}}},\"allLowestPrice\":50,\"allLowestCompareAtPrice\":70,\"firstVariantPrice\":{\"0\":\"50.00\",\"1\":54},\"firstVariantCompareAtPrice\":{\"0\":\"70.00\",\"1\":70},\"isSamePrice\":true},\"8309574926514\":{\"experimentId\":\"66fa3c3c8105c394ac9d92c6\",\"startTime\":\"2024-09-30T05:50:52.416Z\",\"slug\":\"dream-curls-bundle\",\"title\":\"Dream Curls Bundle\",\"productId\":\"8309574926514\",\"isFirstVariantSelected\":true,\"firstVariantId\":null,\"testPercentages\":[100,0],\"variantIds\":{\"0\":[\"44734941790386\"],\"1\":[\"44734941790386\"]},\"lowestPrice\":{\"0\":\"47.00\",\"1\":57},\"lowestCompareAtPrice\":{\"0\":\"110.00\",\"1\":110},\"productIndex\":4,\"variantToGroupIndexToPrice\":{\"44734941790386\":{\"0\":{\"compareAtPrice\":\"110.00\",\"price\":\"47.00\"},\"1\":{\"compareAtPrice\":110,\"price\":57}}},\"allLowestPrice\":47,\"allLowestCompareAtPrice\":110,\"firstVariantPrice\":{\"0\":\"47.00\",\"1\":57},\"firstVariantCompareAtPrice\":{\"0\":\"110.00\",\"1\":110},\"isSamePrice\":true},\"allOptionsMap\":{},\"fetchCountryCode\":false,\"setUrlParmas\":false,\"experiments\":{\"66fa3c3c8105c394ac9d92c6\":{\"testPercentages\":[100,0]}}}"; 1359 </script>
1359 1360
1360<script class="abconvert" src="https://cdn.shopify.com/extensions/01a0f9b7-899f-7377-b60c-23d7e19ae135/v2.14.153/assets/ab-test-v2.js"></script>
1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376
1376<script class="abconvert" id="ABConvert-combined-test-dict"> 1377 window.abconvertCombinedTestDict = {"schemaVersion":1,"generatedAt":1789996911584,"previewKey":"7f6e82055c3b5d831e380aafbdc6bcb4","experiments":[]}; 1378 // The preview widget is loaded dynamically and can run before this inline 1379 // dict during HTML parsing. Wake its registry scheduler once data is ready. 1380 window.dispatchEvent(new Event('abconvert:preview-registry-updated')); 1381 </script>
1381 1382 1383 1384
1385<script class="abconvert" src="https://cdn.shopify.com/extensions/01a0f9b7-899f-7377-b60c-23d7e19ae135/v2.14.153/assets/visitor-label-script.js" defer></script>
1385 1386 1387 1388 1389 1390 1391 1392 1393 1394<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
1395<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/chebeauty-brand.myshopify.com"></script>
1395 1396 1397
1398<script defer data-gorgias-loader-convert src="https://content.9gtb.com/loader.js"></script>
1398 1399 1400
1401<script defer data-gorgias-loader-mailto-replace src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=chebeauty-brand"></script>
1401 1402 1403 1404<!-- 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 /> 1405<link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin />
1406<script> 1407/* >> TriplePixel :: start*/ 1408window.TriplePixelData={TripleName:"chebeauty-brand.myshopify.com",ver:"2.16",plat:"SHOPIFY",isHeadless:false,src:'SHOPIFY_EXT',product:{id:"",name:``,price:"",variant:"",av:{ }},search:"",collection:"",cart:"drawer",template:"login",curr:"USD" || "USD", market:"22153003186"},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); 1409/* << TriplePixel :: end*/ 1410</script>
1410 1411 1412 1413 1414<!-- END app block -->
1414<script src="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1414
1414
1415<script src="https://cdn.shopify.com/extensions/01a0c823-0fa2-7342-afd4-b80643763b38/storerank-ai-81/assets/script.js" type="text/javascript" defer="defer"></script>
1415 1416<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1417<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: 62838014130,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "customers/login"};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 1417
1417
1418<script> 1419 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1420</script>
vendor: 1 bytes, line 1420
1420
1421<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}
1421).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: 62838014130,storefrontBaseUrl: "https://chebeauty.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://chebeauty.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2608103602","configuration":"{\"accountID\":\"abconvert\",\"shopID\":\"chebeauty-brand.myshopify.com\",\"debug\":\"false\",\"apiEndpoint\":\"https:\\\/\\\/app.abconvert.io\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"54eb69ada60c4e271588cac2428772c3","type":"APP","apiClientId":11583619073,"privacyPurposes":["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":"2597552306","configuration":"{\"shop\":\"chebeauty-brand.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"]}
1421,"dataSharingState":"unrestricted"},{"id":"2592178354","configuration":"{\"shopId\":\"08e05761-33dc-478c-ad5c-3bb9579efda2\",\"analyticsUrl\":\"https:\\\/\\\/shogun-abc-production.global.ssl.fastly.net\",\"appType\":\"ab_testing\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"6d2b8445c58f7ac1a1dfccce276de7aa","type":"APP","apiClientId":214825828353,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2065039538","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"ce823d8610c0a584e20e6f129c87f7d2","type":"APP","apiClientId":185443549185,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1825145010","configuration":"{\"accountID\":\"Uv4ZuA\",\"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":"1112473778","configuration":"{\"pixel_id\":\"424795886340692\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"1059618994","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1021247666","configuration":"{\"shopId\":\"chebeauty-brand.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":"813236402","configuration":"{\"Enabled\":\"true\",\"UpdatedAt\":\"2026-06-04T03:40:32.785Z\",\"DeveloperPreview\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7913f49eba866a6cbbe1bb85b5400251","type":"APP","apiClientId":34646425601,"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":"optimized"},{"id":"590217394","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"GT-5MJLQD8\\\",\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"MC-XHPKZLZJFY\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"MC-XHPKZLZJFY\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"MC-XHPKZLZJFY\\\"}],\\\"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":"485523634","configuration":"{\"pixelCode\":\"CDLLQ0BC77U21PQ62FI0\"}","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"}
1421,{"id":"124616882","configuration":"{\"botID\":\"brxlqwf79qyvh40b\",\"octaneDomain\":\"https:\/\/app.octaneai.com\",\"octaneNewDomain\":\"https:\/\/app2.octaneai.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"aace1440a9416e8b2805b96c7b2f2fe0","type":"APP","apiClientId":2012438,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"48529586","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"14","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"GTM"},{"id":"48824498","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Convert Revenue Tracking"},{"id":"51478706","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Convert Tracking"},{"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":"Chebeauty","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"chebeauty-brand.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/chebeauty.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"8339610796210","handle":"dream-curls-bundle-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44845359268018","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8506090258610","handle":"dream-curls-bundle-5","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45490250645682","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7470513193138","handle":"chebe-hair-butter","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42447567356082","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7673969017010","handle":"chebe-shampoo","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43039370346674","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7673971540146","handle":"chebe-leave-in-conditioner","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43039373492402","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7470527545522","handle":"chebe-hair-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42447594750130","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7539838058674","handle":"navidium-shipping-protection","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42637693583538","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7709292658866","handle":"rice-water-for-hair-growth","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43114693230770","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8420247011506","handle":"bestsellers-bundle-copy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45145500745906","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8420248322226","handle":"ultimate-hair-growth-bundle-copy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45145504186546","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8420247896242","handle":"chebeauty-starter-pack-copy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45145503072434","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7840630866098","handle":"shampoo-conditioners-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43396496359602","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7840639778994","handle":"damage-repair-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43396519919794","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7797110538418","handle":"hair-growth-booster-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43294385242290","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7627141972146","handle":"revitalizing-hair-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42927542173874","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7524850598066","handle":"the-ultimate-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42586172457138","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7524849451186","handle":"the-deluxe-treatment-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42586167476402","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://chebeauty.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"156109275314","themePublished":"true","eventMetadataId":"014160fe-505c-45c1-a144-944524b7ff22","shopId":"62838014130","storefrontBaseUrl":"https:\/\/chebeauty.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1421<script> 1422 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1423 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1424 window.ShopifyAnalytics.meta.currency = 'USD'; 1425 var meta = {"page":{"requestId":"614f020a-c6f8-4d32-b7ad-3fb494a76a46-1790955022"}}; 1426 for (var attr in meta) { 1427 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1428 } 1429</script>
vendor: 1 bytes, line 1429
1429
1430<script class="analytics"> 1431 (function () { 1432 var customDocumentWrite = function(content) { 1433 var jquery = null; 1434 1435 if (window.jQuery) { 1436 jquery = window.jQuery; 1437 } else if (window.Checkout && window.Checkout.$) { 1438 jquery = window.Checkout.$; 1439 } 1440 1441 if (jquery) { 1442 jquery('body').append(content); 1443 } 1444 }; 1445 1446 var hasLoggedConversion = function(token) { 1447 if (token) { 1448 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1449 } 1450 return false; 1451 } 1452 1453 var setCookieIfConversion = function(token) { 1454 if (token) { 1455 var twoMonthsFromNow = new Date(Date.now()); 1456 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1457 1458 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1459 } 1460 } 1461 1462 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1463 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1464 if (trekkie.integrations) { 1465 return; 1466 } 1467 trekkie.methods = [ 1468 'identify', 1469 'page', 1470 'ready', 1471 'track', 1472 'trackForm', 1473 'trackLink' 1474 ]; 1475 trekkie.factory = function(method) { 1476 return function() { 1477 var args = Array.prototype.slice.call(arguments); 1478 args.unshift(method); 1479 trekkie.push(args); 1480 if (method == 'track' || method == 'page') { 1481 var pageUrl; 1482 try { 1483 pageUrl = window.location.href; 1484 } catch (e) {} 1485 var pageReferrer; 1486 try { 1487 pageReferrer = document.referrer; 1488 } catch (e) {} 1489 try { 1490 if (window.__TREKKIE_SHIM_QUEUE == null) { 1491 window.__TREKKIE_SHIM_QUEUE = []; 1492 } 1493 window.__TREKKIE_SHIM_QUEUE.push({ 1494 from: 'trekkie-stub', 1495 method: method, 1496 args: args.slice(1), 1497 pageContext: { 1498 url: pageUrl, 1499 referrer: pageReferrer 1500 } 1501 }); 1502 } catch (e) { 1503 // no-op 1504 } 1505 } 1506 return trekkie; 1507 }; 1508 }; 1509 for (var i = 0; i < trekkie.methods.length; i++) { 1510 var key = trekkie.methods[i]; 1511 trekkie[key] = trekkie.factory(key); 1512 } 1513 trekkie.load = function(config) { 1514 trekkie.config = config || {}; 1515 trekkie.config.initialDocumentCookie = document.cookie; 1516 var first = document.getElementsByTagName('script')[0]; 1517var script = document.createElement('script'); 1518script.type = 'text/javascript'; 1519script.onerror = function(e) { 1520 var scriptFallback = document.createElement('script'); 1521 scriptFallback.type = 'text/javascript'; 1522 scriptFallback.onerror = function(error) { 1523 var Monorail = { 1524 produce: function produce(monorailDomain, schemaId, payload) { 1525 var currentMs = new Date().getTime(); 1526 var event = { 1527 schema_id: schemaId, 1528 payload: payload, 1529 metadata: { 1530 event_created_at_ms: currentMs, 1531 event_sent_at_ms: currentMs 1532 } 1533 }; 1534 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1535 }, 1536 sendRequest: function sendRequest(endpointUrl, payload) { 1537 // Try the sendBeacon API 1538 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1539 var blobData = new window.Blob([payload], { 1540 type: 'text/plain' 1541 }); 1542 1543 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1544 return true; 1545 } // sendBeacon was not successful 1546 1547 } // XHR beacon 1548 1549 var xhr = new XMLHttpRequest(); 1550 1551 try { 1552 xhr.open('POST', endpointUrl); 1553 xhr.setRequestHeader('Content-Type', 'text/plain'); 1554 xhr.send(payload); 1555 } catch (e) { 1556 console.log(e); 1557 } 1558 1559 return false; 1560 }, 1561 isIos12: function isIos12() { 1562 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1563 } 1564 }; 1565 Monorail.produce('monorail-edge.shopifysvc.com', 1566 'trekkie_storefront_load_errors/1.1', 1567 {shop_id: 62838014130, 1568 theme_id: 156109275314, 1569 app_name: "storefront", 1570 context_url: window.location.href, 1571 source_url: "//chebeauty.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1572 1573 }; 1574 scriptFallback.async = true; 1575 scriptFallback.src = '//chebeauty.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1576 first.parentNode.insertBefore(scriptFallback, first); 1577}; 1578script.async = true; 1579script.src = '//chebeauty.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1580first.parentNode.insertBefore(script, first); 1581 1582 }; 1583 trekkie.load( 1584 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":62838014130,"isMerchantRequest":null,"themeId":156109275314,"themeCityHash":"5446693810659664302","contentLanguage":"en","currency":"USD","eventMetadataId":"014160fe-505c-45c1-a144-944524b7ff22"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1585 ); 1586 1587 var loaded = false;
1588 trekkie.ready(function() { 1589 if (loaded) return; 1590 loaded = true; 1591 1592 window.ShopifyAnalytics.lib = window.trekkie; 1593 1594 var originalDocumentWrite = document.write; 1595 document.write = customDocumentWrite; 1596 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1597 document.write = originalDocumentWrite; 1598 1599 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1600 var token = match? match[1]: undefined; 1601 if (!hasLoggedConversion(token)) { 1602 setCookieIfConversion(token); 1603 1604 } 1605 }); 1606 1607 window.ShopifyAnalytics.lib.page(null,{"requestId":"614f020a-c6f8-4d32-b7ad-3fb494a76a46-1790955022","shopifyEmitted":true}); 1608 1609 var eventsListenerScript = document.createElement('script'); 1610 eventsListenerScript.async = true; 1611 eventsListenerScript.src = "//chebeauty.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1612 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1613})();</script>
vendor: 1 bytes, line 1613
1613
1614<script 1615 defer 1616 src="https://chebeauty.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1617 data-application="storefront-renderer" 1618 data-shop-id="62838014130" 1619 data-render-region="gcp-us-east1" 1620 data-page-type="customers/login" 1621 data-theme-instance-id="156109275314" 1622 data-theme-name="Dawn" 1623 data-theme-version="7.0.1" 1624 data-monorail-region="shop_domain" 1625 data-resource-timing-sampling-rate="10" 1626 data-shs="true" 1627 data-shs-beacon="true" 1628 data-shs-export-with-fetch="true" 1629 data-shs-logs-sample-rate="1" 1630 data-shs-beacon-endpoint="https://chebeauty.com/api/collect" 1631></script>
1631 1632<meta name="shopify-y" content="f3eb507e-d142-447f-8439-8b0a0140038a" data-expiration="1822512622000"><meta name="shopify-s" content="19c09d40-fb2f-46b4-878b-63ec80f01c31" data-expiration="1790956822000"><meta name="new-cookie-storage-activated" content="t"> 1633</head> 1634 1635 <body class="gradient "> 1636 1637 1638
1638<script> 1639 window.track_store = window.track_store || {}; 1640 window.track_store.product_state = window.track_store.product_state || {}; 1641 1642 var ajax_request = function(settings, data) { 1643 var method = typeof data === 'object'? 'POST' : "GET"; 1644 if (settings === undefined) settings = {}; 1645 if (settings.data !== undefined && settings.method === undefined) settings.method = 'POST'; 1646 if (settings.method === undefined) settings.method = 'GET'; 1647 if (settings.url === undefined) { 1648 return false; 1649 } 1650 var req = new XMLHttpRequest(); 1651 req.open(settings.method, settings.url); 1652 if (settings.json === true) { 1653 req.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); 1654 } 1655 req.onreadystatechange = function() { 1656 if (this.readyState === 4) { 1657 try { 1658 if (settings.callback === undefined) { 1659 console.log(this.responseText); 1660 } else { 1661 if (settings.json === true) { 1662 var json_data = false; 1663 try { 1664 json_data = JSON.parse(this.responseText); 1665 settings.callback(json_data); 1666 } catch(e) { 1667 console.log(e); 1668 } 1669 } else { 1670 settings.callback(this.responseText); 1671 } 1672 } 1673 } catch(e) { 1674 console.log(e); 1675 } 1676 } 1677 }; 1678 if (settings.method === 'POST') req.send(JSON.stringify(data)); 1679 else req.send(); 1680 } 1681</script>
1681 1682
1683<script type="text/javascript"> 1684 window.addEventListener('load', function(){ 1685 //Event ID Generator 1686 var generateEventId = window.temp_track_store.generateEventId; 1687 1688 function getPageType() { 1689 1690 return "Login Page"; 1691 1692 } 1693 1694 1695 var event_id = generateEventId('customerData'); 1696 window.temp_track_store.event_id['customerData'] = event_id; 1697 window.dataLayer.push({ 1698 "event": "customerData", 1699 "visitorType": "Guest", 1700 "event_id": event_id, 1701 }); 1702 if (sessionStorage.getItem('login_event') !== null) sessionStorage.removeItem('login_event'); 1703 1704var dataLayerData = {cart: {}}; 1705 dataLayerData.cart.total = "0.00"; 1706 dataLayerData.cart.count = 0; 1707 dataLayerData.cart.products = [];window.dataLayer.push(dataLayerData); 1708 window.dataLayer.push({ 1709 "pageType": "login", 1710 "shopifyPageType": "login", 1711 }); 1712 1713 1714 1715 1716 1717 var cart_btn = Array.from(document.querySelectorAll('a[href*="\/cart"]')); 1718 1719 //Checkout Ajax Handler 1720 window.checkout_ajax_handler = function () { 1721 ajax_request({ 1722 url: "/cart.js", 1723 json: true, 1724 method: 'get', 1725 callback: function(cart) { 1726 if (cart.items.length === 0) return; 1727 var output = { 1728 item_count: cart.item_count, 1729 cart_total: cart.total_price / 100, 1730 } 1731 var items = cart.items; 1732 items = items.map((item,i) => { 1733 return { 1734 position: i, 1735 id: item.variant_id, 1736 sku: item.sku, 1737 productId: item.product_id, 1738 variantId: item.variant_id, 1739 shopifyId: "shopify_US_" + item.product_id + "_" + item.variant_id, 1740 name: item.product_title.replace("'", ''), 1741 quantity: item.quantity, 1742 price: item.price / 100, 1743 brand: item.vendor.replace("'", ''), 1744 variant: item.variant_title 1745 } 1746 }) 1747 var event_id = generateEventId('checkout'); 1748 window.temp_track_store.event_id['checkout'] = event_id; 1749 window.dataLayer.push({ 1750 "cartTotal": output.cart_total, 1751 "itemCount": output.item_count, 1752 "event": "checkout", 1753 "ecommerce": { 1754 "currencyCode": "USD", 1755 'checkout': { 1756 'actionField': {"step":1}, 1757 'products': items, 1758 }, 1759 }, 1760 "event_id": event_id, 1761 }) 1762 } 1763 }) 1764 } 1765 1766 if (cart_btn.length > 0) { 1767 cart_btn.forEach(function(cart_button) { 1768 cart_button.addEventListener('click', function(e) { 1769 setTimeout(function() { 1770 ajax_request({ 1771 url: "/cart.js", 1772 json: true, 1773 method: 'get', 1774 callback: function(cart) { 1775 if (cart.items.length === 0) return; 1776 var output = { 1777 item_count: cart.item_count, 1778 cart_total: cart.total_price / 100, 1779 } 1780 var items = cart.items; 1781 items = items.map((item,i) => { 1782 return { 1783 position: i, 1784 id: item.variant_id, 1785 sku: item.sku, 1786 productId: item.product_id, 1787 variantId: item.variant_id, 1788 shopifyId: "shopify_US_" + item.product_id + "_" + item.variant_id, 1789 name: item.product_title.replace("'", ''), 1790 quantity: item.quantity, 1791 price: item.price / 100,
1792 brand: item.vendor.replace("'", ''), 1793 variant: item.variant_title 1794 } 1795 }) 1796 1797 var event_id = generateEventId('viewCart'); 1798 window.temp_track_store.event_id['viewCart'] = event_id; 1799 window.dataLayer.push({ 1800 "cartTotal": output.cart_total, 1801 "itemCount": output.item_count, 1802 "event": "viewCart", 1803 "ecommerce": { 1804 "currencyCode": "USD", 1805 "actionField": { "list": "Shopping Cart" }, 1806 "impressions": items, 1807 }, 1808 "event_id": event_id, 1809 }) 1810 1811 /*var checkout_button = Array.from(document.querySelectorAll('#CartDrawer-Checkout')); 1812 checkout_button.forEach(function(e) { 1813 if (e.getAttribute('data-ta') !== null) return; 1814 e.setAttribute('data-ta','1'); 1815 e.addEventListener('click', window.checkout_ajax_handler) 1816 })*/ 1817 } 1818 }) 1819 },500) 1820 }) 1821 }) 1822 } 1823 1824 document.addEventListener('click', function(e) { 1825 if (!e.target || !e.target.id || e.target.id !== "CartDrawer-Checkout") return; 1826 //window.checkout_ajax_handler() 1827 }) 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 function getClickedProductHandle(element) { 1838 var arr = element.href.split('/products/'); 1839 return arr[arr.length-1]; 1840 } 1841 1842 function handleProductClick(event) { 1843 if(typeof allProducts == "undefined") return; 1844 var target = event.target.matches('a[href*="/products/"]') 1845 ? event.target 1846 : event.target.closest('a[href*="/products/"]'); 1847 var handle = getClickedProductHandle(target); 1848 var clickedProduct = allProducts.filter(function(product) { 1849 return product.handle === handle; 1850 }); 1851 if (clickedProduct[0]) delete clickedProduct[0].list; 1852 if (clickedProduct[0]) delete clickedProduct[0].handle; 1853 1854 var event_id = generateEventId('productClick'); 1855 window.temp_track_store.event_id['productClick'] = event_id; 1856 window.dataLayer.push({ 1857 "event": "productClick", 1858 "ecommerce": { 1859 currencyCode: "USD", 1860 "click": { 1861 "actionField": {"list": clickedProduct.category || getPageType()}, 1862 "products": clickedProduct 1863 1864 } 1865 }, 1866 "event_id": event_id, 1867 }); 1868 } 1869 1870 Array.prototype.slice.call(document.querySelectorAll('a[href*="/products/"]')) 1871 .forEach(function(select) { 1872 select.addEventListener('click', handleProductClick); 1873 }); 1874 }, false); 1875</script>
1875 1876 1877<!-- Google Tag Manager (noscript) -->
vendor: 75 bytes, lines 1877-1880
1877 1878<noscript> 1879 <iframe 1880 src="https://www.googletagmanager.com/ns.html?id=
1880GTM-PMKJGJD
vendor: 99 bytes, lines 1880-1885
1880" 1881 height="0" 1882 width="0" 1883 style="display:none;visibility:hidden" 1884 ></iframe> 1885</noscript>
1886<!-- End Google Tag Manager (noscript) --> 1887 1888 1889 <a class="skip-to-content-link button visually-hidden" href="#MainContent"> 1890 Skip to content 1891 </a><div id="shopify-section-cart-drawer-new" class="shopify-section"> 1892
1893<script src="//chebeauty.com/cdn/shop/t/163/assets/cart.js?v=23351761178495675421781941837" defer="defer"></script>
1893 1894 1895<style> 1896.cart-upsell-dream-curls{ 1897display: none; 1898} 1899 .drawer { 1900 visibility: hidden; 1901 } 1902 .embla__prev, 1903 .embla__next { 1904 position: absolute; 1905 top: 50%; 1906 transform: translateY(-50%); 1907 } 1908 .embla__prev { 1909 left: -2%; 1910 } 1911 .embla__next { 1912 right: -2%; 1913 } 1914 .embla__button__svg { 1915 width: 10px; 1916 height: 10px; 1917 } 1918 .subscription-ab { 1919 display: block; 1920 } 1921 .drawer-selector.active .drawer-options { 1922 display: flex; 1923 flex-direction: column; 1924 row-gap: 16px; 1925 } 1926 .drawer-selector .drawer-options { 1927 display: none; 1928 } 1929 .selector-default span, 1930 .selector-default span + span { 1931 color: #777; 1932 } 1933 .selector-selectedDefault span, 1934 .cart-sub-select:hover .selector-default span { 1935 color: #0a0800; 1936 } 1937 .selector-selectedDefault span + span, 1938 .cart-sub-select:hover .selector-default span + span { 1939 color: #403f36; 1940 } 1941 .drawer-selected-option.active { 1942 border-color: #777 !important; 1943 } 1944</style> 1945 1946<cart-drawer class="drawer is-empty"> 1947 <div id="CartDrawer" class="cart-drawer"> 1948 <div id="CartDrawer-Overlay" class="cart-drawer__overlay"></div> 1949 <div 1950 class="drawer__inner" 1951 role="dialog" 1952 aria-modal="true" 1953 aria-label="Your cart" 1954 tabindex="-1" 1955 > 1956 <div class="drawer__header"> 1957 <h4 class="drawer__heading">Your Cart (0)</h4> 1958 <button 1959 class="drawer__close-btn" 1960 type="button" 1961 onclick="this.closest('cart-drawer').close()" 1962 aria-label="Close" 1963 > 1964 <svg 1965 width="24" 1966 height="24" 1967 viewBox="0 0 24 24" 1968 fill="none" 1969 xmlns="http://www.w3.org/2000/svg"> 1970 <mask 1971 id="mask0_10934_31724" 1972 style="mask-type:alpha" 1973 maskUnits="userSpaceOnUse" 1974 x="0" 1975 y="0" 1976 width="24" 1977 height="24"> 1978 <rect 1979 width="24" 1980 height="24" 1981 fill="#D9D9D9" /> 1982 </mask> 1983 <g mask="url(#mask0_10934_31724)"> 1984 <path d="M12 13.3998L7.10005 18.2998C6.91672 18.4831 6.68338 18.5748 6.40005 18.5748C6.11672 18.5748 5.88338 18.4831 5.70005 18.2998C5.51672 18.1165 5.42505 17.8831 5.42505 17.5998C5.42505 17.3165 5.51672 17.0831 5.70005 16.8998L10.6 11.9998L5.70005 7.0998C5.51672 6.91647 5.42505 6.68314 5.42505 6.3998C5.42505 6.11647 5.51672 5.88314 5.70005 5.6998C5.88338 5.51647 6.11672 5.4248 6.40005 5.4248C6.68338 5.4248 6.91672 5.51647 7.10005 5.6998L12 10.5998L16.9 5.6998C17.0834 5.51647 17.3167 5.4248 17.6 5.4248C17.8834 5.4248 18.1167 5.51647 18.3 5.6998C18.4834 5.88314 18.575 6.11647 18.575 6.3998C18.575 6.68314 18.4834 6.91647 18.3 7.0998L13.4 11.9998L18.3 16.8998C18.4834 17.0831 18.575 17.3165 18.575 17.5998C18.575 17.8831 18.4834 18.1165 18.3 18.2998C18.1167 18.4831 17.8834 18.5748 17.6 18.5748C17.3167 18.5748 17.0834 18.4831 16.9 18.2998L12 13.3998Z" fill="white" /> 1985 </g> 1986</svg> 1987 </button> 1988 </div> 1989 <div class="shipping-cont"><p class="free-shipping-val font-semibold text-black mb-2.5 leading-snug" 1990 style="font-size: 15px;" 1991 data-initialValue="50">You're <strong>$50</strong> away from <strong class="shipping-free-highlight">FREE SHIPPING!</strong></p> 1992 1993 <div class="shipping-bar-track"> 1994 <div id="free-shipping-bar" 1995 class="shipping-bar-fill" 1996 style="width: 0%"></div> 1997 </div> 1998 1999 <div class="hidden custom-test-b"> 2000 2001 2002 2003 2004 2005 2006 2007 0 2008 <p class="free-shipping-val-2 text-black text-base leading-sm font-semibold mb-2"> 2009 2010 2011 FREE SHIPPING IS ONLY 2012 <span class="free-shipping-val-2">$50</span> 2013 AWAY 2014 2015 2016 2017 </p> 2018 2019 <div class="relative"> 2020 <div class="w-full bg-white rounded-full h-2.5 absolute top-1/2 left-1/2 -translate-y-[15px] -translate-x-1/2"> 2021 <div 2022 class="bg-gray-600 h-2.5 rounded-full free-shipping-bar" 2023 style="width: 0%" 2024 ></div> 2025 </div> 2026 2027 <div class="flex justify-around relative z-[2]"> 2028 2029 2030
2031 <svg width="68" height="95" viewBox="0 0 68 95" fill="none" xmlns="http://www.w3.org/2000/svg"> 2032 <rect x="1" y="0.5" width="66" height="66" rx="33" fill="white"/> 2033 <rect x="1" y="0.5" width="66" height="66" rx="33" stroke="#DCD9D4"/> 2034 <mask id="mask0_402_7056" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="26" y="14" width="16" height="17"> 2035 <rect x="26" y="14.5" width="16" height="16" fill="#D9D9D9"/> 2036 </mask> 2037 <g mask="url(#mask0_402_7056)"> 2038 <path d="M30 27.8337C29.4444 27.8337 28.9722 27.6392 28.5833 27.2503C28.1944 26.8614 28 26.3892 28 25.8337H27.3333C27.1444 25.8337 26.9861 25.7698 26.8583 25.642C26.7306 25.5142 26.6667 25.3559 26.6667 25.167V18.5003C26.6667 18.1337 26.7972 17.8198 27.0583 17.5587C27.3194 17.2975 27.6333 17.167 28 17.167H36C36.3667 17.167 36.6806 17.2975 36.9417 17.5587C37.2028 17.8198 37.3333 18.1337 37.3333 18.5003V19.8337H38.6667C38.8778 19.8337 39.0778 19.8809 39.2667 19.9753C39.4556 20.0698 39.6111 20.2003 39.7333 20.367L41.2 22.317C41.2445 22.3725 41.2778 22.4337 41.3 22.5003C41.3222 22.567 41.3333 22.6392 41.3333 22.717V25.167C41.3333 25.3559 41.2694 25.5142 41.1417 25.642C41.0139 25.7698 40.8556 25.8337 40.6667 25.8337H40C40 26.3892 39.8056 26.8614 39.4167 27.2503C39.0278 27.6392 38.5556 27.8337 38 27.8337C37.4444 27.8337 36.9722 27.6392 36.5833 27.2503C36.1944 26.8614 36 26.3892 36 25.8337H32C32 26.3892 31.8056 26.8614 31.4167 27.2503C31.0278 27.6392 30.5556 27.8337 30 27.8337ZM30 26.5003C30.1889 26.5003 30.3472 26.4364 30.475 26.3087C30.6028 26.1809 30.6667 26.0225 30.6667 25.8337C30.6667 25.6448 30.6028 25.4864 30.475 25.3587C30.3472 25.2309 30.1889 25.167 30 25.167C29.8111 25.167 29.6528 25.2309 29.525 25.3587C29.3972 25.4864 29.3333 25.6448 29.3333 25.8337C29.3333 26.0225 29.3972 26.1809 29.525 26.3087C29.6528 26.4364 29.8111 26.5003 30 26.5003ZM28 24.5003H28.5333C28.7222 24.3003 28.9389 24.1392 29.1833 24.017C29.4278 23.8948 29.7 23.8337 30 23.8337C30.3 23.8337 30.5722 23.8948 30.8167 24.017C31.0611 24.1392 31.2778 24.3003 31.4667 24.5003H36V18.5003H28V24.5003ZM38 26.5003C38.1889 26.5003 38.3472 26.4364 38.475 26.3087C38.6028 26.1809 38.6667 26.0225 38.6667 25.8337C38.6667 25.6448 38.6028 25.4864 38.475 25.3587C38.3472 25.2309 38.1889 25.167 38 25.167C37.8111 25.167 37.6528 25.2309 37.525 25.3587C37.3972 25.4864 37.3333 25.6448 37.3333 25.8337C37.3333 26.0225 37.3972 26.1809 37.525 26.3087C37.6528 26.4364 37.8111 26.5003 38 26.5003ZM37.3333 23.167H40.1667L38.6667 21.167H37.3333V23.167Z" fill="#403F36"/> 2039 </g> 2040 <path d="M28.429 33.2V34.757H26.17V35.783H28.384V37.34H26.17V39.5H24.559V33.2H28.429ZM34.2302 39.5H32.5022L31.4042 37.466H30.8282V39.5H29.2172V33.2H31.7372C32.3792 33.2 32.9162 33.407 33.3482 33.821C33.7862 34.223 34.0052 34.742 34.0052 35.378C34.0052 35.75 33.9092 36.095 33.7172 36.413C33.5252 36.731 33.2642 36.983 32.9342 37.169L34.2302 39.5ZM31.7192 34.685H30.8282V36.098H31.7192C31.9172 36.104 32.0792 36.041 32.2052 35.909C32.3312 35.777 32.3942 35.606 32.3942 35.396C32.3942 35.186 32.3312 35.015 32.2052 34.883C32.0792 34.751 31.9172 34.685 31.7192 34.685ZM36.4092 37.061V37.988H38.8482V39.5H34.7982V33.2H38.8032V34.703H36.4092V35.576H38.5782V37.061H36.4092ZM41.2256 37.061V37.988H43.6646V39.5H39.6146V33.2H43.6196V34.703H41.2256V35.576H43.3946V37.061H41.2256ZM16.6662 49.635C16.0122 49.635 15.4632 49.497 15.0192 49.221C14.5812 48.945 14.2722 48.561 14.0922 48.069L15.4692 47.268C15.7032 47.826 16.1172 48.105 16.7112 48.105C17.2032 48.105 17.4492 47.964 17.4492 47.682C17.4492 47.502 17.3082 47.352 17.0262 47.232C16.9302 47.196 16.6662 47.115 16.2342 46.989C15.6222 46.815 15.1572 46.572 14.8392 46.26C14.5212 45.948 14.3622 45.534 14.3622 45.018C14.3622 44.436 14.5692 43.965 14.9832 43.605C15.4092 43.245 15.9312 43.065 16.5492 43.065C17.0772 43.065 17.5452 43.191 17.9532 43.443C18.3612 43.689 18.6732 44.043 18.8892 44.505L17.5392 45.297C17.3412 44.829 17.0142 44.595 16.5582 44.595C16.3722 44.595 16.2282 44.634 16.1262 44.712C16.0242 44.784 15.9732 44.883 15.9732 45.009C15.9732 45.147 16.0452 45.264 16.1892 45.36C16.3392 45.456 16.6272 45.567 17.0532 45.693C17.3712 45.789 17.6172 45.873 17.7912 45.945C17.9892 46.029 18.1932 46.143 18.4032 46.287C18.8412 46.575 19.0602 47.034 19.0602 47.664C19.0602 48.282 18.8412 48.765 18.4032 49.113C17.9652 49.461 17.3862 49.635 16.6662 49.635ZM23.0299 45.531V43.2H24.6319V49.5H23.0299V47.079H21.2569V49.5H19.6459V43.2H21.2569V45.531H23.0299ZM25.6312 49.5V43.2H27.2422V49.5H25.6312ZM28.2328 43.2H30.6808C31.3168 43.2 31.8508 43.407 32.2828 43.821C32.7148 44.235 32.9308 44.763 32.9308 45.405C32.9308 46.047 32.7148 46.575 32.2828 46.989C31.8508 47.403 31.3168 47.61 30.6808 47.61H29.8438V49.5H28.2328V43.2ZM29.8438 46.08H30.6808C30.8608 46.08 31.0108 46.017 31.1308 45.891C31.2568 45.765 31.3198 45.603 31.3198 45.405C31.3198 45.207 31.2568 45.048 31.1308 44.928C31.0108 44.802 30.8608 44.739 30.6808 44.739H29.8438V46.08ZM33.559 43.2H36.007C36.643 43.2 37.177 43.407 37.609 43.821C38.041 44.235 38.257 44.763 38.257 45.405C38.257 46.047 38.041 46.575 37.609 46.989C37.177 47.403 36.643 47.61 36.007 47.61H35.17V49.5H33.559V43.2ZM35.17 46.08H36.00
20407C36.187 46.08 36.337 46.017 36.457 45.891C36.583 45.765 36.646 45.603 36.646 45.405C36.646 45.207 36.583 45.048 36.457 44.928C36.337 44.802 36.187 44.739 36.007 44.739H35.17V46.08ZM38.8851 49.5V43.2H40.4961V49.5H38.8851ZM44.9607 46.368V43.2H46.5627V49.5H45.3207L43.0977 46.332V49.5H41.4867V43.2H42.7377L44.9607 46.368ZM50.6379 45.891H53.8149V46.53C53.8149 47.454 53.5239 48.204 52.9419 48.78C52.3599 49.35 51.6099 49.635 50.6919 49.635C49.7139 49.635 48.9039 49.32 48.2619 48.69C47.6319 48.06 47.3169 47.283 47.3169 46.359C47.3169 45.441 47.6319 44.661 48.2619 44.019C48.8919 43.383 49.6719 43.065 50.6019 43.065C51.1839 43.065 51.7209 43.197 52.2129 43.461C52.6989 43.719 53.0829 44.07 53.3649 44.514L51.9969 45.297C51.8709 45.099 51.6849 44.94 51.4389 44.82C51.1929 44.7 50.9199 44.64 50.6199 44.64C50.1219 44.64 49.7139 44.802 49.3959 45.126C49.0779 45.456 48.9189 45.87 48.9189 46.368C48.9189 46.86 49.0749 47.271 49.3869 47.601C49.7049 47.937 50.1489 48.105 50.7189 48.105C51.4509 48.105 51.9339 47.829 52.1679 47.277H50.6379V45.891Z" fill="#403F36"/> 2041 <path d="M28.7058 85.784C28.7058 86.7333 28.4071 87.512 27.8098 88.12C27.2231 88.7173 26.4285 89.0747 25.4258 89.192V90.6H24.3058V89.208C23.3991 89.144 22.6205 88.888 21.9698 88.44C21.3298 87.992 20.8658 87.384 20.5778 86.616L22.7858 85.336C23.1165 86.1147 23.6231 86.5627 24.3058 86.68V84.472L24.0978 84.392C23.4365 84.136 22.8818 83.8533 22.4338 83.544C21.5058 82.904 21.0418 82.024 21.0418 80.904C21.0418 79.9227 21.3565 79.1493 21.9858 78.584C22.6151 78.008 23.3885 77.6773 24.3058 77.592V76.2H25.4258V77.624C26.9405 77.816 27.9911 78.5893 28.5778 79.944L26.4178 81.208C26.2045 80.6747 25.8738 80.328 25.4258 80.168V82.328L25.9538 82.552C26.2525 82.6693 26.4445 82.7493 26.5298 82.792C26.7965 82.9307 26.9725 83.0213 27.0578 83.064C27.3031 83.1813 27.4845 83.2933 27.6018 83.4C28.0498 83.8053 28.3165 84.1253 28.4018 84.36C28.6045 84.8293 28.7058 85.304 28.7058 85.784ZM23.6018 80.92C23.6018 81.2293 23.8365 81.5227 24.3058 81.8V80.12C23.8365 80.2373 23.6018 80.504 23.6018 80.92ZM25.4258 84.936V86.648C25.9058 86.52 26.1458 86.2427 26.1458 85.816C26.1458 85.464 25.9058 85.1707 25.4258 84.936ZM32.6714 81.736H33.5834C34.6821 81.736 35.5941 82.0667 36.3194 82.728C37.0554 83.3893 37.4234 84.3067 37.4234 85.48C37.4234 86.6533 37.0288 87.5707 36.2394 88.232C35.4501 88.8933 34.4848 89.224 33.3434 89.224C32.3941 89.224 31.5674 89.0213 30.8634 88.616C30.1701 88.2107 29.6634 87.6133 29.3434 86.824L31.5514 85.544C31.8288 86.3333 32.4261 86.728 33.3434 86.728C33.9834 86.7707 34.4314 86.5733 34.6874 86.136C34.9541 85.6987 34.9594 85.2613 34.7034 84.824C34.4474 84.3867 34.0208 84.1893 33.4234 84.232H29.9194L30.3834 77.8H36.8634V80.2H32.7834L32.6714 81.736ZM46.0481 87.64C45.2481 88.696 44.1334 89.224 42.7041 89.224C41.2854 89.224 40.1654 88.696 39.3441 87.64C38.5441 86.5733 38.1441 85.16 38.1441 83.4C38.1441 81.64 38.5441 80.232 39.3441 79.176C40.1547 78.1093 41.2747 77.576 42.7041 77.576C44.1334 77.576 45.2481 78.1093 46.0481 79.176C46.8587 80.2213 47.2641 81.6293 47.2641 83.4C47.2641 85.16 46.8587 86.5733 46.0481 87.64ZM42.7041 80.072C41.3707 80.072 40.7041 81.1813 40.7041 83.4C40.7041 85.6187 41.3707 86.728 42.7041 86.728C44.0374 86.728 44.7041 85.6187 44.7041 83.4C44.7041 81.1813 44.0374 80.072 42.7041 80.072Z" fill="#403F36"/> 2042 </svg> 2043 2044 2045 2046 2047 2048 2049 2050 <svg width="68" height="95" viewBox="0 0 68 95" fill="none" xmlns="http://www.w3.org/2000/svg"> 2051 <rect x="1" y="0.5" width="66" height="66" rx="33" fill="white"/> 2052 <rect x="1" y="0.5" width="66" height="66" rx="33" stroke="#DCD9D4"/> 2053 <mask id="mask0_402_7058" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="26" y="14" width="16" height="17"> 2054 <rect x="26" y="14.5" width="16" height="16" fill="#D9D9D9"/> 2055 </mask> 2056 <g mask="url(#mask0_402_7058)"> 2057 <path d="M28.5311 27.7856V22.1005C28.1645 22.1005 27.8506 21.9699 27.5895 21.7088C27.3284 21.4477 27.1978 21.1338 27.1978 20.7671V19.2584C27.1978 18.8386 27.3456 18.4809 27.6413 18.1852C27.9369 17.8896 28.2947 17.7418 28.7145 17.7418H30.7322C30.682 17.6418 30.6485 17.5371 30.6319 17.4277C30.6152 17.3183 30.6069 17.2034 30.6069 17.0831C30.6069 16.5116 30.8071 16.0267 31.2076 15.6285C31.6082 15.2303 32.0945 15.0312 32.6667 15.0312C32.9196 15.0312 33.1578 15.0752 33.3813 15.163C33.6049 15.2508 33.8111 15.3753 34 15.5367C34.1889 15.3669 34.3958 15.2402 34.6206 15.1566C34.8455 15.073 35.0844 15.0312 35.3373 15.0312C35.9084 15.0312 36.3938 15.2303 36.7935 15.6285C37.1932 16.0267 37.3931 16.5116 37.3931 17.0831C37.3931 17.2038 37.3827 17.3164 37.3618 17.4206C37.3409 17.5249 37.3095 17.632 37.2677 17.7418H39.2855C39.7053 17.7418 40.063 17.8896 40.3587 18.1852C40.6544 18.4809 40.8022 18.8386 40.8022 19.2584V20.7671C40.8022 21.1338 40.6716 21.4477 40.4105 21.7088C40.1494 21.9699 39.8355 22.1005 39.4688 22.1005V27.7856C39.4688 28.2054 39.321 28.5631 39.0254 28.8588C38.7297 29.1544 38.372 29.3023 37.9522 29.3023H30.0478C29.628 29.3023 29.2703 29.1544 28.9746 28.8588C28.679 28.5631 28.5311 28.2054 28.5311 27.7856ZM35.3373 16.4204C35.1484 16.4204 34.9901 16.4837 34.8623 16.6103C34.7345 16.737 34.6706 16.8939 34.6706 17.0811C34.6706 17.2683 34.7345 17.4252 34.8
2057623 17.5518C34.9901 17.6784 35.1484 17.7418 35.3373 17.7418C35.5262 17.7418 35.6845 17.6784 35.8123 17.5518C35.9401 17.4252 36.004 17.2683 36.004 17.0811C36.004 16.8939 35.9401 16.737 35.8123 16.6103C35.6845 16.4837 35.5262 16.4204 35.3373 16.4204ZM32 17.0811C32 17.2683 32.0639 17.4252 32.1917 17.5518C32.3194 17.6784 32.4778 17.7418 32.6667 17.7418C32.8556 17.7418 33.0139 17.6784 33.1417 17.5518C33.2694 17.4252 33.3333 17.2683 33.3333 17.0811C33.3333 16.8939 33.2694 16.737 33.1417 16.6103C33.0139 16.4837 32.8556 16.4204 32.6667 16.4204C32.4778 16.4204 32.3194 16.4837 32.1917 16.6103C32.0639 16.737 32 16.8939 32 17.0811ZM28.7145 19.2584V20.5838H33.2815V19.2584H28.7145ZM33.2815 27.7896V22.1005H30.0478V27.7896H33.2815ZM34.7185 27.7896H37.9522V22.1005H34.7185V27.7896ZM39.2895 20.5838V19.2584H34.7185V20.5838H39.2895Z" fill="#403F36"/> 2058 </g> 2059 <path d="M19.8644 33.2H21.4664V39.5H19.8644V36.107L18.3344 38.636H18.1724L16.6514 36.116V39.5H15.0404V33.2H16.6514L18.2534 35.891L19.8644 33.2ZM26.0222 33.2H27.8312L25.7072 37.079V39.5H24.0962V37.097L21.9722 33.2H23.7812L24.8972 35.531L26.0222 33.2ZM30.1134 39.635C29.4594 39.635 28.9104 39.497 28.4664 39.221C28.0284 38.945 27.7194 38.561 27.5394 38.069L28.9164 37.268C29.1504 37.826 29.5644 38.105 30.1584 38.105C30.6504 38.105 30.8964 37.964 30.8964 37.682C30.8964 37.502 30.7554 37.352 30.4734 37.232C30.3774 37.196 30.1134 37.115 29.6814 36.989C29.0694 36.815 28.6044 36.572 28.2864 36.26C27.9684 35.948 27.8094 35.534 27.8094 35.018C27.8094 34.436 28.0164 33.965 28.4304 33.605C28.8564 33.245 29.3784 33.065 29.9964 33.065C30.5244 33.065 30.9924 33.191 31.4004 33.443C31.8084 33.689 32.1204 34.043 32.3364 34.505L30.9864 35.297C30.7884 34.829 30.4614 34.595 30.0054 34.595C29.8194 34.595 29.6754 34.634 29.5734 34.712C29.4714 34.784 29.4204 34.883 29.4204 35.009C29.4204 35.147 29.4924 35.264 29.6364 35.36C29.7864 35.456 30.0744 35.567 30.5004 35.693C30.8184 35.789 31.0644 35.873 31.2384 35.945C31.4364 36.029 31.6404 36.143 31.8504 36.287C32.2884 36.575 32.5074 37.034 32.5074 37.664C32.5074 38.282 32.2884 38.765 31.8504 39.113C31.4124 39.461 30.8334 39.635 30.1134 39.635ZM32.5563 33.2H37.2813V34.757H35.7243V39.5H34.1133V34.757H32.5563V33.2ZM39.4766 37.061V37.988H41.9156V39.5H37.8656V33.2H41.8706V34.703H39.4766V35.576H41.6456V37.061H39.4766ZM47.695 39.5H45.967L44.869 37.466H44.293V39.5H42.682V33.2H45.202C45.844 33.2 46.381 33.407 46.813 33.821C47.251 34.223 47.47 34.742 47.47 35.378C47.47 35.75 47.374 36.095 47.182 36.413C46.99 36.731 46.729 36.983 46.399 37.169L47.695 39.5ZM45.184 34.685H44.293V36.098H45.184C45.382 36.104 45.544 36.041 45.67 35.909C45.796 35.777 45.859 35.606 45.859 35.396C45.859 35.186 45.796 35.015 45.67 34.883C45.544 34.751 45.382 34.685 45.184 34.685ZM51.6423 33.2H53.4513L51.3273 37.079V39.5H49.7163V37.097L47.5923 33.2H49.4013L50.5173 35.531L51.6423 33.2ZM27.9885 45.891H31.1655V46.53C31.1655 47.454 30.8745 48.204 30.2925 48.78C29.7105 49.35 28.9605 49.635 28.0425 49.635C27.0645 49.635 26.2545 49.32 25.6125 48.69C24.9825 48.06 24.6675 47.283 24.6675 46.359C24.6675 45.441 24.9825 44.661 25.6125 44.019C26.2425 43.383 27.0225 43.065 27.9525 43.065C28.5345 43.065 29.0715 43.197 29.5635 43.461C30.0495 43.719 30.4335 44.07 30.7155 44.514L29.3475 45.297C29.2215 45.099 29.0355 44.94 28.7895 44.82C28.5435 44.7 28.2705 44.64 27.9705 44.64C27.4725 44.64 27.0645 44.802 26.7465 45.126C26.4285 45.456 26.2695 45.87 26.2695 46.368C26.2695 46.86 26.4255 47.271 26.7375 47.601C27.0555 47.937 27.4995 48.105 28.0695 48.105C28.8015 48.105 29.2845 47.829 29.5185 47.277H27.9885V45.891ZM31.9154 49.5V43.2H33.5264V49.5H31.9154ZM38.387 43.2V44.757H36.128V45.783H38.342V47.34H36.128V49.5H34.517V43.2H38.387ZM38.7702 43.2H43.4952V44.757H41.9382V49.5H40.3272V44.757H38.7702V43.2Z" fill="#403F36"/> 2060 <path d="M30.3074 85.784C30.3074 86.7333 30.0087 87.512 29.4114 88.12C28.8247 88.7173 28.03 89.0747 27.0274 89.192V90.6H25.9074V89.208C25.0007 89.144 24.222 88.888 23.5714 88.44C22.9314 87.992 22.4674 87.384 22.1794 86.616L24.3874 85.336C24.718 86.1147 25.2247 86.5627 25.9074 86.68V84.472L25.6994 84.392C25.038 84.136 24.4834 83.8533 24.0354 83.544C23.1074 82.904 22.6434 82.024 22.6434 80.904C22.6434 79.9227 22.958 79.1493 23.5874 78.584C24.2167 78.008 24.99 77.6773 25.9074 77.592V76.2H27.0274V77.624C28.542 77.816 29.5927 78.5893 30.1794 79.944L28.0194 81.208C27.806 80.6747 27.4754 80.328 27.0274 80.168V82.328L27.5554 82.552C27.854 82.6693 28.046 82.7493 28.1314 82.792C28.398 82.9307 28.574 83.0213 28.6594 83.064C28.9047 83.1813 29.086 83.2933 29.2034 83.4C29.6514 83.8053 29.918 84.1253 30.0034 84.36C30.206 84.8293 30.3074 85.304 30.3074 85.784ZM25.2034 80.92C25.2034 81.2293 25.438 81.5227 25.9074 81.8V80.12C25.438 80.2373 25.2034 80.504 25.2034 80.92ZM27.0274 84.936V86.648C27.5074 86.52 27.7474 86.2427 27.7474 85.816C27.7474 85.464 27.5074 85.
20601707 27.0274 84.936ZM30.6288 80.264V77.8H37.9888V79.944L34.3408 89H31.6208L35.1408 80.264H30.6288ZM40.9918 81.736H41.9038C43.0024 81.736 43.9144 82.0667 44.6398 82.728C45.3758 83.3893 45.7438 84.3067 45.7438 85.48C45.7438 86.6533 45.3491 87.5707 44.5598 88.232C43.7704 88.8933 42.8051 89.224 41.6638 89.224C40.7144 89.224 39.8878 89.0213 39.1838 88.616C38.4904 88.2107 37.9838 87.6133 37.6638 86.824L39.8718 85.544C40.1491 86.3333 40.7464 86.728 41.6638 86.728C42.3038 86.7707 42.7518 86.5733 43.0078 86.136C43.2744 85.6987 43.2798 85.2613 43.0238 84.824C42.7678 84.3867 42.3411 84.1893 41.7438 84.232H38.2398L38.7038 77.8H45.1838V80.2H41.1038L40.9918 81.736Z" fill="#403F36"/> 2061 </svg> 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 <svg width="68" height="95" viewBox="0 0 68 95" fill="none" xmlns="http://www.w3.org/2000/svg"> 2072 <rect x="1" y="0.5" width="66" height="66" rx="33" fill="white"/> 2073 <rect x="1" y="0.5" width="66" height="66" rx="33" stroke="#DCD9D4"/> 2074 <path d="M26.4573 27.5H18.6173V25.42L22.3293 21.5C23.0813 20.684 23.4013 20.268 23.4013 19.772C23.4013 19.212 23.0333 18.844 22.4093 18.844C21.7533 18.844 21.2413 19.228 20.9053 20.012L18.4413 18.636C19.1613 16.956 20.6653 16.06 22.3773 16.06C23.4493 16.06 24.3613 16.38 25.1133 17.02C25.8813 17.644 26.2653 18.508 26.2653 19.612C26.2653 20.908 25.6413 21.932 24.4733 23.148L22.9533 24.732H26.4573V27.5ZM35.2292 26.156C34.4133 27.212 33.2773 27.74 31.8213 27.74C30.3653 27.74 29.2133 27.212 28.3973 26.156C27.5813 25.084 27.1813 23.676 27.1813 21.9C27.1813 20.124 27.5813 18.716 28.3973 17.66C29.2133 16.588 30.3653 16.06 31.8213 16.
207406C33.2773 16.06 34.4133 16.588 35.2292 17.66C36.0453 18.716 36.4613 20.124 36.4613 21.9C36.4613 23.676 36.0453 25.084 35.2292 26.156ZM30.0453 21.9C30.0453 23.932 30.6373 24.956 31.8213 24.956C33.0053 24.956 33.5973 23.932 33.5973 21.9C33.5973 19.868 33.0053 18.844 31.8213 18.844C30.6373 18.844 30.0453 19.868 30.0453 21.9ZM40.0509 21.804C39.2189 21.804 38.5149 21.532 37.9549 20.972C37.3949 20.412 37.1069 19.724 37.1069 18.924C37.1069 18.124 37.3949 17.452 37.9549 16.892C38.5149 16.332 39.2189 16.06 40.0509 16.06C40.8829 16.06 41.5709 16.332 42.1309 16.892C42.6909 17.452 42.9629 18.124 42.9629 18.924C42.9629 19.74 42.6749 20.412 42.1149 20.972C41.5549 21.532 40.8669 21.804 40.0509 21.804ZM39.8749 26.364L38.7709 25.74L46.1309 17.74L47.2509 18.38L39.8749 26.364ZM40.0349 19.772C41.1229 19.836 41.1229 18.012 40.0349 18.092C39.5709 18.092 39.2189 18.46 39.2189 18.924C39.2189 19.42 39.5709 19.772 40.0349 19.772ZM46.2429 27.724C45.3949 27.724 44.6909 27.452 44.1309 26.892C43.5709 26.332 43.2989 25.66 43.2989 24.86C43.2989 24.044 43.5709 23.372 44.1309 22.812C44.6909 22.252 45.3949 21.98 46.2429 21.98C47.0749 21.98 47.7629 22.268 48.3229 22.828C48.8829 23.388 49.1549 24.06 49.1549 24.86C49.1549 25.66 48.8669 26.332 48.3069 26.892C47.7469 27.452 47.0589 27.724 46.2429 27.724ZM47.0429 24.86C47.0429 24.364 46.6909 24.012 46.2269 24.012C45.7629 24.012 45.4109 24.364 45.4109 24.86C45.4109 25.324 45.7629 25.692 46.2269 25.692C46.6909 25.692 47.0429 25.308 47.0429 24.86Z" fill="#403F36"/> 2075 <path d="M25.808 40.635C24.86 40.635 24.074 40.323 23.45 39.699C22.832 39.075 22.523 38.292 22.523 37.35C22.523 36.408 22.832 35.628 23.45 35.01C24.068 34.38 24.854 34.065 25.808 34.065C26.378 34.065 26.906 34.2 27.392 34.47C27.878 34.74 28.259 35.103 28.535 35.559L27.14 36.36C27.02 36.138 26.84 35.964 26.6 35.838C26.366 35.706 26.102 35.64 25.808 35.64C25.31 35.64 24.902 35.799 24.584 36.117C24.278 36.435 24.125 36.846 24.125 37.35C24.125 37.866 24.278 38.28 24.584 38.592C24.896 38.904 25.304 39.06 25.808 39.06C26.102 39.06 26.366 38.997 26.6 38.871C26.84 38.739 27.02 38.559 27.14 38.331L28.535 39.141C28.259 39.603 27.878 39.969 27.392 40.239C26.912 40.503 26.384 40.635 25.808 40.635ZM34.6917 40.5H32.9547L32.6847 39.591H30.5877L30.3177 40.5H28.5717L30.6507 34.2H32.6127L34.6917 40.5ZM31.6317 36.063L31.0017 38.205H32.2707L31.6317 36.063ZM37.2589 40.635C36.6049 40.635 36.0559 40.497 35.6119 40.221C35.1739 39.945 34.8649 39.561 34.6849 39.069L36.0619 38.268C36.2959 38.826 36.7099 39.105 37.3039 39.105C37.7959 39.105 38.0419 38.964 38.0419 38.682C38.0419 38.502 37.9009 38.352 37.6189 38.232C37.5229 38.196 37.2589 38.115 36.8269 37.989C36.2149 37.815 35.7499 37.572 35.4319 37.26C35.1139 36.948 34.9549 36.534 34.9549 36.018C34.9549 35.436 35.1619 34.965 35.5759 34.605C36.0019 34.245 36.5239 34.065 37.1419 34.065C37.6699 34.065 38.1379 34.191 38.5459 34.443C38.9539 34.689 39.2659 35.043 39.4819 35.505L38.1319 36.297C37.9339 35.829 37.6069 35.595 37.1509 35.595C36.9649 35.595 36.8209 35.634 36.7189 35.712C36.6169 35.784 36.5659 35.883 36.5659 36.009C36.5659 36.147 36.6379 36.264 36.7819 36.36C36.9319 36.456 37.2199 36.567 37.6459 36.693C37.9639 36.789 38.2099 36.873 38.3839 36.945C38.5819 37.029 38.7859 37.143 38.9959 37.287C39.4339 37.575 39.6529 38.034 39.6529 38.664C39.6529 39.282 39.4339 39.765 38.9959 40.113C38.5579 40.461 37.9789 40.635 37.2589 40.635ZM43.6227 36.531V34.2H45.2247V40.5H43.6227V38.079H41.8497V40.5H40.2387V34.2H41.8497V36.531H43.6227ZM26.8495 47.242C27.3775 47.554 27.6415 48.025 27.6415 48.655C27.6415 49.219 27.4495 49.666 27.0655 49.996C26.6755 50.332 26.1625 50.5 25.5265 50.5H22.8715V44.2H25.3555C25.9915 44.2 26.4955 44.362 26.8675 44.686C27.2455 45.004 27.4345 45.439 27.4345 45.991C27.4345 46.519 27.2395 46.936 26.8495 47.242ZM25.3105 45.64H24.4825V46.63H25.3105C25.4605 46.63 25.5835 46.588 25.6795 46.504C25.7755 46.414 25.8235 46.291 25.8235 46.135C25.8235 45.985 25.7755 45.865 25.6795 45.775C25.5835 45.685 25.4605 45.64 25.3105 45.64ZM24.4825 49.06H25.4815C25.6435 49.06 25.7755 49.012 25.8775 48.916C25.9795 48.814 26.0305 48.685 26.0305 48.529C26.0305 48.367 25.9795 48.238 25.8775 48.142C25.7755 48.046 25.6435 47.998 25.4815 47.998H24.4825V49.06ZM33.8655 50.5H32.1285L31.8585 49.591H29.7615L29.4915 50.5H27.7455L29.8245 44.2H31.7865L33.8655 50.5ZM30.8055 46.063L30.1755 48.205H31.4445L30.8055 46.063ZM37.1371 50.635C36.1891 50.635 35.4031 50.323 34.7791 49.699C34.1611 49.075 33.8521 48.292 33.8521 47.35C33.8521 46.408 34.1611 45.628 34.7791 45.01C35.3971 44.38 36.1831 44.065 37.1371 44.065C37.7071 44.065 38.2351 44.2 38.7211 44.47C39.2071 44.74 39.5881 45.103 39.8641 45.559L38.4691 46.36C38.3491 46.138 38.1691 45.964 37.9291 45.838C37.6951 45.706 37.4311 45.64 37.1371 45.64C36.6391 45.64 36.2311 45.799 35.9131 46.117C35.6071 46.435 35.4541 46.846 35.4541 47.35C35.4541 47.866 35.6071 48.28 35.9131 48.592C36.2251 48.904 36.6331 49.06 37.1371 49.06C37.4311 49.06 37.6951 48.997 37.9291 48.871C38.1691 48.739 38.3491 48.559 38.4691 48.331L39.8641 49.141C39.5881 49.603 39.2071 49.969 38.7211 50.239C38.2411 50.503 37.7131 50.635 37.1371 50.635ZM43.5728 47.26L45.6608 50.5H43.8608L42.0518 47.683V50.5H40.4408V44.2H42.0518V46.846L43.7708 44.2H45.5708L43.5728 47.26Z" fill="#403F36"/> 2076 <path d="M24.7605 85.784C24.7605 86.7333 24.4618 87.512 23.8645 88.12C23.2778 88.7173 22.4832 89.0747 21.4805 89.192V90.6H20.3605V89.208C19.4538 89.144 18.6752 88.888 18.0245 88.44C17.3845 87.992 16.9205 87.384 16.6325 86.616L18.8405 85.336C19.1712 86.1147 19.6778 86.5627 20.3605 86.68V84.472L20.1525 84.392C19.4912 84.136 18.9365 83.8533 18.4885 83.544C17.5605 82.904 17.0965 82.024 17.0965 80.904C17.0965 79.9227 17.4112 79.1493 18.0405 78.584C18.6698 78.008 19.4432 77.6773 20.3605 77.592V76.2H21.4805V77.624C22.9952 77.816 24.0458 78.5893 24.6325 79.944L22.4725 81.208C22.2592 80.6747 21.9285 80.328 21.4805 80.168V82.328L22.0085 82.552C22.3072 82.6693 22.4992 82.7493 22.5845 82.792C22.8512 82.9307 23.0272 83.0213 23.1125 83.064C23.3578 83.1813 23.5392 83.2933 23.6565 83.4C24.1045 83.8053 24.3712 84.1253 24.4565 84.36C24.6592 84.8293 24.7605 85.304 24.7605 85.784ZM19.6565 80.92C19.6565 81.2293 19.8912 81.5227 20.3605 81.8V80.12C19.8912 80.2373 19.6565 80.504 19.6565 80.92ZM21.4805 84.936V86.648C21.9605 86.52 22.2005 86.2427 22.2005 85.816C22.2005 85.464 21.9605 85.1707 21.4805 84.936ZM25.2381 78.856L28.1661 77.8H30.4061V89H27.8461V80.504L25.8621 81.048L25.2381 78.856ZM39.9153 87.64C39.1153 88.696 38.0006 89.224 36.5713 89.224C35.1526 89.224 34.0326 88.696 33.2113 87.64C32.4113 86.5733 32.0113 85.16 32.0113 83.4C32.0113 81.64 32.4113 80.232 33.2113 79.176C34.0219 78.1093 35.1419 77.576 36.5713 77.576C38.0006 77.576 39.1153 78.1093 39.9153 79.176C40.7259 80.2213 41.1313 81.6293 41.1313 83.4C41.1313 85.16 40.7259 86.5733 39.9153 87.64ZM36.5713 80.072C35.2379 80.072 34.5713 81.1813 34.5713 83.4C34.5713 85.6187 35.2379 86.728 36.5713 86.728C37.9046 86.728 38.5713 85.6187 38.5713 83.4C38.5713 81.1813 37.9046 80.072 36.5713 80.072ZM49.9934 87.64C49.1934 88.696 48.0787 89.224 46.6494 89.224C45.2307 89.224 44.1107 88.696 43.2894 87.64C42.4894 86.5733 42.0894 85.16 42.0894 83.4C42.0894 81.64 42.4894 80.232 43.2894 79.176C44.1 78.1093 45.22 77.576 46.6494 77.576C48.0787 77.576 49.1934 78.1093 49.9934 79.176C50.804 80.2213 51.2094 81.6293 51.2094 83.4C51.2094 85.16 50.804 86.5733 49.9934 87.64ZM46.6494 80.072C45.316 80.072 44.6494 81.1813 44.6494 83.4C44.6494 85.6187 45.316 86.728 46.6494 86.728C47.9827 86.728 48.6494 85.6187 48.6494 83.4C48.6494 81.1813 47.9827 80.072 46.6494 80.072Z" fill="#403F36"/> 2077 </svg> 2078 2079 2080 2081 2082 2083 </div> 2084 </div> 2085 </div> 2086 </div> 2087 <div class="drawer__inner-empty"> 2088 <div class="cart-drawer__warnings center"> 2089 <div class="cart-drawer__empty-content"> 2090 2091 2092 <h4 class="cart__empty-text mt-[100px] font-body text-lg uppercase font-bold"> 2093 Your cart is empty 2094 </h4> 2095 2096 2097 2098 2099 2100 2101 2102 2103 <a 2104 href="/collections/new-all" 2105 class="rounded-[60px] font-bold text-[16px] px-12 py-3 text-black relative top-[2em] md:top-[4em]" 2106 style="background: linear-gradient(180deg, #F8CA2A 0%, #FFBE32 100%); border: 1px solid #DAA015;" 2107 > 2108 SHOP ALL PRODUCTS 2109 </a> 2110 </div> 2111 </div></div> 2112 <div class="flex-1 overflow-y-scroll !px-0 bg-[#ffffff]"> 2113 <cart-drawer-items class="is-empty"> 2114 <form 2115 action="/cart" 2116 id="CartDrawer-Form" 2117 class="px-[1.1rem] bg-white cart__contents cart-drawer__form" 2118 method="post" 2119 > 2120 <div id="CartDrawer-CartItems" class="drawer__contents js-contents"><div class="cart-drawer__footer" > 2121 <div class="totals py-1 pb-0.5 custom-shipping-a mt-1 mb-2.5" role="status"> 2122 <h4 class="totals__subtotal font-body font-bold text-base leading-base text-black"> 2123 Subtotal 2124 </h4> 2125 <p class="totals__subtotal-value font-body font-bold text-lg leading-base text-black"> 2126 <b> 2127 $0</b> 2128 </p> 2129 </div> 2130 2131 <div class="custom-shipping-b"> 2132 2133 <div class="totals py-1 pb-0.5" role="status"> 2134 <h4 class="totals__subtotal font-body text-sm leading-base text-black"> 2135 Subtotal 2136 </h4> 2137 <p class="totals__subtotal-value font-body text-sm leading-base text-black"> 2138 $0</p> 2139 </div> 2140 <div class="totals py-1 pb-0.5" role="status"> 2141 <h4 class="totals__subtotal font-body text-sm leading-base text-black"> 2142 Shipping 2143 </h4> 2144 <p class="totals__subtotal-value font-body text-sm leading-base text-black"> 2145 2146 $6.99 2147 </p> 2148 </div> 2149 <div class="totals py-1 pb-0.5" role="status"> 2150 <h4 class="totals__subtotal font-body font-bold text-base leading-base text-black"> 2151 Total 2152 </h4> 2153 <p class="totals__subtotal-value font-body font-bold text-lg leading-base text-black"> 2154 <b> 2155 $6.99</b> 2156 </p> 2157 </div> 2158 </div> 2159 2160 <div class="hidden"></div> 2161 2162 2163 </div> 2164 <p 2165 id="CartDrawer-LiveRegionText" 2166 class="visually-hidden" 2167 role="status" 2168 ></p> 2169 <p 2170 id="CartDrawer-LineItemStatus" 2171 class="visually-hidden" 2172 aria-hidden="true" 2173 role="status" 2174 > 2175 Loading... 2176 </p> 2177 </div> 2178 <div id="CartDrawer-CartErrors" role="alert"></div> 2179 </form> 2180 </cart-drawer-items> 2181 <upsells class="hidden"> 2182 <div class="flex-1 px-[1.5rem] pb-20 pt-[2em]"> 2183 <h5 class="font-body text-base text-black text-center mb-4 font-semibold">Frequently Bought With</h5> 2184 <div class="cart-upsell-dream-curls"> 2185 <div
2186 class="bg-white border border-solid border-[#ECEAE5] rounded-[10px] p-2 mx-auto relative embla__slide product_opt_wrapper custom-product-buy-card-no-sub" 2187 data-product-id="8339610796210" 2188 data-variant-id="44845359268018" 2189> 2190 <div class="custom-upsell-product-data-wrapper"> 2191 <div class="flex items-start"> 2192 <div class="min-w-[140px] max-w-[140px] h-[140px] relative rounded-[10px] overflow-hidden"> 2193 <div 2194 class="absolute inset-0" 2195 style="background: linear-gradient(180deg, rgba(255, 255, 255, 0) 33.33%, rgba(10, 8, 0, 0.64) 100%);" 2196 ></div> 2197 <img 2198 class="w-full h-full object-contain" 2199 src="//chebeauty.com/cdn/shop/files/DCBMain1withShampoo_39186526-45f6-40cc-bedd-c686a7dc5608_300x300.png?v=1748863346" 2200 alt="Dream Curls Routine" 2201 loading="lazy" 2202 fetchpriority="low" 2203 > 2204 <div class="absolute left-2 bottom-2 md:bottom-2"> 2205 2206 <div class="flex items-start flex-col-reverse justify-start gap-1"> 2207 <p class="text-left text-white text-[10px] font-medium"> 2208 4,700+ Happy Customers 2209 </p> 2210 <svg 2211 width="93" 2212 height="16"
2213 viewBox="0 0 93 16" 2214 fill="none" 2215 xmlns="http://www.w3.org/2000/svg" 2216 > 2217 <path d="M7.14303 2.15298C7.29271 1.69232 7.94442 1.69232 8.09409 2.15298L9.21678 5.60826C9.28372 5.81427 9.47569 5.95375 9.69231 5.95375H13.3254C13.8098 5.95375 14.0112 6.57356 13.6193 6.85826L10.6801 8.99374C10.5048 9.12106 10.4315 9.34675 10.4984 9.55276L11.6211 13.008C11.7708 13.4687 11.2435 13.8518 10.8517 13.5671L7.91246 11.4316C7.73721 11.3043 7.49991 11.3043 7.32467 11.4316L4.38543 13.5671C3.99358 13.8518 3.46634 13.4687 3.61601 13.008L4.7387 9.55276C4.80564 9.34674 4.73231 9.12106 4.55707 8.99374L1.61783 6.85826C1.22597 6.57356 1.42736 5.95375 1.91172 5.95375H5.54482C5.76143 5.95375 5.95341 5.81427 6.02035 5.60826L7.14303 2.15298Z" fill="#F6C344" /> 2218 <path d="M26.5825 2.15298C26.7322 1.69232 27.3839 1.69232 27.5335 2.15298L28.6562 5.60826C28.7232 5.81427 28.9151 5.95375 29.1318 5.95375H32.7649C33.2492 5.95375 33.4506 6.57356 33.0588 6.85826L30.1195 8.99374C29.9443 9.12106 29.8709 9.34675 29.9379 9.55276L31.0606 13.008C31.2102 13.4687 30.683 13.8518 30.2911 13.5671L27.3519 11.4316C27.1767 11.3043 26.9394 11.3043 26.7641 11.4316L23.8249 13.5671C23.433 13.8518 22.9058 13.4687 23.0555 13.008L24.1782 9.55276C24.2451 9.34674 24.1718 9.12106 23.9965 8.99374L21.0573 6.85826C20.6654 6.57356 20.8668 5.95375 21.3512 5.95375H24.9843C25.2009 5.95375 25.3929 5.81427 25.4598 5.60826L26.5825 2.15298Z" fill="#F6C344" /> 2219 <path d="M46.0239 2.15298C46.1736 1.69232 46.8253 1.69232 46.9749 2.15298L48.0976 5.60826C48.1646 5.81427 48.3566 5.95375 48.5732 5.95375H52.2063C52.6906 5.95375 52.892 6.57356 52.5002 6.85826L49.5609 8.99374C49.3857 9.12106 49.3123 9.34675 49.3793 9.55276L50.502 13.008C50.6516 13.4687 50.1244 13.8518 49.7326 13.5671L46.7933 11.4316C46.6181 11.3043 46.3808 11.3043 46.2055 11.4316L43.2663 13.5671C42.8744 13.8518 42.3472 13.4687 42.4969 13.008L43.6196 9.55276C43.6865 9.34674 43.6132 9.12106 43.4379 8.99374L40.4987 6.85826C40.1068 6.57356 40.3082 5.95375 40.7926 5.95375H44.4257C44.6423 5.95375 44.8343 5.81427 44.9012 5.60826L46.0239 2.15298Z" fill="#F6C344" /> 2220 <path d="M65.4633 2.15298C65.613 1.69232 66.2647 1.69232 66.4144 2.15298L67.5371 5.60826C67.604 5.81427 67.796 5.95375 68.0126 5.95375H71.6457C72.1301 5.95375 72.3315 6.57356 71.9396 6.85826L69.0004 8.99374C68.8251 9.12106 68.7518 9.34675 68.8187 9.55276L69.9414 13.008C70.0911 13.4687 69.5639 13.8518 69.172 13.5671L66.2328 11.4316C66.0575 11.3043 65.8202 11.3043 65.645 11.4316L62.7057 13.5671C62.3139 13.8518 61.7866 13.4687 61.9363 13.008L63.059 9.55276C63.126 9.34674 63.0526 9.12106 62.8774 8.99374L59.9381 6.85826C59.5463 6.57356 59.7477 5.95375 60.232 5.95375H63.8651C64.0817 5.95375 64.2737 5.81427 64.3407 5.60826L65.4633 2.15298Z" fill="#F6C344" /> 2221 <path d="M84.9067 2.15298C85.0564 1.69232 85.7081 1.69232 85.8578 2.15298L86.9805 5.60826C87.0474 5.81427 87.2394 5.95375 87.456 5.95375H91.0891C91.5734 5.95375 91.7748 6.57356 91.383 6.85826L88.4437 8.99374C88.2685 9.12106 88.1952 9.34675 88.2621 9.55276L89.3848 13.008C89.5345 13.4687 89.0072 13.8518 88.6154 13.5671L85.6761 11.4316C85.5009 11.3043 85.2636 11.3043 85.0883 11.4316L82.1491 13.5671C81.7572 13.8518 81.23 13.4687 81.3797 13.008L82.5024 9.55276C82.5693 9.34674 82.496 9.12106 82.3207 8.99374L79.3815 6.85826C78.9896 6.57356 79.191 5.95375 79.6754 5.95375H83.3085C83.5251 5.95375 83.7171 5.81427 83.784 5.60826L84.9067 2.15298Z" fill="#F6C344" /> 2222 </svg> 2223 </div> 2224 2225 </div> 2226 </div> 2227 <div class="ml-2 text-left"> 2228 <p class="text-sm text-black font-semibold mb-1">Dream Curls Routine</p> 2229 <div class="flex items-center gap-2"> 2230 <p 2231 data-id="44845359268018" 2232 class="productBuyCardPrice text-sm text-black font-semibold mb-2" 2233 > 2234 $59 2235 </p> 2236 <p class="text-sm text-black font-semibold mb-2 line-through"> 2237 $150 2238 </p> 2239 <p class="text-sm text-black font-semibold mb-2"> 2240 Save 2241 $91 2242 </p> 2243 </div> 2244 <p class="text-xs text-[#403F36] font-normal"> 2245 Our best deal ever, an all-in-one routine, providing salon-quality results at home. Includes FREE Hair Brush + FREE Hair Accessories + GIFT CARD. 2246 </p> 2247 </div> 2248 </div> 2249 </div> 2250 <button 2251 data-variant-id="44845359268018" 2252 class="w-full mt-5 text-sm flex items-center justify-center gap-x-1 leading-base outline-none border-solid button min-h-[40px] border border-[#
2252E0A200] bg-[#FFF6E0] text-center hover:border-[#CC9300] hover:bg-[#FFF1CC] active:border-[#CC9300] active:bg-[#FFF6E0] capitalize font-medium text-black rounded-[10px] custom-add-to-cart-no-sub" 2253 > 2254 <span>Add to Cart</span> 2255 <svg 2256 aria-hidden="true" 2257 class="hidden ml-2 w-4 h-4 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600" 2258 viewBox="0 0 100 101" 2259 fill="none" 2260 xmlns="http://www.w3.org/2000/svg" 2261 > 2262 <path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="#403F36" /> 2263 <path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="#FFC632" /> 2264 </svg> 2265 <span class="sr-only">Loading...</span> 2266 </button> 2267</div> 2268 2269 </div> 2270 <div class="relative fbw-embla-wrapper"> 2271 <div class="embla embla-cart mx-2 overflow-x-clip overflow-y-visible"> 2272 <div class="embla__viewport"> 2273 <div class="embla__container"> 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283<div 2284 class="bg-white border border-solid border-[#ECEAE5] rounded-[10px] p-2 mx-auto relative embla__slide product_opt_wrapper" 2285 data-product-id="8506090258610" 2286> 2287 <div class="prod-data-dcb"> 2288 <div class="custom-upsell-product-data-wrapper"> 2289 <div class="flex items-start"> 2290 <div class="min-w-[140px] max-w-[140px] h-[140px] relative rounded-[10px] overflow-hidden"> 2291 <div 2292 class="absolute inset-0" 2293 style="background: linear-gradient(180deg, rgba(255, 255, 255, 0) 33.33%, rgba(10, 8, 0, 0.64) 100%);" 2294 ></div> 2295 2296 <img 2297 class="w-full h-full object-contain" 2298 src="//chebeauty.com/cdn/shop/files/DCBMain1withShampoo_300x300.png?v=1748863181" 2299 alt="Dream Curls Bundle" 2300 loading="lazy" 2301 fetchpriority="low" 2302 > 2303 <div class="absolute left-2 bottom-2 md:bottom-2"> 2304 2305 <div class="flex items-start flex-col-reverse justify-start gap-1"> 2306 <p class="text-left text-white text-[10px] font-medium"> 2307 9,500+ Happy Customers 2308 </p> 2309 <svg 2310 width="93" 2311 height="16"
2312 viewBox="0 0 93 16" 2313 fill="none" 2314 xmlns="http://www.w3.org/2000/svg" 2315 > 2316 <path d="M7.14303 2.15298C7.29271 1.69232 7.94442 1.69232 8.09409 2.15298L9.21678 5.60826C9.28372 5.81427 9.47569 5.95375 9.69231 5.95375H13.3254C13.8098 5.95375 14.0112 6.57356 13.6193 6.85826L10.6801 8.99374C10.5048 9.12106 10.4315 9.34675 10.4984 9.55276L11.6211 13.008C11.7708 13.4687 11.2435 13.8518 10.8517 13.5671L7.91246 11.4316C7.73721 11.3043 7.49991 11.3043 7.32467 11.4316L4.38543 13.5671C3.99358 13.8518 3.46634 13.4687 3.61601 13.008L4.7387 9.55276C4.80564 9.34674 4.73231 9.12106 4.55707 8.99374L1.61783 6.85826C1.22597 6.57356 1.42736 5.95375 1.91172 5.95375H5.54482C5.76143 5.95375 5.95341 5.81427 6.02035 5.60826L7.14303 2.15298Z" fill="#F6C344" /> 2317 <path d="M26.5825 2.15298C26.7322 1.69232 27.3839 1.69232 27.5335 2.15298L28.6562 5.60826C28.7232 5.81427 28.9151 5.95375 29.1318 5.95375H32.7649C33.2492 5.95375 33.4506 6.57356 33.0588 6.85826L30.1195 8.99374C29.9443 9.12106 29.8709 9.34675 29.9379 9.55276L31.0606 13.008C31.2102 13.4687 30.683 13.8518 30.2911 13.5671L27.3519 11.4316C27.1767 11.3043 26.9394 11.3043 26.7641 11.4316L23.8249 13.5671C23.433 13.8518 22.9058 13.4687 23.0555 13.008L24.1782 9.55276C24.2451 9.34674 24.1718 9.12106 23.9965 8.99374L21.0573 6.85826C20.6654 6.57356 20.8668 5.95375 21.3512 5.95375H24.9843C25.2009 5.95375 25.3929 5.81427 25.4598 5.60826L26.5825 2.15298Z" fill="#F6C344" /> 2318 <path d="M46.0239 2.15298C46.1736 1.69232 46.8253 1.69232 46.9749 2.15298L48.0976 5.60826C48.1646 5.81427 48.3566 5.95375 48.5732 5.95375H52.2063C52.6906 5.95375 52.892 6.57356 52.5002 6.85826L49.5609 8.99374C49.3857 9.12106 49.3123 9.34675 49.3793 9.55276L50.502 13.008C50.6516 13.4687 50.1244 13.8518 49.7326 13.5671L46.7933 11.4316C46.6181 11.3043 46.3808 11.3043 46.2055 11.4316L43.2663 13.5671C42.8744 13.8518 42.3472 13.4687 42.4969 13.008L43.6196 9.55276C43.6865 9.34674 43.6132 9.12106 43.4379 8.99374L40.4987 6.85826C40.1068 6.57356 40.3082 5.95375 40.7926 5.95375H44.4257C44.6423 5.95375 44.8343 5.81427 44.9012 5.60826L46.0239 2.15298Z" fill="#F6C344" /> 2319 <path d="M65.4633 2.15298C65.613 1.69232 66.2647 1.69232 66.4144 2.15298L67.5371 5.60826C67.604 5.81427 67.796 5.95375 68.0126 5.95375H71.6457C72.1301 5.95375 72.3315 6.57356 71.9396 6.85826L69.0004 8.99374C68.8251 9.12106 68.7518 9.34675 68.8187 9.55276L69.9414 13.008C70.0911 13.4687 69.5639 13.8518 69.172 13.5671L66.2328 11.4316C66.0575 11.3043 65.8202 11.3043 65.645 11.4316L62.7057 13.5671C62.3139 13.8518 61.7866 13.4687 61.9363 13.008L63.059 9.55276C63.126 9.34674 63.0526 9.12106 62.8774 8.99374L59.9381 6.85826C59.5463 6.57356 59.7477 5.95375 60.232 5.95375H63.8651C64.0817 5.95375 64.2737 5.81427 64.3407 5.60826L65.4633 2.15298Z" fill="#F6C344" /> 2320 <path d="M84.9067 2.15298C85.0564 1.69232 85.7081 1.69232 85.8578 2.15298L86.9805 5.60826C87.0474 5.81427 87.2394 5.95375 87.456 5.95375H91.0891C91.5734 5.95375 91.7748 6.57356 91.383 6.85826L88.4437 8.99374C88.2685 9.12106 88.1952 9.34675 88.2621 9.55276L89.3848 13.008C89.5345 13.4687 89.0072 13.8518 88.6154 13.5671L85.6761 11.4316C85.5009 11.3043 85.2636 11.3043 85.0883 11.4316L82.1491 13.5671C81.7572 13.8518 81.23 13.4687 81.3797 13.008L82.5024 9.55276C82.5693 9.34674 82.496 9.12106 82.3207 8.99374L79.3815 6.85826C78.9896 6.57356 79.191 5.95375 79.6754 5.95375H83.3085C83.5251 5.95375 83.7171 5.81427 83.784 5.60826L84.9067 2.15298Z" fill="#F6C344" /> 2321 </svg> 2322 </div> 2323 2324 </div> 2325 </div> 2326 <div class="ml-2 text-left"> 2327 <p class="text-sm text-black font-semibold mb-1"> 2328 Dream Curls Bundle 2329 </p> 2330 <p 2331 data-4oz-id="45490250645682" 2332 data-8oz-id="" 2333 data-4ozPrice="$39.20" 2334 data-8ozPrice="$0" 2335 data-unsub4ozPrice="$49" 2336 data-unsub8ozPrice="" 2337 2338 class="productBuyCardPrice text-sm text-black font-semibold mb-2" 2339 > 2340 2341 2342 </p> 2343 <p class="text-xs text-[#403F36] font-normal"> 2344 $150 value bundle for just $69, includes our 5 BESTSELLER products + 3 FREE Gifts! 2345 </p> 2346 </div> 2347 </div> 2348 <div class="productOptSubToggle mt-5 flex items-center justify-between w-full hidden "> 2349 <div> 2350 <p class="text-black font-bold text-sm opacity-80"> 2351 Subscribe & Save 20% (-$0) 2352 </p> 2353 <p class="text-[10px] text-[#777] font-medium -mt-[6px] text-left"> 2354 Cancel anytime | No questions asked 2355 </p> 2356 </div> 2357 2358 2359 2360 2361 <label class="productOptSubTogglePeer relative inline-flex items-center cursor-pointer "> 2362 <input 2363 data-line="1" 2364 type="checkbox" 2365 value="" 2366 onchange="togglePeer(this)" 2367 2368 class="sr-only peer" 2369 > 2370 <div 2371 class="w-12 h-7 bg-[#F7F5F1] peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[4px] after:left-[4px] after:bg-[#777] after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-[#00634F] peer-checked:after:bg-[#FFF]" 2372 ></div> 2373 </label> 2374 </div> 2375 <div class="flex items-center justify-between mt-2 gap-x-2 hidden "> 2376 <div class="productOptSelector relative w-[23%]"> 2377 <div 2378 class="productOptSelected w-full py-2 px-3 flex items-center justify-between rounded-[6px] border border-[#
2378ECEAE5] cursor-pointer hover:border-[#777]" 2379 onclick="ToggleProductOpt(this)" 2380 > 2381 2382 <p class="text-black text-sm font-medium"> 2383 2384 </p> 2385 2386 <img 2387 src="//chebeauty.com/cdn/shop/t/163/assets/expand_more.webp?v=11573335225778024281781941836" 2388 class="w-[24px] h-[24px] pointer-events-none expand-black" 2389 alt="expand arrow"> 2390 </div> 2391 <div 2392 class="productOptOptions flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] py-4 px-3 rounded-[6px] mt-2 bg-white" 2393 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 2394 > 2395 2396 2397 <div 2398 onclick="SelectProductOpt(this)" 2399 class="cart-product-opt productOptOption flex items-center justify-between cursor-pointer" 2400 data-variant-id="45490250645682" 2401 data-handle="dream-curls-bundle-5" 2402 data-variant-title="Default Title" 2403 > 2404 <p class="text-sm text-black font-medium">Default Title</p> 2405 <img 2406 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 2407 class="w-[18px] h-[18px]" 2408 alt="expand arrow"> 2409 </div> 2410 2411 </div> 2412 </div> 2413 <div 2414 class="productOptSelectorSellingPlans relative w-[75%]" 2415 style="display: none;" 2416 > 2417 <div 2418 onclick="TogglePlansOpt(this)" 2419 class="productOptSelectorSellingPlansSelected w-full p-2 md:px-[10px] flex items-center justify-between rounded-[6px] border border-[#ECEAE5] cursor-pointer hover:border-[#777]" 2420 > 2421 2422 <img 2423 src="//chebeauty.com/cdn/shop/t/163/assets/expand_more.webp?v=11573335225778024281781941836" 2424 class="w-[24px] h-[24px] pointer-events-none expand-black" 2425 alt="expand arrow"> 2426 </div> 2427 <div 2428 class="productOptSelectorSellingPlansOptions flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] p-2 md:px-[10px] md:pt-5 md:pb-[18px] rounded-[6px] mt-2 bg-white" 2429 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 2430 > 2431 2432 2433 2434 2435 2436 2437 </div> 2438 </div> 2439 </div> 2440 </div> 2441 <button 2442 data-variant-id="45490250645682" 2443 2444 data-selling-plan-id="2585395378" 2445 2446 class="w-full mt-5 text-sm flex items-center justify-center gap-x-1 leading-base outline-none border-solid button min-h-[40px] border border-[#E0A200] bg-[#FFF6E0] text-center hover:border-[#CC9300] hover:bg-[#FFF1CC] active:border-[#CC9300] active:bg-[#FFF6E0] capitalize font-medium text-black rounded-[10px] custom-add-to-cart-one-variant-sub" 2447 > 2448 <span>Add to Cart</span> 2449 <svg 2450 aria-hidden="true" 2451 class="hidden ml-2 w-4 h-4 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600"
2452 viewBox="0 0 100 101" 2453 fill="none" 2454 xmlns="http://www.w3.org/2000/svg" 2455 > 2456 <path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="#403F36" /> 2457 <path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="#FFC632" /> 2458 </svg> 2459 <span class="sr-only">Loading...</span> 2460 </button> 2461 2462 <div 2463 class="works-best-popup hidden absolute top-[-14em] 2xl:top-[-14em] left-0 w-full bg-gray-100 border border-gray-300 px-3 py-4 flex flex-col items-center gap-3 rounded-[10px]" 2464 style="box-shadow: 0px 3px 20px rgb(0 0 0 / 15%)" 2465 > 2466 <svg 2467 class="works-best-close-btn absolute right-3 top-3" 2468 width="12" 2469 height="12"
2470 viewBox="0 0 12 12" 2471 fill="none" 2472 xmlns="http://www.w3.org/2000/svg" 2473 > 2474 <path 2475 d="M1 11L11 1" 2476 stroke="black" 2477 stroke-width="1.5" 2478 stroke-linecap="round" 2479 stroke-linejoin="round" /> 2480 <path 2481 d="M11 11L1 1" 2482 stroke="black" 2483 stroke-width="1.5" 2484 stroke-linecap="round" 2485 stroke-linejoin="round" /> 2486 </svg> 2487 2488 <h5 class="text-lg font-body font-bold">This product works best with</h5> 2489 2490 <div class="flex flex-col gap-3 max-h-[10em] md:max-h-[12em] overflow-auto"> 2491 2492 </div> 2493 2494 <svg 2495 class="absolute bottom-[-17px] left-[48%]" 2496 width="20" 2497 height="22" 2498 viewBox="0 0 20 22" 2499 fill="none" 2500 xmlns="http://www.w3.org/2000/svg" 2501 > 2502 <path d="M10 20L1.33975 5L18.6603 5L10 20Z" fill="#F7F5F1" /> 2503 <path d="M1.5 5L10 20L18.5 5" stroke="#DCD9D4" /> 2504 </svg> 2505 </div> 2506 </div> 2507 <div class="prod-data-co-wash hidden"> 2508 <div class="custom-upsell-product-data-wrapper"> 2509 <div class="flex items-start"> 2510 <div class="min-w-[140px] max-w-[140px] h-[140px] relative rounded-[10px] overflow-hidden"> 2511 <div 2512 class="absolute inset-0" 2513 style="background: linear-gradient(180deg, rgba(255, 255, 255, 0) 33.33%, rgba(10, 8, 0, 0.64) 100%);" 2514 ></div> 2515 <img 2516 class="w-full h-full object-contain" 2517 src="//chebeauty.com/cdn/shop/files/Co-Wash_1_1631f515-5d0b-4d61-acbd-8dc8e6049c91_300x300.webp?v=1748767283" 2518 alt="Chebe Co-Wash" 2519 loading="lazy" 2520 fetchpriority="low" 2521 > 2522 <div class="absolute left-2 bottom-2 md:bottom-2"> 2523 <div class="flex items-start flex-col-reverse justify-start gap-1"> 2524 <p class="text-left text-white text-[10px] font-medium"> 2525 1,000+ Happy Customers 2526 </p> 2527 <svg 2528 width="93" 2529 height="16"
2530 viewBox="0 0 93 16" 2531 fill="none" 2532 xmlns="http://www.w3.org/2000/svg" 2533 > 2534 <path d="M7.14303 2.15298C7.29271 1.69232 7.94442 1.69232 8.09409 2.15298L9.21678 5.60826C9.28372 5.81427 9.47569 5.95375 9.69231 5.95375H13.3254C13.8098 5.95375 14.0112 6.57356 13.6193 6.85826L10.6801 8.99374C10.5048 9.12106 10.4315 9.34675 10.4984 9.55276L11.6211 13.008C11.7708 13.4687 11.2435 13.8518 10.8517 13.5671L7.91246 11.4316C7.73721 11.3043 7.49991 11.3043 7.32467 11.4316L4.38543 13.5671C3.99358 13.8518 3.46634 13.4687 3.61601 13.008L4.7387 9.55276C4.80564 9.34674 4.73231 9.12106 4.55707 8.99374L1.61783 6.85826C1.22597 6.57356 1.42736 5.95375 1.91172 5.95375H5.54482C5.76143 5.95375 5.95341 5.81427 6.02035 5.60826L7.14303 2.15298Z" fill="#F6C344"></path> 2535 <path d="M26.5825 2.15298C26.7322 1.69232 27.3839 1.69232 27.5335 2.15298L28.6562 5.60826C28.7232 5.81427 28.9151 5.95375 29.1318 5.95375H32.7649C33.2492 5.95375 33.4506 6.57356 33.0588 6.85826L30.1195 8.99374C29.9443 9.12106 29.8709 9.34675 29.9379 9.55276L31.0606 13.008C31.2102 13.4687 30.683 13.8518 30.2911 13.5671L27.3519 11.4316C27.1767 11.3043 26.9394 11.3043 26.7641 11.4316L23.8249 13.5671C23.433 13.8518 22.9058 13.4687 23.0555 13.008L24.1782 9.55276C24.2451 9.34674 24.1718 9.12106 23.9965 8.99374L21.0573 6.85826C20.6654 6.57356 20.8668 5.95375 21.3512 5.95375H24.9843C25.2009 5.95375 25.3929 5.81427 25.4598 5.60826L26.5825 2.15298Z" fill="#F6C344"></path> 2536 <path d="M46.0239 2.15298C46.1736 1.69232 46.8253 1.69232 46.9749 2.15298L48.0976 5.60826C48.1646 5.81427 48.3566 5.95375 48.5732 5.95375H52.2063C52.6906 5.95375 52.892 6.57356 52.5002 6.85826L49.5609 8.99374C49.3857 9.12106 49.3123 9.34675 49.3793 9.55276L50.502 13.008C50.6516 13.4687 50.1244 13.8518 49.7326 13.5671L46.7933 11.4316C46.6181 11.3043 46.3808 11.3043 46.2055 11.4316L43.2663 13.5671C42.8744 13.8518 42.3472 13.4687 42.4969 13.008L43.6196 9.55276C43.6865 9.34674 43.6132 9.12106 43.4379 8.99374L40.4987 6.85826C40.1068 6.57356 40.3082 5.95375 40.7926 5.95375H44.4257C44.6423 5.95375 44.8343 5.81427 44.9012 5.60826L46.0239 2.15298Z" fill="#F6C344"></path> 2537 <path d="M65.4633 2.15298C65.613 1.69232 66.2647 1.69232 66.4144 2.15298L67.5371 5.60826C67.604 5.81427 67.796 5.95375 68.0126 5.95375H71.6457C72.1301 5.95375 72.3315 6.57356 71.9396 6.85826L69.0004 8.99374C68.8251 9.12106 68.7518 9.34675 68.8187 9.55276L69.9414 13.008C70.0911 13.4687 69.5639 13.8518 69.172 13.5671L66.2328 11.4316C66.0575 11.3043 65.8202 11.3043 65.645 11.4316L62.7057 13.5671C62.3139 13.8518 61.7866 13.4687 61.9363 13.008L63.059 9.55276C63.126 9.34674 63.0526 9.12106 62.8774 8.99374L59.9381 6.85826C59.5463 6.57356 59.7477 5.95375 60.232 5.95375H63.8651C64.0817 5.95375 64.2737 5.81427 64.3407 5.60826L65.4633 2.15298Z" fill="#F6C344"></path> 2538 <path d="M84.9067 2.15298C85.0564 1.69232 85.7081 1.69232 85.8578 2.15298L86.9805 5.60826C87.0474 5.81427 87.2394 5.95375 87.456 5.95375H91.0891C91.5734 5.95375 91.7748 6.57356 91.383 6.85826L88.4437 8.99374C88.2685 9.12106 88.1952 9.34675 88.2621 9.55276L89.3848 13.008C89.5345 13.4687 89.0072 13.8518 88.6154 13.5671L85.6761 11.4316C85.5009 11.3043 85.2636 11.3043 85.0883 11.4316L82.1491 13.5671C81.7572 13.8518 81.23 13.4687 81.3797 13.008L82.5024 9.55276C82.5693 9.34674 82.496 9.12106 82.3207 8.99374L79.3815 6.85826C78.9896 6.57356 79.191 5.95375 79.6754 5.95375H83.3085C83.5251 5.95375 83.7171 5.81427 83.784 5.60826L84.9067 2.15298Z" fill="#F6C344"></path> 2539 </svg> 2540 </div> 2541 </div> 2542 </div> 2543 <div class="ml-2 text-left"> 2544 <p class="text-sm text-black font-semibold mb-1">Chebe Co-Wash</p> 2545 <p 2546 data-4oz-id="44662144729266" 2547 data-8oz-id="44662144762034" 2548 data-4ozprice="$12" 2549 data-8ozprice="$16" 2550 data-unsub4ozprice="$15" 2551 data-unsub8ozprice="$20" 2552 class="productBuyCardPrice text-sm text-black font-semibold mb-2" 2553 > 2554 $20 2555 </p> 2556 <p class="text-xs text-[#403F36] font-normal"> 2557 Gently cleanse and condition your hair with our Chebe Co-Wash, 2558 perfect for maintaining softness. 2559 </p> 2560 </div> 2561 </div> 2562 <div class="productOptSubToggle mt-5 flex items-center justify-between w-full"> 2563 <div> 2564 <p class="text-black font-bold text-sm opacity-80"> 2565 Subscribe & Save 20% (-$4) 2566 </p> 2567 <p class="text-[10px] text-[#777] font-medium -mt-[6px] text-left"> 2568 Cancel anytime | No questions asked 2569 </p> 2570 </div> 2571 2572 <label class="productOptSubTogglePeer relative inline-flex items-center cursor-pointer"> 2573 <input 2574 data-line="1" 2575 type="checkbox" 2576 value="" 2577 onchange="togglePeer(this)" 2578 checked="" 2579 class="sr-only peer" 2580 > 2581 <div 2582 class="w-12 h-7 bg-[#F7F5F1] peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[4px] after:left-[4px] after:bg-[#777] after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-[#00634F] peer-checked:after:bg-[#FFF]" 2583 ></div> 2584 </label> 2585 </div> 2586 <div class="flex items-center justify-between mt-2 gap-x-2"> 2587 <div class="productOptSelector relative w-[23%]"> 2588 <div 2589 class="productOptSelected w-full py-2 px-3 flex items-center justify-between rounded-[6px] border border-[#
2589ECEAE5] cursor-pointer hover:border-[#777]" 2590 onclick="ToggleProductOpt(this)" 2591 > 2592 <p class="text-black text-sm font-medium">8oz</p> 2593 2594 <img 2595 src="//chebeauty.com/cdn/shop/t/143/assets/expand_more.webp?v=11573335225778024281747819638" 2596 class="w-[24px] h-[24px] pointer-events-none expand-black" 2597 alt="expand arrow" 2598 > 2599 </div> 2600 <div 2601 class="productOptOptions flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] py-4 px-3 rounded-[6px] mt-2 bg-white" 2602 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 2603 > 2604 <div 2605 onclick="SelectProductOpt(this)" 2606 class="cart-product-opt productOptOption flex items-center justify-between cursor-pointer" 2607 data-variant-id="44662144729266" 2608 data-handle="co-wash" 2609 data-variant-title="4oz" 2610 > 2611 <p class="text-sm text-black font-medium">4oz</p> 2612 <img 2613 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 2614 class="w-[18px] h-[18px]" 2615 alt="expand arrow" 2616 > 2617 </div> 2618 2619 <div 2620 onclick="SelectProductOpt(this)" 2621 class="active cart-product-opt productOptOption flex items-center justify-between cursor-pointer" 2622 data-variant-id="44662144762034" 2623 data-handle="co-wash" 2624 data-variant-title="8oz" 2625 > 2626 <p class="text-sm text-black font-medium">8oz</p> 2627 <img 2628 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 2629 class="w-[18px] h-[18px]" 2630 alt="expand arrow" 2631 > 2632 </div> 2633 </div> 2634 </div> 2635 <div 2636 class="productOptSelectorSellingPlans relative w-[75%]" 2637 style="display: block;" 2638 > 2639 <div 2640 onclick="TogglePlansOpt(this)" 2641 class="productOptSelectorSellingPlansSelected w-full p-2 md:px-[10px] flex items-center justify-between rounded-[6px] border border-[#ECEAE5] cursor-pointer hover:border-[#777]" 2642 > 2643 <p> 2644 <span class="text-black font-semibold text-xs md:text-sm" 2645 >1 Month | 2646 </span> 2647 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 2648 >If used twice a week</span 2649 > 2650 </p> 2651 2652 <img 2653 src="//chebeauty.com/cdn/shop/t/143/assets/expand_more.webp?v=11573335225778024281747819638" 2654 class="w-[24px] h-[24px] pointer-events-none expand-black" 2655 alt="expand arrow" 2656 > 2657 </div> 2658 <div 2659 class="productOptSelectorSellingPlansOptions flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] p-2 md:px-[10px] md:pt-5 md:pb-[18px] rounded-[6px] mt-2 bg-white" 2660 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 2661 > 2662 <div 2663 onclick="SelectPlanOpt(this)" 2664 data-index="2097348786" 2665 class="variant-4oz productOptSelectorSellingPlansOption cursor-pointer" 2666 > 2667 <p> 2668 <span class="text-black font-semibold text-xs md:text-sm" 2669 >1 Week | 2670 </span> 2671 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 2672 >If used 3-4 times week</span 2673 > 2674 </p> 2675 <img 2676 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 2677 class="w-[18px] h-[18px]" 2678 alt="expand arrow" 2679 > 2680 </div> 2681 2682 <div 2683 onclick="SelectPlanOpt(this)" 2684 data-index="2097381554" 2685 class="variant-4oz productOptSelectorSellingPlansOption cursor-pointer" 2686 > 2687 <p>
2688 <span class="text-black font-semibold text-xs md:text-sm" 2689 >2 Weeks | 2690 </span> 2691 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 2692 >If used twice a week</span 2693 > 2694 </p> 2695 <img 2696 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 2697 class="w-[18px] h-[18px]" 2698 alt="expand arrow" 2699 > 2700 </div> 2701 2702 <div 2703 onclick="SelectPlanOpt(this)" 2704 data-index="2097414322" 2705 class="variant-4oz productOptSelectorSellingPlansOption active cursor-pointer" 2706 > 2707 <p> 2708 <span class="text-black font-semibold text-xs md:text-sm" 2709 >1 Month | 2710 </span> 2711 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 2712 >If used once a week</span 2713 > 2714 </p> 2715 <img 2716 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 2717 class="w-[18px] h-[18px]" 2718 alt="expand arrow" 2719 > 2720 </div> 2721 2722 <div 2723 onclick="SelectPlanOpt(this)" 2724 data-index="2097381554" 2725 class="variant-8oz productOptSelectorSellingPlansOption active-var cursor-pointer" 2726 > 2727 <p> 2728 <span class="text-black font-semibold text-xs md:text-sm" 2729 >2 Weeks | 2730 </span> 2731 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 2732 >If used 3-4 times week</span 2733 > 2734 </p> 2735 <img 2736 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 2737 class="w-[18px] h-[18px]" 2738 alt="expand arrow" 2739 > 2740 </div> 2741 2742 <div 2743 onclick="SelectPlanOpt(this)" 2744 data-index="2097414322" 2745 class="variant-8oz productOptSelectorSellingPlansOption active-var active cursor-pointer" 2746 > 2747 <p> 2748 <span class="text-black font-semibold text-xs md:text-sm" 2749 >1 Month | 2750 </span> 2751 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 2752 >If used twice a week</span 2753 > 2754 </p> 2755 <img 2756 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 2757 class="w-[18px] h-[18px]" 2758 alt="expand arrow" 2759 > 2760 </div> 2761 2762 <div 2763 onclick="SelectPlanOpt(this)" 2764 data-index="2097447090" 2765 class="variant-8oz productOptSelectorSellingPlansOption active-var cursor-pointer" 2766 > 2767 <p> 2768 <span class="text-black font-semibold text-xs md:text-sm" 2769 >2 Months | 2770 </span> 2771 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 2772 >If used once a week</span 2773 > 2774 </p> 2775 <img 2776 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 2777 class="w-[18px] h-[18px]" 2778 alt="expand arrow" 2779 > 2780 </div> 2781 </div> 2782 </div> 2783 </div> 2784 </div> 2785 <button class="w-full mt-5 text-sm flex items-center justify-center gap-x-1 leading-base outline-none border-solid button min-h-[40px] border border-[#E0A200] bg-[#FFF6E0] text-center hover:border-[#CC9300] hover:bg-[#FFF1CC] active:border-[#CC9300] active:bg-[#FFF6E0] capitalize font-medium text-black rounded-[10px] custom-add-to-cart"> 2786 <span>Add to Cart</span> 2787 <svg 2788 aria-hidden="true" 2789 class="hidden ml-2 w-4 h-4 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600"
2790 viewBox="0 0 100 101" 2791 fill="none" 2792 xmlns="http://www.w3.org/2000/svg" 2793 > 2794 <path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="#403F36"></path> 2795 <path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="#FFC632"></path> 2796 </svg> 2797 <span class="sr-only">Loading...</span> 2798 </button> 2799 2800 <div 2801 class="works-best-popup hidden absolute top-[-14em] 2xl:top-[-14em] left-0 w-full bg-gray-100 border border-gray-300 px-3 py-4 flex flex-col items-center gap-3 rounded-[10px]" 2802 style="box-shadow: 0px 3px 20px rgb(0 0 0 / 15%)" 2803 > 2804 <svg 2805 class="works-best-close-btn absolute right-3 top-3" 2806 width="12" 2807 height="12"
2808 viewBox="0 0 12 12" 2809 fill="none" 2810 xmlns="http://www.w3.org/2000/svg" 2811 > 2812 <path d="M1 11L11 1" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> 2813 <path d="M11 11L1 1" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> 2814 </svg> 2815 2816 <h5 class="text-lg font-body font-bold">This product works best with</h5> 2817 2818 <div 2819 class="flex flex-col gap-3 max-h-[10em] md:max-h-[12em] overflow-auto" 2820 ></div> 2821 2822 <svg 2823 class="absolute bottom-[-17px] left-[48%]" 2824 width="20" 2825 height="22" 2826 viewBox="0 0 20 22" 2827 fill="none" 2828 xmlns="http://www.w3.org/2000/svg" 2829 > 2830 <path d="M10 20L1.33975 5L18.6603 5L10 20Z" fill="#F7F5F1"></path> 2831 <path d="M1.5 5L10 20L18.5 5" stroke="#DCD9D4"></path> 2832 </svg> 2833 </div> 2834 </div> 2835</div> 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845<div 2846 class="bg-white ab_bc_offset border border-solid border-[#ECEAE5] rounded-[10px] p-2 mx-auto relative embla__slide product_opt_wrapper" 2847 data-product-id="7470513193138" 2848> 2849 <div class="custom-upsell-product-data-wrapper"> 2850 <div class="flex items-start"> 2851 <div class="min-w-[140px] max-w-[140px] h-[140px] relative rounded-[10px] overflow-hidden"> 2852 <div 2853 class="absolute inset-0" 2854 style="background: linear-gradient(180deg, rgba(255, 255, 255, 0) 33.33%, rgba(10, 8, 0, 0.64) 100%);" 2855 ></div> 2856 <img 2857 class="w-full h-full object-contain" 2858 src="//chebeauty.com/cdn/shopifycloud/storefront/assets/no-image-2048-a2addb12_300x300.gif" 2859 alt="Chebe Hair Butter" 2860 loading="lazy" 2861 fetchpriority="low" 2862 > 2863 <div class="absolute left-2 bottom-2 md:bottom-2"> 2864 2865 <div class="flex items-start flex-col-reverse justify-start gap-1"> 2866 <p class="text-left text-white text-[10px] font-medium"> 2867 25,000+ Happy Customers 2868 </p> 2869 <svg 2870 width="93" 2871 height="16"
2872 viewBox="0 0 93 16" 2873 fill="none" 2874 xmlns="http://www.w3.org/2000/svg" 2875 > 2876 <path d="M7.14303 2.15298C7.29271 1.69232 7.94442 1.69232 8.09409 2.15298L9.21678 5.60826C9.28372 5.81427 9.47569 5.95375 9.69231 5.95375H13.3254C13.8098 5.95375 14.0112 6.57356 13.6193 6.85826L10.6801 8.99374C10.5048 9.12106 10.4315 9.34675 10.4984 9.55276L11.6211 13.008C11.7708 13.4687 11.2435 13.8518 10.8517 13.5671L7.91246 11.4316C7.73721 11.3043 7.49991 11.3043 7.32467 11.4316L4.38543 13.5671C3.99358 13.8518 3.46634 13.4687 3.61601 13.008L4.7387 9.55276C4.80564 9.34674 4.73231 9.12106 4.55707 8.99374L1.61783 6.85826C1.22597 6.57356 1.42736 5.95375 1.91172 5.95375H5.54482C5.76143 5.95375 5.95341 5.81427 6.02035 5.60826L7.14303 2.15298Z" fill="#F6C344" /> 2877 <path d="M26.5825 2.15298C26.7322 1.69232 27.3839 1.69232 27.5335 2.15298L28.6562 5.60826C28.7232 5.81427 28.9151 5.95375 29.1318 5.95375H32.7649C33.2492 5.95375 33.4506 6.57356 33.0588 6.85826L30.1195 8.99374C29.9443 9.12106 29.8709 9.34675 29.9379 9.55276L31.0606 13.008C31.2102 13.4687 30.683 13.8518 30.2911 13.5671L27.3519 11.4316C27.1767 11.3043 26.9394 11.3043 26.7641 11.4316L23.8249 13.5671C23.433 13.8518 22.9058 13.4687 23.0555 13.008L24.1782 9.55276C24.2451 9.34674 24.1718 9.12106 23.9965 8.99374L21.0573 6.85826C20.6654 6.57356 20.8668 5.95375 21.3512 5.95375H24.9843C25.2009 5.95375 25.3929 5.81427 25.4598 5.60826L26.5825 2.15298Z" fill="#F6C344" /> 2878 <path d="M46.0239 2.15298C46.1736 1.69232 46.8253 1.69232 46.9749 2.15298L48.0976 5.60826C48.1646 5.81427 48.3566 5.95375 48.5732 5.95375H52.2063C52.6906 5.95375 52.892 6.57356 52.5002 6.85826L49.5609 8.99374C49.3857 9.12106 49.3123 9.34675 49.3793 9.55276L50.502 13.008C50.6516 13.4687 50.1244 13.8518 49.7326 13.5671L46.7933 11.4316C46.6181 11.3043 46.3808 11.3043 46.2055 11.4316L43.2663 13.5671C42.8744 13.8518 42.3472 13.4687 42.4969 13.008L43.6196 9.55276C43.6865 9.34674 43.6132 9.12106 43.4379 8.99374L40.4987 6.85826C40.1068 6.57356 40.3082 5.95375 40.7926 5.95375H44.4257C44.6423 5.95375 44.8343 5.81427 44.9012 5.60826L46.0239 2.15298Z" fill="#F6C344" /> 2879 <path d="M65.4633 2.15298C65.613 1.69232 66.2647 1.69232 66.4144 2.15298L67.5371 5.60826C67.604 5.81427 67.796 5.95375 68.0126 5.95375H71.6457C72.1301 5.95375 72.3315 6.57356 71.9396 6.85826L69.0004 8.99374C68.8251 9.12106 68.7518 9.34675 68.8187 9.55276L69.9414 13.008C70.0911 13.4687 69.5639 13.8518 69.172 13.5671L66.2328 11.4316C66.0575 11.3043 65.8202 11.3043 65.645 11.4316L62.7057 13.5671C62.3139 13.8518 61.7866 13.4687 61.9363 13.008L63.059 9.55276C63.126 9.34674 63.0526 9.12106 62.8774 8.99374L59.9381 6.85826C59.5463 6.57356 59.7477 5.95375 60.232 5.95375H63.8651C64.0817 5.95375 64.2737 5.81427 64.3407 5.60826L65.4633 2.15298Z" fill="#F6C344" /> 2880 <path d="M84.9067 2.15298C85.0564 1.69232 85.7081 1.69232 85.8578 2.15298L86.9805 5.60826C87.0474 5.81427 87.2394 5.95375 87.456 5.95375H91.0891C91.5734 5.95375 91.7748 6.57356 91.383 6.85826L88.4437 8.99374C88.2685 9.12106 88.1952 9.34675 88.2621 9.55276L89.3848 13.008C89.5345 13.4687 89.0072 13.8518 88.6154 13.5671L85.6761 11.4316C85.5009 11.3043 85.2636 11.3043 85.0883 11.4316L82.1491 13.5671C81.7572 13.8518 81.23 13.4687 81.3797 13.008L82.5024 9.55276C82.5693 9.34674 82.496 9.12106 82.3207 8.99374L79.3815 6.85826C78.9896 6.57356 79.191 5.95375 79.6754 5.95375H83.3085C83.5251 5.95375 83.7171 5.81427 83.784 5.60826L84.9067 2.15298Z" fill="#F6C344" /> 2881 </svg> 2882 </div> 2883 2884 </div> 2885 </div> 2886 <div class="ml-2 text-left"> 2887 <p class="text-sm text-black font-semibold mb-1">Chebe Hair Butter</p> 2888 <p 2889 data-4oz-id="42447567356082" 2890 data-8oz-id="42447567388850" 2891 data-4ozPrice="$12.80" 2892 data-8ozPrice="$16" 2893 data-unsub4ozPrice="$16" 2894 data-unsub8ozPrice="$20" 2895 2896 class="productBuyCardPrice text-sm text-black font-semibold mb-2" 2897 > 2898 2899 $20 2900 </p> 2901 <p class="text-xs text-[#403F36] font-normal"> 2902 Moisturize, strengthen and grow your hair with our flagship hair mask. 2903 </p> 2904 </div> 2905 </div> 2906 <div class="productOptSubToggle mt-5 flex items-center justify-between w-full"> 2907 <div> 2908 <p class="text-black font-bold text-sm opacity-80"> 2909 Subscribe & Save 20% (-$4) 2910 </p> 2911 <p class="text-[10px] text-[#777] font-medium -mt-[6px] text-left"> 2912 Cancel anytime | No questions asked 2913 </p> 2914 </div> 2915 2916 2917 2918 2919 <label class="productOptSubTogglePeer relative inline-flex items-center cursor-pointer"> 2920 <input 2921 data-line="1" 2922 type="checkbox" 2923 value="" 2924 onchange="togglePeer(this)" 2925 2926 class="sr-only peer" 2927 > 2928 <div 2929 class="w-12 h-7 bg-[#F7F5F1] peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[4px] after:left-[4px] after:bg-[#777] after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-[#00634F] peer-checked:after:bg-[#FFF]" 2930 ></div> 2931 </label> 2932 </div> 2933 <div class="flex items-center justify-between mt-2 gap-x-2"> 2934 <div class="productOptSelector relative w-[23%]"> 2935 <div 2936 class="productOptSelected w-full py-2 px-3 flex items-center justify-between rounded-[6px] border border-[#
2936ECEAE5] cursor-pointer hover:border-[#777]" 2937 onclick="ToggleProductOpt(this)" 2938 > 2939 2940 <p class="text-black text-sm font-medium"> 2941 8oz 2942 </p> 2943 2944 <img 2945 src="//chebeauty.com/cdn/shop/t/163/assets/expand_more.webp?v=11573335225778024281781941836" 2946 class="w-[24px] h-[24px] pointer-events-none expand-black" 2947 alt="expand arrow"> 2948 </div> 2949 <div 2950 class="productOptOptions flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] py-4 px-3 rounded-[6px] mt-2 bg-white" 2951 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 2952 > 2953 2954 2955 <div 2956 onclick="SelectProductOpt(this)" 2957 class="cart-product-opt productOptOption flex items-center justify-between cursor-pointer" 2958 data-variant-id="42447567356082" 2959 data-handle="chebe-hair-butter" 2960 data-variant-title="4oz" 2961 > 2962 <p class="text-sm text-black font-medium">4oz</p> 2963 <img 2964 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 2965 class="w-[18px] h-[18px]" 2966 alt="expand arrow"> 2967 </div> 2968 2969 2970 <div 2971 onclick="SelectProductOpt(this)" 2972 class="active cart-product-opt productOptOption flex items-center justify-between cursor-pointer" 2973 data-variant-id="42447567388850" 2974 data-handle="chebe-hair-butter" 2975 data-variant-title="8oz" 2976 > 2977 <p class="text-sm text-black font-medium">8oz</p> 2978 <img 2979 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 2980 class="w-[18px] h-[18px]" 2981 alt="expand arrow"> 2982 </div> 2983 2984 2985 <div 2986 onclick="SelectProductOpt(this)" 2987 class="cart-product-opt productOptOption flex items-center justify-between cursor-pointer" 2988 data-variant-id="43292577956018" 2989 data-handle="chebe-hair-butter" 2990 data-variant-title="2oz" 2991 > 2992 <p class="text-sm text-black font-medium">2oz</p> 2993 <img 2994 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 2995 class="w-[18px] h-[18px]" 2996 alt="expand arrow"> 2997 </div> 2998 2999 </div> 3000 </div> 3001 <div 3002 class="productOptSelectorSellingPlans relative w-[75%]" 3003 style="display: none;" 3004 > 3005 <div 3006 onclick="TogglePlansOpt(this)" 3007 class="productOptSelectorSellingPlansSelected w-full p-2 md:px-[10px] flex items-center justify-between rounded-[6px] border border-[#ECEAE5] cursor-pointer hover:border-[#777]" 3008 > 3009 3010 3011 3012 3013 3014 3015 3016 <p> 3017 <span class="text-black font-semibold text-xs md:text-sm" 3018 >1 Month | 3019 </span> 3020 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3021 >If used 3022 twice a week</span> 3023 </p> 3024 3025 3026 3027 3028 <img 3029 src="//chebeauty.com/cdn/shop/t/163/assets/expand_more.webp?v=11573335225778024281781941836" 3030 class="w-[24px] h-[24px] pointer-events-none expand-black" 3031 alt="expand arrow"> 3032 </div> 3033 <div 3034 class="productOptSelectorSellingPlansOptions flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] p-2 md:px-[10px] md:pt-5 md:pb-[18px] rounded-[6px] mt-2 bg-white" 3035 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 3036 > 3037 3038 3039 3040 3041 3042 <div 3043 onclick="SelectPlanOpt(this)" 3044 data-index="2595553458" 3045 class="variant-4oz productOptSelectorSellingPlansOption cursor-pointer" 3046 > 3047 <p> 3048
3049 <span class="text-black font-semibold text-xs md:text-sm" 3050 >1 Week | 3051 </span> 3052 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3053 >If used 3054 3-4 times week</span> 3055 3056 </p> 3057 <img 3058 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3059 class="w-[18px] h-[18px]" 3060 alt="expand arrow"> 3061 </div> 3062 3063 3064 3065 3066 3067 <div 3068 onclick="SelectPlanOpt(this)" 3069 data-index="2595586226" 3070 class="variant-4oz productOptSelectorSellingPlansOption cursor-pointer" 3071 > 3072 <p> 3073 3074 <span class="text-black font-semibold text-xs md:text-sm" 3075 >2 Weeks | 3076 </span> 3077 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3078 >If used 3079 twice a week</span> 3080 3081 </p> 3082 <img 3083 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3084 class="w-[18px] h-[18px]" 3085 alt="expand arrow"> 3086 </div> 3087 3088 3089 3090 3091 3092 <div 3093 onclick="SelectPlanOpt(this)" 3094 data-index="2595618994" 3095 class="variant-4oz productOptSelectorSellingPlansOption active cursor-pointer" 3096 > 3097 <p> 3098 3099 <span class="text-black font-semibold text-xs md:text-sm" 3100 >1 Month | 3101 </span> 3102 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3103 >If used 3104 once a week</span> 3105 3106 </p> 3107 <img 3108 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3109 class="w-[18px] h-[18px]" 3110 alt="expand arrow"> 3111 </div> 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 <div 3126 onclick="SelectPlanOpt(this)" 3127 data-index="2595586226" 3128 class="variant-8oz productOptSelectorSellingPlansOption active-var cursor-pointer" 3129 > 3130 <p> 3131 3132 <span class="text-black font-semibold text-xs md:text-sm" 3133 >2 Weeks | 3134 </span> 3135 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3136 >If used 3137 3-4 times week</span> 3138 3139 </p> 3140 <img 3141 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3142 class="w-[18px] h-[18px]" 3143 alt="expand arrow"> 3144 </div> 3145 3146 3147 3148 3149 3150 <div 3151 onclick="SelectPlanOpt(this)" 3152 data-index="2595618994" 3153 class="variant-8oz productOptSelectorSellingPlansOption active-var active cursor-pointer" 3154 > 3155 <p> 3156 3157 <span class="text-black font-semibold text-xs md:text-sm" 3158 >1 Month | 3159 </span> 3160 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3161 >If used 3162 twice a week</span> 3163 3164 </p> 3165 <img 3166 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3167 class="w-[18px] h-[18px]" 3168 alt="expand arrow"> 3169 </div> 3170 3171 3172 3173 3174 3175 <div 3176 onclick="SelectPlanOpt(this)" 3177 data-index="2595651762" 3178 class="variant-8oz productOptSelectorSellingPlansOption active-var cursor-pointer" 3179 > 3180 <p> 3181
3182 <span class="text-black font-semibold text-xs md:text-sm" 3183 >2 Months | 3184 </span> 3185 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3186 >If used 3187 once a week</span> 3188 3189 </p> 3190 <img 3191 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3192 class="w-[18px] h-[18px]" 3193 alt="expand arrow"> 3194 </div> 3195 3196 3197 3198 3199 3200 3201 3202 <div 3203 onclick="SelectPlanOpt(this)" 3204 data-index="2595553458" 3205 class="variant-2oz productOptSelectorSellingPlansOption cursor-pointer" 3206 > 3207 <p> 3208 3209 <span class="text-black font-semibold text-xs md:text-sm" 3210 >1 Week | 3211 </span> 3212 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3213 >If used 3214 3-4 times week</span> 3215 3216 </p> 3217 <img 3218 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3219 class="w-[18px] h-[18px]" 3220 alt="expand arrow"> 3221 </div> 3222 3223 3224 3225 3226 3227 <div 3228 onclick="SelectPlanOpt(this)" 3229 data-index="2595586226" 3230 class="variant-2oz productOptSelectorSellingPlansOption cursor-pointer" 3231 > 3232 <p> 3233 3234 <span class="text-black font-semibold text-xs md:text-sm" 3235 >2 Weeks | 3236 </span> 3237 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3238 >If used 3239 twice a week</span> 3240 3241 </p> 3242 <img 3243 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3244 class="w-[18px] h-[18px]" 3245 alt="expand arrow"> 3246 </div> 3247 3248 3249 3250 3251 3252 <div 3253 onclick="SelectPlanOpt(this)" 3254 data-index="2595618994" 3255 class="variant-2oz productOptSelectorSellingPlansOption active cursor-pointer" 3256 > 3257 <p> 3258 3259 <span class="text-black font-semibold text-xs md:text-sm" 3260 >1 Month | 3261 </span> 3262 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3263 >If used 3264 once a week</span> 3265 3266 </p> 3267 <img 3268 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3269 class="w-[18px] h-[18px]" 3270 alt="expand arrow"> 3271 </div> 3272 3273 3274 3275 3276 3277 3278 </div> 3279 </div> 3280 </div> 3281 </div> 3282 <button class="w-full mt-5 text-sm flex items-center justify-center gap-x-1 leading-base outline-none border-solid button min-h-[40px] border border-[#E0A200] bg-[#FFF6E0] text-center hover:border-[#CC9300] hover:bg-[#FFF1CC] active:border-[#CC9300] active:bg-[#FFF6E0] capitalize font-medium text-black rounded-[10px] custom-add-to-cart"> 3283 <span>Add to Cart</span> 3284 <svg 3285 aria-hidden="true" 3286 class="hidden ml-2 w-4 h-4 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600" 3287 viewBox="0 0 100 101" 3288 fill="none" 3289 xmlns="http://www.w3.org/2000/svg" 3290 > 3291 <path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="#403F36" /> 3292 <path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.
32921071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="#FFC632" /> 3293 </svg> 3294 <span class="sr-only">Loading...</span> 3295 </button> 3296 3297 <div 3298 class="works-best-popup hidden absolute top-[-14em] 2xl:top-[-14em] left-0 w-full bg-gray-100 border border-gray-300 px-3 py-4 flex flex-col items-center gap-3 rounded-[10px]" 3299 style="box-shadow: 0px 3px 20px rgb(0 0 0 / 15%)" 3300 > 3301 <svg 3302 class="works-best-close-btn absolute right-3 top-3" 3303 width="12" 3304 height="12" 3305 viewBox="0 0 12 12" 3306 fill="none" 3307 xmlns="http://www.w3.org/2000/svg" 3308 > 3309 <path 3310 d="M1 11L11 1" 3311 stroke="black" 3312 stroke-width="1.5" 3313 stroke-linecap="round" 3314 stroke-linejoin="round" /> 3315 <path 3316 d="M11 11L1 1" 3317 stroke="black" 3318 stroke-width="1.5" 3319 stroke-linecap="round" 3320 stroke-linejoin="round" /> 3321 </svg> 3322 3323 <h5 class="text-lg font-body font-bold">This product works best with</h5> 3324 3325 <div class="flex flex-col gap-3 max-h-[10em] md:max-h-[12em] overflow-auto"> 3326 3327 <div class="flex items-center gap-[1.5em] bg-white p-2 rounded-[8px]"> 3328 <img 3329 class="w-[45px] h-[45px] object-contain" 3330 src="//chebeauty.com/cdn/shop/files/Chebe_Shampoo_1_300x300.webp?v=1748876622" 3331 alt="" 3332 loading="lazy" 3333 > 3334 <div> 3335 <h6 class="text-sm font-body font-bold"> 3336 Chebe Shampoo 3337 </h6> 3338 <ul class="list-disc text-black text-[11px] font-medium"> 3339 3340 </ul> 3341 </div> 3342 </div> 3343 3344 <div class="flex items-center gap-[1.5em] bg-white p-2 rounded-[8px]"> 3345 <img 3346 class="w-[45px] h-[45px] object-contain" 3347 src="//chebeauty.com/cdn/shop/files/Leave-in_Conditioner_1_0f8cc42a-f5fa-4647-8993-0e5b39065a9b_300x300.webp?v=1748876653" 3348 alt="" 3349 loading="lazy" 3350 > 3351 <div> 3352 <h6 class="text-sm font-body font-bold"> 3353 Chebe Leave-In Conditioner 3354 </h6> 3355 <ul class="list-disc text-black text-[11px] font-medium"> 3356 3357 </ul> 3358 </div> 3359 </div> 3360 3361 <div class="flex items-center gap-[1.5em] bg-white p-2 rounded-[8px]"> 3362 <img 3363 class="w-[45px] h-[45px] object-contain" 3364 src="//chebeauty.com/cdn/shop/files/Chebe_Hair_Oil_1_300x300.webp?v=1748766478" 3365 alt="" 3366 loading="lazy" 3367 > 3368 <div> 3369 <h6 class="text-sm font-body font-bold"> 3370 Chebe Hair Oil 3371 </h6> 3372 <ul class="list-disc text-black text-[11px] font-medium"> 3373 3374 </ul> 3375 </div> 3376 </div> 3377 3378 </div> 3379 3380 <svg 3381 class="absolute bottom-[-17px] left-[48%]" 3382 width="20" 3383 height="22" 3384 viewBox="0 0 20 22" 3385 fill="none" 3386 xmlns="http://www.w3.org/2000/svg" 3387 > 3388 <path d="M10 20L1.33975 5L18.6603 5L10 20Z" fill="#F7F5F1" /> 3389 <path d="M1.5 5L10 20L18.5 5" stroke="#DCD9D4" /> 3390 </svg> 3391 </div> 3392</div> 3393 3394 3395 3396 3397 3398 3399 3400 3401 <style> 3402 .ab_bc_offset .productOptOptions.optOptionDisplayAnyway .cart-product-opt:last-child { 3403 display: flex !important; 3404 } 3405 </style> 3406 3407 3408<div 3409 class="bg-white ab_bc_offset border border-solid border-[#ECEAE5] rounded-[10px] p-2 mx-auto relative embla__slide product_opt_wrapper" 3410 data-product-id="7470527545522" 3411> 3412 <div class="custom-upsell-product-data-wrapper"> 3413 <div class="flex items-start"> 3414 <div class="min-w-[140px] max-w-[140px] h-[140px] relative rounded-[10px] overflow-hidden"> 3415 <div 3416 class="absolute inset-0" 3417 style="background: linear-gradient(180deg, rgba(255, 255, 255, 0) 33.33%, rgba(10, 8, 0, 0.64) 100%);" 3418 ></div> 3419 <img 3420 class="w-full h-full object-contain" 3421 src="//chebeauty.com/cdn/shop/files/Chebe_Hair_Oil_1_300x300.webp?v=1748766478" 3422 alt="Chebe Hair Oil" 3423 loading="lazy" 3424 fetchpriority="low" 3425 > 3426 <div class="absolute left-2 bottom-2 md:bottom-2"> 3427 3428 <div class="flex items-start flex-col-reverse justify-start gap-1"> 3429 <p class="text-left text-white text-[10px] font-medium"> 3430 11,000+ Happy Customers 3431 </p> 3432 <svg 3433 width="93" 3434 height="16"
3435 viewBox="0 0 93 16" 3436 fill="none" 3437 xmlns="http://www.w3.org/2000/svg" 3438 > 3439 <path d="M7.14303 2.15298C7.29271 1.69232 7.94442 1.69232 8.09409 2.15298L9.21678 5.60826C9.28372 5.81427 9.47569 5.95375 9.69231 5.95375H13.3254C13.8098 5.95375 14.0112 6.57356 13.6193 6.85826L10.6801 8.99374C10.5048 9.12106 10.4315 9.34675 10.4984 9.55276L11.6211 13.008C11.7708 13.4687 11.2435 13.8518 10.8517 13.5671L7.91246 11.4316C7.73721 11.3043 7.49991 11.3043 7.32467 11.4316L4.38543 13.5671C3.99358 13.8518 3.46634 13.4687 3.61601 13.008L4.7387 9.55276C4.80564 9.34674 4.73231 9.12106 4.55707 8.99374L1.61783 6.85826C1.22597 6.57356 1.42736 5.95375 1.91172 5.95375H5.54482C5.76143 5.95375 5.95341 5.81427 6.02035 5.60826L7.14303 2.15298Z" fill="#F6C344" /> 3440 <path d="M26.5825 2.15298C26.7322 1.69232 27.3839 1.69232 27.5335 2.15298L28.6562 5.60826C28.7232 5.81427 28.9151 5.95375 29.1318 5.95375H32.7649C33.2492 5.95375 33.4506 6.57356 33.0588 6.85826L30.1195 8.99374C29.9443 9.12106 29.8709 9.34675 29.9379 9.55276L31.0606 13.008C31.2102 13.4687 30.683 13.8518 30.2911 13.5671L27.3519 11.4316C27.1767 11.3043 26.9394 11.3043 26.7641 11.4316L23.8249 13.5671C23.433 13.8518 22.9058 13.4687 23.0555 13.008L24.1782 9.55276C24.2451 9.34674 24.1718 9.12106 23.9965 8.99374L21.0573 6.85826C20.6654 6.57356 20.8668 5.95375 21.3512 5.95375H24.9843C25.2009 5.95375 25.3929 5.81427 25.4598 5.60826L26.5825 2.15298Z" fill="#F6C344" /> 3441 <path d="M46.0239 2.15298C46.1736 1.69232 46.8253 1.69232 46.9749 2.15298L48.0976 5.60826C48.1646 5.81427 48.3566 5.95375 48.5732 5.95375H52.2063C52.6906 5.95375 52.892 6.57356 52.5002 6.85826L49.5609 8.99374C49.3857 9.12106 49.3123 9.34675 49.3793 9.55276L50.502 13.008C50.6516 13.4687 50.1244 13.8518 49.7326 13.5671L46.7933 11.4316C46.6181 11.3043 46.3808 11.3043 46.2055 11.4316L43.2663 13.5671C42.8744 13.8518 42.3472 13.4687 42.4969 13.008L43.6196 9.55276C43.6865 9.34674 43.6132 9.12106 43.4379 8.99374L40.4987 6.85826C40.1068 6.57356 40.3082 5.95375 40.7926 5.95375H44.4257C44.6423 5.95375 44.8343 5.81427 44.9012 5.60826L46.0239 2.15298Z" fill="#F6C344" /> 3442 <path d="M65.4633 2.15298C65.613 1.69232 66.2647 1.69232 66.4144 2.15298L67.5371 5.60826C67.604 5.81427 67.796 5.95375 68.0126 5.95375H71.6457C72.1301 5.95375 72.3315 6.57356 71.9396 6.85826L69.0004 8.99374C68.8251 9.12106 68.7518 9.34675 68.8187 9.55276L69.9414 13.008C70.0911 13.4687 69.5639 13.8518 69.172 13.5671L66.2328 11.4316C66.0575 11.3043 65.8202 11.3043 65.645 11.4316L62.7057 13.5671C62.3139 13.8518 61.7866 13.4687 61.9363 13.008L63.059 9.55276C63.126 9.34674 63.0526 9.12106 62.8774 8.99374L59.9381 6.85826C59.5463 6.57356 59.7477 5.95375 60.232 5.95375H63.8651C64.0817 5.95375 64.2737 5.81427 64.3407 5.60826L65.4633 2.15298Z" fill="#F6C344" /> 3443 <path d="M84.9067 2.15298C85.0564 1.69232 85.7081 1.69232 85.8578 2.15298L86.9805 5.60826C87.0474 5.81427 87.2394 5.95375 87.456 5.95375H91.0891C91.5734 5.95375 91.7748 6.57356 91.383 6.85826L88.4437 8.99374C88.2685 9.12106 88.1952 9.34675 88.2621 9.55276L89.3848 13.008C89.5345 13.4687 89.0072 13.8518 88.6154 13.5671L85.6761 11.4316C85.5009 11.3043 85.2636 11.3043 85.0883 11.4316L82.1491 13.5671C81.7572 13.8518 81.23 13.4687 81.3797 13.008L82.5024 9.55276C82.5693 9.34674 82.496 9.12106 82.3207 8.99374L79.3815 6.85826C78.9896 6.57356 79.191 5.95375 79.6754 5.95375H83.3085C83.5251 5.95375 83.7171 5.81427 83.784 5.60826L84.9067 2.15298Z" fill="#F6C344" /> 3444 </svg> 3445 </div> 3446 3447 </div> 3448 </div> 3449 <div class="ml-2 text-left"> 3450 <p class="text-sm text-black font-semibold mb-1">Chebe Hair Oil</p> 3451 <p 3452 data-4oz-id="42447594750130" 3453 data-8oz-id="42447594782898" 3454 data-4ozPrice="$9.60" 3455 data-8ozPrice="$16" 3456 data-unsub4ozPrice="$12" 3457 data-unsub8ozPrice="$20" 3458 3459 data-2oz-id="43669404418226" 3460 data-2ozPrice="$8" 3461 data-unsub2ozPrice="$10" 3462 3463 class="productBuyCardPrice text-sm text-black font-semibold mb-2" 3464 > 3465 3466 $12 3467 3468 </p> 3469 <p class="text-xs text-[#403F36] font-normal"> 3470 Rejuvenate your hair with deep moisturization to protect it from breakage and split ends. 3471 </p> 3472 </div> 3473 </div> 3474 <div class="productOptSubToggle mt-5 flex items-center justify-between w-full"> 3475 <div> 3476 <p class="text-black font-bold text-sm opacity-80"> 3477 Subscribe & Save 20% (-$4) 3478 </p> 3479 <p class="text-[10px] text-[#777] font-medium -mt-[6px] text-left"> 3480 Cancel anytime | No questions asked 3481 </p> 3482 </div> 3483 3484 3485 3486 3487 <label class="productOptSubTogglePeer relative inline-flex items-center cursor-pointer"> 3488 <input 3489 data-line="1" 3490 type="checkbox" 3491 value="" 3492 onchange="togglePeer(this)" 3493 3494 class="sr-only peer" 3495 > 3496 <div 3497 class="w-12 h-7 bg-[#F7F5F1] peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[4px] after:left-[4px] after:bg-[#777] after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-[#00634F] peer-checked:after:bg-[#FFF]" 3498 ></div> 3499 </label> 3500 </div> 3501 <div class="flex items-center justify-between mt-2 gap-x-2"> 3502 <div class="productOptSelector relative w-[23%]"> 3503 <div 3504 class="productOptSelected w-full py-2 px-3 flex items-center justify-between rounded-[6px] border border-[#
3504ECEAE5] cursor-pointer hover:border-[#777]" 3505 onclick="ToggleProductOpt(this)" 3506 > 3507 3508 <p class="text-black text-sm font-medium"> 3509 4oz 3510 </p> 3511 3512 <img 3513 src="//chebeauty.com/cdn/shop/t/163/assets/expand_more.webp?v=11573335225778024281781941836" 3514 class="w-[24px] h-[24px] pointer-events-none expand-black" 3515 alt="expand arrow"> 3516 </div> 3517 <div 3518 class="productOptOptions optOptionDisplayAnyway flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] py-4 px-3 rounded-[6px] mt-2 bg-white" 3519 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 3520 > 3521 3522 3523 <div 3524 onclick="SelectProductOpt(this)" 3525 class="active cart-product-opt productOptOption flex items-center justify-between cursor-pointer" 3526 data-variant-id="42447594750130" 3527 data-handle="chebe-hair-oil" 3528 data-variant-title="4oz" 3529 > 3530 <p class="text-sm text-black font-medium">4oz</p> 3531 <img 3532 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3533 class="w-[18px] h-[18px]" 3534 alt="expand arrow"> 3535 </div> 3536 3537 3538 3539 3540 <div 3541 onclick="SelectProductOpt(this)" 3542 class="cart-product-opt productOptOption flex items-center justify-between cursor-pointer" 3543 data-variant-id="43669404418226" 3544 data-handle="chebe-hair-oil" 3545 data-variant-title="2oz" 3546 > 3547 <p class="text-sm text-black font-medium">2oz</p> 3548 <img 3549 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3550 class="w-[18px] h-[18px]" 3551 alt="expand arrow"> 3552 </div> 3553 3554 </div> 3555 </div> 3556 <div 3557 class="productOptSelectorSellingPlans relative w-[75%]" 3558 style="display: none;" 3559 > 3560 <div 3561 onclick="TogglePlansOpt(this)" 3562 class="productOptSelectorSellingPlansSelected w-full p-2 md:px-[10px] flex items-center justify-between rounded-[6px] border border-[#ECEAE5] cursor-pointer hover:border-[#777]" 3563 > 3564 3565 3566 3567 3568 3569 3570 3571 <p> 3572 <span class="text-black font-semibold text-xs md:text-sm" 3573 >1 Month | 3574 </span> 3575 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3576 >If used 3577 twice a week</span> 3578 </p> 3579 3580 3581 3582 3583 <img 3584 src="//chebeauty.com/cdn/shop/t/163/assets/expand_more.webp?v=11573335225778024281781941836" 3585 class="w-[24px] h-[24px] pointer-events-none expand-black" 3586 alt="expand arrow"> 3587 </div> 3588 <div 3589 class="productOptSelectorSellingPlansOptions flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] p-2 md:px-[10px] md:pt-5 md:pb-[18px] rounded-[6px] mt-2 bg-white" 3590 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 3591 > 3592 3593 3594 3595 3596 3597 <div 3598 onclick="SelectPlanOpt(this)" 3599 data-index="2594898098" 3600 class="variant-4oz productOptSelectorSellingPlansOption cursor-pointer" 3601 > 3602 <p> 3603 3604 <span class="text-black font-semibold text-xs md:text-sm" 3605 >1 Week | 3606 </span> 3607 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3608 >If used 3609 3-4 times week</span> 3610 3611 </p> 3612 <img 3613 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3614 class="w-[18px] h-[18px]" 3615 alt="expand arrow"> 3616 </div> 3617 3618 3619 3620 3621 3622 <div 3623 onclick="SelectPlanOpt(this)" 3624 data-index="2594930866" 3625 class="variant-4oz productOptSelectorSellingPlansOption cursor-pointer" 3626 > 3627 <p> 3628
3629 <span class="text-black font-semibold text-xs md:text-sm" 3630 >2 Weeks | 3631 </span> 3632 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3633 >If used 3634 twice a week</span> 3635 3636 </p> 3637 <img 3638 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3639 class="w-[18px] h-[18px]" 3640 alt="expand arrow"> 3641 </div> 3642 3643 3644 3645 3646 3647 <div 3648 onclick="SelectPlanOpt(this)" 3649 data-index="2594963634" 3650 class="variant-4oz productOptSelectorSellingPlansOption active cursor-pointer" 3651 > 3652 <p> 3653 3654 <span class="text-black font-semibold text-xs md:text-sm" 3655 >1 Month | 3656 </span> 3657 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3658 >If used 3659 once a week</span> 3660 3661 </p> 3662 <img 3663 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3664 class="w-[18px] h-[18px]" 3665 alt="expand arrow"> 3666 </div> 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 <div 3681 onclick="SelectPlanOpt(this)" 3682 data-index="2594930866" 3683 class="variant-8oz productOptSelectorSellingPlansOption active-var cursor-pointer" 3684 > 3685 <p> 3686 3687 <span class="text-black font-semibold text-xs md:text-sm" 3688 >2 Weeks | 3689 </span> 3690 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3691 >If used 3692 3-4 times week</span> 3693 3694 </p> 3695 <img 3696 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3697 class="w-[18px] h-[18px]" 3698 alt="expand arrow"> 3699 </div> 3700 3701 3702 3703 3704 3705 <div 3706 onclick="SelectPlanOpt(this)" 3707 data-index="2594963634" 3708 class="variant-8oz productOptSelectorSellingPlansOption active-var active cursor-pointer" 3709 > 3710 <p> 3711 3712 <span class="text-black font-semibold text-xs md:text-sm" 3713 >1 Month | 3714 </span> 3715 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3716 >If used 3717 twice a week</span> 3718 3719 </p> 3720 <img 3721 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3722 class="w-[18px] h-[18px]" 3723 alt="expand arrow"> 3724 </div> 3725 3726 3727 3728 3729 3730 <div 3731 onclick="SelectPlanOpt(this)" 3732 data-index="2594996402" 3733 class="variant-8oz productOptSelectorSellingPlansOption active-var cursor-pointer" 3734 > 3735 <p> 3736 3737 <span class="text-black font-semibold text-xs md:text-sm" 3738 >2 Months | 3739 </span> 3740 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3741 >If used 3742 once a week</span> 3743 3744 </p> 3745 <img 3746 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3747 class="w-[18px] h-[18px]" 3748 alt="expand arrow"> 3749 </div> 3750 3751 3752 3753 3754 3755 3756 3757 <div 3758 onclick="SelectPlanOpt(this)" 3759 data-index="2594898098" 3760 class="variant-2oz productOptSelectorSellingPlansOption cursor-pointer" 3761 > 3762 <p> 3763
3764 <span class="text-black font-semibold text-xs md:text-sm" 3765 >1 Week | 3766 </span> 3767 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3768 >If used 3769 3-4 times week</span> 3770 3771 </p> 3772 <img 3773 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3774 class="w-[18px] h-[18px]" 3775 alt="expand arrow"> 3776 </div> 3777 3778 3779 3780 3781 3782 <div 3783 onclick="SelectPlanOpt(this)" 3784 data-index="2594930866" 3785 class="variant-2oz productOptSelectorSellingPlansOption cursor-pointer" 3786 > 3787 <p> 3788 3789 <span class="text-black font-semibold text-xs md:text-sm" 3790 >2 Weeks | 3791 </span> 3792 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3793 >If used 3794 twice a week</span> 3795 3796 </p> 3797 <img 3798 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3799 class="w-[18px] h-[18px]" 3800 alt="expand arrow"> 3801 </div> 3802 3803 3804 3805 3806 3807 <div 3808 onclick="SelectPlanOpt(this)" 3809 data-index="2594963634" 3810 class="variant-2oz productOptSelectorSellingPlansOption active cursor-pointer" 3811 > 3812 <p> 3813 3814 <span class="text-black font-semibold text-xs md:text-sm" 3815 >1 Month | 3816 </span> 3817 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 3818 >If used 3819 once a week</span> 3820 3821 </p> 3822 <img 3823 src="//chebeauty.com/cdn/shop/t/163/assets/check_small.png?v=76823705628261515141781941835" 3824 class="w-[18px] h-[18px]" 3825 alt="expand arrow"> 3826 </div> 3827 3828 3829 3830 3831 3832 3833 </div> 3834 </div> 3835 </div> 3836 </div> 3837 <button class="w-full mt-5 text-sm flex items-center justify-center gap-x-1 leading-base outline-none border-solid button min-h-[40px] border border-[#E0A200] bg-[#FFF6E0] text-center hover:border-[#CC9300] hover:bg-[#FFF1CC] active:border-[#CC9300] active:bg-[#FFF6E0] capitalize font-medium text-black rounded-[10px] custom-add-to-cart"> 3838 <span>Add to Cart</span> 3839 <svg 3840 aria-hidden="true" 3841 class="hidden ml-2 w-4 h-4 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600" 3842 viewBox="0 0 100 101" 3843 fill="none" 3844 xmlns="http://www.w3.org/2000/svg" 3845 > 3846 <path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="#403F36" /> 3847 <path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="#FFC632" /> 3848 </svg> 3849 <span class="sr-only">Loading...</span> 3850 </button> 3851 3852 <div 3853 class="works-best-popup hidden absolute top-[-14em] 2xl:top-[-14em] left-0 w-full bg-gray-100 border border-gray-300 px-3 py-4 flex flex-col items-center gap-3 rounded-[10px]" 3854 style="box-shadow: 0px 3px 20px rgb(0 0 0 / 15%)" 3855 > 3856 <svg 3857 class="works-best-close-btn absolute right-3 top-3" 3858 width="12" 3859 height="12"
3860 viewBox="0 0 12 12" 3861 fill="none" 3862 xmlns="http://www.w3.org/2000/svg" 3863 > 3864 <path 3865 d="M1 11L11 1" 3866 stroke="black" 3867 stroke-width="1.5" 3868 stroke-linecap="round" 3869 stroke-linejoin="round" /> 3870 <path 3871 d="M11 11L1 1" 3872 stroke="black" 3873 stroke-width="1.5" 3874 stroke-linecap="round" 3875 stroke-linejoin="round" /> 3876 </svg> 3877 3878 <h5 class="text-lg font-body font-bold">This product works best with</h5> 3879 3880 <div class="flex flex-col gap-3 max-h-[10em] md:max-h-[12em] overflow-auto"> 3881 3882 <div class="flex items-center gap-[1.5em] bg-white p-2 rounded-[8px]"> 3883 <img 3884 class="w-[45px] h-[45px] object-contain" 3885 src="//chebeauty.com/cdn/shop/files/Chebe_Shampoo_1_300x300.webp?v=1748876622" 3886 alt="" 3887 loading="lazy" 3888 > 3889 <div> 3890 <h6 class="text-sm font-body font-bold"> 3891 Chebe Shampoo 3892 </h6> 3893 <ul class="list-disc text-black text-[11px] font-medium"> 3894 3895 </ul> 3896 </div> 3897 </div> 3898 3899 <div class="flex items-center gap-[1.5em] bg-white p-2 rounded-[8px]"> 3900 <img 3901 class="w-[45px] h-[45px] object-contain" 3902 src="//chebeauty.com/cdn/shop/files/Leave-in_Conditioner_1_0f8cc42a-f5fa-4647-8993-0e5b39065a9b_300x300.webp?v=1748876653" 3903 alt="" 3904 loading="lazy" 3905 > 3906 <div> 3907 <h6 class="text-sm font-body font-bold"> 3908 Chebe Leave-In Conditioner 3909 </h6> 3910 <ul class="list-disc text-black text-[11px] font-medium"> 3911 3912 </ul> 3913 </div> 3914 </div> 3915 3916 </div> 3917 3918 <svg 3919 class="absolute bottom-[-17px] left-[48%]" 3920 width="20" 3921 height="22" 3922 viewBox="0 0 20 22" 3923 fill="none" 3924 xmlns="http://www.w3.org/2000/svg" 3925 > 3926 <path d="M10 20L1.33975 5L18.6603 5L10 20Z" fill="#F7F5F1" /> 3927 <path d="M1.5 5L10 20L18.5 5" stroke="#DCD9D4" /> 3928 </svg> 3929 </div> 3930</div> 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940<div 3941 class="bg-white border border-solid border-[#ECEAE5] rounded-[10px] p-2 mx-auto relative embla__slide product_opt_wrapper" 3942 data-product-id="" 3943> 3944 <div class="prod-data-dcb"> 3945 <div class="custom-upsell-product-data-wrapper"> 3946 <div class="flex items-start"> 3947 <div class="min-w-[140px] max-w-[140px] h-[140px] relative rounded-[10px] overflow-hidden"> 3948 <div 3949 class="absolute inset-0" 3950 style="background: linear-gradient(180deg, rgba(255, 255, 255, 0) 33.33%, rgba(10, 8, 0, 0.64) 100%);" 3951 ></div> 3952 3953 <img 3954 class="w-full h-full object-contain" 3955 src="//chebeauty.com/cdn/shopifycloud/storefront/assets/no-image-2048-a2addb12_300x300.gif" 3956 alt="" 3957 loading="lazy" 3958 fetchpriority="low" 3959 > 3960 <div class="absolute left-2 bottom-2 md:bottom-2"> 3961 3962 </div> 3963 </div> 3964 <div class="ml-2 text-left"> 3965 <p class="text-sm text-black font-semibold mb-1"> 3966 3967 </p> 3968 <p 3969 data-4oz-id="" 3970 data-8oz-id="" 3971 data-4ozPrice="$0" 3972 data-8ozPrice="$0" 3973 data-unsub4ozPrice="" 3974 data-unsub8ozPrice="" 3975 3976 class="productBuyCardPrice text-sm text-black font-semibold mb-2" 3977 > 3978 3979 3980 </p> 3981 <p class="text-xs text-[#403F36] font-normal"> 3982 3983 </p> 3984 </div> 3985 </div> 3986 <div class="productOptSubToggle mt-5 flex items-center justify-between w-full hidden "> 3987 <div> 3988 <p class="text-black font-bold text-sm opacity-80"> 3989 Subscribe & Save 20% (-$0) 3990 </p> 3991 <p class="text-[10px] text-[#777] font-medium -mt-[6px] text-left"> 3992 Cancel anytime | No questions asked 3993 </p> 3994 </div> 3995 3996 3997 3998 3999 <label class="productOptSubTogglePeer relative inline-flex items-center cursor-pointer "> 4000 <input 4001 data-line="1" 4002 type="checkbox" 4003 value="" 4004 onchange="togglePeer(this)" 4005 4006 class="sr-only peer" 4007 > 4008 <div 4009 class="w-12 h-7 bg-[#F7F5F1] peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[4px] after:left-[4px] after:bg-[#777] after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-[#00634F] peer-checked:after:bg-[#FFF]" 4010 ></div> 4011 </label> 4012 </div> 4013 <div class="flex items-center justify-between mt-2 gap-x-2 hidden "> 4014 <div class="productOptSelector relative w-[23%]"> 4015 <div 4016 class="productOptSelected w-full py-2 px-3 flex items-center justify-between rounded-[6px] border border-[#
4016ECEAE5] cursor-pointer hover:border-[#777]" 4017 onclick="ToggleProductOpt(this)" 4018 > 4019 4020 <p class="text-black text-sm font-medium"> 4021 4022 </p> 4023 4024 <img 4025 src="//chebeauty.com/cdn/shop/t/163/assets/expand_more.webp?v=11573335225778024281781941836" 4026 class="w-[24px] h-[24px] pointer-events-none expand-black" 4027 alt="expand arrow"> 4028 </div> 4029 <div 4030 class="productOptOptions flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] py-4 px-3 rounded-[6px] mt-2 bg-white" 4031 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 4032 > 4033 4034 </div> 4035 </div> 4036 <div 4037 class="productOptSelectorSellingPlans relative w-[75%]" 4038 style="display: none;" 4039 > 4040 <div 4041 onclick="TogglePlansOpt(this)" 4042 class="productOptSelectorSellingPlansSelected w-full p-2 md:px-[10px] flex items-center justify-between rounded-[6px] border border-[#ECEAE5] cursor-pointer hover:border-[#777]" 4043 > 4044 4045 <img 4046 src="//chebeauty.com/cdn/shop/t/163/assets/expand_more.webp?v=11573335225778024281781941836" 4047 class="w-[24px] h-[24px] pointer-events-none expand-black" 4048 alt="expand arrow"> 4049 </div> 4050 <div 4051 class="productOptSelectorSellingPlansOptions flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] p-2 md:px-[10px] md:pt-5 md:pb-[18px] rounded-[6px] mt-2 bg-white" 4052 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 4053 > 4054 4055 </div> 4056 </div> 4057 </div> 4058 </div> 4059 <button 4060 data-variant-id="" 4061 4062 data-selling-plan-id="" 4063 4064 class="w-full mt-5 text-sm flex items-center justify-center gap-x-1 leading-base outline-none border-solid button min-h-[40px] border border-[#E0A200] bg-[#FFF6E0] text-center hover:border-[#CC9300] hover:bg-[#FFF1CC] active:border-[#CC9300] active:bg-[#FFF6E0] capitalize font-medium text-black rounded-[10px] custom-add-to-cart-one-variant-sub" 4065 > 4066 <span>Add to Cart</span> 4067 <svg 4068 aria-hidden="true" 4069 class="hidden ml-2 w-4 h-4 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600"
4070 viewBox="0 0 100 101" 4071 fill="none" 4072 xmlns="http://www.w3.org/2000/svg" 4073 > 4074 <path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="#403F36" /> 4075 <path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="#FFC632" /> 4076 </svg> 4077 <span class="sr-only">Loading...</span> 4078 </button> 4079 4080 <div 4081 class="works-best-popup hidden absolute top-[-14em] 2xl:top-[-14em] left-0 w-full bg-gray-100 border border-gray-300 px-3 py-4 flex flex-col items-center gap-3 rounded-[10px]" 4082 style="box-shadow: 0px 3px 20px rgb(0 0 0 / 15%)" 4083 > 4084 <svg 4085 class="works-best-close-btn absolute right-3 top-3" 4086 width="12" 4087 height="12"
4088 viewBox="0 0 12 12" 4089 fill="none" 4090 xmlns="http://www.w3.org/2000/svg" 4091 > 4092 <path 4093 d="M1 11L11 1" 4094 stroke="black" 4095 stroke-width="1.5" 4096 stroke-linecap="round" 4097 stroke-linejoin="round" /> 4098 <path 4099 d="M11 11L1 1" 4100 stroke="black" 4101 stroke-width="1.5" 4102 stroke-linecap="round" 4103 stroke-linejoin="round" /> 4104 </svg> 4105 4106 <h5 class="text-lg font-body font-bold">This product works best with</h5> 4107 4108 <div class="flex flex-col gap-3 max-h-[10em] md:max-h-[12em] overflow-auto"> 4109 4110 </div> 4111 4112 <svg 4113 class="absolute bottom-[-17px] left-[48%]" 4114 width="20" 4115 height="22" 4116 viewBox="0 0 20 22" 4117 fill="none" 4118 xmlns="http://www.w3.org/2000/svg" 4119 > 4120 <path d="M10 20L1.33975 5L18.6603 5L10 20Z" fill="#F7F5F1" /> 4121 <path d="M1.5 5L10 20L18.5 5" stroke="#DCD9D4" /> 4122 </svg> 4123 </div> 4124 </div> 4125 <div class="prod-data-co-wash hidden"> 4126 <div class="custom-upsell-product-data-wrapper"> 4127 <div class="flex items-start"> 4128 <div class="min-w-[140px] max-w-[140px] h-[140px] relative rounded-[10px] overflow-hidden"> 4129 <div 4130 class="absolute inset-0" 4131 style="background: linear-gradient(180deg, rgba(255, 255, 255, 0) 33.33%, rgba(10, 8, 0, 0.64) 100%);" 4132 ></div> 4133 <img 4134 class="w-full h-full object-contain" 4135 src="//chebeauty.com/cdn/shop/files/Co-Wash_1_1631f515-5d0b-4d61-acbd-8dc8e6049c91_300x300.webp?v=1748767283" 4136 alt="Chebe Co-Wash" 4137 loading="lazy" 4138 fetchpriority="low" 4139 > 4140 <div class="absolute left-2 bottom-2 md:bottom-2"> 4141 <div class="flex items-start flex-col-reverse justify-start gap-1"> 4142 <p class="text-left text-white text-[10px] font-medium"> 4143 1,000+ Happy Customers 4144 </p> 4145 <svg 4146 width="93" 4147 height="16"
4148 viewBox="0 0 93 16" 4149 fill="none" 4150 xmlns="http://www.w3.org/2000/svg" 4151 > 4152 <path d="M7.14303 2.15298C7.29271 1.69232 7.94442 1.69232 8.09409 2.15298L9.21678 5.60826C9.28372 5.81427 9.47569 5.95375 9.69231 5.95375H13.3254C13.8098 5.95375 14.0112 6.57356 13.6193 6.85826L10.6801 8.99374C10.5048 9.12106 10.4315 9.34675 10.4984 9.55276L11.6211 13.008C11.7708 13.4687 11.2435 13.8518 10.8517 13.5671L7.91246 11.4316C7.73721 11.3043 7.49991 11.3043 7.32467 11.4316L4.38543 13.5671C3.99358 13.8518 3.46634 13.4687 3.61601 13.008L4.7387 9.55276C4.80564 9.34674 4.73231 9.12106 4.55707 8.99374L1.61783 6.85826C1.22597 6.57356 1.42736 5.95375 1.91172 5.95375H5.54482C5.76143 5.95375 5.95341 5.81427 6.02035 5.60826L7.14303 2.15298Z" fill="#F6C344"></path> 4153 <path d="M26.5825 2.15298C26.7322 1.69232 27.3839 1.69232 27.5335 2.15298L28.6562 5.60826C28.7232 5.81427 28.9151 5.95375 29.1318 5.95375H32.7649C33.2492 5.95375 33.4506 6.57356 33.0588 6.85826L30.1195 8.99374C29.9443 9.12106 29.8709 9.34675 29.9379 9.55276L31.0606 13.008C31.2102 13.4687 30.683 13.8518 30.2911 13.5671L27.3519 11.4316C27.1767 11.3043 26.9394 11.3043 26.7641 11.4316L23.8249 13.5671C23.433 13.8518 22.9058 13.4687 23.0555 13.008L24.1782 9.55276C24.2451 9.34674 24.1718 9.12106 23.9965 8.99374L21.0573 6.85826C20.6654 6.57356 20.8668 5.95375 21.3512 5.95375H24.9843C25.2009 5.95375 25.3929 5.81427 25.4598 5.60826L26.5825 2.15298Z" fill="#F6C344"></path> 4154 <path d="M46.0239 2.15298C46.1736 1.69232 46.8253 1.69232 46.9749 2.15298L48.0976 5.60826C48.1646 5.81427 48.3566 5.95375 48.5732 5.95375H52.2063C52.6906 5.95375 52.892 6.57356 52.5002 6.85826L49.5609 8.99374C49.3857 9.12106 49.3123 9.34675 49.3793 9.55276L50.502 13.008C50.6516 13.4687 50.1244 13.8518 49.7326 13.5671L46.7933 11.4316C46.6181 11.3043 46.3808 11.3043 46.2055 11.4316L43.2663 13.5671C42.8744 13.8518 42.3472 13.4687 42.4969 13.008L43.6196 9.55276C43.6865 9.34674 43.6132 9.12106 43.4379 8.99374L40.4987 6.85826C40.1068 6.57356 40.3082 5.95375 40.7926 5.95375H44.4257C44.6423 5.95375 44.8343 5.81427 44.9012 5.60826L46.0239 2.15298Z" fill="#F6C344"></path> 4155 <path d="M65.4633 2.15298C65.613 1.69232 66.2647 1.69232 66.4144 2.15298L67.5371 5.60826C67.604 5.81427 67.796 5.95375 68.0126 5.95375H71.6457C72.1301 5.95375 72.3315 6.57356 71.9396 6.85826L69.0004 8.99374C68.8251 9.12106 68.7518 9.34675 68.8187 9.55276L69.9414 13.008C70.0911 13.4687 69.5639 13.8518 69.172 13.5671L66.2328 11.4316C66.0575 11.3043 65.8202 11.3043 65.645 11.4316L62.7057 13.5671C62.3139 13.8518 61.7866 13.4687 61.9363 13.008L63.059 9.55276C63.126 9.34674 63.0526 9.12106 62.8774 8.99374L59.9381 6.85826C59.5463 6.57356 59.7477 5.95375 60.232 5.95375H63.8651C64.0817 5.95375 64.2737 5.81427 64.3407 5.60826L65.4633 2.15298Z" fill="#F6C344"></path> 4156 <path d="M84.9067 2.15298C85.0564 1.69232 85.7081 1.69232 85.8578 2.15298L86.9805 5.60826C87.0474 5.81427 87.2394 5.95375 87.456 5.95375H91.0891C91.5734 5.95375 91.7748 6.57356 91.383 6.85826L88.4437 8.99374C88.2685 9.12106 88.1952 9.34675 88.2621 9.55276L89.3848 13.008C89.5345 13.4687 89.0072 13.8518 88.6154 13.5671L85.6761 11.4316C85.5009 11.3043 85.2636 11.3043 85.0883 11.4316L82.1491 13.5671C81.7572 13.8518 81.23 13.4687 81.3797 13.008L82.5024 9.55276C82.5693 9.34674 82.496 9.12106 82.3207 8.99374L79.3815 6.85826C78.9896 6.57356 79.191 5.95375 79.6754 5.95375H83.3085C83.5251 5.95375 83.7171 5.81427 83.784 5.60826L84.9067 2.15298Z" fill="#F6C344"></path> 4157 </svg> 4158 </div> 4159 </div> 4160 </div> 4161 <div class="ml-2 text-left"> 4162 <p class="text-sm text-black font-semibold mb-1">Chebe Co-Wash</p> 4163 <p 4164 data-4oz-id="44662144729266" 4165 data-8oz-id="44662144762034" 4166 data-4ozprice="$12" 4167 data-8ozprice="$16" 4168 data-unsub4ozprice="$15" 4169 data-unsub8ozprice="$20" 4170 class="productBuyCardPrice text-sm text-black font-semibold mb-2" 4171 > 4172 $20 4173 </p> 4174 <p class="text-xs text-[#403F36] font-normal"> 4175 Gently cleanse and condition your hair with our Chebe Co-Wash, 4176 perfect for maintaining softness. 4177 </p> 4178 </div> 4179 </div> 4180 <div class="productOptSubToggle mt-5 flex items-center justify-between w-full"> 4181 <div> 4182 <p class="text-black font-bold text-sm opacity-80"> 4183 Subscribe & Save 20% (-$4) 4184 </p> 4185 <p class="text-[10px] text-[#777] font-medium -mt-[6px] text-left"> 4186 Cancel anytime | No questions asked 4187 </p> 4188 </div> 4189 4190 <label class="productOptSubTogglePeer relative inline-flex items-center cursor-pointer"> 4191 <input 4192 data-line="1" 4193 type="checkbox" 4194 value="" 4195 onchange="togglePeer(this)" 4196 checked="" 4197 class="sr-only peer" 4198 > 4199 <div 4200 class="w-12 h-7 bg-[#F7F5F1] peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[4px] after:left-[4px] after:bg-[#777] after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-[#00634F] peer-checked:after:bg-[#FFF]" 4201 ></div> 4202 </label> 4203 </div> 4204 <div class="flex items-center justify-between mt-2 gap-x-2"> 4205 <div class="productOptSelector relative w-[23%]"> 4206 <div 4207 class="productOptSelected w-full py-2 px-3 flex items-center justify-between rounded-[6px] border border-[#
4207ECEAE5] cursor-pointer hover:border-[#777]" 4208 onclick="ToggleProductOpt(this)" 4209 > 4210 <p class="text-black text-sm font-medium">8oz</p> 4211 4212 <img 4213 src="//chebeauty.com/cdn/shop/t/143/assets/expand_more.webp?v=11573335225778024281747819638" 4214 class="w-[24px] h-[24px] pointer-events-none expand-black" 4215 alt="expand arrow" 4216 > 4217 </div> 4218 <div 4219 class="productOptOptions flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] py-4 px-3 rounded-[6px] mt-2 bg-white" 4220 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 4221 > 4222 <div 4223 onclick="SelectProductOpt(this)" 4224 class="cart-product-opt productOptOption flex items-center justify-between cursor-pointer" 4225 data-variant-id="44662144729266" 4226 data-handle="co-wash" 4227 data-variant-title="4oz" 4228 > 4229 <p class="text-sm text-black font-medium">4oz</p> 4230 <img 4231 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 4232 class="w-[18px] h-[18px]" 4233 alt="expand arrow" 4234 > 4235 </div> 4236 4237 <div 4238 onclick="SelectProductOpt(this)" 4239 class="active cart-product-opt productOptOption flex items-center justify-between cursor-pointer" 4240 data-variant-id="44662144762034" 4241 data-handle="co-wash" 4242 data-variant-title="8oz" 4243 > 4244 <p class="text-sm text-black font-medium">8oz</p> 4245 <img 4246 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 4247 class="w-[18px] h-[18px]" 4248 alt="expand arrow" 4249 > 4250 </div> 4251 </div> 4252 </div> 4253 <div 4254 class="productOptSelectorSellingPlans relative w-[75%]" 4255 style="display: block;" 4256 > 4257 <div 4258 onclick="TogglePlansOpt(this)" 4259 class="productOptSelectorSellingPlansSelected w-full p-2 md:px-[10px] flex items-center justify-between rounded-[6px] border border-[#ECEAE5] cursor-pointer hover:border-[#777]" 4260 > 4261 <p> 4262 <span class="text-black font-semibold text-xs md:text-sm" 4263 >1 Month | 4264 </span> 4265 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 4266 >If used twice a week</span 4267 > 4268 </p> 4269 4270 <img 4271 src="//chebeauty.com/cdn/shop/t/143/assets/expand_more.webp?v=11573335225778024281747819638" 4272 class="w-[24px] h-[24px] pointer-events-none expand-black" 4273 alt="expand arrow" 4274 > 4275 </div> 4276 <div 4277 class="productOptSelectorSellingPlansOptions flex-col gap-y-4 absolute left-0 z-20 w-full border border-[#F7F5F1] p-2 md:px-[10px] md:pt-5 md:pb-[18px] rounded-[6px] mt-2 bg-white" 4278 style="box-shadow: 0px 2px 12px 0px rgba(10, 8, 0, 0.08);" 4279 > 4280 <div 4281 onclick="SelectPlanOpt(this)" 4282 data-index="2097348786" 4283 class="variant-4oz productOptSelectorSellingPlansOption cursor-pointer" 4284 > 4285 <p> 4286 <span class="text-black font-semibold text-xs md:text-sm" 4287 >1 Week | 4288 </span> 4289 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 4290 >If used 3-4 times week</span 4291 > 4292 </p> 4293 <img 4294 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 4295 class="w-[18px] h-[18px]" 4296 alt="expand arrow" 4297 > 4298 </div> 4299 4300 <div 4301 onclick="SelectPlanOpt(this)" 4302 data-index="2097381554" 4303 class="variant-4oz productOptSelectorSellingPlansOption cursor-pointer" 4304 > 4305 <p>
4306 <span class="text-black font-semibold text-xs md:text-sm" 4307 >2 Weeks | 4308 </span> 4309 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 4310 >If used twice a week</span 4311 > 4312 </p> 4313 <img 4314 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 4315 class="w-[18px] h-[18px]" 4316 alt="expand arrow" 4317 > 4318 </div> 4319 4320 <div 4321 onclick="SelectPlanOpt(this)" 4322 data-index="2097414322" 4323 class="variant-4oz productOptSelectorSellingPlansOption active cursor-pointer" 4324 > 4325 <p> 4326 <span class="text-black font-semibold text-xs md:text-sm" 4327 >1 Month | 4328 </span> 4329 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 4330 >If used once a week</span 4331 > 4332 </p> 4333 <img 4334 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 4335 class="w-[18px] h-[18px]" 4336 alt="expand arrow" 4337 > 4338 </div> 4339 4340 <div 4341 onclick="SelectPlanOpt(this)" 4342 data-index="2097381554" 4343 class="variant-8oz productOptSelectorSellingPlansOption active-var cursor-pointer" 4344 > 4345 <p> 4346 <span class="text-black font-semibold text-xs md:text-sm" 4347 >2 Weeks | 4348 </span> 4349 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 4350 >If used 3-4 times week</span 4351 > 4352 </p> 4353 <img 4354 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 4355 class="w-[18px] h-[18px]" 4356 alt="expand arrow" 4357 > 4358 </div> 4359 4360 <div 4361 onclick="SelectPlanOpt(this)" 4362 data-index="2097414322" 4363 class="variant-8oz productOptSelectorSellingPlansOption active-var active cursor-pointer" 4364 > 4365 <p> 4366 <span class="text-black font-semibold text-xs md:text-sm" 4367 >1 Month | 4368 </span> 4369 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 4370 >If used twice a week</span 4371 > 4372 </p> 4373 <img 4374 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 4375 class="w-[18px] h-[18px]" 4376 alt="expand arrow" 4377 > 4378 </div> 4379 4380 <div 4381 onclick="SelectPlanOpt(this)" 4382 data-index="2097447090" 4383 class="variant-8oz productOptSelectorSellingPlansOption active-var cursor-pointer" 4384 > 4385 <p> 4386 <span class="text-black font-semibold text-xs md:text-sm" 4387 >2 Months | 4388 </span> 4389 <span class="text-[10px] md:text-xs font-medium text-[#403F36] ml-1" 4390 >If used once a week</span 4391 > 4392 </p> 4393 <img 4394 src="//chebeauty.com/cdn/shop/t/143/assets/check_small.png?v=76823705628261515141747819638" 4395 class="w-[18px] h-[18px]" 4396 alt="expand arrow" 4397 > 4398 </div> 4399 </div> 4400 </div> 4401 </div> 4402 </div> 4403 <button class="w-full mt-5 text-sm flex items-center justify-center gap-x-1 leading-base outline-none border-solid button min-h-[40px] border border-[#E0A200] bg-[#FFF6E0] text-center hover:border-[#CC9300] hover:bg-[#FFF1CC] active:border-[#CC9300] active:bg-[#FFF6E0] capitalize font-medium text-black rounded-[10px] custom-add-to-cart"> 4404 <span>Add to Cart</span> 4405 <svg 4406 aria-hidden="true" 4407 class="hidden ml-2 w-4 h-4 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600"
4408 viewBox="0 0 100 101" 4409 fill="none" 4410 xmlns="http://www.w3.org/2000/svg" 4411 > 4412 <path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="#403F36"></path> 4413 <path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="#FFC632"></path> 4414 </svg> 4415 <span class="sr-only">Loading...</span> 4416 </button> 4417 4418 <div 4419 class="works-best-popup hidden absolute top-[-14em] 2xl:top-[-14em] left-0 w-full bg-gray-100 border border-gray-300 px-3 py-4 flex flex-col items-center gap-3 rounded-[10px]" 4420 style="box-shadow: 0px 3px 20px rgb(0 0 0 / 15%)" 4421 > 4422 <svg 4423 class="works-best-close-btn absolute right-3 top-3" 4424 width="12" 4425 height="12"
4426 viewBox="0 0 12 12" 4427 fill="none" 4428 xmlns="http://www.w3.org/2000/svg" 4429 > 4430 <path d="M1 11L11 1" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> 4431 <path d="M11 11L1 1" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> 4432 </svg> 4433 4434 <h5 class="text-lg font-body font-bold">This product works best with</h5> 4435 4436 <div 4437 class="flex flex-col gap-3 max-h-[10em] md:max-h-[12em] overflow-auto" 4438 ></div> 4439 4440 <svg 4441 class="absolute bottom-[-17px] left-[48%]" 4442 width="20" 4443 height="22" 4444 viewBox="0 0 20 22" 4445 fill="none" 4446 xmlns="http://www.w3.org/2000/svg" 4447 > 4448 <path d="M10 20L1.33975 5L18.6603 5L10 20Z" fill="#F7F5F1"></path> 4449 <path d="M1.5 5L10 20L18.5 5" stroke="#DCD9D4"></path> 4450 </svg> 4451 </div> 4452 </div> 4453</div> 4454 4455 4456 4457 </div> 4458 </div> 4459
4459<script src="//chebeauty.com/cdn/shop/t/163/assets/works-best-popup.js?v=12427188825078390741781941839" defer></script>
4459 4460 </div> 4461 <!-- Buttons --> 4462 <button 4463 class="embla__button embla__button--prev embla__prev" 4464 type="button" 4465 > 4466 <svg 4467 class="embla__button__svg" 4468 viewBox="137.718 -1.001 366.563 643.999" 4469 > 4470 <path 4471 d="M428.36 12.5c16.67-16.67 43.76-16.67 60.42 0 16.67 16.67 16.67 43.76 0 60.42L241.7 320c148.25 148.24 230.61 230.6 247.08 247.08 16.67 16.66 16.67 43.75 0 60.42-16.67 16.66-43.76 16.67-60.42 0-27.72-27.71-249.45-249.37-277.16-277.08a42.308 42.308 0 0 1-12.48-30.34c0-11.1 4.1-22.05 12.48-30.42C206.63 234.23 400.64 40.21 428.36 12.5z" 4472 ></path> 4473 </svg> 4474 </button> 4475 <button 4476 class="embla__button embla__button--next embla__next" 4477 type="button" 4478 > 4479 <svg class="embla__button__svg" viewBox="0 0 238.003 238.003"> 4480 <path 4481 d="M181.776 107.719L78.705 4.648c-6.198-6.198-16.273-6.198-22.47 0s-6.198 16.273 0 22.47l91.883 91.883-91.883 91.883c-6.198 6.198-6.198 16.273 0 22.47s16.273 6.198 22.47 0l103.071-103.039a15.741 15.741 0 0 0 4.64-11.283c0-4.13-1.526-8.199-4.64-11.313z" 4482 ></path> 4483 </svg> 4484 </button> 4485 </div> 4486 <!-- Dots --> 4487 <div class="embla__dots cart__dots"></div> 4488 4489
4489<script type="text/template" id="embla-dot-template"> 4490 <button class="embla__dot" type="button"></button> 4491 </script>
4491 4492 </div> 4493 </upsell> 4494 </div> 4495 <div class="drawer__footer"> 4496 <!-- Shipping + Subtotal summary --> 4497 <div class="cart-footer-summary"> 4498 <!-- Shipping row --> 4499 <div class="cart-footer-row"> 4500 <span class="cart-footer-label">Shipping</span><span class="cart-footer-shipping-calc">$6.90</span></div> 4501 4502 <hr class="cart-footer-divider"> 4503 4504 <!-- Subtotal row --><div class="cart-footer-row"> 4505 <span class="cart-footer-subtotal-label">Subtotal</span> 4506 <div class="cart-footer-price-group"><span class="cart-footer-current-price">$0</span> 4507 </div> 4508 </div> 4509 </div> 4510 4511 <!-- Secure Checkout button --> 4512 <div class="cart-footer-cta"> 4513 <noscript> 4514 <button type="submit" class="cart__update-button button button--secondary" form="CartDrawer-Form"> 4515 Checkout 4516 </button> 4517 </noscript> 4518 <button 4519 type="submit" 4520 id="CartDrawer-Checkout" 4521 class="cart-footer-checkout-btn" 4522 name="checkout" 4523 form="CartDrawer-Form" 4524 disabled 4525 > 4526 Secure Checkout 4527<svg xmlns="http://www.w3.org/2000/svg" width="17" height="19" viewBox="0 0 17 19" fill="none"> 4528 <path d="M8.2998 11.6609V13.5498M3.6123 7.43812C4.05426 7.41092 4.59911 7.41092 5.2998 7.41092H11.2998C12.0005 7.41092 12.5454 7.41092 12.9873 7.43812M3.6123 7.43812C3.06075 7.47202 2.66945 7.54833 2.33546 7.71975C1.80625 7.99137 1.37599 8.42478 1.10635 8.95792C0.799805 9.56406 0.799805 10.3574 0.799805 11.9442V13.2665C0.799805 14.8533 0.799805 15.6467 1.10635 16.2528C1.37599 16.7859 1.80625 17.2193 2.33546 17.491C2.93708 17.7998 3.72465 17.7998 5.2998 17.7998H11.2998C12.875 17.7998 13.6625 17.7998 14.2642 17.491C14.7934 17.2193 15.2236 16.7859 15.4932 16.2528C15.7998 15.6467 15.7998 14.8533 15.7998 13.2665V11.9442C15.7998 10.3574 15.7998 9.56406 15.4932 8.95792C15.2236 8.42478 14.7934 7.99137 14.2642 7.71975C13.9301 7.54833 13.5388 7.47202 12.9873 7.43812M3.6123 7.43812V5.52203C3.6123 2.91402 5.71097 0.799805 8.2998 0.799805C10.8886 0.799805 12.9873 2.91402 12.9873 5.52203V7.43812" stroke="black" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/> 4529</svg> 4530 </button> 4531 </div> 4532 4533 <!-- Trust badges --> 4534 <div class="cart-footer-trust"> 4535 <div class="cart-footer-trust-item"> 4536<svg xmlns="http://www.w3.org/2000/svg" width="17" height="18" viewBox="0 0 17 18" fill="none"> 4537<path d="M7.60577 1.76861C7.79881 1.1505 7.89528 0.841452 8.03804 0.755797C8.16153 0.681661 8.31021 0.681661 8.43379 0.755797C8.57646 0.841452 8.67293 1.1505 8.86597 1.76861L10.142 5.85493C10.197 6.03085 10.2244 6.11881 10.2739 6.18431C10.3176 6.24218 10.3734 6.28728 10.4364 6.31568C10.5076 6.34784 10.5912 6.34974 10.7585 6.35353L14.6441 6.44167C15.2319 6.455 15.5257 6.46168 15.643 6.58629C15.7445 6.69414 15.7905 6.85159 15.7653 7.00525C15.7363 7.18283 15.502 7.38044 15.0336 7.77586L11.9366 10.3894C11.8032 10.502 11.7366 10.5582 11.6959 10.6308C11.66 10.6951 11.6387 10.768 11.6339 10.8434C11.6284 10.9288 11.6526 11.0179 11.7011 11.1962L12.8265 15.337C12.9967 15.9634 13.0818 16.2765 13.0116 16.4392C12.9509 16.58 12.8305 16.6773 12.6914 16.6981C12.5308 16.7222 12.2895 16.5353 11.807 16.1615L8.6169 13.6906C8.47956 13.5842 8.41094 13.531 8.33631 13.5103C8.27035 13.4921 8.20139 13.4921 8.13552 13.5103C8.06089 13.531 7.99218 13.5842 7.85484 13.6906L4.66481 16.1615C4.18228 16.5353 3.94101 16.7222 3.78033 16.6981C3.64127 16.6773 3.52094 16.58 3.46016 16.4392C3.38993 16.2765 3.47505 15.9634 3.64528 15.337L4.77069 11.1962C4.81914 11.0179 4.84336 10.9288 4.83791 10.8434C4.83309 10.768 4.8118 10.6951 4.77586 10.6308C4.7352 10.5582 4.66853 10.502 4.53521 10.3894L1.43824 7.77586C0.969783 7.38044 0.735554 7.18283 0.706478 7.00525C0.681304 6.85159 0.727266 6.69414 0.828771 6.58629C0.946044 6.46168 1.23992 6.45501 1.82766 6.44167L5.71326 6.35353C5.88053 6.34974 5.96417 6.34784 6.03543 6.31568C6.09838 6.28728 6.15415 6.24218 6.19787 6.18431C6.24736 6.11881 6.27483 6.03085 6.32977 5.85493L7.60577 1.76861Z" stroke="#1E1E1E" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 4538</svg>
4539 <span>4.9 stars, 100k+<br> Reviews</span> 4540 </div> 4541 <div class="cart-footer-trust-item"> 4542<svg xmlns="http://www.w3.org/2000/svg" width="21" height="16" viewBox="0 0 21 16" fill="none"> 4543 <path d="M0 0V1.45455H12.1077V12.3636H8.18468C7.9009 11.1136 6.91515 10.1818 5.73525 10.1818C4.55534 10.1818 3.56959 11.1136 3.28582 12.3636H2.549V8.72727H1.2745V13.8182H3.28582C3.56959 15.0682 4.55534 16 5.73525 16C6.91515 16 7.9009 15.0682 8.18468 13.8182H13.4818C13.7656 15.0682 14.7513 16 15.9312 16C17.1111 16 18.0969 15.0682 18.3807 13.8182H20.392V7.88636L20.3522 7.77273L19.0777 3.40909L18.9383 2.90909H13.3822V0H0ZM0.63725 2.90909V4.36364H6.3725V2.90909H0.63725ZM13.3822 4.36364H18.0222L19.1175 8.09091V12.3636H18.3807C18.0969 11.1136 17.1111 10.1818 15.9312 10.1818C14.7513 10.1818 13.7656 11.1136 13.4818 12.3636H13.3822V4.36364ZM1.2745 5.81818V7.27273H5.098V5.81818H1.2745ZM5.73525 11.6364C6.44717 11.6364 7.00975 12.2784 7.00975 13.0909C7.00975 13.9034 6.44717 14.5455 5.73525 14.5455C5.02332 14.5455 4.46075 13.9034 4.46075 13.0909C4.46075 12.2784 5.02332 11.6364 5.73525 11.6364ZM15.9312 11.6364C16.6432 11.6364 17.2057 12.2784 17.2057 13.0909C17.2057 13.9034 16.6432 14.5455 15.9312 14.5455C15.2193 14.5455 14.6567 13.9034 14.6567 13.0909C14.6567 12.2784 15.2193 11.6364 15.9312 11.6364Z" fill="#1E1E1E"/> 4544</svg> 4545 <span>FREE <br>Shipping</span> 4546 </div> 4547 <div class="cart-footer-trust-item"> 4548<svg xmlns="http://www.w3.org/2000/svg" width="10" height="20" viewBox="0 0 10 20" fill="none"> 4549 <path d="M1.72555 13.0546C1.72555 12.8256 1.63992 12.6059 1.4875 12.444C1.33509 12.282 1.12837 12.191 0.912822 12.191C0.697274 12.191 0.490555 12.282 0.338139 12.444C0.185724 12.6059 0.100098 12.8256 0.100098 13.0546C0.101388 14.1995 0.529933 15.297 1.29173 16.1065C2.05353 16.9161 3.08638 17.3715 4.16372 17.3728V18.2365C4.16372 18.4655 4.24935 18.6852 4.40176 18.8471C4.55418 19.0091 4.7609 19.1001 4.97644 19.1001C5.19199 19.1001 5.39871 19.0091 5.55113 18.8471C5.70354 18.6852 5.78917 18.4655 5.78917 18.2365V17.3728C6.86691 17.3728 7.9005 16.9179 8.66258 16.1081C9.42466 15.2982 9.85279 14.1999 9.85279 13.0546C9.85279 11.9094 9.42466 10.811 8.66258 10.0012C7.9005 9.19141 6.86691 8.73646 5.78917 8.73646V3.55464C6.43581 3.55464 7.05597 3.82761 7.51322 4.3135C7.97046 4.79939 8.22734 5.4584 8.22734 6.14555C8.22734 6.3746 8.31297 6.59427 8.46538 6.75624C8.6178 6.9182 8.82452 7.00919 9.04006 7.00919C9.25561 7.00919 9.46233 6.9182 9.61475 6.75624C9.76716 6.59427 9.85279 6.3746 9.85279 6.14555C9.8515 5.00072 9.42295 3.90317 8.66116 3.09365C7.89936 2.28413 6.86651 1.82874 5.78917 1.82737V0.963734C5.78917 0.734683 5.70354 0.515014 5.55113 0.353051C5.39871 0.191088 5.19199 0.100098 4.97644 0.100098C4.7609 0.100098 4.55418 0.191088 4.40176 0.353051C4.24935 0.515014 4.16372 0.734683 4.16372 0.963734V1.82737C3.08598 1.82737 2.05238 2.28232 1.2903 3.09214C0.528228 3.90195 0.100098 5.0003 0.100098 6.14555C0.100098 7.29081 0.528228 8.38915 1.2903 9.19897C2.05238 10.0088 3.08598 10.4637 4.16372 10.4637V15.6456C3.51708 15.6456 2.89692 15.3726 2.43967 14.8867C1.98242 14.4008 1.72555 13.7418 1.72555 13.0546ZM5.78917 10.4637C6.43581 10.4637 7.05597 10.7367 7.51322 11.2226C7.97046 11.7085 8.22734 12.3675 8.22734 13.0546C8.22734 13.7418 7.97046 14.4008 7.51322 14.8867C7.05597 15.3726 6.43581 15.6456 5.78917 15.6456V10.4637ZM1.72555 6.14555C1.72555 5.4584 1.98242 4.79939 2.43967 4.3135C2.89692 3.82761 3.51708 3.55464 4.16372 3.55464V8.73646C3.51708 8.73646 2.89692 8.46349 2.43967 7.9776C1.98242 7.49171 1.72555 6.8327 1.72555 6.14555Z" fill="#1E1E1E" stroke="white" stroke-width="0.2"/> 4550</svg> 4551 <span>30-day money<br> back guarantee</span> 4552 </div> 4553 </div> 4554 </div> 4555 </div> 4556 </div> 4557</cart-drawer> 4558 4559<style> 4560 .cart__dots .embla__dot, 4561 .cart-page__dots .embla__dot { 4562 height: 10px; 4563 width: 10px; 4564 border-radius: 100%; 4565 background-color: #eceae5; 4566 transition: 0.3s; 4567 } 4568 4569 .cart__dots .embla__dot.is-selected, 4570 .cart-page__dots .embla__dot.is-selected { 4571 background: linear-gradient(180deg, #f8ca2a 0%, #ffbe32 100%); 4572 } 4573 4574 .cart__dots, 4575 .cart-page__dots { 4576 text-align: center; 4577 margin-top: 5px; 4578 } 4579</style> 4580
4581<script> 4582 4583 4584 4585 4586 4587 4588 function formatNumber(number){ 4589 if( Number.isInteger(number)){ 4590 return number 4591 }else{ 4592 return number.toFixed(2) 4593 } 4594 } 4595 4596 function getHashNumber() { 4597 let hash_number = localStorage.getItem(`abconvert-seed`) 4598 if (hash_number == null) { 4599 hash_number = Math.floor(Math.random() * 100).toString() 4600 localStorage.setItem(`abconvert-seed`, hash_number) 4601 } 4602 return hash_number 4603} 4604 4605 //@added by abconvert 4606 function handleAudienceFilter(urlParamsValue, { operator, value, action, groupIndex = 0 }, notMatchAction){ 4607 //trun into switch case 4608 switch (operator) { 4609 case AUDIENCE_FILTERING_OPERATOR.CONTAIN: 4610 if (urlParamsValue.includes(value)) { 4611 return handleAction({ action, groupIndex }) 4612 } else { 4613 return -1 4614 } 4615 case AUDIENCE_FILTERING_OPERATOR.NOT_CONTAIN: 4616 if (!urlParamsValue.includes(value)) { 4617 return handleAction({ action, groupIndex }) 4618 } else { 4619 return -1 4620 } 4621 case AUDIENCE_FILTERING_OPERATOR.EQUAL: 4622 if (urlParamsValue === value) { 4623 return handleAction({ action, groupIndex }) 4624 } else { 4625 return -1 4626 } 4627 case AUDIENCE_FILTERING_OPERATOR.NOT_EQUAL: 4628 if (urlParamsValue !== value) { 4629 return handleAction({ action, groupIndex }) 4630 } else { 4631 return -1 4632 } 4633 default: 4634 return -1; 4635 } 4636} 4637 4638function handleAction({ action, groupIndex = 0 }){ 4639 //rewrite the below code to switch case 4640 switch (action) { 4641 case AUDIENCE_FILTERING_ACTION.ASSIGN_TEST_GROUP: 4642 return groupIndex 4643 case AUDIENCE_FILTERING_ACTION.ASSIGN_RANDOM: 4644 return 'random' 4645 case AUDIENCE_FILTERING_ACTION.EXCLUDE: 4646 return 0 4647 default: 4648 return 0 4649 } 4650 4651} 4652 function getGroupIndex(percentages, isFilteredByCountry = false, filteredCountriesMap = null, isFilteredByAudience = false, audienceFilterList = [], audienceFilterNotMatchAction = null) { 4653 if (isFilteredByCountry) { 4654 const countryCode = getCountryCode() 4655 //@ts-ignore 4656 if (filteredCountriesMap && !filteredCountriesMap[countryCode]) { 4657 return 0 4658 } 4659 } 4660 if (isFilteredByAudience && audienceFilterList.length && audienceFilterNotMatchAction) { 4661 //@type {(number| string)} 4662 let groupIndex; 4663 groupIndex = -1; 4664 for (let i = 0; i < audienceFilterList.length; i++) { 4665 const audienceFilter = audienceFilterList[i] 4666 const trafficSource = audienceFilter.trafficSource 4667 const urlParamsValue = localStorage.getItem(trafficSource) 4668 if (urlParamsValue) { 4669 //check if the url param value match the audience filter and return the group index 4670 groupIndex = handleAudienceFilter(urlParamsValue, audienceFilter, audienceFilterNotMatchAction) 4671 } 4672 if (groupIndex != -1) break 4673 } 4674 if (groupIndex == -1) { 4675 //no match audience filter, return the not match action 4676 groupIndex = handleAction(audienceFilterNotMatchAction) 4677 4678 } 4679 if (groupIndex != 'random') { 4680 //if the group index is not random, return the group index 4681 return groupIndex 4682 } 4683 } 4684 4685 //start randomly assign group 4686 const hash_number = getHashNumber() 4687 let accumulateNumber = 0; 4688 let groupIndex; 4689 for (groupIndex = 0; groupIndex < percentages.length; ++groupIndex) { 4690 accumulateNumber += percentages[groupIndex] 4691 if (Number(hash_number) < accumulateNumber) { 4692 return groupIndex 4693 } 4694 } 4695 return groupIndex 4696} 4697 function getCountryCode() { 4698 return localStorage.getItem('abconvert-country') 4699} 4700function getPreviewCountryCode() { 4701 return window.sessionStorage.getItem('abconvert-country') 4702} 4703 function getPreviewNumber() { 4704 const url = new URLSearchParams(location.search) 4705 const previewNumber = url.get('preview') 4706 const countryCode = url.get('countryCode') 4707 if (countryCode) { 4708 window.sessionStorage.setItem('abconvert-country', countryCode) 4709 } 4710 if (previewNumber && !isNaN(Number(previewNumber))) { 4711 window.sessionStorage.setItem('abconvert-preview-number', previewNumber) 4712 return url.get('preview') 4713 } else { 4714 return window.sessionStorage.getItem('abconvert-preview-number') 4715 } 4716 4717} 4718 function _getGroupIndex(data) { 4719 let groupIndex; 4720 let previewNumber = getPreviewNumber() 4721 if (previewNumber && !isNaN(Number(previewNumber))) { 4722 if (previewNumber >= data.testPercentages.length) { 4723 groupIndex = 0 4724 } else { 4725 let showOriginal = false 4726 if (data.isFilteredByCountry && data.filteredCountriesMap) { 4727 const countryCode = getPreviewCountryCode() 4728 if (countryCode && !data.filteredCountriesMap[countryCode]) { 4729 showOriginal = true 4730 } 4731 } 4732 if (showOriginal) { 4733 groupIndex = 0 4734 } else { 4735 groupIndex = previewNumber 4736 } 4737 } 4738 } else { 4739 groupIndex = getGroupIndex(data.testPercentages, data.isFilteredByCountry, data.filteredCountriesMap, data.isFilteredByAudience, data.audienceFilterList, data.audienceFilterNotMatchAction) 4740 4741 } 4742 return groupIndex 4743 } 4744 const drawerToggleOptions = (selector) => selector.parentNode.classList.toggle("active"); 4745 4746 async function handleSubButtons(subButton, toggleButton) { 4747 let requestObject = {}, loader, quantity; 4748 if (toggleButton) { 4749 loader = toggleButton.closest(".col-span-4").parentNode.querySelector(".custom-item-loader"); 4750 quantity = toggleButton.closest(".col-span-4").parentNode.querySelector("input.quantity__input").value; 4751 if (toggleButton.checked) { 4752 const defaultSub = toggleButton.closest(".col-span-4").parentNode.querySelectorAll(".cart-sub-select")[1]; 4753 requestObject = { 4754 line: defaultSub.dataset.line, 4755 quantity, 4756 selling_plan: defaultSub.dataset.subid, 4757 } 4758 } else { 4759 requestObject = { 4760 line: toggleButton.dataset.line, 4761 quantity, 4762 selling_plan: null, 4763 } 4764 } 4765 } else { 4766 subButton.parentNode.classList.add("hidden"); 4767 loader = subButton.closest(".cart-item").querySelector(".custom-item-loader"); 4768 quantity = subButton.closest(".cart-item").querySelector("input.quantity__input").value; 4769 requestObject = { 4770 line: subButton.dataset.line, 4771 quantity, 4772 selling_plan: subButton.dataset.subid, 4773 } 4774 } 4775 4776 requestObject.sections = ["cart-drawer-new", "cart-icon-bubble"]; 4777 4778 loader.classList.remove("hidden"); 4779 const response = await fetch("/cart/change.js", { 4780 body: JSON.stringify(requestObject), 4781 credentials: "same-origin", 4782 headers: { 4783 "Content-Type": "application/json", 4784 "X-Requested-With": "xmlhttprequest", 4785 }, 4786 method: "POST", 4787 }).then(function (response) { 4788 return response; 4789 }).then(async function (res) { 4790 const json = await res.json(); 4791 const cartForm = new DOMParser().parseFromString(json.sections['cart-drawer-new'], 'text/html').getElementById('CartDrawer-Form').innerHTML; 4792 const cartBubble = new DOMParser().parseFromString(json.sections['cart-icon-bubble'], 'text/html').getElementById('shopify-section-cart-icon-bubble').innerHTML; 4793 const interestFreePaymentsStrong = new DOMParser().parseFromString(json.sections['cart-drawer-new'], 'text/html').querySelector('.interest_free_payments_strong').innerHTML; 4794 4795 const upsells = new DOMParser().parseFromString(json.sections['cart-drawer-new'], 'text/html').querySelectorAll('upsells .custom-upsell-product-data-wrapper'); 4796 document.querySelectorAll("upsells .custom-upsell-product-data-wrapper").forEach((e, i) => { 4797 e.innerHTML = upsells[i].innerHTML; 4798 }); 4799 4800 document.querySelector('#CartDrawer-Form').innerHTML = cartForm;
4801 document.querySelector('#cart-icon-bubble').innerHTML = cartBubble; 4802 document.querySelector('.interest_free_payments_strong').innerHTML = interestFreePaymentsStrong; 4803 console.log('inside drawer') 4804 handleShippingProgressbar(); 4805 loader.classList.add("hidden"); 4806 if (document.querySelector('cart-drawer').classList.contains('is-empty')) { 4807 document.querySelector('cart-drawer').classList.remove('is-empty'); 4808 document.querySelector('cart-drawer-items').classList.remove('is-empty'); 4809 document.querySelector('#CartDrawer-Checkout').disabled = false; 4810 } 4811 4812 document.querySelector('cart-drawer').open(); 4813 4814 document.querySelector('#CartDrawer-Form').scrollIntoView({block: 'start', behavior: 'smooth'}); 4815 }) 4816 .catch(function (err) { 4817 console.error(err); 4818 }); 4819 } 4820 4821 async function addShipping(object) { 4822 console.log('add shipping') 4823 fetch("/cart/add.js", { 4824 body: JSON.stringify(object), 4825 credentials: "same-origin", 4826 headers: { 4827 "Content-Type": "application/json", 4828 "X-Requested-With": "xmlhttprequest", 4829 }, 4830 method: "POST", 4831 }) 4832 .then(function (response) { 4833 return response.json(); 4834 }) 4835 .then(function (json) { 4836 document.querySelector('#CartDrawer-Checkout').click(); 4837 }) 4838 // .then(getItems()) 4839 .catch(function (err) { 4840 console.error(err); 4841 }); 4842 } 4843 4844 async function changeShipping(object) { 4845 console.log('change') 4846 fetch("/cart/change.js", { 4847 body: JSON.stringify(object), 4848 credentials: "same-origin", 4849 headers: { 4850 "Content-Type": "application/json", 4851 "X-Requested-With": "xmlhttprequest", 4852 }, 4853 method: "POST", 4854 }) 4855 .then(function (response) { 4856 return response.json(); 4857 }) 4858 .then(function (json) { 4859 document.querySelector('#CartDrawer-Checkout').click(); 4860 }) 4861 // .then(getItems()) 4862 .catch(function (err) { 4863 console.error(err); 4864 }); 4865 } 4866 4867 async function addItems(object, svg, target) { 4868 fetch(`${window.Shopify.routes.root}/cart/add.js`, { 4869 body: JSON.stringify(object), 4870 credentials: "same-origin", 4871 headers: { 4872 "Content-Type": "application/json", 4873 "X-Requested-With": "xmlhttprequest", 4874 }, 4875 method: "POST", 4876 }) 4877 .then(function (response) { 4878 return response.json(); 4879 }) 4880 .then(function (json) { 4881 const cartForm = new DOMParser().parseFromString(json.sections['cart-drawer-new'], 'text/html').getElementById('CartDrawer-Form'); 4882 const cartBubble = new DOMParser().parseFromString(json.sections['cart-icon-bubble'], 'text/html').getElementById('shopify-section-cart-icon-bubble').innerHTML; 4883 const interestFreePaymentsStrong = new DOMParser().parseFromString(json.sections['cart-drawer-new'], 'text/html').querySelector('.interest_free_payments_strong').innerHTML; 4884 4885 const upsells = new DOMParser().parseFromString(json.sections['cart-drawer-new'], 'text/html').querySelectorAll('upsells .custom-upsell-product-data-wrapper'); 4886 document.querySelectorAll("upsells .custom-upsell-product-data-wrapper").forEach((e, i) => { 4887 e.innerHTML = upsells[i].innerHTML; 4888 }); 4889 4890 document.querySelector('#CartDrawer-Form').innerHTML = cartForm.innerHTML; 4891 document.querySelector('#cart-icon-bubble').innerHTML = cartBubble; 4892 console.log('inside drawer 2') 4893 handleShippingProgressbar(); 4894 document.querySelector('.interest_free_payments_strong').innerHTML = interestFreePaymentsStrong; 4895 svg.classList.add('hidden'); 4896 if(document.querySelector('cart-drawer').classList.contains('is-empty')){ 4897 document.querySelector('cart-drawer').classList.remove('is-empty'); 4898 document.querySelector('cart-drawer-items').classList.remove('is-empty'); 4899 document.querySelector('#CartDrawer-Checkout').disabled = false;
4900 } 4901 document.querySelector('#CartDrawer-Form').scrollIntoView({ block: 'start', behavior: 'smooth' }); 4902 4903 const itemsInCart = cartForm.querySelectorAll(".cart-item").length; 4904 4905 if (target.classList.contains("custom-add-to-cart") && itemsInCart > 1) { 4906 const fbwNext = document.querySelector(".fbw-embla-wrapper .embla__button--next"); 4907 fbwNext.click(); 4908 } 4909 }) 4910 // .then(getItems()) 4911 .catch(function (err) { 4912 console.error(err); 4913 }); 4914 } 4915 const ToggleProductOpt = selector => { 4916 selector.parentNode.classList.toggle("active"); 4917 document.querySelectorAll(".productOptSelectorSellingPlans").forEach(e => e.classList.remove("active")); 4918 }; 4919 const TogglePlansOpt = selector => { 4920 selector.parentNode.classList.toggle("active"); 4921 document.querySelectorAll(".productOptSelector").forEach(e => e.classList.remove("active")); 4922 }; 4923 4924 function SelectProductOpt(option) { 4925 const selector = option.parentNode.parentNode; 4926 4927 const prices = selector.closest(".product_opt_wrapper").querySelector(".productBuyCardPrice").dataset; 4928 const priceDiv = selector.closest(".product_opt_wrapper").querySelector(".productBuyCardPrice"); 4929 4930 const subToggled = selector.closest(".product_opt_wrapper").querySelector(".productOptSubToggle").querySelector(".sr-only.peer").checked; 4931 if(window.abconvertDict){ 4932 const productId = selector.closest(".product_opt_wrapper").dataset.productId; 4933 console.log('productId: ', productId) 4934 const data = window.abconvertDict[productId]; 4935 if(data){ 4936 4937 console.log('data exisits', data) 4938 const groupIndex = _getGroupIndex(data); 4939 if(groupIndex!=0){ 4940 4941 const original2ozId = prices['4ozId'] 4942 console.log('groupIndex: ', groupIndex) 4943 const original4ozId = prices['4ozId'] 4944 console.log('original4ozId: ', original4ozId) 4945 const original8ozId = prices['8ozId'] 4946 console.log('original8ozId: ', original8ozId) 4947 const replace2ozId = data.variantToVariant[groupIndex][original2ozId] 4948 const replace4ozId = data.variantToVariant[groupIndex][original4ozId] 4949 const replace8ozId = data.variantToVariant[groupIndex][original8ozId] 4950 const replace2ozPrice = data.variantToPrice[replace2ozId] 4951 const replace4ozPrice = data.variantToPrice[replace4ozId] 4952 const replace8ozPrice = data.variantToPrice[replace8ozId] 4953 const sub2ozPrice= replace2ozPrice*0.8 4954 const sub4ozPrice= replace4ozPrice*0.8 4955 const sub8ozPrice= replace8ozPrice*0.8 4956 console.log('repalce 4oz price', replace4ozPrice) 4957 console.log('repalce 8oz price', replace8ozPrice) 4958 console.log('sub 4oz price', sub4ozPrice) 4959 console.log('sub 8oz price', sub8ozPrice) 4960 console.log('prices before change', prices) 4961 prices["2ozprice"] = `$${formatNumber(sub2ozPrice)}` 4962 prices["4ozprice"] = `$${formatNumber(sub4ozPrice)}` 4963 prices["8ozprice"] = `$${formatNumber(sub8ozPrice)}` 4964 prices["unsub2ozprice"] = `$${formatNumber(replace2ozPrice)}` 4965 prices["unsub4ozprice"] = `$${formatNumber(replace4ozPrice)}` 4966 prices["unsub8ozprice"] = `$${formatNumber(replace8ozPrice)}` 4967 console.log('prices after change', prices) 4968 selector.closest(".product_opt_wrapper").querySelector(".productBuyCardPrice").textContent = `$${formatNumber(replace8ozPrice)}` 4969 } 4970 } 4971 } 4972 if (subToggled) { 4973 if (option.innerText.includes("4oz")) { 4974 priceDiv.innerText = prices["4ozprice"]; 4975 } else if (option.innerText.includes("8oz")) { 4976 priceDiv.innerText = prices["8ozprice"] 4977 } else { 4978 priceDiv.innerText = prices["2ozprice"] 4979 }; 4980 } else { 4981 if (option.innerText.includes("4oz")) { 4982 priceDiv.innerText = prices["unsub4ozprice"]; 4983 } else if (option.innerText.includes("8oz")) { 4984 priceDiv.innerText = prices["unsub8ozprice"] 4985 } else { 4986 priceDiv.innerText = prices["unsub2ozprice"] 4987 }; 4988 } 4989 4990 selector.querySelector(".productOptSelected p").innerText = option.querySelector("p").innerText; 4991 4992 option.parentNode.querySelector(".cart-product-opt.active").classList.remove("active"); 4993 option.classList.add("active"); 4994 4995 selector.classList.remove("active"); 4996 4997 const optSellingPlansParent = option.parentNode.parentNode.nextElementSibling; 4998 const currentlyActive = optSellingPlansParent.querySelector(`.productOptSelectorSellingPlansOption.variant-${option.innerText.trim()}.active`); 4999 optSellingPlansParent.querySelector(".productOptSelectorSellingPlansSelected p").innerHTML = currentlyActive.querySelector("p").innerHTML; 5000 5001 optSellingPlansParent.querySelector(".productOptSelectorSellingPlansOptions").querySelectorAll(".productOptSelectorSellingPlansOption").forEach(e => { 5002 if (e.classList.contains(`variant-${option.innerText.trim()}`)) { 5003 e.classList.add("active-var"); 5004 } else { 5005 e.classList.remove("active-var"); 5006 } 5007 }); 5008 } 5009 5010 function SelectPlanOpt(option) { 5011 const selector = option.parentNode.parentNode; 5012 selector.querySelector(".productOptSelectorSellingPlansSelected p").innerHTML = option.querySelector("p").innerHTML; 5013 5014 option.parentNode.querySelector(".productOptSelectorSellingPlansOption.active-var.active").classList.remove("active"); 5015 option.classList.add("active"); 5016 5017 selector.classList.remove("active"); 5018 } 5019 function togglePeer(ev) { 5020 const optWrapper = ev.closest(".product_opt_wrapper"); 5021 const prices = ev.closest(".product_opt_wrapper").querySelector(".productBuyCardPrice").dataset; 5022 const selectedVariant = ev.closest(".product_opt_wrapper").querySelector(".productOptSelected p").innerText; 5023 const priceDiv = ev.closest(".product_opt_wrapper").querySelector(".productBuyCardPrice"); 5024 5025 if (ev.checked) { 5026 optWrapper.querySelector(".productOptSelectorSellingPlans").style.display = "block"; 5027 if (selectedVariant === "4oz") { 5028 priceDiv.innerText = prices["4ozprice"]; 5029 } else if (selectedVariant === "8oz") { 5030 priceDiv.innerText = prices["8ozprice"] 5031 } else { 5032 priceDiv.innerText = prices["2ozprice"] 5033 }; 5034 } else { 5035 optWrapper.querySelector(".productOptSelectorSellingPlans").style.display = "none"; 5036 if (selectedVariant === "4oz") { 5037 priceDiv.innerText = prices["unsub4ozprice"]; 5038 } else if (selectedVariant === "8oz") { 5039 priceDiv.innerText = prices["unsub8ozprice"] 5040 } else { 5041 priceDiv.innerText = prices["unsub2ozprice"] 5042 }; 5043 } 5044 } 5045 5046 document.addEventListener('DOMContentLoaded', function() { 5047 document.querySelectorAll(".cart-product-opt").forEach((item)=>{ 5048 item.addEventListener('click', (e)=>{ 5049 item.parentNode.querySelector('.cart-product-opt.active').classList.remove('active'); 5050 item.classList.add('active'); 5051 }) 5052 }) 5053 5054 document.querySelectorAll(".custom-add-to-cart-no-sub").forEach((item)=>{ 5055 item.addEventListener('click', async (e)=>{ 5056 const svg = item.querySelector('svg'); 5057 svg.classList.remove('hidden'); 5058 const variantId = item.dataset.variantId; 5059 5060 const object = { 5061 items: [ 5062 { 5063 id: variantId, 5064 quantity: 1, 5065 } 5066 ], 5067 sections: ["cart-drawer-new", "cart-icon-bubble"] 5068 } 5069 5070 addItems(object, svg, item); 5071 }) 5072 }) 5073 5074 document.querySelectorAll(".custom-add-to-cart-one-variant-sub").forEach((item)=>{ 5075 item.addEventListener('click', async (e)=>{ 5076 const svg = item.querySelector('svg'); 5077 svg.classList.remove('hidden'); 5078 const variantId = item.dataset.variantId; 5079 const sellingPlanId = item.dataset.sellingPlanId; 5080 5081 const object = { 5082 items: [ 5083 { 5084 id: variantId, 5085 quantity: 1, 5086 selling_plan: sellingPlanId, 5087 } 5088 ], 5089 sections: ["cart-drawer-new", "cart-icon-bubble"] 5090 } 5091 5092 addItems(object, svg, item); 5093 }) 5094 }) 5095 5096 document.querySelectorAll(".custom-add-to-cart").forEach((item)=>{ 5097 item.addEventListener('click', async (e)=>{ 5098 const svg = item.querySelector('svg'); 5099 svg.classList.remove('hidden'); 5100 const variantId = item.parentNode.querySelector(".cart-product-opt.active").dataset.variantId; 5101 const handle = item.parentNode.querySelector(".cart-product-opt.active").dataset.handle; 5102 const variantTitle = item.parentNode.querySelector(".cart-product-opt.active").dataset.variantTitle.replace("*",""); 5103 5104 let sellingPlan = null; 5105 5106 if (item.parentNode.querySelector(".productOptSubTogglePeer input").checked) { 5107 sellingPlan = item.parentNode.querySelector(`.productOptSelectorSellingPlansOption.variant-${variantTitle}.active`).dataset.index; 5108 } 5109 5110 const object = { 5111 items: [ 5112 { 5113 id: variantId, 5114 quantity: 1, 5115 selling_plan: sellingPlan 5116 } 5117 ], 5118 sections: ["cart-drawer-new", "cart-icon-bubble"] 5119 } 5120 5121 addItems(object, svg, item); 5122 }) 5123 }) 5124 5125 var emblaNode = document.querySelector('.embla-cart') 5126 var emblaViewport = emblaNode.querySelector('.embla__viewport'); 5127 var options = { draggable: true } 5128 5129 // Grab button nodes 5130 const prevButtonNode = document.querySelector('.embla__prev') 5131 const nextButtonNode = document.querySelector('.embla__next') 5132 5133 var embla = EmblaCarousel(emblaViewport, options) 5134 5135 emblaNode.emblaApi = embla; 5136 5137 embla.on("settle", () => { 5138 worksBestPopup.forEach(el => { 5139 el.classList.add("hidden") 5140 }) 5141 }) 5142 5143 5144 prevButtonNode.addEventListener('click', embla.scrollPrev, false) 5145 nextButtonNode.addEventListener('click', embla.scrollNext, false) 5146 5147 const cartDots = document.querySelector( 5148 ".cart__dots" 5149 ); 5150 5151 const cartDotsArray = generateDotBtns(cartDots, embla); 5152 const setSelectedDotBtn = selectDotBtn(cartDotsArray, embla); 5153 5154 setupDotBtns(cartDotsArray, embla); 5155 5156 embla.on("select", setSelectedDotBtn); 5157 embla.on("init", setSelectedDotBtn); 5158 5159 const currTime = new Date(); 5160 5161 let arrivalTime; 5162 5163 const weekday = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid
5163ay","Saturday"]; 5164 const month = ["January","February","March","April","May","June","July","August","September","October","November","December"]; 5165 5166 if (currTime.getHours() < 6){ 5167 arrivalTime = currTime.setDate(currTime.getDate() + 4); 5168 } else if(currTime.getHours() >= 6){ 5169 arrivalTime = currTime.setDate(currTime.getDate() + 5); 5170 } 5171 5172 arrivalTime = new Date(arrivalTime); 5173 5174 5175 document.querySelectorAll(".shipping-date").forEach(el => { 5176 el.innerText = `${weekday[arrivalTime.getDay()]}, ${month[arrivalTime.getMonth()]} ${arrivalTime.getDate()}`; 5177 }) 5178 5179 5180 document.querySelector('.submit-overlay')?.addEventListener('click', function(event) { 5181 document.querySelector('#CartDrawer-Checkout svg').classList.remove('hidden'); 5182 // Variant Id selected by calculated subtotal 5183 let variantId; 5184 if(Number(document.querySelector('.totals__subtotal-value b').textContent.trim().replace('$', '')) <= 49){ 5185 variantId = 42637693583538; 5186 } else{ 5187 variantId = 42637693616306; 5188 } 5189 5190 // Navidium Selling Plan names and Ids 5191 const navidiumObject = { 5192 5193 0: 2593915058, 5194 5195 0: 2593947826, 5196 5197 0: 2593980594, 5198 5199 0: 2594013362, 5200 5201 } 5202 5203 // Array of Subscroption items in cart 5204 const subCartItems = document.querySelectorAll('.cart-item:not(.isShipping) .selling_plan-id'); 5205 5206 // Find Most Frequent Sub in Cart Items 5207 5208 let freqSubCartItem = 100; 5209 5210 subCartItems.forEach((item)=>{ 5211 let currNum = Number(item.innerText.match(/\d/g).join('')); 5212 if(freqSubCartItem > currNum){ 5213 freqSubCartItem = currNum; 5214 } 5215 }) 5216 5217 const subscriptionId = navidiumObject[freqSubCartItem]; 5218 5219 if(!document.querySelector('.isShipping')){ 5220 if(subCartItems.length > 0){ 5221 addShipping({items: [ 5222 { 5223 id: variantId, 5224 quantity: 1, 5225 selling_plan: subscriptionId 5226 } 5227 ]}) 5228 5229 sessionStorage.setItem("subid", subscriptionId); 5230 } else { 5231 addShipping({items: [ 5232 { 5233 id: variantId, 5234 quantity: 1, 5235 } 5236 ]}) 5237 } 5238 } else { 5239 const cartItems = document.querySelectorAll('.cart-item'); 5240 let navidiumLine; 5241 5242 cartItems.forEach((item, index) => { 5243 if(item.classList.contains('isShipping')) { 5244 navidiumLine = index + 1; 5245 } 5246 }); 5247 if(subCartItems.length <= 0){ 5248 changeShipping({ 5249 'line': navidiumLine, 5250 'selling_plan': null 5251 }) 5252 5253 sessionStorage.removeItem("subid"); 5254 } else{ 5255 const currNavFreq = Number(document.querySelector('.isShipping .selling_plan-id')?.innerText.match(/\d/g).join('')); 5256 5257 if(currNavFreq !== freqSubCartItem){ 5258 changeShipping({ 5259 'line': navidiumLine, 5260 'selling_plan': subscriptionId 5261 }) 5262 5263 sessionStorage.setItem("subid", subscriptionId); 5264 } else{ 5265 document.querySelector('#CartDrawer-Checkout').click(); 5266 } 5267 } 5268 } 5269 }); 5270 5271 5272 function isIE() { 5273 const ua = window.navigator.userAgent; 5274 const msie = ua.indexOf('MSIE '); 5275 const trident = ua.indexOf('Trident/'); 5276 5277 return (msie > 0 || trident > 0); 5278 } 5279 5280 if (!isIE()) return; 5281 const cartSubmitInput = document.createElement('input'); 5282 cartSubmitInput.setAttribute('name', 'checkout'); 5283 cartSubmitInput.setAttribute('type', 'hidden'); 5284 document.querySelector('#cart').appendChild(cartSubmitInput); 5285 document.querySelector('#checkout').addEventListener('click', function(event) { 5286 document.querySelector('#cart').submit(); 5287 }); 5288 }); 5289</script>
5289 5290</div><section id="shopify-section-custom-announcement-bar" class="shopify-section custom-announcement-bar"><div class="fixed top-0 left-0 w-full z-[100]"> 5291 5292 <div class="upper-header"> 5293 <div class="text-center bg-gray-600"> 5294 <p class="md:block announcement-mainab announcement-text text-sm py-2 text-white leading-sm"> 5295 Dream Curls Bundle at 60% OFF! - 5296 <a href="/pages/dream-curls-5" class="font-bold">SHOP NOW</a> 5297 </p> 5298 </div> 5299 </div> 5300 5301</div> 5302 5303 5304</section> 5305 <div id="shopify-section-custom-header" class="shopify-section section-header"><link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-list-menu.css?v=151968516119678728991781941838" media="print" onload="this.media='all'"> 5306<link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-search.css?v=166522126541177260421781941836" media="print" onload="this.media='all'"> 5307<link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-menu-drawer.css?v=66236251903988809561781941836" media="print" onload="this.media='all'"> 5308<link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-cart-notification.css?v=183358051719344305851781941835" media="print" onload="this.media='all'"> 5309<link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-cart-items.css?v=165289501879405969861781941834" media="print" onload="this.media='all'"><link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-price.css?v=65402837579211014041781941835" media="print" onload="this.media='all'"> 5310 <link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-loading-overlay.css?v=167310470843593579841781941835" media="print" onload="this.media='all'"><link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-cart-drawer-new.css?v=113889239336760122541781941837" media="print" onload="this.media='all'"> 5311 <link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-cart.css?v=93083501925647814601781941835" media="print" onload="this.media='all'"> 5312 <link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-totals.css?v=86168756436424464851781941838" media="print" onload="this.media='all'"> 5313 <link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-price.css?v=65402837579211014041781941835" media="print" onload="this.media='all'"> 5314 <link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-discounts.css?v=152760482443307489271781941837" media="print" onload="this.media='all'"> 5315 <link rel="stylesheet" href="//chebeauty.com/cdn/shop/t/163/assets/component-loading-overlay.css?v=167310470843593579841781941835" media="print" onload="this.media='all'"> 5316 <noscript> 5317 <link href="//chebeauty.com/cdn/shop/t/163/assets/component-cart-drawer-new.css?v=113889239336760122541781941837" rel="stylesheet" type="text/css" media="all" /> 5318 <link href="//chebeauty.com/cdn/shop/t/163/assets/component-cart.css?v=93083501925647814601781941835" rel="stylesheet" type="text/css" media="all" /> 5319 <link href="//chebeauty.com/cdn/shop/t/163/assets/component-totals.css?v=86168756436424464851781941838" rel="stylesheet" type="text/css" media="all" /> 5320 <link href="//chebeauty.com/cdn/shop/t/163/assets/component-price.css?v=65402837579211014041781941835" rel="stylesheet" type="text/css" media="all" /> 5321 <link href="//chebeauty.com/cdn/shop/t/163/assets/component-discounts.css?v=152760482443307489271781941837" rel="stylesheet" type="text/css" media="all" /> 5322 <link href="//chebeauty.com/cdn/shop/t/163/assets/component-loading-overlay.css?v=167310470843593579841781941835" rel="stylesheet" type="text/css" media="all" /> 5323 </noscript><noscript><link href="//chebeauty.com/cdn/shop/t/163/assets/component-list-menu.css?v=151968516119678728991781941838" rel="stylesheet" type="text/css" media="all" /></noscript> 5324<noscript><link href="//chebeauty.com/cdn/shop/t/163/assets/component-search.css?v=166522126541177260421781941836" rel="stylesheet" type="text/css" media="all" /></noscript> 5325<noscript><link href="//chebeauty.com/cdn/shop/t/163/assets/component-menu-drawer.css?v=66236251903988809561781941836" rel="stylesheet" type="text/css" media="all" /></noscript> 5326<noscript><link href="//chebeauty.com/cdn/shop/t/163/assets/component-cart-notification.css?v=183358051719344305851781941835" rel="stylesheet" type="text/css" media="all" /></noscript> 5327<noscript><link href="//chebeauty.com/cdn/shop/t/163/assets/component-cart-items.css?v=165289501879405969861781941834" rel="stylesheet" type="text/css" media="all" /></noscript> 5328 5329<style> 5330 .custom_mobile_sticky_menu { 5331 transition: transform 0.15s ease-out; 5332 } 5333 header-drawer { 5334 justify-self: start; 5335 margin-left: -1.2rem; 5336 } 5337 5338 .header__heading-logo { 5339 max-width: 100px; 5340 } 5341 5342 @media screen and (min-width: 990px) { 5343 header-drawer { 5344 display: none; 5345 } 5346 } 5347 5348 .menu-drawer-container { 5349 display: flex; 5350 } 5351 5352 .list-menu { 5353 list-style: none; 5354 padding: 0; 5355 margin: 0; 5356 } 5357 5358 .list-menu--inline { 5359 display: inline-flex; 5360 flex-wrap: wrap; 5361 } 5362 5363 summary.list-menu__item { 5364 padding-right: 2.7rem; 5365 } 5366 5367 .list-menu__item { 5368 display: flex; 5369 justify-content: space-between; 5370 align-items: center; 5371 line-height: calc(1 + 0.3 / var(--font-body-scale)); 5372 } 5373 5374 .menu-drawer__menu-item.list-menu__item { 5375 opacity: 1 !important; 5376 } 5377 5378 .list-menu__item--link { 5379 text-decoration: none; 5380 padding-bottom: 1rem; 5381 padding-top: 1rem; 5382 line-height: calc(1 + 0.8 / var(--font-body-scale)); 5383 } 5384 5385 @media screen and (min-width: 750px) { 5386 5387 .list-menu__item { 5388 } 5389 5390 .list-menu__item--link { 5391 padding-bottom: 0.5rem; 5392 padding-top: 0.5rem; 5393 } 5394 } 5395 5396 .collection_list.active .collection_list_child { 5397 opacity: 1 !important; 5398 } 5399 .collection_list.active .product_dropdown { 5400 display: block !important; 5401 } 5402 .collection_list.active .svg_arrow { 5403 transform: rotate(180deg) !important; 5404 } 5405 .megamenu-product:hover p { 5406 opacity: 1 !important; 5407 } 5408</style><style data-shopify>.header { 5409 padding-top: 10px; 5410 padding-bottom: 5px; 5411 } 5412 5413 .section-header { 5414 margin-bottom: 0px; 5415 } 5416 5417 @media screen and (min-width: 750px) { 5418 .section-header { 5419 margin-bottom: 0px; 5420 } 5421 } 5422 5423 @media screen and (min-width: 990px) { 5424 .header { 5425 padding-top: 10px; 5426 padding-bottom: 10px; 5427 } 5428 }</style><svg xmlns="http://www.w3.org/2000/svg" class="hidden"> 5429 <symbol id="icon-search" viewbox="0 0 18 19" fill="none"> 5430 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/> 5431 </symbol> 5432 5433 <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17"> 5434 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 5435 </symbol> 5436</svg> 5437<sticky-header class="header-wrapper color-background-1 gradient header-wrapper--border-bottom"> 5438 5439 <header class="mt-[2.5em] md:mt-[2.35em] header header--middle-left header--mobile-center page-width header--has-menu"> 5440 <div class="flex items-center gap-x-2 md:hidden"><header-drawer data-breakpoint="tablet"> 5441 <details id="Details-menu-drawer-container" class="menu-drawer-container"> 5442 <summary class="header__icon header__icon--menu header__icon--summary link focus-inset" aria-label="Menu">
5443 <span> 5444 <svg width="28" height="28" viewBox="0 0 28 28" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-hamburger" xmlns="http://www.w3.org/2000/svg"> 5445<path d="M24.5 9.04297H3.5C3.02167 9.04297 2.625 8.6463 2.625 8.16797C2.625 7.68964 3.02167 7.29297 3.5 7.29297H24.5C24.9783 7.29297 25.375 7.68964 25.375 8.16797C25.375 8.6463 24.9783 9.04297 24.5 9.04297Z" fill="#0A0800"/> 5446<path d="M24.5 14.875H3.5C3.02167 14.875 2.625 14.4783 2.625 14C2.625 13.5217 3.02167 13.125 3.5 13.125H24.5C24.9783 13.125 25.375 13.5217 25.375 14C25.375 14.4783 24.9783 14.875 24.5 14.875Z" fill="#0A0800"/> 5447<path d="M24.5 20.707H3.5C3.02167 20.707 2.625 20.3104 2.625 19.832C2.625 19.3537 3.02167 18.957 3.5 18.957H24.5C24.9783 18.957 25.375 19.3537 25.375 19.832C25.375 20.3104 24.9783 20.707 24.5 20.707Z" fill="#0A0800"/> 5448</svg> 5449 5450 5451 </span> 5452 </summary> 5453 <div id="menu-drawer" class="gradient menu-drawer motion-reduce" tabindex="-1"> 5454 <div class="menu-drawer__inner-container"> 5455 <div class="menu-drawer__navigation-container"> 5456 <nav class="menu-drawer__navigation"> 5457 <div class="flex items-center flex-row-reverse justify-between px-4 mt-4"> 5458 <svg class="drawer_custom_close" width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 5459 <mask id="mask0_7549_47265" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="25"> 5460 <rect y="0.5" width="24" height="24" fill="#D9D9D9"/> 5461 </mask> 5462 <g mask="url(#mask0_7549_47265)"> 5463 <path d="M12 13.5543L6.92689 18.6274C6.78844 18.7658 6.6144 18.8367 6.40479 18.8399C6.19519 18.8431 6.01795 18.7723 5.87309 18.6274C5.7282 18.4825 5.65576 18.3069 5.65576 18.1005C5.65576 17.8941 5.7282 17.7184 5.87309 17.5736L10.9462 12.5005L5.87309 7.42737C5.73462 7.28892 5.66379 7.11489 5.66059 6.90527C5.65737 6.69568 5.7282 6.51844 5.87309 6.37357C6.01795 6.22869 6.19359 6.15625 6.39999 6.15625C6.60639 6.15625 6.78202 6.22869 6.92689 6.37357L12 11.4466L17.0731 6.37357C17.2115 6.23511 17.3856 6.16427 17.5952 6.16107C17.8048 6.15786 17.982 6.22869 18.1269 6.37357C18.2718 6.51844 18.3442 6.69407 18.3442 6.90047C18.3442 7.10687 18.2718 7.28251 18.1269 7.42737L13.0538 12.5005L18.1269 17.5736C18.2654 17.712 18.3362 17.8861 18.3394 18.0957C18.3426 18.3053 18.2718 18.4825 18.1269 18.6274C17.982 18.7723 17.8064 18.8447 17.6 18.8447C17.3936 18.8447 17.218 18.7723 17.0731 18.6274L12 13.5543Z" fill="#0A0800"/> 5464 </g> 5465 </svg> 5466 <a href="/"><svg width="111" height="31" viewBox="0 0 111 31" fill="none" xmlns="http://www.w3.org/2000/svg"> 5467 <g clip-path="url(#clip0_7549_47268)"> 5468 <path d="M6.9375 12.5625H7.19531C8.53906 12.5625 9.8125 12.9492 11.0156 13.7227L10.8047 15.832C10.7656 16.0742 10.6172 16.1953 10.3594 16.1953H10.3125C10.0938 16.1719 9.93359 16.0391 9.83203 15.7969C9.54297 15.1641 9.16797 14.7109 8.70703 14.4375C8.26172 14.1719 7.71094 14.0391 7.05469 14.0391H6.78516C6.01953 14.0781 5.42969 14.2969 5.01562 14.6953C4.63281 15.0703 4.34766 15.5273 4.16016 16.0664C3.96484 16.6211 3.86719 17.2383 3.86719 17.918C3.86719 18.1445 3.87891 18.3789 3.90234 18.6211C3.98047 19.7461 4.28125 20.6641 4.80469 21.375C5.49219 22.2891 6.24219 22.8047 7.05469 22.9219C7.17969 22.9453 7.3125 22.957 7.45312 22.957C8.09375 22.957 8.81641 22.7344 9.62109 22.2891C10.1211 22.0234 10.4766 21.8906 10.6875 21.8906C10.7969 21.8906 10.8984 21.9219 10.9922 21.9844C11.0625 22.0547 11.0977 22.1406 11.0977 22.2422C11.0977 22.3594 11.043 22.5352 10.9336 22.7695C10.8086 23.0352 10.6523 23.25 10.4648 23.4141C9.99609 23.8359 9.41406 24.125 8.71875 24.2812C8.03125 24.4453 7.38281 24.5273 6.77344 24.5273C5.24219 24.5195 3.95312 24.0938 2.90625 23.25C1.86719 22.4062 1.27734 21.207 1.13672 19.6523C1.10547 19.3086 1.08984 18.9688 1.08984 18.6328C1.08984 18.2031 1.11719 17.7852 1.17188 17.3789C1.28125 16.6602 1.55859 15.9453 2.00391 15.2344C2.47266 14.4766 3.13281 13.8555 3.98438 13.3711C4.84375 12.8789 5.82812 12.6094 6.9375 12.5625ZM15.832 22.2891C15.832 22.6953 16.0273 22.9688 16.418 23.1094C16.8086 23.2422 17.0039 23.457 17.0039 23.7539C17.0039 24.0742 16.8281 24.2344 16.4766 24.2344H12.5039C12.1445 24.2344 11.9648 24.0742 11.9648 23.7539C11.9648 23.457 12.1602 23.2422 12.5508 23.1094C12.9414 22.9688 13.1367 22.6953 13.1367 22.2891V9.26953C13.1367 8.87109 12.9414 8.60156 12.5508 8.46094C12.1602 8.32031 11.9648 8.09766 11.9648 7.79297C11.9648 7.47266 12.1406 7.3125 12.4922 7.3125C12.9766 7.28906 13.4609 7.21484 13.9453 7.08984C14.4375 6.95703 15.0664 6.76172 15.832 6.50391V13.6289C15.9883 13.5742 16.2305 13.4844 16.5586 13.3594C16.8867 13.2344 17.1992 13.1211 17.4961 13.0195C18.2461 12.7539 19.0195 12.582 19.8164 12.5039C19.9258 12.4961 20.0352 12.4922 20.1445 12.4922C20.8789 12.4922 21.5703 12.7383 22.2188 13.2305C23.2266 14.0039 23.7305 15.6172 23.7305 18.0703V22.2891C23.7305 22.6953 23.9258 22.9688 24.3164 23.1094C24.707 23.2422 24.9023 23.457 24.9023 23.7539C24.9023 24.0742 24.7266 24.2344 24.375 24.2344H21.5273C21.1992 24.2344 21.0352 24.1055 21.0352 23.8477V18.0703C21.0352 16.4141 20.7031 15.2617 20.0391 14.6133C19.6406 14.2227 19.1602 14.0273 18.5977 14.0273C18.2617 14.0273 17.8906 14.0938 17.4844 14.2266C17.3125 14.2891 17.0938 14.3711 16.8281 14.4727C16.5703 14.5664 16.3438 14.6523 16.1484 14.7305C15.9688 14.793 15.8633 14.832 15.832
546814.8477V22.2891ZM26.0391 17.4961C26.2656 16.0039 26.8711 14.8008 27.8555 13.8867C28.8398 12.9727 30.1367 12.5078 31.7461 12.4922H31.793C33.4258 12.4922 34.6797 12.9609 35.5547 13.8984C36.4062 14.8359 36.832 16.043 36.832 17.5195C36.8242 17.8398 36.8086 18.1016 36.7852 18.3047C36.7617 18.5078 36.5078 18.6094 36.0234 18.6094H28.8516C28.875 19.6797 29.1758 20.6094 29.7539 21.3984C30.3398 22.1797 31.0625 22.6562 31.9219 22.8281C32.1719 22.8828 32.4258 22.9102 32.6836 22.9102C33.3711 22.9102 34.0859 22.707 34.8281 22.3008C35.3281 22.0352 35.6836 21.9023 35.8945 21.9023C36.0039 21.9023 36.1055 21.9336 36.1992 21.9961C36.2773 22.0742 36.3164 22.1641 36.3164 22.2656C36.3164 22.3984 36.2578 22.5703 36.1406 22.7812C36.0391 22.9922 35.9531 23.1328 35.8828 23.2031C35.8203 23.2734 35.7617 23.3359 35.707 23.3906C34.793 24.1797 33.5625 24.5742 32.0156 24.5742C29.8594 24.5586 28.2461 23.8711 27.1758 22.5117C26.3477 21.4648 25.9336 20.2305 25.9336 18.8086C25.9336 18.3867 25.9688 17.9492 26.0391 17.4961ZM28.8633 17.2852H34.4414C34.4414 16.5195 34.2344 15.7539 33.8203 14.9883C33.4609 14.3242 32.793 13.9922 31.8164 13.9922H31.6875C30.7109 14.0234 30 14.3945 29.5547 15.1055C29.1172 15.8086 28.8867 16.5352 28.8633 17.2852ZM41.5312 22.0312C41.7734 22.2734 42.1367 22.5117 42.6211 22.7461C43.1055 22.9805 43.5312 23.1016 43.8984 23.1094H43.9688C44.0547 23.1094 44.1602 23.0859 44.2852 23.0391C44.582 22.9297 44.8672 22.8281 45.1406 22.7344C45.4141 22.6328 45.6914 22.5273 45.9727 22.418C46.0977 22.3711 46.2148 22.293 46.3242 22.1836C46.7695 21.707 47.0742 21.1211 47.2383 20.4258C47.3633 19.8633 47.4258 19.3047 47.4258 18.75C47.4258 18.5859 47.4219 18.4297 47.4141 18.2812C47.3281 17.2031 47.043 16.332 46.5586 15.668C46.0586 14.9883 45.4492 14.543 44.7305 14.332C44.4414 14.2539 44.1562 14.2148 43.875 14.2148C43.7969 14.2148 43.7227 14.2188 43.6523 14.2266C43.5039 14.2422 43.3281 14.2852 43.125 14.3555C42.9453 14.4258 42.6641 14.5312 42.2812 14.6719C41.8984 14.8125 41.6484 14.9062 41.5312 14.9531V22.0312ZM41.0859 24.082C40.9297 24.0195 40.7305 23.9492 40.4883 23.8711C40.418 23.8477 40.3555 23.8359 40.3008 23.8359C40.2617 23.8359 40.2305 23.8477 40.207 23.8711C40.0508 24.0039 39.9453 24.1016 39.8906 24.1641C39.7969 24.2969 39.6641 24.3633 39.4922 24.3633C39.4062 24.3633 39.3281 24.3477 39.2578 24.3164C38.9688 24.2148 38.8242 24.0664 38.8242 23.8711V9.26953C38.8242 8.87109 38.6289 8.60156 38.2383 8.46094C37.8477 8.32031 37.6523 8.09766 37.6523 7.79297C37.6523 7.47266 37.8281 7.3125 38.1797 7.3125C38.6641 7.28906 39.1484 7.21484 39.6328 7.08984C40.125 6.95703 40.7578 6.76172 41.5312 6.50391V13.7578L44.3438 12.7148C44.6016 12.6211 44.8398 12.5664 45.0586 12.5508C45.1445 12.5508 45.2266 12.5547 45.3047 12.5625C45.3906 12.5625 45.4805 12.5625 45.5742 12.5625C46.7773 12.625 47.8047 13.1094 48.6562 14.0156C49.4844 14.9219 49.9609 16.0156 50.0859 17.2969C50.1172 17.625 50.1328 17.9492 50.1328 18.2695C50.1328 18.6836 50.1055 19.0859 50.0508 19.4766C49.9492 20.1719 49.6836 20.8594 49.2539 21.5391C49.0117 21.9297 48.6445 22.3125 48.1523 22.6875C47.9492 22.8359 47.7227 22.957 47.4727 23.0508C46.8477 23.2773 46.2227 23.5078 45.5977 23.7422C44.9727 23.9766 44.3438 24.207 43.7109 24.4336C43.5312 24.4961 43.3633 24.5273 43.207 24.5273H43.1484C42.625 24.5039 41.9883 24.3789 41.2383 24.1523C41.1602 24.1211 41.1094 24.0977 41.0859 24.082ZM51.1641 17.4961C51.3906 16.0039 51.9961 14.8008 52.9805 13.8867C53.9648 12.9727 55.2617 12.5078 56.8711 12.4922H56.918C58.5508 12.4922 59.8047 12.9609 60.6797 13.8984C61.5312 14.8359 61.957 16.043 61.957 17.5195C61.9492 17.8398 61.9336 18.1016 61.9102 18.3047C61.8867 18.5078 61.6328 18.6094 61.1484 18.6094H53.9766C54 19.6797 54.3008 20.6094 54.8789 21.3984C55.4648 22.1797 56.1875 22.6562 57.0469 22.8281C57.2969 22.8828 57.5508 22.9102 57.8086 22.9102C58.4961 22.9102 59.2109 22.707 59.9531 22.3008C60.4531 22.0352 60.8086 21.9023 61.0195 21.9023C61.1289 21.9023 61.2305 21.9336 61.3242 21.9961C61.4023 22.0742 61.4414 22.1641 61.4414 22.2656C61.4414 22.3984 61.3828 22.5703 61.2656 22.7812C61.1641 22.9922 61.0781 23.1328 61.0078 23.2031C60.9453 23.2734 60.8867 23.3359 60.832 23.3906C59.918 24.1797 58.6875 24.5742 57.1406 24.5742C54.9844 24.5586 53.3711 23.8711 52.3008 22.5117C51.4727 21.4648 51.0586 20.2305 51.0586 18.8086C51.0586 18.3867 51.0938 17.9492 51.1641 17.4961ZM53.9883 17.2852H59.5664C59.5664 16.5195 59.3594 15.7539 58.9453 14.9883C58.5859 14.3242 57.918 13.9922 56.9414 13.9922H56.8125C55.8359 14.0234 55.125 14.3945 54.6797 15.1055C54.2422 15.8086 54.0117 16.5352 53.9883 17.2852ZM71.3906 23.3438L68.5781 24.375C68.2891 24.4766 68.043 24.5273 67.8398 24.5273H67.3477C66.1445 24.4648 65.1211 23.9883 64.2773 23.0977C63.4258 22.1914 62.9414 21.0938 62.8242 19.8047C62.793 19.4766 62.7773 19.1562 62.7773 18.8438C62.7773 18.4297 62.8047 18.0273 62.8594 17.6367C62.9609 16.9414 63.2305 16.25 63.668 15.5625C63.8789 15.1953 64.2461 14.8125 64.7695 14.4141C64.9648 14.2812 65.1797 14.1641 65.4141 14.0625C66.0469 13.8281 66.6758 13.5938 67.3008 13.3594C67.9336 13.125 68.5664 12.8906 69.1992 12.6562C69.3711 12.5938 69.5352 12.5625 69.6914 12.5625H69.7617C70.293 12.5859 70.9336 12.7188 71.6836 12.9609C71.7617 12.9844 71.8086 13.0039 71.8242 13.0195C71.9805 13.082 72.1797 13.1523 72.4219 13.2305C72.4844 13.2539 72.543 13.2656 72.5977 13.2656C72.6445 13.2656 72.6836 13.2539 72.7148 13.2305C72.8633 13.1055 72.9648 13.0039 73.0195 12.9258C73.1211 12.793 73.2578 12.7266 73.4297 12.7266C73.5156 12.7266 73.5938 12.7422 73.6641 12.7734C73.9531 12.875 74.0977 13.0234 74.0977 13.2188
5468V22.2891C74.0977 22.6953 74.293 22.9688 74.6836 23.1094C75.0742 23.2422 75.2695 23.457 75.2695 23.7539C75.2695 24.0742 75.0898 24.2344 74.7305 24.2344H71.8828C71.5547 24.2344 71.3906 24.1055 71.3906 23.8477V23.3438ZM71.3906 15.0703C71.1406 14.8359 70.7695 14.6016 70.2773 14.3672C69.793 14.1328 69.3711 14.0078 69.0117 13.9922H68.9766C68.8672 13.9922 68.75 14.0156 68.625 14.0625C68.3438 14.1641 68.0625 14.2695 67.7812 14.3789C67.5078 14.4805 67.2305 14.582 66.9492 14.6836C66.8008 14.7461 66.6836 14.8242 66.5977 14.918C66.1445 15.4023 65.8398 15.9922 65.6836 16.6875C65.5508 17.2344 65.4844 17.7734 65.4844 18.3047C65.4844 18.4688 65.4922 18.6406 65.5078 18.8203C65.5938 19.9062 65.8867 20.7852 66.3867 21.457C66.8711 22.1367 67.4727 22.5742 68.1914 22.7695C68.457 22.8477 68.7266 22.8867 69 22.8867C69.0859 22.8867 69.1719 22.8828 69.2578 22.875C69.3984 22.8594 69.5742 22.8164 69.7852 22.7461C69.9648 22.6836 70.2461 22.582 70.6289 22.4414C71.0117 22.293 71.2656 22.1953 71.3906 22.1484V15.0703ZM88.3711 22.2891C88.3711 22.6953 88.5664 22.9688 88.957 23.1094C89.3477 23.2422 89.543 23.457 89.543 23.7539C89.543 24.0742 89.3633 24.2344 89.0039 24.2344H86.1562C85.8281 24.2344 85.6641 24.1055 85.6641 23.8477V23.4609C85.5156 23.5156 85.2734 23.6094 84.9375 23.7422C84.6016 23.8672 84.2852 23.9805 83.9883 24.082C83.2461 24.332 82.4805 24.4961 81.6914 24.5742C81.5664 24.582 81.4492 24.5859 81.3398 24.5859C80.6133 24.5859 79.9297 24.3477 79.2891 23.8711C78.2734 23.0977 77.7656 21.4805 77.7656 19.0195V14.7891C77.7656 14.3984 77.5703 14.1328 77.1797 13.9922C76.7891 13.8516 76.5938 13.6289 76.5938 13.3242C76.5938 13.0039 76.7695 12.8438 77.1211 12.8438C77.6055 12.8203 78.0898 12.7422 78.5742 12.6094C79.0664 12.4766 79.6992 12.2812 80.4727 12.0234V19.0195C80.4727 20.6836 80.8047 21.8359 81.4688 22.4766C81.8672 22.8672 82.3477 23.0625 82.9102 23.0625C83.2461 23.0625 83.625 22.9922 84.0469 22.8516C84.1953 22.8047 84.4023 22.7305 84.668 22.6289C84.9336 22.5273 85.1562 22.4414 85.3359 22.3711C85.3828 22.3555 85.4492 22.332 85.5352 22.3008L85.6641 22.2539V14.7891C85.6641 14.3984 85.4688 14.1328 85.0781 13.9922C84.6875 13.8516 84.4922 13.6289 84.4922 13.3242C84.4922 13.0039 84.668 12.8438 85.0195 12.8438C85.5039 12.8203 85.9883 12.7422 86.4727 12.6094C86.9648 12.4766 87.5977 12.2812 88.3711 12.0234V22.2891ZM92.5547 14.3438C92.4609 14.3438 92.1172 14.3594 91.5234 14.3906H91.4531C91.1172 14.3906 90.9414 14.2344 90.9258 13.9219V13.8984C90.9258 13.6875 91.0508 13.5234 91.3008 13.4062C91.4492 13.3359 91.7656 13.168 92.25 12.9023C92.375 12.8398 92.5039 12.7812 92.6367 12.7266C92.6602 12.7188 92.6719 12.7109 92.6719 12.7031C92.6719 12.6953 92.6328 12.6914 92.5547 12.6914V10.9219C92.5547 10.4766 92.6523 10.1641 92.8477 9.98438C93.043 9.79688 93.4414 9.55859 94.043 9.26953C94.3008 9.14453 94.5195 9.08203 94.6992 9.08203C95.0742 9.08203 95.2617 9.26172 95.2617 9.62109V12.6445L97.7578 12.5977H97.7695C98.082 12.5977 98.2383 12.7773 98.2383 13.1367C98.2383 13.2539 98.2227 13.3984 98.1914 13.5703C98.082 14.0703 97.8086 14.3203 97.3711 14.3203L95.2617 14.3086V21.4219C95.2617 22.0625 95.4805 22.5391 95.918 22.8516C96.3633 23.1641 96.8164 23.3516 97.2773 23.4141V24.2227C95.8867 24.2227 94.75 24.1016 93.8672 23.8594C92.9922 23.6172 92.5547 22.6875 92.5547 21.0703V14.3438ZM100.09 14.6953C99.9805 14.4453 99.8203 14.25 99.6094 14.1094C99.4297 13.9922 99.2188 13.8867 98.9766 13.793C98.7344 13.6914 98.582 13.5547 98.5195 13.3828C98.4883 13.3125 98.4727 13.25 98.4727 13.1953C98.4727 12.9688 98.6211 12.8555 98.918 12.8555H102.762C103.051 12.8555 103.246 12.9766 103.348 13.2188C103.379 13.2734 103.395 13.332 103.395 13.3945C103.395 13.5742 103.281 13.7188 103.055 13.8281C102.945 13.8828 102.867 13.9766 102.82 14.1094C102.805 14.1562 102.797 14.2109 102.797 14.2734C102.797 14.3438 102.816 14.418 102.855 14.4961L105.645 21.3164L108.059 15.5273C108.121 15.3867 108.152 15.25 108.152 15.1172C108.152 14.8906 108.059 14.668 107.871 14.4492L107.355 13.8281L108.574 12.8789C108.668 12.7773 108.781 12.7266 108.914 12.7266C109.062 12.7266 109.199 12.7891 109.324 12.9141L109.98 13.582C110.152 13.7617 110.238 13.9805 110.238 14.2383C110.238 14.3711 110.211 14.5234 110.156 14.6953C110.031 15.0703 109.844 15.5117 109.594 16.0195L103.805 28.9336C103.562 29.4492 103.348 29.8828 103.16 30.2344C102.918 30.6562 102.59 30.8672 102.176 30.8672H102.129L101.168 30.832C100.848 30.7773 100.688 30.625 100.688 30.375L100.605 28.8164L101.496 28.793C101.895 28.7773 102.18 28.5977 102.352 28.2539L104.18 24.457C104.203 24.457 104.215 24.4492 104.215 24.4336C104.215 24.4023 104.188 24.3555 104.133 24.293C104.086 24.2461 104.043 24.1641 104.004 24.0469C103.965 23.9375 103.938 23.8633 103.922 23.8242L100.09 14.6953Z" fill="#0A0800"/> 5469 </g> 5470 <defs> 5471 <clipPath id="clip0_7549_47268"> 5472 <rect width="111" height="31" fill="white"/> 5473 </clipPath> 5474 </defs> 5475 </svg></a> 5476 </div> 5477 <ul class="menu-drawer__menu has-submenu list-menu mt-8 px-4" role="list"><li class="header_list_item border-b border-[#DCD9D4] hidden "> 5478 5479 <div class="flex items-center gap-x-2 justify-start"> 5480 <div> 5481 5482 </div> 5483 <a data-name="home" href="/" class="menu-drawer__menu-item list-menu__item link link--text text-black font-semibold text-base uppercase leading-normal focus-inset"> 5484 Home 5485 5486 5487 </a> 5488 </div> 5489 5490 5491 5492 </li><li class="header_list_item border-b border-[#DCD9D4] hidden "> 5493 5494 <div class="flex items-center gap-x-2 justify-start"> 5495 <div> 5496 5497 </div> 5498 <a data-name="products" href="javascript:void(0)" class="menu-drawer__menu-item list-menu__item link link--text text-black font-semibold text-base uppercase leading-normal focus-inset"> 5499 Products 5500 5501 5502 <svg class="svg_arrow rotate-180" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 5503 <mask id="mask0_7549_47274" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="32" height="32"> 5504 <rect width="32" height="32" fill="#D9D9D9"/> 5505 </mask> 5506 <g mask="url(#mask0_7549_47274)"> 5507 <path d="M16.001 19.5466C15.8488 19.5466 15.7014 19.521 15.5587 19.4697C15.4159 19.4184
550715.2822 19.3303 15.1574 19.2056L9.14456 13.1928C8.95141 12.9996 8.85825 12.7688 8.8651 12.5005C8.87192 12.2321 8.97192 12.0013 9.1651 11.8082C9.35825 11.615 9.59243 11.5184 9.86763 11.5184C10.1428 11.5184 10.377 11.615 10.5702 11.8082L16.001 17.239L21.4523 11.7877C21.6454 11.5945 21.8762 11.5013 22.1446 11.5082C22.4129 11.515 22.6437 11.615 22.8368 11.8082C23.03 12.0013 23.1266 12.2355 23.1266 12.5107C23.1266 12.7859 23.03 13.0201 22.8368 13.2133L16.8445 19.2056C16.7198 19.3303 16.5881 19.4184 16.4497 19.4697C16.3112 19.521 16.1617 19.5466 16.001 19.5466Z" fill="#0A0800"/> 5508 </g> 5509 </svg> 5510 5511 </a> 5512 </div> 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 <li class="header_list_item collection_list border-b border-[#DCD9D4]"> 5523 5524 5525 5526 5527 5528 5529 5530 <div class="collection_list_child w-full flex items-center justify-between"> 5531 <div class="flex items-center gap-x-1"> 5532 <p class="pointer-events-none menu-drawer__menu-item list-menu__item text-black font-semibold text-base uppercase leading-normal">Bestsellers</p> 5533 <svg class="pointer-events-none svg_arrow rotate-180 " width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 5534 <mask id="mask0_7549_47238" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5535 <rect width="24" height="24" transform="matrix(-1 0 0 1 24 0)" fill="#D9D9D9"/> 5536 </mask> 5537 <g mask="url(#mask0_7549_47238)"> 5538 <path d="M12.0001 14.6619C11.886 14.6619 11.7754 14.6427 11.6684 14.6042C11.5613 14.5657 11.461 14.4997 11.3674 14.4061L6.85781 9.89652C6.71295 9.75166 6.64308 9.57858 6.64821 9.3773C6.65333 9.17602 6.72833 9.00294 6.87321 8.85807C7.01808 8.71321 7.19371 8.64078 7.40011 8.64078C7.60651 8.64078 7.78215 8.71321 7.92701 8.85807L12.0001 12.9312L16.0886 8.8427C16.2335 8.69783 16.4065 8.62796 16.6078 8.63307C16.8091 8.63821 16.9821 8.71321 17.127 8.85807C17.2719 9.00294 17.3443 9.17858 17.3443 9.385C17.3443 9.5914 17.2719 9.76703 17.127 9.9119L12.6328 14.4061C12.5392 14.4997 12.4405 14.5657 12.3366 14.6042C12.2328 14.6427 12.1206 14.6619 12.0001 14.6619Z" fill="#0A0800"/> 5539 </g> 5540 </svg> 5541 </div> 5542 5543 <img class="w-[75px] h-[40px] object-contain" src="//chebeauty.com/cdn/shop/files/chebeauty-11773_medium.webp?v=1748464685" alt="icon" loading="lazy" fetchpriority="low" width="75" height="40"> 5544 </div> 5545 5546 <div class=" product_dropdown"> 5547 5548 5549 5550 <ul class="grid grid-cols-2 gap-3 pb-4 border-t border-[#F7F5F1]"> 5551 5552 <li class="text-sm my-4 font-normal leading-[16.8px] text-black hover:opacity-100 mb-0"> 5553 <a href="/products/chebe-hair-butter"> 5554 <div class="w-[80px] h-[80px] mx-auto"> 5555 <img class="w-full h-full rounded-[4px] object-contain" src="//chebeauty.com/cdn/shop/files/Chebe_Butter_1_4a4f8be7-fc39-4c85-889d-c04ef02ea55e_300x300.webp?v=1749759868" alt="" loading="lazy" fetchpriority="low" width="300" height="300"> 5556 </div>
5557 <span class="block mt-2 text-center text-black text-sm font-normal">Chebe Hair Butter</span> 5558 </a> 5559 </li> 5560 5561 <li class="text-sm my-4 font-normal leading-[16.8px] text-black hover:opacity-100 mb-0"> 5562 <a href="/products/chebe-hair-oil"> 5563 <div class="w-[80px] h-[80px] mx-auto"> 5564 <img class="w-full h-full rounded-[4px] object-contain" src="//chebeauty.com/cdn/shop/files/ChebeHairOil1_300x300.webp?v=1748766469" alt="" loading="lazy" fetchpriority="low" width="300" height="300"> 5565 </div> 5566 <span class="block mt-2 text-center text-black text-sm font-normal">Chebe Hair Oil</span> 5567 </a> 5568 </li> 5569 5570 <li class="text-sm my-4 font-normal leading-[16.8px] text-black hover:opacity-100 mb-0"> 5571 <a href="/products/rice-water-for-hair-growth"> 5572 <div class="w-[80px] h-[80px] mx-auto"> 5573 <img class="w-full h-full rounded-[4px] object-contain" src="//chebeauty.com/cdn/shop/files/RiceWater1_300x300.webp?v=1748770122" alt="" loading="lazy" fetchpriority="low" width="300" height="300"> 5574 </div> 5575 <span class="block mt-2 text-center text-black text-sm font-normal">Rice Water</span> 5576 </a> 5577 </li> 5578 5579 <li class="text-sm my-4 font-normal leading-[16.8px] text-black hover:opacity-100 mb-0"> 5580 <a href="/products/bestsellers-bundle-copy"> 5581 <div class="w-[80px] h-[80px] mx-auto"> 5582 <img class="w-full h-full rounded-[4px] object-contain" src="//chebeauty.com/cdn/shop/files/Bestsellers_Bundle_300x300.webp?v=1748774138" alt="" loading="lazy" fetchpriority="low" width="300" height="300"> 5583 </div> 5584 <span class="block mt-2 text-center text-black text-sm font-normal">Bestsellers Bundle</span> 5585 </a> 5586 </li> 5587 5588 <li class="text-sm my-4 font-normal leading-[16.8px] text-black hover:opacity-100 mb-0"> 5589 <a href="/products/chebe-shampoo"> 5590 <div class="w-[80px] h-[80px] mx-auto"> 5591 <img class="w-full h-full rounded-[4px] object-contain" src="//chebeauty.com/cdn/shop/files/ChebeShampoo1_300x300.webp?v=1748765527" alt="" loading="lazy" fetchpriority="low" width="300" height="300"> 5592 </div> 5593 <span class="block mt-2 text-center text-black text-sm font-normal">Chebe Shampoo</span> 5594 </a> 5595 </li> 5596 5597 <li class="h-[105px]"> 5598 <a href="/collections/new-all" class="h-full flex flex-col justify-center items-center gap-y-2"> 5599 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 5600 <mask id="mask0_9278_54681" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5601 <rect width="24" height="24" fill="#D9D9D9"/> 5602 </mask> 5603 <g mask="url(#mask0_9278_54681)"> 5604 <path d="M16.2496 7.80378L6.94185 17.1173C6.79314 17.266 6.61654 17.3404 6.41205 17.3404C6.20757 17.3404 6.03097 17.266 5.88225 17.1173C5.73354 16.9686 5.65918 16.792 5.65918 16.5875C5.65918 16.383 5.73354 16.2064 5.88225 16.0577L15.1958 6.74995H6.99955C6.78705 6.74995 6.60894
56046.67805 6.46521 6.53425C6.32146 6.39043 6.24958 6.21223 6.24958 5.99965C6.24958 5.78705 6.32146 5.60896 6.46521 5.46538C6.60894 5.32179 6.78705 5.25 6.99955 5.25H16.8457C17.1018 5.25 17.3164 5.33662 17.4897 5.50985C17.6629 5.68308 17.7495 5.89774 17.7495 6.15383V16C17.7495 16.2125 17.6776 16.3906 17.5338 16.5343C17.39 16.6781 17.2118 16.75 16.9992 16.75C16.7866 16.75 16.6085 16.6781 16.465 16.5343C16.3214 16.3906 16.2496 16.2125 16.2496 16V7.80378Z" fill="#0A0800"/> 5605 </g> 5606 </svg> 5607 <p class="text-black text-sm font-medium underline capitalize leading-normal"> 5608 5609 See all bestsellers 5610 5611 </p> 5612 </a> 5613 </li> 5614 </ul> 5615 </div> 5616 5617 </li> 5618 5619 <li class="header_list_item collection_list border-b border-[#DCD9D4]"> 5620 5621 5622 5623 5624 5625 5626 5627 <div class="collection_list_child w-full flex items-center justify-between"> 5628 <div class="flex items-center gap-x-1"> 5629 <p class="pointer-events-none menu-drawer__menu-item list-menu__item text-black font-semibold text-base uppercase leading-normal">Bundles</p> 5630 <svg class="pointer-events-none svg_arrow " width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 5631 <mask id="mask0_7549_47238" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5632 <rect width="24" height="24" transform="matrix(-1 0 0 1 24 0)" fill="#D9D9D9"/> 5633 </mask> 5634 <g mask="url(#mask0_7549_47238)"> 5635 <path d="M12.0001 14.6619C11.886 14.6619 11.7754 14.6427 11.6684 14.6042C11.5613 14.5657 11.461 14.4997 11.3674 14.4061L6.85781 9.89652C6.71295 9.75166 6.64308 9.57858 6.64821 9.3773C6.65333 9.17602 6.72833 9.00294 6.87321 8.85807C7.01808 8.71321 7.19371 8.64078 7.40011 8.64078C7.60651 8.64078 7.78215 8.71321 7.92701 8.85807L12.0001 12.9312L16.0886 8.8427C16.2335 8.69783 16.4065 8.62796 16.6078 8.63307C16.8091 8.63821 16.9821 8.71321 17.127 8.85807C17.2719 9.00294 17.3443 9.17858 17.3443 9.385C17.3443 9.5914 17.2719 9.76703 17.127 9.9119L12.6328 14.4061C12.5392 14.4997 12.4405 14.5657 12.3366 14.6042C12.2328 14.6427 12.1206 14.6619 12.0001 14.6619Z" fill="#0A0800"/> 5636 </g> 5637 </svg> 5638 </div> 5639 5640 <img class="w-[75px] h-[40px] object-contain" src="//chebeauty.com/cdn/shop/files/Ultimate_Hair_Growth_Bundle_medium.webp?v=1748464684" alt="icon" loading="lazy" fetchpriority="low" width="75" height="40"> 5641 </div> 5642 5643 <div class=" hidden product_dropdown"> 5644 5645 5646 5647 <ul class="grid grid-cols-2 gap-3 pb-4 border-t border-[#F7F5F1]"> 5648 5649 <li class="text-sm my-4 font-normal leading-[16.8px] text-black hover:opacity-100 mb-0"> 5650 <a href="/products/bestsellers-bundle-copy"> 5651 <div class="w-[80px] h-[80px] mx-auto"> 5652 <img class="w-full h-full rounded-[4px] object-contain" src="//chebeauty.com/cdn/shop/files/Bestsellers_Bundle_300x300.webp?v=1748774138" alt="" loading="lazy" fetchpriority="low" width="300" height="300"> 5653 </div>
5654 <span class="block mt-2 text-center text-black text-sm font-normal">Bestsellers Bundle</span> 5655 </a> 5656 </li> 5657 5658 <li class="text-sm my-4 font-normal leading-[16.8px] text-black hover:opacity-100 mb-0"> 5659 <a href="/products/ultimate-hair-growth-bundle-copy"> 5660 <div class="w-[80px] h-[80px] mx-auto"> 5661 <img class="w-full h-full rounded-[4px] object-contain" src="//chebeauty.com/cdn/shop/files/UltimateHairGrowthBundle_300x300.webp?v=1748774289" alt="" loading="lazy" fetchpriority="low" width="300" height="300"> 5662 </div> 5663 <span class="block mt-2 text-center text-black text-sm font-normal">Ultimate Hair Growth Bundle</span> 5664 </a> 5665 </li> 5666 5667 <li class="text-sm my-4 font-normal leading-[16.8px] text-black hover:opacity-100 mb-0"> 5668 <a href="/products/chebeauty-starter-pack-copy"> 5669 <div class="w-[80px] h-[80px] mx-auto"> 5670 <img class="w-full h-full rounded-[4px] object-contain" src="//chebeauty.com/cdn/shop/files/Chebe_Starter_Pack_300x300.webp?v=1748774236" alt="" loading="lazy" fetchpriority="low" width="300" height="300"> 5671 </div> 5672 <span class="block mt-2 text-center text-black text-sm font-normal">Chebeauty Starter Pack</span> 5673 </a> 5674 </li> 5675 5676 <li class="text-sm my-4 font-normal leading-[16.8px] text-black hover:opacity-100 mb-0"> 5677 <a href="/products/shampoo-conditioners-set"> 5678 <div class="w-[80px] h-[80px] mx-auto"> 5679 <img class="w-full h-full rounded-[4px] object-contain" src="//chebeauty.com/cdn/shop/files/Shampoo_ConditionersSet_1_300x300.png?v=1748872554" alt="" loading="lazy" fetchpriority="low" width="300" height="300"> 5680 </div> 5681 <span class="block mt-2 text-center text-black text-sm font-normal">Shampoo & Conditioners Set</span> 5682 </a> 5683 </li> 5684 5685 <li class="text-sm my-4 font-normal leading-[16.8px] text-black hover:opacity-100 mb-0"> 5686 <a href="/products/damage-repair-bundle"> 5687 <div class="w-[80px] h-[80px] mx-auto"> 5688 <img class="w-full h-full rounded-[4px] object-contain" src="//chebeauty.com/cdn/shop/files/DamageRepairBundle_5_300x300.png?v=1748871864" alt="" loading="lazy" fetchpriority="low" width="300" height="300"> 5689 </div> 5690 <span class="block mt-2 text-center text-black text-sm font-normal">Damage Repair Bundle</span> 5691 </a> 5692 </li> 5693 5694 <li class="h-[105px]"> 5695 <a href="/collections/new-bundles" class="h-full flex flex-col justify-center items-center gap-y-2"> 5696 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 5697 <mask id="mask0_9278_54681" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5698 <rect width="24" height="24" fill="#D9D9D9"/> 5699 </mask> 5700 <g mask="url(#mask0_9278_54681)"> 5701 <path d="M16.2496 7.80378L6.94185 17.1173C6.79314 17.266 6.61654 17.3404 6.41205 17.3404C6.20757 17.3404 6.03097 17.266 5.88225 17.1173C5.73354 16.9686 5.65918 16.792 5.65918 16.5875C5.65918 16.383 5.73354 16.2064 5.88225 16.0577L15.1958 6.74995H6.99955C6.78705 6.74995 6.60894
57016.67805 6.46521 6.53425C6.32146 6.39043 6.24958 6.21223 6.24958 5.99965C6.24958 5.78705 6.32146 5.60896 6.46521 5.46538C6.60894 5.32179 6.78705 5.25 6.99955 5.25H16.8457C17.1018 5.25 17.3164 5.33662 17.4897 5.50985C17.6629 5.68308 17.7495 5.89774 17.7495 6.15383V16C17.7495 16.2125 17.6776 16.3906 17.5338 16.5343C17.39 16.6781 17.2118 16.75 16.9992 16.75C16.7866 16.75 16.6085 16.6781 16.465 16.5343C16.3214 16.3906 16.2496 16.2125 16.2496 16V7.80378Z" fill="#0A0800"/> 5702 </g> 5703 </svg> 5704 <p class="text-black text-sm font-medium underline capitalize leading-normal"> 5705 5706 See all bundles 5707 5708 </p> 5709 </a> 5710 </li> 5711 </ul> 5712 </div> 5713 5714 </li> 5715 5716 <li class="header_list_item border-b border-[#DCD9D4]"> 5717 5718 <a class="flex items-center justify-start gap-x-1 menu-drawer__menu-item list-menu__item text-black font-semibold text-base uppercase leading-normal" href="/collections/new-all"> 5719 <span class="custom-drawer-span">All products</span> 5720 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 5721 <mask id="mask0_9268_53416" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5722 <rect width="24" height="24" fill="#D9D9D9"/> 5723 </mask> 5724 <g mask="url(#mask0_9268_53416)"> 5725 <path d="M13.5209 17.112C13.3658 16.9569 13.2908 16.7761 13.2959 16.5697C13.3011 16.3633 13.3812 16.1825 13.5363 16.0274L16.8132 12.7504H5.04783C4.83534 12.7504 4.65723 12.6785 4.51348 12.5347C4.36973 12.3909 4.29785 12.2127 4.29785 12.0001C4.29785 11.7875 4.36973 11.6095 4.51348 11.4659C4.65723 11.3223 4.83534 11.2505 5.04783 11.2505H16.8132L13.5113 7.94852C13.3626 7.80152 13.2882 7.62696 13.2882 7.42482C13.2882 7.22269 13.3658 7.04407 13.5209 6.88895C13.676 6.73382 13.8542 6.65625 14.0555 6.65625C14.2568 6.65625 14.435 6.73382 14.5901 6.88895L19.069 11.3678C19.1626 11.4614 19.2286 11.5605 19.2671 11.6652C19.3055 11.7699 19.3247 11.8821 19.3247 12.0017C19.3247 12.1214 19.3055 12.2332 19.2671 12.337C19.2286 12.4408 19.1626 12.5396 19.069 12.6331L14.5651 17.137C14.4299 17.2755 14.2608 17.3447 14.0579 17.3447C13.855 17.3447 13.676 17.2671 13.5209 17.112Z" fill="#0A0800"/> 5726 </g> 5727 </svg> 5728 </a> 5729 5730 </li> 5731 5732 <li class="header_list_item border-b border-[#DCD9D4]"> 5733 <a href="/pages/quiz" class="menu-drawer__menu-item flex items-center justify-start gap-x-2 list-menu__item text-black font-semibold text-base uppercase leading-normal focus-inset"> 5734 <span class="custom-drawer-span">Take our hair quiz</span> 5735 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 5736 <mask id="mask0_9268_53392" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5737 <rect width="24" height="24" fill="#D9D9D9"/> 5738 </mask> 5739 <g mask="url(#mask0_9268_53392)">
5740 <path d="M13.5209 17.112C13.3658 16.9569 13.2908 16.7761 13.2959 16.5697C13.3011 16.3633 13.3812 16.1825 13.5363 16.0274L16.8132 12.7504H5.04783C4.83534 12.7504 4.65723 12.6785 4.51348 12.5347C4.36973 12.3909 4.29785 12.2127 4.29785 12.0001C4.29785 11.7875 4.36973 11.6095 4.51348 11.4659C4.65723 11.3223 4.83534 11.2505 5.04783 11.2505H16.8132L13.5113 7.94852C13.3626 7.80152 13.2882 7.62696 13.2882 7.42482C13.2882 7.22269 13.3658 7.04407 13.5209 6.88895C13.676 6.73382 13.8542 6.65625 14.0555 6.65625C14.2568 6.65625 14.435 6.73382 14.5901 6.88895L19.069 11.3678C19.1626 11.4614 19.2286 11.5605 19.2671 11.6652C19.3055 11.7699 19.3247 11.8821 19.3247 12.0017C19.3247 12.1214 19.3055 12.2332 19.2671 12.337C19.2286 12.4408 19.1626 12.5396 19.069 12.6331L14.5651 17.137C14.4299 17.2755 14.2608 17.3447 14.0579 17.3447C13.855 17.3447 13.676 17.2671 13.5209 17.112Z" fill="#0A0800"/> 5741 </g> 5742 </svg> 5743 </a> 5744 </li> 5745 5746 <div class="mt-10 mb-[22px] flex items-stretch justify-center gap-x-2 max-w-[290px] mx-auto"> 5747 5748 5749 <div class="w-1/3 flex flex-col items-center justify-start gap-y-1"> 5750 <img src="//chebeauty.com/cdn/shop/files/flag_1_100x100.svg?v=1689074354" alt="icon" loading="lazy" fetchpriority="low" width="100" height="100"> 5751 <p class="text-xs text-center font-medium text-black opacity-60">Made In The USA</p> 5752 </div> 5753 5754 <div class="w-1/3 flex flex-col items-center justify-start gap-y-1"> 5755 <img src="//chebeauty.com/cdn/shop/files/psychiatry_875b72c7-08fa-44ff-aef8-0ebbc5bed7d8_100x100.svg?v=1689074354" alt="icon" loading="lazy" fetchpriority="low" width="100" height="100"> 5756 <p class="text-xs text-center font-medium text-black opacity-60">All-Natural Ingredients</p> 5757 </div> 5758 5759 <div class="w-1/3 flex flex-col items-center justify-start gap-y-1"> 5760 <img src="//chebeauty.com/cdn/shop/files/new_releases_d99d3ff9-99d8-4cb1-b209-ac298b2f4b5a_100x100.svg?v=1689074354" alt="icon" loading="lazy" fetchpriority="low" width="100" height="100"> 5761 <p class="text-xs text-center font-medium text-black opacity-60">Money-Back Guarantee</p> 5762 </div> 5763 5764 </div> 5765 5766 5767 </li><li class="header_list_item border-b border-[#DCD9D4] "> 5768 5769 <div class="flex items-center gap-x-2 justify-start"> 5770 <div> 5771 5772 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 5773 <mask id="mask0_9268_53730" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5774 <rect width="24" height="24" fill="#D9D9D9"/> 5775 </mask> 5776 <g mask="url(#mask0_9268_53730)"> 5777 <path d="M6.99998 13.75H13C13.2128 13.75 13.391 13.6782 13.5346 13.5346C13.6782 13.391 13.75 13.2128 13.75 13C13.75 12.7872 13.6782 12.609 13.5346 12.4654C13.391 12.3218 13.2128 12.25 13 12.25H6.99998C6.78716 12.25 6.60896 12.3218 6.46538 12.4654C6.32179 12.609 6.25 12.7872 6.25 13C6.25 13.2128 6.32179 13.391 6.46538 13.5346C6.60896 13.6782 6.78716 13.75 6.99998 13.75ZM6.99998 10.75H17C17.2128 10.75 17.391 10.6782 17.5346 10.5346C17.6782 10.391 17.75 10.2128 17.75 9.99998C17.75 9.78716 17.6782 9.60896 17.5346 9.46538C17.391 9.32179 17.2128 9.25 17 9.25H6.99998C6.78716 9.25 6.60896 9.32179 6.46538 9.46538C6.32179 9.60896 6.25 9.78716 6.25 9.99998C6.25 10.2128 6.32179 10.391 6.46538 10.5346C6.60896 10.6782 6.78716 10.75 6.99998 10.75ZM6.99998 7.74995H17C17.2128 7.74995 17.391 7.67816 17.5346 7.53457C17.6782 7.39099 17.75 7.21279 17.75 6.99998C17.75 6.78716 17.6782 6.60896 17.5346 6.46538C17.391 6.32179 17.2128 6.25 17 6.25H6.99998C6.78716 6.25 6.60896 6.32179 6.46538 6.46538C6.32179 6.60896 6.25 6.78716 6.25 6.99998C6.25 7.21279 6.32179 7.39099 6.46538 7.53457C6.60896 7.67816 6.78716 7.74995 6.99998 7.74995ZM6.03845 17.5L4.03655 19.5019C3.75193 19.7865 3.42469 19.8509 3.05483 19.6951C2.68494 19.5393 2.5 19.2589 2.5 18.8538V4.3077C2.5 3.80257 2.675 3.375 3.025 3.025C3.375 2.675 3.8025
57777 2.5 4.3077 2.5H19.6923C20.1974 2.5 20.625 2.675 20.975 3.025C21.325 3.375 21.5 3.80257 21.5 4.3077V15.6923C21.5 16.1974 21.325 16.625 20.975 16.975C20.625 17.325 20.1974 17.5 19.6923 17.5H6.03845ZM4.69233 16H19.6923C19.7692 16 19.8397 15.9679 19.9038 15.9038C19.9679 15.8397 20 15.7692 20 15.6923V4.3077C20 4.23077 19.9679 4.16024 19.9038 4.09613C19.8397 4.03203 19.7692 3.99998 19.6923 3.99998H4.3077C4.23077 3.99998 4.16024 4.03203 4.09613 4.09613C4.03202 4.16024 3.99998 4.23077 3.99998 4.3077V16.6923L4.69233 16Z" fill="#403F36"/> 5778 </g> 5779</svg> 5780 5781 </div> 5782 <a data-name="blog" href="/pages/blogs" class="menu-drawer__menu-item list-menu__item link link--text text-black font-semibold text-base uppercase leading-normal focus-inset"> 5783 Blog 5784 5785 5786 </a> 5787 </div> 5788 5789 5790 5791 </li><li class="header_list_item border-b border-[#DCD9D4] "> 5792 5793 <div class="flex items-center gap-x-2 justify-start"> 5794 <div> 5795 5796 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 5797 <mask id="mask0_9279_52508" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5798 <rect width="24" height="24" fill="#D9D9D9"/> 5799 </mask> 5800 <g mask="url(#mask0_9279_52508)"> 5801 <path d="M12.0003 16.75C12.2129 16.75 12.391 16.6781 12.5346 16.5343C12.6782 16.3906 12.75 16.2125 12.75 16V11.75C12.75 11.5375 12.6781 11.3594 12.5343 11.2156C12.3904 11.0719 12.2122 11 11.9997 11C11.7871 11 11.609 11.0719 11.4654 11.2156C11.3218 11.3594 11.25 11.5375 11.25 11.75V16C11.25 16.2125 11.3219 16.3906 11.4657 16.5343C11.6095 16.6781 11.7877 16.75 12.0003 16.75ZM12 9.28845C12.2288 9.28845 12.4207 9.21105 12.5755 9.05625C12.7303 8.90145 12.8077 8.70963 12.8077 8.48078C12.8077 8.25194 12.7303 8.06012 12.5755 7.9053C12.4207 7.7505 12.2288 7.6731 12 7.6731C11.7711 7.6731 11.5793 7.7505 11.4245 7.9053C11.2697 8.06012 11.1923 8.25194 11.1923 8.48078C11.1923 8.70963 11.2697 8.90145 11.4245 9.05625C11.5793 9.21105 11.7711 9.28845 12 9.28845ZM12.0016 21.5C10.6877 21.5 9.45268 21.2506 8.29655 20.752C7.1404 20.2533 6.13472 19.5765 5.2795 18.7217C4.42427 17.8669 3.74721 16.8616 3.24833 15.706C2.74944 14.5504 2.5 13.3156 2.5 12.0017C2.5 10.6877 2.74933 9.45268 3.248 8.29655C3.74667 7.1404 4.42342 6.13472 5.27825 5.2795C6.1331 4.42427 7.13834 3.74721 8.29398 3.24833C9.44959 2.74944 10.6844 2.5 11.9983 2.5C13.3122 2.5 14.5473 2.74933 15.7034 3.248C16.8596 3.74667 17.8652 4.42342 18.7205 5.27825C19.5757 6.1331 20.2527 7.13834 20.7516 8.29398C21.2505 9.44959 21.5 10.6844 21.5 11.9983C21.5 13.3122 21.2506 14.5473 20.752 15.7034C20.2533 16.8596 19.5765 17.8652 18.7217 18.7205C17.8669 19.5757 16.8616 20.2527 15.706 20.7516C14.5504 21.2505 13.3156 21.5 12.0016 21.5ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76664 19.225 7.87498 17.675 6.32498C16.125 4.77498 14.2333 3.99998 12 3.99998C9.76664 3.99998 7.87498 4.77498 6.32498 6.32498C4.77498 7.87498 3.99998 9.76664 3.99998 12C3.99998 14.2333 4.77498 16.125 6.32498 17.675C7.87498 19.225 9.76664 20 12 20Z" fill="#1C1B1F"/> 5802 </g> 5803</svg> 5804 5805 </div> 5806 <a data-name="about us" href="/pages/about-us" class="menu-drawer__menu-item list-menu__item link link--text text-black font-semibold text-base uppercase leading-normal focus-inset"> 5807 About Us 5808 5809 5810 </a> 5811 </div> 5812 5813 5814 5815 </li><li class="header_list_item border-b border-[#DCD9D4] "> 5816 5817 <div class="flex items-center gap-x-2 justify-start"> 5818 <div> 5819 5820 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 5821 <mask id="mask0_9268_53736" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5822 <rect width="24" height="24" fill="#D9D9D9"/> 5823 </mask> 5824 <g mask="url(#mask0_9268_53736)"> 5825 <path d="M6.03845 17.5L3.27307 20.2653C3.12564 20.4127 2.95994 20.4496 2.77598 20.3759C2.59199 20.3022 2.5 20.1615 2.5 19.9538V4.3077C2.5 3.80257 2.675 3.375 3.025 3.025C3.375 2.675 3.8025
58257 2.5 4.3077 2.5H19.6923C20.1974 2.5 20.625 2.675 20.975 3.025C21.325 3.375 21.5 3.80257 21.5 4.3077V15.6923C21.5 16.1974 21.325 16.625 20.975 16.975C20.625 17.325 20.1974 17.5 19.6923 17.5H6.03845ZM4.69233 16H19.6923C19.7692 16 19.8397 15.9679 19.9038 15.9038C19.9679 15.8397 20 15.7692 20 15.6923V4.3077C20 4.23077 19.9679 4.16024 19.9038 4.09613C19.8397 4.03203 19.7692 3.99998 19.6923 3.99998H4.3077C4.23077 3.99998 4.16024 4.03203 4.09613 4.09613C4.03202 4.16024 3.99998 4.23077 3.99998 4.3077V16.6923L4.69233 16ZM12 12.3211L13.7846 13.4038C13.9487 13.5077 14.1128 13.5019 14.2769 13.3865C14.441 13.2711 14.5012 13.1147 14.4577 12.9173L13.9865 10.8865L15.5711 9.5173C15.725 9.38012 15.7718 9.21858 15.7115 9.03268C15.6512 8.84678 15.5173 8.74549 15.3096 8.72883L13.2288 8.55383L12.4115 6.63845C12.3346 6.45768 12.1974 6.3673 12 6.3673C11.8025 6.3673 11.6654 6.45768 11.5885 6.63845L10.7711 8.55383L8.69038 8.72883C8.48269 8.74549 8.34872 8.84678 8.28845 9.03268C8.2282 9.21858 8.275 9.38012 8.42885 9.5173L10.0135 10.8865L9.5423 12.9173C9.49872 13.1147 9.55898 13.2711 9.72308 13.3865C9.88718 13.5019 10.0513 13.5077 10.2154 13.4038L12 12.3211Z" fill="#403F36"/> 5826 </g> 5827</svg> 5828 5829 </div> 5830 <a data-name="reviews" href="/pages/reviews" class="menu-drawer__menu-item list-menu__item link link--text text-black font-semibold text-base uppercase leading-normal focus-inset"> 5831 Reviews 5832 5833 5834 </a> 5835 </div> 5836 5837 5838 5839 </li><li class="header_list_item border-b border-[#DCD9D4]"> 5840 <div class="flex items-center gap-x-2 justify-start"> 5841 <div> 5842 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 5843 <mask id="mask0_9268_53742" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5844 <rect width="24" height="24" fill="#D9D9D9"/> 5845 </mask> 5846 <g mask="url(#mask0_9268_53742)"> 5847 <path d="M6.02308 17.2923C6.87308 16.6615 7.79903 16.1635 8.80095 15.7981C9.80287 15.4327 10.8692 15.25 12 15.25C13.1307 15.25 14.1971 15.4327 15.199 15.7981C16.2009 16.1635 17.1269 16.6615 17.9769 17.2923C18.5987 16.609 19.0913 15.8179 19.4548 14.9192C19.8182 14.0205 20 13.0474 20 12C20 9.78331 19.2208 7.89581 17.6625 6.33748C16.104
58471 4.77914 14.2166 3.99998 12 3.99998C9.78331 3.99998 7.89581 4.77914 6.33748 6.33748C4.77914 7.89581 3.99998 9.78331 3.99998 12C3.99998 13.0474 4.18171 14.0205 4.54518 14.9192C4.90864 15.8179 5.40128 16.609 6.02308 17.2923ZM12.0003 12.75C11.0873 12.75 10.3173 12.4366 9.69038 11.8099C9.06346 11.1831 8.75 10.4133 8.75 9.50028C8.75 8.58726 9.06336 7.81729 9.69008 7.19038C10.3168 6.56346 11.0867 6.25 11.9997 6.25C12.9127 6.25 13.6827 6.56336 14.3096 7.19008C14.9365 7.81681 15.25 8.58668 15.25 9.49968C15.25 10.4127 14.9366 11.1827 14.3099 11.8096C13.6831 12.4365 12.9133 12.75 12.0003 12.75ZM12 21.5C10.6807 21.5 9.44325 21.2519 8.2875 20.7557C7.13173 20.2596 6.12628 19.5839 5.27115 18.7288C4.41603 17.8737 3.7404 16.8682 3.24425 15.7125C2.74808 14.5567 2.5 13.3192 2.5 12C2.5 10.6807 2.74808 9.44325 3.24425 8.2875C3.7404 7.13173 4.41603 6.12628 5.27115 5.27115C6.12628 4.41603 7.13173 3.7404 8.2875 3.24425C9.44325 2.74808 10.6807 2.5 12 2.5C13.3192 2.5 14.5567 2.74808 15.7125 3.24425C16.8682 3.7404 17.8737 4.41603 18.7288 5.27115C19.5839 6.12628 20.2596 7.13173 20.7557 8.2875C21.2519 9.44325 21.5 10.6807 21.5 12C21.5 13.3192 21.2519 14.5567 20.7557 15.7125C20.2596 16.8682 19.5839 17.8737 18.7288 18.7288C17.8737 19.5839 16.8682 20.2596 15.7125 20.7557C14.5567 21.2519 13.3192 21.5 12 21.5ZM12 20C12.9025 20 13.7727 19.8548 14.6105 19.5644C15.4484 19.274 16.1923 18.8679 16.8423 18.3461C16.1923 17.8436 15.458 17.4519 14.6394 17.1711C13.8208 16.8903 12.941 16.75 12 16.75C11.0589 16.75 10.1775 16.8887 9.35573 17.1663C8.53393 17.4439 7.80123 17.8371 7.15765 18.3461C7.80765 18.8679 8.55157 19.274 9.3894 19.5644C10.2272 19.8548 11.0974 20 12 20ZM12 11.25C12.4974 11.25 12.9134 11.0827 13.2481 10.7481C13.5827 10.4134 13.75 9.99741 13.75 9.49998C13.75 9.00254 13.5827 8.58651 13.2481 8.25188C12.9134 7.91726 12.4974 7.74995 12 7.74995C11.5025 7.74995 11.0865 7.91726 10.7519 8.25188C10.4173 8.58651 10.25 9.00254 10.25 9.49998C10.25 9.99741 10.4173 10.4134 10.7519 10.7481C11.0865 11.0827 11.5025 11.25 12 11.25Z" fill="#403F36"/> 5848 </g> 5849</svg> 5850 </div> 5851 <a class="menu-drawer__menu-item flex items-center justify-start gap-x-2 list-menu__item text-black font-semibold text-base uppercase leading-normal focus-inset" href="/account">My account</a> 5852 </div> 5853 </li> 5854 </ul> 5855 5856
5856<script> 5857 let index = null; 5858 document.querySelectorAll(".collection_list .collection_list_child").forEach((e, i, arr) => { 5859 e.addEventListener("click", function() { 5860 if (index !== null && index !== i) { 5861 arr.forEach(el => { 5862 el.parentNode.querySelector(".product_dropdown").classList.add("hidden"); 5863 el.querySelector(".svg_arrow").classList.remove("rotate-180"); 5864 }); 5865 }; 5866 this.parentNode.querySelector(".product_dropdown").classList.toggle("hidden"); 5867 this.querySelector(".svg_arrow").classList.toggle("rotate-180"); 5868 index = i; 5869 }); 5870 }); 5871 </script>
5871 5872 <div class="menu-drawer__utility-links flex-col justify-center items-center py-0 mt-10 pb-[100px]"><a href="/account/login" class="hidden menu-drawer__account link focus-inset h5"> 5873 <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 5874<mask id="mask0_9320_55546" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="25"> 5875<rect y="0.5" width="24" height="24" fill="#D9D9D9"/> 5876</mask> 5877<g mask="url(#mask0_9320_55546)"> 5878<path d="M6.02308 17.7923C6.87308 17.1616 7.79903 16.6635 8.80095 16.2981C9.80287 15.9327 10.8692 15.75 12 15.75C13.1307 15.75 14.1971 15.9327 15.199 16.2981C16.2009 16.6635 17.1269 17.1616 17.9769 17.7923C18.5987 17.109 19.0913 16.318 19.4548 15.4193C19.8182 14.5205 20 13.5474 20 12.5C20 10.2833 19.2208 8.39584 17.6625 6.83751C16.1041 5.27917 14.2166 4.50001 12 4.50001C9.78331 4.50001 7.89581 5.27917 6.33748 6.83751C4.77914 8.39584 3.99998 10.2833 3.99998 12.5C3.99998 13.5474 4.18171 14.5205 4.54518 15.4193C4.90864 16.318 5.40128 17.109 6.02308 17.7923ZM12.0003 13.25C11.0873 13.25 10.3173 12.9366 9.69038 12.3099C9.06346 11.6832 8.75 10.9133 8.75 10.0003C8.75 9.08729 9.06336 8.31732 9.69008 7.69041C10.3168 7.06349 11.0867 6.75003 11.9997 6.75003C12.9127 6.75003 13.6827 7.06339 14.3096 7.69011C14.9365 8.31684 15.25 9.08671 15.25 9.99971C15.25 10.9127 14.9366 11.6827 14.3099 12.3096C13.6831 12.9365 12.9133 13.25 12.0003 13.25ZM12 22C10.6807 22 9.44325 21.7519 8.2875 21.2557C7.13173 20.7596 6.12628 20.0839 5.27115 19.2288C4.41603 18.3737 3.7404 17.3682 3.24425 16.2125C2.74808 15.0567 2.5 13.8192 2.5 12.5C2.5 11.1808 2.74808 9.94328 3.24425 8.78753C3.7404 7.63176 4.41603 6.62631 5.27115 5.77118C6.12628 4.91606 7.13173 4.24043 8.2875 3.74428C9.44325 3.24811 10.6807 3.00003 12 3.00003C13.3192 3.00003 14.5567 3.24811 15.7125 3.74428C16.8682 4.24043 17.8737 4.91606 18.7288 5.77118C19.5839 6.62631 20.2596 7.63176 20.7557 8.78753C21.2519 9.94328 21.5 11.1808 21.5 12.5C21.5 13.8192 21.2519 15.0567 20.7557 16.2125C20.2596 17.3682 19.5839 18.3737 18.7288 19.2288C17.8737 20.0839 16.8682 20.7596 15.7125 21.2557C14.5567 21.7519 13.3192 22 12 22ZM12 20.5C12.9025 20.5 13.7727 20.3548 14.6105 20.0644C15.4484 19.7741 16.1923 19.368 16.8423 18.8462C16.1923 18.3436 15.458 17.9519 14.6394 17.6712C13.8208 17.3904 12.941 17.25 12 17.25C11.0589 17.25 10.1775 17.3888 9.35573 17.6663C8.53393 17.9439 7.80123 18.3372 7.15765 18.8462C7.80765 19.368 8.5
58785157 19.7741 9.3894 20.0644C10.2272 20.3548 11.0974 20.5 12 20.5ZM12 11.75C12.4974 11.75 12.9134 11.5827 13.2481 11.2481C13.5827 10.9135 13.75 10.4974 13.75 10C13.75 9.50257 13.5827 9.08654 13.2481 8.75191C12.9134 8.41729 12.4974 8.24998 12 8.24998C11.5025 8.24998 11.0865 8.41729 10.7519 8.75191C10.4173 9.08654 10.25 9.50257 10.25 10C10.25 10.4974 10.4173 10.9135 10.7519 11.2481C11.0865 11.5827 11.5025 11.75 12 11.75Z" fill="#1C1B1F"/> 5879</g> 5880</svg> 5881 5882Log in</a><ul class="flex items-center justify-center gap-x-4"> 5883 5884 5885 <li> 5886 <a href="#"> 5887 <img src="//chebeauty.com/cdn/shop/files/Facebook_300x300.svg?v=1689079325" alt="social icon" loading="lazy" fetchpriority="low" width="300" height="300"> 5888 </a> 5889 </li> 5890 5891 <li> 5892 <a href="#"> 5893 <img src="//chebeauty.com/cdn/shop/files/Instagram_300x300.svg?v=1689079324" alt="social icon" loading="lazy" fetchpriority="low" width="300" height="300"> 5894 </a> 5895 </li> 5896 5897 <li> 5898 <a href="#"> 5899 <img src="//chebeauty.com/cdn/shop/files/TikTok_8b058ff5-7ffe-4791-8f20-47f496102f29_300x300.svg?v=1689079328" alt="social icon" loading="lazy" fetchpriority="low" width="300" height="300"> 5900 </a> 5901 </li> 5902 5903 <li> 5904 <a href="#"> 5905 <img src="//chebeauty.com/cdn/shop/files/Youtube_300x300.svg?v=1689079325" alt="social icon" loading="lazy" fetchpriority="low" width="300" height="300"> 5906 </a> 5907 </li> 5908 5909 </ul> 5910 </div> 5911 </nav> 5912 </div> 5913 </div> 5914 </div> 5915 </details> 5916 </header-drawer><details-modal class="header__search"> 5917 <details> 5918 <summary class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" aria-haspopup="dialog" aria-label="Search"> 5919 <span> 5920 <svg 5921 width="24" 5922 height="24" 5923 viewBox="0 0 24 24" 5924 fill="none" 5925 class="modal__toggle-open icon icon-search" 5926 xmlns="http://www.w3.org/2000/svg" 5927> 5928 <mask id="mask0_12021_20322" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5929 <rect width="24" height="24" fill="#D9D9D9"/> 5930 </mask> 5931 <g mask="url(#mask0_12021_20322)"> 5932 <path d="M9.51922 15.6154C7.81154 15.6154 6.3654 15.0231 5.1808 13.8385C3.99618 12.6538 3.40387 11.2077 3.40387 9.5C3.40387 7.79232 3.99618 6.34617 5.1808 5.16155C6.3654 3.97695 7.81154 3.38465 9.51922 3.38465C11.2269 3.38465 12.6731 3.97695 13.8577 5.16155C15.0423 6.34617 15.6346 7.79232 15.6346 9.5C15.6346 10.2141 15.5147 10.8962 15.275 11.5462C15.0352 12.1962 14.7153 12.7615 14.3153 13.2423L20.0692 18.9962C20.2077 19.1346 20.2785 19.3087 20.2817 19.5183C20.2849 19.7279 20.2141 19.9051 20.0692 20.05C19.9243 20.1948 19.7487 20.2673 19.5423 20.2673C19.3359 20.2673 19.1603 20.1948 19.0154 20.05L13.2615 14.2961C12.7615 14.7089 12.1865 15.032 11.5365 15.2654C10.8865 15.4987 10.2141 15.6154 9.51922 15.6154ZM9.51922 14.1154C10.8077 14.1154 11.899 13.6683 12.7933 12.7741C13.6875 11.8798 14.1346 10.7885 14.1346 9.5C14.1346 8.21153 13.6875 7.12019 12.7933 6.22595C11.899 5.33172 10.8077 4.8846 9.51922 4.8846C8.23076 4.8846 7.13941 5.33172 6.24517 6.22595C5.35096 7.12019 4.90385 8.21153 4.90385 9.5C4.90385 10.7885 5.35096 11.8798 6.24517 12.7741C7.13941 13.6683 8.23076 14.1154 9.51922 14.1154Z" fill="#0A0800"/> 5933 </g> 5934</svg> 5935 5936 <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 5937 <use href="#icon-close"> 5938 </svg> 5939 </span> 5940 </summary> 5941 <div class="search-modal modal__content gradient" role="dialog" aria-modal="true" aria-label="Search"> 5942 <div class="modal-overlay"></div> 5943 <div class="search-modal__content search-modal__content-bottom" tabindex="-1"><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form"> 5944 <div class="field"> 5945 <input class="search__input field__input" 5946 id="Search-In-Modal" 5947 type="search" 5948 name="q" 5949 value="" 5950 placeholder="Search"role="combobox" 5951 aria-expanded="false" 5952 aria-owns="predictive-search-results-list" 5953 aria-controls="predictive-search-results-list" 5954 aria-haspopup="listbox"
5955 aria-autocomplete="list" 5956 autocorrect="off" 5957 autocomplete="off" 5958 autocapitalize="off" 5959 spellcheck="false"> 5960 <label class="field__label" for="Search-In-Modal">Search</label> 5961 <input type="hidden" name="options[prefix]" value="last"> 5962 <button class="search__button field__button" aria-label="Search"> 5963 <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation"> 5964 <use href="#icon-search"> 5965 </svg> 5966 </button> 5967 </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search> 5968 <div class="predictive-search__loading-state"> 5969 <svg aria-hidden="true" focusable="false" role="presentation" class="spinner" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"> 5970 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 5971 </svg> 5972 </div> 5973 </div> 5974 5975 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="Close"> 5976 <svg class="icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 5977 <use href="#icon-close"> 5978 </svg> 5979 </button> 5980 </div> 5981 </div> 5982 </details> 5983 </details-modal> 5984 </div><a href="/" class="header__heading-link link link--text focus-inset min-w-[145px] w-[145px]"><img src="//chebeauty.com/cdn/shop/t/163/assets/chebeauty.svg?v=16074486766382050901781941834" alt="logo" loading="lazy" fetchpriority="low" width="145" height="auto"></a><nav class="header__inline-menu"> 5985 <ul class="list-menu list-menu--inline" role="list"><li><a data-name="home" href="/" class="header__menu-item list-menu__item link link--text focus-inset"> 5986 <span>Home</span> 5987 </a></li><li><a data-name="products" href="/collections/new-all" class="header__menu-item list-menu__item link link--text focus-inset"> 5988 <span>Products</span> 5989 </a></li><li><a data-name="blog" href="/pages/blogs" class="header__menu-item list-menu__item link link--text focus-inset"> 5990 <span>Blog</span> 5991 </a></li><li><a data-name="about us" href="/pages/about-us" class="header__menu-item list-menu__item link link--text focus-inset"> 5992 <span>About Us</span> 5993 </a></li><li><a data-name="reviews" href="/pages/reviews" class="header__menu-item list-menu__item link link--text focus-inset"> 5994 <span>Reviews</span> 5995 </a></li></ul> 5996 </nav><div class="header__icons items-center"> 5997 <a href="/pages/quiz"> 5998 <button 5999 class="py-3 border border-[#E0A200] bg-[#FFF6E0] text-center hover:border-[#CC9300] hover:bg-[#FFF1CC] active:border-[#CC9300] active:bg-[#FFF6E0] capitalize font-medium text-black rounded-[10px] take-quiz-header mr-6 ml-8 px-6 text-xs">take quiz 6000</button> 6001 </a> 6002 <details-modal class="header__search"> 6003 <details> 6004 <summary class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle small-hide" aria-haspopup="dialog" aria-label="Search"> 6005 <span> 6006 <svg 6007 width="24" 6008 height="24" 6009 viewBox="0 0 24 24" 6010 fill="none" 6011 class="modal__toggle-open icon icon-search" 6012 xmlns="http://www.w3.org/2000/svg" 6013> 6014 <mask id="mask0_12021_20322" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 6015 <rect width="24" height="24" fill="#D9D9D9"/> 6016 </mask> 6017 <g mask="url(#mask0_12021_20322)"> 6018 <path d="M9.51922 15.6154C7.81154 15.6154 6.3654 15.0231 5.1808 13.8385C3.99618 12.6538 3.40387 11.2077 3.40387 9.5C3.40387 7.79232 3.99618 6.34617 5.1808 5.16155C6.3654 3.97695 7.81154 3.38465 9.51922 3.38465C11.2269 3.38465 12.6731 3.97695 13.8577 5.16155C15.0423 6.34617 15.6346 7.79232 15.6346 9.5C15.6346 10.2141 15.5147 10.8962 15.275 11.5462C15.0352 12.1962 14.7153 12.7615 14.3153 13.2423L20.0692 18.9962C20.2077 19.1346 20.2785 19.3087 20.2817 19.5183C20.2849 19.7279 20.2141 19.9051 20.0692 20.05C19.9243 20.1948 19.7487 20.2673 19.5423 20.2673C19.3359 20.2673 19.1603 20.1948 19.0154 20.05L13.2615 14.2961C12.7615 14.7089 12.1865 15.032 11.5365 15.2654C10.8865 15.4987 10.2141 15.6154 9.51922 15.6154ZM9.51922 14.1154C10.8077 14.1154 11.899 13.6683 12.7933 12.7741C13.6875 11.8798 14.1346 10.7885 14.1346 9.5C14.1346 8.21153 13.6875 7.12019 12.7933 6.22595C11.899 5.33172 10.8077 4.8846 9.51922 4.8846C8.23076 4.8846 7.13941 5.33172 6.24517 6.22595C5.35096 7.12019 4.90385 8.21153 4.90385 9.5C4.90385 10.7885 5.35096 11.8798 6.24517 12.7741C7.13941 13.6683 8.23076 14.1154 9.51922 14.1154Z" fill="#0A0800"/> 6019 </g> 6020</svg> 6021 6022 <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 6023 <use href="#icon-close"> 6024 </svg> 6025 </span> 6026 </summary> 6027 <div class="search-modal modal__content gradient" role="dialog" aria-modal="true" aria-label="Search"> 6028 <div class="modal-overlay"></div> 6029 <div class="search-modal__content search-modal__content-bottom" tabindex="-1"><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form"> 6030 <div class="field"> 6031 <input class="search__input field__input" 6032 id="Search-In-Modal" 6033 type="search" 6034 name="q" 6035 value="" 6036 placeholder="Search"role="combobox" 6037 aria-expanded="false" 6038 aria-owns="predictive-search-results-list" 6039 aria-controls="predictive-search-results-list" 6040 aria-haspopup="listbox"
6041 aria-autocomplete="list" 6042 autocorrect="off" 6043 autocomplete="off" 6044 autocapitalize="off" 6045 spellcheck="false"> 6046 <label class="field__label" for="Search-In-Modal">Search</label> 6047 <input type="hidden" name="options[prefix]" value="last"> 6048 <button class="search__button field__button" aria-label="Search"> 6049 <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation"> 6050 <use href="#icon-search"> 6051 </svg> 6052 </button> 6053 </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search> 6054 <div class="predictive-search__loading-state"> 6055 <svg aria-hidden="true" focusable="false" role="presentation" class="spinner" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"> 6056 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 6057 </svg> 6058 </div> 6059 </div> 6060 6061 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="Close"> 6062 <svg class="icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 6063 <use href="#icon-close"> 6064 </svg> 6065 </button> 6066 </div> 6067 </div> 6068 </details> 6069 </details-modal><a href="/account/login" class="header__icon header__icon--account mr-1 link focus-inset md:mr-3"> 6070 <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 6071<mask id="mask0_9320_55546" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="25"> 6072<rect y="0.5" width="24" height="24" fill="#D9D9D9"/> 6073</mask> 6074<g mask="url(#mask0_9320_55546)"> 6075<path d="M6.02308 17.7923C6.87308 17.1616 7.79903 16.6635 8.80095 16.2981C9.80287 15.9327 10.8692 15.75 12 15.75C13.1307 15.75 14.1971 15.9327 15.199 16.2981C16.2009 16.6635 17.1269 17.1616 17.9769 17.7923C18.5987 17.109 19.0913 16.318 19.4548 15.4193C19.8182 14.5205 20 13.5474 20 12.5C20 10.2833 19.2208 8.39584 17.6625 6.83751C16.1041 5.27917 14.2166 4.50001 12 4.50001C9.78331 4.50001 7.89581 5.27917 6.33748 6.83751C4.77914 8.39584 3.99998 10.2833 3.99998 12.5C3.99998 13.5474 4.18171 14.5205 4.54518 15.4193C4.90864 16.318 5.40128 17.109 6.02308 17.7923ZM12.0003 13.25C11.0873 13.25 10.3173 12.9366 9.69038 12.3099C9.06346 11.6832 8.75 10.9133 8.75 10.0003C8.75 9.08729 9.06336 8.31732 9.69008 7.69041C10.3168 7.06349 11.0867 6.75003 11.9997 6.75003C12.9127 6.75003 13.6827 7.06339 14.3096 7.69011C14.9365 8.31684 15.25 9.08671 15.25 9.99971C15.25 10.9127 14.9366 11.6827 14.3099 12.3096C13.6831 12.9365 12.9133 13.25 12.0003 13.25ZM12 22C10.6807 22 9.44325 21.7519 8.2875 21.2557C7.13173 20.7596 6.12628 20.0839 5.27115 19.2288C4.41603 18.3737 3.7404 17.3682 3.24425 16.2125C2.74808 15.0567 2.5 13.8192 2.5 12.5C2.5 11.1808 2.74808 9.94328 3.24425 8.78753C3.7404 7.63176 4.41603 6.62631 5.27115 5.77118C6.12628 4.91606 7.13173 4.24043 8.2875 3.74428C9.44325 3.24811 10.6807 3.00003 12 3.00003C13.3192 3.00003 14.5567 3.24811 15.7125 3.74428C16.8682 4.24043 17.8737 4.91606 18.7288 5.77118C19.5839 6.62631 20.2596 7.63176 20.7557 8.78753C21.2519 9.94328 21.5 11.1808 21.5 12.5C21.5 13.8192 21.2519 15.0567 20.7557 16.2125C20.2596 17.3682 19.5839 18.3737 18.7288 19.2288C17.8737 20.0839 16.8682 20.7596 15.7125 21.2557C14.5567 21.7519 13.3192 22 12 22ZM12 20.5C12.9025 20.5 13.7727 20.3548 14.6105 20.0644C15.4484 19.7741 16.1923 19.368 16.8423 18.8462C16.1923 18.3436 15.458 17.9519 14.6394 17.6712C13.8208 17.3904 12.941 17.25 12 17.25C11.0589 17.25 10.1775 17.3888 9.35573 17.6663C8.53393 17.9439 7.80123 18.3372 7.15765 18.8462C7.80765 19.368 8.5
60755157 19.7741 9.3894 20.0644C10.2272 20.3548 11.0974 20.5 12 20.5ZM12 11.75C12.4974 11.75 12.9134 11.5827 13.2481 11.2481C13.5827 10.9135 13.75 10.4974 13.75 10C13.75 9.50257 13.5827 9.08654 13.2481 8.75191C12.9134 8.41729 12.4974 8.24998 12 8.24998C11.5025 8.24998 11.0865 8.41729 10.7519 8.75191C10.4173 9.08654 10.25 9.50257 10.25 10C10.25 10.4974 10.4173 10.9135 10.7519 11.2481C11.0865 11.5827 11.5025 11.75 12 11.75Z" fill="#1C1B1F"/> 6076</g> 6077</svg> 6078 6079 <span class="visually-hidden">Log in</span> 6080 </a><a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble"><svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 6081<mask id="mask0_9320_55549" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="25"> 6082<rect y="0.5" width="24" height="24" fill="#D9D9D9"/> 6083</mask> 6084<g mask="url(#mask0_9320_55549)"> 6085<path d="M5.3077 22C4.80898 22 4.38302 21.8234 4.02982 21.4701C3.67661 21.1169 3.5 20.691 3.5 20.1923V8.80771C3.5 8.309 3.67661 7.88304 4.02982 7.52984C4.38302 7.17662 4.80898 7.00001 5.3077 7.00001H7.5C7.5 5.75131 7.93782 4.68915 8.81345 3.81351C9.6891 2.93788 10.7513 2.50006 12 2.50006C13.2487 2.50006 14.3109 2.93788 15.1865 3.81351C16.0621 4.68915 16.5 5.75131 16.5 7.00001H18.6923C19.191 7.00001 19.6169 7.17662 19.9701 7.52984C20.3233 7.88304 20.5 8.309 20.5 8.80771V20.1923C20.5 20.691 20.3233 21.1169 19.9701 21.4701C19.6169 21.8234 19.191 22 18.6923 22H5.3077ZM5.3077 20.5H18.6923C18.7692 20.5 18.8397 20.4679 18.9038 20.4038C18.9679 20.3397 19 20.2692 19 20.1923V8.80771C19 8.73078 18.9679 8.66025 18.9038 8.59614C18.8397 8.53204 18.7692 8.49999 18.6923 8.49999H5.3077C5.23077 8.49999 5.16024 8.53204 5.09612 8.59614C5.03202 8.66025 4.99997 8.73078 4.99997 8.80771V20.1923C4.99997 20.2692 5.03202 20.3397 5.09612 20.4038C5.16024 20.4679 5.23077 20.5 5.3077 20.5ZM8.99998 7.00001H15C15 6.16668 14.7083 5.45834 14.125 4.87501C13.5416 4.29168 12.8333 4.00001 12 4.00001C11.1666 4.00001 10.4583 4.29168 9.87498 4.87501C9.29164 5.45834 8.99998 6.16668 8.99998 7.00001ZM11.9846 14C13.1154 14 14.131 13.6173 15.0317 12.8519C15.9323 12.0865 16.3775 11.2179 16.3672 10.2461C16.3672 10.0397 16.298 9.86376 16.1596 9.71826C16.0211 9.57274 15.8455 9.49999 15.6327 9.49999C15.457 9.49999 15.3 9.56056 15.1615 9.68171C15.0231 9.80286 14.925 9.97177 14.8673 10.1884C14.7224 10.8666 14.3769 11.4214 13.8308 11.8529C13.2846 12.2843 12.6692 12.5 11.9846 12.5C11.3 12.5 10.682 12.2843 10.1308 11.8529C9.57947 11.4214 9.23652 10.8666 9.1019 10.1884C9.0442 9.96152 8.95125 9.79004 8.82305 9.67401C8.69485 9.55799 8.54293 9.49999 8.3673 9.49999C8.15448 9.49999 7.97628 9.57274 7.8327 9.71826C7.68912 9.86376 7.61733 10.0397 7.61733 10.2461C7.61733 11.2179 8.06251 12.0865 8.95288 12.8519C9.84326 13.6173 10.8538 14 11.9846 14Z" fill="#1C1B1F"/> 6086</g> 6087</svg> 6088<span class="visually-hidden">Cart</span></a> 6089 </div> 6090 </header> 6091 <div class="bg-[#FFFBEC] absolute hidden lg:block w-full megamenu mega-hidden shadow-[0_4px_8px_#0A080014]" data-name='products'> 6092 <div class="pt-6 pb-6 page-width max-w-[1300px] w-full flex justify-between mx-auto"> 6093 <ul class="flex items-start justify-between gap-x-4 w-[60%]"> 6094 6095 6096 6097 6098 6099 6100 6101 <a href="/collections/new-all" class="block text-sm text-black leading-[19.4px] py-2 cursor-pointer hover:opacity-100 font-semibold">All products</a> 6102 6103 6104 6105 6106 6107 6108 6109 <li class="mega-titles w-auto text-sm text-black leading-[19.4px] py-2 font-medium cursor-pointer hover:opacity-100"> 6110 <a href="/collections/bestsellers" class="font-semibold block mb-[10px]">Bestsellers</a> 6111 <div class="mega-products"> 6112 6113 <a class="block font-normal text-[#626055] hover:text-black py-[6px]" href="/products/chebe-hair-butter">Chebe Hair Butter</a> 6114 6115 <a class="block font-normal text-[#626055] hover:text-black py-[6px]" href="/products/chebe-hair-oil">Chebe Hair Oil</a> 6116 6117 <a class="block font-normal text-[#626055] hover:text-black py-[6px]" href="/products/rice-water-for-hair-growth">Rice Water</a> 6118 6119 <a class="block font-normal text-[#626055] hover:text-black py-[6px]" style="display: none !important;" href="/products/bestsellers-bundle-copy">Bestsellers Bundle</a> 6120 6121 <a class="block font-normal text-[#626055] hover:text-black py-[6px]" href="/products/chebe-shampoo">Chebe Shampoo</a> 6122 6123 </div> 6124 </li> 6125 6126 6127 6128 6129 6130 6131 6132 <li class="mega-titles w-auto text-sm text-black leading-[19.4px] py-2 font-medium cursor-pointer hover:opacity-100"> 6133 <a href="/collections/new-bundles" class="font-semibold block mb-[10px]">Bundles</a> 6134 <div class="mega-products"> 6135 6136 <a class="block font-normal text-[#626055] hover:text-black py-[6px]" href="/products/bestsellers-bundle-copy">Bestsellers Bundle</a> 6137 6138 <a class="block font-normal text-[#626055] hover:text-black py-[6px]" href="/products/ultimate-hair-growth-bundle-copy">Ultimate Hair Growth Bundle</a> 6139 6140 <a class="block font-normal text-[#626055] hover:text-black py-[6px]" href="/products/chebeauty-starter-pack-copy">Chebeauty Starter Pack</a> 6141 6142 <a class="block font-normal text-[#626055] hover:text-black py-[6px]" href="/products/shampoo-conditioners-set">Shampoo & Conditioners Set</a> 6143 6144 <a class="block font-normal text-[#626055] hover:text-black py-[6px]" href="/products/damage-repair-bundle">
6144Damage Repair Bundle</a> 6145 6146 </div> 6147 </li> 6148 6149 6150 </ul> 6151 <ul class="flex items-start justify-center gap-x-4 pt-2 -mr-[20px]"> 6152 6153 6154 6155 <li class="megamenu-product"> 6156 <a href="/products/bestsellers-bundle-copy" class="block w-[200px]"> 6157 <img class="w-full h-[200px] object-cover object-center rounded-[10px]" src="//chebeauty.com/cdn/shop/files/Bestsellers_Bundle_500x500.webp?v=1748774138" alt="Bestsellers Bundle" width=500 height=500 loading="lazy"> 6158 <p class="mt-3 text-sm leading-[19.8px] font-semibold text-black opacity-80">Bestsellers Bundle</p> 6159 </a> 6160 </li> 6161 6162 6163 <li class="megamenu-product"> 6164 <a href="/products/ultimate-hair-growth-bundle-copy" class="block w-[200px]"> 6165 <img class="w-full h-[200px] object-cover object-center rounded-[10px]" src="//chebeauty.com/cdn/shop/files/UltimateHairGrowthBundle_500x500.webp?v=1748774289" alt="Ultimate Hair Growth Bundle" width=500 height=500 loading="lazy"> 6166 <p class="mt-3 text-sm leading-[19.8px] font-semibold text-black opacity-80">Ultimate Hair Growth Bundle</p> 6167 </a> 6168 </li> 6169 6170 </ul> 6171 </div> 6172 </div> 6173 <div class="bg-[#FFFBEC] absolute w-full megamenu mega-hidden" data-name='bundles'> 6174 <div class="py-2 pb-6 page-width"> 6175 <ul class="flex justify-around items-end text-center"> 6176 6177 <li> 6178 <a href="/products/hair-growth-booster-bundle"> 6179 <img class="max-w-[120px] mx-auto mix-blend-multiply" style="transform: translate3d(0,0,0);" src="//chebeauty.com/cdn/shop/files/8oz-chebe-pastre.png?v=1695294930&width=400" alt="Hair Growth Booster Bundle" width=400 height=400 loading="lazy"/> 6180 <span class="block font-medium text-sm" href="/products/hair-growth-booster-bundle">Hair Growth Booster Bundle </span> 6181 </a> 6182 </li> 6183 6184 <li> 6185 <a href="/products/revitalizing-hair-bundle"> 6186 <img class="max-w-[120px] mx-auto mix-blend-multiply" style="transform: translate3d(0,0,0);" src="//chebeauty.com/cdn/shop/products/ChebeHairpaste_KarkarOil_FermentedRiceWater.ChebeHairOil4copy_1.webp?v=1677654775&width=400" alt="Revitalizing Hair Bundle" width=400 height=400 loading="lazy"/> 6187 <span class="block font-medium text-sm" href="/products/revitalizing-hair-bundle">Revitalizing Hair Bundle </span> 6188 </a> 6189 </li> 6190 6191 <li> 6192 <a href="/products/the-ultimate-bundle"> 6193 <img class="max-w-[120px] mx-auto mix-blend-multiply" style="transform: translate3d(0,0,0);" src="//chebeauty.com/cdn/shop/products/Chebe-Hair-Butter_-Karkar-Oil_-Fermented-Rice-Water.-Chebe-Hair-Oil-4.jpg?v=1672834305&width=400" alt="Ultimate Hair Growth Bundle" width=400 height=400 loading="lazy"/> 6194 <span class="block font-medium text-sm" href="/products/the-ultimate-bundle">Ultimate Hair Growth Bundle </span> 6195 </a> 6196 </li> 6197 6198 <li> 6199 <a href="/products/the-deluxe-treatment-bundle"> 6200 <img class="max-w-[120px] mx-auto mix-blend-multiply" style="transform: translate3d(0,0,0);" src="//chebeauty.com/cdn/shop/products/Chebe-Hair-Butter_-Karkar-Oil_-and-Fermented-Rice-Water-4.jpg?v=1672836380&width=400" alt="Hair Loss Treatment Bundle" width=400 height=400 loading="lazy"/> 6201 <span class="block font-medium text-sm" href="/products/the-deluxe-treatment-bundle">Hair Loss Treatment Bundle </span> 6202 </a> 6203 </li> 6204 6205 </ul> 6206 </div> 6207 </div> 6208</sticky-header> 6209 6210<div class="custom_mobile_sticky_menu md:hidden"> 6211<nav class="bg-[#FFFBEC] w-full border-b border-[#ffcb18] z-[100]"> 6212 <ul class="flex h-9 items-center gap-3 justify-center whitespace-nowrap text-s px-4"><li> 6213 <a data-name="all products" href="/collections/new-all" class="font-bold text-sm text-black"> 6214 <span>All Products</span> 6215 </a> 6216 </li><li> 6217 <a data-name="best sellers" href="/collections/bestsellers" class="font-bold text-sm text-black">
6218 <span>Best Sellers</span> 6219 </a> 6220 </li><li> 6221 <a data-name="bundles" href="/collections/new-bundles" class="font-bold text-sm text-black"> 6222 <span>Bundles</span> 6223 </a> 6224 </li><li> 6225 <a data-name="hair quiz" href="/pages/quiz" class="font-bold text-sm text-black"> 6226 <span>Hair Quiz</span> 6227 </a> 6228 </li><li> 6229 <a data-name="blogs" href="/pages/blogs" class="font-bold text-sm text-black"> 6230 <span>Blogs</span> 6231 </a> 6232 </li></ul> 6233</nav> 6234</div>
6234<script src="//chebeauty.com/cdn/shop/t/163/assets/details-disclosure.js?v=153497636716254413831781941838" defer="defer"></script>
vendor: 1 bytes, line 6234
6234
6235<script src="//chebeauty.com/cdn/shop/t/163/assets/details-modal.js?v=4511761896672669691781941834" defer="defer"></script>
vendor: 1 bytes, line 6235
6235
6236<script src="//chebeauty.com/cdn/shop/t/163/assets/cart-notification.js?v=160453272920806432391781941837" defer="defer"></script>
6236<script src="//chebeauty.com/cdn/shop/t/163/assets/cart-drawer-new.js?v=85249913899454840811781941836" defer="defer"></script>
6236 6237
6238<script src="//chebeauty.com/cdn/shop/t/163/assets/megamenu.js?v=159411836638175399221781941836" defer="defer"></script>
6238 6239
6240<script type="application/ld+json"> 6241 { 6242 "@context": "http://schema.org", 6243 "@type": "Organization", 6244 "name": "Chebeauty", 6245 6246 "sameAs": [ 6247 "", 6248 "https:\/\/www.facebook.com\/chebeautybrand", 6249 "", 6250 "https:\/\/www.instagram.com\/chebeautybrand\/", 6251 "", 6252 "", 6253 "", 6254 "", 6255 "" 6256 ], 6257 "url": "https:\/\/chebeauty.com" 6258 } 6259</script>
6259</div> 6260 6261 6262 <main 6263 id="MainContent" 6264 class="content-for-layout focus-none " 6265 role="main" 6266 tabindex="-1" 6267 > 6268 <div id="shopify-section-template--21461752774834__main" class="shopify-section login-wrapper"><link href="//chebeauty.com/cdn/shop/t/163/assets/customer.css?v=155537055575402212671781941837" rel="stylesheet" type="text/css" media="all" /> 6269<link href="//chebeauty.com/cdn/shop/t/163/assets/custom-main-login.css?v=159332010717134991041781941834" rel="stylesheet" type="text/css" media="all" /> 6270<style data-shopify>.section-template--21461752774834__main-padding { 6271 padding-top: 27 6272 px; 6273 padding-bottom: 27 6274 px; 6275 } 6276 6277 @media screen and (min-width: 750px) { 6278 .section-template--21461752774834__main-padding { 6279 padding-top: 36 6280 px; 6281 padding-bottom: 36 6282 px; 6283 } 6284 } 6285 .login-wrapper { 6286 background-color: #FFF; 6287 padding-top: 64px; 6288 padding-bottom: 96px; 6289 } 6290 @media screen and (max-width: 990px) { 6291 .login-wrapper { 6292 padding-left: 83px; 6293 padding-right: 83px; 6294 } 6295 } 6296 @media screen and (max-width: 768px) { 6297 .login-wrapper { 6298 padding-top: 48px; 6299 padding-left: 16px; 6300 padding-right: 16px; 6301 } 6302 .errors-wrapper { 6303 margin-top: 20px; 6304 } 6305 }</style><div class="customer login section-template--21461752774834__main-padding custom-login rounded-[10px] bg-creamy py-6 px-4 md:py-8 md:px-20 lg:py-12"> 6306 <h1 id="recover" tabindex="-1"> 6307 Reset your password 6308 </h1> 6309 <div> 6310 <p> 6311 We will send you an email to reset your password 6312 </p><form method="post" action="/account/recover" accept-charset="UTF-8" class="max-w-[330px] mx-auto"><input type="hidden" name="form_type" value="recover_customer_password" /><input type="hidden" name="utf8" value="â" /> 6313 <div class="field custom_field"> 6314 <input 6315 class="bg-white p-4 border border-[#ECEAE5] rounded-[8px]" 6316 type="email" 6317 value="" 6318 name="email" 6319 id="RecoverEmail" 6320 autocorrect="off" 6321 autocapitalize="off" 6322 autocomplete="email" 6323 6324 placeholder="Email"> 6325 <label for="RecoverEmail" class="block text-left font-semibold text-sm text-[#403F36] uppercase"> 6326 Email 6327 </label> 6328 </div><button class="custom-login-button border border-[#E0A200] bg-gradient-to-t from-[#FFBA0A] to-[#FFD770] rounded-[10px] hover:border-[#CC9300] hover:from-[#F5B000] hover:to-[#FFD15C] active:border-[#CC9300] active:from-[#FFC632] active:to-[#FFC632] text-center capitalize text-sm font-medium text-black lg:text-base mt-12 mb-2 w-full"> 6329 Submit 6330 </button> 6331 6332 <a href="#login" class="w-full"> 6333 <button 6334 class="py-3 border border-[#E0A200] bg-[#FFF6E0] text-center hover:border-[#CC9300] hover:bg-[#FFF1CC] active:border-[#CC9300] active:bg-[#FFF6E0] capitalize font-medium text-black rounded-[10px] w-full pointer-events-none m-0">Cancel 6335</button> 6336 </a></form></div> 6337 6338 <div id="login" class="flex flex-col items-center"> 6339 <h1 class="font-bold text-black text-2xl md:text-3xl" tabindex="-1"> 6340 Welcome Back 6341 </h1> 6342 6343 <p class="text-sm lg:text-base font-normal text-[#403F36] m-0"> 6344 Please enter your details below to log in 6345 </p> 6346 </div> 6347 <div class="max-w-[330px] w-full mx-auto"><form method="post" action="/account/login" id="customer_login" accept-charset="UTF-8" data-login-with-shop-sign-in="true" novalidate="novalidate"><input type="hidden" name="form_type" value="customer_login" /><input type="hidden" name="utf8" value="â" /><label for="CustomerEmail" class="block text-left font-semibold text-sm text-[#403F36] uppercase"> 6348 Email 6349 </label> 6350 <div class="field custom_field mt-2 rounded-[8px]"> 6351 <input 6352 class="bg-white p-4 border border-[#ECEAE5] rounded-[8px]" 6353 type="email" 6354 name="customer[email]" 6355 id="CustomerEmail" 6356 autocomplete="email" 6357 autocorrect="off" 6358 autocapitalize="off" 6359 6360 placeholder="Email"> 6361 </div> 6362 6363 <label for="CustomerPassword" class="block text-left font-semibold text-sm text-[#403F36] uppercase mt-4"> 6364 Password 6365 </label><div class="field custom_field mt-2 rounded-[8px]"> 6366 <input
6367 class="bg-white p-4 border border-[#ECEAE5] rounded-[8px]" 6368 type="password" 6369 value="" 6370 name="customer[password]" 6371 id="CustomerPassword" 6372 autocomplete="current-password" 6373 6374 placeholder="Password"> 6375 </div> 6376 6377 <a class="m-0 mt-4" href="#recover"> 6378 <button class="underline text-black hover:text-[#524100] active:text-[#7A6200] m-0 min-h-[unset] pointer-events-none">Forgot your password? 6379</button> 6380 </a><button class="custom-login-button border border-[#E0A200] bg-gradient-to-t from-[#FFBA0A] to-[#FFD770] rounded-[10px] hover:border-[#CC9300] hover:from-[#F5B000] hover:to-[#FFD15C] active:border-[#CC9300] active:from-[#FFC632] active:to-[#FFC632] text-center capitalize text-sm font-medium text-black lg:text-base mt-12 lg:mb-4 w-full"> 6381 Sign in 6382 </button> 6383 6384 <p class="m-0 text-center text-[#777] text-sm font-normal">Do not have an account? 6385 <a class="text-black inline text-sm" href="/account/register"><button class="underline text-black hover:text-[#524100] active:text-[#7A6200] pointer-events-none m-0 min-h-[unset] inline min-w-[unset]">Sign Up 6386</button></a> 6387 </p><input type="hidden" name="return_url" value="/account" /></form></div></div> 6388 6389</div> 6390 </main> 6391 6392 <footer id="shopify-section-custom-footer" class="shopify-section custom-footer"><style> 6393 input[aria-invalid="true"] { 6394 border-color: red !important; 6395 } 6396 .custom-footer { 6397 position: relative; 6398 z-index: 20; 6399 } 6400 @media screen and (max-width: 768px) { 6401 .custom-footer { 6402 border-top: none; 6403 } 6404 } 6405 .footer-social-urls li svg:hover path:not(.tiktok-custom-path) { 6406 fill: #0A0800; 6407 } 6408</style> 6409 6410<div class="hidden lg:!block"> 6411 <div class="bg-[#F7F5F1]"> 6412 <p class="page-width h2 font-heading text-[32px] leading-[41.25px] text-black lowercase font-bold pt-4"> 6413 Chebeauty 6414 </p> 6415 <div class="page-width pt-6 pb-12 flex gap-16"> 6416 <div class="basis-[47%]"> 6417 <div class="p-4 rounded-[10px] bg-white"> 6418 <b class="block mb-2">Subscribe to our newsletter</b> 6419 <p class="text-sm text-black opacity-[64%] leading-[16.8px] mb-4"> 6420 and be the first to know about 6421 exclusive promotions and expert advice on beauty tips. 6422 </p> 6423 <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="newsletter-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 6424 <input 6425 type="hidden" 6426 name="contact[tags]" 6427 value="newsletter"> 6428 <div class="newsletter-form__field-wrapper"> 6429 <div class="field flex flex-col gap-4 xxl:gap-2 xxl:flex-row items-center"> 6430 <input 6431 id="NewsletterForm--custom-footer" 6432 type="email" 6433 name="contact[email]" 6434 class="field__input border border-[#DCD9D4] rounded-[4px] flex-grow-0 xxl:w-[60%] w-full" 6435 value="" 6436 aria-required="true" 6437 autocorrect="off" 6438 autocapitalize="off" 6439 autocomplete="email" 6440 6441 placeholder="Enter Email" 6442 required> 6443 <label class="field__label text-white" for="NewsletterForm--custom-footer"> 6444 Enter Email 6445 </label> 6446 <button 6447 onclick="validateEmail(event)" 6448 style="border: 1px solid #D5AE1D; border-radius: 8px;" 6449 type="submit" 6450 class="xxl:absolute xxl:top-1/2 xxl:-translate-y-1/2 static max-w-none rouned min-h-[20px] w-full xxl:max-w-[155px] bg-white font-medium text-black capitalize text-base min-w-[155px] py-7 lg:py-6 newsletter-form__button field__button border border-[#E0A200] bg-gradient-to-t from-[#FFBA0A] to-[#FFD770] rounded-[10px] hover:border-[#CC9300] hover:from-[#F5B000] hover:to-[#FFD15C] active:border-[#CC9300] active:from-[#FFC632] active:to-[#FFC632]" 6451 name="commit" 6452 id="Subscribe" 6453 aria-label="Subscribe"> 6454 Subscribe 6455 </button> 6456 </div></div></form> 6457 </div> 6458 </div> 6459 <div class="basis-1/5 flex flex-col"> 6460 <div class="flex flex-col items-start justify-center"> 6461 <a href="/collections/bestsellers" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Bestsellers</a><a href="/collections/new-bundles" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Bundles</a><a href="/products/chebe-hair-butter" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Chebe Hair Butter</a><a href="/products/chebe-shampoo" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Chebe Shampoo</a><a href="/products/chebe-leave-in-conditioner" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Chebe Leave-In Conditioner</a><a href="/products/rice-water-for-hair-growth" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Rice Water for Hair Growth</a><a href="/products/rosemary-oil" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer"> Rosemary Oil</a> 6462 </div> 6463 </div> 6464 <div class="basis-1/5 flex flex-col"> 6465 <div class="flex flex-col items-start justify-center"> 6466 <a href="/pages/blogs" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Blog</a><a href="/pages/quiz" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Quiz</a><a href="/pages/ingredients" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Ingredients</a><a href="/pages/contact" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Contact</a><a href="/policies/refund-policy" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Shipping and Returns</a><a href="/pages/subscription-policy" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Subscription Policy</a><a href="/pages/help-center" class="text-sm leading-[17px] font-medium text-black py-[3px] block cursor-pointer">Help Center</a> 6467 </div> 6468 </div> 6469 <div class="basis-1/5"> 6470 <div class="mb-8"> 6471 <ul class="flex footer-social-urls gap-3"> 6472 <li> 6473 <a href="https://www.facebook.com/profile.php?id=100086513231423" target="_blank"> 6474 <svg 6475 width="32" 6476 height="32"
6477 viewBox="0 0 32 32" 6478 fill="none" 6479 xmlns="http://www.w3.org/2000/svg"> 6480 <g clip-path="url(#clip0_7265_41663)"> 6481 <rect 6482 width="32" 6483 height="32" 6484 rx="16" 6485 fill="white" /> 6486 <path 6487 fill-rule="evenodd" 6488 clip-rule="evenodd" 6489 d="M100 0H0V100H100V0ZM20.0506 14.1051L19.5946 16.9994H17.242V24H14.0824V16.9994H11.52V14.1051H14.0824V11.8982C14.0824 9.38836 15.5915 8 17.9031 8C18.6668 8.00933 19.4287 8.07432 20.1828 8.19446V10.6591H18.8879C17.6341 10.6591 17.242 11.4324 17.242 12.2239V14.1051H20.0506Z" 6490 fill="#777777" /> 6491 </g> 6492 <defs> 6493 <clipPath id="clip0_7265_41663"> 6494 <rect 6495 width="32" 6496 height="32" 6497 rx="16" 6498 fill="white" /> 6499 </clipPath> 6500 </defs> 6501 </svg> 6502 </a> 6503 </li> 6504 <li> 6505 <a href="https://www.instagram.com/chebeautybrand/" target="_blank"> 6506 <svg 6507 width="32" 6508 height="32"
6509 viewBox="0 0 32 32" 6510 fill="none" 6511 xmlns="http://www.w3.org/2000/svg"> 6512 <g clip-path="url(#clip0_7265_41667)"> 6513 <rect 6514 width="32" 6515 height="32" 6516 rx="16" 6517 fill="white" /> 6518 <path 6519 fill-rule="evenodd" 6520 clip-rule="evenodd" 6521 d="M32 0H0V32H32V0ZM16.1026 13.184C14.4932 13.184 13.1889 14.4882 13.1889 16.0966C13.1889 17.7051 14.4932 19.0093 16.1026 19.0093C17.712 19.0093 19.017 17.7051 19.017 16.0966C19.017 14.4882 17.712 13.184 16.1026 13.184ZM16.1026 20.5831C13.6232 20.5831 11.6134 18.5745 11.6134 16.0966C11.6134 13.6188 13.6232 11.6102 16.1026 11.6102C18.582 11.6102 20.5918 13.6188 20.5918 16.0966C20.5918 18.5745 18.582 20.5831 16.1026 20.5831ZM19.897 12.0148C19.7818 11.8424 19.7203 11.6396 19.7204 11.4323C19.7206 11.1543 19.8313 10.8878 20.028 10.6913C20.2247 10.4948 20.4914 10.3843 20.7695 10.3842H20.7699C20.9774 10.3843 21.1802 10.4459 21.3527 10.5611C21.5252 10.6764 21.6596 10.8402 21.7389 11.0318C21.8182 11.2235 21.8389 11.4343 21.7984 11.6376C21.7578 11.841 21.6578 12.0278 21.511 12.1744C21.3643 12.3209 21.1773 12.4207 20.9738 12.4611C20.7702 12.5015 20.5593 12.4806 20.3676 12.4012C20.176 12.3218 20.0122 12.1873 19.897 12.0148ZM10.9471 22.908C11.255 23.0279 11.7183 23.1698 12.5706 23.2086C13.4919 23.2509 13.7679 23.2594 16.1026 23.2594C18.4373 23.2594 18.7141 23.2509 19.6356 23.2086C20.488 23.1698 20.9514 23.028 21.2592 22.908C21.6673 22.7492 21.959 22.5598 22.2648 22.2545C22.5705 21.9491 22.7598 21.6581 22.9187 21.2502C23.0379 20.9425 23.1806 20.4795 23.2194 19.6276C23.2618 18.7059 23.2703 18.43 23.2703 16.0967C23.2703 13.7634 23.2618 13.4876 23.2194 12.5658C23.1807 11.714 23.0387 11.2508 22.9187 10.9433C22.7598 10.5353 22.571 10.2439 22.2648 9.93827C21.9586 9.63267 21.6673 9.44283 21.2592 9.28472C20.9505 9.16589 20.488 9.02295 19.6356 8.98416C18.7133 8.9425 18.4362 8.93334 16.1026 8.93334C13.769 8.93334 13.4922 8.9418 12.5706 8.98416C11.7183 9.02288 11.2549 9.16477 10.9471 9.28472C10.5383 9.44283 10.2473 9.63225 9.94153 9.93827C9.63575 10.2443 9.44649 10.5353 9.28759 10.9433C9.16869 11.2517 9.02566 11.714 8.98684 12.5658C8.94516 13.4876 8.936 13.7634 8.936 16.0967C8.936 18.43 8.94446 18.7066 8.98684 19.6276C9.02559 20.4795 9.16757 20.9426 9.28759 21.2502C9.44579 21.6581 9.63533 21.9489 9.94153 22.2545C10.2477 22.5601 10.539 22.7492 10.9471 22.908ZM10.3762 7.81812C10.9316 7.60213 11.5676 7.45465 12.4983 7.41229C13.4309 7.36923 13.7291 7.35938 16.1033 7.35938C18.4775 7.35938 18.7755 7.36993 19.7077 7.41229C20.6377 7.45395 21.2733 7.60213 21.8297 7.81812C22.4039 8.04116 22.8919 8.33963 23.3777 8.82591C23.8635 9.31219 24.1623 9.79917 24.3861 10.3737C24.6022 10.9287 24.7498 11.5642 24.7922 12.4944C24.8346 13.426 24.8444 13.7239 24.8444 16.0966C24.8444 18.4694 24.8346 18.7665 24.7922 19.6988C24.7505 20.629 24.6022 21.2642 24.3861 21.8196C24.1623 22.3941 23.8643 22.8819 23.3777 23.3674C22.8911 23.8529 22.4039 24.1515 21.829 24.3752C21.2733 24.5912 20.6377 24.7386 19.707 24.781C18.7748 24.8241 18.4768 24.8339 16.1026 24.8339C13.7284 24.8339 13.4309 24.8234 12.4983 24.781C11.5676 24.7386 10.9326 24.5912 10.3762 24.3752C9.80102 24.1515 9.31402 23.8527 8.82752 23.3674C8.34102 22.8821 8.0423 22.3941 7.81912 21.8196C7.60301 21.2642 7.45544 20.629 7.41305 19.6988C7.36997 18.7672 7.36011 18.4694 7.36011 16.0966C7.36011 13.7239 7.36997 13.426 7.41305 12.4944C7.45544 11.5643 7.60301 10.9291 7.81912 10.3737C8.0423 9.79882 8.34095 9.31142 8.82752 8.82591C9.31409 8.34039 9.80102 8.04116 10.3762 7.81812Z" 6522 fill="#777777" /> 6523 </g> 6524 <defs> 6525 <clipPath id="clip0_7265_41667"> 6526 <rect 6527 width="32" 6528 height="32" 6529 rx="16" 6530 fill="white" /> 6531 </clipPath> 6532 </defs> 6533 </svg> 6534 </a> 6535 </li> 6536 <li> 6537 <a href="https://www.tiktok.com/@chebeautybrand" target="_blank"> 6538 <svg 6539 width="32" 6540 height="32"
6541 viewBox="0 0 32 32" 6542 fill="none" 6543 xmlns="http://www.w3.org/2000/svg"> 6544 <g clip-path="url(#clip0_7265_41672)"> 6545 <rect 6546 width="32" 6547 height="32" 6548 rx="16" 6549 fill="white" /> 6550 <path d="M0 0H100V100H0V0Z" fill="#777777" /> 6551 <path 6552 fill-rule="evenodd" 6553 clip-rule="evenodd" 6554 d="M19.212 13.9381C20.1934 14.6357 21.3685 15.0084 22.5725 15.0039V12.6177C22.3359 12.6184 22.0998 12.593 21.8686 12.5422V14.4431C20.6619 14.4453 19.485 14.0683 18.5042 13.3654V18.2729C18.5012 19.0782 18.2803 19.8677 17.8651 20.5576C17.4498 21.2475 16.8555 21.8122 16.1453 22.1918C15.4351 22.5714 14.6354 22.7517 13.831 22.7136C13.0266 22.6755 12.2475 22.4204 11.5763 21.9754C12.1972 22.6036 12.9904 23.0333 13.8556 23.2104C14.7209 23.3874 15.6192 23.3036 16.4368 22.9698C17.2544 22.6359 17.9546 22.0669 18.4486 21.3349C18.9426 20.6028 19.2083 19.7407 19.212 18.8575V13.9381ZM20.083 11.5042C19.584 10.9633 19.2778 10.2726 19.212 9.53958V9.22938H18.5439C18.6265 9.6953 18.8062 10.1386 19.0714 10.5306C19.3366 10.9225 19.6812 11.2542 20.083 11.5042ZM13.1234 20.0864C12.8918 19.7836 12.7499 19.4218 12.7138 19.0423C12.6777 18.6628 12.7488 18.2808 12.9192 17.9398C13.0895 17.5987 13.3521 17.3123 13.6772 17.1132C14.0022 16.9141 14.3767 16.8102 14.7579 16.8134C14.9684 16.8133 15.1776 16.8455 15.3783 16.9088V14.4431C15.1437 14.4121 14.907 14.3988 14.6704 14.4034V16.3202C14.1817 16.1658 13.6527 16.2009 13.1887 16.4186C12.7247 16.6364 12.3597 17.0208 12.1662 17.4955C11.9728 17.9701 11.965 18.5002 12.1446 18.9802C12.3242 19.4603 12.6778 19.8552 13.1353 20.0864H13.1234Z" 6555 fill="#777777" /> 6556 <path 6557 class="tiktok-custom-path" 6558 fill-rule="evenodd" 6559 clip-rule="evenodd" 6560 d="M18.5038 13.3495C19.4847 14.0524 20.6616 14.4294 21.8683 14.4272V12.5262C21.1808 12.3809 20.5562 12.0234 20.0827 11.5042C19.6809 11.2542 19.3362 10.9225 19.071 10.5306C18.8059 10.1386 18.6262 9.6953 18.5436 9.22938H16.7858V18.8575C16.7841 19.2837 16.6491 19.6987 16.3996 20.0441C16.1501 20.3896 15.7986 20.6483 15.3946 20.7839C14.9905 20.9194 14.5542 20.9251 14.1468 20.8C13.7394 20.6749 13.3814 20.4253 13.123 20.0864C12.7136 19.8798 12.3857 19.5413 12.1923 19.1255C11.9989 18.7098 11.9511 18.2409 12.0568 17.7947C12.1625 17.3485 12.4155 16.9509 12.7749 16.666C13.1343 16.3812 13.5791 16.2258 14.0377 16.2248C14.2481 16.2255 14.4572 16.2576 14.6581 16.3202V14.4034C13.7902 14.4242 12.9472 14.698 12.2327 15.1911C11.5182 15.6843 10.9632 16.3754 10.6359 17.1795C10.3086 17.9836 10.2232 18.8658 10.3902 19.7177C10.5572 20.5697 10.9693 21.3544 11.576 21.9754C12.2473 22.4236 13.0276 22.6813 13.8338 22.7211C14.64 22.7608 15.4419 22.5812 16.154 22.2012C16.8662 21.8213 17.462 21.2553 17.8778 20.5635C18.2937 19.8717 18.5142 19.0801 18.5157 18.2729L18.5038 13.3495Z" 6561 fill="white" /> 6562 <path 6563 class="tiktok-custom-path" 6564 fill-rule="evenodd" 6565 clip-rule="evenodd" 6566 d="M21.8683 12.5262L21.8685 12.0131C21.2371 12.0157 20.6181 11.8394 20.083 11.5042C20.5553 12.0249 21.1801 12.3827 21.8683 12.5262ZM18.5439 9.22938C18.5439 9.13791 18.516 9.04229 18.504 8.95083V8.64062H16.0781V18.2727C16.076 18.8121 15.86 19.3286 15.4775 19.7088C15.095 20.0891 14.5773 20.302 14.0379 20.301C13.7204 20.3026 13.4071 20.2291 13.1234 20.0864C13.3817 20.4253 13.7394 20.6749 14.1468 20.8C14.5542 20.9251 14.9905 20.9194 15.3946 20.7839C15.7986 20.6483 16.1501 20.3896 16.3996 20.0441C16.6491 19.6987 16.7841 19.2837 16.7858 18.8575V9.22938H18.5439ZM14.6583 14.3992V13.8544C13.6601 13.7188 12.6453 13.9253 11.7795 14.4402C10.9136 14.9551 10.2477 15.7482 9.89019 16.69C9.53272 17.6319 9.5048 18.6671 9.81098 19.6269C10.1172 20.5866 10.7395 21.4146 11.5763 21.9754C10.9743 21.3529 10.5664 20.5684 10.4028 19.718C10.2393 18.8676 10.3269 17.9879 10.6551 17.1865C10.9832 16.3851 11.5377 15.6966 12.2507 15.2051C12.9638 14.7137 13.8045 14.4406 14.6703 14.4191L14.6583 14.3992Z" 6567 fill="#ECEAE5" /> 6568 </g> 6569 <defs> 6570 <clipPath id="clip0_7265_41672"> 6571 <rect 6572 width="32" 6573 height="32" 6574 rx="16" 6575 fill="white" /> 6576 </clipPath> 6577 </defs> 6578 </svg> 6579 </a> 6580 </li> 6581 <li> 6582 <a href="https://www.youtube.com/channel/UChpYLh7YYkiIu46yK8AI8UA" target="_blank"> 6583 <svg 6584 width="32" 6585 height="32"
6586 viewBox="0 0 32 32" 6587 fill="none" 6588 xmlns="http://www.w3.org/2000/svg"> 6589 <g clip-path="url(#clip0_7265_41676)"> 6590 <rect 6591 width="32" 6592 height="32" 6593 rx="16" 6594 fill="white" /> 6595 <path 6596 fill-rule="evenodd" 6597 clip-rule="evenodd" 6598 d="M100 0H0V100H100V0ZM24.5799 11.6001C24.3709 10.8147 23.7529 10.195 22.9665 9.98265C21.5447 9.60156 15.84 9.60156 15.84 9.60156C15.84 9.60156 10.1382 9.60156 8.71343 9.98265C7.92997 10.1921 7.31191 10.8117 7.10009 11.6001C6.71997 13.0256 6.71997 16.0016 6.71997 16.0016C6.71997 16.0016 6.71997 18.9776 7.10009 20.403C7.30901 21.1885 7.92707 21.8081 8.71343 22.0205C10.1382 22.4016 15.84 22.4016 15.84 22.4016C15.84 22.4016 21.5447 22.4016 22.9665 22.0205C23.75 21.811 24.368 21.1914 24.5799 20.403C24.96 18.9776 24.96 16.0016 24.96 16.0016C24.96 16.0016 24.96 13.0256 24.5799 11.6001ZM14.0177 18.7448L18.7562 16.0016L14.0177 13.2583V18.7448Z" 6599 fill="#777777" /> 6600 </g> 6601 <defs> 6602 <clipPath id="clip0_7265_41676"> 6603 <rect 6604 width="32" 6605 height="32" 6606 rx="16" 6607 fill="white" /> 6608 </clipPath> 6609 </defs> 6610 </svg> 6611 </a> 6612 </li> 6613</ul> 6614 </div> 6615 <div> 6616 <p class="text-lg font-bold text-black">Contact Us</p> 6617 <a href="mailto:[email protected]"> 6618 <button class="underline text-black hover:text-[#524100] active:text-[#7A6200] ">[email protected] 6619</button> 6620 </a> 6621 </div> 6622 </div> 6623 </div> 6624 </div> 6625 <div class="bg-[#403F36]"> 6626 <div class="page-width"> 6627 <div class="py-2 flex items-center justify-between text-xs leading-[14.4px] text-white font-normal"> 6628 <p>© 2024 Chebeauty LLC</p> 6629 <div class="flex items-center justify-start gap-x-4"> 6630 <a target="_blank" href="/policies/privacy-policy">Privacy Policy</a><a target="_blank" href="/pages/cookie-policy">Cookie Policy</a><a target="_blank" href="/policies/terms-of-service">Terms & Conditions</a> 6631 </div> 6632 </div> 6633 </div> 6634 </div> 6635</div> 6636 6637<div class="block lg:hidden"> 6638 <div class="bg-[#F7F5F1]"> 6639 <div class="page-width py-6 flex flex-col px-4"> 6640 <p class="h2 font-heading text-3xl text-black lowercase font-bold mb-4 text-center"> 6641 Chebeauty 6642 </p> 6643 <div class="p-4 rounded-[10px] bg-white"> 6644 <b class="text-base font-semibold leading-[19.5px] text-black mb-2 block text-center lg:text-left">Subscribe to our newsletter</b> 6645 <p class="text-sm font-normal leading-[16.8px] text-black opacity-[64%] mb-4 text-center lg:text-left"> 6646 and be the first to know about 6647 exclusive promotions and expert advice on beauty tips. 6648 </p> 6649 <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="newsletter-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 6650 <input 6651 type="hidden" 6652 name="contact[tags]" 6653 value="newsletter"> 6654 <div class="newsletter-form__field-wrapper"> 6655 <div class="field flex flex-col gap-2 lg:gap-0 lg:flex-row items-center"> 6656 <input 6657 id="NewsletterForm--custom-footer" 6658 type="email" 6659 name="contact[email]" 6660 class="w-full field__input !bg-transparent bg-white border border-solid !border-[#DCD9D4] rounded-[8px] min-h-[20px] text-black" 6661 value="" 6662 aria-required="true" 6663 autocorrect="off" 6664 autocapitalize="off" 6665 autocomplete="email" 6666 6667 placeholder="Enter Email" 6668 required> 6669 <label class="field__label text-white" for="NewsletterForm--custom-footer"> 6670 Enter Email 6671 </label> 6672 <button 6673 onclick="validateEmail(event)" 6674 style="border: 1px solid #D5AE1D; border-radius: 8px;" 6675 type="submit" 6676 class="static leading-[19.41px] rouned h-[50px] w-full bg-white font-medium text-black capitalize text-base py-6 newsletter-form__button field__button border border-[#
6676E0A200] bg-gradient-to-t from-[#FFBA0A] to-[#FFD770] rounded-[10px] hover:border-[#CC9300] hover:from-[#F5B000] hover:to-[#FFD15C] active:border-[#CC9300] active:from-[#FFC632] active:to-[#FFC632]" 6677 name="commit" 6678 id="Subscribe" 6679 aria-label="Subscribe"> 6680 Subscribe 6681 </button> 6682 </div></div></form> 6683 </div> 6684 <div class="flex items-top mb-6"> 6685 <div class="basis-1/2 flex flex-col pt-4"> 6686 <div class="flex flex-col items-center lg:items-start justify-center"> 6687 <a href="/collections/bestsellers" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer text-center">Bestsellers</a><a href="/collections/new-bundles" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer text-center">Bundles</a><a href="/products/chebe-hair-butter" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer text-center">Chebe Hair Butter</a><a href="/products/chebe-shampoo" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer text-center">Chebe Shampoo</a><a href="/products/chebe-leave-in-conditioner" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer text-center">Chebe Leave-In Conditioner</a><a href="/products/rice-water-for-hair-growth" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer text-center">Rice Water for Hair Growth</a><a href="/products/rosemary-oil" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer text-center"> Rosemary Oil</a> 6688 </div> 6689 </div> 6690 <div class="basis-1/2 flex flex-col pt-4"> 6691 <div class="flex flex-col items-center lg:items-start justify-center"> 6692 <a href="/pages/blogs" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer">Blog</a><a href="/pages/quiz" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer">Quiz</a><a href="/pages/ingredients" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer">Ingredients</a><a href="/pages/contact" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer">Contact</a><a href="/policies/refund-policy" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer">Shipping and Returns</a><a href="/pages/subscription-policy" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer">Subscription Policy</a><a href="/pages/help-center" class="text-sm leading-[17px] font-medium text-black py-[6px] block cursor-pointer">Help Center</a> 6693 </div> 6694 </div> 6695 </div> 6696 <div class="flex flex-col justify-center items-center"> 6697 <ul class="flex gap-3"> 6698 <li> 6699 <a href="https://www.facebook.com/profile.php?id=100086513231423" target="_blank"> 6700 <svg 6701 width="32" 6702 height="32"
6703 viewBox="0 0 32 32" 6704 fill="none" 6705 xmlns="http://www.w3.org/2000/svg"> 6706 <g clip-path="url(#clip0_7419_43852)"> 6707 <rect 6708 width="32" 6709 height="32" 6710 rx="16" 6711 fill="white" /> 6712 <path 6713 fill-rule="evenodd" 6714 clip-rule="evenodd" 6715 d="M32 0H0V32H32V0ZM20.5506 14.1051L20.0947 16.9994H17.742V24H14.5824V16.9994H12.02V14.1051H14.5824V11.8982C14.5824 9.38836 16.0915 8 18.4031 8C19.1668 8.00933 19.9288 8.07432 20.6828 8.19446V10.6591H19.388C18.1341 10.6591 17.742 11.4324 17.742 12.2239V14.1051H20.5506Z" 6716 fill="#0A0800" /> 6717 </g> 6718 <defs> 6719 <clipPath id="clip0_7419_43852"> 6720 <rect 6721 width="32" 6722 height="32" 6723 rx="16" 6724 fill="white" /> 6725 </clipPath> 6726 </defs> 6727 </svg> 6728 </a> 6729 </li> 6730 <li> 6731 <a href="https://www.instagram.com/chebeautybrand/" target="_blank"> 6732 <svg 6733 width="32" 6734 height="32"
6735 viewBox="0 0 32 32" 6736 fill="none" 6737 xmlns="http://www.w3.org/2000/svg"> 6738 <g clip-path="url(#clip0_7419_43856)"> 6739 <rect 6740 width="32" 6741 height="32" 6742 rx="16" 6743 fill="white" /> 6744 <path 6745 fill-rule="evenodd" 6746 clip-rule="evenodd" 6747 d="M32 0H0V32H32V0ZM16.6026 13.184C14.9932 13.184 13.6889 14.4882 13.6889 16.0966C13.6889 17.7051 14.9932 19.0093 16.6026 19.0093C18.212 19.0093 19.517 17.7051 19.517 16.0966C19.517 14.4882 18.212 13.184 16.6026 13.184ZM16.6026 20.5831C14.1232 20.5831 12.1134 18.5745 12.1134 16.0966C12.1134 13.6188 14.1232 11.6102 16.6026 11.6102C19.082 11.6102 21.0918 13.6188 21.0918 16.0966C21.0918 18.5745 19.082 20.5831 16.6026 20.5831ZM20.397 12.0148C20.2818 11.8424 20.2203 11.6396 20.2204 11.4323C20.2206 11.1543 20.3313 10.8878 20.528 10.6913C20.7247 10.4948 20.9914 10.3843 21.2695 10.3842H21.2699C21.4774 10.3843 21.6802 10.4459 21.8527 10.5611C22.0252 10.6764 22.1596 10.8402 22.2389 11.0318C22.3182 11.2235 22.3389 11.4343 22.2984 11.6376C22.2578 11.841 22.1578 12.0278 22.011 12.1744C21.8643 12.3209 21.6773 12.4207 21.4738 12.4611C21.2702 12.5015 21.0593 12.4806 20.8676 12.4012C20.676 12.3218 20.5122 12.1873 20.397 12.0148ZM11.4471 22.908C11.755 23.0279 12.2183 23.1698 13.0706 23.2086C13.9919 23.2509 14.2679 23.2594 16.6026 23.2594C18.9373 23.2594 19.2141 23.2509 20.1356 23.2086C20.988 23.1698 21.4514 23.028 21.7592 22.908C22.1673 22.7492 22.459 22.5598 22.7648 22.2545C23.0705 21.9491 23.2598 21.6581 23.4187 21.2502C23.5379 20.9425 23.6806 20.4795 23.7194 19.6276C23.7618 18.7059 23.7703 18.43 23.7703 16.0967C23.7703 13.7634 23.7618 13.4876 23.7194 12.5658C23.6807 11.714 23.5387 11.2508 23.4187 10.9433C23.2598 10.5353 23.071 10.2439 22.7648 9.93827C22.4586 9.63267 22.1673 9.44283 21.7592 9.28472C21.4505 9.16589 20.988 9.02295 20.1356 8.98416C19.2133 8.9425 18.9362 8.93334 16.6026 8.93334C14.269 8.93334 13.9922 8.9418 13.0706 8.98416C12.2183 9.02288 11.7549 9.16477 11.4471 9.28472C11.0383 9.44283 10.7473 9.63225 10.4415 9.93827C10.1357 10.2443 9.94649 10.5353 9.78759 10.9433C9.66869 11.2517 9.52566 11.714 9.48684 12.5658C9.44516 13.4876 9.436 13.7634 9.436 16.0967C9.436 18.43 9.44446 18.7066 9.48684 19.6276C9.52559 20.4795 9.66757 20.9426 9.78759 21.2502C9.94579 21.6581 10.1353 21.9489 10.4415 22.2545C10.7477 22.5601 11.039 22.7492 11.4471 22.908ZM10.8762 7.81812C11.4316 7.60213 12.0676 7.45465 12.9983 7.41229C13.9309 7.36923 14.2291 7.35938 16.6033 7.35938C18.9775 7.35938 19.2755 7.36993 20.2077 7.41229C21.1377 7.45395 21.7733 7.60213 22.3297 7.81812C22.9039 8.04116 23.3919 8.33963 23.8777 8.82591C24.3635 9.31219 24.6623 9.79917 24.8861 10.3737C25.1022 10.9287 25.2498 11.5642 25.2922 12.4944C25.3346 13.426 25.3444 13.7239 25.3444 16.0966C25.3444 18.4694 25.3346 18.7665 25.2922 19.6988C25.2505 20.629 25.1022 21.2642 24.8861 21.8196C24.6623 22.3941 24.3643 22.8819 23.8777 23.3674C23.3911 23.8529 22.9039 24.1515 22.329 24.3752C21.7733 24.5912 21.1377 24.7386 20.207 24.781C19.2748 24.8241 18.9768 24.8339 16.6026 24.8339C14.2284 24.8339 13.9309 24.8234 12.9983 24.781C12.0676 24.7386 11.4326 24.5912 10.8762 24.3752C10.301 24.1515 9.81402 23.8527 9.32752 23.3674C8.84102 22.8821 8.5423 22.3941 8.31912 21.8196C8.10301 21.2642 7.95544 20.629 7.91305 19.6988C7.86997 18.7672 7.86011 18.4694 7.86011 16.0966C7.86011 13.7239 7.86997 13.426 7.91305 12.4944C7.95544 11.5643 8.10301 10.9291 8.31912 10.3737C8.5423 9.79882 8.84095 9.31142 9.32752 8.82591C9.81409 8.34039 10.301 8.04116 10.8762 7.81812Z" 6748 fill="#0A0800" /> 6749 </g> 6750 <defs> 6751 <clipPath id="clip0_7419_43856"> 6752 <rect 6753 width="32" 6754 height="32" 6755 rx="16" 6756 fill="white" /> 6757 </clipPath> 6758 </defs> 6759 </svg> 6760 </a> 6761 </li> 6762 <li> 6763 <a href="https://www.tiktok.com/@chebeautybrand" target="_blank"> 6764 <svg 6765 width="32" 6766 height="32"
6767 viewBox="0 0 32 32" 6768 fill="none" 6769 xmlns="http://www.w3.org/2000/svg"> 6770 <g clip-path="url(#clip0_7419_43861)"> 6771 <rect 6772 width="32" 6773 height="32" 6774 rx="16" 6775 fill="white" /> 6776 <path d="M-0.5 0H99.5V100H-0.5V0Z" fill="#0A0800" /> 6777 <path 6778 fill-rule="evenodd" 6779 clip-rule="evenodd" 6780 d="M19.712 13.9381C20.6934 14.6357 21.8685 15.0084 23.0725 15.0039V12.6177C22.8359 12.6184 22.5998 12.593 22.3686 12.5422V14.4431C21.1619 14.4453 19.985 14.0683 19.0042 13.3654V18.2729C19.0012 19.0782 18.7803 19.8677 18.3651 20.5576C17.9498 21.2475 17.3555 21.8122 16.6453 22.1918C15.9351 22.5714 15.1354 22.7517 14.331 22.7136C13.5266 22.6755 12.7475 22.4204 12.0763 21.9754C12.6972 22.6036 13.4904 23.0333 14.3556 23.2104C15.2209 23.3874 16.1192 23.3036 16.9368 22.9698C17.7544 22.6359 18.4546 22.0669 18.9486 21.3349C19.4426 20.6028 19.7083 19.7407 19.712 18.8575V13.9381ZM20.583 11.5042C20.084 10.9633 19.7778 10.2726 19.712 9.53958V9.22938H19.0439C19.1265 9.6953 19.3062 10.1386 19.5714 10.5306C19.8366 10.9225 20.1812 11.2542 20.583 11.5042ZM13.6234 20.0864C13.3918 19.7836 13.2499 19.4218 13.2138 19.0423C13.1777 18.6628 13.2488 18.2808 13.4192 17.9398C13.5895 17.5987 13.8521 17.3123 14.1772 17.1132C14.5022 16.9141 14.8767 16.8102 15.2579 16.8134C15.4684 16.8133 15.6776 16.8455 15.8783 16.9088V14.4431C15.6437 14.4121 15.407 14.3988 15.1704 14.4034V16.3202C14.6817 16.1658 14.1527 16.2009 13.6887 16.4186C13.2247 16.6364 12.8597 17.0208 12.6662 17.4955C12.4728 17.9701 12.465 18.5002 12.6446 18.9802C12.8242 19.4603 13.1778 19.8552 13.6353 20.0864H13.6234Z" 6781 fill="#0A0800" /> 6782 <path 6783 fill-rule="evenodd" 6784 clip-rule="evenodd" 6785 d="M19.0038 13.3495C19.9847 14.0524 21.1616 14.4294 22.3683 14.4272V12.5262C21.6808 12.3809 21.0562 12.0234 20.5827 11.5042C20.1809 11.2542 19.8362 10.9225 19.571 10.5306C19.3059 10.1386 19.1262 9.6953 19.0436 9.22938H17.2858V18.8575C17.2841 19.2837 17.1491 19.6987 16.8996 20.0441C16.6501 20.3896 16.2986 20.6483 15.8946 20.7839C15.4905 20.9194 15.0542 20.9251 14.6468 20.8C14.2394 20.6749 13.8814 20.4253 13.623 20.0864C13.2136 19.8798 12.8857 19.5413 12.6923 19.1255C12.4989 18.7098 12.4511 18.2409 12.5568 17.7947C12.6625 17.3485 12.9155 16.9509 13.2749 16.666C13.6343 16.3812 14.0791 16.2258 14.5377 16.2248C14.7481 16.2255 14.9572 16.2576 15.1581 16.3202V14.4034C14.2902 14.4242 13.4472 14.698 12.7327 15.1911C12.0182 15.6843 11.4632 16.3754 11.1359 17.1795C10.8086 17.9836 10.7232 18.8658 10.8902 19.7177C11.0572 20.5697 11.4693 21.3544 12.076 21.9754C12.7473 22.4236 13.5276 22.6813 14.3338 22.7211C15.14 22.7608 15.9419 22.5812 16.654 22.2012C17.3662 21.8213 17.962 21.2553 18.3778 20.5635C18.7937 19.8717 19.0142 19.0801 19.0157 18.2729L19.0038 13.3495Z" 6786 fill="white" /> 6787 <path 6788 fill-rule="evenodd" 6789 clip-rule="evenodd" 6790 d="M22.3683 12.5262L22.3685 12.0131C21.7371 12.0157 21.1181 11.8394 20.583 11.5042C21.0553 12.0249 21.6801 12.3827 22.3683 12.5262ZM19.0439 9.22938C19.0439 9.13791 19.016 9.04229 19.004 8.95083V8.64062H16.5781V18.2727C16.576 18.8121 16.36 19.3286 15.9775 19.7088C15.595 20.0891 15.0773 20.302 14.5379 20.301C14.2204 20.3026 13.9071 20.2291 13.6234 20.0864C13.8817 20.4253 14.2394 20.6749 14.6468 20.8C15.0542 20.9251 15.4905 20.9194 15.8946 20.7839C16.2986 20.6483 16.6501 20.3896 16.8996 20.0441C17.1491 19.6987 17.2841 19.2837 17.2858 18.8575V9.22938H19.0439ZM15.1583 14.3992V13.8544C14.1601 13.7188 13.1453 13.9253 12.2795 14.4402C11.4136 14.9551 10.7477 15.7482 10.3902 16.69C10.0327 17.6319 10.0048 18.6671 10.311 19.6269C10.6172 20.5866 11.2395 21.4146 12.0763 21.9754C11.4743 21.3529 11.0664 20.5684 10.9028 19.718C10.7393 18.8676 10.8269 17.9879 11.1551 17.1865C11.4832 16.3851 12.0377 15.6966 12.7507 15.2051C13.4638 14.7137 14.3045 14.4406 15.1703 14.4191L15.1583 14.3992Z" 6791 fill="#ECEAE5" /> 6792 </g> 6793 <defs> 6794 <clipPath id="clip0_7419_43861"> 6795 <rect 6796 width="32" 6797 height="32" 6798 rx="16" 6799 fill="white" /> 6800 </clipPath> 6801 </defs> 6802 </svg> 6803 </a> 6804 </li> 6805 <li> 6806 <a href="https://www.youtube.com/channel/UChpYLh7YYkiIu46yK8AI8UA" target="_blank"> 6807 <svg 6808 width="32" 6809 height="32"
6810 viewBox="0 0 32 32" 6811 fill="none" 6812 xmlns="http://www.w3.org/2000/svg"> 6813 <g clip-path="url(#clip0_7419_43865)"> 6814 <rect 6815 width="32" 6816 height="32" 6817 rx="16" 6818 fill="white" /> 6819 <path 6820 fill-rule="evenodd" 6821 clip-rule="evenodd" 6822 d="M99.5 0H-0.5V100H99.5V0ZM25.0799 11.6001C24.8709 10.8147 24.2529 10.195 23.4665 9.98265C22.0447 9.60156 16.34 9.60156 16.34 9.60156C16.34 9.60156 10.6382 9.60156 9.21343 9.98265C8.42997 10.1921 7.81191 10.8117 7.60009 11.6001C7.21997 13.0256 7.21997 16.0016 7.21997 16.0016C7.21997 16.0016 7.21997 18.9776 7.60009 20.403C7.80901 21.1885 8.42707 21.8081 9.21343 22.0205C10.6382 22.4016 16.34 22.4016 16.34 22.4016C16.34 22.4016 22.0447 22.4016 23.4665 22.0205C24.25 21.811 24.868 21.1914 25.0799 20.403C25.46 18.9776 25.46 16.0016 25.46 16.0016C25.46 16.0016 25.46 13.0256 25.0799 11.6001ZM14.5177 18.7448L19.2562 16.0016L14.5177 13.2583V18.7448Z" 6823 fill="#0A0800" /> 6824 </g> 6825 <defs> 6826 <clipPath id="clip0_7419_43865"> 6827 <rect 6828 width="32" 6829 height="32" 6830 rx="16" 6831 fill="white" /> 6832 </clipPath> 6833 </defs> 6834 </svg> 6835 </a> 6836 </li> 6837</ul> 6838 <div class="text-center mt-6"> 6839 <p class="text-base font-bold text-black">Contact Us</p> 6840 <a href="mailto:[email protected]"> 6841 <button class="underline text-black hover:text-[#524100] active:text-[#7A6200] ">[email protected] 6842</button> 6843 </a> 6844 </div> 6845 </div> 6846 </div> 6847 </div> 6848 <div class="bg-[#403F36]"> 6849 <div class="page-width flex flex-col gap-4 text-[10px] leading-[12px] text-white font-normal text-center p-2"> 6850 <div class="flex items-center justify-center gap-x-4"> 6851 <a target="_blank" href="/policies/privacy-policy">Privacy Policy</a><a target="_blank" href="/pages/cookie-policy">Cookie Policy</a><a target="_blank" href="/policies/terms-of-service">Terms & Conditions</a> 6852 </div> 6853 <p>© 2024 Chebeauty LLC</p> 6854 </div> 6855 </div> 6856</div> 6857
6858<script> 6859 document.getElementById("contact_form").addEventListener("submit", (e) => validateEmail(e)); 6860 function validateEmail(e) { 6861 e.preventDefault(); 6862 e.stopImmediatePropagation(); 6863 6864 let displayedInput; 6865 6866 document.querySelectorAll('#NewsletterForm--custom-footer').forEach(input => { 6867 if (input.offsetWidth > 0 && input.offsetHeight > 0) { 6868 displayedInput = input; 6869 } 6870 }); 6871 6872 if (displayedInput.value === "") { 6873 displayedInput.setAttribute("aria-invalid", true); 6874 } else { 6875 displayedInput.setAttribute("aria-invalid", false); 6876 document.getElementById("contact_form").submit(); 6877 } 6878 } 6879</script>
6879 6880 6881</footer> 6882 6883 <ul hidden> 6884 <li id="a11y-refresh-page-message"> 6885 Choosing a selection results in a full page refresh. 6886 </li> 6887 <li id="a11y-new-window-message"> 6888 Opens in a new window. 6889 </li> 6890 </ul> 6891 6892 6893 6894
6894<script> 6895 window.shopUrl = 'https://chebeauty.com'; 6896 window.routes = { 6897 cart_add_url: '/cart/add', 6898 cart_change_url: '/cart/change', 6899 cart_update_url: '/cart/update', 6900 cart_url: '/cart', 6901 predictive_search_url: '/search/suggest', 6902 }; 6903 window.cartStrings = { 6904 error: `There was an error while updating your cart. Please try again.`, 6905 quantityError: `You can only add [quantity] of this item to your cart.`, 6906 }; 6907 window.variantStrings = { 6908 addToCart: `Add to bag`, 6909 soldOut: `Sold out`, 6910 unavailable: `Unavailable`, 6911 }; 6912 window.accessibilityStrings = { 6913 imageAvailable: `Image [index] is now available in gallery view`, 6914 shareSuccess: `Link copied to clipboard`, 6915 pauseSlideshow: `Pause slideshow`, 6916 playSlideshow: `Play slideshow`, 6917 }; 6918 </script>
6918 6919 6920 <!-- Google Tag Manager (noscript) -->
vendor: 87 bytes, lines 6920-6923
6920 6921 <noscript 6922 ><iframe 6923 src="https://www.googletagmanager.com/ns.html?id=
6923GTM-PMKJGJD
vendor: 123 bytes, lines 6923-6929
6923" 6924 height="0" 6925 width="0" 6926 style="display:none;visibility:hidden" 6927 ></iframe 6928 ></noscript> 6929
6929<!-- End Google Tag Manager (noscript) --> 6930 6931 <!-- Gorgias Chat Widget Start --> 6932
6932<script defer> 6933 window.addEventListener('load', () => { 6934 var script = document.createElement('script'); 6935 script.id = 'gorgias-chat-widget-install-v2'; 6936 script.src = 'https://config.gorgias.chat/gorgias-chat-bundle-loader.js?applicationId=24205'; 6937 document.body.appendChild(script); 6938 }); 6939 </script>
6939 6940 6941 <!-- Gorgias Chat Widget End --> 6942 6943 6944 6945
6945<script src="https://a.klaviyo.com/media/js/onsite/onsite.js" defer></script>
6945 6946
6946<script src="//chebeauty.com/cdn/shop/t/163/assets/klaviyo-bis-init.js?v=173865280054413172731786105109" defer></script>
6946 6947 <style data-shopify> 6948 body .klaviyo-bis-trigger { 6949 height: 60px; 6950 font-weight: bold; 6951 6952 display: flex; 6953 align-items: center; 6954 justify-content: center; 6955 6956 text-transform: uppercase; 6957 border-radius: 0.75rem; 6958 border: 1px solid #daa015; 6959 background: linear-gradient(180deg, #f8ca2a 0%, #ffbe32 100%) !important; 6960 color: black; 6961 6962 margin-bottom: 1em !important; 6963 } 6964 6965 body .klaviyo-bis-close { 6966 font-family: "Gilroy"; 6967 } 6968 </style> 6969 6970 6971
6971<script src="//chebeauty.com/cdn/shop/t/163/assets/productCards.js?v=30248107938526044551781941836" defer></script>
6971<script src="//chebeauty.com/cdn/shop/t/163/assets/predictive-search.js?v=153888447267950491301781941834" defer="defer"> 6972 </script>
6972<!-- @prettify-ignore -->
6973<script> 6974 let customValue, container, shippingValue, shippingBar; 6975 6976 window.addEventListener("DOMContentLoaded", () => { 6977 container = document.querySelector(".shipping-cont"); 6978 shippingValue = container.querySelector(".free-shipping-val"); 6979 6980 customValue = Number(shippingValue.dataset.initialvalue); 6981 shippingBar = container.querySelector("#free-shipping-bar"); 6982 new MutationObserver((mutations) => { 6983 console.log('new value: ',shippingValue.dataset.initialvalue) 6984 if(shippingValue.dataset.initialvalue!=customValue){ 6985 console.log('change shipping value to from: ',customValue,' to: ',shippingValue.dataset.initialvalue) 6986 customValue=Number(shippingValue.dataset.initialvalue); 6987 handleShippingProgressbar() 6988 } 6989 }).observe(shippingValue, { 6990 attributes: true 6991 }) 6992 function setInitialShippingbarValue() { 6993 const cartSubtotal = 0.00; 6994 const priceAway = cartSubtotal === 0 ? customValue : (customValue - cartSubtotal).toFixed(0); 6995 6996 if (priceAway > 0) {
6997 const percentOfCustom = Math.ceil((cartSubtotal / customValue) * 100); 6998 shippingBar.style.width = `${percentOfCustom}%`; 6999 shippingValue.innerHTML = `You're <strong>$${priceAway}</strong> away from <strong class="shipping-free-highlight">FREE SHIPPING!</strong>`; 7000 } else { 7001 shippingValue.innerHTML = `Congrats! You've unlocked <strong class="shipping-free-highlight">FREE SHIPPING!</strong>`; 7002 shippingBar.style.width = "100%"; 7003 } 7004 } 7005 setInitialShippingbarValue(); 7006 }); 7007 function handleShippingProgressbar() { 7008 let subTotal = document 7009 .querySelector("cart-drawer .totals__subtotal-value b") 7010 .innerHTML 7011 .trim() 7012 .replace("$", " "); 7013 subTotal = Number(subTotal); 7014 const priceAway = subTotal === 0 ? customValue : (customValue - subTotal).toFixed(0); 7015 if (priceAway > 0) { 7016 const percentOfCustom = Math.ceil((subTotal / customValue) * 100); 7017 shippingBar.style.width = `${percentOfCustom}%`; 7018 shippingValue.innerHTML = `You're <strong>$${priceAway}</strong> away from <strong class="shipping-free-highlight">FREE SHIPPING!</strong>`; 7019 } else { 7020 shippingValue.innerHTML = `Congrats! You've unlocked <strong class="shipping-free-highlight">FREE SHIPPING!</strong>`; 7021 shippingBar.style.width = "100%"; 7022 } 7023 } 7024</script>
7024 7025 7026 7027 <!-- subify Snippet Start --> 7028 7029 <!-- subify Snippet End --> 7030
7030<script src="https://navidium-static-assets.s3.amazonaws.com/navidium-widgets/extension/navidium-extension-checker.js" defer></script>
7030 7031
7031<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
7031 7032</body> 7033 7034
7034<script defer> 7035 // gather all dropdowns 7036 const dropdownSelectors = document.querySelectorAll( 7037 '.testing-SellingPlansSelector-options, .drawer-options, .productOptOptions, .productOptSelectorSellingPlansOptions' 7038 ); 7039 7040 document.addEventListener('click', function (event) { 7041 dropdownSelectors.forEach((selector) => { 7042 if (!selector.contains(event.target) && !selector.parentNode.contains(event.target)) { 7043 selector.parentNode.classList.remove('active'); 7044 } 7045 }); 7046 }); 7047 7048 document 7049 .querySelectorAll('.custom-klarna-icon') 7050 .forEach((icon) => 7051 icon.addEventListener('mouseleave', () => icon.querySelector('.klarna-info-wrapper').classList.add('hidden')) 7052 ); 7053 if (window.innerWidth >= 768) { 7054 document 7055 .querySelectorAll('.custom-klarna-icon') 7056 .forEach((icon) => 7057 icon.addEventListener('mouseenter', () => 7058 icon.querySelector('.klarna-info-wrapper').classList.remove('hidden') 7059 ) 7060 ); 7061 } else { 7062 document 7063 .querySelectorAll('.custom-klarna-icon') 7064 .forEach((icon) => 7065 icon.addEventListener('touchstart', () => 7066 icon.querySelector('.klarna-info-wrapper').classList.remove('hidden') 7067 ) 7068 ); 7069 } 7070 </script>
7070 7071</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.