1<!doctype html> 2 3<html lang="en" dir="ltr"> 4 <head> 5
5<script async="async" src="https://240.1.2.3/js/mm_ae86aa0b-ffa9-4269-8908-b24b2835a34e-04468825.js"></script>
5 6<!-- Start of Shoplift scripts --> 7<!-- 2026-05-07T22:31:46.7907064Z --> 8<style>.shoplift-hide { opacity: 0 !important; }</style> 9<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
10<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-09-25T14:30:07.8259489Z */(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
107|;\\s\\w+;$|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\b\\w+/1\\.0;|\\bbw/|\\bdlc\\b|\\bort/|\\bperl\\b|\\btime/|\\||^[<\\(;]|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[\\w\\-]+/[\\w]+$|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^\\w+/\\d\\.\\d\\s\\([\\w@]+\\)$|^active|^ad muncher|^amaya|^apache/|^avsdevicesdk/|^azure|^biglotron|^blackbox exporter|^bot|^clamav[ /]|^claude-code/|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^exodusmovement|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\((?:compatible;)?(?:\\s?[\\w\\d-.]+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^ps_daily/|^python|^rank|^read|^reed|^remove\\.bg/|^rest|^rss|^snapchat|^sora |^space bison|^stape/|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|abuse|advisor|agent\\b|analyzer|archive|ask jeeves/teoma|attracta|audit|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|collapsify\\b|convertify|cookiehubverify/|crawl|cursor/|cypress/|dareboost|datanyze|dejaclick|detect|discovery|dmbrowser|download|exaleadcloudview|feed|firephp|foregenix|functionize|grab|hardenize\\b|headless|hotjar|httrack|hubspot marketing grader|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|linktiger|mail\\.ru/|manager|manus-user/|marketgoo/|measure|monitor\\b|neustar wpm|node\\b|nutch|offbyone|openvas|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|playwright|powermarks|preview|productfinder|prospectingstudio|proxy|ptst[ /]\\d|radar|readable/|retriever|rexx;|rigor|rss\\b|scrape|securityheaders|selenium|server|silktide|sindup/|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|testlocally|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|watchtowr|webglance|webkit2png|whatcms/|xtate/",ge=/bot|crawl|http|lighthouse|scan|search|spider/i,z;function me(){if(z instanceof RegExp)return z;try{z=new RegExp(fe,"i")}catch{z=ge}return z}var ye=a=>typeof a=="string"&&a!=="";function ve(a){return ye(a)&&me().test(a)}var we=ve;class X{timestamp;constructor(){this.timestamp=new Date}}class be extends X{type;testId;hypothesisId;constructor(e,t,i){super(),this.type=3,this.testId=e,this.hypothesisId=t,this.timestamp=i}}class Se extends X{type;path;constructor(e){super(),this.type=4,this.path=e}}class Ce extends X{type;cart;constructor(e){super(),this.type=5,this.cart=e}}class ie extends Error{isBot;constructor(){super(),this.isBot=!0}}function Te(a,e,t){for(const i of e.selectors){const s=a.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)t(e.testId,e.hypothesisId)}re(a,e,(i,s,r,o,n)=>n(s,r),t)}function U(a,e,t){for(const i of e.selectors)ne(a,e.testId,e.hypothesisId,i,t??(()=>{}));re(a,e,ne,t??(()=>{}))}function se(a){return a.urlPatterns.reduce((e,t)=>{switch(t.operator){case"contains":return e+`.*${t}.*`;case"endsWith":return e+`.*${t}`;case"startsWith":return e+`${t}.*`}},"")}function re(a,e,t,i){new MutationObserver(()=>{for(const r of e.selectors)t(a,e.testId,e.hypothesisId,r,i)}).observe(a.documentElement,{childList:!0,subtree:!0})}function ne(a,e,t,i,s){const r=a.querySelectorAll(i.cssSelector);for(let o=0;o<r.length;o++){let n=r.item(o);if(n instanceof HTMLElement&&n.dataset.shoplift!==""){n.dataset.shoplift="";for(const l of i.actions.sort(Re))n=Ie(a,i.cssSelector,n,l)}}return r.length>0&&s?(s(e,t),!0):!1}function Ie(a,e,t,i){switch(i.type){case"innerHtml":t.innerHTML=i.value;break;case"attribute":Pe(t,i.scope,i.value);break;case"css":Ae(a,e,i.value);break;case"js":ke(a,t,i);break;case"copy":return Ee(t);case"remove":xe(t);break;case"move":_e(t,parseInt(i.value));break}return t}function Pe(a,e,t){a.setAttribute(e,t)}function Ae(a,e,t){const i=a.createElement("style");i.innerHTML=`${e} { ${t} }`,a.getElementsByTagName("head")[0]?.appendChild(i)}function ke(a,e,t){Function("document","element",`"use strict"; ${t.value}`)(a,e)}function Ee(a){const e=a.cloneNode(!0);if(!a.parentNode)throw"Can't copy node outside of DOM";return a.parentNode.insertBefore(e,a.nextSibling),e}function xe(a){a.remove()}function _e(a,e){if(e===0)return;const t=Array.prototype.slice.call(a.parentElement.children).indexOf(a),i=Math.min(Math.max(t+e,0),a.parentElement.children.length-1);a.parentElement.children.item(i).insertAdjacentElement(e>0?"afterend":"beforebegin",a)}function Re(a,e){return oe(a)-oe(e)}function oe(a){return a.type==="copy"||a.type==="remove"?0:1}
10const M={Template:0,UrlRedirect:2,Script:3,Price:5},De="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.96001%207.90004C9.86501%207.90004%209.77001%207.86504%209.69501%207.79004L6.43501%204.53004C6.19501%204.29004%205.80501%204.29004%205.56501%204.53004L2.30501%207.79004C2.16001%207.93504%201.92001%207.93504%201.77501%207.79004C1.63001%207.64504%201.63001%207.40504%201.77501%207.26004L5.03501%204.00004C5.56501%203.47004%206.43001%203.47004%206.96501%204.00004L10.225%207.26004C10.37%207.40504%2010.37%207.64504%2010.225%207.79004C10.15%207.86004%2010.055%207.90004%209.96001%207.90004Z'%20fill='white'/%3e%3c/svg%3e",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,o=>
10o.charCodeAt(0)),s=new Blob([i]).stream().pipeThrough(new DecompressionStream("gzip")),r=await new Response(s).text();return JSON.parse(r)}function F(a,e){return typeof e=="string"&&/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+(?:Z|[+-]\d+)/.test(e)?new Date(e):e}function ee(a,e){return e}function q(a,e=!1,t=!1,i=","){const s=a/100;if(t){const o=Math.round(s).toLocaleString("en-US");return i!==","?o.replace(/,/g,i):o}else{const r=e?",":".",o=s.toFixed(2).split("."),n=parseInt(o[0],10),l=o[1]??"00",c=n.toLocaleString("en-US");return i!==","?`${c.replace(/,/g,i)}${r}${l}`:e?`${c.replace(/,/g,".")}${r}${l}`:`${c}${r}${l}`}}function H(a,e,t,i){const s=e.replace("{{amount}}",q(a,!1,!1)).replace("{{amount_no_decimals}}",q(a,!1,!0)).replace("{{amount_with_comma_separator}}",q(a,!0,!1)).replace("{{amount_no_decimals_with_comma_separator}}",q(a,!0,!0)).replace("{{amount_with_space_separator}}",q(a,!1,!1," ")).replace("{{amount_no_decimals_with_space_separator}}",q(a,!1,!0," ")).replace("{{amount_with_apostrophe_separator}}",q(a,!1,!1,"'")).replace("{{amount_no_decimals_with_apostrophe_separator}}",q(a,!1,!0,"'")).replace("{{amount_with_period_and_space_separator}}",q(a,!1,!1,". ")).replace("{{amount_no_decimals_with_period_and_space_separator}}",q(a,!1,!0,". "));return i?`${s} ${t}`:s}function ae(a){return a.replace(/[^\d.,\s-]/g,"").trim()}function j(a){const e=new Map;for(const[t,i,s]of a.variants)e.set(t,{priceInCents:i,compareAtPriceInCents:s});return e}function Le(a,e,t,i){const{priceInCents:s,compareAtPriceInCents:r}=t,{moneyFormat:o,currency:n,currencyCodeEnabled:l}=i;if(a.getAttribute("data-sl-attribute-p")===e)a.innerHTML=H(s,o,n,l);else if(a.getAttribute("data-sl-attribute-cap")===e)r<=0||r<=s?a.remove():a.innerHTML=H(r,o,n,l);else if(a.getAttribute("data-sl-attribute-discount")===e&&!(r<=0||r<=s)){const d=Math.round((r-s)/r*100),u=ae(H(r-s,o,n,!1)),h=a.getAttribute("data-sl-format")||"percent";h==="percent"?a.textContent=`-${d}%`:h==="amount"?a.textContent=`-${u}`:h==="both"&&(a.textContent=`-${d}% (-${u})`)}}function $e(a){const e=[],t={id:"url-pattern",operator:"contains",value:"/"};for(const[i,s,r]of a.variants){e.push({id:`p-${i}`,cssSelector:`[data-sl-attribute-p="${i}"]`,urlPatterns:[t],actions:[{id:`p-action-${i}`,type:"innerHtml",scope:"price",value:H(s,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]});const o=r<=0||r<=s;if(e.push({id:`cap-${i}`,cssSelector:`[data-sl-attribute-cap="${i}"]`,urlPatterns:[t],actions:[{id:`cap-action-${i}`,type:o?"remove":"innerHtml",scope:"compare-at-price",value:o?"":H(r,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]}),!o&&r>s){const n=Math.round((r-s)/r*100),l=ae(H(r-s,a.moneyFormat,a.currency,!1));e.push({id:`d-${i}`,cssSelector:`[data-sl-attribute-discount="${i}"]`,urlPatterns:[t],actions:[{id:`d-action-${i}`,type:"js",scope:null,value:`var format = element.getAttribute('data-sl-format') || 'percent'; if (format === 'percent') { element.textContent = '-${n}%'; } else if (format === 'amount') { element.textContent = '-${l}'; } else if (format === 'both') { element.textContent = '-${n}% (-${l})'; }`}]})}}return e}const Me=a=>{let e=5381;for(let t=0;t<a.length;t++)e=(e*33^a.charCodeAt(t))>>>0;return e.toString(36)},qe=()=>Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4),He=a=>btoa(JSON.stringify(a)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),K=a=>a.replace(/#slr-[a-z0-9]+$/,""),tt="modulepreload",it=function(a){return"/"+a},st={},Ne=function(e,t,i){let s=Promise.resolve();function r(o){const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=o,window.dispatchEvent(n),!n.defaultPrevented)throw o}return s.then(o=>{for(const n of o||[])n.status==="rejected"&&r(n.reason);return e().catch(r)})};function le(a,e,t){const i=t?a.plans.filter(c=>!c.variantId||c.variantId===t):a.plans,s=[],r=[];for(const c of i)c.direction==="decrease"?(s.push(c.existingShopifyPlanId),r.push(c.createdShopifyPlanId)):(s.push(c.createdShopifyPlanId),r.push(c.existingShopifyPlanId));const o=e?s:r,n=e?r:s;if(t)for(const c of a.plans)for(const d of[c.existingShopifyPlanId,c.createdShopifyPlanId])d&&!o.includes(d)&&!n.includes(d)&&n.push(d);const l={};for(let c=0;c<n.length;c++){const d=n[c],u=o[c];d&&u&&(l[d]=u)}return{showPlanIds:o,hidePlanIds:n,swapMap:l}}function ce(a,e,t){const i=e?a.plans.find(r=>r.variantId===e):void 0;if(i)return i.direction;if(t){const r=a.plans.find(o=>o.productId===t);if(r)return r.direction}return a.plans.find(r=>!r.variantId)?.direction??null}function J(a,e){const t=e?a.plans.filter(r=>!r.productId||r.productId===e):a.plans,i={};for(const r of t)i[r.existingShopifyPlanId]=r.existingDiscountAmount,i[r.createdShopifyPlanId]=r.existingDiscountAmount;
10const s=Math.max(...Object.values(i),0);return{discountMap:i,maxDiscount:s}}function W(a){const e=document.querySelector('form[action*="/cart/add"] input[name="product-id"]')?.value;if(e)return e;if(a){for(const r of Array.from(document.querySelectorAll("[data-sl-attribute-p]"))){const o=r.getAttribute("data-sl-attribute-p");if(!o)continue;const n=a.variants.find(l=>l[0]===o);if(n?.[3])return n[3]}const s=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(s){const r=a.variants.find(o=>o[0]===s);if(r?.[3])return r[3]}}const t=window,i=t.ShopifyAnalytics?.meta?.product?.id??t.meta?.product?.id;return i!=null?String(i):null}function D(a,e){return a.widget.selectors[e]??[]}function N(a,e){return a.replace(/[\d.]+%/,`${e}%`)}function $(a,e){const t=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);let i=t.nextNode();for(;i;){if(i.nodeValue!==null){const s=e(i.nodeValue);if(s!==i.nodeValue){i.nodeValue=s;return}}i=t.nextNode()}}function de(a,e){return a===null?!1:a==="decrease"?!e:e}async function Ue(a){if(a.subscriptionSwapDone)return;const e=a.getActiveAssignment();if(!e)return;const t=a.getHypothesis(e.hypothesisId);if(!t?.subscriptionData)return;a.subscriptionSwapDone=!0;const i=t.subscriptionData,s=t.isControl,r=[...new Set(i.plans.map(d=>d.direction))].join(",");a.log(`[SUB-SWAP] ${s?"A":"B"} side, directions=${r}`);const o=i.plans.some(d=>d.variantId);let n=!1,l=!1;function c(){if(!l){l=!0;try{const d=o?document.querySelector("select[name='id'], input[name='id']")?.value:void 0,{showPlanIds:u,hidePlanIds:h,swapMap:p}=le(i,s,d);a.swapMap=p;const b=D(i,"widgetParent"),E=D(i,"subscriptionPlans"),S=D(i,"subscriptionInput");if(!b.length||!E.length||!S.length)return;const C=document.querySelector(b[0].selector);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(E[0].selector);if(!_?.shadowRoot)return;const T=S[0].selector;let m=null;if(i.widget.widgetType==="buttons"||i.widget.widgetType==="radio"){const y=Array.from(_.shadowRoot.querySelectorAll(T));if(!y.length)return;for(const v of y){const g=v.closest("label");g&&(u.includes(v.value)?g.style.display="":h.includes(v.value)&&(g.style.display="none"))}const w=y.some(v=>u.includes(v.value)&&v.checked),I=y.some(v=>h.includes(v.value)&&v.checked);if((w||I)&&(n=!1),!w&&!n){n=!0;for(const v of y)if(u.includes(v.value)){v.closest("label")?.click(),v.dispatchEvent(new Event("change",{bubbles:!0}));break}}const f=y.find(v=>v.checked);m=f&&u.includes(f.value)?f.value:u[0]??null}else if(i.widget.widgetType==="dropdown"){const y=_.shadowRoot.querySelector("select");if(!y)return;for(const w of Array.from(y.options))h.includes(w.value)&&(w.style.display="none",w.disabled=!0);if(h.includes(y.value)){const w=Array.from(y.options).find(I=>u.includes(I.value));w&&(y.value=w.value,y.dispatchEvent(new Event("change",{bubbles:!0})))}m=u.includes(y.value)?y.value:u[0]??null}if(m){const y=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const w of y)w.value!==m&&(w.value=m)}}finally{l=!1}}}if(a.subscriptionHideWrongPlans=c,a.swapMap=le(i,s).swapMap,c(),o){const d=document.querySelector("select[name='id'], input[name='id']");d&&d.addEventListener("change",c)}}function B(a){const e=D(a,"widgetParent");return e.length?document.querySelector(e[0].selector)?.shadowRoot??null:null}function Y(a,e){const t=D(a,"subscriptionPlans");return t.length?e.querySelector(t[0].selector)?.shadowRoot??null:null}function Z(a,e){const t=new URLSearchParams(window.location.search).get("variant");if(t)return t;{const i=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(i)return i}return a.size>0?[...a.keys()][0]:void 0}function G(a,e){return H(a,e.moneyFormat,e.currency,e.currencyCodeEnabled)}function Fe({originalFetch:a,swapMap:e,slptValue:t,getSelectedPlanId:i,log:s}){if(window.fetch.__shoplift_intercepted)return s("[SUB-INTERCEPT] already installed â skipping"),()=>{};function r(n){if(i){const l=i();if(l)return e[l]??l}return e[n]??n}const o=function(n,l){if((typeof n=="string"?n:n instanceof URL?n.href:n.url).includes("/cart/add")&&l?.body)try{if(l.body instanceof FormData){const d=l.body.get("selling_plan");d?l.body.set("selling_plan",r(String(d))):(!d||d==="")&&t&&l.body.set("properties[_slpt]",t)}
10else if(typeof l.body=="string"){const d=JSON.parse(l.body);if(d.items)for(const u of d.items){const h=String(u.selling_plan??"");h?u.selling_plan=r(h):!u.selling_plan&&t&&(u.properties||(u.properties={}),u.properties._slpt=t)}else if(d.id){const u=String(d.selling_plan??"");u?d.selling_plan=r(u):!d.selling_plan&&t&&(d.properties||(d.properties={}),d.properties._slpt=t)}l.body=JSON.stringify(d)}}catch(d){s("[SUB-INTERCEPT] body parse failed; cart-add proceeds with un-swapped plan",d)}return a.call(window,n,l)};return o.__shoplift_intercepted=!0,window.fetch=o,function(){window.fetch===o&&(window.fetch=a)}}function Be({log:a}){if(window.fetch.__shoplift_intercepted)return a("[SUB-PREVIEW-BLOCK] already installed â skipping"),()=>{};const e=window.fetch,t=function(i,s){const r=typeof i=="string"?i:i instanceof URL?i.href:i.url;return r.includes("/cart/add")?(a("[SUB-PREVIEW-BLOCK] cart-add blocked in preview mode",{url:r}),Promise.resolve(new Response(JSON.stringify({id:0,properties:{},quantity:0,variant_id:0,key:"preview",title:"Preview â cart-add blocked",price:0,original_price:0,line_price:0,original_line_price:0,total_discount:0,discounts:[],preview:!0}),{status:200,headers:{"Content-Type":"application/json"}}))):e.call(window,i,s)};return t.__shoplift_intercepted=!0,window.fetch=t,function(){window.fetch===t&&(window.fetch=e)}}function pe({data:a,runUpdates:e,debounceMs:t=150}){let i=null;function s(){i&&clearTimeout(i),e(),i=setTimeout(e,t)}let r=null;const o=[],n={childList:!0,subtree:!0,characterData:!0,attributes:!0};function l(h){for(const p of o)p.disconnect();o.length=0;for(const p of Array.from(h.querySelectorAll("*")))if(p.shadowRoot){const b=new MutationObserver(s);b.observe(p.shadowRoot,n),o.push(b)}}function c(){const h=B(a);return h?(r&&r.disconnect(),l(h),r=new MutationObserver(p=>{p.some(b=>b.type==="childList"&&b.addedNodes.length>0)&&l(h),s()}),r.observe(h,n),!0):!1}const d=document.body||document.documentElement,u=new MutationObserver(()=>{c()&&s()});return u.observe(d,{childList:!0,subtree:!0}),c()&&s(),e(),function(){i&&(clearTimeout(i),i=null),u.disconnect(),r&&(r.disconnect(),r=null);for(const p of o)p.disconnect();o.length=0}}async function ze(a){if(a.subscriptionPriceDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=t?.subscriptionData?null:a.findActiveSubscriptionTestControl(),s=t?.subscriptionData?t:i?.hypothesis;if(!s?.subscriptionData)return;const r=t?.subscriptionData?e.testId:i.testId;a.subscriptionPriceDone=!0;const o=s.subscriptionData,n=s.isControl,l=s.priceData,c=o.widget.widgetType;let d=W(l),u=J(o,d),h=u.discountMap,p=u.maxDiscount;function b(){const g=W(l);g!==d&&(d=g,u=J(o,d),h=u.discountMap,p=u.maxDiscount,a.log(`[SUB-PRICE] scope refreshed side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`))}a.log(`[SUB-PRICE] side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`),a.updatePriceTestHiddenInputs(r,n?"control":"variant",!1);function E(){if(!l)return null;const g=j(l),P=Z(g),A=ce(o,P,d);if(!de(A,n))return null;const k=P?g.get(P):void 0;return k?{formattedVariantPrice:G(k.priceInCents,l),formattedDiscounted:G(k.priceInCents*(1-p/100),l)}:null}Fe({originalFetch:a.fetch,swapMap:a.swapMap??{},slptValue:a.slptValue??void 0,log:a.log,getSelectedPlanId:()=>{const g=B(o);if(!g)return null;const P=Y(o,g);if(!P)return null;const A=D(o,"subscriptionInput"),k=A.length?A[0].selector:'input[name="rc_plan"]';return P.querySelector(`${k}:checked`)?.value??null}});function S(g){const P=D(o,"subscriptionDiscount");for(const A of P)if(A.selector.includes("badge")||A.selector.includes("__badge")){const k=g.querySelector(A.selector);k?.textContent&&!k.textContent.includes(`${p}%`)&&$(k,x=>N(x,p))}}function C(g){const P=E();if(!P)return;const A=D(o,"subscriptionCompareAt");for(const k of A){const x=g.querySelector(k.selector)||g.querySelector(`[part~="${k.selector}"]`);x?.textContent&&!x.textContent.includes(P.formattedVariantPrice)&&$(x,R=>/\d/.test(R)?P.formattedVariantPrice:R)}}function _(g,P){const A=D(o,"subscriptionCompareAt"),k=P===0?"none":"";for(const x of A){const R=g.querySelector(x.selector)||g.querySelector(`[part~="${x.selector}"]`);R&&(k==="none"?R.style.display!=="none"&&(R.style.display="none"):R.style.display==="none"&&(R.style.display=""))}}function T(g){const P=D(o,"subscriptionInput"),A=P.length?P[0].selector:'input[name="rc_plan"]',k=D(o,"subscriptionPlanDiscount"),x=k.length?k[0].selector:".rc-plans-button__discount";for(const R of Array.from(g.querySelectorAll("label"))){const O=R.querySelector(A),V=R.querySelector(x);
10if(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 Q=V.textContent.match(/[\d.]+%/)?.[0];Q&&Q!==`${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(o,"subscriptionDiscount").filter(x=>x.selector.includes("benefit")||x.selector==="rc-benefits");for(const x of k){const R=g.querySelector(x.selector);if(R?.shadowRoot){for(const 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,Q=>N(Q,P))}}}}}let w=!1;function I(){if(!w){w=!0;try{if(b(),d!==null&&Object.keys(h).length===0)return;const g=B(o);if(!g)return;S(g),l&&C(g);const P=Y(o,g);let A=p;if(P){const k=D(o,"subscriptionInput"),x=k.length?k[0].selector:'input[name="rc_plan"]',R=P.querySelector(`${x}:checked`);if(R){const 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(o);if(!P)return;const A=D(o,"onetimeToggle"),k=A.length?A[0].selector:'input[value="onetime"]';if(!P.querySelector(k)?.checked)return;const R=D(o,"subscriptionPrice");for(const 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()}pe({data:o,runUpdates:v})}async function We(a){if(a.subscriptionOneTimeDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=!!(t?.subscriptionData&&t.priceData),s=i?null:a.findActiveSubscriptionTestControl(),r=i?t:s?.hypothesis;if(!r?.subscriptionData||!r.priceData)return;const o=i?e.testId:s.testId;a.subscriptionOneTimeDone=!0;const n=r.subscriptionData,l=r.priceData,c=j(l),d=r.isControl,u=d?"control":"variant";a.slptValue=`${o}:${u}:f`,a.updatePriceTestHiddenInputs(o,u,!1);function h(){const p=B(n);if(!p)return;const b=Z(c);if(!b)return;const E=W(l),S=ce(n,b,E);if(!de(S,d))return;const C=c.get(b);if(!C)return;const _=H(C.priceInCents,l.moneyFormat,l.currency,l.currencyCodeEnabled),T=D(n,"onetimePrice");if(!T.length)return;const m=D(n,"onetimeContainer"),y=m.length?m[0].selector:'[part~="rc-purchase-option__onetime"]',I=p.querySelector(y)??p;for(const f of T){let v=null;try{v=I.querySelector(f.selector)}catch{v=null}v??=I.querySelector(`[part~="${f.selector}"]`),v&&v.textContent&&!v.textContent.includes(_)&&$(v,g=>/\d/.test(g)?_:g)}}a.subscriptionUpdateOneTime=h,h()}async function Ge(a,e){const{subscriptionPreviewRender:t}=await Ne(async()=>{const{subscriptionPreviewRender:i}=await Promise.resolve().then(()=>Xe);return{subscriptionPreviewRender:i}},void 0);return t(a.subscriptionData,a.priceData,a.isControl,e)}function je(a,e){const t=a.widget.selectors.widgetParent??[],i=a.widget.selectors.subscriptionPlans??[],s=a.widget.selectors.subscriptionInput??[];if(!t.length||!i.length||!s.length){e("[SUB-GLOBAL-HIDE] Missing required selectors â skipping");return}const r=t[0].selector,o=i[0].selector,n=s[0].selector;let l=!1,c=null,d=!1;function u(){if(!d){d=!0;try{h()}finally{d=!1}}}function h(){const C=document.querySelector(r);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(o);if(!_?.shadowRoot)return;_.shadowRoot!==c&&(c=_.shadowRoot,l=!1);let T=0;if(a.widget.widgetType==="buttons"||a.widget.widgetType==="radio"){const m=Array.from(_.shadowRoot.querySelectorAll(n));for(const f of m)if(a.planIds.includes(f.value)){f.disabled||(f.disabled=!0);const v=f.closest("label");v&&v.style.display!=="none"&&(v.style.display="none",T++)}const y=m.filter(f=>!a.planIds.includes(f.value));if(!y.some(f=>f.checked)&&!l&&y.length>0){l=!0;const f=y[0];f.closest("label")?.click(),f.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible plan input=${f.value}`)}const I=y.find(f=>f.checked)??y[0];
10if(I){const f=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const v of f)v.value!==I.value&&(v.value=I.value,e(`[SUB-GLOBAL-HIDE] Mirrored plan id ${I.value} to form selling_plan input`))}}else if(a.widget.widgetType==="dropdown"){const m=_.shadowRoot.querySelector("select");if(!m)return;for(const I of Array.from(m.options))a.planIds.includes(I.value)&&(I.style.display!=="none"&&(I.style.display="none"),I.disabled||(I.disabled=!0),T++);const y=Array.from(m.options).filter(I=>!a.planIds.includes(I.value)),w=y.some(I=>I.value===m.value);y.length>0&&!w&&!l&&(l=!0,m.value=y[0].value,m.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible option=${y[0].value}`))}T>0&&e(`[SUB-GLOBAL-HIDE] Hidden ${T} B-side plan buttons`)}const p={childList:!0,subtree:!0,characterData:!0};let b=null;function E(C){b?.disconnect(),b=new MutationObserver(()=>u()),b.observe(C,p)}function S(){const C=document.querySelector(r);if(!C?.shadowRoot)return!1;u(),new MutationObserver(()=>{u();const m=C.shadowRoot.querySelector(o);m?.shadowRoot&&E(m.shadowRoot)}).observe(C.shadowRoot,p);const T=C.shadowRoot.querySelector(o);return T?.shadowRoot&&E(T.shadowRoot),!0}if(!S()){e("[SUB-GLOBAL-HIDE] Widget not in DOM yet â waiting via MutationObserver");const C=new MutationObserver(()=>{S()&&C.disconnect()});C.observe(document.body??document.documentElement,{childList:!0,subtree:!0})}}const ue="Limited preview",Ke="Add-to-cart and checkout prices won't reflect this test until it launches â test selling plans are not created in your subscription app until after a test is launched.",Je=5e3;function Ye(){const a=document.createElement("div");a.id="shoplift-preview-subscription-warning";const e=document.createElement("span");e.id="shoplift-preview-subscription-warning__icon",e.setAttribute("aria-hidden","true"),e.textContent="!";const t=document.createElement("span");t.id="shoplift-preview-subscription-warning__label",t.textContent=ue;const i=document.createElement("div");i.id="shoplift-preview-subscription-warning__tooltip",i.setAttribute("role","tooltip"),i.textContent=Ke,a.appendChild(e),a.appendChild(t),a.appendChild(i),a.setAttribute("tabindex","0"),a.setAttribute("aria-describedby",i.id),a.setAttribute("aria-label",ue);let s=null;function r(){s!==null&&(clearTimeout(s),s=null)}function o(){i.classList.add("shoplift-preview-subscription-warning__tooltip--visible")}function n(){i.classList.remove("shoplift-preview-subscription-warning__tooltip--visible")}function l(){o(),r(),s=setTimeout(()=>{n(),s=null},Je)}function c(){r(),o()}function d(){s===null&&n()}a.addEventListener("mouseenter",c),a.addEventListener("mouseleave",d),a.addEventListener("focus",c),a.addEventListener("blur",d);function u(p){try{const b=p.target;if(!(b instanceof Element))return;(b.closest('form[action*="/cart/add"] button[type="submit"], form[action*="/cart/add"] input[type="submit"]')!==null||b.closest('[name="add"], button[name="add"], [data-add-to-cart], button[data-add-to-cart]')!==null)&&l()}catch{}}document.addEventListener("click",u,!0);function h(){r(),document.removeEventListener("click",u,!0),a.removeEventListener("mouseenter",c),a.removeEventListener("mouseleave",d),a.removeEventListener("focus",c),a.removeEventListener("blur",d),a.remove()}return{root:a,tooltip:i,cleanup:h}}let he=!1;class Ze{DATA_SL_ATTRIBUTE_P="data-sl-attribute-p";DATA_SL_TEST_ID="data-sl-test-id";VIEWPORT_TRACK_THRESHOLD=.5;temporarySessionKey="Shoplift_Session";essentialSessionKey="Shoplift_Essential";analyticsSessionKey="Shoplift_Analytics";priceSelectorsSessionKey="Shoplift_PriceSelectors_v2";shop;host;eventHost;disableReferrerOverride;legacySessionKey;cssHideClass;testConfigs;inactiveTestConfigs;hiddenSubscriptionPlans;testsFilteredByAudience;sendPageView;shopliftDebug;gaConfig;telemetryEnabled;getCountryTimeout;geoViaShopify;resolvedRegion=null;state;subscriptionPreviewWarningCleanup=null;shopifyAnalyticsId;cookie=document.cookie;isSyncing=!1;isSyncingGA=!1;fetch;localStorageSet;localStorageGet;sessionStorageSet=window.sessionStorage.setItem.bind(window.sessionStorage);sessionStorageGet=window.sessionStorage.getItem.bind(window.sessionStorage);
10urlParams=new URLSearchParams(window.location.search);device;logHistory;activeViewportObservers=new Map;clientIdRetryCount=0;constructor(e,t,i,s,r,o,n,l,c,d,u,h,p,b=!1){this.shop=e,this.host=t,this.eventHost=i,this.disableReferrerOverride=l,this.logHistory=[],this.legacySessionKey=`SHOPLIFT_SESSION_${this.shop}`,this.cssHideClass=s?"shoplift-hide":"",this.testConfigs=u.map(S=>({...S,startAt:new Date(S.startAt),statusHistory:S.statusHistory.map(C=>({...C,createdAt:new Date(C.createdAt)}))})),this.inactiveTestConfigs=h,this.hiddenSubscriptionPlans=p,this.sendPageView=!!r,this.shopliftDebug=o===!0,this.telemetryEnabled=c===!0,this.geoViaShopify=b===!0,this.gaConfig=n!=={"sendEvents":false,"mode":"gtag"}?n:{sendEvents:!1},this.fetch=window.fetch.bind(window),this.localStorageSet=window.localStorage.setItem.bind(window.localStorage),this.localStorageGet=window.localStorage.getItem.bind(window.localStorage);const E=this.getDeviceType();this.device=E!=="tablet"?E:"mobile",this.state=this.loadState(),this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.testsFilteredByAudience=u.filter(S=>
10S.status=="active"),this.getCountryTimeout=d===1000?1e3:d,window.__slReadCookie=S=>{const C=this.getCookie(S);if(C===null)return null;try{return decodeURIComponent(C)}catch{return C}},this.log("State Loaded",JSON.stringify(this.state))}deriveCategoryFromExistingTests(){if(!this.state.temporary.testCategory&&this.state.essential.visitorTests.length>0){const e=this.state.essential.visitorTests.some(t=>{if(!t.hypothesisId)return!1;const i=this.getHypothesis(t.hypothesisId);return i&&["theme","basicScript","price"].includes(i.type)});this.state.temporary.testCategory=e?"global":"conditional",this.persistTemporaryState(),this.log("Derived test category from existing visitorTests: %s",this.state.temporary.testCategory)}}async init(){try{if(this.log("Shoplift script initializing"),window.Shopify&&window.Shopify.designMode){this.log("Skipping script for design mode");return}if(window.location.href.includes("slScreenshot=true")){this.log("Skipping script for screenshot");return}if(window.location.hostname.endsWith(".edgemesh.com")){this.log("Skipping script for preview");return}if(window.location.href.includes("isShopliftMerchant")){const o=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",o),this.state.temporary.isMerchant=o,this.persistTemporaryState()}if(this.state.temporary.isMerchant){this.log("Setting up preview for merchant"),typeof window.shoplift!="object"&&this.setShopliftStub(),this.state.temporary.previewConfig||this.hidePage(),await this.initPreview(),document.querySelector("#sl-preview-bar-hide")?.remove();return}if(this.state.temporary.previewConfig=void 0,we(navigator.userAgent))return;const e=Date.now(),t=!this.state.temporary.lastSeen||e-this.state.temporary.lastSeen>1800*1e3;(!this.state.temporary.entryPage||t)&&(this.state.temporary.entryPage=K(window.location.href)),this.state.temporary.lastSeen=e,this.persistTemporaryState(),window.__slEntryPage=this.state.temporary.entryPage??"";const i=this.state.essential.visitorTests.filter(o=>o.hypothesisId&&+o.createdAt>Date.now()-6e4);if(i.length===0)this.sendDiagnosticTelemetry("page-landed",null);else for(const o of i)this.sendDiagnosticTelemetry("page-landed",o.testId,{hypothesisId:o.hypothesisId,isControl:o.assignedTo==="control",testType:o.testType??"unknown"});if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const o=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(n=>n?.json());this.log(`IP: ${o}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),ee)}).catch()}if(this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.monitorConsentChange(),this.checkForThemePreview())return;if(!this.disableReferrerOverride&&this.state.temporary.originalReferrer!=null){this.log(`Overriding referrer from '${document.referrer}' to '${this.state.temporary.originalReferrer}'`);const o=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>o,enumerable:!0,configurable:!0})}if(await this.refreshVisitor(this.shopifyAnalyticsId),await this.handleVisitorTest()){this.log("Redirecting for visitor test");return}this.setShoplift(),this.showPage(),this.ensureCartAttributesForExistingPriceTests(!1);const r=this.state.essential.visitorTests.some(o=>(o.hypothesisId?this.getHypothesis(o.hypothesisId):void 0)?.subscriptionData!=null)||Object.values(this.state.temporary.testReservations??{}).some(o=>this.getHypothesis(o.hypothesisId)?.subscriptionData!=null);this.hiddenSubscriptionPlans&&!r&&(this.log(`[SUB-GLOBAL] Visitor not in subscription test â hiding ${this.hiddenSubscriptionPlans.planIds.length} B-side plans`),je(this.hiddenSubscriptionPlans,o=>this.log(o))),await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange(),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(e){if(e instanceof ie)return;throw e}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(e){switch(e){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(e){return e.title?e.title:e.type==="price"?e.isControl?"Original prices":"Variant prices":e.isControl?"Original":"Untitled variant "+e.label.toUpperCase()}
10async 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 o=await this.makeJsonRequest({method:"get",url:r}).catch(n=>(this.log("Error getting domSelectors",n),null));if(s.variants.forEach(n=>n.domSelectors=o[n.id]?.domSelectors),s.isDraft){const n=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/subscription-preview`,l=await this.makeJsonRequest({method:"get",url:n}).catch(c=>(this.log("No subscription preview data for draft (test may not have a subscription widget)",c),null));l?.subscriptionData&&s.variants.forEach(c=>{c.subscriptionData=l.subscriptionData,c.priceData=l.priceData})}}this.persistTemporaryState();const i=new URL(window.location.toString());i.searchParams.delete("previewConfig"),this.queueRedirect(i)}else if(this.state.temporary.previewConfig){this.showPage();const t=this.state.temporary.previewConfig;if(t.testTypeCategory===M.Template&&this.handleTemplatePreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.UrlRedirect&&this.handleUrlPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Script&&this.handleScriptPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Price){const i=await this.handlePricePreview(t);t.isDraft?await this.handleSubscriptionPricePreview(t):await this.handleSubscriptionLivePreview(t),i&&this.initPreviewControls(t)}}}initPreviewControls(e){document.addEventListener("DOMContentLoaded",()=>{const t=e.variants.find(b=>b.id===e.currentVariant),i=t?.label||"a",s=e.variants,r=document.createElement("div");r.id="shoplift-preview-control";const o=document.createElement("div"),n=document.createElement("img");n.src=Ve,n.height=24,n.width=14,o.style.padding="0 16px",o.style.lineHeight="100%",o.appendChild(n),r.appendChild(o);const l=document.createElement("div");l.id="shoplift-preview-variant-selector";const c=document.createElement("button");c.id="shoplift-preview-variant-menu-trigger";const d=document.createElement("div");d.className="menu-variant-label",d.style.backgroundColor=this.getVariantColor(i).bg,d.style.color=this.getVariantColor(i).text,d.innerText=i.toUpperCase(),c.appendChild(d);const u=document.createElement("span");if(u.id="shoplift-preview-variant-title",u.innerText=t?this.getDefaultVariantTitle(t):"Untitled variant "+i.toUpperCase(),c.appendChild(u),s.length>1){const b=document.createElement("img");b.src=De,b.width=12,b.height=12,b.style.height="12px",b.style.width="12px",c.appendChild(b);const E=document.createElement("div");E.className="preview-variant-menu";for(const S of e.variants.filter(C=>C.id!==e.currentVariant)){const C=document.createElement("div");C.className="preview-variant-menu--item";const _=document.createElement("div");_.className="menu-variant-label",_.style.backgroundColor=this.getVariantColor(S.label).bg,_.style.color=this.getVariantColor(S.label).text,_.style.flexShrink="0",_.innerText=S.label.toUpperCase(),C.appendChild(_);const T=document.createElement("span");T.innerText=this.getDefaultVariantTitle(S),C.appendChild(T),C.addEventListener("click",()=>{this.pickVariant(S.id)}),E.appendChild(C)}l.appendChild(E),c.addEventListener("click",()=>{E.className!=="preview-variant-menu preview-variant-menu__visible"?E.classList.add("preview-variant-menu__visible"):E.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",S=>{S.target instanceof Element&&!c.contains(S.target)&&E.className==="preview-variant-menu preview-variant-menu__visible"&&E.classList.remove("preview-variant-menu__visible")})}else c.style.pointerEvents="none",d.style.margin="0";if(l.appendChild(c),r.appendChild(l),e.hasSubscription){this.subscriptionPreviewWarningCleanup?.();const b=Ye();r.appendChild(b.root),this.subscriptionPreviewWarningCleanup=b.cleanup}const h=document.createElement("div"),p=document.createElement("button");p.id="shoplift-exit-preview-button",p.innerText="Exit",h.appendChild(p),p.addEventListener("click",()=>{this.exitPreview()}),r.appendChild(h),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.add("visible")})}),this.ensureCartAttributesForExistingPriceTests(!0)}pickVariant(e){if(this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig,i=new URL(window.location.toString());if(t.testTypeCategory===M.UrlRedirect){const s=t.variants.find(r=>r.id===t.currentVariant)?.redirectUrl;if(i.pathname===s){const r=t.variants.find(o=>o.id===e)?.redirectUrl;r&&(i.pathname=r)}}if(t.testTypeCategory===M.Template){const s=t.variants.find(r=>r.id===t.currentVariant)?.pathName;if(s&&i.pathname===s){const r=t.variants.find(o=>o.id===e)?.pathName;r&&r!==s&&(i.pathname=r)}}t.currentVariant=e,this.persistTemporaryState(),this.queueRedirect(i)}}exitPreview(){const e=new URL(window.location.toString());if(this.state.temporary.previewConfig?.testTypeCategory===M.Template&&e.searchParams.delete("view"),this.state.temporary.previewConfig?.testTypeCategory===M.Script&&e.searchParams.delete("slVariant"),this.state.temporary.previewConfig?.testTypeCategory===M.UrlRedirect){const i=this.state.temporary.previewConfig.variants.filter(r=>!r.isControl&&r.redirectUrl!==null).map(r=>r.redirectUrl),s=this.state.temporary.previewConfig.variants.find(r=>r.label==="a")?.redirectUrl;i.includes(e.pathname)&&s&&(e.pathname=s)}this.state.temporary.isMerchant=!1,e.searchParams.delete("isShopliftMerchant"),this.state.temporary.previewConfig=void 0,this.persistTemporaryState(),this.subscriptionPreviewWarningCleanup?.(),this.subscriptionPreviewWarningCleanup=null,this.hidePage(),this.queueRedirect(e)}handleTemplatePreview(e){const t=e.currentVariant,i=e.variants.find(l=>l.id===t);if(!i)return!1;const s=e.variants.find(l=>l.isControl);if(!s)return!1;this.log("Setting up template preview for type",s.type);
10const r=new URL(window.location.toString()),o=r.searchParams.get("view"),n=i.type===s.type;return!n&&!i.isControl&&template.suffix===s.affix&&this.typeFromTemplate()===s.type&&i.pathName!==null?(this.log("Hit control template type, redirecting to the variant url"),this.hidePage(),r.pathname=i.pathName,this.queueRedirect(r),!0):(!i.isControl&&this.typeFromTemplate()==i.type&&template.suffix===s.affix&&n&&o!==(i.affix||"__DEFAULT__")&&(this.log("Template type and affix match control, updating the view param"),r.searchParams.delete("view"),this.log("Setting the new viewParam to",i.affix||"__DEFAULT__"),this.hidePage(),r.searchParams.set("view",i.affix||"__DEFAULT__"),this.queueRedirect(r)),o!==null&&o!==(i.affix||"__DEFAULT__")&&(r.searchParams.delete("view"),this.hidePage(),this.queueRedirect(r)),!0)}handleUrlPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t),s=e.variants.find(o=>o.isControl)?.redirectUrl;if(!i)return!1;this.log("Setting up URL redirect preview");const r=new URL(window.location.toString());return r.pathname===s&&!i.isControl&&i.redirectUrl!==null&&(this.log("Url matches control, redirecting"),this.hidePage(),r.pathname=i.redirectUrl,this.queueRedirect(r)),!0}handleScriptPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t);if(!i)return!1;this.log("Setting up script preview");const s=new URL(window.location.toString());return s.searchParams.get("slVariant")!==i.id&&(this.log("current id doesn't match the variant, redirecting"),s.searchParams.delete("slVariant"),this.log("Setting the new slVariantParam"),this.hidePage(),s.searchParams.set("slVariant",i.id),this.queueRedirect(s)),!0}async handlePricePreview(e){const t=e.currentVariant,i=e.variants.find(s=>s.id===t);return i?(this.log("Setting up price preview"),i.domSelectors&&i.domSelectors.length>0&&(U(document,{testId:e.testId,hypothesisId:i.id,selectors:i.domSelectors}),this.ensureCartAttributesForExistingPriceTests(!0)),!0):!1}async handleSubscriptionPricePreview(e){const t=e.variants.find(i=>i.id===e.currentVariant);t?.subscriptionData&&(this.log("Setting up subscription price preview"),await Ge({id:t.id,isControl:t.isControl,subscriptionData:t.subscriptionData,priceData:t.priceData},(i,...s)=>this.log(i,...s)))}async handleSubscriptionLivePreview(e){this.testConfigs.find(s=>s.id===e.testId)?.hypotheses.find(s=>s.id===e.currentVariant)?.subscriptionData&&(this.log("Setting up subscription live preview"),this.subscriptionSwapDone=!1,this.subscriptionOneTimeDone=!1,this.subscriptionPriceDone=!1,await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange())}async finalize(){const e=await this.getCartState();e!==null&&this.queueCartUpdate(e),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),t)return this.log("Forcing variant for hypothesis '%s'",s),!0;if(i!==null)return this.log("Forcing hypothesis '%s'",i),s===i;const r=this.testConfigs.find(n=>n.hypotheses.some(l=>l.id===s));if(!r)return this.log("No test found for hypothesis '%s'",s),!1;const o=this.state.essential.visitorTests.find(n=>n.testId===r.id);return o?(this.log("Active visitor test found",s),o.hypothesisId===s):(await this.manuallySplitVisitor(r),this.testConfigs.some(n=>n.hypotheses.some(l=>l.id===s&&this.state.essential.visitorTests.some(c=>c.hypothesisId===l.id))))},setAnalyticsConsent:async s=>{await this.onConsentChange(s,!0)},getVisitorData:()=>({visitor:this.state.analytics.visitor,visitorTests:this.state.essential.visitorTests.filter(s=>!s.isInvalid).map(s=>{const{shouldSendToGa:r,savedAt:o,...n}=s;return n})})}}setShopliftStub(){this.log("Setting up stubbed public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:s=>Promise.resolve(t||s===i),setAnalyticsConsent:()=>Promise.resolve(),getVisitorData:()=>({visitor:null,visitorTests:[]})}}async manuallySplitVisitor(e){this.log("Starting manual split for test '%s'",e.id),await this.handleVisitorTest([e]);const t=this.getReservationForTest(e.id);t&&!t.isRealized&&t.entryCriteriaKey&&(this.log("Realizing manual API reservation for test '%s'",e.id),this.realizeReservationForCriteria(t.entryCriteriaKey)),this.saveState(),this.syncAllEvents()}async handleVisitorTest(e){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests),this.pruneStaleVisitorTests(),this.deriveC
10ategoryFromExistingTests(),this.clearStaleReservations();let t=e?e.filter(i=>this.testsFilteredByAudience.some(s=>s.id===i.id)):[...this.testsForUrl(this.testsFilteredByAudience),...this.domTestsForUrl(this.testsFilteredByAudience)];try{if(t.length===0)return this.log("No tests found"),!1;this.log("Checking for existing visitor test on page");const i=this.getCurrentVisitorHypothesis(t);if(i){this.log("Found current visitor test");const l=this.considerRedirect(i);return l&&(this.log("Redirecting for current visitor test"),this.redirect(i)),l}const s=this.getReservationForCurrentPage();if(s){this.log("Found matching reservation for current page: %s",s.testId);const l=this.getHypothesis(s.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(s.entryCriteriaKey);const c=this.considerRedirect(l);return c&&this.redirect(l),c}}this.log("No active test relation for test page");const r=this.testsForUrl(this.inactiveTestConfigs.filter(l=>this.testIsPaused(l)&&l.hypotheses.some(c=>this.state.essential.visitorTests.some(d=>d.hypothesisId===c.id)))).map(l=>l.id);if(r.length>0)return this.log("Visitor has paused tests for test page, skipping test assignment: %o",r),!1;if(!this.state.temporary.testCategory){const l=this.testsFilteredByAudience.filter(d=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d))),c=this.testsFilteredByAudience.filter(d=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d)));if(this.log("Category dice roll - global tests: %o, conditional tests: %o",l.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)})),c.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)}))),l.length>0&&c.length>0){const d=l.length,u=c.length,h=d+u,p=Math.random()*h;this.state.temporary.testCategory=p<d?"global":"conditional",this.log("Category dice roll: rolled %.2f of %d (global weight: %d, conditional weight: %d), selected '%s'",p,h,d,u,this.state.temporary.testCategory)}else l.length>0?(this.state.temporary.testCategory="global",this.log("Only global tests available, setting category to global")):(this.state.temporary.testCategory="conditional",this.log("Only conditional tests available, setting category to conditional"));this.persistTemporaryState()}const o=this.state.temporary.testCategory;if(this.log("Visitor test category: %s",o),o==="global"){const l=this.testsFilteredByAudience.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:global");t=t.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}else{const l=this.testsFilteredByAudience.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:conditional");t=t.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}if(t.length===0)return this.log("No tests remaining after category filter"),!1;this.createReservations(t);const n=this.getReservationForCurrentPage();if(n&&!n.isRealized){const l=this.getHypothesis(n.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(n.entryCriteriaKey);const c=this.considerRedirect(l);return c&&(this.log("Redirecting for new test"),this.redirect(l)),c}}return!1}finally{this.includeInDomTests(),this.saveState()}}includeInDomTests(){this.applyControlForAudienceFilteredPriceTests();const e=this.getDomTestsForCurrentUrl(),t=this.getVisitorDomHypothesis(e);for(const i of e){this.log("Evaluating dom test '%s'",i.id);const s=i.hypotheses.some(p=>p.type==="price");if(this.state.essential.visitorTests.find(p=>p.testId===i.id&&p.isInvalid&&!p.hypothesisId)){if(this.log("Visitor is blocked from test '%s', applying control prices if price test",i.id),s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for blocked visitor, no metrics tracked")}),this.updatePriceTestHiddenInputs(i.id,"control",!1))}continue}const o=this.getReservationForTest(i.id);let n=null,l=!1;const c=t.find(p=>i.hypotheses.some(b=>p.id===b.id));if(o)n=this.getHypothesis(o.hypothesisId)??null,this.log("Using reserved hypothesis '%s' for test '%s'",o.hypothesisId,i.id);else if(c)n=c,this.log("Using existing hypothesis assignment for test '%s'",i.id);else if(s){const p=this.visitorActiveTestTypeWithReservations();p?(l=!0,this.log("Visitor already in test type '%s', treating as non-test for price test '%s'",p,i.id)):n=this.pickHypothesis(i)}else n=this.pickHypothesis(i);if(l&&s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.log("Applying control prices for non-test visitor on price test '%s' (Map-based)",i.id),this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for non-test visitor, no metrics tracked")}
10),this.updatePriceTestHiddenInputs(i.id,"control",!1));continue}if(!n){this.log("Failed to pick hypothesis for test");continue}this.sendDiagnosticTelemetry("assignment",i.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const d=i.bayesianRevision??4,u=n.type==="price",h=d>=5;if(u&&h){if(this.log(`Price test with Map-based lookup (v${d}): ${i.id}`),!n.priceData){this.log("No price data for hypothesis '%s', skipping",n.id);continue}const p=n.isControl?"control":"variant";this.log(`Setting up Map-based price test for ${p} (test: ${i.id})`),this.applyPriceTestWithMapLookup(i.id,n,i.hypotheses,b=>{const E=this.getReservationForTest(b);E&&!E.isRealized&&E.entryCriteriaKey?this.realizeReservationForCriteria(E.entryCriteriaKey):this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(u&&!h){this.log(`Price test without viewport tracking (v${d}): ${i.id}`);const p=this.getDomSelectorsForHypothesis(n);if(p.length===0)continue;U(document,{testId:i.id,hypothesisId:n.id,selectors:p},b=>{this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(!n.domSelectors||n.domSelectors.length===0){this.log("No selectors found, skipping hypothesis");continue}U(document,{testId:i.id,hypothesisId:n.id,selectors:n.domSelectors},p=>{this.queueAddVisitorToTest(p,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()})}}considerRedirect(e){if(this.log("Considering redirect for hypothesis '%s'",e.id),e.isControl)return this.log("Skipping redirect for control"),!1;if(e.type==="basicScript"||e.type==="manualScript")return this.log("Skipping redirect for script test"),!1;const t=this.state.essential.visitorTests.find(o=>o.hypothesisId===e.id),i=new URL(window.location.toString()),r=new URLSearchParams(window.location.search).get("view");if(e.type==="theme"){if(!(e.themeId===themeId)){if(this.log("Theme id '%s' is not hypothesis theme ID '%s'",e.themeId,themeId),this.isAppProxyPath())return this.log("On App Proxy path, skipping theme redirect to avoid infinite loop"),!1;if(t&&t.themeId!==e.themeId&&(t.themeId===themeId||!this.isThemePreview()))this.log("On old theme, redirecting and updating local visitor"),t.themeId=e.themeId;else if(this.isThemePreview())return this.log("On non-test theme, skipping redirect"),!1;return this.log("Hiding page to redirect for theme test"),this.hidePage(),!0}return!1}else if(e.type!=="dom"&&e.type!=="price"&&e.affix!==template.suffix&&e.affix!==r||e.redirectPath&&!i.pathname.endsWith(e.redirectPath))return this.log("Hiding page to redirect for template test"),this.hidePage(),!0;return this.log("Not redirecting"),!1}redirect(e){if(this.log("Redirecting to hypothesis '%s'",e.id),e.isControl)return;const t=new URL(window.location.toString());if(t.searchParams.delete("view"),e.redirectPath){const n=RegExp("^(/w{2}-w{2})/").exec(t.pathname);if(n&&n.length>1){const l=n[1];t.pathname=`${l}${e.redirectPath}`}else t.pathname=e.redirectPath}else e.type==="theme"?(t.searchParams.set("_ab","0"),t.searchParams.set("_fd","0"),t.searchParams.set("_sc","1"),t.searchParams.set("preview_theme_id",e.themeId.toString())):e.type!=="urlRedirect"&&t.searchParams.set("view",e.affix);const i=this.state.essential.visitorTests.find(n=>n.hypothesisId===e.id)?.testId,s=t.pathname+t.search,r=window.location.pathname+window.location.search,o=K(t.hash);if(i&&s!==r&&!o){const n=qe(),l=He({v:2,t:i,n,fh:Me(window.location.pathname+window.location.search)});t.hash=`slr-${n}`;const c=new Date(Date.now()+3e4).toUTCString();document.cookie=`shoplift_redirect=${l};domain=.${window.location.hostname};path=/;SameSite=Strict;expires=${c}`}s===r&&this.showPage(),this.queueRedirect(t)}async refreshVisitor(e){if(e===null||!this.state.essential.isFirstLoad||!this.testConfigs.some(i=>i.visitorOption!=="all"))return;this.log("Refreshing visitor"),this.hidePage();const t=await this.getVisitor(e);t&&t.id&&this.updateLocalVisitor(t)}buildBaseVisitor(){return{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.device,country:null,...this.state.essential.initialState}}getInitialState(){const e=this.getUTMValue("utm_source")??"",t=this.getUTMValue("utm_medium")??"",i=this.getUTMValue("utm_campaign")??"",s=this.getUTMValue("utm_content")??"",r=window.document.referrer,o=this.device;return{createdAt:new Date,utmSource:e,utmMedium:t,utmCampaign:i,utmContent:s,referrer:r,device:o}}checkForThemePreview(){return this.log("Checking for theme preview"),window.location.hostname.endsWith(".shopifypreview.com")?(this.log("on shopify preview domain"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!1):this.isThemePreview()?this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("On active theme test, remov
10ing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&!this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("Visitor is on an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.state.essential.isFirstLoad?(this.log("No visitor found on theme preview, redirecting to main theme"),this.redirectToMainTheme(),!0):this.inactiveTestConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Current theme is an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.testConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Falling back to clearing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):(this.log("No tests on current theme, skipping script"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!0):(this.log("Not on theme preview"),this.clearThemeBar(!0,!1,this.state),!1)}redirectToMainTheme(){this.hidePage();const e=new URL(window.location.toString());e.searchParams.set("preview_theme_id",""),this.queueRedirect(e)}testsForUrl(e){const t=new URL(window.location.href),i=this.typeFromTemplate();return e.filter(s=>s.hypotheses.some(r=>r.type!=="dom"&&r.type!=="price"&&(r.isControl&&r.type===i&&r.affix===template.suffix||r.type==="theme"||r.isControl&&r.type==="urlRedirect"&&r.redirectPath&&t.pathname.endsWith(r.redirectPath)||r.type==="basicScript"))&&(s.ignoreTestViewParameterEnforcement||!t.searchParams.has("view")||s.hypotheses.map(r=>r.affix).includes(t.searchParams.get("view")??"")))}domTestsForUrl(e){const t=new URL(window.location.href);return e.filter(i=>i.hypotheses.some(s=>s.type!=="dom"&&s.type!=="price"?!1:s.type==="price"&&s.priceData&&s.priceData.variants.length>0?!0:s.domSelectors&&s.domSelectors.some(r=>new RegExp(se(r)).test(K(t.toString())))))}async filterTestsByAudience(e,t,i){const s=[],r=e.some(n=>(n.requiresRegion||this.geoViaShopify&&n.requiresCountry)&&!i.some(l=>l.testId===n.id));this.resolvedRegion===null&&r&&(this.log("Hiding page to wait for Shopify region resolution"),this.hidePage(),await this.waitForResolvedRegion()),window.__slRegion=this.resolvedRegion??"";let o=t.country;this.geoViaShopify?o=this.resolvedRegion?this.resolvedRegion.slice(0,2):o:!o&&e.some(n=>n.requiresCountry&&!i.some(l=>l.testId===n.id))&&(this.log("Hiding page to check geoip"),this.hidePage(),o=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/get-country`,signal:AbortSignal.timeout(this.getCountryTimeout)}).catch(n=>(this.log("Error getting country",n),null)));for(const n of e){if(this.log("Checking audience for test '%s'",n.id),this.state.essential.visitorTests.some(d=>d.testId===n.id&&d.hypothesisId==null)){console.log(`Skipping blocked test '${n.id}'`);continue}const l=this.visitorCreatedDuringTestActive(n.statusHistory);(i.some(d=>d.testId===n.id&&(n.device==="all"||n.device===t.device&&n.device===this.device))||this.isTargetAudience(n,t,l,o))&&(this.log("Visitor is in audience for test '%s'",n.id),s.push(n))}this.testsFilteredByAudience=s}async waitForResolvedRegion(e=1500,t=50){const i=Date.now();for(;this.resolvedRegion===null&&Date.now()-i<e;)await new Promise(s=>window.setTimeout(s,t))}isTargetAudience(e,t,i,s){const r=this.getChannel(t);return(e.device==="all"||e.device===t.device&&e.device===this.device)&&(e.visitorOption==="all"||e.visitorOption==="new"&&i||e.visitorOption==="returning"&&!i)&&(e.targetAudiences.length===0||e.targetAudiences.reduce((o,n)=>o||n.reduce((l,c)=>l&&c(t,i,r,s),!0),!1))}visitorCreatedDuringTestActive(e){let t="";for(const i of e){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;t=i.status}return t==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(e){return e.flatMap(t=>t.hypotheses).find(t=>t.type!=="dom"&&t.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getVisitorDomHypothesis(e){return e.flatMap(t=>t.hypotheses).filter(t=>(t.type==="dom"||t.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getHypothesis(e){return this.testConfigs.filter(t=>t.hypotheses.some(i=>i.id===e)).map(t=>t.hypotheses.find(i=>i.id===e))[0]}getActiveAssignment(){if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;return t.currentVariant&&t.testId?{testId:t.testId,hypothesisId:t.currentVariant}:null}const e=this.state.essential.visitorTests.find(t=>t.hypothesisId);return e?.hypothesisId?{testId:e.testId,hypothesisId:e.hypothesisId}:null}findActiveSubscriptionTestControl(){for(const e of this.testConfigs){const t=e.hypotheses.find(i=>i.isControl);if(t?.subscriptionData)return{testId:e.id,hypothesis:t}}return null}getDomSelectorsForHypothesis(e){if(!e)return[];if(e.domSelectors&&e.domSelectors.length>0)return e.domSelectors;if(e.priceData){const t=`${this.priceSelectorsSessionKey}_${e.id}`;try{const s=sessionStorage.getItem(t);if(s){const r=JSON.parse(s);return e.domSelectors=r,this.log("Loaded %d price selectors from cache for hypothesis '%s'",r.length,e.id),r}}catch{}const i=$e(e.priceData);e.domSelectors=i;try{sessionStorage.setItem(t,JSON.stringify(i)),this.log("Generated and cached %d price selectors for hypothesis '%s'",i.length,e.id)}catch{this.log("Generated %d price selectors for hypothesis '%s' (cache unavailable)",i.length,e.id)}return i}return[]}hasThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(e){return this.hasThemeTest(e)&&this.hasTestThatIsNotThemeTest(e)}testIsPaused(e){return e.status==="paused"||e.status==="incompatible"||e.status==="suspended"}visitorActiveTestType(){const e=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==t.hypothesisId)));return e.length===0?null:e.some(t=>t.isThemeTest)?"theme":"templateOrUrlRedirect"}getReservationType(e){return e==="price"||this.isTemplateTestType(e)?"deferred":"immediate"}isTemplateTestType(e){return["product","collection","landing","index","cart","search","blog","article","collectionList"].includes(e)}getEntryCriteriaKey(e){const t=e.hypotheses.find(i=>i.isControl);if(!t)return`unknown:${e.id}`;switch(t.type){case"theme":return"global:theme";case"basicScript":return"global:autoApi";case"price":return"global:price";case"manualScript":return`conditional:manualApi:${e.id}`;case"urlRedirect":return`conditional:url:${t.redirectPath||"unknown"}`;default:return`conditional:template:${t.type}`}}isGlobalEntryCriteria(e){return e.startsWith("global:")}groupTestsByEntryCriteria(e){const t=new Map;for(const i of e){const s=this.getEntryCriteriaKey(i),r=t.get(s)||[];r.push(i),t.set(s,r)}return t}doesCurrentPageMatchEntryCriteria(e){if(this.isGlobalEntryCriteria(e))return!0;
10if(e==="conditional:manualApi")return!1;if(e.startsWith("conditional:url:")){const t=e.replace("conditional:url:","");return window.location.pathname.endsWith(t)}if(e.startsWith("conditional:template:")){const t=e.replace("conditional:template:","");return this.typeFromTemplate()===t}return!1}hasActiveReservation(){const e=this.getActiveReservations();return Object.values(e).some(t=>!t.isRealized)}getActiveReservation(){const e=this.getActiveReservations();return Object.values(e).find(t=>!t.isRealized)??null}clearStaleReservations(){const e=this.state.temporary.testReservations;if(!e)return;let t=!1;for(const[i,s]of Object.entries(e)){const r=this.testConfigs.find(n=>n.id===s.testId);if(!r){this.log("Test '%s' no longer in config, clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0;continue}if(r.status!=="active"){this.log("Test '%s' status is '%s', clearing reservation for criteria '%s'",s.testId,r.status,i),delete e[i],t=!0;continue}this.testsFilteredByAudience.some(n=>n.id===s.testId)||(this.log("Visitor no longer passes audience for test '%s', clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0)}t&&this.persistTemporaryState()}createReservations(e){if(this.state.temporary.testReservations||(this.state.temporary.testReservations={}),this.state.temporary.rolledEntryCriteria||(this.state.temporary.rolledEntryCriteria=[]),this.state.temporary.testCategory==="global"){this.createSingleReservation(e,"global");return}const i=e.filter(n=>this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n))),s=e.filter(n=>!this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n)));this.log("Conditional tests split - matching current page: %d, not matching: %d",i.length,s.length),i.length>0&&this.log("Tests matching current page (same pool): %o",i.map(n=>({id:n.id,title:n.title,criteria:this.getEntryCriteriaKey(n)})));const r=`conditional:current-page:${this.typeFromTemplate()}`;if(i.length>0&&!this.state.temporary.rolledEntryCriteria.includes(r)){this.createSingleReservation(i,r);for(const n of i){const l=this.getEntryCriteriaKey(n);this.state.temporary.rolledEntryCriteria.includes(l)||this.state.temporary.rolledEntryCriteria.push(l)}}const o=this.groupTestsByEntryCriteria(s);for(const[n,l]of o){if(this.state.temporary.rolledEntryCriteria.includes(n)){this.log("Already rolled for criteria '%s', skipping",n);continue}if(l.some(S=>this.state.essential.visitorTests.some(C=>C.testId===S.id))){this.log("Visitor already has VT for criteria '%s', skipping",n),this.state.temporary.rolledEntryCriteria.push(n);continue}const d=[...l].sort((S,C)=>S.id.localeCompare(C.id));this.log("Test dice roll for criteria '%s' - available tests: %o",n,d.map(S=>({id:S.id,title:S.title})));const u=Math.floor(Math.random()*d.length),h=d[u];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",u+1,l.length,h.id,h.title);const p=this.pickHypothesis(h);if(!p){this.log("No hypothesis picked for test '%s'",h.id);continue}this.sendDiagnosticTelemetry("assignment",h.id,{hypothesisId:p.id,isControl:p.isControl,testType:p.type});const b=this.getReservationType(p.type),E={testId:h.id,hypothesisId:p.id,testType:p.type,reservationType:b,isThemeTest:p.type==="theme",themeId:p.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:n};this.state.temporary.testReservations[n]=E,this.state.temporary.rolledEntryCriteria.push(n),this.log("Created %s reservation for test '%s' (criteria: %s)",b,h.id,n);for(const S of l)S.id!==h.id&&this.markTestAsBlocked(S,n)}this.persistTemporaryState()}createSingleReservation(e,t){if(this.state.temporary.rolledEntryCriteria.includes(t)){this.log("Already rolled for pool '%s', skipping",t);return}if(e.some(u=>this.state.essential.visitorTests.some(h=>h.testId===u.id&&!h.isInvalid))){this.log("Visitor already has VT for pool '%s', skipping",t),this.state.temporary.rolledEntryCriteria.push(t);return}if(e.length===0){this.log("No tests in pool '%s'",t);return}const s=[...e].sort((u,h)=>u.id.localeCompare(h.id));this.log("Test dice roll for pool '%s' - available tests: %o",t,s.map(u=>({id:u.id,title:u.title,criteria:this.getEntryCriteriaKey(u)})));const r=Math.floor(Math.random()*s.length),o=s[r];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",r,e.length,o.id,o.title);const n=this.pickHypothesis(o);if(!n){this.log("No hypothesis picked for test '%s'",o.id);return}this.sendDiagnosticTelemetry("assignment",o.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const l=this.getReservationType(n.type),c=this.getEntryCriteriaKey(o),d={testId:o.id,hypothesisId:n.id,testType:n.type,reservationType:l,isThemeTest:n.type==="theme",themeId:n.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:c};this.state.temporary.testReservations[c]=d,this.state.temporary.rolledEntryCriteria.push(t),this.log("Created %s reservation for test '%s' from pool '%s' (criteria: %s)",l,o.id,t,c);for(const u of e)u.id!==o.id&&this.markTestAsBlocked(u,`pool:${t}`);this.persistTemporaryState()}markTestAsBlocked(e,t){this.state.essential.visitorTests.some(i=>i.testId===e.id)||(this.log("Blocking visitor from test '%s' (reason: %s)",e.id,t),this.state.essential.visitorTests.push({createdAt:new Date,testId:e.id,hypothesisId:null,isThemeTest:e.hypotheses.some(i=>
10i.type==="theme"),shouldSendToGa:!1,isSaved:!0,isInvalid:!0,themeId:void 0}))}realizeReservationForCriteria(e){const t=this.state.temporary.testReservations?.[e];if(!t)return this.log("No reservation found for criteria '%s'",e),!1;if(t.isRealized)return this.log("Reservation already realized for criteria '%s'",e),!1;if(this.state.essential.visitorTests.some(s=>s.testId===t.testId&&!s.isInvalid))return this.log("Visitor already assigned to test '%s'",t.testId),!1;const i=this.getHypothesis(t.hypothesisId);return i?(t.isRealized=!0,this.persistTemporaryState(),this.queueAddVisitorToTest(t.testId,i),this.saveState(),this.log("Realized reservation for test '%s' (criteria: %s)",t.testId,e),!0):(this.log("Hypothesis '%s' not found",t.hypothesisId),!1)}getActiveReservations(){return this.state.temporary.testReservations??{}}getReservationForCurrentPage(){const e=this.getActiveReservations();for(const[t,i]of Object.entries(e)){if(i.isRealized)continue;const s=this.testConfigs.find(r=>r.id===i.testId);if(!(!s||s.status!=="active")&&this.doesCurrentPageMatchEntryCriteria(t))return i}return null}getReservationForTest(e){const t=this.getActiveReservations();return Object.values(t).find(i=>i.testId===e)??null}getReservationTestType(){const e=this.getActiveReservations(),t=Object.values(e);if(t.length===0)return null;for(const i of t)if(i.isThemeTest)return"theme";for(const i of t)if(i.testType==="price")return"price";return t.some(i=>!i.isRealized)?"templateOrUrlRedirect":null}hasPriceTests(e){return e.some(t=>t.hypotheses.some(i=>i.type==="price"))}_priceTestProductIds=null;getPriceTestProductIds(){if(this._priceTestProductIds)return this._priceTestProductIds;const e=new Set;for(const t of this.testConfigs)for(const i of t.hypotheses)if(i.type==="price"){for(const s of i.domSelectors||[]){const r=s.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);r?.[1]&&e.add(r[1])}if(i.priceData?.variants)for(const[s]of i.priceData.variants)e.add(s)}return this._priceTestProductIds=e,this.log("Built price test product ID cache with %d products",e.size),e}isProductInAnyPriceTest(e){return this.getPriceTestProductIds().has(e)}visitorActiveTestTypeWithReservations(){const e=this.getActiveReservations();for(const r of Object.values(e)){if(r.isThemeTest)return"theme";if(r.testType==="price")return"price"}if(Object.values(e).some(r=>!r.isRealized)){if(this.state.temporary.testCategory==="global")for(const o of Object.values(e)){if(o.testType==="theme")return"theme";if(o.testType==="price")return"price";if(o.testType==="basicScript")return"theme"}return"templateOrUrlRedirect"}const i=this.state.essential.visitorTests.filter(r=>!r.isInvalid&&this.testConfigs.some(o=>o.hypotheses.some(n=>n.id===r.hypothesisId)));return i.length===0?null:i.some(r=>this.getHypothesis(r.hypothesisId)?.type==="price")?"price":i.some(r=>r.isThemeTest)?"theme":"templateOrUrlRedirect"}applyControlForAudienceFilteredPriceTests(){const e=this.testConfigs.filter(s=>s.status==="active"&&s.hypotheses.some(r=>r.type==="price"));if(e.length===0)return;const t=this.testsFilteredByAudience.filter(s=>s.hypotheses.some(r=>r.type==="price")),i=e.filter(s=>!t.some(r=>r.id===s.id));if(i.length!==0){this.log("Found %d price tests filtered by audience, applying control selectors",i.length);for(const s of i){const r=s.hypotheses.find(c=>c.isControl),o=this.getDomSelectorsForHypothesis(r);if(o.length===0){this.log("No control selectors for audience-filtered price test '%s'",s.id);continue}const n=new URL(window.location.href);o.some(c=>{try{return new RegExp(se(c)).test(K(n.toString()))}catch{return!1}})&&(this.log("Applying control selectors for audience-filtered price test '%s'",s.id),U(document,{testId:s.id,hypothesisId:r.id,selectors:o},()=>{}),this.updatePriceTestHiddenInputs(s.id,"control",!1))}}}pickHypothesis(e){let t=Math.random();const i=e.hypotheses.reduce((r,o)=>r+o.visitorCount,0);return e.hypotheses.sort((r,o)=>r.isControl?o.isControl?0:-1:o.isControl?1:0).reduce((r,o)=>{if(r!==null)return r;const l=e.hypotheses.reduce((c,d)=>c&&d.visitorCount>20,!0)?o.visitorCount/i-o.trafficPercentage:0;return t<=o.trafficPercentage-l?o:(t-=o.trafficPercentage-l,null)},null)}typeFromTemplate(){switch(template.type){case"list-collections":return"collectionList";case"page":return"landing";case"article":case"blog":case"cart":case"collection":case"index":case"product":case"search":return template.type;default:return null}}queueRedirect(e){this.saveState(),this.disableReferrerOverride||(this.log(`Saving temporary referrer override '${document.referrer}'`),this.state.temporary.originalReferrer=document.referrer,this.persistTemporaryState()),window.setTimeout(()=>window.location.assign(e),0),window.setTimeout(()=>{this.syncAllEvents()},2e3)}scheduleRetrySync(){this.clientIdRetryCount>=5||(this.clientIdRetryCount++,window.setTimeout(()=>{this.syncAllEvents()},500))}async syncAllEvents(){const e=async()=>
10{if(this.isSyncing){window.setTimeout(()=>{(async()=>await e())()},500);return}try{if(this.isSyncing=!0,this.syncGAEvents(),this.shopifyAnalyticsId||(this.shopifyAnalyticsId=this.getShopifyAnalyticsId()),!this.shopifyAnalyticsId){this.scheduleRetrySync();return}await this.syncEvents()}finally{this.isSyncing=!1}};await e()}async syncEvents(){if(!this.state.essential.consentApproved||!this.shopifyAnalyticsId||this.state.analytics.queue.length===0)return;const e=this.state.analytics.queue.length,t=this.state.analytics.queue.splice(0,e);this.log("Syncing %s events",e);try{const i={shop:this.shop,visitorDetails:{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.state.analytics.visitor?.device??this.device,country:this.state.analytics.visitor?.country??null,...this.state.essential.initialState},events:this.state.essential.visitorTests.filter(r=>!r.isInvalid&&!r.isSaved&&r.hypothesisId!=null).map(r=>new be(r.testId,r.hypothesisId,r.createdAt)).concat(t)};await this.sendEvents(i);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved&&o.hypothesisId!=null))this.sendDiagnosticTelemetry("event-delivered",r.testId,{hypothesisId:r.hypothesisId,isControl:r.assignedTo==="control",testType:r.testType??"unknown"});const s=await this.getVisitor(this.shopifyAnalyticsId);s!==null&&this.updateLocalVisitor(s);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved))r.isSaved=!0,r.savedAt=Date.now()}catch{this.state.analytics.queue.splice(0,0,...t)}finally{this.saveState()}}syncGAEvents(){if(!this.gaConfig.sendEvents){if(he)return;he=!0,this.log("UseGtag is false â skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const e=this.state.essential.visitorTests.filter(t=>t.shouldSendToGa);e.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",e.length),Promise.allSettled(e.map(t=>this.sendGAEvent(t))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(e){return new Promise(t=>{this.log("Sending GA Event for test %s, hypothesis %s",e.testId,e.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",e.hypothesisId),e.shouldSendToGa=!1,this.persistEssentialState(),t()},s={exp_variant_string:`SL-${e.testId}-${e.hypothesisId}`};
10this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(o,n,l){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}this.gaConfig.mode==="gtag"?r("event","experience_impression",{...s,event_callback:i}):(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"experience_impression",...s,eventCallback:i}))})}updateLocalVisitor(e){let t;({visitorTests:t,...this.state.analytics.visitor}=e),this.log("updateLocalVisitor - server returned %d tests: %o",t.length,t.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isInvalid:s.isInvalid}))),this.log("updateLocalVisitor - local has %d tests: %o",this.state.essential.visitorTests.length,this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid})));const i=300*1e3;for(const s of this.state.essential.visitorTests.filter(r=>r.isSaved&&(!r.savedAt||Date.now()-r.savedAt>i)&&!t.some(o=>o.testId===r.testId)))this.log("updateLocalVisitor - marking LOCAL test as INVALID (isSaved && not in server): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),s.isInvalid=!0;for(const s of t){const r=this.state.essential.visitorTests.findIndex(n=>n.testId===s.testId);if(!(r!==-1))this.log("updateLocalVisitor - ADDING server test (not found locally): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),this.state.essential.visitorTests.push(s);else{const n=this.state.essential.visitorTests.at(r);this.log("updateLocalVisitor - REPLACING local test with server test: testId=%s, local hypothesisId=%s -> server hypothesisId=%s, local isInvalid=%s -> false",s.testId,n?.hypothesisId,s.hypothesisId,n?.isInvalid),s.isInvalid=!1,s.shouldSendToGa=n?.shouldSe
10ndToGa??!1,s.testType=n?.testType,s.assignedTo=n?.assignedTo,s.testTitle=n?.testTitle,this.state.essential.visitorTests.splice(r,1,s)}}this.log("updateLocalVisitor - FINAL local tests: %o",this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid}))),this.state.analytics.visitor.storedAt=new Date}async getVisitor(e){try{return await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/by-key/${this.shop}/${e}`})}catch{return null}}async sendEvents(e){await this.makeRequest({method:"post",url:`${this.eventHost}/api/v0/events`,data:JSON.stringify(e)})}sendDiagnosticTelemetry(e,t,i){if(!this.telemetryEnabled||!navigator.sendBeacon)return;const s=this.state.essential.consentApproved,r=JSON.stringify({shop:this.shop,testId:t,checkpoint:e,device:this.device,...s?{visitorId:this.shopifyAnalyticsId??"unknown"}:{},clientTimestamp:Date.now(),consentApproved:s,hasConsentInteraction:this.state.essential.hasConsentInteraction,...i});navigator.sendBeacon(`${this.eventHost}/api/v0/telemetry`,new Blob([r],{type:"text/plain"}))}getUTMValue(e){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 )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}function t(){let i=!1;return(function(s){(/android|ipad|playbook|silk/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
10sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}return e()?"mobile":t()?"tablet":"desktop"}removeAsyncHide(e){return()=>{e&&window.document.documentElement.classList.remove(e)}}async getCartState(){try{let e=await this.makeJsonRequest({method:"get",url:`${window.location.origin}/cart.js`});return e===null||(e.note===null&&(e=await this.makeJsonRequest({method:"post",url:`${window.location.origin}/cart/update.js`,data:JSON.stringify({note:""})})),e==null)?null:{token:e.token,total_price:e.total_price,total_discount:e.total_discount,currency:e.currency,items_subtotal_price:e.items_subtotal_price,items:e.items.map(t=>({quantity:t.quantity,variant_id:t.variant_id,key:t.key,price:t.price,final_line_price:t.final_line_price,sku:t.sku,product_id:t.product_id}))}}catch(e){return this.log("Error sending cart info",e),null}}ensureCartAttributesForExistingPriceTests(e){try{if(this.log("Checking visitor assignments for active price tests"),e&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;this.log("Using preview config for merchant:",t.testId);let i="variant";if(t.variants&&t.variants.length>0){const s=t.variants.find(r=>r.id===t.currentVariant);s&&s.isControl&&(i="control")}this.log("Merchant preview - updating hidden inputs:",t.testId,i),this.updatePriceTestHiddenInputs(t.testId,i,!0);return}for(const t of this.state.essential.visitorTests){const i=this.testConfigs.find(o=>o.id===t.testId);if(!i){this.log("Test config not found:",t.testId);continue}const s=i.hypotheses.find(o=>o.id===t.hypothesisId);if(!s||s.type!=="price")continue;const r=s.isControl?"control":"variant";this.log("Updating hidden inputs for price test:",t.testId,r),this.updatePriceTestHiddenInputs(t.testId,r,e)}}catch(t){this.log("Error ensuring cart attributes for existing price tests:",t)}}subscriptionSwapDone=!1;subscriptionHideWrongPlans=null;subscriptionPriceDone=!1;subscriptionUpdateOneTime=null;subscriptionOneTimeDone=!1;swapMap=null;slptValue=null;async subscriptionSwap(){await Ue(this)}async subscriptionPriceChange(){await ze(this)}async subscriptionOneTimePrice(){await We(this)}updatePriceTestHiddenInputs(e,t,i){try{this.cleanupPriceTestObservers();const s=`${e}:${t}:${i?"t":"f"}`,r=T=>{const m=T.getAttribute("data-sl-pid");if(!m)return!0;if(i&&this.state.temporary.previewConfig){const w=this.state.temporary.previewConfig,I=t==="control"?"a":"b",f=w.variants.find(v=>v.label===I);if(!f)return!1;for(const v of f.domSelectors||[]){const g=v.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(g){const P=g[1];if(this.log(`Extracted ID from selector: ${P}, comparing to: ${m}`),P===m)return this.log("Product ID match found in preview config:",m,"variant:",f.label),!0}else this.log(`Could not extract ID from selector: ${v.cssSelector}`)}return this.log("No product ID match in preview config for:",m,"variant:",I),!1}const y=this.testConfigs.find(w=>w.id===e);if(!y)return this.log("Test config not found for testId:",e),!1;for(const w of y.hypotheses||[]){for(const I of w.domSelectors||[]){const f=I.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(f&&f[1]===m)return this.log("Product ID match found in domSelectors:",m,"for test:",e),!0}if(w.priceData?.variants){for(const I of w.priceData.variants)if(I[0]===m)return this.log("Product ID match found in priceData:",m,"for test:",e),!0}}return this.log("No product ID match for:",m,"in test:",e),!1},o=new Set;let n=!1,l=null;const c=(T,m)=>{if(document.querySelectorAll("[data-sl-attribute-p]").forEach(w=>{if(w instanceof Element&&w.nodeType===Node.ELEMENT_NODE&&w.isConnected&&document.contains(w))try{T.observe(w,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(I){this.log(`Failed to observe element (${m}):`,I)}}),document.body&&document.body.isConnected)try{T.observe(document.body,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(w){this.log(`Failed to observe document.body (${m}):`,w)}},d=(T,m,y,w)=>{const I=T.filter(f=>{const v=f.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);return v&&v[1]===w});this.log(`Applying ${y} DOM selectors, total: ${T.length}, filtered: ${I.length}`),I.length>0&&U(document,{testId:e,hypothesisId:m,selectors:I})},u=(T,m)=>{this.log(`Applying DOM selector changes for product ID: ${T}`),m.disconnect(),n=!0;try{if(i&&this.state.temporary.previewConfig){const y=t==="control"?"a":"b",w=this.state.temporary.previewConfig.variants.find(I=>I.label===y);if(!w?.domSelectors){this.log(`No DOM selectors found for preview variant: ${y}`);return}d(w.domSelectors,w.id,"preview config",T)}else{const y=this.testConfigs.find(I=>I.id===e);if(!y){this.log(`No test config found for testId: ${e}`);return}const w=y.hypotheses.find(I=>t==="control"?I.isControl:!I.isControl);if(!w?.domSelectors){this.log(`No DOM selectors found for assignment: ${t}`);return}d(w.domSelectors,w.id,"live config",T)}}finally{l!==null&&clearTimeout(l),l=window.setTimeout(()=>{n=!1,l=null,c(m,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")}
10,50)}},h=new MutationObserver(T=>{if(!n)for(const m of T){if(m.type!=="childList"&&m.type!=="characterData")continue;let y=m.target;m.type==="characterData"&&(y=m.target.parentElement||m.target.parentNode);let w=y,I=w.getAttribute("data-sl-attribute-p");for(;!I&&w.parentElement;)w=w.parentElement,I=w.getAttribute("data-sl-attribute-p");if(!I)continue;const f=w.innerHTML||w.textContent||"";let v="";m.type==="characterData"&&m.oldValue!==null&&(v=m.oldValue),this.log(`innerHTML changed on element with data-sl-attribute-p="${I}"`),v&&this.log(`Previous content: "${v}"`),this.log(`Current content: "${f}"`),u(I,h)}});c(h,"initial setup"),o.add(h);const p=new MutationObserver(T=>{T.forEach(m=>{m.addedNodes.forEach(y=>{if(y.nodeType===Node.ELEMENT_NODE){const w=y;E(w);const I=w.matches('input[name="properties[_slpt]"]')?[w]:w.querySelectorAll('input[name="properties[_slpt]"]');I.length>0&&this.log(`MutationObserver found ${I.length} new hidden input(s)`),I.forEach(f=>{const v=f.getAttribute("data-sl-pid");if(this.log(`MutationObserver checking new input with data-sl-pid="${v}"`),r(f))f.value!==s&&(f.value=s,this.log("Updated newly added hidden input:",s)),S(f);else{const g=f.getAttribute("data-sl-pid");g&&this.isProductInAnyPriceTest(g)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",g):(f.remove(),this.log("Removed newly added non-matching hidden input for product ID:",g))}})}})})});o.add(p);const b=new MutationObserver(T=>{T.forEach(m=>{if(m.type==="attributes"&&m.attributeName==="data-sl-pid"){const y=m.target;if(this.log("AttributeObserver detected data-sl-pid attribute change on:",y.tagName),y.matches('input[name="properties[_slpt]"]')){const w=y,I=m.oldValue,f=w.getAttribute("data-sl-pid");this.log(`data-sl-pid changed from "${I}" to "${f}" - triggering payment placement updates`),r(w)?(w.value!==s&&(w.value=s,this.log("Updated hidden input after data-sl-pid change:",s)),f&&u(f,h),this.log("Re-running payment placement updates after variant change"),E(document.body)):f&&this.isProductInAnyPriceTest(f)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",f):(w.remove(),this.log("Removed non-matching hidden input after data-sl-pid change:",f))}}})});o.add(b);const E=T=>{T.tagName==="SHOPIFY-PAYMENT-TERMS"&&(this.log("MutationObserver found new shopify-payment-terms element"),this.updateShopifyPaymentTerms(e,t));const m=T.querySelectorAll("shopify-payment-terms");m.length>0&&(this.log(`MutationObserver found ${m.length} shopify-payment-terms in added node`),this.updateShopifyPaymentTerms(e,t)),T.tagName==="AFTERPAY-PLACEMENT"&&(this.log("MutationObserver found new afterpay-placement element"),this.updateAfterpayPlacements(e,t,"afterpay"));const y=T.querySelectorAll("afterpay-placement");y.length>0&&(this.log(`MutationObserver found ${y.length} afterpay-placement in added node`),this.updateAfterpayPlacements(e,t,"afterpay")),T.tagName==="SQUARE-PLACEMENT"&&(this.log("MutationObserver found new square-placement element"),this.updateAfterpayPlacements(e,t,"square"));const w=T.querySelectorAll("square-placement");w.length>0&&(this.log(`MutationObserver found ${w.length} square-placement in added node`),this.updateAfterpayPlacements(e,t,"square")),T.tagName==="KLARNA-PLACEMENT"&&(this.log("MutationObserver found new klarna-placement element"),this.updateKlarnaPlacements(e,t));const I=T.querySelectorAll("klarna-placement");I.length>0&&(this.log(`MutationObserver found ${I.length} klarna-placement in added node`),this.updateKlarnaPlacements(e,t))},S=T=>{b.observe(T,{attributes:!0,attributeFilter:["data-sl-pid"],attributeOldValue:!0,subtree:!1});const m=T.getAttribute("data-sl-pid");this.log(`Started AttributeObserver on specific input with data-sl-pid="${m}"`)},C=()=>{const T=document.querySelectorAll('input[name="properties[_slpt]"]');this.log(`Found ${T.length} existing hidden inputs to check`),T.forEach(m=>{const y=m.getAttribute("data-sl-pid");this.log(`Checking existing input with data-sl-pid="${y}"`),r(m)?(m.value=s,this.log("Updated existing hidden input:",s),y&&(this.log("Applying initial DOM selector changes for existing product"),u(y,h)),S(m)):y&&this.isProductInAnyPriceTest(y)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",
10y):(m.remove(),this.log("Removed non-matching hidden input for product ID:",y))})},_=()=>{document.body?(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver on document.body"),C(),E(document.body)):document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.body&&(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver after DOMContentLoaded"),C(),E(document.body))}):(this.log("Set timeout on observer"),setTimeout(_,10))};_(),window.__shopliftPriceTestObservers=o,window.__shopliftPriceTestValue=s,this.log("Set up DOM observer for price test hidden inputs")}catch(s){this.log("Error updating price test hidden inputs:",s)}}updateKlarnaPlacements(e,t){this.updatePlacementElements(e,t,"klarna-placement",(i,s)=>{i.setAttribute("data-purchase-amount",s.toString())})}cleanupPriceTestObservers(){const e=window.__shopliftPriceTestObservers;e&&(e.forEach(t=>{t.disconnect()}),e.clear(),this.log("Cleaned up existing price test observers")),delete window.__shopliftPriceTestObservers,delete window.__shopliftPriceTestValue}updateAfterpayPlacements(e,t,i="afterpay"){const s=i==="square"?"square-placement":"afterpay-placement";if(document.querySelectorAll(s).length===0){this.log(`No ${s} elements found on page - early return`);return}this.updatePlacementElements(e,t,s,(o,n)=>{if(i==="afterpay"){const l=(n/100).toFixed(2);o.setAttribute("data-amount",l)}else o.setAttribute("data-amount",n.toString())}),this.log("updateAfterpayPlacements completed")}updatePlacementElements(e,t,i,s){const r=document.querySelectorAll(i);if(r.length===0){this.log(`No ${i} elements found - early return`);return}let o;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const l=t==="control"?"a":"b",c=this.state.temporary.previewConfig.variants.find(d=>d.label===l);if(!c?.domSelectors){this.log(`No variant found for label ${l} in preview config for ${i}`);return}o=c.domSelectors,this.log(`Using preview config for ${i} in merchant mode, variant: ${l}`)}else{const l=this.testConfigs.find(d=>d.id===e);if(!l){this.log(`No testConfig found for id: ${e} - early return`);return}
10const c=l.hypotheses.find(d=>t==="control"?d.isControl:!d.isControl);if(!c?.domSelectors){this.log(`No hypothesis or domSelectors found for assignment: ${t} - early return`);return}o=c.domSelectors}const n=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);r.forEach(l=>{let c=null;const d=l.parentElement;if(d&&(c=d.querySelector('input[name="properties[_slpt]"]')),c||(c=l.querySelector('input[name="properties[_slpt]"]')),!c){this.log(`No hidden input found for ${i} element`);return}const u=c.getAttribute("data-sl-pid");if(!u){this.log("Hidden input has no data-sl-pid attribute - skipping");return}const h=o.find(S=>{const C=S.cssSelector.match(n);return C&&C[1]===u});if(!h){this.log(`No matching selector found for productId: ${u} - skipping element`);return}const p=h.actions.find(S=>S.scope==="price");if(!p?.value){this.log("No price action or value found - skipping element");return}const b=parseFloat(p.value.replace(/[^0-9.]/g,""));if(Number.isNaN(b)){this.log(`Invalid price "${p.value}" for product ${u} - skipping`);return}const E=Math.round(b*100);s(l,E)}),this.log(`updatePlacementElements completed for ${i}`)}updateShopifyPaymentTerms(e,t){const i=document.querySelectorAll("shopify-payment-terms");if(i.length===0)return;this.log("Store using shopify payments");let s;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const o=t==="control"?"a":"b",n=this.state.temporary.previewConfig.variants.find(l=>l.label===o);if(!n||!n.domSelectors){this.log(`No variant found for label ${o} in preview config`);return}s=n.domSelectors,this.log(`Using preview config for shopify-payment-terms in merchant mode, variant: ${o}`)}else{const o=this.testConfigs.find(l=>l.id===e);if(!o)return;const n=o.hypotheses.find(l=>t==="control"?l.isControl===!0:l.isControl===!1);if(!n||!n.domSelectors)return;s=n.domSelectors}const r=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);i.forEach(o=>{const n=o.getAttribute("variant-id");if(!n)return;const l=s.find(c=>{const d=c.cssSelector.match(r);return d&&d[1]===n});if(l){const c=l.actions.find(d=>d.scope==="price");if(c&&c.value){const d=o.getAttribute("shopify-meta");if(d)try{const u=JSON.parse(d);if(u.variants&&Array.isArray(u.variants)){const h=u.variants.find(p=>p.id?.toString()===n);if(h){h.full_price=c.value;const p=parseFloat(c.value.replace(/[^0-9.]/g,""));if(h.number_of_payment_terms&&h.number_of_payment_terms>1){const b=p/h.number_of_payment_terms;h.price_per_term=`$${b.toFixed(2)}`}o.setAttribute("shopify-meta",JSON.stringify(u))}}}catch(u){this.log("Error parsing/updating shoplift-meta:",u)}}}})}async makeJsonRequest(e){const t=await this.makeRequest(e);return t===null?null:JSON.parse(await t.text(),F)}async makeRequest(e){const{url:t,method:i,headers:s,data:r,signal:o}=e,n=new Headers;if(s)for(const c in s)n.append(c,s[c]);(!s||!s.Accept)&&n.append("Accept","application/json"),(!s||!s["Content-Type"])&&n.append("Content-Type","application/json"),(this.eventHost.includes("ngrok.io")||this.eventHost.includes("ngrok-free.app"))&&n.append("ngrok-skip-browser-warning","1234");const l=await this.fetch(t,{method:i,headers:n,body:r,signal:o});if(!l.ok){if(l.status===204)return null;if(l.status===422){const c=await l.json();if(typeof c<"u"&&c.isBot)throw new ie}throw new Error(`Error sending shoplift request ${l.status}`)}return l}queueAddVisitorToTest(e,t){if(this.state.essential.visitorTests.some(s=>s.testId===e))return;const i=this.testConfigs.find(s=>s.id===e);if(this.state.essential.visitorTests.push({createdAt:new Date,testId:e,hypothesisId:t.id,isThemeTest:t.type==="theme",themeId:t.themeId,isSaved:!1,isInvalid:!1,shouldSendToGa:!0,testType:t.type,assignedTo:t.isControl?"control":"variant",testTitle:i?.title}),t.type==="price"){const s=t.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",e,s),this.updatePriceTestHiddenInputs(e,s,!1)}}queueCartUpdate(e){this.queueEvent(new Ce(e))}queuePageView(e){this.queueEvent(new Se(e))}queueEvent(e){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(e)}legacyGetLocalStorageVisitor(){const e=this.localStorageGet(this.legacySessionKey);if(e)try{return JSON.parse(e,F)}catch{}return null}pruneStaleVisitorTests(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(t=>t.id==e.testId)||this.inactiveTestConfigs.filter(t=>this.testIsPaused(t)).some(t=>t.id===e.testId))}pruneStateAndSave(){this.pruneStaleVisitorTests(),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const e=this.loadAnalyticsState(),t={analytics:e,essential:this.loadEssentialState(e),temporary:this.loadTemporaryState()},i=this.legacyGetLocalStorageVisitor(),s=this.legacyGetCookieVisitor(),r=[i,s].filter(o=>o!==null).sort((o,n)=>+n.storedAt-+o.storedAt)[0];return t.analytics.visitor===null&&r&&({visitorTests:t.essential.visitorTests,...t.analytics.visitor}=r,t.essential.isFirstLoad=!1,t.essential.initialState={createdAt:r.createdAt,referrer:r.referrer,utmCampaign:r.utmCampaign,utmContent:r.utmContent,utmMedium:r.utmMedium,utmSource:r.utmSource,device:r.device},this.deleteCookie("SHOPLIFT"),this.deleteLocalStorage(this.legacySessionKey)),!t.essential.consentApproved&&t.essential.hasConsentInteraction&&this.deleteLocalStorage(this.analyticsSessionKey),t}loadEssentialState(e){const t=this.loadLocalStorage(this.essentialSessionKey),i=this.loadCookie(this.essentialSessionKey),s=this.getInitialState();e.visitor?.device&&(s.device=e.visitor.device);const r={timestamp:new Date,consentApproved:!1,hasConsentInteraction:!1,debugMode:!1,initialState:s,visitorTests:[],isFirstLoad:!0},o=[t,i].filter(n=>n!==null).sort((n,l)=>+l.timestamp-+n.timestamp)[0]??r;return o.initialState||(e.visitor!==null?o.initialState=e.visitor:(o.initialState=s,o.initialState.createdAt=o.timestamp)),o}loadAnalyticsState(){const e=this.loadLocalStorage(this.analyticsSessionKey),t=this.loadCookie(this.analyticsSessionKey),i={timestamp:new Date,visitor:null,queue:[]},s=[e,t].filter(r=>r!==null).sort((r,o)=>+o.timestamp-+r.timestamp)[0]??i;return s.queue.length===0&&e&&e.queue.length>1&&(s.queue=e.queue),s}loadTemporaryState(){const e=this.sessionStorageGet(this.temporarySessionKey),t=e?JSON.parse(e,F):null,i=this.loadCookie(this.temporarySessionKey);return t??i??{isMerchant:!1,timestamp:new Date}}persistEssentialState(){this.log("Persisting essential state"),this.state.essential.isFirstLoad=!1,this.state.essential.timestamp=new Date,this.persistLocalStorageState(this.essentialSessionKey,this.state.essential),this.persist
10CookieState(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
10andex\.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
10pera\.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)}
10,{"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
10akao|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
10andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || v.utmMedium.toLowerCase() === "organic"},{"name":"referral","test":(v) => new RegExp("^(?:referral|app|link)$", "i").test(v.utmMedium)},{"name":"email","test":(v) => new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmMedium) || new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmSource)},{"name":"affiliate","test":(v) => v.utmMedium.toLowerCase() === "affiliate"},{"name":"audio","test":(v) => v.utmMedium.toLowerCase() === "audio"},{"name":"sms","test":(v) => v.utmSource.toLowerCase() === "sms" || v.utmMedium.toLowerCase() === "sms"},{"name":"mobile-push-notification","test":(v) => v.utmSource.toLowerCase() === "firebase" || new RegExp("(?:.*mobile.*|.*notification.*|push$)", "i").test(v.utmMedium)}].find(i=>i.test(e))?.name??"other"}getShopifyAnalyticsId(){const e=this.getCookie("_shopify_y");if(e)return e;try{const t=this.localStorageGet("Shoplift_ClientId");if(t)return t}catch{}return null}legacyGetCookieVisitor(){const e=this.getCookie("SHOPLIFT");return e===null?null:JSON.parse(e,F)}getCookie(e){const t=this.cookie.split("; ").filter(i=>i.split("=").at(0)===e).at(0);return t===void 0?null:t.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",e=>{(async()=>await this.onConsentChange(e.detail.analyticsAllowed,!0))()}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let e=0;const t=()=>{this.loadShopifyConsentApi()||e++<10&&window.setTimeout(t,100)};t()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const e=async()=>{if(!window.Shopify){this.log("Shopify object missing... suddenly?");return}if(window.Shopify.customerPrivacy===void 0){this.log("Shopify CustomerPrivacy api still missing, trying again in 1000ms"),t=window.setTimeout(()=>{(async()=>await e())()},1e3);return}if(this.geoViaShopify){const s=window.Shopify.customerPrivacy.getRegion?.();this.resolvedRegion=typeof s=="string"?s.replace(/-/g,""):""}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let t=window.setTimeout(()=>{(async()=>await e())()},5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(t),i){this.log("Error loading consent tracking",i);return}await e()})()}),!0}return!1}async onConsentChange(e,t){try{if(this.log("Consent change detected",e,t),this.state.essential.consentApproved=e,this.state.essential.hasConsentInteraction=t,!this.state.essential.consentApproved){this.state.essential.hasConsentInteraction&&(this.state.analytics.queue.length=0),this.saveState();return}this.cookie=document.cookie,this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.saveState(),await this.syncAllEvents()}catch(i){this.log("Error syncing on consent change",i)}}isThemePreview(){return isThemePreview||themeRole!=="main"}isAppProxyPath(){const e=["/apps/","/tools/","/a/"],t=window.location.pathname;return e.some(i=>t.startsWith(i))}clearThemeBar(e,t,i){const s=structuredClone(i);this.log("Looking for theme bar"),this.waitForElement(null,"body").then(r=>this.waitForElement(r,"#preview-bar-iframe, #PBarNextFrameWrapper").then(o=>(this.log("Found theme bar"),t&&(this.log("Removing theme bar"),o.remove()),e?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},ee)}):Promise.resolve(null)))).catch(r=>console.error(r))}waitForElement(e,t){return new Promise(i=>{const s=document.querySelector(t);if(s){i(s);return}const r=new MutationObserver(o=>{const n=document.querySelector(t);if(n){r.disconnect(),i(n);return}});r.observe(e??document.documentElement,{childList:!0})})}setDebug(e){this.state.essential.debugMode=e,this.saveState()}log(e,...t){let i=0;const s=e.replace(/%[sdoOfF]/g,r=>{if(i>=t.length)return r;const o=t[i++];return r==="%o"||r==="%O"?JSON.stringify(o):String(o)});this.logHistory.push(`[${new Date().toISOString()}][SL] ${s}`),!(!this.state.essential.debugMode&&!this.shopliftDebug)&&console.debug(`[SL] ${e}`,...t)}debugState(){return{state:this.state,storage:{essential:this.loadLocalStorage(this.essentialSessionKey),analytics:this.loadLocalStorage(this.analyticsSessionKey)},params:{shop:this.shop,host:this.host,eventHost:this.eventHost,cssHideClass:this.cssHideClass,testConfigs:this.testConfigs,inactiveTestConfigs:this.inactiveTestConfigs,sendPageView:this.sendPageView,isShopifyMerchantCookie
10:this.getCookie("is_shopify_merchant"),themeId,url:window.location.href,isThemePreview,themeRole,gaConfig:this.gaConfig},logHistory:this.logHistory}}createViewportObserver(e,t={}){const{threshold:i=this.VIEWPORT_TRACK_THRESHOLD,triggerOnce:s=!0}=t,r=new Set;return new IntersectionObserver(o=>{o.forEach(n=>{if(n.isIntersecting&&!r.has(n.target)){const l=n.target,c=l.getAttribute(this.DATA_SL_TEST_ID);c&&(e(c,l),s&&r.add(l))}})},{threshold:i})}applyChangesWithViewport(e,t,i,s){const r=t.selectorsForViewportTracking??t.selectors,o=n=>{if(this.state.essential.visitorTests.some(h=>h.testId===n)||this.activeViewportObservers.has(n))return;const l=[];if(r.forEach(h=>{e.querySelectorAll(h.cssSelector).forEach(b=>l.push(b))}),l.length===0)return;let c=!1;const d=()=>{c||(c=!0,i(n),u.disconnect(),this.activeViewportObservers.delete(n))},u=this.createViewportObserver(()=>{d()},{triggerOnce:!0,...s});this.activeViewportObservers.set(n,u),this.log(`Created viewport observer for test ${n}, observing ${l.length} elements`),l.forEach(h=>{h.setAttribute(this.DATA_SL_TEST_ID,String(n)),u.observe(h)}),setTimeout(()=>{c||l.forEach(h=>{const p=h.getBoundingClientRect(),b=s?.threshold??this.VIEWPORT_TRACK_THRESHOLD,E=Math.min(p.bottom,window.innerHeight)-Math.max(p.top,0),S=Math.min(p.right,window.innerWidth)-Math.max(p.left,0);p.top<window.innerHeight&&p.bottom>0&&p.left<window.innerWidth&&p.right>0&&E>0&&S>0&&E>=p.height*b&&(this.log(`Price element already visible in viewport for test ${n}:`,h),d())})},100)};t.selectors.length>0&&U(e,t,()=>{}),Te(e,{testId:t.testId,hypothesisId:t.hypothesisId,selectors:r},n=>{o(n)})}applyPriceTestWithMapLookup(e,t,i,s){if(!t.priceData){this.log("No price data for hypothesis '%s'",t.id);return}this.log("Hypothesis '%s' isControl=%s, priceData has %d variants",t.id,t.isControl,t.priceData.variants.length);const r=t.priceData.variants.slice(0,3);for(const[S,C,_]of r)this.log(" Sample priceData: variant=%s, price=%d, compareAt=%d",S,C,_);const o=j(t.priceData),n=new Set;for(const S of i)if(S.priceData)for(const[C]of S.priceData.variants)n.add(C);this.log("Price test Map lookup: %d products in hypothesis, %d total products to track",o.size,n.size);const l=t.priceData,c=new WeakSet;let d=!1;const u="[data-sl-attribute-p], [data-sl-attribute-cap], [data-sl-attribute-discount]",h=S=>{if(c.has(S))return;const C=S.getAttribute("data-sl-attribute-p"),_=S.getAttribute("data-sl-attribute-cap"),T=S.getAttribute("data-sl-attribute-discount"),m=C||_||T;if(!m||!n.has(m))return;c.add(S);const y=o.get(m);y&&(this.log("Applying price for product %s: %d cents (compare at: %d cents)",m,y.priceInCents,y.compareAtPriceInCents),Le(S,m,y,l),this.log("Applied price to element for product %s",m)),!d&&!this.state.essential.visitorTests.some(w=>w.testId===e)&&(S.setAttribute(this.DATA_SL_TEST_ID,String(e)),this.setupElementViewportTracking(S,e,()=>{d||(d=!0,s(e))}))},p=()=>{const S=document.querySelectorAll(u);this.log("Scanning for price elements, found: %d",S.length),S.forEach(h)},b=new MutationObserver(S=>{for(const C of S)C.type==="childList"&&C.addedNodes.forEach(_=>{if(_.nodeType===Node.ELEMENT_NODE){const T=_;(T.hasAttribute("data-sl-attribute-p")||T.hasAttribute("data-sl-attribute-cap")||T.hasAttribute("data-sl-attribute-discount"))&&h(T),T.querySelectorAll(u).forEach(h)}}),C.type==="attributes"&&C.target instanceof Element&&h(C.target)}),E=document.body||document.documentElement;b.observe(E,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-sl-attribute-p","data-sl-attribute-cap","data-sl-attribute-discount"]}),this.log("MutationObserver started for price elements"),p(),document.readyState==="loading"&&document.addEventListener("DOMContentLoaded",()=>{this.log("DOMContentLoaded - rescanning for price elements"),p()}),setTimeout(()=>{this.log("Delayed rescan for price elements"),p()},100),setTimeout(()=>{this.log("Final rescan for price elements"),p()},500)}setupElementViewportTracking(e,t,i){const s=this.VIEWPORT_TRACK_THRESHOLD,r=e.getBoundingClientRect(),o=Math.min(r.bottom,window.innerHeight)-Math.max(r.top,0),n=Math.min(r.right,window.innerWidth)-Math.max(r.left,0);if(r.top<window.innerHeight&&r.bottom>0&&r.left<window.innerWidth&&r.right>0&&o>0&&n>0&&o>=r.height*s){this.log("Price element already visible for test %s",t),i();return}const c=new IntersectionObserver(d=>{for(const u of d)if(u.isIntersecting&&u.intersectionRatio>=s){this.log("Price element entered viewport for test %s",t),c.disconnect(),i();break}},{threshold:s});c.observe(e)}debug(){const e=this.debugState();console.log(JSON.stringify(e,ee,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new Ze("shortylove.mysh
10opify.com","https://app.shoplift.ai","https://events.shoplift.ai",false,false,false,{"sendEvents":false,"mode":"gtag"},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,o=e?j(e):null;let n=W(e),l=J(a,n),c=l.discountMap,d=l.maxDiscount;function u(){const f=W(e);f!==n&&(n=f,l=J(a,n),c=l.discountMap,d=l.maxDiscount,i(`[SUB-PREVIEW] scope refreshed currentProductId=${n??"n/a"}, maxDiscount=${d}`))}i(`[SUB-PREVIEW] side=B, currentProductId=${n??"n/a"}, maxDiscount=${d}`);function h(f){if(!e||!o)return null;const v=Z(o),g=v?o.get(v):void 0;return g?{formattedVariantPrice:G(g.priceInCents,e),formattedDiscounted:G(g.priceInCents*(1-f/100),e)}:null}function p(f){const v=Y(a,f);if(!v)return d;const g=D(a,"subscriptionInput"),P=g.length?g[0].selector:'input[name="rc_plan"]',A=v.querySelector(`${P}:checked`);if(A){const k=c[A.value];if(k!==void 0)return k}return d}function b(f){const v=D(a,"subscriptionDiscount");for(const g of v)if(g.selector.includes("badge")||g.selector.includes("__badge")){const P=f.querySelector(g.selector);P?.textContent&&!P.textContent.includes(`${d}%`)&&$(P,A=>N(A,d))}}function E(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionCompareAt");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedVariantPrice)&&$(k,x=>/\d/.test(x)?g.formattedVariantPrice:x)}}function S(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionPrice");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedDiscounted)&&$(k,x=>/\d/.test(x)?g.formattedDiscounted:x)}}function C(f){const v=D(a,"subscriptionInput"),g=v.length?v[0].selector:'input[name="rc_plan"]',P=D(a,"subscriptionPlanDiscount"),A=P.length?P[0].selector:".rc-plans-button__discount";for(const k of Array.from(f.querySelectorAll("label"))){const x=k.querySelector(g),R=k.querySelector(A);if(x&&R?.textContent){const 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||!o)return;const g=Z(o),P=g?o.get(g):void 0;if(!P)return;const A=G(P.priceInCents,e),k=D(a,"onetimeContainer"),x=k.length?k[0].selector:'[part~="rc-purchase-option__onetime"]',R=f.querySelector(x);if(R)for(const 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{u();const f=B(a);if(!f)return;const v=p(f);b(f),E(f,v),S(f,v),T(f);const g=Y(a,f);g&&(r==="buttons"||r==="radio"?C(g):_(g)),m(f,v)}finally{y=!1}}}const I=pe({data:a,runUpdates:w});return function(){I(),s()}}const Xe=Object.freeze(Object.defineProperty({__proto__:null,subscriptionPreviewRender:Qe},Symbol.toStringTag,{value:"Module"}))})(); })("/", { suffix: "", type: "login" }, "main", 148520042647, false)</script>
10 11<!-- End of Shoplift scripts --> 12 13 <meta charset="utf-8"> 14 <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=5.0"> 15 16 <title>Account</title><link rel="canonical" href="https://www.shortylove.com/account/login"><link rel="shortcut icon" href="//www.shortylove.com/cdn/shop/files/shortylove_fevicon.png?v=1782974967&width=96"> 17 <link rel="apple-touch-icon" href="//www.shortylove.com/cdn/shop/files/shortylove_fevicon.png?v=1782974967&width=180"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><link rel="preload" href="//www.shortylove.com/cdn/fonts/jost/jost_n5.7c8497861ffd15f4e1284cd221f14658b0e95d61.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="//www.shortylove.com/cdn/fonts/jost/jost_n4.d47a1b6347ce4a4c9f437608011273009d91f2b7.woff2" as="font" type="font/woff2" crossorigin><meta property="og:type" content="website"> 18 <meta property="og:title" content="Account"><meta property="og:url" content="https://www.shortylove.com/account/login"> 19<meta property="og:site_name" content="shortyLOVE"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Account"> 20 <meta name="twitter:description" content="Account">
20<script type="application/ld+json"> 21 { 22 "@context": "https://schema.org", 23 "@type": "BreadcrumbList", 24 "itemListElement": [{ 25 "@type": "ListItem", 26 "position": 1, 27 "name": "Home", 28 "item": "https://www.shortylove.com" 29 }] 30 } 31</script>
31<style>/* Typography (heading) */ 32 @font-face { 33 font-family: Jost; 34 font-weight: 500; 35 font-style: normal; 36 font-display: fallback; 37 src: url("//www.shortylove.com/cdn/fonts/jost/jost_n5.7c8497861ffd15f4e1284cd221f14658b0e95d61.woff2") format("woff2"), 38 url("//www.shortylove.com/cdn/fonts/jost/jost_n5.fb6a06896db583cc2df5ba1b30d9c04383119dd9.woff") format("woff"); 39} 40 41@font-face { 42 font-family: Jost; 43 font-weight: 500; 44 font-style: italic; 45 font-display: fallback; 46 src: url("//www.shortylove.com/cdn/fonts/jost/jost_i5.a6c7dbde35f2b89f8461eacda9350127566e5d51.woff2") format("woff2"), 47 url("//www.shortylove.com/cdn/fonts/jost/jost_i5.2b58baee736487eede6bcdb523ca85eea2418357.woff") format("woff"); 48} 49 50/* Typography (body) */ 51 @font-face { 52 font-family: Jost; 53 font-weight: 400; 54 font-style: normal; 55 font-display: fallback; 56 src: url("//www.shortylove.com/cdn/fonts/jost/jost_n4.d47a1b6347ce4a4c9f437608011273009d91f2b7.woff2") format("woff2"), 57 url("//www.shortylove.com/cdn/fonts/jost/jost_n4.791c46290e672b3f85c3d1c651ef2efa3819eadd.woff") format("woff"); 58} 59 60@font-face { 61 font-family: Jost; 62 font-weight: 400; 63 font-style: italic; 64 font-display: fallback; 65 src: url("//www.shortylove.com/cdn/fonts/jost/jost_i4.b690098389649750ada222b9763d55796c5283a5.woff2") format("woff2"), 66 url("//www.shortylove.com/cdn/fonts/jost/jost_i4.fd766415a47e50b9e391ae7ec04e2ae25e7e28b0.woff") format("woff"); 67} 68 69@font-face { 70 font-family: Jost; 71 font-weight: 700; 72 font-style: normal; 73 font-display: fallback; 74 src: url("//www.shortylove.com/cdn/fonts/jost/jost_n7.921dc18c13fa0b0c94c5e2517ffe06139c3615a3.woff2") format("woff2"), 75 url("//www.shortylove.com/cdn/fonts/jost/jost_n7.cbfc16c98c1e195f46c536e775e4e959c5f2f22b.woff") format("woff"); 76} 77 78@font-face { 79 font-family: Jost; 80 font-weight: 700; 81 font-style: italic; 82 font-display: fallback; 83 src: url("//www.shortylove.com/cdn/fonts/jost/jost_i7.d8201b854e41e19d7ed9b1a31fe4fe71deea6d3f.woff2") format("woff2"), 84 url("//www.shortylove.com/cdn/fonts/jost/jost_i7.eae515c34e26b6c853efddc3fc0c552e0de63757.woff") format("woff"); 85} 86 87:root { 88 /* Container */ 89 --container-max-width: 100%; 90 --container-xxs-max-width: 27.5rem; /* 440px */ 91 --container-xs-max-width: 42.5rem; /* 680px */ 92 --container-sm-max-width: 61.25rem; /* 980px */ 93 --container-md-max-width: 71.875rem; /* 1150px */ 94 --container-lg-max-width: 78.75rem; /* 1260px */ 95 --container-xl-max-width: 85rem; /* 1360px */ 96 --container-gutter: 1.25rem; 97 98 --section-vertical-spacing: 2.25rem; 99 --section-vertical-spacing-tight:2.5rem; 100 101 --section-stack-gap:1.75rem; 102 --section-stack-gap-tight:1.75rem; 103 104 /* Form settings */ 105 --form-gap: 1.25rem; /* Gap between fieldset and submit button */ 106 --fieldset-gap: 1rem; /* Gap between each form input within a fieldset */ 107 --form-control-gap: 0.625rem; /* Gap between input and label (ignored for floating label) */ 108 --checkbox-control-gap: 0.75rem; /* Horizontal gap between checkbox and its associated label */ 109 --input-padding-block: 0.65rem; /* Vertical padding for input, textarea and native select */ 110 --input-padding-inline: 0.8rem; /* Horizontal padding for input, textarea and native select */ 111 --checkbox-size: 0.875rem; /* Size (width and height) for checkbox */ 112 113 /* Other sizes */ 114 --sticky-area-height: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px) + var(--header-is-sticky, 0) * var(--header-is-visible, 1) * var(--header-height, 0px)); 115 116 /* RTL support */ 117 --transform-logical-flip: 1; 118 --transform-origin-start: left; 119 --transform-origin-end: right; 120 121 /** 122 * --------------------------------------------------------------------- 123 * TYPOGRAPHY 124 * --------------------------------------------------------------------- 125 */ 126 127 /* Font properties */ 128 --heading-font-family: Jost, sans-serif; 129 --heading-font-weight: 500; 130 --heading-font-style: normal; 131 --heading-text-transform: lowercase; 132 --heading-letter-spacing: 0.18em; 133 --text-font-family: Jost, sans-serif;
134 --text-font-weight: 400; 135 --text-font-style: normal; 136 --text-letter-spacing: 0.0em; 137 --button-font: var(--heading-font-style) var(--heading-font-weight) var(--text-sm) / 1.65 var(--heading-font-family); 138 --button-text-transform: lowercase; 139 --button-letter-spacing: 0.18em; 140 141 /* Font sizes */--text-heading-size-factor: 1; 142 --text-h1: max(0.6875rem, clamp(1.375rem, 1.146341463414634rem + 0.975609756097561vw, 2rem) * var(--text-heading-size-factor)); 143 --text-h2: max(0.6875rem, clamp(1.25rem, 1.0670731707317074rem + 0.7804878048780488vw, 1.75rem) * var(--text-heading-size-factor)); 144 --text-h3: max(0.6875rem, clamp(1.125rem, 1.0335365853658536rem + 0.3902439024390244vw, 1.375rem) * var(--text-heading-size-factor)); 145 --text-h4: max(0.6875rem, clamp(1rem, 0.9542682926829268rem + 0.1951219512195122vw, 1.125rem) * var(--text-heading-size-factor)); 146 --text-h5: calc(0.875rem * var(--text-heading-size-factor)); 147 --text-h6: calc(0.75rem * var(--text-heading-size-factor)); 148 149 --text-xs: 0.8125rem; 150 --text-sm: 0.875rem; 151 --text-base: 0.9375rem; 152 --text-lg: 1.0625rem; 153 --text-xl: 1.25rem; 154 155 /* Rounded variables (used for border radius) */ 156 --rounded-full: 9999px; 157 --button-border-radius: 0.0rem; 158 --input-border-radius: 0.0rem; 159 160 /* Box shadow */ 161 --shadow-sm: 0 2px 8px rgb(0 0 0 / 0.05); 162 --shadow: 0 5px 15px rgb(0 0 0 / 0.05); 163 --shadow-md: 0 5px 30px rgb(0 0 0 / 0.05); 164 --shadow-block: px px px rgb(var(--text-primary) / 0.0); 165 166 /** 167 * --------------------------------------------------------------------- 168 * OTHER 169 * --------------------------------------------------------------------- 170 */ 171 172 --checkmark-svg-url: url(//www.shortylove.com/cdn/shop/t/156/assets/checkmark.svg?v=77552481021870063511772057087); 173 --cursor-zoom-in-svg-url: url(//www.shortylove.com/cdn/shop/t/156/assets/cursor-zoom-in.svg?v=112480252220988712521772057087); 174 } 175 176 [dir="rtl"]:root { 177 /* RTL support */ 178 --transform-logical-flip: -1; 179 --transform-origin-start: right; 180 --transform-origin-end: left; 181 } 182 183 @media screen and (min-width: 700px) { 184 :root { 185 /* Typography (font size) */ 186 --text-xs: 0.875rem; 187 --text-sm: 0.9375rem; 188 --text-base: 1.0rem; 189 --text-lg: 1.125rem; 190 --text-xl: 1.375rem; 191 192 /* Spacing settings */ 193 --container-gutter: 2rem; 194 } 195 } 196 197 @media screen and (min-width: 1000px) { 198 :root { 199 /* Spacing settings */ 200 --container-gutter: 3rem; 201 202 --section-vertical-spacing: 3.5rem; 203 --section-vertical-spacing-tight: 3.5rem; 204 205 --section-stack-gap:2.5rem; 206 --section-stack-gap-tight:2.5rem; 207 } 208 }:root {/* Overlay used for modal */ 209 --page-overlay: 0 0 0 / 0.4; 210 211 /* We use the first scheme background as default */ 212 --page-background: ; 213 214 /* Product colors */ 215 --on-sale-text: 208 111 89; 216 --on-sale-badge-background: 208 111 89; 217 --on-sale-badge-text: 255 255 255; 218 --sold-out-badge-background: 179 179 179; 219 --sold-out-badge-text: 0 0 0 / 0.65; 220 --custom-badge-background: 28 28 28; 221 --custom-badge-text: 255 255 255; 222 --star-color: 221 146 137; 223 224 /* Status colors */ 225 --success-background: 212 227 203; 226 --success-text: 48 122 7; 227 --warning-background: 253 241 224; 228 --warning-text: 237 138 0; 229 --error-background: 243 204 204; 230 --error-text: 203 43 43; 231 }.color-scheme--scheme-1 { 232 /* Color settings */--accent: 221 146 137; 233 --text-color: 28 28 28; 234 --background: 255 255 255 / 1.0; 235 --background-without-opacity: 255 255 255; 236 --background-gradient: ;--border-color: 221 221 221;/* Button colors */ 237 --button-background: 221 146 137; 238 --button-text-color: 255 255 255; 239 240 /* Circled buttons */ 241 --circle-button-background: 255 255 255; 242 --circle-button-text-color: 28 28 28; 243 }.shopify-section:has(.section-spacing.color-scheme--bg-54922f2e920ba8346f6dc0fba343d673) + .shopify-section:has(.section-spacing.color-scheme--bg-54922f2e920ba8346f6dc0fba343d673:not(.bordered-section)) .section-spacing { 244 padding-block-start: 0; 245 }.color-scheme--scheme-2 {
246 /* Color settings */--accent: 28 28 28; 247 --text-color: 28 28 28; 248 --background: 255 255 255 / 1.0; 249 --background-without-opacity: 255 255 255; 250 --background-gradient: ;--border-color: 221 221 221;/* Button colors */ 251 --button-background: 28 28 28; 252 --button-text-color: 255 255 255; 253 254 /* Circled buttons */ 255 --circle-button-background: 255 255 255; 256 --circle-button-text-color: 28 28 28; 257 }.shopify-section:has(.section-spacing.color-scheme--bg-54922f2e920ba8346f6dc0fba343d673) + .shopify-section:has(.section-spacing.color-scheme--bg-54922f2e920ba8346f6dc0fba343d673:not(.bordered-section)) .section-spacing { 258 padding-block-start: 0; 259 }.color-scheme--scheme-3 { 260 /* Color settings */--accent: 255 255 255; 261 --text-color: 28 28 28; 262 --background: 221 146 137 / 1.0; 263 --background-without-opacity: 221 146 137; 264 --background-gradient: ;--border-color: 192 128 121;/* Button colors */ 265 --button-background: 255 255 255; 266 --button-text-color: 28 28 28; 267 268 /* Circled buttons */ 269 --circle-button-background: 255 255 255; 270 --circle-button-text-color: 28 28 28; 271 }.shopify-section:has(.section-spacing.color-scheme--bg-ad869f76da1880ea8ca11744d3213224) + .shopify-section:has(.section-spacing.color-scheme--bg-ad869f76da1880ea8ca11744d3213224:not(.bordered-section)) .section-spacing { 272 padding-block-start: 0; 273 }.color-scheme--scheme-4 { 274 /* Color settings */--accent: 255 255 255; 275 --text-color: 255 255 255; 276 --background: 0 0 0 / 0.0; 277 --background-without-opacity: 0 0 0; 278 --background-gradient: ;--border-color: 255 255 255;/* Button colors */ 279 --button-background: 255 255 255; 280 --button-text-color: 28 28 28; 281 282 /* Circled buttons */ 283 --circle-button-background: 255 255 255; 284 --circle-button-text-color: 28 28 28; 285 }.shopify-section:has(.section-spacing.color-scheme--bg-3671eee015764974ee0aef1536023e0f) + .shopify-section:has(.section-spacing.color-scheme--bg-3671eee015764974ee0aef1536023e0f:not(.bordered-section)) .section-spacing { 286 padding-block-start: 0; 287 }.color-scheme--scheme-a9d5437b-511d-4b11-9272-f55a144bf24b { 288 /* Color settings */--accent: 221 146 137; 289 --text-color: 255 255 255; 290 --background: 28 28 28 / 1.0; 291 --background-without-opacity: 28 28 28; 292 --background-gradient: ;--border-color: 62 62 62;/* Button colors */ 293 --button-background: 221 146 137; 294 --button-text-color: 28 28 28; 295 296 /* Circled buttons */ 297 --circle-button-background: 255 255 255; 298 --circle-button-text-color: 28 28 28; 299 }.shopify-section:has(.section-spacing.color-scheme--bg-c1f8cb21047e4797e94d0969dc5d1e44) + .shopify-section:has(.section-spacing.color-scheme--bg-c1f8cb21047e4797e94d0969dc5d1e44:not(.bordered-section)) .section-spacing { 300 padding-block-start: 0; 301 }.color-scheme--scheme-f9824b64-945d-446e-b540-31c9c01d516d { 302 /* Color settings */--accent: 221 146 137; 303 --text-color: 255 255 255; 304 --background: 98 91 92 / 1.0; 305 --background-without-opacity: 98 91 92; 306 --background-gradient: ;--border-color: 122 116 116;/* Button colors */ 307 --button-background: 221 146 137; 308 --button-text-color: 28 28 28; 309 310 /* Circled buttons */ 311 --circle-button-background: 255 255 255; 312 --circle-button-text-color: 28 28 28; 313 }.shopify-section:has(.section-spacing.color-scheme--bg-ef9ae448c4d00e6952b5237f839848f7) + .shopify-section:has(.section-spacing.color-scheme--bg-ef9ae448c4d00e6952b5237f839848f7:not(.bordered-section)) .section-spacing { 314 padding-block-start: 0; 315 }.color-scheme--dialog { 316 /* Color settings */--accent: 28 28 28; 317 --text-color: 28 28 28; 318 --background: 255 255 255 / 1.0; 319 --background-without-opacity: 255 255 255; 320 --background-gradient: ;--border-color: 221 221 221;/* Button colors */ 321 --button-background: 28 28 28; 322 --button-text-color: 255 255 255; 323 324 /* Circled buttons */ 325 --circle-button-background: 255 255 255; 326 --circle-button-text-color: 28 28 28; 327 } 328</style>
328<script> 329 // This allows to expose several variables to the global scope, to be used in scripts 330 window.themeVariables = { 331 settings: { 332 showPageTransition: null, 333 pageType: "customers\/login", 334 moneyFormat: "${{amount}}", 335 moneyWithCurrencyFormat: "${{amount}} USD", 336 currencyCodeEnabled: false, 337 cartType: "drawer", 338 staggerMenuApparition: true 339 }, 340 341 strings: { 342 addedToCart: "Added to your cart!", 343 addedToCartWithTitle: "{{ product_title }} added to cart.", 344 closeGallery: "Close gallery", 345 zoomGallery: "Zoom picture", 346 errorGallery: "Image cannot be loaded", 347 shippingEstimatorNoResults: "Sorry, we do not ship to your address.", 348 shippingEstimatorOneResult: "There is one shipping rate for your address:", 349 shippingEstimatorMultipleResults: "There are several shipping rates for your address:", 350 shippingEstimatorError: "One or more error occurred while retrieving shipping rates:", 351 next: "Next", 352 previous: "Previous" 353 }, 354 355 mediaQueries: { 356 'sm': 'screen and (min-width: 700px)', 357 'md': 'screen and (min-width: 1000px)', 358 'lg': 'screen and (min-width: 1150px)', 359 'xl': 'screen and (min-width: 1400px)', 360 '2xl': 'screen and (min-width: 1600px)', 361 'sm-max': 'screen and (max-width: 699px)', 362 'md-max': 'screen and (max-width: 999px)', 363 'lg-max': 'screen and (max-width: 1149px)', 364 'xl-max': 'screen and (max-width: 1399px)', 365 '2xl-max': 'screen and (max-width: 1599px)', 366 'motion-safe': '(prefers-reduced-motion: no-preference)', 367 'motion-reduce': '(prefers-reduced-motion: reduce)', 368 'supports-hover': 'screen and (pointer: fine)', 369 'supports-touch': 'screen and (hover: none)' 370 } 371 };</script>
371<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 371
371
372<script type="importmap">{ 373 "imports": { 374 "vendor": "//www.shortylove.com/cdn/shop/t/156/assets/vendor.min.js?v=55929477288600450501771960063", 375 "theme": "//www.shortylove.com/cdn/shop/t/156/assets/theme.js?v=103030472301900935361771960063", 376 "photoswipe": "//www.shortylove.com/cdn/shop/t/156/assets/photoswipe.min.js?v=13374349288281597431771960061" 377 } 378 } 379 </script>
379 380 381
381<script type="module" src="//www.shortylove.com/cdn/shop/t/156/assets/vendor.min.js?v=55929477288600450501771960063"></script>
381 382
382<script type="module" src="//www.shortylove.com/cdn/shop/t/156/assets/theme.js?v=103030472301900935361771960063"></script>
382<script src="//www.shortylove.com/cdn/shop/t/156/assets/variantify-quick-buy.js?v=168288743594295775171784301480" defer></script>
382<script src="//www.shortylove.com/cdn/shop/t/156/assets/disable-native-cart.js?v=132007838208162367151784301479" defer></script>
382<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
382<meta name="google-site-verification" content="Z6JQySmkDYfoTpS0CtBasd5nihfdPrWRguHo1DS-a-U"> 383<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/29857554/digital_wallets/dialog"> 384<meta id="in-context-paypal-metadata" data-shop-id="29857554" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 385<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
385<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2954297495"></script>
385 386<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
387<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2954297495&shop_id=29857554" crossorigin="anonymous"></script>
vendor: 1 bytes, line 387
387
388<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":29857554,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/29857554","merchantName":"shortyLOVE","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"shortyLOVE","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 388
388
389<script id="shopify-features" type="application/json">{"accessToken":"d0a85fa5a4b5e25e9545d786589fb45f","betas":["rich-media-storefront-analytics"],"domain":"www.shortylove.com","predictiveSearch":true,"shopId":29857554,"locale":"en"}</script>
vendor: 1 bytes, line 389
389
390<script>var Shopify = Shopify || {}; 391Shopify.shop = "shortylove.myshopify.com"; 392Shopify.locale = "en"; 393Shopify.currency = {"active":"USD","rate":"1.0"}; 394Shopify.country = "US"; 395Shopify.theme = {"name":"shortylove\/homepage redesign APRIL12026","id":148520042647,"schema_name":"Prestige","schema_version":"10.11.1","theme_store_id":null,"role":"main"}; 396Shopify.theme.handle = "null"; 397Shopify.theme.style = {"id":null,"handle":null}; 398Shopify.cdnHost = "www.shortylove.com/cdn"; 399Shopify.routes = Shopify.routes || {}; 400Shopify.routes.root = "/"; 401Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 402Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 403Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 404Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 404
404
405<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 405
405
406<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 406
406
407<script> 408 window.ShopifyPay = window.ShopifyPay || {}; 409 window.ShopifyPay.apiHost = "shop.app\/pay"; 410 window.ShopifyPay.redirectState = null; 411</script>
vendor: 1 bytes, line 411
411
412<script> 413 window.Shopify = window.Shopify || {}; 414 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 415 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 416 window.Shopify.SignInWithShop.eligible = true; 417</script>
vendor: 1 bytes, line 417
417
418<script id="shop-js-analytics" type="application/json">{"pageType":"customers/login"}</script>
vendor: 1 bytes, line 418
418
419<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 419
419
420<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 420
420
421<script type="module"> 422 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts.en.esm.js"); 423await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"); 424 425 window.Shopify.SignInWithShop?.initCustomerAccounts?.(true, {"fedCMEnabled":true,"windoidEnabled":true}); 426window.Shopify.SignInWithShop?.initCustomerAccountsSignUp?.({"fedCMEnabled":true,"windoidEnabled":true}); 427 428</script>
vendor: 1 bytes, line 428
428
429<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 429
429
430<script type="module"> 431 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 432 433 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 434 435</script>
vendor: 1 bytes, line 435
435
436<script> 437 window.Shopify = window.Shopify || {}; 438 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 439 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"]}; 440</script>
vendor: 1 bytes, line 440
440
441<script>(function() { 442 var isLoaded = false; 443 function asyncLoad() { 444 if (isLoaded) return; 445 isLoaded = true; 446 var urls = ["https:\/\/cdn-loyalty.yotpo.com\/loader\/JMQZ-BBGBB0f8zwWLELhdA.js?shop=shortylove.myshopify.com","https:\/\/shopify-fast-tags.deliverr.com\/main.js?shop=shortylove.myshopify.com","https:\/\/cdn-widgetsrepository.yotpo.com\/v1\/loader\/GX51pGwCy0oGc4StNDtDvhWeuzhVHXAdsR1bQO9g?shop=shortylove.myshopify.com","https:\/\/dr4qe3ddw9y32.cloudfront.net\/awin-shopify-integration-code.js?aid=91477\u0026v=shopifyApp_5.3.0\u0026ts=1772288604088\u0026shop=shortylove.myshopify.com"]; 447 for (var i = 0; i < urls.length; i++) { 448 var s = document.createElement('script'); 449 s.type = 'text/javascript'; 450 s.async = true; 451 s.src = urls[i]; 452 var x = document.getElementsByTagName('script')[0]; 453 x.parentNode.insertBefore(s, x); 454 } 455 }; 456 if(window.attachEvent) { 457 window.attachEvent('onload', asyncLoad); 458 } else { 459 window.addEventListener('load', asyncLoad, false); 460 } 461})();</script>
vendor: 1 bytes, line 461
461
462<script id="__st">var __st={"a":29857554,"offset":-14400,"reqid":"c53e79e5-d7bb-4c5f-9b0d-a5b27a8ebf90-1790349759","pageurl":"www.shortylove.com\/account\/login","u":"992440eb515d"};</script>
vendor: 1 bytes, line 462
462
463<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 463
463
464<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!1)}();</script>
vendor: 1 bytes, line 464
464
465<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.shortylove.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 465
465
466<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.shortylove.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>
466<script crossorigin="anonymous" defer="defer" src="//www.shortylove.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 466
466
467<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 467
467
468<script> 469 window.Shopify = window.Shopify || {}; 470 window.Shopify.MCP = window.Shopify.MCP || {}; 471 window.Shopify.MCP.enabled = true; 472 window.Shopify.MCP.shop = "shortylove.myshopify.com"; 473 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.shortylove.com\/api\/mcp"; 474 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"]}}]; 475</script>
vendor: 1 bytes, line 475
475
476<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.shortylove.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 477</script>
vendor: 1 bytes, line 477
477
478<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.shortylove.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 479</script>
vendor: 1 bytes, line 479
479
480<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 481 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); 482</script>
vendor: 1 bytes, line 482
482
483<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})}})); 484</script>
vendor: 1 bytes, line 484
484
485<script id='scb4127' type='text/javascript' async='' src='https://www.shortylove.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
485<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.shortylove.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 486<style id="shopify-accelerated-checkout-cart"> 487 #shopify-buyer-consent { 488 margin-top: 1em; 489 display: inline-block; 490 width: 100%; 491} 492 493#shopify-buyer-consent.hidden { 494 display: none; 495} 496 497#shopify-subscription-policy-button { 498 background: none; 499 border: none; 500 padding: 0; 501 text-decoration: underline; 502 font-size: inherit; 503 cursor: pointer; 504} 505 506#shopify-subscription-policy-button::before { 507 box-shadow: none; 508} 509 510 </style> 511
512<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
512 513<link href="//www.shortylove.com/cdn/shop/t/156/assets/theme.css?v=51711031825976166021771960062" rel="stylesheet" type="text/css" media="all" />
513<script type="application/ld+json"> 514{ 515 "@context": "https://schema.org", 516 "@type": "Store", 517 "name": "shortyLOVE", 518 "logo": "https://www.shortylove.com/cdn/shop/files/3000x300_logo_w_tbg.png?v=1773684961&width=500", 519 "image": "https://www.shortylove.com/cdn/shop/files/3000x300_logo_w_tbg.png?v=1773684961&width=500", 520 "description": "ShortyLOVE is a woman-owned brand specializing in designer handbags and accessories crafted from premium, easy-to-clean nylon. Their extensive product line features crossbody bags, backpacks, and totes available in various sizes and color palettes, including classic neutrals and limited editions. The brand prioritizes functional design, incorporating signature light-colored interiors and strategically placed pockets to enhance organization. Customers benefit from free domestic shipping within the continental U.S., a hassle-free return policy, and a dedicated rewards program. In addition to new arrivals, the retailer offers pre-owned items and specialized accessories like quilted baby mats and custom straps. Positive reviews highlight the company's commitment to durability and style, positioning these lightweight bags as practical alternatives to traditional luxury fashion.", 521 "email": "[email protected]", 522 "url": "https://www.shortylove.com/", 523 "address": { 524 "@type": "PostalAddress", 525 "streetAddress": "538 2nd Ave", 526 "addressLocality": "New York", 527 "addressRegion": "NY", 528 "postalCode": "10016", 529 "addressCountry": "US" 530 }, 531 "sameAs": [ 532 "https://www.instagram.com/shortylovebags/?hl=en", 533 "https://www.linkedin.com/company/shortylove", 534 "https://www.facebook.com/shortylovebags/" 535 ] 536} 537</script>
537<script type="application/ld+json"> 538{ 539 "@context": "https://schema.org", 540 "@type": "Organization", 541 "name": "shortyLOVE", 542 "url": "https://www.shortylove.com/", 543 "aggregateRating": { 544 "@type": "AggregateRating", 545 "ratingValue": "5", 546 "bestRating": "5", 547 "worstRating": "1", 548 "ratingCount": "5" 549 }, 550 "review": [ 551 { 552 "@type": "Review", 553 "itemReviewed": { 554 "@type": "Organization", 555 "name": "shortyLOVE", 556 "url": "https://www.shortylove.com/" 557 }, 558 "author": { 559 "@type": "Person", 560 "name": "Anita E." 561 }, 562 "name": "Function + Style", 563 "reviewBody": "I am new to shortyLOVE bags but they have quickly become my favorite! The design is so smart and stylish with great details. The zippers open and close smoothly and the blush lining is not only beautiful, but it really does help you find your things. I will be buying many more!", 564 "reviewRating": { 565 "@type": "Rating", 566 "ratingValue": "5", 567 "bestRating": "5", 568 "worstRating": "1" 569 } 570 }, 571 { 572 "@type": "Review", 573 "itemReviewed": { 574 "@type": "Organization", 575 "name": "shortyLOVE", 576 "url": "https://www.shortylove.com/" 577 }, 578 "author": { 579 "@type": "Person", 580 "name": "Olena I." 581 }, 582 "name": "A Product That Delivers", 583 "reviewBody": "My experience with shortyLOVE has been amazing. Everything feels elevated and practical. Their bags are not only stylish but truly functionalâyou can tell they were designed by someone who understands everyday life. Fast shipping and great customer service. Highly recommend!", 584 "reviewRating": { 585 "@type": "Rating", 586 "ratingValue": "5", 587 "bestRating": "5", 588 "worstRating": "1" 589 } 590 }, 591 { 592 "@type": "Review", 593 "itemReviewed": { 594 "@type": "Organization", 595 "name": "shortyLOVE", 596 "url": "https://www.shortylove.com/" 597 }, 598 "author": { 599 "@type": "Person", 600 "name": "Janet B." 601 }, 602 "name": "Unmatched Quality", 603 "reviewBody": "I have four different bags from shortyLOVE and I love every one of them. The quality of the bags is the best!!", 604 "reviewRating": { 605 "@type": "Rating", 606 "ratingValue": "5", 607 "bestRating": "5", 608 "worstRating": "1" 609 } 610 }, 611 { 612 "@type": "Review", 613 "itemReviewed": { 614 "@type": "Organization", 615 "name": "shortyLOVE", 616 "url": "https://www.shortylove.com/" 617 }, 618 "author": { 619 "@type": "Person", 620 "name": "Kim B." 621 }, 622 "name": "My Favorite Bags of All", 623 "reviewBody": "Love these bags! I have Celine bags, Prada bags and other high-end work bags. shortyLOVE bags are my favorite. Room for everything, secure water bottle pouches. They are light unlike my other luxury bags. Just great!", 624 "reviewRating": { 625 "@type": "Rating", 626 "ratingValue": "5", 627 "bestRating": "5", 628 "worstRating": "1" 629 } 630 }, 631 { 632 "@type": "Review", 633 "itemReviewed": { 634 "@type": "Organization", 635 "name": "shortyLOVE", 636 "url": "https://www.shortylove.com/" 637 }, 638 "author": { 639 "@type": "Person", 640 "name": "Melissa K." 641 }, 642 "name": "It's Love", 643 "reviewBody": "Love everything about shortyLOVE. I own several bags and wallets, and they make great gifts to give as well. So functional, great quality, and the fabric is amazingly easy to clean.", 644 "reviewRating": { 645 "@type": "Rating", 646 "ratingValue": "5", 647 "bestRating": "5", 648 "worstRating": "1" 649 } 650 } 651 ] 652} 653</script>
653 654 655 656 657 658 659 <!-- BEGIN app block: shopify://apps/digioh/blocks/app-embed/5c569d3e-93be-4334-a107-6d8e1e612339 --> 660 661 662 663 664 665 666 667 668 669 670 671 672 <!--START Digioh Low Impact Javascript-->
673<script async type='text/javascript' src='https://forms.shortylove.com/w37htfhcq2/vendor/74c6eca0-647c-4823-afb4-5048ef4838de/lightbox_speed.js'></script>
673 674<!--END Digioh Low Impact Javascript--> 675 676 677 678<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 679 680 681 682 683 684 685 686 687 688 689 690 691
691<script async src="https://static.klaviyo.com/onsite/js/NsQGyp/klaviyo.js?company_id=NsQGyp"></script>
691 692
692<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>
692 693 694 695 696 697 698 699
699<script> 700 window.klaviyoReviewsProductDesignMode = false 701 </script>
701 702 703 704 705 <!-- BEGIN app snippet: customer-hub-data -->
705<script> 706 if (!window.customerHub) { 707 window.customerHub = {}; 708 } 709 window.customerHub.storefrontRoutes = { 710 login: "/account/login?return_url=%2F%23k-hub", 711 register: "/account/register?return_url=%2F%23k-hub", 712 logout: "/account/logout", 713 profile: "/account", 714 addresses: "/account/addresses", 715 }; 716 717 window.customerHub.userId = null; 718 719 window.customerHub.storeDomain = "shortylove.myshopify.com"; 720 721 722 723 724 window.customerHub.storeLocale = { 725 currentLanguage: 'en', 726 currentCountry: 'US', 727 availableLanguages: [ 728 729 { 730 iso_code: 'en', 731 endonym_name: 'English' 732 } 733 734 ], 735 availableCountries: [ 736 737 { 738 iso_code: 'AL', 739 name: 'Albania', 740 currency_code: 'ALL' 741 }, 742 743 { 744 iso_code: 'DZ', 745 name: 'Algeria', 746 currency_code: 'DZD' 747 }, 748 749 { 750 iso_code: 'AD', 751 name: 'Andorra', 752 currency_code: 'EUR' 753 }, 754 755 { 756 iso_code: 'AO', 757 name: 'Angola', 758 currency_code: 'USD' 759 }, 760 761 { 762 iso_code: 'AI', 763 name: 'Anguilla', 764 currency_code: 'XCD' 765 }, 766 767 { 768 iso_code: 'AG', 769 name: 'Antigua & Barbuda', 770 currency_code: 'XCD' 771 }, 772 773 { 774 iso_code: 'AR', 775 name: 'Argentina', 776 currency_code: 'USD' 777 }, 778 779 { 780 iso_code: 'AM', 781 name: 'Armenia', 782 currency_code: 'AMD' 783 }, 784 785 { 786 iso_code: 'AW', 787 name: 'Aruba', 788 currency_code: 'AWG' 789 }, 790 791 { 792 iso_code: 'AU', 793 name: 'Australia', 794 currency_code: 'AUD' 795 }, 796 797 { 798 iso_code: 'AT', 799 name: 'Austria', 800 currency_code: 'EUR' 801 }, 802 803 { 804 iso_code: 'AZ', 805 name: 'Azerbaijan', 806 currency_code: 'AZN' 807 }, 808 809 { 810 iso_code: 'BS', 811 name: 'Bahamas', 812 currency_code: 'BSD' 813 }, 814 815 { 816 iso_code: 'BH', 817 name: 'Bahrain', 818 currency_code: 'USD' 819 }, 820 821 { 822 iso_code: 'BD', 823 name: 'Bangladesh', 824 currency_code: 'BDT' 825 }, 826 827 { 828 iso_code: 'BB', 829 name: 'Barbados', 830 currency_code: 'BBD' 831 }, 832 833 { 834 iso_code: 'BE', 835 name: 'Belgium', 836 currency_code: 'EUR' 837 }, 838 839 { 840 iso_code: 'BZ', 841 name: 'Belize', 842 currency_code: 'BZD' 843 }, 844 845 { 846 iso_code: 'BJ', 847 name: 'Benin', 848 currency_code: 'XOF' 849 }, 850 851 { 852 iso_code: 'BM', 853 name: 'Bermuda', 854 currency_code: 'USD' 855 }, 856 857 { 858 iso_code: 'BO', 859 name: 'Bolivia', 860 currency_code: 'BOB' 861 }, 862 863 { 864 iso_code: 'BA', 865 name: 'Bosnia & Herzegovina', 866 currency_code: 'BAM' 867 }, 868 869 { 870 iso_code: 'BW', 871 name: 'Botswana', 872 currency_code: 'BWP' 873 }, 874 875 { 876 iso_code: 'BR', 877 name: 'Brazil', 878 currency_code: 'BRL' 879 }, 880 881 { 882 iso_code: 'VG', 883 name: 'British Virgin Islands', 884 currency_code: 'USD' 885 }, 886 887 { 888 iso_code: 'BN', 889 name: 'Brunei', 890 currency_code: 'BND' 891 }, 892 893 { 894 iso_code: 'BG', 895 name: 'Bulgaria', 896 currency_code: 'EUR' 897 }, 898 899 { 900 iso_code: 'BF', 901 name: 'Burkina Faso', 902 currency_code: 'XOF' 903 }, 904 905 { 906 iso_code: 'BI', 907 name: 'Burundi', 908 currency_code: 'BIF' 909 }, 910 911 { 912 iso_code: 'KH', 913 name: 'Cambodia', 914 currency_code: 'KHR' 915 }, 916 917 { 918 iso_code: 'CM', 919 name: 'Cameroon', 920 currency_code: 'XAF' 921 }, 922 923 { 924 iso_code: 'CA', 925 name: 'Canada', 926 currency_code: 'CAD' 927 }, 928 929 { 930 iso_code: 'CV', 931 name: 'Cape Verde', 932 currency_code: 'CVE' 933 }, 934 935 { 936 iso_code: 'BQ', 937 name: 'Caribbean Netherlands', 938 currency_code: 'USD' 939 }, 940 941 { 942 iso_code: 'KY', 943 name: 'Cayman Islands', 944 currency_code: 'KYD' 945 }, 946 947 { 948 iso_code: 'TD', 949 name: 'Chad', 950 currency_code: 'XAF' 951 }, 952 953 { 954 iso_code: 'CL', 955 name: 'Chile', 956 currency_code: 'USD' 957 }, 958 959 { 960 iso_code: 'CN', 961 name: 'China', 962 currency_code: 'CNY' 963 }, 964 965 { 966 iso_code: 'CO', 967 name: 'Colombia', 968 currency_code: 'USD' 969 }, 970 971 { 972 iso_code: 'KM', 973 name: 'Comoros', 974 currency_code: 'KMF' 975 }, 976 977 { 978 iso_code: 'CK', 979 name: 'Cook Islands', 980 currency_code: 'NZD' 981 }, 982 983 { 984 iso_code: 'CR', 985 name: 'Costa Rica', 986 currency_code: 'CRC' 987 }, 988 989 { 990 iso_code: 'HR', 991 name: 'Croatia', 992 currency_code: 'EUR' 993 }, 994 995 { 996 iso_code: 'CW', 997 name: 'Curaçao', 998 currency_code: 'ANG' 999 }, 1000 1001 { 1002 iso_code: 'CY', 1003 name: 'Cyprus', 1004 currency_code: 'EUR' 1005 }, 1006 1007 { 1008 iso_code: 'CZ', 1009 name: 'Czechia', 1010 currency_code: 'CZK' 1011 }, 1012 1013 { 1014 iso_code: 'DK', 1015 name: 'Denmark', 1016 currency_code: 'DKK' 1017 }, 1018 1019 { 1020 iso_code: 'DJ', 1021 name: 'Djibouti', 1022 currency_code: 'DJF' 1023 }, 1024 1025 { 1026 iso_code: 'DM', 1027 name: 'Dominica', 1028 currency_code: 'XCD' 1029 }, 1030 1031 { 1032 iso_code: 'DO', 1033 name: 'Dominican Republic', 1034 currency_code: 'DOP' 1035 }, 1036 1037 { 1038 iso_code: 'EC', 1039 name: 'Ecuador', 1040 currency_code: 'USD' 1041 }, 1042 1043 { 1044 iso_code: 'EG', 1045 name: 'Egypt', 1046 currency_code: 'EGP' 1047 }, 1048 1049 { 1050 iso_code: 'SV', 1051 name: 'El Salvador', 1052 currency_code: 'USD' 1053 }, 1054 1055 { 1056 iso_code: 'GQ', 1057 name: 'Equatorial Guinea', 1058 currency_code: 'XAF' 1059 }, 1060 1061 { 1062 iso_code: 'EE', 1063 name: 'Estonia', 1064 currency_code: 'EUR' 1065 }, 1066 1067 { 1068 iso_code: 'SZ', 1069 name: 'Eswatini', 1070 currency_code: 'USD' 1071 }, 1072 1073 { 1074 iso_code: 'ET', 1075 name: 'Ethiopia', 1076 currency_code: 'ETB' 1077 }, 1078 1079 { 1080 iso_code: 'FK', 1081 name: 'Falkland Islands', 1082 currency_code: 'FKP' 1083 }, 1084 1085 { 1086 iso_code: 'FO', 1087 name: 'Faroe Islands', 1088 currency_code: 'DKK' 1089 }, 1090 1091 { 1092 iso_code: 'FJ', 1093 name: 'Fiji', 1094 currency_code: 'FJD' 1095 }, 1096 1097 { 1098 iso_code: 'FI', 1099 name: 'Finland', 1100 currency_code: 'EUR' 1101 }, 1102 1103 { 1104 iso_code: 'FR', 1105 name: 'France', 1106 currency_code: 'EUR' 1107 }, 1108 1109 { 1110 iso_code: 'GF', 1111 name: 'French Guiana', 1112 currency_code: 'EUR' 1113 }, 1114 1115 { 1116 iso_code: 'PF', 1117 name: 'French Polynesia', 1118 currency_code: 'XPF' 1119 }, 1120 1121 { 1122 iso_code: 'GA', 1123 name: 'Gabon', 1124 currency_code: 'XOF' 1125 }, 1126 1127 { 1128 iso_code: 'GM', 1129 name: 'Gambia', 1130 currency_code: 'GMD' 1131 }, 1132 1133 {
1134 iso_code: 'GE', 1135 name: 'Georgia', 1136 currency_code: 'USD' 1137 }, 1138 1139 { 1140 iso_code: 'DE', 1141 name: 'Germany', 1142 currency_code: 'EUR' 1143 }, 1144 1145 { 1146 iso_code: 'GH', 1147 name: 'Ghana', 1148 currency_code: 'USD' 1149 }, 1150 1151 { 1152 iso_code: 'GI', 1153 name: 'Gibraltar', 1154 currency_code: 'GBP' 1155 }, 1156 1157 { 1158 iso_code: 'GR', 1159 name: 'Greece', 1160 currency_code: 'EUR' 1161 }, 1162 1163 { 1164 iso_code: 'GL', 1165 name: 'Greenland', 1166 currency_code: 'DKK' 1167 }, 1168 1169 { 1170 iso_code: 'GD', 1171 name: 'Grenada', 1172 currency_code: 'XCD' 1173 }, 1174 1175 { 1176 iso_code: 'GP', 1177 name: 'Guadeloupe', 1178 currency_code: 'EUR' 1179 }, 1180 1181 { 1182 iso_code: 'GT', 1183 name: 'Guatemala', 1184 currency_code: 'GTQ' 1185 }, 1186 1187 { 1188 iso_code: 'GG', 1189 name: 'Guernsey', 1190 currency_code: 'GBP' 1191 }, 1192 1193 { 1194 iso_code: 'GN', 1195 name: 'Guinea', 1196 currency_code: 'GNF' 1197 }, 1198 1199 { 1200 iso_code: 'GW', 1201 name: 'Guinea-Bissau', 1202 currency_code: 'XOF' 1203 }, 1204 1205 { 1206 iso_code: 'GY', 1207 name: 'Guyana', 1208 currency_code: 'GYD' 1209 }, 1210 1211 { 1212 iso_code: 'HT', 1213 name: 'Haiti', 1214 currency_code: 'USD' 1215 }, 1216 1217 { 1218 iso_code: 'HN', 1219 name: 'Honduras', 1220 currency_code: 'HNL' 1221 }, 1222 1223 { 1224 iso_code: 'HK', 1225 name: 'Hong Kong SAR', 1226 currency_code: 'HKD' 1227 }, 1228 1229 { 1230 iso_code: 'HU', 1231 name: 'Hungary', 1232 currency_code: 'HUF' 1233 }, 1234 1235 { 1236 iso_code: 'IS', 1237 name: 'Iceland', 1238 currency_code: 'ISK' 1239 }, 1240 1241 { 1242 iso_code: 'IN', 1243 name: 'India', 1244 currency_code: 'INR' 1245 }, 1246 1247 { 1248 iso_code: 'ID', 1249 name: 'Indonesia', 1250 currency_code: 'IDR' 1251 }, 1252 1253 { 1254 iso_code: 'IE', 1255 name: 'Ireland', 1256 currency_code: 'EUR' 1257 }, 1258 1259 { 1260 iso_code: 'IL', 1261 name: 'Israel', 1262 currency_code: 'ILS' 1263 }, 1264 1265 { 1266 iso_code: 'IT', 1267 name: 'Italy', 1268 currency_code: 'EUR' 1269 }, 1270 1271 { 1272 iso_code: 'JM', 1273 name: 'Jamaica', 1274 currency_code: 'JMD' 1275 }, 1276 1277 { 1278 iso_code: 'JP', 1279 name: 'Japan', 1280 currency_code: 'JPY' 1281 }, 1282 1283 { 1284 iso_code: 'JE', 1285 name: 'Jersey', 1286 currency_code: 'USD' 1287 }, 1288 1289 { 1290 iso_code: 'JO', 1291 name: 'Jordan', 1292 currency_code: 'USD' 1293 }, 1294 1295 { 1296 iso_code: 'KZ', 1297 name: 'Kazakhstan', 1298 currency_code: 'KZT' 1299 }, 1300 1301 { 1302 iso_code: 'KE', 1303 name: 'Kenya', 1304 currency_code: 'KES' 1305 }, 1306 1307 { 1308 iso_code: 'KI', 1309 name: 'Kiribati', 1310 currency_code: 'USD' 1311 }, 1312 1313 { 1314 iso_code: 'KW', 1315 name: 'Kuwait', 1316 currency_code: 'USD' 1317 }, 1318 1319 { 1320 iso_code: 'KG', 1321 name: 'Kyrgyzstan', 1322 currency_code: 'KGS' 1323 }, 1324 1325 { 1326 iso_code: 'LA', 1327 name: 'Laos', 1328 currency_code: 'LAK' 1329 }, 1330 1331 { 1332 iso_code: 'LV', 1333 name: 'Latvia', 1334 currency_code: 'EUR' 1335 }, 1336 1337 { 1338 iso_code: 'LS', 1339 name: 'Lesotho', 1340 currency_code: 'USD' 1341 }, 1342 1343 { 1344 iso_code: 'LI', 1345 name: 'Liechtenstein', 1346 currency_code: 'CHF' 1347 }, 1348 1349 { 1350 iso_code: 'LT', 1351 name: 'Lithuania', 1352 currency_code: 'EUR' 1353 }, 1354 1355 { 1356 iso_code: 'LU', 1357 name: 'Luxembourg', 1358 currency_code: 'EUR' 1359 }, 1360 1361 { 1362 iso_code: 'MO', 1363 name: 'Macao SAR', 1364 currency_code: 'MOP' 1365 }, 1366 1367 { 1368 iso_code: 'MG', 1369 name: 'Madagascar', 1370 currency_code: 'USD' 1371 }, 1372 1373 { 1374 iso_code: 'MW', 1375 name: 'Malawi', 1376 currency_code: 'MWK' 1377 }, 1378 1379 { 1380 iso_code: 'MY', 1381 name: 'Malaysia', 1382 currency_code: 'MYR' 1383 }, 1384 1385 { 1386 iso_code: 'MV', 1387 name: 'Maldives', 1388 currency_code: 'MVR' 1389 }, 1390 1391 { 1392 iso_code: 'MT', 1393 name: 'Malta', 1394 currency_code: 'EUR' 1395 }, 1396 1397 { 1398 iso_code: 'MQ', 1399 name: 'Martinique', 1400 currency_code: 'EUR' 1401 }, 1402 1403 { 1404 iso_code: 'MR', 1405 name: 'Mauritania', 1406 currency_code: 'USD' 1407 }, 1408 1409 { 1410 iso_code: 'MU', 1411 name: 'Mauritius', 1412 currency_code: 'MUR' 1413 }, 1414 1415 { 1416 iso_code: 'YT', 1417 name: 'Mayotte', 1418 currency_code: 'EUR' 1419 }, 1420 1421 { 1422 iso_code: 'MX', 1423 name: 'Mexico', 1424 currency_code: 'MXN' 1425 }, 1426 1427 { 1428 iso_code: 'MD', 1429 name: 'Moldova', 1430 currency_code: 'MDL' 1431 }, 1432 1433 { 1434 iso_code: 'MC', 1435 name: 'Monaco', 1436 currency_code: 'EUR' 1437 }, 1438 1439 { 1440 iso_code: 'MN', 1441 name: 'Mongolia', 1442 currency_code: 'MNT' 1443 }, 1444 1445 { 1446 iso_code: 'ME', 1447 name: 'Montenegro', 1448 currency_code: 'EUR' 1449 }, 1450 1451 { 1452 iso_code: 'MS', 1453 name: 'Montserrat', 1454 currency_code: 'XCD' 1455 }, 1456 1457 { 1458 iso_code: 'MA', 1459 name: 'Morocco', 1460 currency_code: 'MAD' 1461 }, 1462 1463 { 1464 iso_code: 'MZ', 1465 name: 'Mozambique', 1466 currency_code: 'USD' 1467 }, 1468 1469 { 1470 iso_code: 'NA', 1471 name: 'Namibia', 1472 currency_code: 'USD' 1473 }, 1474 1475 { 1476 iso_code: 'NR', 1477 name: 'Nauru', 1478 currency_code: 'AUD' 1479 }, 1480 1481 { 1482 iso_code: 'NP', 1483 name: 'Nepal', 1484 currency_code: 'NPR' 1485 }, 1486 1487 { 1488 iso_code: 'NL', 1489 name: 'Netherlands', 1490 currency_code: 'EUR' 1491 }, 1492 1493 { 1494 iso_code: 'NC', 1495 name: 'New Caledonia', 1496 currency_code: 'XPF' 1497 }, 1498 1499 { 1500 iso_code: 'NZ', 1501 name: 'New Zealand', 1502 currency_code: 'NZD' 1503 }, 1504 1505 { 1506 iso_code: 'NI', 1507 name: 'Nicaragua', 1508 currency_code: 'NIO' 1509 }, 1510 1511 { 1512 iso_code: 'NG', 1513 name: 'Nigeria', 1514 currency_code: 'NGN' 1515 }, 1516 1517 { 1518 iso_code: 'NU', 1519 name: 'Niue', 1520 currency_code: 'NZD' 1521 }, 1522 1523 { 1524 iso_code: 'MK', 1525 name: 'North Macedonia', 1526 currency_code: 'MKD' 1527 }, 1528 1529 { 1530 iso_code: 'NO', 1531 name: 'Norway', 1532 currency_code: 'USD' 1533 }, 1534 1535 { 1536 iso_code: 'OM', 1537 name: 'Oman', 1538 currency_code: 'USD' 1539 }, 1540 1541 { 1542 iso_code: 'PK', 1543 name: 'Pakistan', 1544 currency_code: 'PKR' 1545 }, 1546 1547 { 1548 iso_code: 'PA', 1549 name: 'Panama', 1550 currency_code: 'USD' 1551 }, 1552 1553 { 1554 iso_code: 'PG', 1555 name: 'Papua New Guinea', 1556 currency_code: 'PGK' 1557 }, 1558 1559 { 1560 iso_code: 'PY', 1561 name: 'Paraguay', 1562 currency_code: 'PYG' 1563 }, 1564 1565 { 1566 iso_code: 'PE', 1567 name: 'Peru', 1568 currency_code: 'PEN' 1569 }, 1570 1571 { 1572 iso_code: 'PH', 1573 name: 'Philippines', 1574 currency_code: 'PHP' 1575 }, 1576 1577 { 1578 iso_code: 'PL', 1579 name: 'Poland', 1580 currency_code: 'PLN' 1581 }, 1582 1583 { 1584 iso_code: 'PT', 1585 name: 'Portugal', 1586 currency_code: 'EUR' 1587 }, 1588 1589 { 1590 iso_code: 'QA', 1591 name: 'Qatar', 1592 currency_code: 'QAR' 1593 }, 1594 1595 { 1596 iso_code: 'RE', 1597 name: 'Réunion', 1598 currency_code: 'EUR' 1599 }, 1600 1601 { 1602 iso_code: 'RO', 1603 name: 'Romania', 1604 currency_code: 'RON' 1605 }, 1606 1607 { 1608 iso_code: 'RW', 1609 name: 'Rwanda', 1610 currency_code: 'RWF' 1611 }, 1612 1613 { 1614 iso_code: 'WS', 1615 name: 'Samoa', 1616 currency_code: 'WST' 1617 }, 1618 1619 { 1620 iso_code: 'SM', 1621 name: 'San Marino', 1622 currency_code: 'EUR' 1623 }, 1624 1625 { 1626 iso_code: 'ST', 1627 name: 'São Tomé & PrÃncipe', 1628 currency_code: 'STD' 1629 }, 1630 1631 { 1632 iso_code: 'SA', 1633 name: 'Saudi Arabia', 1634 currency_code: 'SAR' 1635 }, 1636 1637 { 1638 iso_code: 'SN', 1639 name: 'Senegal', 1640 currency_code: 'XOF' 1641 }, 1642 1643 { 1644 iso_code: 'RS', 1645 name: 'Serbia', 1646 currency_code: 'RSD' 1647 }, 1648 1649 { 1650 iso_code: 'SC', 1651 name: 'Seychelles', 1652 currency_code: 'USD' 1653 }, 1654 1655 { 1656 iso_code: 'SL', 1657 name: 'Sierra Leone', 1658 currency_code: 'SLL' 1659 }, 1660 1661 { 1662 iso_code: 'SG', 1663 name: 'Singapore', 1664 currency_code: 'SGD' 1665 }, 1666 1667 { 1668 iso_code: 'SK', 1669 name: 'Slovakia', 1670 currency_code: 'EUR' 1671 }, 1672 1673 { 1674 iso_code: 'SI', 1675 name: 'Slovenia', 1676 currency_code: 'EUR' 1677 }, 1678 1679 { 1680 iso_code: 'SB', 1681 name: 'Solomon Islands', 1682 currency_code: 'SBD' 1683 }, 1684 1685 { 1686 iso_code: 'ZA', 1687 name: 'South Africa', 1688 currency_code: 'ZAR' 1689 }, 1690 1691 { 1692 iso_code: 'KR', 1693 name: 'South Korea', 1694 currency_code: 'KRW' 1695 }, 1696 1697 { 1698 iso_code: 'ES', 1699 name: 'Spain', 1700 currency_code: 'EUR' 1701 }, 1702 1703 { 1704 iso_code: 'LK', 1705 name: 'Sri Lanka', 1706 currency_code: 'LKR' 1707 }, 1708 1709 { 1710 iso_code: 'BL', 1711 name: 'St. Barthélemy', 1712 currency_code: 'EUR' 1713 }, 1714 1715 { 1716 iso_code: 'KN', 1717 name: 'St. Kitts & Nevis', 1718 currency_code: 'XCD' 1719 }, 1720 1721 { 1722 iso_code: 'LC', 1723 name: 'St. Lucia', 1724 currency_code: 'XCD' 1725 }, 1726 1727 { 1728 iso_code: 'MF', 1729 name: 'St. Martin', 1730 currency_code: 'EUR' 1731 }, 1732 1733 { 1734 iso_code: 'VC', 1735 name: 'St. Vincent & Grenadines', 1736 currency_code: 'XCD' 1737 }, 1738 1739 { 1740 iso_code: 'SR', 1741 name: 'Suriname', 1742 currency_code: 'USD' 1743 }, 1744 1745 { 1746 iso_code: 'SE', 1747 name: 'Sweden', 1748 currency_code: 'SEK' 1749 }, 1750 1751 { 1752 iso_code: 'CH', 1753 name: 'Switzerland', 1754 currency_code: 'CHF' 1755 }, 1756 1757 { 1758 iso_code: 'TW', 1759 name: 'Taiwan', 1760 currency_code: 'TWD' 1761 }, 1762 1763 { 1764 iso_code: 'TZ', 1765 name: 'Tanzania', 1766 currency_code: 'TZS' 1767 }, 1768 1769 { 1770 iso_code: 'TH', 1771 name: 'Thailand', 1772 currency_code: 'THB' 1773 }, 1774 1775 { 1776 iso_code: 'TL', 1777 name: 'Timor-Leste', 1778 currency_code: 'USD' 1779 }, 1780 1781 { 1782 iso_code: 'TG', 1783 name: 'Togo', 1784 currency_code: 'XOF' 1785 }, 1786 1787 { 1788 iso_code: 'TO', 1789 name: 'Tonga', 1790 currency_code: 'TOP' 1791 }, 1792 1793 { 1794 iso_code: 'TT', 1795 name: 'Trinidad & Tobago', 1796 currency_code: 'TTD' 1797 }, 1798 1799 { 1800 iso_code: 'TN', 1801 name: 'Tunisia', 1802 currency_code: 'USD' 1803 }, 1804 1805 { 1806 iso_code: 'TC', 1807 name: 'Turks & Caicos Islands', 1808 currency_code: 'USD' 1809 }, 1810 1811 { 1812 iso_code: 'TV', 1813 name: 'Tuvalu', 1814 currency_code: 'AUD' 1815 }, 1816 1817 { 1818 iso_code: 'UG', 1819 name: 'Uganda', 1820 currency_code: 'UGX' 1821 }, 1822 1823 { 1824 iso_code: 'AE', 1825 name: 'United Arab Emirates', 1826 currency_code: 'AED' 1827 }, 1828 1829 { 1830 iso_code: 'GB', 1831 name: 'United Kingdom', 1832 currency_code: 'GBP' 1833 }, 1834 1835 { 1836 iso_code: 'US', 1837 name: 'United States', 1838 currency_code: 'USD' 1839 }, 1840 1841 { 1842 iso_code: 'UY', 1843 name: 'Uruguay', 1844 currency_code: 'UYU' 1845 }, 1846
1846 1847 { 1848 iso_code: 'UZ', 1849 name: 'Uzbekistan', 1850 currency_code: 'UZS' 1851 }, 1852 1853 { 1854 iso_code: 'VU', 1855 name: 'Vanuatu', 1856 currency_code: 'VUV' 1857 }, 1858 1859 { 1860 iso_code: 'VN', 1861 name: 'Vietnam', 1862 currency_code: 'VND' 1863 }, 1864 1865 { 1866 iso_code: 'ZM', 1867 name: 'Zambia', 1868 currency_code: 'USD' 1869 } 1870 1871 ] 1872 }; 1873 1874</script>
1874 1875<!-- END app snippet --> 1876 1877 1878 1879 <!-- BEGIN app snippet: customer-hub-replace-links -->
1880<script> 1881 function replaceAccountLinks() { 1882 const selector = 1883 'a[href$="/account/login"], a[href$="/account"], a[href^="https://shopify.com/"][href*="/account"], a[href*="/customer_identity/redirect"], a[href*="/customer_authentication/redirect"], a[href$="/account'; 1884 const accountLinksNodes = document.querySelectorAll(selector); 1885 for (const node of accountLinksNodes) { 1886 const ignore = node.dataset.kHubIgnore !== undefined && node.dataset.kHubIgnore !== 'false'; 1887 if (!ignore) { 1888 // Any login links to Shopify's account system, point them at the customer hub instead. 1889 node.href = '#k-hub'; 1890 /** 1891 * There are some themes which apply a page transition on every click of an anchor tag (usually a fade-out) that's supposed to be faded back in when the next page loads. 1892 * However, since clicking the k-hub link doesn't trigger a page load, the page gets stuck on a blank screen. 1893 * Luckily, these themes usually have a className you can add to links to skip the transition. 1894 * Let's hope that all such themes are consistent/copy each other and just proactively add those classNames when we replace the link. 1895 **/ 1896 node.classList.add('no-transition', 'js-no-transition'); 1897 } 1898 } 1899 } 1900 1901 1902 if (document.readyState === 'complete') { 1903 replaceAccountLinks(); 1904 } else { 1905 const controller = new AbortController(); 1906 document.addEventListener( 1907 'readystatechange', 1908 () => { 1909 replaceAccountLinks(); // try to replace links both during `interactive` state and `complete` state 1910 if (document.readyState === 'complete') { 1911 // readystatechange can fire with "complete" multiple times per page load, so make sure we're not duplicating effort 1912 // by removing the listener afterwards. 1913 controller.abort(); 1914 } 1915 }, 1916 { signal: controller.signal }, 1917 ); 1918 } 1919 1920</script>
1920 1921<!-- END app snippet --> 1922 1923 1924 1925 1926 1927<!-- END app block --><!-- BEGIN app block: shopify://apps/black-crow-ai-that-delivers/blocks/blackcrow_ai_script/3e73f597-cb71-47a1-8a06-0c931482ecd2 --> 1928
1929<script type="text/javascript" async src="https://shopify-init.blackcrow.ai/js/core/shortylove.js?shop=shortylove.myshopify.com&tagSrc=ShopifyThemeAppExtension"></script>
1929 1930 1931 1932<!-- END app block --><!-- BEGIN app block: shopify://apps/le-pixel/blocks/app-embed/ed69facb-49c9-4e93-9d56-146cc0aa96f6 --><link rel="preconnect dns-prefetch" href="https://m6ulblxep4.execute-api.us-east-1.amazonaws.com" crossorigin>
1933<script> 1934 window.shopDomain = 'shortylove.myshopify.com' 1935 window.customerId = null 1936</script>
1936 1937<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-loyalty-rewards/blocks/loader-app-embed-block/2f9660df-5018-4e02-9868-ee1fb88d6ccd --> 1938
1938<script src="https://cdn-widgetsrepository.yotpo.com/v1/loader/" async></script>
1938 1939 1940 1941 1942 1943<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
1944<script type="text/javascript"> 1945 (function (c, l, a, r, i, t, y) { 1946 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 1947 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 1948 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 1949 1950 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 1951 if (error) { 1952 console.error("Error loading Shopify features:", error); 1953 return; 1954 } 1955 1956 c[a]('consentv2', { 1957 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 1958 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 1959 source: 101, 1960 }); 1961 }); 1962 1963 l.addEventListener("visitorConsentCollected", function (e) { 1964 c[a]('consentv2', { 1965 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 1966 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 1967 source: 101, 1968 }); 1969 }); 1970 })(window, document, "clarity", "script", "srxyk72t6l"); 1971</script>
1971 1972 1973 1974 1975<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf --> 1976 1977 1978
1978<script type="text/javascript" src="https://cdn-widgetsrepository.yotpo.com/v1/loader/GX51pGwCy0oGc4StNDtDvhWeuzhVHXAdsR1bQO9g?languageCode=en" async></script>
1978 1979 1980 1981 1982 1983<!-- END app block -->
1983<script src="https://cdn.shopify.com/extensions/01a0d8e2-11f2-76c1-8dac-f5a50e4722e6/loop-returns-503/assets/onstore-block.js" type="text/javascript" defer="defer"></script>
1983 1984<link href="https://cdn.shopify.com/extensions/01a0d8e2-11f2-76c1-8dac-f5a50e4722e6/loop-returns-503/assets/onstore-block.css" rel="stylesheet" type="text/css" media="all">
1985<script src="https://cdn.shopify.com/extensions/019ff4f9-80ea-753d-a24d-33b025394dcf/deliverr-fast-tags-1-12/assets/main.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1985
1985
1986<script src="https://cdn.shopify.com/extensions/019ef523-59f1-7c85-811d-f9b3c853e576/le-pixel-69/assets/pixel-page-view.js" type="text/javascript" defer="defer"></script>
1986 1987<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1988<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: 29857554,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 1988
1988
1989<script> 1990 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1991</script>
vendor: 1 bytes, line 1991
1991
1992<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}
1992).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: 29857554,storefrontBaseUrl: "https://www.shortylove.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.shortylove.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2365194391","configuration":"{\"storeId\":\"707197a2-a69c-4a05-ad96-1d08884de9bd\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9b5c7e9eba54366aed35e340586c8163","type":"APP","apiClientId":274629623809,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2021949591","configuration":"{\"shopID\": \"75000\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d22b5691c62682d22357c5bcbea63a2b","type":"APP","apiClientId":3780451,"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"}
1992,{"id":"1893007511","configuration":"{\"accountID\":\"74c6eca0-647c-4823-afb4-5048ef4838de\",\"TrackEventEndpoint\":\"https:\/\/forms.shortylove.com\/jnxs3jkh45\/idfj9ksdf2ler67aa22\/v1\/klaviyo\/TrackEventJson\/?platform=d\u0026user_guid=74c6eca0-647c-4823-afb4-5048ef4838de\u0026integration_id=78053\u0026custom_payload=true\",\"IsTpauEnabled\":\"true\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a873d0b190720fd5ddfc383fbc4f9909","type":"APP","apiClientId":213046034433,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1865678999","configuration":"{\"advertiserId\":\"91477\",\"shopDomain\":\"shortylove.myshopify.com\",\"appVersion\":\"shopifyApp_5.3.0\",\"originalNetwork\":\"sas\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c287d09bac7e7a912a76f3941fab1c2f","type":"APP","apiClientId":2887701,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1865318551","configuration":"{\"shop\":\"shortylove.myshopify.com\", \"shopliftUrl\":\"https:\/\/events.shoplift.ai\/api\/events\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"dabcda9558be25394b12ce3ce899568b","type":"APP","apiClientId":7521861633,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1380057239","configuration":"{\"accountID\":\"NsQGyp\",\"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":"1340211351","configuration":"{\"accountID\":\"shortylove\",\"enabled\":\"true\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"89b8fc7bacd986277f3307e7b7701ff0","type":"APP","apiClientId":2489611,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1215365271","configuration":"{\"projectId\":\"srxyk72t6l\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1183088791","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"f92d7cfd1521456d481ee553d236893f","type":"APP","apiClientId":30400643073,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"943358103","configuration":"{\"accountID\":\"949c4153-6aa9-49e1-a51c-934665044285\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"31a2d548e70c3f0f271a3b3356ee9334","type":"APP","apiClientId":2415836,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"768278679","configuration":"{\"accountID\":\"le_pixel\",\"leEnricherEnabled\":\"False\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"83fc2302cab95552282c1737f9aba9c1","type":"APP","apiClientId":166841712641,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"566722711","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"AW-763332094\\\",\\\"GT-577ZG3D\\\",\\\"G-Y1TES16MTY\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"AW-763332094\\\/v-iUCN2K59gBEP6L_usC\\\",\\\"G-Y1TES16MTY\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"AW-763332094\\\/2AgDCNqK59gBEP6L_usC\\\",\\\"G-Y1TES16MTY\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"AW-763332094\\\/CkAjCNSK59gBEP6L_usC\\\",\\\"MC-1MMFQ49THR\\\",\\\"G-Y1TES16MTY\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"AW-763332094\\\/JSTyCNGK59gBEP6L_usC\\\",\\\"MC-1MMFQ49THR\\\",\\\"AW-763332094\\\/Acx-CObXgN4DEP6L_usC\\\",\\\"G-Y1TES16MTY\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"AW-763332094\\\/5uO7COuG59gBEP6L_usC\\\",\\\"MC-1MMFQ49THR\\\",\\\"G-Y1TES16MTY\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"AW-763332094\\\/hVXZCNiL59gBEP6L_usC\\\",\\\"G-Y1TES16MTY\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"AW-763332094\\\/vkpNCNeK59gBEP6L_usC\\\",\\\"G-Y1TES16MTY\\\"]}],\\\"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":"40665239","configuration":"{\"shop_id\":\"shortylove.mysh
1992opify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d5624be04709da2f8b8f0aab4279794d","type":"APP","apiClientId":6615189,"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":"3997847","configuration":"{ \"bundleName\": \"shortylove\" }","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"6d69af31d151d9c0dc4842dc2c8531ca","type":"APP","apiClientId":5106349,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"39977111","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"AddShoppers"},{"id":"139329687","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"customersai"},{"id":"151683223","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Hue Custom Pixel"},{"id":"153288855","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"Post-Purchase All Events"}
1992,{"id":"162201751","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"],"name":"Universal Ads Page View "},{"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":"shortyLOVE","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"shortylove.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.shortylove.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://www.shortylove.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"148520042647","themePublished":"true","eventMetadataId":"67c09da1-fefd-481a-8cce-d0944b8e06cb","shopId":"29857554","storefrontBaseUrl":"https:\/\/www.shortylove.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1992<script> 1993 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1994 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1995 window.ShopifyAnalytics.meta.currency = 'USD'; 1996 var meta = {"page":{"requestId":"c53e79e5-d7bb-4c5f-9b0d-a5b27a8ebf90-1790349759"}}; 1997 for (var attr in meta) { 1998 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1999 } 2000</script>
vendor: 1 bytes, line 2000
2000
2001<script class="analytics"> 2002 (function () { 2003 var customDocumentWrite = function(content) { 2004 var jquery = null; 2005 2006 if (window.jQuery) { 2007 jquery = window.jQuery; 2008 } else if (window.Checkout && window.Checkout.$) { 2009 jquery = window.Checkout.$; 2010 } 2011 2012 if (jquery) { 2013 jquery('body').append(content); 2014 } 2015 }; 2016 2017 var hasLoggedConversion = function(token) { 2018 if (token) { 2019 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 2020 } 2021 return false; 2022 } 2023 2024 var setCookieIfConversion = function(token) { 2025 if (token) { 2026 var twoMonthsFromNow = new Date(Date.now()); 2027 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 2028 2029 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 2030 } 2031 } 2032 2033 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 2034 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 2035 if (trekkie.integrations) { 2036 return; 2037 } 2038 trekkie.methods = [ 2039 'identify', 2040 'page', 2041 'ready', 2042 'track', 2043 'trackForm', 2044 'trackLink' 2045 ]; 2046 trekkie.factory = function(method) { 2047 return function() { 2048 var args = Array.prototype.slice.call(arguments); 2049 args.unshift(method); 2050 trekkie.push(args); 2051 if (method == 'track' || method == 'page') { 2052 var pageUrl; 2053 try { 2054 pageUrl = window.location.href; 2055 } catch (e) {} 2056 var pageReferrer; 2057 try { 2058 pageReferrer = document.referrer; 2059 } catch (e) {} 2060 try { 2061 if (window.__TREKKIE_SHIM_QUEUE == null) { 2062 window.__TREKKIE_SHIM_QUEUE = []; 2063 } 2064 window.__TREKKIE_SHIM_QUEUE.push({ 2065 from: 'trekkie-stub', 2066 method: method, 2067 args: args.slice(1), 2068 pageContext: { 2069 url: pageUrl, 2070 referrer: pageReferrer 2071 } 2072 }); 2073 } catch (e) { 2074 // no-op 2075 } 2076 } 2077 return trekkie; 2078 }; 2079 }; 2080 for (var i = 0; i < trekkie.methods.length; i++) { 2081 var key = trekkie.methods[i]; 2082 trekkie[key] = trekkie.factory(key); 2083 } 2084 trekkie.load = function(config) { 2085 trekkie.config = config || {}; 2086 trekkie.config.initialDocumentCookie = document.cookie; 2087 var first = document.getElementsByTagName('script')[0]; 2088var script = document.createElement('script'); 2089script.type = 'text/javascript'; 2090script.onerror = function(e) { 2091 var scriptFallback = document.createElement('script'); 2092 scriptFallback.type = 'text/javascript'; 2093 scriptFallback.onerror = function(error) { 2094 var Monorail = { 2095 produce: function produce(monorailDomain, schemaId, payload) { 2096 var currentMs = new Date().getTime(); 2097 var event = { 2098 schema_id: schemaId, 2099 payload: payload, 2100 metadata: { 2101 event_created_at_ms: currentMs, 2102 event_sent_at_ms: currentMs 2103 } 2104 }; 2105 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 2106 }, 2107 sendRequest: function sendRequest(endpointUrl, payload) { 2108 // Try the sendBeacon API 2109 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 2110 var blobData = new window.Blob([payload], { 2111 type: 'text/plain' 2112 }); 2113 2114 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 2115 return true; 2116 } // sendBeacon was not successful 2117 2118 } // XHR beacon 2119 2120 var xhr = new XMLHttpRequest(); 2121 2122 try { 2123 xhr.open('POST', endpointUrl); 2124 xhr.setRequestHeader('Content-Type', 'text/plain'); 2125 xhr.send(payload); 2126 } catch (e) { 2127 console.log(e); 2128 } 2129 2130 return false; 2131 }, 2132 isIos12: function isIos12() { 2133 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 2134 } 2135 }; 2136 Monorail.produce('monorail-edge.shopifysvc.com', 2137 'trekkie_storefront_load_errors/1.1', 2138 {shop_id: 29857554, 2139 theme_id: 148520042647, 2140 app_name: "storefront", 2141 context_url: window.location.href, 2142 source_url: "//www.shortylove.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 2143 2144 }; 2145 scriptFallback.async = true; 2146 scriptFallback.src = '//www.shortylove.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 2147 first.parentNode.insertBefore(scriptFallback, first); 2148}; 2149script.async = true; 2150script.src = '//www.shortylove.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 2151first.parentNode.insertBefore(script, first); 2152 2153 }; 2154 trekkie.load( 2155 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":29857554,"isMerchantRequest":null,"themeId":148520042647,"themeCityHash":"5030295222086391186","contentLanguage":"en","currency":"USD","eventMetadataId":"67c09da1-fefd-481a-8cce-d0944b8e06cb"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 2156 ); 2157 2158 var loaded = false;
2159 trekkie.ready(function() { 2160 if (loaded) return; 2161 loaded = true; 2162 2163 window.ShopifyAnalytics.lib = window.trekkie; 2164 2165 var originalDocumentWrite = document.write; 2166 document.write = customDocumentWrite; 2167 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 2168 document.write = originalDocumentWrite; 2169 2170 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 2171 var token = match? match[1]: undefined; 2172 if (!hasLoggedConversion(token)) { 2173 setCookieIfConversion(token); 2174 2175 } 2176 }); 2177 2178 window.ShopifyAnalytics.lib.page(null,{"requestId":"c53e79e5-d7bb-4c5f-9b0d-a5b27a8ebf90-1790349759","shopifyEmitted":true}); 2179 2180 var eventsListenerScript = document.createElement('script'); 2181 eventsListenerScript.async = true; 2182 eventsListenerScript.src = "//www.shortylove.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 2183 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 2184})();</script>
vendor: 1 bytes, line 2184
2184
2185<script 2186 defer 2187 src="https://www.shortylove.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 2188 data-application="storefront-renderer" 2189 data-shop-id="29857554" 2190 data-render-region="gcp-us-east1" 2191 data-page-type="customers/login" 2192 data-theme-instance-id="148520042647" 2193 data-theme-name="Prestige" 2194 data-theme-version="10.11.1" 2195 data-monorail-region="shop_domain" 2196 data-resource-timing-sampling-rate="10" 2197 data-shs="true" 2198 data-shs-beacon="true" 2199 data-shs-export-with-fetch="true" 2200 data-shs-logs-sample-rate="1" 2201 data-shs-beacon-endpoint="https://www.shortylove.com/api/collect" 2202></script>
2202 2203<meta name="shopify-y" content="7fb226fa-db6e-4954-a72f-4cb6e7c1592e" data-expiration="1821907359000"><meta name="shopify-s" content="d21607dd-c33b-4484-98de-79e2183f23b3" data-expiration="1790351559000"><meta name="new-cookie-storage-activated" content="t"> 2204</head> 2205 2206 2207 2208 <body class="features--button-transition features--zoom-image color-scheme color-scheme--scheme-1"><template id="drawer-default-template"> 2209 <div part="base"> 2210 <div part="overlay"></div> 2211 2212 <div part="content"> 2213 <header part="header"> 2214 <slot name="header"></slot> 2215 2216 <dialog-close-button style="display: contents"> 2217 <button type="button" part="close-button tap-area" aria-label="Close"><svg aria-hidden="true" focusable="false" fill="none" width="14" class="icon icon-close" viewBox="0 0 16 16"> 2218 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1"/> 2219 </svg> 2220 2221 </button> 2222 </dialog-close-button> 2223 </header> 2224 2225 <div part="body"> 2226 <slot></slot> 2227 </div> 2228 2229 <footer part="footer"> 2230 <slot name="footer"></slot> 2231 </footer> 2232 </div> 2233 </div> 2234</template><template id="modal-default-template"> 2235 <div part="base"> 2236 <div part="overlay"></div> 2237 2238 <div part="content"> 2239 <header part="header"> 2240 <slot name="header"></slot> 2241 2242 <dialog-close-button style="display: contents"> 2243 <button type="button" part="close-button tap-area" aria-label="Close"><svg aria-hidden="true" focusable="false" fill="none" width="14" class="icon icon-close" viewBox="0 0 16 16"> 2244 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1"/> 2245 </svg> 2246 2247 </button> 2248 </dialog-close-button> 2249 </header> 2250 2251 <div part="body"> 2252 <slot></slot> 2253 </div> 2254 </div> 2255 </div> 2256</template><template id="popover-default-template"> 2257 <div part="base"> 2258 <div part="overlay"></div> 2259 2260 <div part="content"> 2261 <header part="header"> 2262 <slot name="header"></slot> 2263 2264 <dialog-close-button style="display: contents"> 2265 <button type="button" part="close-button tap-area" aria-label="Close"><svg aria-hidden="true" focusable="false" fill="none" width="14" class="icon icon-close" viewBox="0 0 16 16"> 2266 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1"/> 2267 </svg> 2268 2269 </button> 2270 </dialog-close-button> 2271 </header> 2272 2273 <div part="body"> 2274 <slot></slot> 2275 </div> 2276 </div> 2277 </div> 2278</template><template id="header-search-default-template"> 2279 <div part="base"> 2280 <div part="overlay"></div> 2281 2282 <div part="content"> 2283 <slot></slot> 2284 </div> 2285 </div> 2286</template><template id="video-media-default-template"> 2287 <slot></slot> 2288 2289 <svg part="play-button" fill="none" width="48" height="48" viewBox="0 0 48 48"> 2290 <path fill-rule="evenodd" clip-rule="evenodd" d="M48 24c0 13.255-10.745 24-24 24S0 37.255 0 24 10.745 0 24 0s24 10.745 24 24Zm-18 0-9-6.6v13.2l9-6.6Z" fill="var(--play-button-background, #ffffff)"/> 2291 </svg> 2292</template><loading-bar class="loading-bar" aria-hidden="true"></loading-bar> 2293 <a href="#main" allow-hash-change class="skip-to-content sr-only">Skip to content</a><div class="sr-only" role="status" aria-live="polite" aria-atomic="true"> 2294 <span id="status-announcement"></span> 2295 </div> 2296 2297 <div class="sr-only" role="alert" aria-live="assertive" aria-atomic="true"> 2298 <span id="error-announcement"></span> 2299 </div> 2300 2301 <span id="header-scroll-tracker" style="position: absolute; width: 1px; height: 1px; top: var(--header-scroll-tracker-offset, 10px); left: 0;"></span><!-- BEGIN sections: header-group --> 2302<aside id="shopify-section-sections--19678090330263__announcement_bar_zJmrpB" class="shopify-section shopify-section-group-header-group shopify-section--announcement-bar"></aside><header id="shopify-section-sections--19678090330263__header" class="shopify-section shopify-section-group-header-group shopify-section--header"><style> 2303 :root { 2304 --header-is-sticky: 1; 2305 } 2306 2307 #shopify-section-sections--19678090330263__header { 2308 --header-grid: "primary-nav logo secondary-nav" / minmax(0, 1fr) auto minmax(0, 1fr); 2309 --header-padding-block: 1rem; 2310 --header-transparent-header-text-color: 255 255 255; 2311 --header-separation-border-color: 28 28 28 / 0.15; 2312 2313 position: relative; 2314 z-index: 4; 2315 } 2316 2317 #shopify-section-sections--19678090330263__header .header { 2318 column-gap: 20px; 2319 row-gap: 16px; 2320 } 2321 2322 @media screen and (max-width: 480px) { 2323 #shopify-section-sections--19678090330263__header .header__secondary-nav { 2324 gap: 0.25rem; 2325 } 2326 } 2327 2328 @media screen and (min-width: 700px) { 2329 #shopify-section-sections--19678090330263__header { 2330 --header-padding-block: 1.2rem; 2331 } 2332 } 2333 2334 @media screen and (min-width: 1000px) { 2335 #shopify-section-sections--19678090330263__header {--header-grid: "logo primary-nav secondary-nav" / minmax(max-content, 1fr) auto minmax(max-content, 1fr);} 2336 }#shopify-section-sections--19678090330263__header { 2337 position: sticky; 2338 top: 0; 2339 } 2340 2341 .shopify-section--announcement-bar ~ #shopify-section-sections--19678090330263__header { 2342 top: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px)); 2343 }#shopify-section-sections--19678090330263__header { 2344 --header-logo-width: 145px; 2345 } 2346 2347 @media screen and (min-width: 700px) { 2348 #shopify-section-sections--19678090330263__header { 2349 --header-logo-width: 250px; 2350 } 2351 }</style> 2352 2353<height-observer variable="header"> 2354 <x-header class="header color-scheme color-scheme--scheme-2"> 2355 <a href="/" class="header__logo"><span class="sr-only">shortyLOVE</span><img src="//www.shortylove.com/cdn/shop/files/3000x300_logo_w_tbg.png?v=1773684961&width=3000" alt="shortyLOVE" srcset="//www.shortylove.com/cdn/shop/files/3000x300_logo_w_tbg.png?v=1773684961&width=500 500w, //www.shortylove.com/cdn/shop/files/3000x300_logo_w_tbg.png?v=1773684961&width=750 750w" width="3000" height="300" sizes="250px" class="header__logo-image" style="object-position:50.0% 97.168%;"></a> 2356 2357<nav class="header__primary-nav header__primary-nav--center" aria-label="Primary navigation"> 2358 <button type="button" aria-controls="sidebar-menu" class="md:hidden">
2359 <span class="sr-only">Navigation menu</span><svg aria-hidden="true" fill="none" focusable="false" width="24" class="header__nav-icon icon icon-hamburger" viewBox="0 0 24 24"> 2360 <path d="M1 19h22M1 12h22M1 5h22" stroke="currentColor" stroke-width="1" stroke-linecap="square"/> 2361 </svg></button><ul class="contents unstyled-list md-max:hidden"> 2362 2363 <li class="header__primary-nav-item"><dropdown-menu-disclosure follow-summary-link trigger="hover"><details class="header__menu-disclosure"> 2364 <summary data-follow-link="/collections/shop-all-products" class="h6" data-title="shop shorty">shop shorty</summary><ul class="header__dropdown-menu unstyled-list" role="list"><li><dropdown-menu-disclosure follow-summary-link trigger="hover" class="contents"> 2365 <details class="header__menu-disclosure"> 2366 <summary data-follow-link="https://www.shortylove.com/collections/shop-all-products" class="link-faded-reverse"> 2367 <div class="h-stack gap-4 justify-between">collections<svg aria-hidden="true" focusable="false" fill="none" width="8" class="icon icon-arrow-right icon--direction-aware" viewBox="0 0 16 18"> 2368 <path d="m5 17 8-8-8-8" stroke="currentColor" stroke-linecap="square"/> 2369 </svg></div> 2370 </summary> 2371 2372 <ul class="header__dropdown-menu unstyled-list" role="list"><li> 2373 <a href="https://www.shortylove.com/collections/shop-all-products" class="link-faded-reverse" >view all</a> 2374 </li><li> 2375 <a href="https://www.shortylove.com/collections/the-o-g-collection" class="link-faded-reverse" >the o.g. collection</a> 2376 </li><li> 2377 <a href="https://www.shortylove.com/collections/wave-quilt-collection" class="link-faded-reverse" >the wave quilt collection</a> 2378 </li><li> 2379 <a href="/collections/the-baby-bags-collection" class="link-faded-reverse" >baby</a> 2380 </li><li> 2381 <a href="https://www.shortylove.com/products/shortylove-gift-card" class="link-faded-reverse" >gift cards</a> 2382 </li><li> 2383 <a href="https://www.shortylove.com/pages/quiz" class="link-faded-reverse" >style quiz</a> 2384 </li></ul> 2385 </details> 2386 </dropdown-menu-disclosure></li><li><dropdown-menu-disclosure follow-summary-link trigger="hover" class="contents"> 2387 <details class="header__menu-disclosure"> 2388 <summary data-follow-link="#" class="link-faded-reverse"> 2389 <div class="h-stack gap-4 justify-between">styles<svg aria-hidden="true" focusable="false" fill="none" width="8" class="icon icon-arrow-right icon--direction-aware" viewBox="0 0 16 18"> 2390 <path d="m5 17 8-8-8-8" stroke="currentColor" stroke-linecap="square"/> 2391 </svg></div> 2392 </summary> 2393 2394 <ul class="header__dropdown-menu unstyled-list" role="list"><li> 2395 <a href="https://www.shortylove.com/collections/shop-all-products" class="link-faded-reverse" >view all </a> 2396 </li><li> 2397 <a href="https://www.shortylove.com/collections/crossbody-bags" class="link-faded-reverse" >crossbodies </a> 2398 </li><li> 2399 <a href="https://www.shortylove.com/collections/backpacks" class="link-faded-reverse" >backpacks</a> 2400 </li><li> 2401 <a href="https://www.shortylove.com/collections/tote-bags" class="link-faded-reverse" >totes</a> 2402 </li><li> 2403 <a href="https://www.shortylove.com/collections/wallets" class="link-faded-reverse" >clutches and wallets</a> 2404 </li><li> 2405 <a href="https://www.shortylove.com/collections/accessories" class="link-faded-reverse" >accessories</a> 2406 </li><li> 2407 <a href="https://www.shortylove.com/pages/quiz" class="link-faded-reverse" >style quiz</a> 2408 </li></ul> 2409 </details> 2410 </dropdown-menu-disclosure></li><li><dropdown-menu-disclosure follow-summary-link trigger="hover" class="contents"> 2411 <details class="header__menu-disclosure"> 2412 <summary data-follow-link="#" class="link-faded-reverse"> 2413 <div class="h-stack gap-4 justify-between">colors<svg aria-hidden="true" focusable="false" fill="none" width="8" class="icon icon-arrow-right icon--direction-aware" viewBox="0 0 16 18"> 2414 <path d="m5 17 8-8-8-8" stroke="currentColor" stroke-linecap="square"/> 2415 </svg></div> 2416 </summary> 2417 2418 <ul class="header__dropdown-menu unstyled-list" role="list"><li> 2419 <a href="/collections/all-color-collections" class="link-faded-reverse" >view all</a> 2420 </li><li> 2421 <a href="/collections/classic-neutrals-collection" class="link-faded-reverse" >classic neutrals</a> 2422 </li><li> 2423 <a href="/collections/blues-collection" class="link-faded-reverse" >blues</a> 2424 </li><li> 2425 <a href="/collections/greens-collection" class="link-faded-reverse" >greens</a> 2426 </li><li> 2427 <a href="/collections/red-orange-collection" class="link-faded-reverse" >red/orange</a> 2428 </li></ul> 2429 </details> 2430 </dropdown-menu-disclosure></li></ul></details></dropdown-menu-disclosure></li> 2431 2432 <li class="header__primary-nav-item"><dropdown-menu-disclosure follow-summary-link trigger="hover"><details class="header__menu-disclosure"> 2433 <summary data-follow-link="/collections/crossbody-bags" class="h6" data-title="crossbody bags">crossbody bags</summary><ul class="header__dropdown-menu header__dropdown-menu--restrictable unstyled-list" role="list"><li><a href="/collections/crossbody-bags" class="link-faded-reverse" >view all</a></li><li><a href="https://www.shortylove.com/products/shorthand-phone-crossbody-bag" class="link-faded-reverse" >shorthand - small crossbody</a></li><li><a href="https://www.shortylove.com/products/amuse-medium-crossbody-bag" class="link-faded-reverse" >amuse - medium crossbody</a></li><li><a href="https://www.shortylove.com/products/wonder-large-crossbody-bag" class="link-faded-reverse" >wonder - large crossbody</a></li><li><a href="https://www.shortylove.com/products/small-cruiser-small-quilted-crossbody" class="link-faded-reverse" >small cruiser - small quilted crossbody</a></li><li><a href="https://www.shortylove.com/products/cruiser-medium-quilted-crossbody" class="link-faded-reverse" >cruiser - medium quilted crossbody</a></li><li><a href="https://www.shortylove.com/products/marcel-quilted-crossbody-bucket-bag" class="link-faded-reverse" >marcel - quilted crossbody bucket bag</a></li><li><a href="/products/franny-quilted-belt-bag" class="link-faded-reverse" >franny - quilted belt bag</a></li><li><a href="/products/bea-small-quilted-sling-bag" class="link-faded-reverse" >bea - small quilted sling</a></li></ul></details></dropdown-menu-disclosure></li> 2434 2435 <li class="header__primary-nav-item"><dropdown-menu-disclosure follow-summary-link trigger="hover"><details class="header__menu-disclosure"> 2436 <summary data-follow-link="/collections/backpacks" class="h6" data-title="backpacks">backpacks</summary><ul class="header__dropdown-menu header__dropdown-menu--restrictable unstyled-list" role="list"><li><a href="/collections/backpacks" class="link-faded-reverse" >view all </a></li><li><a href="/products/boxer-large-backpack" class="link-faded-reverse" >boxer - large backpack</a></li><li><a href="/products/tate-quilted-backpack" class="link-faded-reverse" >tate - quilted backpack</a></li></ul></details></dropdown-menu-disclosure></li> 2437 2438 <li class="header__primary-nav-item"><dropdown-menu-disclosure follow-summary-link trigger="hover"><details class="header__menu-disclosure"> 2439 <summary data-follow-link="/collections/tote-bags" class="h6" data-title="totes">totes</summary><ul class="header__dropdown-menu header__dropdown-menu--restrictable unstyled-list" role="list"><li><a href="/collections/tote-bags" class="link-faded-reverse" >view all</a></li><li><a href="/products/tillie-medium-tote-bag" class="link-faded-reverse" >tillie - medium tote</a></li><li><a href="/products/ranger-large-quilted-tote" class="link-faded-reverse" >ranger - large quilted tote</a></li></ul></details></dropdown-menu-disclosure></li> 2440 2441 <li class="header__primary-nav-item"><dropdown-menu-disclosure follow-summary-link trigger="hover"><details class="header__menu-disclosure"> 2442 <summary data-follow-link="https://www.shortylove.com/collections/accessories" class="h6" data-title="accessories">accessories</summary><ul class="header__dropdown-menu unstyled-list" role="list"><li><a href="https://www.shortylove.com/collections/accessories" class="link-faded-reverse" >view all</a></li><li><dropdown-menu-disclosure follow-summary-link trigger="hover" class="contents"> 2443 <details class="header__menu-disclosure"> 2444 <summary data-follow-link="https://www.shortylove.com/collections/wallets" class="link-faded-reverse"> 2445 <div class="h-stack gap-4 justify-between">wallets / clutches<svg aria-hidden="true" focusable="false" fill="none" width="8" class="icon icon-arrow-right icon--direction-aware" viewBox="0 0 16 18"> 2446 <path d="m5 17 8-8-8-8" stroke="currentColor" stroke-linecap="square"/> 2447 </svg></div> 2448 </summary> 2449 2450 <ul class="header__dropdown-menu unstyled-list" role="list"><li> 2451 <a href="https://www.shortylove.com/products/merchant-small-wallet" class="link-faded-reverse" >merchant - small wallet</a> 2452 </li><li> 2453 <a href="https://www.shortylove.com/products/jetty-clutch-wallet" class="link-faded-reverse" >
2453jetty - wallet / clutch</a> 2454 </li><li> 2455 <a href="https://www.shortylove.com/products/cleo-quilted-wristlet-clutch" class="link-faded-reverse" >cleo - quilted wristlet clutch</a> 2456 </li></ul> 2457 </details> 2458 </dropdown-menu-disclosure></li><li><dropdown-menu-disclosure follow-summary-link trigger="hover" class="contents"> 2459 <details class="header__menu-disclosure"> 2460 <summary data-follow-link="https://www.shortylove.com/collections/bag-straps" class="link-faded-reverse"> 2461 <div class="h-stack gap-4 justify-between">straps<svg aria-hidden="true" focusable="false" fill="none" width="8" class="icon icon-arrow-right icon--direction-aware" viewBox="0 0 16 18"> 2462 <path d="m5 17 8-8-8-8" stroke="currentColor" stroke-linecap="square"/> 2463 </svg></div> 2464 </summary> 2465 2466 <ul class="header__dropdown-menu unstyled-list" role="list"><li> 2467 <a href="https://www.shortylove.com/products/boardwalk-custom-nylon-bag-straps" class="link-faded-reverse" >boardwalk - custom straps</a> 2468 </li></ul> 2469 </details> 2470 </dropdown-menu-disclosure></li><li><dropdown-menu-disclosure follow-summary-link trigger="hover" class="contents"> 2471 <details class="header__menu-disclosure"> 2472 <summary data-follow-link="https://www.shortylove.com/collections/cosmetic-bags" class="link-faded-reverse"> 2473 <div class="h-stack gap-4 justify-between">miscellaneous<svg aria-hidden="true" focusable="false" fill="none" width="8" class="icon icon-arrow-right icon--direction-aware" viewBox="0 0 16 18"> 2474 <path d="m5 17 8-8-8-8" stroke="currentColor" stroke-linecap="square"/> 2475 </svg></div> 2476 </summary> 2477 2478 <ul class="header__dropdown-menu unstyled-list" role="list"><li> 2479 <a href="https://www.shortylove.com/products/stevie-small-cosmetic-bag" class="link-faded-reverse" >stevie - cosmetic</a> 2480 </li><li> 2481 <a href="/products/biz-quilted-baby-mat" class="link-faded-reverse" >biz - baby mat</a> 2482 </li><li> 2483 <a href="/products/bag-charm-keychain" class="link-faded-reverse" >bag charm - keychain</a> 2484 </li></ul> 2485 </details> 2486 </dropdown-menu-disclosure></li></ul></details></dropdown-menu-disclosure></li> 2487 2488 <li class="header__primary-nav-item"><dropdown-menu-disclosure follow-summary-link trigger="hover"><details class="header__menu-disclosure"> 2489 <summary data-follow-link="#" class="h6" data-title="shortcuts">shortcuts</summary><ul class="header__dropdown-menu header__dropdown-menu--restrictable unstyled-list" role="list"><li><a href="/pages/faq" class="link-faded-reverse" >faq</a></li><li><a href="/blogs/news" class="link-faded-reverse" >blog</a></li><li><a href="/pages/rewards" class="link-faded-reverse" >rewards</a></li><li><a href="/pages/refer" class="link-faded-reverse" >refer a friend</a></li><li><a href="/blogs/press" class="link-faded-reverse" >press</a></li><li><a href="/pages/about-us" class="link-faded-reverse" >meet sloane</a></li></ul></details></dropdown-menu-disclosure></li> 2490 2491 <li class="header__primary-nav-item"><a href="https://www.prelovedshortylove.com" data-title="pre-loved" class="block h6" >pre-loved</a></li> 2492 2493 <li class="header__primary-nav-item"><a href="/collections/sale" data-title="sale" class="block h6" >sale</a></li></ul></nav><nav class="header__secondary-nav" aria-label="Secondary navigation"><ul class="contents unstyled-list"><li class="header__account-link"> 2494 <a href="/account/login">
2495 <span class="sr-only">Login</span><svg aria-hidden="true" fill="none" focusable="false" width="24" class="header__nav-icon icon icon-account" viewBox="0 0 24 24"> 2496 <path d="M16.125 8.75c-.184 2.478-2.063 4.5-4.125 4.5s-3.944-2.021-4.125-4.5c-.187-2.578 1.64-4.5 4.125-4.5 2.484 0 4.313 1.969 4.125 4.5Z" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/> 2497 <path d="M3.017 20.747C3.783 16.5 7.922 14.25 12 14.25s8.217 2.25 8.984 6.497" stroke="currentColor" stroke-width="1" stroke-miterlimit="10"/> 2498 </svg></a> 2499 </li><li class="header__search-link"> 2500 <a href="/search" aria-controls="header-search-sections--19678090330263__header"> 2501 <span class="sr-only">Search</span><svg aria-hidden="true" fill="none" focusable="false" width="24" class="header__nav-icon icon icon-search" viewBox="0 0 24 24"> 2502 <path d="M10.364 3a7.364 7.364 0 1 0 0 14.727 7.364 7.364 0 0 0 0-14.727Z" stroke="currentColor" stroke-width="1" stroke-miterlimit="10"/> 2503 <path d="M15.857 15.858 21 21.001" stroke="currentColor" stroke-width="1" stroke-miterlimit="10" stroke-linecap="round"/> 2504 </svg></a> 2505 </li><li class="relative header__cart-link"> 2506 <a href="/cart" aria-controls="cart-drawer" data-no-instant> 2507 <span class="sr-only">Cart</span><svg aria-hidden="true" fill="none" focusable="false" width="24" class="header__nav-icon icon icon-cart" viewBox="0 0 24 24"><path d="M4.75 8.25A.75.75 0 0 0 4 9L3 19.125c0 1.418 1.207 2.625 2.625 2.625h12.75c1.418 0 2.625-1.149 2.625-2.566L20 9a.75.75 0 0 0-.75-.75H4.75Zm2.75 0v-1.5a4.5 4.5 0 0 1 4.5-4.5v0a4.5 4.5 0 0 1 4.5 4.5v1.5" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/></svg><cart-dot class="header__cart-dot "></cart-dot> 2508 </a> 2509 </li> 2510 </ul> 2511 </nav><header-search id="header-search-sections--19678090330263__header" class="header-search"> 2512 <div class="container"> 2513 <form id="predictive-search-form" action="/search" method="GET" aria-owns="header-predictive-search" class="header-search__form" role="search"> 2514 <div class="header-search__form-control"><svg aria-hidden="true" fill="none" focusable="false" width="20" class="icon icon-search" viewBox="0 0 24 24"> 2515 <path d="M10.364 3a7.364 7.364 0 1 0 0 14.727 7.364 7.364 0 0 0 0-14.727Z" stroke="currentColor" stroke-width="1" stroke-miterlimit="10"/> 2516 <path d="M15.857 15.858 21 21.001" stroke="currentColor" stroke-width="1" stroke-miterlimit="10" stroke-linecap="round"/> 2517 </svg><input type="search" name="q" spellcheck="false" class="header-search__input h5 sm:h4" aria-label="Search" placeholder="Search for..."> 2518 2519 <dialog-close-button class="contents"> 2520 <button type="button"> 2521 <span class="sr-only">Close</span><svg aria-hidden="true" focusable="false" fill="none" width="16" class="icon icon-close" viewBox="0 0 16 16"> 2522 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1"/> 2523 </svg> 2524 2525 </button> 2526 </dialog-close-button> 2527 </div> 2528 </form> 2529 2530 <predictive-search id="header-predictive-search" class="predictive-search"> 2531 <div class="predictive-search__content" slot="results"></div> 2532 </predictive-search> 2533 </div> 2534</header-search><template id="header-sidebar-template"> 2535 <div part="base"> 2536 <div part="overlay"></div> 2537 2538 <div part="content"> 2539 <header part="header"> 2540 <dialog-close-button class="contents"> 2541 <button type="button" part="close-button tap-area" aria-label="Close"><svg aria-hidden="true" focusable="false" fill="none" width="16" class="icon icon-close" viewBox="0 0 16 16"> 2542 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1"/> 2543 </svg> 2544 2545 </button> 2546 </dialog-close-button> 2547 </header> 2548 2549 <div part="panel-list"> 2550 <slot name="main-panel"></slot><slot name="collapsible-panel"></slot></div> 2551 </div> 2552 </div> 2553</template> 2554 2555<header-sidebar id="sidebar-menu" class="header-sidebar drawer drawer--sm color-scheme color-scheme--scheme-2" template="header-sidebar-template" open-from="left"><div class="header-sidebar__main-panel" slot="main-panel"> 2556 <div class="header-sidebar__scroller"> 2557 <ul class="header-sidebar__linklist unstyled-list" role="list"><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-1" aria-expanded="false">shop shorty<svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-right icon--direction-aware" viewBox="0 0 10 10"> 2558 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2559 </svg></button></li><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-2" aria-expanded="false">crossbody bags<svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-right icon--direction-aware" viewBox="0 0 10 10"> 2560 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2561 </svg></button></li><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-3" aria-expanded="false">backpacks<svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-right icon--direction-aware" viewBox="0 0 10 10"> 2562 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2563 </svg></button></li><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-4" aria-expanded="false">totes<svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-right icon--direction-aware" viewBox="0 0 10 10"> 2564 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2565 </svg></button></li><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-5" aria-expanded="false">accessories<svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-right icon--direction-aware" viewBox="0 0 10 10"> 2566 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2567 </svg></button></li><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-6" aria-expanded="false">shortcuts<svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-right icon--direction-aware" viewBox="0 0 10 10"> 2568 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2569 </svg></button></li><li><a href="https://www.prelovedshortylove.com" class="header-sidebar__linklist-button h6">pre-loved</a></li><li><a href="/collections/sale" class="header-sidebar__linklist-button h6">sale</a></li></ul> 2570 </div><div class="header-sidebar__footer"><a href="/account/login" class="text-with-icon smallcaps sm:hidden"><svg aria-hidden="true" fill="none" focusable="false" width="20" class="icon icon-account" viewBox="0 0 24 24">
2571 <path d="M16.125 8.75c-.184 2.478-2.063 4.5-4.125 4.5s-3.944-2.021-4.125-4.5c-.187-2.578 1.64-4.5 4.125-4.5 2.484 0 4.313 1.969 4.125 4.5Z" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/> 2572 <path d="M3.017 20.747C3.783 16.5 7.922 14.25 12 14.25s8.217 2.25 8.984 6.497" stroke="currentColor" stroke-width="1" stroke-miterlimit="10"/> 2573 </svg>Login</a></div></div><header-sidebar-collapsible-panel class="header-sidebar__collapsible-panel" slot="collapsible-panel"> 2574 <div class="header-sidebar__scroller"><div id="header-panel-1" class="header-sidebar__sub-panel" hidden> 2575 <button type="button" class="header-sidebar__back-button link-faded text-with-icon h6 md:hidden" data-action="close-panel"><svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-left icon--direction-aware" viewBox="0 0 10 10"> 2576 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2577 </svg>shop shorty</button> 2578 2579 <ul class="header-sidebar__linklist unstyled-list" role="list"><li><accordion-disclosure> 2580 <details class="accordion__disclosure group" > 2581 <summary class="header-sidebar__linklist-button h6">collections<span class="animated-plus group-expanded:rotate" aria-hidden="true"></span> 2582 </summary> 2583 2584 <div class="header-sidebar__nested-linklist"><a href="https://www.shortylove.com/collections/shop-all-products" class="link-faded-reverse">view all</a><a href="https://www.shortylove.com/collections/the-o-g-collection" class="link-faded-reverse">the o.g. collection</a><a href="https://www.shortylove.com/collections/wave-quilt-collection" class="link-faded-reverse">the wave quilt collection</a><a href="/collections/the-baby-bags-collection" class="link-faded-reverse">baby</a><a href="https://www.shortylove.com/products/shortylove-gift-card" class="link-faded-reverse">gift cards</a><a href="https://www.shortylove.com/pages/quiz" class="link-faded-reverse">style quiz</a></div> 2585 </details> 2586 </accordion-disclosure></li><li><accordion-disclosure> 2587 <details class="accordion__disclosure group" > 2588 <summary class="header-sidebar__linklist-button h6">styles<span class="animated-plus group-expanded:rotate" aria-hidden="true"></span> 2589 </summary> 2590 2591 <div class="header-sidebar__nested-linklist"><a href="https://www.shortylove.com/collections/shop-all-products" class="link-faded-reverse">view all </a><a href="https://www.shortylove.com/collections/crossbody-bags" class="link-faded-reverse">crossbodies </a><a href="https://www.shortylove.com/collections/backpacks" class="link-faded-reverse">backpacks</a><a href="https://www.shortylove.com/collections/tote-bags" class="link-faded-reverse">totes</a><a href="https://www.shortylove.com/collections/wallets" class="link-faded-reverse">clutches and wallets</a><a href="https://www.shortylove.com/collections/accessories" class="link-faded-reverse">accessories</a><a href="https://www.shortylove.com/pages/quiz" class="link-faded-reverse">style quiz</a></div> 2592 </details> 2593 </accordion-disclosure></li><li><accordion-disclosure> 2594 <details class="accordion__disclosure group" > 2595 <summary class="header-sidebar__linklist-button h6">colors<span class="animated-plus group-expanded:rotate" aria-hidden="true"></span> 2596 </summary> 2597 2598 <div class="header-sidebar__nested-linklist"><a href="/collections/all-color-collections" class="link-faded-reverse">view all</a><a href="/collections/classic-neutrals-collection" class="link-faded-reverse">classic neutrals</a><a href="/collections/blues-collection" class="link-faded-reverse">blues</a><a href="/collections/greens-collection" class="link-faded-reverse">greens</a><a href="/collections/red-orange-collection" class="link-faded-reverse">red/orange</a></div> 2599 </details> 2600 </accordion-disclosure></li></ul></div><div id="header-panel-2" class="header-sidebar__sub-panel" hidden> 2601 <button type="button" class="header-sidebar__back-button link-faded text-with-icon h6 md:hidden" data-action="close-panel"><svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-left icon--direction-aware" viewBox="0 0 10 10"> 2602 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2603 </svg>crossbody bags</button> 2604 2605 <ul class="header-sidebar__linklist unstyled-list" role="list"><li><a href="/collections/crossbody-bags" class="header-sidebar__linklist-button h6">view all</a></li><li><a href="https://www.shortylove.com/products/shorthand-phone-crossbody-bag" class="header-sidebar__linklist-button h6">shorthand - small crossbody</a></li><li><a href="https://www.shortylove.com/products/amuse-medium-crossbody-bag" class="header-sidebar__linklist-button h6">amuse - medium crossbody</a></li><li><a href="https://www.shortylove.com/products/wonder-large-crossbody-bag" class="header-sidebar__linklist-button h6">wonder - large crossbody</a></li><li><a href="https://www.shortylove.com/products/small-cruiser-small-quilted-crossbody" class="header-sidebar__linklist-button h6">small cruiser - small quilted crossbody</a></li><li><a href="https://www.shortylove.com/products/cruiser-medium-quilted-crossbody" class="header-sidebar__linklist-button h6">cruiser - medium quilted crossbody</a></li><li><a href="https://www.shortylove.com/products/marcel-quilted-crossbody-bucket-bag" class="header-sidebar__linklist-button h6">marcel - quilted crossbody bucket bag</a></li><li><a href="/products/franny-quilted-belt-bag" class="header-sidebar__linklist-button h6">franny - quilted belt bag</a></li><li><a href="/products/bea-small-quilted-sling-bag" class="header-sidebar__linklist-button h6">bea - small quilted sling</a></li></ul></div><div id="header-panel-3" class="header-sidebar__sub-panel" hidden> 2606 <button type="button" class="header-sidebar__back-button link-faded text-with-icon h6 md:hidden" data-action="close-panel"><svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-left icon--direction-aware" viewBox="0 0 10 10"> 2607 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2608 </svg>backpacks</button> 2609 2610 <ul class="header-sidebar__linklist unstyled-list" role="list"><li><a href="/collections/backpacks" class="header-sidebar__linklist-button h6">view all </a></li><li><a href="/products/boxer-large-backpack" class="header-sidebar__linklist-button h6">boxer - large backpack</a></li><li><a href="/products/tate-quilted-backpack" class="header-sidebar__linklist-button h6">tate - quilted backpack</a></li></ul></div><div id="header-panel-4" class="header-sidebar__sub-panel" hidden> 2611 <button type="button" class="header-sidebar__back-button link-faded text-with-icon h6 md:hidden" data-action="close-panel"><svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-left icon--direction-aware" viewBox="0 0 10 10"> 2612 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2613 </svg>totes</button> 2614 2615 <ul class="header-sidebar__linklist unstyled-list" role="list"><li><a href="/collections/tote-bags" class="header-sidebar__linklist-button h6">view all</a></li><li><a href="/products/tillie-medium-tote-bag" class="header-sidebar__linklist-button h6">tillie - medium tote</a></li><li><a href="/products/ranger-large-quilted-tote" class="header-sidebar__linklist-button h6">ranger - large quilted tote</a></li></ul></div><div id="header-panel-5" class="header-sidebar__sub-panel" hidden> 2616 <button type="button" class="header-sidebar__back-button link-faded text-with-icon h6 md:hidden" data-action="close-panel"><svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-left icon--direction-aware" viewBox="0 0 10 10"> 2617 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2618 </svg>accessories</button> 2619 2620 <ul class="header-sidebar__linklist unstyled-list" role="list"><li><a href="https://www.shortylove.com/collections/accessories" class="header-sidebar__linklist-button h6">view all</a></li><li><accordion-disclosure> 2621 <details class="accordion__disclosure group" > 2622 <summary class="header-sidebar__linklist-button h6">wallets / clutches<span class="animated-plus group-expanded:rotate" aria-hidden="true"></span> 2623 </summary> 2624 2625 <div class="header-sidebar__nested-linklist"><a href="https://www.shortylove.com/products/merchant-small-wallet" class="link-faded-reverse">merchant - small wallet</a><a href="https://www.shortylove.com/products/jetty-clutch-wallet" class="link-faded-reverse">jetty - wallet / clutch</a><a href="https://www.shortylove.com/products/cleo-quilted-wristlet-clutch" class="link-faded-reverse">cleo - quilted wristlet clutch</a></div> 2626 </details> 2627 </accordion-disclosure></li><li><accordion-disclosure> 2628 <details class="accordion__disclosure group" > 2629 <summary class="header-sidebar__linklist-button h6">straps<span class="animated-plus group-expanded:rotate" aria-hidden="true"></span> 2630 </summary> 2631 2632 <div class="header-sidebar__nested-linklist"><a href="https://www.shortylove.com/products/boardwalk-custom-nylon-bag-straps" class="link-faded-reverse">boardwalk - custom straps</a></div> 2633 </details> 2634 </accordion-disclosure></li><li><accordion-disclosure> 2635 <details class="accordion__disclosure group" > 2636 <summary class="header-sidebar__linklist-button h6">miscellaneous<span class="animated-plus group-expanded:rotate" aria-hidden="true"></span> 2637 </summary> 2638 2639 <div class="header-sidebar__nested-linklist"><a href="https://www.shortylove.com/products/stevie-small-cosmetic-bag" class="link-faded-reverse">stevie - cosmetic</a><a href="/products/biz-quilted-baby-mat" class="link-faded-reverse">biz - baby mat</a><a href="/products/bag-charm-keychain" class="link-faded-reverse">bag charm - keychain</a></div> 2640 </details> 2641 </accordion-disclosure></li></ul></div><div id="header-panel-6" class="header-sidebar__sub-panel" hidden> 2642 <button type="button" class="header-sidebar__back-button link-faded text-with-icon h6 md:hidden" data-action="close-panel"><svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-left icon--direction-aware" viewBox="0 0 10 10"> 2643 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2644 </svg>shortcuts</button> 2645 2646 <ul class="header-sidebar__linklist unstyled-list" role="list"><li><a href="/pages/faq" class="header-sidebar__linklist-button h6">
2646faq</a></li><li><a href="/blogs/news" class="header-sidebar__linklist-button h6">blog</a></li><li><a href="/pages/rewards" class="header-sidebar__linklist-button h6">rewards</a></li><li><a href="/pages/refer" class="header-sidebar__linklist-button h6">refer a friend</a></li><li><a href="/blogs/press" class="header-sidebar__linklist-button h6">press</a></li><li><a href="/pages/about-us" class="header-sidebar__linklist-button h6">meet sloane</a></li></ul></div></div> 2647 </header-sidebar-collapsible-panel></header-sidebar></x-header> 2648</height-observer> 2649
2650<script> 2651 document.documentElement.style.setProperty('--header-height', `${document.getElementById('shopify-section-sections--19678090330263__header').clientHeight.toFixed(2)}px`); 2652</script>
2652 2653 2654 2655</header> 2656<!-- END sections: header-group --><!-- BEGIN sections: overlay-group --> 2657<section id="shopify-section-sections--19678090363031__cart-drawer" class="shopify-section shopify-section-group-overlay-group shopify-section--cart-drawer"><cart-drawer id="cart-drawer" aria-label="Cart" class="cart-drawer drawer drawer--center-body color-scheme color-scheme--scheme-1" initial-focus="false" handle-editor-events> 2658 <p class="h4" slot="header">Cart</p><p class="h5 text-center">Your cart is empty</p></cart-drawer> 2659 2660</section> 2661<!-- END sections: overlay-group --><main id="main" class="anchor"> 2662 <section id="shopify-section-template--19678090428567__main" class="shopify-section shopify-section--main-customers-login"><div class="section-spacing"> 2663 <div class="container container--xxs"> 2664 <account-login class="customer-account-box"> 2665 <div class="v-stack gap-6" id="login"> 2666 <div class="v-stack gap-4"> 2667 <h1 class="h3">Login</h1> 2668 <p>Enter your email and password to login:</p> 2669 </div><div ><form method="post" action="/account/login" id="customer_login" accept-charset="UTF-8" data-login-with-shop-sign-in="true" class="form"><input type="hidden" name="form_type" value="customer_login" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="checkout_url" value="/account"> 2670 2671 <div class="fieldset"><div class="form-control" ><input id="input--template--19678090428567__main--customeremail" class="input" type="email" dir="ltr" placeholder="E-mail" 2672 name="customer[email]" 2673 2674 2675 2676 2677 2678 autocomplete="email" 2679 2680 2681 required 2682 2683 2684 2685><label for="input--template--19678090428567__main--customeremail" class="floating-label text-xs">E-mail</label></div><div class="relative"><div class="form-control" ><input id="input--template--19678090428567__main--customerpassword" class="input" type="password" placeholder="Password" 2686 name="customer[password]" 2687 2688 2689 2690 2691 2692 autocomplete="current-password" 2693 2694 2695 required 2696 2697 2698 2699><label for="input--template--19678090428567__main--customerpassword" class="floating-label text-xs">Password</label></div><div class="input-suffix hide-on-focus"> 2700 <a href="#recover" allow-hash-change class="text-xs link-faded">Forgot your password?</a> 2701 </div> 2702 </div> 2703 </div> 2704<button type="submit" class="button" >Login</button><div> 2705 <span class="text-subdued">Don't have an account?</span> 2706 <a href="/account/register" class="link-faded">Sign up</a> 2707 </div></form></div></div> 2708 2709 <div class="v-stack gap-6" id="recover" hidden> 2710 <div class="v-stack gap-4"> 2711 <h1 class="h3">Recover password</h1> 2712 <p>Enter your email to recover your password:</p> 2713 </div><form method="post" action="/account/recover" accept-charset="UTF-8" class="form"><input type="hidden" name="form_type" value="recover_customer_password" /><input type="hidden" name="utf8" value="â" /><div class="fieldset"><div class="form-control" ><input id="input--template--19678090428567__main--email" class="input" type="email" dir="ltr" placeholder="E-mail" 2714 name="email" 2715 2716 2717 2718 2719 2720 autocomplete="email" 2721 2722 2723 required 2724 2725 2726 2727><label for="input--template--19678090428567__main--email" class="floating-label text-xs">E-mail</label></div></div> 2728<button type="submit" class="button" >Recover</button><div> 2729 <span class="text-subdued">Remember your password?</span> 2730 <a href="#login" allow-hash-change class="link-faded">Back to login</a> 2731 </div></form></div> 2732 </account-login> 2733 </div> 2734</div> 2735 2736</section> 2737<!-- BEGIN sections: footer-group --> 2738<footer id="shopify-section-sections--19678090297495__footer" class="shopify-section shopify-section-group-footer-group shopify-section--footer"><style> 2739 #shopify-section-sections--19678090297495__footer { 2740 --footer-content-justify-items: space-between; 2741 } 2742 2743 .footer__block--image_list, 2744 .footer__block--badges { 2745 flex-grow: 0; 2746 } 2747 2748 .footer-image-list-grid { 2749 display: grid; 2750 grid-template-columns: repeat(2, auto); 2751 gap: 0.75rem; 2752 justify-items: start; 2753 } 2754 2755 .footer-badges { 2756 display: flex; 2757 align-items: center; 2758 flex-wrap: wrap; 2759 gap: 1rem; 2760 } 2761 2762 .footer-badges > div { 2763 display: flex; 2764 align-items: center; 2765 } 2766 2767 .footer-badges .yotpo.yotpo-badge { 2768 display: flex; 2769 align-items: center; 2770 justify-content: center; 2771 } 2772 2773 /* Footer accent bars: thin, full-width colored lines stacked at the very top edge of 2774 the footer. They sit above the footer's top padding without affecting content spacing. */
2775 .footer:has(.footer__accent-bars) { 2776 position: relative; 2777 } 2778 2779 .footer__accent-bars { 2780 position: absolute; 2781 inset-block-start: 0; 2782 inset-inline: 0; 2783 display: flex; 2784 flex-direction: column; 2785 pointer-events: none; 2786 } 2787 2788 .footer__accent-bar { 2789 width: 100%; 2790 }/* ------------------------------------------------------------------------------------------------ 2791 TINTED NEWSLETTER LAYOUT (punchlist row 49, approved option C) 2792 2793 theme.css lays the footer blocks out as a flex row with justify-content: space-between and caps 2794 each block's width (newsletter 18rem, links 14rem). A handful of blocks totalling well under the 2795 ~79rem container turns the remainder into gutters -- that is the "lots of blank space". 2796 2797 Two changes fix it: pack the blocks from the start instead of spreading them, and let the link 2798 columns grow to take up the slack. The panel tint is optional on top of that -- see "Newsletter 2799 panel colour", which is blank by default so the sign-up sits on the footer background. 2800 ------------------------------------------------------------------------------------------------ */ 2801 @media screen and (min-width: 700px) { 2802 #shopify-section-sections--19678090297495__footer .footer__block-list { 2803 justify-content: flex-start; 2804 align-items: stretch; 2805 gap: 2.5rem clamp(1.5rem, 1rem + 2vw, 3.5rem); 2806 } 2807 2808 #shopify-section-sections--19678090297495__footer .footer__block--newsletter { 2809 flex: 0 0 auto; 2810 width: clamp(17rem, 32%, 25rem); 2811 max-width: none; 2812 } 2813 2814 /* Grow into the space that space-between used to waste. */ 2815 #shopify-section-sections--19678090297495__footer .footer__block--links { 2816 flex: 1 1 9rem; 2817 max-width: none; 2818 } 2819 2820 } 2821 2822 /* Mobile. theme.css leaves the block list as a grid with no explicit columns and 2823 justify-content: start, so it collapses to one implicit column sized to its content and sits 2824 against the left edge -- that is the empty strip down the right of the footer. Two 1fr columns 2825 fill the container and put the link menus side by side at the same time. */ 2826 @media screen and (max-width: 699px) { 2827 #shopify-section-sections--19678090297495__footer .footer__block-list { 2828 grid-template-columns: repeat(2, minmax(0, 1fr)); 2829 gap: 2rem 1.5rem; 2830 } 2831 2832 /* The sign-up panel keeps the full width above the menu columns. */ 2833 #shopify-section-sections--19678090297495__footer .footer__block--newsletter { 2834 grid-column: 1 / -1; 2835 } 2836 2837 /* An odd number of menus would otherwise leave a half-width hole on the last row. */ 2838 #shopify-section-sections--19678090297495__footer .footer__block--links:last-child:nth-child(even) { 2839 grid-column: 1 / -1; 2840 } 2841 } 2842 2843 /* Badge logos on the left; the country/currency selector and the social icons travel together on 2844 the right, sharing one line instead of stacking into three sparse rows. */ 2845 #shopify-section-sections--19678090297495__footer .footer__utility-row { 2846 display: flex; 2847 align-items: center; 2848 flex-wrap: wrap; 2849 gap: 1.25rem 2rem; 2850 } 2851 2852 #shopify-section-sections--19678090297495__footer .footer__utility-row .footer__block--badges { 2853 margin-block: 0; 2854 } 2855 2856 /* margin-inline-start rather than justify-content: space-between so the pair still lands on its 2857 correct side when the badges block is empty. */ 2858 #shopify-section-sections--19678090297495__footer .footer__utility-row__end { 2859 display: flex; 2860 align-items: center; 2861 flex-wrap: wrap; 2862 gap: 1rem 1.5rem; 2863 margin-inline-start: auto; 2864 } 2865 2866 #shopify-section-sections--19678090297495__footer .footer__utility-row__end .social-media { 2867 --social-media-icon-size: 1.75rem; 2868 --social-media-list-gap: 0.75rem 1.5rem; 2869 } 2870 2871 /* The icons carry the row on their own now, so drop the resting 65% fade that made them recede. */ 2872 #shopify-section-sections--19678090297495__footer .footer__utility-row .social-media--list .social-media__item { 2873 opacity: 0.9; 2874 } 2875 2876 /* On mobile the badge logos already fill the first row, so the pair takes the next one on its own: 2877 currency against the left edge, icons against the right, instead of a centred selector sitting 2878 on a line of its own below the icons. */ 2879 @media screen and (max-width: 699px) { 2880 #shopify-section-sections--19678090297495__footer .footer__utility-row__end { 2881 width: 100%; 2882 justify-content: space-between; 2883 margin-inline-start: 0; 2884 } 2885 } 2886 2887 /* --border-color resolves to the text colour at 15%, which reads as a washed-out grey hairline 2888 against the panel. Match the text colour instead. */ 2889 #shopify-section-sections--19678090297495__footer .footer__block--newsletter .input { 2890 border-color: rgb(var(--text-color)); 2891 } 2892 2893 #shopify-section-sections--19678090297495__footer .footer__block--newsletter { 2894 display: flex; 2895 flex-direction: column; 2896 justify-content: center; 2897 }/* One column per nested link group, wrapping instead of overflowing on narrow screens. */ 2898 #shopify-section-sections--19678090297495__footer .footer-link-groups { 2899 display: grid; 2900 grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); 2901 gap: 2rem clamp(1.25rem, 0.75rem + 1.5vw, 2.5rem); 2902 }</style><div class="footer color-scheme color-scheme--scheme-f9824b64-945d-446e-b540-31c9c01d516d color-scheme--bg-ef9ae448c4d00e6952b5237f839848f7 "><div class="footer__accent-bars"><div class="footer__accent-bar" style="height: 10px; background-color: #DD9289;"></div><div class="footer__accent-bar" style="height: 10px; background-color: #A09998;"></div></div><div class="container"> 2903 <div class="footer__inner"><div class="footer__block-list"><div class="footer__block footer__block--newsletter" ><div class="v-stack gap-4 sm:gap-5"><p class="h6">put us in your inbox</p><div class="prose text-subdued"><p>new launches, sales and style â get it all!</p></div><form method="post" action="/contact#newsletter-form-sections--19678090297495__footer" id="newsletter-form-sections--19678090297495__footer" accept-charset="UTF-8" class="form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="contact[tags]" value="newsletter"><div class="form-control" ><input id="input--sections--19678090297495__footer--contactemail" class="input" type="email" dir="ltr" placeholder="E-mail" 2904 name="contact[email]" 2905 2906 2907 2908 2909 2910 autocomplete="email" 2911 2912 enterkeyhint="send" 2913 required 2914 2915 2916 2917><label for="input--sections--19678090297495__footer--contactemail" class="floating-label text-xs">E-mail</label></div><div class="align-self-start"> 2918<button type="submit" class="button" >Subscribe</button></div></form></div></div><div class="footer__block footer__block--links" ><div class="v-stack gap-4 sm:gap-5"><p class="h6">the helpful stuff . . . .</p><ul class="v-stack gap-2.5 unstyled-list" role="list"><li> 2919 <a href="/pages/contact" class="link-faded">contact us</a> 2920 </li><li> 2921 <a href="/pages/faqs" class="link-faded">FAQs</a> 2922 </li><li> 2923 <a href="/policies/shipping-policy" class="link-faded">shipping</a> 2924 </li><li> 2925 <a href="/policies/refund-policy" class="link-faded">returns</a> 2926 </li><li> 2927 <a href="https://returns.shortylove.com/#/withdrawal" class="link-faded">EU right of withdrawal</a> 2928 </li></ul> 2929 </div></div><div class="footer__block footer__block--links" ><div class="v-stack gap-4 sm:gap-5"><p class="h6">brand stuff . . . .</p><ul class="v-stack gap-2.5 unstyled-list" role="list"><li> 2930 <a href="/pages/about-us" class="link-faded">meet sloane</a> 2931 </li><li> 2932 <a href="/pages/reviews" class="link-faded">
2932customer reviews</a> 2933 </li><li> 2934 <a href="https://shortylove.faire.com" class="link-faded">wholesale inquiry</a> 2935 </li><li> 2936 <a href="/policies/terms-of-service" class="link-faded">terms of service</a> 2937 </li><li> 2938 <a href="/policies/privacy-policy" class="link-faded">privacy</a> 2939 </li><li> 2940 <a href="/pages/our-commitment-to-accessibility" class="link-faded">accessibility</a> 2941 </li></ul> 2942 </div></div></div><div class="footer__utility-row"><div class="footer__block footer__block--badges" ><div class="v-stack gap-4 sm:gap-5"><div class="footer-badges"><div><img src="//www.shortylove.com/cdn/shop/files/image_1_1.webp?v=1771331132&width=200" alt="" loading="lazy" width="77" height="auto"></div><div><img src="//www.shortylove.com/cdn/shop/files/Layer-0-2.avif?v=1771331132&width=200" alt="" loading="lazy" width="120" height="auto"></div><div><img src="//www.shortylove.com/cdn/shop/files/trusted-site.webp?v=1771331132&width=200" alt="" loading="lazy" width="120" height="auto"></div></div> 2943 </div></div><div class="footer__utility-row__end"><div class="localization-selectors"><div class="relative"> 2944 <button type="button" class="localization-toggle heading text-xxs link-faded" aria-controls="popover-localization--sections--19678090297495__footer-country" aria-label="Change country or currency" aria-expanded="false"><img src="//cdn.shopify.com/static/images/flags/us.svg?format=jpg&width=60" alt="United States" srcset="//cdn.shopify.com/static/images/flags/us.svg?format=jpg&width=60 60w" width="60" height="45" class="country-flag"><span>United States (USD $)</span><svg aria-hidden="true" focusable="false" fill="none" width="10" class="icon icon-chevron-down" viewBox="0 0 10 10"> 2945 <path d="m1 3 4 4 4-4" stroke="currentColor" stroke-linecap="square"/> 2946 </svg></button> 2947 2948 <x-popover id="popover-localization--sections--19678090297495__footer-country" initial-focus="[aria-selected='true']" class="popover popover--top-start color-scheme color-scheme--dialog"> 2949 <p class="h4" slot="header">Country</p><form method="post" action="/localization" id="localization-form--sections--19678090297495__footer-country" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/account/login" /><x-listbox class="popover__value-list"><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AL" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/al.svg?format=jpg&width=60" alt="Albania" srcset="//cdn.shopify.com/static/images/flags/al.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Albania (ALL L)</span> 2950 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="DZ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/dz.svg?format=jpg&width=60" alt="Algeria" srcset="//cdn.shopify.com/static/images/flags/dz.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Algeria (DZD د.ج)</span> 2951 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AD" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ad.svg?format=jpg&width=60" alt="Andorra" srcset="//cdn.shopify.com/static/images/flags/ad.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Andorra (EUR â¬)</span> 2952 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AO" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ao.svg?format=jpg&width=60" alt="Angola" srcset="//cdn.shopify.com/static/images/flags/ao.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Angola (USD $)</span> 2953 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AI" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ai.svg?format=jpg&width=60" alt="Anguilla" srcset="//cdn.shopify.com/static/images/flags/ai.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Anguilla (XCD $)</span> 2954 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ag.svg?format=jpg&width=60" alt="Antigua &amp; Barbuda" srcset="//cdn.shopify.com/static/images/flags/ag.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Antigua & Barbuda (XCD $)</span> 2955 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AR" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ar.svg?format=jpg&width=60" alt="Argentina" srcset="//cdn.shopify.com/static/images/flags/ar.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Argentina (USD $)</span> 2956 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AM" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/am.svg?format=jpg&width=60" alt="Armenia" srcset="//cdn.shopify.com/static/images/flags/am.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Armenia (AMD Õ¤Ö.)</span> 2957 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AW" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/aw.svg?format=jpg&width=60" alt="Aruba" srcset="//cdn.shopify.com/static/images/flags/aw.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Aruba (AWG Æ)</span> 2958 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AU" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/au.svg?format=jpg&width=60" alt="Australia" srcset="//cdn.shopify.com/static/images/flags/au.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Australia (AUD $)</span> 2959 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AT" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/at.svg?format=jpg&width=60" alt="Austria" srcset="//cdn.shopify.com/static/images/flags/at.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Austria (EUR â¬)</span> 2960 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AZ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/az.svg?format=jpg&width=60" alt="Azerbaijan" srcset="//cdn.shopify.com/static/images/flags/az.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Azerbaijan (AZN â¼)</span> 2961 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BS" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bs.svg?format=jpg&width=60" alt="Bahamas" srcset="//cdn.shopify.com/static/images/flags/bs.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Bahamas (BSD $)</span> 2962 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BH" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bh.svg?format=jpg&width=60" alt="Bahrain" srcset="//cdn.shopify.com/static/images/flags/bh.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Bahrain (USD $)</span> 2963 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BD" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bd.svg?format=jpg&width=60" alt="Bangladesh" srcset="//cdn.shopify.com/static/images/flags/bd.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Bangladesh (BDT à§³)</span> 2964 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BB" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bb.svg?format=jpg&width=60" alt="Barbados" srcset="//cdn.shopify.com/static/images/flags/bb.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Barbados (BBD $)</span> 2965 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BE" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/be.svg?format=jpg&width=60" alt="Belgium" srcset="//cdn.shopify.com/static/images/flags/be.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Belgium (EUR â¬)</span> 2966 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BZ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bz.svg?format=jpg&width=60" alt="Belize" srcset="//cdn.shopify.com/static/images/flags/bz.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Belize (BZD $)</span> 2967 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BJ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bj.svg?format=jpg&width=60" alt="Benin" srcset="//cdn.shopify.com/static/images/flags/bj.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Benin (XOF Fr)</span> 2968 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BM" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bm.svg?format=jpg&width=60" alt="Bermuda" srcset="//cdn.shopify.com/static/images/flags/bm.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Bermuda (USD $)</span> 2969 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BO" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bo.svg?format=jpg&width=60" alt="Bolivia" srcset="//cdn.shopify.com/static/images/flags/bo.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Bolivia (BOB Bs.)</span> 2970 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BA" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ba.svg?format=jpg&width=60" alt="Bosnia &amp; Herzegovina" srcset="//cdn.shopify.com/static/images/flags/ba.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Bosnia & Herzegovina (BAM ÐÐ)</span> 2971 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BW" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bw.svg?format=jpg&width=60" alt="Botswana" srcset="//cdn.shopify.com/static/images/flags/bw.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Botswana (BWP P)</span> 2972 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BR" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/br.svg?format=jpg&width=60" alt="Brazil" srcset="//cdn.shopify.com/static/images/flags/br.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Brazil (BRL R$)</span> 2973 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="VG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/vg.svg?format=jpg&width=60" alt="British Virgin Islands" srcset="//cdn.shopify.com/static/images/flags/vg.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>British Virgin Islands (USD $)</span> 2974 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BN" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bn.svg?format=jpg&width=60" alt="Brunei" srcset="//cdn.shopify.com/static/images/flags/bn.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Brunei (BND $)</span> 2975 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bg.svg?format=jpg&width=60" alt="Bulgaria" srcset="//cdn.shopify.com/static/images/flags/bg.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Bulgaria (EUR â¬)</span> 2976 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BF" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bf.svg?format=jpg&width=60" alt="Burkina Faso" srcset="//cdn.shopify.com/static/images/flags/bf.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Burkina Faso (XOF Fr)</span> 2977 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BI" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bi.svg?format=jpg&width=60" alt="Burundi" srcset="//cdn.shopify.com/static/images/flags/bi.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Burundi (BIF Fr)</span> 2978 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="KH" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/kh.svg?format=jpg&width=60" alt="Cambodia" srcset="//cdn.shopify.com/static/images/flags/kh.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Cambodia (KHR á)</span> 2979 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CM" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/cm.svg?format=jpg&width=60" alt="Cameroon" srcset="//cdn.shopify.com/static/images/flags/cm.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Cameroon (XAF CFA)</span> 2980 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CA" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ca.svg?format=jpg&width=60" alt="Canada" srcset="//cdn.shopify.com/static/images/flags/ca.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" cla
2980ss="country-flag"><span>Canada (CAD $)</span> 2981 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CV" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/cv.svg?format=jpg&width=60" alt="Cape Verde" srcset="//cdn.shopify.com/static/images/flags/cv.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Cape Verde (CVE $)</span> 2982 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BQ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bq.svg?format=jpg&width=60" alt="Caribbean Netherlands" srcset="//cdn.shopify.com/static/images/flags/bq.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Caribbean Netherlands (USD $)</span> 2983 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="KY" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ky.svg?format=jpg&width=60" alt="Cayman Islands" srcset="//cdn.shopify.com/static/images/flags/ky.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Cayman Islands (KYD $)</span> 2984 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="TD" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/td.svg?format=jpg&width=60" alt="Chad" srcset="//cdn.shopify.com/static/images/flags/td.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Chad (XAF CFA)</span> 2985 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CL" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/cl.svg?format=jpg&width=60" alt="Chile" srcset="//cdn.shopify.com/static/images/flags/cl.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Chile (USD $)</span> 2986 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CN" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/cn.svg?format=jpg&width=60" alt="China" srcset="//cdn.shopify.com/static/images/flags/cn.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>China (CNY Â¥)</span> 2987 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CO" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/co.svg?format=jpg&width=60" alt="Colombia" srcset="//cdn.shopify.com/static/images/flags/co.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Colombia (USD $)</span> 2988 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="KM" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/km.svg?format=jpg&width=60" alt="Comoros" srcset="//cdn.shopify.com/static/images/flags/km.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Comoros (KMF Fr)</span> 2989 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CK" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ck.svg?format=jpg&width=60" alt="Cook Islands" srcset="//cdn.shopify.com/static/images/flags/ck.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Cook Islands (NZD $)</span> 2990 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CR" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/cr.svg?format=jpg&width=60" alt="Costa Rica" srcset="//cdn.shopify.com/static/images/flags/cr.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Costa Rica (CRC â¡)</span> 2991 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="HR" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/hr.svg?format=jpg&width=60" alt="Croatia" srcset="//cdn.shopify.com/static/images/flags/hr.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Croatia (EUR â¬)</span> 2992 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CW" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/cw.svg?format=jpg&width=60" alt="Curaçao" srcset="//cdn.shopify.com/static/images/flags/cw.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Curaçao (ANG Æ)</span> 2993 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CY" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/cy.svg?format=jpg&width=60" alt="Cyprus" srcset="//cdn.shopify.com/static/images/flags/cy.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Cyprus (EUR â¬)</span> 2994 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CZ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/cz.svg?format=jpg&width=60" alt="Czechia" srcset="//cdn.shopify.com/static/images/flags/cz.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Czechia (CZK KÄ)</span> 2995 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="DK" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/dk.svg?format=jpg&width=60" alt="Denmark" srcset="//cdn.shopify.com/static/images/flags/dk.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Denmark (DKK kr.)</span> 2996 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="DJ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/dj.svg?format=jpg&width=60" alt="Djibouti" srcset="//cdn.shopify.com/static/images/flags/dj.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Djibouti (DJF Fdj)</span> 2997 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="DM" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/dm.svg?format=jpg&width=60" alt="Dominica" srcset="//cdn.shopify.com/static/images/flags/dm.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Dominica (XCD $)</span> 2998 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="DO" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/do.svg?format=jpg&width=60" alt="Dominican Republic" srcset="//cdn.shopify.com/static/images/flags/do.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Dominican Republic (DOP $)</span> 2999 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="EC" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ec.svg?format=jpg&width=60" alt="Ecuador" srcset="//cdn.shopify.com/static/images/flags/ec.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Ecuador (USD $)</span> 3000 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="EG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/eg.svg?format=jpg&width=60" alt="Egypt" srcset="//cdn.shopify.com/static/images/flags/eg.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Egypt (EGP ج.Ù )</span> 3001 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SV" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/sv.svg?format=jpg&width=60" alt="El Salvador" srcset="//cdn.shopify.com/static/images/flags/sv.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>El Salvador (USD $)</span> 3002 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GQ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gq.svg?format=jpg&width=60" alt="Equatorial Guinea" srcset="//cdn.shopify.com/static/images/flags/gq.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Equatorial Guinea (XAF CFA)</span> 3003 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="EE" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ee.svg?format=jpg&width=60" alt="Estonia" srcset="//cdn.shopify.com/static/images/flags/ee.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Estonia (EUR â¬)</span> 3004 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SZ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/sz.svg?format=jpg&width=60" alt="Eswatini" srcset="//cdn.shopify.com/static/images/flags/sz.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Eswatini (USD $)</span> 3005 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="ET" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/et.svg?format=jpg&width=60" alt="Ethiopia" srcset="//cdn.shopify.com/static/images/flags/et.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Ethiopia (ETB Br)</span> 3006 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="FK" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/fk.svg?format=jpg&width=60" alt="Falkland Islands" srcset="//cdn.shopify.com/static/images/flags/fk.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Falkland Islands (FKP £)</span> 3007 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="FO" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/fo.svg?format=jpg&width=60" alt="Faroe Islands" srcset="//cdn.shopify.com/static/images/flags/fo.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Faroe Islands (DKK kr.)</span> 3008 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="FJ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/fj.svg?format=jpg&width=60" alt="Fiji" srcset="//cdn.shopify.com/static/images/flags/fj.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Fiji (FJD $)</span> 3009 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="FI" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/fi.svg?format=jpg&width=60" alt="Finland" srcset="//cdn.shopify.com/static/images/flags/fi.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Finland (EUR â¬)</span> 3010 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="FR" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/fr.svg?format=jpg&width=60" alt="France" srcset="//cdn.shopify.com/static/images/flags/fr.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>France (EUR â¬)</span> 3011 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GF" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gf.svg?format=jpg&width=60" alt="French Guiana" srcset="//cdn.shopify.com/static/images/flags/gf.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>French Guiana (EUR â¬)</span> 3012 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="PF" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/pf.svg?format=jpg&width=60" alt="French Polynesia" srcset="//cdn.shopify.com/static/images/flags/pf.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>French Polynesia (XPF Fr)</span> 3013 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GA" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ga.svg?format=jpg&width=60" alt="Gabon" srcset="//cdn.shopify.com/static/images/flags/ga.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Gabon (XOF Fr)</span> 3014 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GM" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gm.svg?format=jpg&width=60" alt="Gambia" srcset="//cdn.shopify.com/static/images/flags/gm.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Gambia (GMD D)</span> 3015 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GE" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ge.svg?format=jpg&width=60" alt="Georgia" srcset="//cdn.shopify.com/static/images/flags/ge.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Georgia (USD $)</span> 3016 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="DE" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/de.svg?format=jpg&width=60" alt="Germany" srcset="//cdn.shopify.com/static/images/flags/de.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Germany (EUR â¬)</span> 3017 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GH" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gh.svg?format=jpg&width=60" alt="Ghana" srcset="//cdn.shopify.com/static/images/flags/gh.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Ghana (USD $)</span> 3018 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GI" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gi.svg?format=jpg&width=60" alt="Gibraltar" srcset="//cdn.shopify.com/static/images/flags/gi.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Gibraltar (GBP £)</span> 3019 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5"
3019 role="option" value="GR" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gr.svg?format=jpg&width=60" alt="Greece" srcset="//cdn.shopify.com/static/images/flags/gr.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Greece (EUR â¬)</span> 3020 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GL" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gl.svg?format=jpg&width=60" alt="Greenland" srcset="//cdn.shopify.com/static/images/flags/gl.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Greenland (DKK kr.)</span> 3021 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GD" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gd.svg?format=jpg&width=60" alt="Grenada" srcset="//cdn.shopify.com/static/images/flags/gd.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Grenada (XCD $)</span> 3022 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GP" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gp.svg?format=jpg&width=60" alt="Guadeloupe" srcset="//cdn.shopify.com/static/images/flags/gp.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Guadeloupe (EUR â¬)</span> 3023 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GT" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gt.svg?format=jpg&width=60" alt="Guatemala" srcset="//cdn.shopify.com/static/images/flags/gt.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Guatemala (GTQ Q)</span> 3024 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gg.svg?format=jpg&width=60" alt="Guernsey" srcset="//cdn.shopify.com/static/images/flags/gg.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Guernsey (GBP £)</span> 3025 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GN" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gn.svg?format=jpg&width=60" alt="Guinea" srcset="//cdn.shopify.com/static/images/flags/gn.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Guinea (GNF Fr)</span> 3026 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GW" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gw.svg?format=jpg&width=60" alt="Guinea-Bissau" srcset="//cdn.shopify.com/static/images/flags/gw.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Guinea-Bissau (XOF Fr)</span> 3027 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GY" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gy.svg?format=jpg&width=60" alt="Guyana" srcset="//cdn.shopify.com/static/images/flags/gy.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Guyana (GYD $)</span> 3028 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="HT" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ht.svg?format=jpg&width=60" alt="Haiti" srcset="//cdn.shopify.com/static/images/flags/ht.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Haiti (USD $)</span> 3029 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="HN" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/hn.svg?format=jpg&width=60" alt="Honduras" srcset="//cdn.shopify.com/static/images/flags/hn.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Honduras (HNL L)</span> 3030 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="HK" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/hk.svg?format=jpg&width=60" alt="Hong Kong SAR" srcset="//cdn.shopify.com/static/images/flags/hk.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Hong Kong SAR (HKD $)</span> 3031 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="HU" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/hu.svg?format=jpg&width=60" alt="Hungary" srcset="//cdn.shopify.com/static/images/flags/hu.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Hungary (HUF Ft)</span> 3032 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="IS" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/is.svg?format=jpg&width=60" alt="Iceland" srcset="//cdn.shopify.com/static/images/flags/is.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Iceland (ISK kr)</span> 3033 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="IN" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/in.svg?format=jpg&width=60" alt="India" srcset="//cdn.shopify.com/static/images/flags/in.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>India (INR â¹)</span> 3034 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="ID" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/id.svg?format=jpg&width=60" alt="Indonesia" srcset="//cdn.shopify.com/static/images/flags/id.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Indonesia (IDR Rp)</span> 3035 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="IE" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ie.svg?format=jpg&width=60" alt="Ireland" srcset="//cdn.shopify.com/static/images/flags/ie.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Ireland (EUR â¬)</span> 3036 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="IL" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/il.svg?format=jpg&width=60" alt="Israel" srcset="//cdn.shopify.com/static/images/flags/il.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>
3036Israel (ILS âª)</span> 3037 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="IT" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/it.svg?format=jpg&width=60" alt="Italy" srcset="//cdn.shopify.com/static/images/flags/it.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Italy (EUR â¬)</span> 3038 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="JM" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/jm.svg?format=jpg&width=60" alt="Jamaica" srcset="//cdn.shopify.com/static/images/flags/jm.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Jamaica (JMD $)</span> 3039 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="JP" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/jp.svg?format=jpg&width=60" alt="Japan" srcset="//cdn.shopify.com/static/images/flags/jp.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Japan (JPY Â¥)</span> 3040 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="JE" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/je.svg?format=jpg&width=60" alt="Jersey" srcset="//cdn.shopify.com/static/images/flags/je.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Jersey (USD $)</span> 3041 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="JO" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/jo.svg?format=jpg&width=60" alt="Jordan" srcset="//cdn.shopify.com/static/images/flags/jo.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Jordan (USD $)</span> 3042 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="KZ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/kz.svg?format=jpg&width=60" alt="Kazakhstan" srcset="//cdn.shopify.com/static/images/flags/kz.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Kazakhstan (KZT â¸)</span> 3043 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="KE" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ke.svg?format=jpg&width=60" alt="Kenya" srcset="//cdn.shopify.com/static/images/flags/ke.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Kenya (KES KSh)</span> 3044 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="KI" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ki.svg?format=jpg&width=60" alt="Kiribati" srcset="//cdn.shopify.com/static/images/flags/ki.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Kiribati (USD $)</span> 3045 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="KW" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/kw.svg?format=jpg&width=60" alt="Kuwait" srcset="//cdn.shopify.com/static/images/flags/kw.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Kuwait (USD $)</span> 3046 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="KG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/kg.svg?format=jpg&width=60" alt="Kyrgyzstan" srcset="//cdn.shopify.com/static/images/flags/kg.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Kyrgyzstan (KGS som)</span> 3047 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="LA" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/la.svg?format=jpg&
3047width=60" alt="Laos" srcset="//cdn.shopify.com/static/images/flags/la.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Laos (LAK â)</span> 3048 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="LV" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/lv.svg?format=jpg&width=60" alt="Latvia" srcset="//cdn.shopify.com/static/images/flags/lv.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Latvia (EUR â¬)</span> 3049 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="LS" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ls.svg?format=jpg&width=60" alt="Lesotho" srcset="//cdn.shopify.com/static/images/flags/ls.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Lesotho (USD $)</span> 3050 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="LI" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/li.svg?format=jpg&width=60" alt="Liechtenstein" srcset="//cdn.shopify.com/static/images/flags/li.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Liechtenstein (CHF CHF)</span> 3051 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="LT" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/lt.svg?format=jpg&width=60" alt="Lithuania" srcset="//cdn.shopify.com/static/images/flags/lt.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Lithuania (EUR â¬)</span> 3052 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="LU" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/lu.svg?format=jpg&width=60" alt="Luxembourg" srcset="//cdn.shopify.com/static/images/flags/lu.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Luxembourg (EUR â¬)</span> 3053 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MO" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mo.svg?format=jpg&width=60" alt="Macao SAR" srcset="//cdn.shopify.com/static/images/flags/mo.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Macao SAR (MOP P)</span> 3054 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mg.svg?format=jpg&width=60" alt="Madagascar" srcset="//cdn.shopify.com/static/images/flags/mg.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Madagascar (USD $)</span> 3055 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MW" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mw.svg?format=jpg&width=60" alt="Malawi" srcset="//cdn.shopify.com/static/images/flags/mw.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Malawi (MWK MK)</span> 3056 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MY" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/my.svg?format=jpg&width=60" alt="Malaysia" srcset="//cdn.shopify.com/static/images/flags/my.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Malaysia (MYR RM)</span> 3057 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MV" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mv.svg?format=jpg&width=60" alt="Maldives" srcset="//cdn.shopify.com/static/images/flags/mv.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Maldives (MVR MVR)</span> 3058 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MT" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mt.svg?format=jpg&width=60" alt="Malta" srcset="//cdn.shopify.com/static/images/flags/mt.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Malta (EUR â¬)</span> 3059 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MQ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mq.svg?format=jpg&width=60" alt="Martinique" srcset="//cdn.shopify.com/static/images/flags/mq.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Martinique (EUR â¬)</span> 3060 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MR" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mr.svg?format=jpg&width=60" alt="Mauritania" srcset="//cdn.shopify.com/static/images/flags/mr.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Mauritania (USD $)</span> 3061 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MU" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mu.svg?format=jpg&width=60" alt="Mauritius" srcset="//cdn.shopify.com/static/images/flags/mu.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Mauritius (MUR â¨)</span> 3062 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="YT" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/yt.svg?format=jpg&width=60" alt="Mayotte" srcset="//cdn.shopify.com/static/images/flags/yt.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Mayotte (EUR â¬)</span> 3063 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MX" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mx.svg?format=jpg&width=60" alt="Mexico" srcset="//cdn.shopify.com/static/images/flags/mx.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Mexico (MXN $)</span> 3064 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MD" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/md.svg?format=jpg&width=60" alt="Moldova" srcset="//cdn.shopify.com/static/images/flags/md.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Moldova (MDL L)</span> 3065 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MC" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mc.svg?format=jpg&width=60" alt="Monaco" srcset="//cdn.shopify.com/static/images/flags/mc.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Monaco (EUR â¬)</span> 3066 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MN" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mn.svg?format=jpg&width=60" alt="Mongolia" srcset="//cdn.shopify.com/static/images/flags/mn.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Mongolia (MNT â®)</span> 3067 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="ME" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/me.svg?format=jpg&width=60" alt="Montenegro" srcset="//cdn.shopify.com/static/images/flags/me.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Montenegro (EUR â¬)</span> 3068 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MS" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ms.svg?format=jpg&width=60" alt="Montserrat" srcset="//cdn.shopify.com/static/images/flags/ms.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Montserrat (XCD $)</span> 3069 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MA" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ma.svg?format=jpg&width=60" alt="Morocco" srcset="//cdn.shopify.com/static/images/flags/ma.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Morocco (MAD د.Ù .)</span> 3070 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MZ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mz.svg?format=jpg&width=60" alt="Mozambique" srcset="//cdn.shopify.com/static/images/flags/mz.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Mozambique (USD $)</span> 3071 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="NA" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/na.svg?format=jpg&width=60" alt="Namibia" srcset="//cdn.shopify.com/static/images/flags/na.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Namibia (USD $)</span> 3072 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="NR" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/nr.svg?format=jpg&width=60" alt="Nauru" srcset="//cdn.shopify.com/static/images/flags/nr.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Nauru (AUD $)</span> 3073 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="NP" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/np.svg?format=jpg&width=60" alt="Nepal" srcset="//cdn.shopify.com/static/images/flags/np.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Nepal (NPR Rs.)</span> 3074 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="NL" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/nl.svg?format=jpg&width=60" alt="Netherlands" srcset="//cdn.shopify.com/static/images/flags/nl.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Netherlands (EUR â¬)</span> 3075 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="NC" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/nc.svg?format=jpg&width=60" alt="New Caledonia" srcset="//cdn.shopify.com/static/images/flags/nc.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>New Caledonia (XPF Fr)</span> 3076 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="NZ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/nz.svg?format=jpg&width=60" alt="New Zealand" srcset="//cdn.shopify.com/static/images/flags/nz.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>New Zealand (NZD $)</span> 3077 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="NI" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ni.svg?format=jpg&width=60" alt="Nicaragua" srcset="//cdn.shopify.com/static/images/flags/ni.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Nicaragua (NIO C$)</span> 3078 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="NG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ng.svg?format=jpg&width=60" alt="Nigeria" srcset="//cdn.shopify.com/static/images/flags/ng.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Nigeria (NGN â¦)</span> 3079 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="NU" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/nu.svg?format=jpg&width=60" alt="Niue" srcset="//cdn.shopify.com/static/images/flags/nu.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Niue (NZD $)</span> 3080 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MK" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mk.svg?format=jpg&width=60" alt="North Macedonia" srcset="//cdn.shopify.com/static/images/flags/mk.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>North Macedonia (MKD ден)</span> 3081 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="NO" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/no.svg?format=jpg&width=60" alt="Norway" srcset="//cdn.shopify.com/static/images/flags/no.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Norway (USD $)</span> 3082 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="OM" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/om.svg?format=jpg&width=60" alt="Oman" srcset="//cdn.shopify.com/static/images/flags/om.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Oman (USD $)</span> 3083 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="PK" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/pk.svg?format=jpg&width=60" alt="Pakistan" srcset="//cdn.shopify.com/static/images/flags/pk.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Pakistan (PKR â¨)</span> 3084 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="PA" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/pa.svg?format=jpg&width=60" alt="Panama" srcset="//cdn.shopify.com/static/images/flags/pa.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Panama (USD $)</span> 3085 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="PG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/pg.svg?format=jpg&width=60" alt="Papua New Guinea" srcset="//cdn.shopify.com/static/images/flags/pg.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Papua New Guinea (PGK K)</span> 3086
3086 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="PY" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/py.svg?format=jpg&width=60" alt="Paraguay" srcset="//cdn.shopify.com/static/images/flags/py.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Paraguay (PYG â²)</span> 3087 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="PE" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/pe.svg?format=jpg&width=60" alt="Peru" srcset="//cdn.shopify.com/static/images/flags/pe.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Peru (PEN S/)</span> 3088 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="PH" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ph.svg?format=jpg&width=60" alt="Philippines" srcset="//cdn.shopify.com/static/images/flags/ph.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Philippines (PHP â±)</span> 3089 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="PL" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/pl.svg?format=jpg&width=60" alt="Poland" srcset="//cdn.shopify.com/static/images/flags/pl.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Poland (PLN zÅ)</span> 3090 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="PT" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/pt.svg?format=jpg&width=60" alt="Portugal" srcset="//cdn.shopify.com/static/images/flags/pt.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Portugal (EUR â¬)</span> 3091 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="QA" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/qa.svg?format=jpg&width=60" alt="Qatar" srcset="//cdn.shopify.com/static/images/flags/qa.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Qatar (QAR ر.Ù)</span> 3092 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="RE" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/re.svg?format=jpg&width=60" alt="Réunion" srcset="//cdn.shopify.com/static/images/flags/re.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Réunion (EUR â¬)</span> 3093 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="RO" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ro.svg?format=jpg&width=60" alt="Romania" srcset="//cdn.shopify.com/static/images/flags/ro.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Romania (RON Lei)</span> 3094 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="RW" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/rw.svg?format=jpg&width=60" alt="Rwanda" srcset="//cdn.shopify.com/static/images/flags/rw.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Rwanda (RWF FRw)</span> 3095 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="WS" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ws.svg?format=jpg&width=60" alt="Samoa" srcset="//cdn.shopify.com/static/images/flags/ws.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Samoa (WST T)</span> 3096 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SM" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/sm.svg?format=jpg&width=60" alt="San Marino" srcset="//cdn.shopify.com/static/images/flags/sm.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>San Marino (EUR â¬)</span> 3097 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="ST" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/st.svg?format=jpg&width=60" alt="São Tomé &amp; PrÃncipe" srcset="//cdn.shopify.com/static/images/flags/st.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>São Tomé & PrÃncipe (STD Db)</span> 3098 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SA" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/sa.svg?format=jpg&width=60" alt="Saudi Arabia" srcset="//cdn.shopify.com/static/images/flags/sa.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Saudi Arabia (SAR ر.س)</span> 3099 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SN" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/sn.svg?format=jpg&width=60" alt="Senegal" srcset="//cdn.shopify.com/static/images/flags/sn.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Senegal (XOF Fr)</span> 3100 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="RS" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/rs.svg?format=jpg&width=60" alt="Serbia" srcset="//cdn.shopify.com/static/images/flags/rs.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Serbia (RSD РСÐ)</span> 3101 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SC" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/sc.svg?format=jpg&width=60" alt="Seychelles" srcset="//cdn.shopify.com/static/images/flags/sc.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Seychelles (USD $)</span> 3102 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SL" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/sl.svg?format=jpg&width=60" alt="Sierra Leone" srcset="//cdn.shopify.com/static/images/flags/sl.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Sierra Leone (SLL Le)</span> 3103 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/sg.svg?format=jpg&width=60" alt="Singapore" srcset="//cdn.shopify.com/static/images/flags/sg.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Singapore (SGD $)</span> 3104 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SK" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/sk.svg?format=jpg&width=60" alt="Slovakia" srcset="//cdn.shopify.com/static/images/flags/sk.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Slovakia (EUR â¬)</span> 3105 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SI" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/si.svg?format=jpg&width=60" alt="Slovenia" srcset="//cdn.shopify.com/static/images/flags/si.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Slovenia (EUR â¬)</span> 3106 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SB" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/sb.svg?format=jpg&width=60" alt="Solomon Islands" srcset="//cdn.shopify.com/static/images/flags/sb.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Solomon Islands (SBD $)</span> 3107 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="ZA" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/za.svg?format=jpg&width=60" alt="South Africa" srcset="//cdn.shopify.com/static/images/flags/za.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>South Africa (ZAR R)</span> 3108 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="KR" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/kr.svg?format=jpg&width=60" alt="South Korea" srcset="//cdn.shopify.com/static/images/flags/kr.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>South Korea (KRW â©)</span> 3109 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="ES" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/es.svg?format=jpg&width=60" alt="Spain" srcset="//cdn.shopify.com/static/images/flags/es.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Spain (EUR â¬)</span> 3110 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="LK" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/lk.svg?format=jpg&width=60" alt="Sri Lanka" srcset="//cdn.shopify.com/static/images/flags/lk.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Sri Lanka (LKR â¨)</span> 3111 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="BL" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/bl.svg?format=jpg&width=60" alt="St. Barthélemy" srcset="//cdn.shopify.com/static/images/flags/bl.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>St. Barthélemy (EUR â¬)</span> 3112 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="KN" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/kn.svg?format=jpg&width=60" alt="St. Kitts &amp; Nevis" srcset="//cdn.shopify.com/static/images/flags/kn.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>St. Kitts & Nevis (XCD $)</span> 3113 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="LC" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/lc.svg?format=jpg&width=60" alt="St. Lucia" srcset="//cdn.shopify.com/static/images/flags/lc.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>St. Lucia (XCD $)</span> 3114 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="MF" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/mf.svg?format=jpg&width=60" alt="St. Martin" srcset="//cdn.shopify.com/static/images/flags/mf.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>St. Martin (EUR â¬)</span> 3115 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="VC" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/vc.svg?format=jpg&width=60" alt="St. Vincent &amp; Grenadines" srcset="//cdn.shopify.com/static/images/flags/vc.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>St. Vincent & Grenadines (XCD $)</span> 3116 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SR" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/sr.svg?format=jpg&width=60" alt="Suriname" srcset="//cdn.shopify.com/static/images/flags/sr.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Suriname (USD $)</span> 3117 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="SE" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/se.svg?format=jpg&width=60" alt="Sweden" srcset="//cdn.shopify.com/static/images/flags/se.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Sweden (SEK kr)</span> 3118 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="CH" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ch.svg?format=jpg&width=60" alt="Switzerland" srcset="//cdn.shopify.com/static/images/flags/ch.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Switzerland (CHF CHF)</span> 3119 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="TW" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/tw.svg?format=jpg&width=60" alt="Taiwan" srcset="//cdn.shopify.com/static/images/flags/tw.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Taiwan (TWD $)</span> 3120 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="TZ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/tz.svg?format=jpg&width=60" alt="Tanzania" srcset="//cdn.shopify.com/static/images/flags/tz.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Tanzania (TZS Sh)</span> 3121 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="TH" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/th.svg?format=jpg&width=60" alt="Thailand" srcset="//cdn.shopify.com/static/images/flags/th.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Thailand (THB ฿)</span> 3122 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="TL" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/tl.svg?format=jpg&width=60" alt="Timor-Leste" srcset="//cdn.shopify.com/static/images/flags/tl.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Timor-Leste (USD $)</span> 3123 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="TG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/tg.svg?format=jpg&width=60" alt="Togo" srcset="//cdn.shopify.com/static/images/flags/tg.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Togo (XOF Fr)</span> 3124 </button><button type="submit" name="country_code" class="popo
3124ver__value-option h-stack gap-2.5" role="option" value="TO" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/to.svg?format=jpg&width=60" alt="Tonga" srcset="//cdn.shopify.com/static/images/flags/to.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Tonga (TOP T$)</span> 3125 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="TT" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/tt.svg?format=jpg&width=60" alt="Trinidad &amp; Tobago" srcset="//cdn.shopify.com/static/images/flags/tt.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Trinidad & Tobago (TTD $)</span> 3126 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="TN" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/tn.svg?format=jpg&width=60" alt="Tunisia" srcset="//cdn.shopify.com/static/images/flags/tn.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Tunisia (USD $)</span> 3127 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="TC" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/tc.svg?format=jpg&width=60" alt="Turks &amp; Caicos Islands" srcset="//cdn.shopify.com/static/images/flags/tc.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Turks & Caicos Islands (USD $)</span> 3128 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="TV" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/tv.svg?format=jpg&width=60" alt="Tuvalu" srcset="//cdn.shopify.com/static/images/flags/tv.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Tuvalu (AUD $)</span> 3129 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="UG" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ug.svg?format=jpg&width=60" alt="Uganda" srcset="//cdn.shopify.com/static/images/flags/ug.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Uganda (UGX USh)</span> 3130 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="AE" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/ae.svg?format=jpg&width=60" alt="United Arab Emirates" srcset="//cdn.shopify.com/static/images/flags/ae.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>United Arab Emirates (AED د.Ø¥)</span> 3131 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="GB" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/gb.svg?format=jpg&width=60" alt="United Kingdom" srcset="//cdn.shopify.com/static/images/flags/gb.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>United Kingdom (GBP £)</span> 3132 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="US" aria-selected="true"><img src="//cdn.shopify.com/static/images/flags/us.svg?format=jpg&width=60" alt="United States" srcset="//cdn.shopify.com/static/images/flags/us.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>United States (USD $)</span> 3133 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="UY" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/uy.svg?format=jpg&width=60" alt="Uruguay" srcset="//cdn.shopify.com/static/images/flags/uy.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Uruguay (UYU $U)</span> 3134 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="UZ" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/uz.svg?format=jpg&width=60" alt="Uzbekistan" srcset="//cdn.shopify.com/static/images/flags/uz.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Uzbekistan (UZS so'm)</span> 3135 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="VU" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/vu.svg?format=jpg&width=60" alt="Vanuatu" srcset="//cdn.shopify.com/static/images/flags/vu.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Vanuatu (VUV Vt)</span> 3136 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="VN" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/vn.svg?format=jpg&width=60" alt="Vietnam" srcset="//cdn.shopify.com/static/images/flags/vn.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Vietnam (VND â«)</span> 3137 </button><button type="submit" name="country_code" class="popover__value-option h-stack gap-2.5" role="option" value="ZM" aria-selected="false"><img src="//cdn.shopify.com/static/images/flags/zm.svg?format=jpg&width=60" alt="Zambia" srcset="//cdn.shopify.com/static/images/flags/zm.svg?format=jpg&width=60 60w" width="60" height="45" loading="lazy" class="country-flag"><span>Zambia (USD $)</span> 3138 </button></x-listbox></form></x-popover> 3139 </div></div><ul class="social-media social-media--list unstyled-list" role="list"><li class="social-media__item branding-colors--facebook"> 3140 <a href="https://www.facebook.com/shortylovebags" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Facebook"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-facebook" viewB
3140ox="0 0 24 24"> 3141 <path fill-rule="evenodd" clip-rule="evenodd" d="M10.183 21.85v-8.868H7.2V9.526h2.983V6.982a4.17 4.17 0 0 1 4.44-4.572 22.33 22.33 0 0 1 2.667.144v3.084h-1.83a1.44 1.44 0 0 0-1.713 1.68v2.208h3.423l-.447 3.456h-2.97v8.868h-3.57Z" fill="currentColor"/> 3142 </svg></a> 3143 </li><li class="social-media__item branding-colors--instagram"> 3144 <a href="https://www.instagram.com/shortylovebags/" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Instagram"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-instagram" viewBox="0 0 24 24"> 3145 <path fill-rule="evenodd" clip-rule="evenodd" d="M12 2.4c-2.607 0-2.934.011-3.958.058-1.022.046-1.72.209-2.33.446a4.705 4.705 0 0 0-1.7 1.107 4.706 4.706 0 0 0-1.108 1.7c-.237.611-.4 1.31-.446 2.331C2.41 9.066 2.4 9.392 2.4 12c0 2.607.011 2.934.058 3.958.046 1.022.209 1.72.446 2.33a4.706 4.706 0 0 0 1.107 1.7c.534.535 1.07.863 1.7 1.108.611.237 1.309.4 2.33.446 1.025.047 1.352.058 3.959.058s2.934-.011 3.958-.058c1.022-.046 1.72-.209 2.33-.446a4.706 4.706 0 0 0 1.7-1.107 4.706 4.706 0 0 0 1.108-1.7c.237-.611.4-1.31.446-2.33.047-1.025.058-1.352.058-3.959s-.011-2.934-.058-3.958c-.047-1.022-.209-1.72-.446-2.33a4.706 4.706 0 0 0-1.107-1.7 4.705 4.705 0 0 0-1.7-1.108c-.611-.237-1.31-.4-2.331-.446C14.934 2.41 14.608 2.4 12 2.4Zm0 1.73c2.563 0 2.867.01 3.88.056.935.042 1.443.199 1.782.33.448.174.768.382 1.104.718.336.336.544.656.718 1.104.131.338.287.847.33 1.783.046 1.012.056 1.316.056 3.879 0 2.563-.01 2.867-.056 3.88-.043.935-.199 1.444-.33 1.782a2.974 2.974 0 0 1-.719 1.104 2.974 2.974 0 0 1-1.103.718c-.339.131-.847.288-1.783.33-1.012.046-1.316.056-3.88.056-2.563 0-2.866-.01-3.878-.056-.936-.042-1.445-.199-1.783-.33a2.974 2.974 0 0 1-1.104-.718 2.974 2.974 0 0 1-.718-1.104c-.131-.338-.288-.847-.33-1.783-.047-1.012-.056-1.316-.056-3.879 0-2.563.01-2.867.056-3.88.042-.935.199-1.443.33-1.782.174-.448.382-.768.718-1.104a2.974 2.974 0 0 1 1.104-.718c.338-.131.847-.288 1.783-.33C9.133 4.14 9.437 4.13 12 4.13Zm0 11.07a3.2 3.2 0 1 1 0-6.4 3.2 3.2 0 0 1 0 6.4Zm0-8.13a4.93 4.93 0 1 0 0 9.86 4.93 4.93 0 0 0 0-9.86Zm6.276-.194a1.152 1.152 0 1 1-2.304 0 1.152 1.152 0 0 1 2.304 0Z" fill="currentColor"/> 3146 </svg></a> 3147 </li></ul></div></div><div class="footer__aside"><p class="heading text-subdued text-xxs">© 2026 - shortyLOVE </p><ul class="payment-methods unstyled-list"><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-amazon"><title id="pi-amazon">Amazon</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" fill-rule="nonzero" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF" fill-rule="nonzero"/><path d="M25.26 16.23c-1.697 1.48-4.157 2.27-6.275 2.27-2.97 0-5.644-1.3-7.666-3.463-.16-.17-.018-.402.173-.27 2.183 1.504 4.882 2.408 7.67 2.408 1.88 0 3.95-.46 5.85-1.416.288-.145.53.222.248.47v.001zm.706-.957c-.216-.328-1.434-.155-1.98-.078-.167.024-.193-.148-.043-.27.97-.81 2.562-.576 2.748-.305.187.272-.047 2.16-.96 3.063-.14.138-.272.064-.21-.12.205-.604.664-1.96.446-2.29h-.001z" fill="#F90" fill-rule="nonzero"/><path d="M21.814 15.291c-.574-.498-.676-.73-.993-1.205-.947 1.012-1.618 1.315-2.85 1.315-1.453 0-2.587-.938-2.587-2.818 0-1.467.762-2.467 1.844-2.955.94-.433 2.25-.51 3.25-.628v-.235c0-.43.033-.94-.208-1.31-.212-.333-.616-.47-.97-.47-.66 0-1.25.353-1.392 1.085-.03.163-.144.323-.3.33l-1.677-.187c-.14-.033-.296-.153-.257-.38.386-2.125 2.223-2.766 3.867-2.766.84 0 1.94.234 2.604.9.842.82.762 1.918.762 3.11v2.818c0 .847.335 1.22.65 1.676.113.164.138.36-.003.482-.353.308-.98.88-1.326 1.2a.367.367 0 0 1-.414.038zm-1.659-2.533c.34-.626.323-1.214.323-1.918v-.392c-1.25 0-2.57.28-2.57 1.82 0 .782.386 1.31 1.05 1.31.487 0 .922-.312 1.197-.82z" fill="#221F1F"/></svg> 3148</li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/>
3148<path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 3149</li><li><svg version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 0 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" />
3149<path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg> 3150</li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-blik"><title id="pi-blik">BLIK</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="url(#pi-blik-paint0_linear)"/><path d="M30.343 17.155l-2.785-3.639 2.563-3.236h-2.185l-2.456 3.138V6.78h-1.848v10.375h1.848v-3.532l2.456 3.532h2.407zM18.613 6.78h-1.848v10.366h1.848V6.78zm3.433 3.508h-1.848v6.867h1.848v-6.867z" fill="#fff"/><path d="M13.849 9.573a1.651 1.651 0 100-3.302 1.651 1.651 0 000 3.302z" fill="url(#pi-blik-paint1_radial)"/><path d="M12.041 10.206c-.574 0-1.138.144-1.642.419V6.82H8.534v6.9a3.516 3.516 0 103.507-3.515zm0 5.175a1.643 1.643 0 110-3.286 1.643 1.643 0 010 3.286z" fill="#fff"/><defs><radialGradient id="pi-blik-paint1_radial" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12.51 6.18) scale(5.41297)"><stop stop-color="red"/><stop offset=".49" stop-color="#E83E49"/><stop offset="1" stop-color="#F0F"/></radialGradient><linearGradient id="pi-blik-paint0_linear" x1="19" y1="4.977" x2="19" y2="55.605" gradientUnits="userSpaceOnUse"><stop/><stop offset=".732" stop-color="#fff"/><stop offset="1" stop-color="#fff"/></linearGradient></defs></svg></li><li><svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg></li><li><svg viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg></li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-eps"> <title id="pi-eps">EPS</title> <path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" opacity=".07"/> <path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#fff"/> <path fill="#71706f" d="M27.745 12.32h-2.322a.465.465 0 01-.468-.464c0-.258.21-.484.468-.484h3.535V9.628h-3.535c-1.233 0-2.237 1.006-2.237 2.236s1.004 2.237 2.237 2.237h2.29c.259 0 .469.205.469.462 0 .258-.21.448-.468.448h-4.912c-.417.796-.822 1.478-1.645 1.82h6.588c1.213-.018 2.205-1.045 2.205-2.265 0-1.22-.992-2.23-2.205-2.247z"/> <path fill="#71706f" d="M18.845 9.628c-1.968 0-3.571 1.612-3.571 3.594V20.697h1.782V16.83h1.785c1.968 0 3.565-1.634 3.565-3.615 0-1.98-1.593-3.587-3.561-3.587zm0 5.383h-1.79v-1.796c0-1.003.8-1.82
31501.79-1.82s1.796.817 1.796 1.82a1.79 1.79 0 01-1.796 1.796z"/> <path fill="#c8036f" d="M9.634 16.83c-1.685 0-3.101-1.2-3.484-2.768 0 0-.111-.519-.111-.86 0-.342.105-.865.105-.865a3.594 3.594 0 013.482-2.73c1.978 0 3.6 1.608 3.6 3.586v.87H7.973c.31.607.938.948 1.662.948h4.724l.006-5.13c0-.764-.625-1.39-1.39-1.39H6.278c-.764 0-1.39.607-1.39 1.371v6.696c0 .765.626 1.41 1.39 1.41h6.696c.686 0 1.259-.493 1.37-1.138h-4.71z"/> <path fill="#c8036f" d="M9.626 11.31c-.72 0-1.348.44-1.66 1.01h3.32c-.312-.57-.939-1.01-1.66-1.01zM12.659 6.314c0-1.635-1.359-2.96-3.034-2.96-1.647 0-2.987 1.282-3.031 2.879v.91c0 .106.086.21.195.21h1.116c.11 0 .205-.104.205-.21v-.83c0-.815.68-1.48 1.516-1.48.837 0 1.516.665 1.516 1.48v.83c0 .106.089.21.198.21h1.116c.109 0 .202-.104.202-.21v-.83z"/> <g> <path fill="#71706f" d="M20.843 19.142l-.16.914c-.082.462-.384.673-.794.673-.347 0-.616-.226-.538-.672l.161-.914h.249l-.161.913c-.05.285.078.447.32.447.249 0 .462-.148.513-.446l.161-.915h.25zm-.977-.285c0 .076.059.112.121.112.079 0 .164-.057.164-.162 0-.074-.05-.112-.114-.112-.08 0-.17.052-.17.162zm.538-.003c0 .079.06.114.126.114.07 0 .161-.056.161-.159 0-.074-.054-.114-.114-.114-.08 0-.173.052-.173.16zM21.445 19.142l-.112.632a.57.57 0 01.423-.199c.278 0 .47.163.47.465 0 .428-.297.686-.678.686-.148 0-.274-.055-.35-.194l-.042.165h-.218l.276-1.554h.23zm-.175 1.066c-.01.183.11.302.282.302a.444.444 0 00.441-.423c.01-.186-.111-.296-.28-.296a.45.45 0 00-.443.417zM22.68 20.242c-.01.151.11.275.311.275.112 0 .26-.044.34-.12l.126.145a.782.782 0 01-.508.188c-.319 0-.505-.19-.505-.482 0-.388.305-.677.695-.677.356 0 .558.216.437.67h-.896zm.708-.19c.018-.19-.094-.267-.28-.267-.168 0-.323.078-.39.267h.67zM24.193 19.597l-.012.146a.414.414 0 01.357-.17c.107 0 .204.039.255.095l-.139.201a.244.244 0 00-.183-.067.346.346 0 00-.352.3l-.106.595h-.23l.195-1.1h.215zM25.905 19.597l.116.87.422-.87h.257l-.578 1.1h-.27l-.11-.725-.178.36-.192.365h-.27l-.194-1.1h.26l.114.87.424-.87h.199zM26.997 20.242c-.01.151.11.275.311.275.112 0 .26-.044.34-.12l.126.145a.782.782 0 01-.508.188c-.319 0-.505-.19-.505-.482 0-.388.305-.677.695-.677.356 0 .558.216.437.67h-.896zm.708-.19c.018-.19-.094-.267-.28-.267-.168 0-.323.078-.39.267h.67zM28.525 19.597l-.194 1.1H28.1l.195-1.1h.23zm-.204-.3c0 .08.059.12.121.12.09 0 .173-.059.173-.168a.113.113 0 00-.117-.117c-.082 0-.177.054-.177.166zM29.55 19.87c-.072-.081-.164-.104-.274-.104-.152 0-.26.052-.26.148 0 .08.088.114.218.126.201.017.459.085.405.37-.038.205-.244.326-.53.326-.18 0-.353-.04-.47-.204l.151-.163c.083.114.229.161.358.164.11 0 .24-.04.26-.144.02-.098-.067-.136-.228-.152-.188-.018-.394-.087-.394-.296 0-.276.298-.372.522-.372.17 0 .295.038.399.148l-.157.152zM30.278 19.597l-.105.592c-.034.189.051.319.244.319.181 0 .336-.15.367-.334l.101-.576h.231l-.195 1.099h-.208l.015-.16a.573.573 0 01-.412.182c-.271 0-.432-.194-.374-.528l.105-.593h.231zM32.13 20.697l.105-.589c.033-.19-.032-.317-.242-.317-.184 0-.339.148-.37.33l-.1.576h-.232l.195-1.1h.21l-.015.16a.583.583 0 01.403-.176c.27 0 .444.187.384.525l-.106.59h-.233zM32.912 20.848c-.016.152.1.213.296.213.17 0 .354-.095.396-.337l.034-.189c-.1.142-.285.197-.421.197-.283 0-.48-.168-.48-.473 0-.434.323-.685.688-.685.155 0 .294.073.343.199l.038-.176h.224l-.193 1.132c-.071.42-.383.55-.668.55-.34 0-.528-.165-.481-.43h.224zm.065-.633c0 .188.123.302.3.302.477 0 .605-.733.128-.733a.42.42 0 00-.428.43z"/></g></svg></li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
315006zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg> 3151</li><li><svg width="38" height="24" role="img" aria-labelledby="pi-jcb" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg"><title id="pi-jcb">JCB</title><g fill="none" fill-rule="evenodd"><g fill-rule="nonzero"><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/></g><path d="M11.5 5H15v11.5a2.5 2.5 0 0 1-2.5 2.5H9V7.5A2.5 2.5 0 0 1 11.5 5z" fill="#006EBC"/><path d="M18.5 5H22v11.5a2.5 2.5 0 0 1-2.5 2.5H16V7.5A2.5 2.5 0 0 1 18.5 5z" fill="#F00036"/><path d="M25.5 5H29v11.5a2.5 2.5 0 0 1-2.5 2.5H23V7.5A2.5 2.5 0 0 1 25.5 5z" fill="#2AB419"/>
3151<path d="M10.755 14.5c-1.06 0-2.122-.304-2.656-.987l.78-.676c.068 1.133 3.545 1.24 3.545-.19V9.5h1.802v3.147c0 .728-.574 1.322-1.573 1.632-.466.144-1.365.221-1.898.221zm8.116 0c-.674 0-1.388-.107-1.965-.366-.948-.425-1.312-1.206-1.3-2.199.012-1.014.436-1.782 1.468-2.165 1.319-.49 3.343-.261 3.926.27v.972c-.572-.521-1.958-.898-2.919-.46-.494.226-.737.917-.744 1.448-.006.56.245 1.252.744 1.497.953.467 2.39.04 2.919-.441v1.01c-.358.255-1.253.434-2.129.434zm8.679-2.587c.37-.235.582-.567.582-1.005 0-.438-.116-.687-.348-.939-.206-.207-.58-.469-1.238-.469H23v5h3.546c.696 0 1.097-.23 1.315-.415.283-.25.426-.53.426-.96 0-.431-.155-.908-.737-1.212zm-1.906-.281h-1.428v-1.444h1.495c.956 0 .944 1.444-.067 1.444zm.288 2.157h-1.716v-1.513h1.716c.986 0 1.083 1.513 0 1.513z" fill="#FFF" fill-rule="nonzero"/></g></svg></li><li><svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-maestro"><title id="pi-maestro">Maestro</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><circle fill="#EB001B" cx="15" cy="12" r="7"/><circle fill="#00A2E5" cx="23" cy="12" r="7"/><path fill="#7375CF" d="M22 12c0-2.4-1.2-4.5-3-5.7-1.8 1.3-3 3.4-3 5.7s1.2 4.5 3 5.7c1.8-1.2 3-3.3 3-5.7z"/></svg></li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg> 3152</li><li><svg role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-mb" xmlns="http://www.w3.org/2000/svg"><title id="pi-mb">Multibanco</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M18.72 17.266h5.859c1.337 0 1.35-1.421 1.214-2.122-.075-.472-.876-.465-.965 0v.547c0 .25-.204.454-.455.455H13.144a.458.458 0 01-.456-.455v-.547c-.088-.465-.89-.472-.963 0-.137.701-.124 2.122 1.214 2.122h5.781zM14.58 3.649h9.032c.634 0 1.153.55 1.153 1.221v.584a.56.56 0 01-1.114.006v-.318a.372.372 0 00-.372-.371h-9.05a.372.372 0 00-.372.371v.312c0 .821-1.065.815-1.065.018v-.601c.003-.671.522-1.222 1.156-1.222z" fill="#3d73b9" fill-rule="evenodd"/><path d="M24.538 10.357a1.788 1.788 0 011.057 1.6c0 .984-.858 1.788-1.907 1.788h-2.943a.488.488 0 01-.5-.464V7.68a.493.493 0 01.492-.49h2.45c1.44-.004 2.343 1.553 1.626 2.801a1.855 1.855 0 01-.275.366m-2.195-.454h.933v-.011a.89.89 0 00.754-.878.89.89 0 00-.888-.888h-1.881v4.646h2.384a.92.92 0 100-1.835h-1.302a.517.517 0 010-1.032" fill="#1d1d1b" fill-rule="evenodd"/>
3152<path d="M14.953 18.986c0-.123.13-.199.236-.137.05.028.08.08.08.137v.851a.71.71 0 01-.708.709.71.71 0 01-.708-.708v-.851a.159.159 0 01.226-.156.155.155 0 01.088.156v.851a.397.397 0 00.395.393.395.395 0 00.394-.394zM16.447 20.23a.159.159 0 010 .317h-.44a.591.591 0 01-.591-.592v-.969c0-.122.13-.197.235-.136.05.027.08.08.08.136v.968c0 .152.124.277.277.277h.439zM19.778 13.187a.59.59 0 11-1.173.123l-.486-4.45-1.711 4.353v.053a.58.58 0 01-.148.168l-.009.007a.487.487 0 01-.102.073l-.011.005-.01.007H16.07a.608.608 0 01-.174.032h-.042a.593.593 0 01-.193-.04h-.05l-.01-.006-.009-.005h-.005a.538.538 0 01-.093-.062l-.02-.017-.014-.015-.036-.009-.017-.02a.66.66 0 01-.063-.093v-.006l-.005-.008-.006-.01v-.044L13.591 8.86l-.484 4.45a.59.59 0 11-1.174-.123l.572-5.248a.98.98 0 01.844-.862h.03c.051-.003.1-.003.15 0a.97.97 0 01.865.617l1.462 3.696 1.459-3.708a.97.97 0 01.866-.617.939.939 0 01.15 0h.03a.978.978 0 01.844.866zM13.792 20.371a.157.157 0 01-.209.176.16.16 0 01-.105-.139l-.134-1.136-.482 1.115a.158.158 0 01-.207.083.152.152 0 01-.082-.083l-.482-1.115-.136 1.136a.157.157 0 11-.312-.037l.158-1.319a.257.257 0 01.139-.196l.031-.015h.012a.273.273 0 01.298.097l.019.029c.002.007.005.012.009.019l.409.947.408-.956a.257.257 0 01.185-.149.793.793 0 01.048-.007h.048a.265.265 0 01.196.126.154.154 0 01.021.045.16.16 0 01.01.031v.02zM17.135 20.389a.158.158 0 01-.317 0v-1.246h-.449a.158.158 0 01-.136-.237.154.154 0 01.136-.079h1.214c.121 0 .197.132.137.237a.163.163 0 01-.137.079h-.448zM18.119 20.389a.157.157 0 01-.236.136.154.154 0 01-.08-.136v-1.403c0-.123.131-.199.237-.137a.16.16 0 01.079.137zM21.352 20.371a.158.158 0 01-.227.153.164.164 0 01-.086-.115l-.056-.446h-.542a.159.159 0 01-.155-.226.157.157 0 01.155-.089h.507l-.014-.116v-.012c-.004-.026-.012-.053-.019-.081a.383.383 0 00-.033-.081.356.356 0 00-.318-.213.307.307 0 00-.15.035.443.443 0 00-.22.352l-.099.877a.156.156 0 01-.249.109.154.154 0 01-.063-.142l.099-.878a.754.754 0 01.389-.598.668.668 0 01.293-.07.667.667 0 01.6.389.822.822 0 01.081.262.033.033 0 010 .014zM21.834 20.389a.158.158 0 11-.314 0v-1.3a.131.131 0 010-.028.152.152 0 01.012-.051l.012-.028a.23.23 0 01.124-.103l.022-.005H21.748a.219.219 0 01.166.086l.837 1.07v-1.044a.157.157 0 11.315 0v1.3a.222.222 0 01-.115.193c-.006.005-.013.007-.019.01l-.013.006a.228.228 0 01-.17-.009l-.019-.011a.157.157 0 01-.032-.024c-.007-.006-.013-.014-.021-.02l-.004-.007-.839-1.075zM24.298 20.23a.159.159 0 010 .317h-.464a.622.622 0 01-.622-.621v-.475a.625.625 0 01.622-.622h.464c.122 0 .198.132.137.238a.163.163 0 01-.137.078h-.464a.308.308 0 00-.218.093.298.298 0 00-.093.216v.474c0 .17.138.308.308.308h.465zM25.211 19.142a.432.432 0 00-.299.118.394.394 0 00-.121.28v.294a.39.39 0 00.12.279.434.434 0 00.299.118.432.432 0 00.299-.118.389.389 0 00.122-.279v-.294a.394.394 0 00-.122-.28.437.437 0 00-.299-.118m0-.315a.742.742 0 01.517.206.701.701 0 01.217.506v.294a.696.696 0 01-.217.505.743.743 0 01-.517.207.74.74 0 01-.516-.207.702.702 0 01-.218-.505v-.294a.706.706 0 01.218-.506.74.74 0 01.516-.206zM18.565 19.143v1.087h.61a.197.197 0 00.145-.332l-.006-.006a.199.199 0 00-.139-.059h-.21a.158.158 0 01-.137-.236.157.157 0 01.137-.078h.071a.2.2 0 00.119-.057.185.185 0 00-.13-.318h-.46zm-.315.534v-.686c0-.021.003-.042.012-.061a.172.172 0 01.037-.055.154.154 0 01.103-.045h.618c.278 0 .503.226.503.502a.506.506 0 01-.077.268c.033.02.064.043.093.07l.009.012a.51.51 0 01.142.353.515.515 0 01-.513.512h-.77a.157.157 0 01-.157-.158z" fill="#1d1d1b"/></svg> 3153</li><li><svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-mobilepay"><title id="pi-mobilepay">MobilePay</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill-rule="evenodd" clip-rule="evenodd" d="M20.05 15.296s2.53-.771 4.282-.776c2.896-.007 4.857 1.15 4.857 1.15V10.06s-1.97-1.02-4.453-1.09c-2.481-.068-4.687 1.012-4.687 1.012v5.313z" fill="#5A78FF"/><path fill-rule="evenodd" clip-rule="evenodd" d="M17.308 9.19l2.082 4.957V9.396s1.646-.882 3.485-1.13c1.84-.249 4.181.08 4.181.08l-1.133-2.707s-2.461-.159-4.69.794c-2.228.952-3.925 2.756-3.925 2.756z" fill="#5A78FF"/><path d="M21.428 5.676l-.82-1.99a1.818 1.818 0 00-2.37-.996l-5.663 2.334a1.818 1.818 0 00-.98 2.376l5.46 13.247a1.818 1.818 0 002.37.995l5.662-2.334a1.817 1.817 0 00.98-2.376l-.677-1.642s-.462-.027-.676-.033c-.226-.006-.644-.001-.644-.001l.88 2.136a.606.606 0 01-.326.793l-5.663 2.333a.606.606 0 01-.79-.331L12.711 6.94a.606.606 0 01.327-.792L18.7 3.814a.606.606 0 01.79.332l.83 2.011s.383-.187.59-.27c.206-.082.518-.211.518-.211z" fill="#5A78FF"/></svg></li><li><svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/>
3153<path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 0-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg></li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg> 3154</li><li><svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-twint"><title id="pi-twint">Twint</title><path d="M3 0h32a3 3 0 0 1 3 3v17.97a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V3a3 3 0 0 1 3-3z" fill="#000"/><path fill="#fff" d="M11.822 14.477a.49.49 0 0 1-.22.383L7.31 17.337a.49.49 0 0 1-.442 0L2.576 14.86a.49.49 0 0 1-.22-.383V9.522a.49.49 0 0 1 .22-.382l4.292-2.478a.49.49 0 0 1 .442 0l4.291 2.478a.49.49 0 0 1 .221.382v4.955zM35.645 9.88H31.8v.913h1.378v3.923h1.088v-3.923h1.379v-.914.001zm-17.452-.001h-3.845v.913h1.379v3.923h1.088v-3.923h1.378v-.914.001zm11.12-.154c-1.209 0-1.882.771-1.882 1.887v3.103h1.075V11.59c0-.486.289-.86.819-.86s.815.444.815.86v3.127h1.075v-3.103c0-1.116-.696-1.887-1.904-1.887h.002v-.002zm-4.061.154h1.08v4.836h-1.08V9.879zm-3.644 1.915l.036.215 1.009 2.706h.44l1.375-4.837h-1.063l-.655 2.541-.039.272-.053-.272-.875-2.54h-.35l-.876 2.54-.053.272-.039-.272-.654-2.54h-1.064l1.375 4.836h.44l1.01-2.706.036-.215"/><path fill="#ff4800" d="M9.324 12.012l-1.118 1.64-.573-.878.662-.988c.123-.177.385-.66.082-1.321a1.377 1.377 0 0 0-1.248-.796 1.377 1.377 0 0 0-1.247.796 1.27 1.27 0 0 0 .076 1.3l.674.995.495.716.75 1.145a.428.428 0 0 0 .334.19c.2 0 .322-.179.338-.201l1.754-2.597h-.979zm-2.202.042s-.293-.444-.483-.754a.556.556 0 0 1-.072-.275c0-.305.25-.556.555-.556s.556.251.556.556a.556.556 0 0 1-.072.275c-.187.31-.479.754-.479.754h-.005z"/><path fill="#007ce2" d="M6.046 13.6l-1.099-1.544s-.293-.446-.483-.756a.553.553 0 0 1-.074-.276c0-.304.25-.553.553-.553h.004a.582.582 0 0 1 .161.022l.389-.71a1.376 1.376 0 0 0-1.793.681 1.27 1.27 0 0 0 .076 1.301l1.92 2.847c.016.025.139.204.343.204a.427.427 0 0 0 .337-.2l.58-.884-.498-.734-.417.602z"/></svg></li><li><svg viewBox="-36 25 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-unionpay"><title id="pi-unionpay">Union Pay</title><path fill="#005B9A" d="M-36 46.8v.7-.7zM-18.3 25v24h-7.2c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h1.4zm12.6 0c-1.3 0-2.9 1-3.2 2.3l-4.5 19.4c-.3 1.3.5 2.3 1.8 2.3h-4.9V25
3154h10.8z"/><path fill="#E9292D" d="M-19.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3h-8.9c-.8 0-1.5-.6-1.5-1.4v-21c0-.8.7-1.6 1.5-1.6h14.7z"/><path fill="#0E73B9" d="M-5.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3H-26h.5c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h14z"/><path fill="#059DA4" d="M2 26.6v21c0 .8-.6 1.4-1.5 1.4h-12.1c-1.3 0-2.1-1.1-1.8-2.3l4.5-19.4C-8.6 26-7 25-5.7 25H.5c.9 0 1.5.7 1.5 1.6z"/><path fill="#fff" d="M-21.122 38.645h.14c.14 0 .28-.07.28-.14l.42-.63h1.19l-.21.35h1.4l-.21.63h-1.68c-.21.28-.42.42-.7.42h-.84l.21-.63m-.21.91h3.01l-.21.7h-1.19l-.21.7h1.19l-.21.7h-1.19l-.28 1.05c-.07.14 0 .28.28.21h.98l-.21.7h-1.89c-.35 0-.49-.21-.35-.63l.35-1.33h-.77l.21-.7h.77l.21-.7h-.7l.21-.7zm4.83-1.75v.42s.56-.42 1.12-.42h1.96l-.77 2.66c-.07.28-.35.49-.77.49h-2.24l-.49 1.89c0 .07 0 .14.14.14h.42l-.14.56h-1.12c-.42 0-.56-.14-.49-.35l1.47-5.39h.91zm1.68.77h-1.75l-.21.7s.28-.21.77-.21h1.05l.14-.49zm-.63 1.68c.14 0 .21 0 .21-.14l.14-.35h-1.75l-.14.56 1.54-.07zm-1.19.84h.98v.42h.28c.14 0 .21-.07.21-.14l.07-.28h.84l-.14.49c-.07.35-.35.49-.77.56h-.56v.77c0 .14.07.21.35.21h.49l-.14.56h-1.19c-.35 0-.49-.14-.49-.49l.07-2.1zm4.2-2.45l.21-.84h1.19l-.07.28s.56-.28 1.05-.28h1.47l-.21.84h-.21l-1.12 3.85h.21l-.21.77h-.21l-.07.35h-1.19l.07-.35h-2.17l.21-.77h.21l1.12-3.85h-.28m1.26 0l-.28 1.05s.49-.21.91-.28c.07-.35.21-.77.21-.77h-.84zm-.49 1.54l-.28 1.12s.56-.28.98-.28c.14-.42.21-.77.21-.77l-.91-.07zm.21 2.31l.21-.77h-.84l-.21.77h.84zm2.87-4.69h1.12l.07.42c0 .07.07.14.21.14h.21l-.21.7h-.77c-.28 0-.49-.07-.49-.35l-.14-.91zm-.35 1.47h3.57l-.21.77h-1.19l-.21.7h1.12l-.21.77h-1.26l-.28.42h.63l.14.84c0 .07.07.14.21.14h.21l-.21.7h-.7c-.35 0-.56-.07-.56-.35l-.14-.77-.56.84c-.14.21-.35.35-.63.35h-1.05l.21-.7h.35c.14 0 .21-.07.35-.21l.84-1.26h-1.05l.21-.77h1.19l.21-.7h-1.19l.21-.77zm-19.74-5.04c-.14.7-.42 1.19-.91 1.54-.49.35-1.12.56-1.89.56-.7 0-1.26-.21-1.54-.56-.21-.28-.35-.56-.35-.98 0-.14 0-.35.07-.56l.84-3.92h1.19l-.77 3.92v.28c0 .21.07.35.14.49.14.21.35.28.7.28s.7-.07.91-.28c.21-.21.42-.42.49-.77l.77-3.92h1.19l-.84 3.92m1.12-1.54h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35.14.21.21.49.14.91l-.49 2.38h-.91l.42-2.17c.07-.28.07-.49 0-.56-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.63-3.57m9.8 0h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35s.21.49.14.91l-.49 2.38h-.91l.42-2.24c.07-.21 0-.42-.07-.49-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.7-3.57m-5.81 0h.98l-.77 3.5h-.98l.77-3.5m.35-1.33h.98l-.21.84h-.98l.21-.84zm1.4 4.55c-.21-.21-.35-.56-.35-.98v-.21c0-.07 0-.21.07-.28.14-.56.35-1.05.7-1.33.35-.35.84-.49 1.33-.49.42 0 .77.14 1.05.35.21.21.35.56.35.98v.21c0 .07 0 .21-.07.28-.14.56-.35.98-.7 1.33-.35.35-.84.49-1.33.49-.35 0-.7-.14-1.05-.35m1.89-.7c.14-.21.28-.49.35-.84v-.35c0-.21-.07-.35-.14-.49a.635.635 0 0 0-.49-.21c-.28 0-.49.07-.63.28-.14.21-.28.49-.35.84v.28c0 .21.07.35.14.49.14.14.28.21.49.21.28.07.42 0 .63-.21m6.51-4.69h2.52c.49 0 .84.14 1.12.35.28.21.35.56.35.91v.28c0 .07 0 .21-.07.28-.07.49-.35.98-.7 1.26-.42.35-.84.49-1.4.49h-1.4l-.42 2.03h-1.19l1.19-5.6m.56 2.59h1.12c.28 0 .49-.07.7-.21.14-.14.28-.35.35-.63v-.28c0-.21-.07-.35-.21-.42-.14-.07-.35-.14-.7-.14h-.91l-.35 1.68zm8.68 3.71c-.35.77-.7 1.26-.91 1.47-.21.21-.63.7-1.61.7l.07-.63c.84-.28 1.26-1.4 1.54-1.96l-.28-3.78h1.19l.07 2.38.91-2.31h1.05l-2.03 4.13m-2.94-3.85l-.42.28c-.42-.35-.84-.56-1.54-.21-.98.49-1.89 4.13.91 2.94l.14.21h1.12l.7-3.29-.91.07m-.56 1.82c-.21.56-.56.84-.91.77-.28-.14-.35-.63-.21-1.19.21-.56.56-.84.91-.77.28.14.35.63.21 1.19"/></svg></li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/>
3154<path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778
315416.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 3155</li></ul></div> 3156 </div> 3157 </div> 3158</div> 3159 3160</footer> 3161<!-- END sections: footer-group --></main> 3162 <div id="shopify-block-AS0lNMVZlSktiRm1BQ__5888675206956468567" class="shopify-block shopify-app-block"> 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179<div 3180 id='loop-onstore-data' 3181 data-show-onstore-bar='false' 3182 data-apikey='test-key' 3183 data-checkoutselector='#checkout' 3184 data-replacecheckoutbutton='false' 3185 data-cartdetails='true' 3186 data-preservecart='false' 3187 data-label='in available credit' 3188 data-mobile-label='credit' 3189 data-valuesize='15' 3190 data-labelsize='10' 3191 data-buttonsize='10' 3192 data-alignment='full' 3193 data-bgcolor='rgb(0,0,0)' 3194 data-textcolor='rgb(255,255,255)' 3195 data-bumpsidecart='false' 3196 data-sidecartselector='.sidecart'></div> 3197 3198 3199</div><div id="shopify-block-AQTlTWDBDUEVwNWNoZ__10641372206048101839" class="shopify-block shopify-app-block">
3200<script> 3201 window.Rebuy = window.Rebuy || {}; 3202 window.Rebuy.customer = window.Rebuy.customer || {}; 3203 3204 window.Rebuy.market = window.Rebuy.market || {}; 3205 3206 window.Rebuy.market.country = "US"; 3207 3208 3209 window.Rebuy.market.locale = "en"; 3210 3211</script>
3211 3212 3213
3214<script async src="https://cdn.rebuyengine.com/onsite/js/rebuy.js?shop=shortylove.myshopify.com"></script>
3214 3215 3216 3217</div><div id="shopify-block-ASjFuMTFVN042UTZqb__2267199344015275021" class="shopify-block shopify-app-block"></div><div id="shopify-block-Ad2RoT24rR2tESkptV__9118640484735429602" class="shopify-block shopify-app-block"> 3218 3219</div><div id="shopify-block-AVElYbHJnemxjbVVrN__10840395464443086010" class="shopify-block shopify-app-block"> 3220 3221
3222<script> 3223 console.log("[Alia app extension] v1.0.5"); 3224 3225 const BACKEND_URL = "https://backend.alia-prod.com"; 3226 3227 window.ALIA_SHOPIFY_EXTENSION_INFO = { 3228 customerID: "", 3229 country: "US", 3230 market: "us", 3231 language: "en" 3232 } 3233 3234 if (document.readyState !== "loading") { 3235 initAlia(); 3236 } else { 3237 document.addEventListener("DOMContentLoaded", () => initAlia(), { once: true }); 3238 } 3239 3240 async function initAlia() { 3241 const url = BACKEND_URL + "/public/launcher.js?shopifyUrl=shortylove.myshopify.com"; 3242 const script = document.createElement("script"); 3243 script.src = url; 3244 script.async = true; 3245 document.head.appendChild(script); 3246 } 3247</script>
3247 3248 3249</div>
3249<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3249 3250</body> 3251</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.