PageSourceSearch

https://sonniskin.com/blogs/light-reading

html sonniskin.com collected 2026-10-08 07:23:33 UTC 308,903 bytes, 4,368 lines download raw bytes

1<!doctype html>
2<html class="js" lang="en">
3  <head>
4    
4<script>
5      var hash = window.location.hash;
6
7      if(hash == '#knicksxsonni') {
8        window.location.href = '/pages/knicksxsonni';
9      }
10    </script>
10
11
12    
13    <meta charset="utf-8">
14    <meta http-equiv="X-UA-Compatible" content="IE=edge">
15    <meta name="viewport" content="width=device-width,initial-scale=1">
16    <meta name="theme-color" content="">
17    <link rel="canonical" href="https://sonniskin.com/blogs/light-reading"><link rel="icon" type="image/png" href="//sonniskin.com/cdn/shop/files/SONNI_Favicon.png?crop=center&height=32&v=1757719778&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><link rel="stylesheet" href="https://use.typekit.net/lun4wfp.css">
18    <link rel="preconnect" href="https://fonts.googleapis.com">
19    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
20    <link href="https://fonts.googleapis.com/css2?family=Manrope:[email protected]&display=swap" rel="stylesheet">
21
22    <link href="https://unpkg.com/[email protected]/dist/aos.css" rel="stylesheet">
23    
23<script src="https://unpkg.com/[email protected]/dist/aos.js"></script>
23
24
25    
25<script type="text/javascript">
26      document.addEventListener('DOMContentLoaded', function(){
27        AOS.init(
28          { duration: 750 }
29        );
30      });
31      window.addEventListener('load', () => {
32        AOS.refresh();
33      });
34    </script>
34
35
36    <title>
37      Light Reading
38 &ndash; SONNI</title>
39
40    
41      <meta name="description" content="From SPF myths to skincare habits, Light Reading covers everything you need to know about sunscreen, skin health, and making sun protection second nature.">
42    
43
44    
45
46<meta property="og:site_name" content="SONNI">
47<meta property="og:url" content="https://sonniskin.com/blogs/light-reading">
48<meta property="og:title" content="Light Reading">
49<meta property="og:type" content="website">
50<meta property="og:description" content="From SPF myths to skincare habits, Light Reading covers everything you need to know about sunscreen, skin health, and making sun protection second nature."><meta property="og:image" content="http://sonniskin.com/cdn/shop/files/Final-Kia_MG_0087_433884e8-b7fd-4e7b-aafc-dd63ed9375af.jpg?v=1759268333">
51  <meta property="og:image:secure_url" content="https://sonniskin.com/cdn/shop/files/Final-Kia_MG_0087_433884e8-b7fd-4e7b-aafc-dd63ed9375af.jpg?v=1759268333">
52  <meta property="og:image:width" content="1799">
53  <meta property="og:image:height" content="1200"><meta name="twitter:card" content="summary_large_image">
54<meta name="twitter:title" content="Light Reading">
55<meta name="twitter:description" content="From SPF myths to skincare habits, Light Reading covers everything you need to know about sunscreen, skin health, and making sun protection second nature.">
56
57
58    
58<script src="//sonniskin.com/cdn/shop/t/13/assets/constants.js?v=132983761750457495441782903944" defer="defer"></script>
58
59    
59<script src="//sonniskin.com/cdn/shop/t/13/assets/pubsub.js?v=25310214064522200911782903944" defer="defer"></script>
59
60    
60<script src="//sonniskin.com/cdn/shop/t/13/assets/global.js?v=184345515105158409801782903944" defer="defer"></script>
60
61    
61<script src="//sonniskin.com/cdn/shop/t/13/assets/details-disclosure.js?v=13653116266235556501782903944" defer="defer"></script>
61
62    
62<script src="//sonniskin.com/cdn/shop/t/13/assets/details-modal.js?v=25581673532751508451782903944" defer="defer"></script>
62
63    
63<script src="//sonniskin.com/cdn/shop/t/13/assets/search-form.js?v=133129549252120666541782903944" defer="defer"></script>
63
64
65    
65<script src="//sonniskin.com/cdn/shop/t/13/assets/sonniskin.js?v=144715079907636132991783987995" defer="defer"></script>
65<script src="//sonniskin.com/cdn/shop/t/13/assets/animations.js?v=88693664871331136111782903944" defer="defer"></script>
65<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
65<meta name="facebook-domain-verification" content="ux3kqd6gcwucah1xc2uk8io0qr0tq5">
66<meta name="google-site-verification" content="_3FSyKcnOwK0ICwfWia0BvUro9RhZKBBazcdtmeOmXY">
67<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/93059612988/digital_wallets/dialog">
68<meta id="in-context-paypal-metadata" data-shop-id="93059612988" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
69<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" type="application/atom+xml" title="Feed" href="/blogs/light-reading.atom" />
70<link rel="next" href="/blogs/light-reading?page=2">
71<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
71
72<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
73<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=93059612988" crossorigin="anonymous"></script>
vendor: 1 bytes, line 73
73
74<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":93059612988,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/93059612988","merchantName":"SONNI","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","discover","amex","elo","jcb"],"total":{"type":"pending","label":"SONNI","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 74
74
75<script id="shopify-features" type="application/json">{"accessToken":"53e629437459c5412a98223279ff1f7a","betas":["rich-media-storefront-analytics"],"domain":"sonniskin.com","predictiveSearch":true,"shopId":93059612988,"locale":"en"}</script>
vendor: 1 bytes, line 75
75
76<script>var Shopify = Shopify || {};
77Shopify.shop = "uijg2k-cd.myshopify.com";
78Shopify.locale = "en";
79Shopify.currency = {"active":"USD","rate":"1.0"};
80Shopify.country = "US";
81Shopify.theme = {"name":"SonniSkin-2026","id":186690437436,"schema_name":"Dawn","schema_version":"15.3.0","theme_store_id":887,"role":"main"};
82Shopify.theme.handle = "null";
83Shopify.theme.style = {"id":null,"handle":null};
84Shopify.cdnHost = "sonniskin.com/cdn";
85Shopify.routes = Shopify.routes || {};
86Shopify.routes.root = "/";
87Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
88Shopify.SignInWithShop = Shopify.SignInWithShop || {};
89Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
90Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 90
90
91<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 91
91
92<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 92
92
93<script>
94  window.ShopifyPay = window.ShopifyPay || {};
95  window.ShopifyPay.apiHost = "shop.app\/pay";
96  window.ShopifyPay.redirectState = null;
97</script>
vendor: 1 bytes, line 97
97
98<script>
99  window.Shopify = window.Shopify || {};
100  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
101  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
102  window.Shopify.SignInWithShop.eligible = true;
103</script>
vendor: 1 bytes, line 103
103
104<script id="shop-js-analytics" type="application/json">{"pageType":"blog"}</script>
vendor: 1 bytes, line 104
104
105<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 105
105
106<script type="module">
107  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
108
109  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
110
111</script>
vendor: 1 bytes, line 111
111
112<script>
113  window.Shopify = window.Shopify || {};
114  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
115  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"]};
116</script>
vendor: 1 bytes, line 116
116
117<script>(function() {
118  var isLoaded = false;
119  function asyncLoad() {
120    if (isLoaded) return;
121    isLoaded = true;
122    var urls = ["https:\/\/cdn.nfcube.com\/instafeed-6e4bbf520adb7389bfd70f6e616a5ebb.js?shop=uijg2k-cd.myshopify.com","https:\/\/scrollio.bysimpli.com\/public\/scroll.js?shop=uijg2k-cd.myshopify.com","https:\/\/quiz.prehook.com\/ph-script.js?shop=uijg2k-cd.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=uijg2k-cd.myshopify.com","https:\/\/dr4qe3ddw9y32.cloudfront.net\/awin-shopify-integration-code.js?aid=121804\u0026v=shopifyApp_5.4.0\u0026ts=1773837356380\u0026shop=uijg2k-cd.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=uijg2k-cd.myshopify.com"];
123    for (var i = 0; i < urls.length; i++) {
124      var s = document.createElement('script');
125      s.type = 'text/javascript';
126      s.async = true;
127      s.src = urls[i];
128      var x = document.getElementsByTagName('script')[0];
129      x.parentNode.insertBefore(s, x);
130    }
131  };
132  if(window.attachEvent) {
133    window.attachEvent('onload', asyncLoad);
134  } else {
135    window.addEventListener('load', asyncLoad, false);
136  }
137})();</script>
vendor: 1 bytes, line 137
137
138<script id="__st">var __st={"a":93059612988,"offset":-14400,"reqid":"5ba1346c-72da-45b2-9784-9262fd9f6ab6-1791444212","pageurl":"sonniskin.com\/blogs\/light-reading","s":"blogs-115834749244","u":"a05931f01096","p":"blog","rtyp":"blog","rid":115834749244};</script>
vendor: 1 bytes, line 138
138
139<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 139
139
140<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 140
140
141<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//sonniskin.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 141
141
142<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 = "//sonniskin.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>
142<script crossorigin="anonymous" defer="defer" src="//sonniskin.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 142
142
143<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 143
143
144<script>
145  window.Shopify = window.Shopify || {};
146  window.Shopify.MCP = window.Shopify.MCP || {};
147  window.Shopify.MCP.enabled = true;
148  window.Shopify.MCP.shop = "uijg2k-cd.myshopify.com";
149  window.Shopify.MCP.mcpEndpoint = "https:\/\/sonniskin.com\/api\/mcp";
150  window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n  - What is your return policy?\n  - What is your shipping policy?\n  - What is your phone number?\n  - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question — e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}];
151</script>
vendor: 1 bytes, line 151
151
152<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("\/\/sonniskin.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
153</script>
vendor: 1 bytes, line 153
153
154<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://sonniskin.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
155</script>
vendor: 1 bytes, line 155
155
156<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
157  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);
158</script>
vendor: 1 bytes, line 158
158
159<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})}}));
160</script>
160
161<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://sonniskin.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
162<style id="shopify-accelerated-checkout-cart">
163        #shopify-buyer-consent {
164  margin-top: 1em;
165  display: inline-block;
166  width: 100%;
167}
168
169#shopify-buyer-consent.hidden {
170  display: none;
171}
172
173#shopify-subscription-policy-button {
174  background: none;
175  border: none;
176  padding: 0;
177  text-decoration: underline;
178  font-size: inherit;
179  cursor: pointer;
180}
181
182#shopify-subscription-policy-button::before {
183  box-shadow: none;
184}
185
186      </style>
187<script id="sections-script" data-sections="header" defer="defer" src="//sonniskin.com/cdn/shop/t/13/compiled_assets/scripts.js?v=88919188992105642401787674729"></script>
vendor: 1 bytes, line 187
187
188<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
188
189
190
191    <style data-shopify>
192      @font-face {
193  font-family: Assistant;
194  font-weight: 400;
195  font-style: normal;
196  font-display: swap;
197  src: url("//sonniskin.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"),
198       url("//sonniskin.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff");
199}
200
201      @font-face {
202  font-family: Assistant;
203  font-weight: 700;
204  font-style: normal;
205  font-display: swap;
206  src: url("//sonniskin.com/cdn/fonts/assistant/assistant_n7.bf44452348ec8b8efa3aa3068825305886b1c83c.woff2") format("woff2"),
207       url("//sonniskin.com/cdn/fonts/assistant/assistant_n7.0c887fee83f6b3bda822f1150b912c72da0f7b64.woff") format("woff");
208}
209
210      
211      
212      @font-face {
213  font-family: Assistant;
214  font-weight: 400;
215  font-style: normal;
216  font-display: swap;
217  src: url("//sonniskin.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"),
218       url("//sonniskin.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff");
219}
220
221
222      
223        :root,
224        .color-scheme-1 {
225          --color-background: 255,255,255;
226        
227          --gradient-background: #ffffff;
228        
229
230        
231
232        --color-foreground: 18,18,18;
233        --color-background-contrast: 191,191,191;
234        --color-shadow: 18,18,18;
235        --color-button: 18,18,18;
236        --color-button-text: 255,255,255;
237        --color-secondary-button: 255,255,255;
238        --color-secondary-button-text: 18,18,18;
239        --color-link: 18,18,18;
240        --color-badge-foreground: 18,18,18;
241        --color-badge-background: 255,255,255;
242        --color-badge-border: 18,18,18;
243        --payment-terms-background-color: rgb(255 255 255);
244      }
245      
246        
247        .color-scheme-2 {
248          --color-background: 243,243,243;
249        
250          --gradient-background: #f3f3f3;
251        
252
253        
254
255        --color-foreground: 18,18,18;
256        --color-background-contrast: 179,179,179;
257        --color-shadow: 18,18,18;
258        --color-button: 18,18,18;
259        --color-button-text: 243,243,243;
260        --color-secondary-button: 243,243,243;
261        --color-secondary-button-text: 18,18,18;
262        --color-link: 18,18,18;
263        --color-badge-foreground: 18,18,18;
264        --color-badge-background: 243,243,243;
265        --color-badge-border: 18,18,18;
266        --payment-terms-background-color: rgb(243 243 243);
267      }
268      
269        
270        .color-scheme-3 {
271          --color-background: 36,40,51;
272        
273          --gradient-background: #242833;
274        
275
276        
277
278        --color-foreground: 255,255,255;
279        --color-background-contrast: 47,52,66;
280        --color-shadow: 18,18,18;
281        --color-button: 255,255,255;
282        --color-button-text: 0,0,0;
283        --color-secondary-button: 36,40,51;
284        --color-secondary-button-text: 255,255,255;
285        --color-link: 255,255,255;
286        --color-badge-foreground: 255,255,255;
287        --color-badge-background: 36,40,51;
288        --color-badge-border: 255,255,255;
289        --payment-terms-background-color: rgb(36 40 51);
290      }
291      
292        
293        .color-scheme-4 {
294          --color-background: 18,18,18;
295        
296          --gradient-background: #121212;
297        
298
299        
300
301        --color-foreground: 255,255,255;
302        --color-background-contrast: 146,146,146;
303        --color-shadow: 18,18,18;
304        --color-button: 255,255,255;
305        --color-button-text: 18,18,18;
306        --color-secondary-button: 18,18,18;
307        --color-secondary-button-text: 255,255,255;
308        --color-link: 255,255,255;
309        --color-badge-foreground: 255,255,255;
310        --color-badge-background: 18,18,18;
311        --color-badge-border: 255,255,255;
312        --payment-terms-background-color: rgb(18 18 18);
313      }
314      
315        
316        .color-scheme-5 {
317          --color-background: 51,79,180;
318        
319          --gradient-background: #334fb4;
320        
321
322        
323
324        --color-foreground: 255,255,255;
325        --color-background-contrast: 23,35,81;
326        --color-shadow: 18,18,18;
327        --color-button: 255,255,255;
328        --color-button-text: 51,79,180;
329        --color-secondary-button: 51,79,180;
330        --color-secondary-button-text: 255,255,255;
331        --color-link: 255,255,255;
332        --color-badge-foreground: 255,255,255;
333        --color-badge-background: 51,79,180;
334        --color-badge-border: 255,255,255;
335        --payment-terms-background-color: rgb(51 79 180);
336      }
337      
338        
339        .color-scheme-2bedb933-b8cc-4802-9efc-50185fd0bc6a {
340          --color-background: 255,255,255;
341        
342          --gradient-background: #ffffff;
343        
344
345        
346
347        --color-foreground: 0,36,89;
348        --color-background-contrast: 191,191,191;
349        --color-shadow: 18,18,18;
350        --color-button: 0,36,89;
351        --color-button-text: 255,255,255;
352        --color-secondary-button: 255,255,255;
353        --color-secondary-button-text: 0,36,89;
354        --color-link: 0,36,89;
355        --color-badge-foreground: 0,36,89;
356        --color-badge-background: 255,255,255;
357        --color-badge-border: 0,36,89;
358        --payment-terms-background-color: rgb(255 255 255);
359      }
360      
361
362      body, .color-scheme-1, .color-scheme-2, .color-scheme-3, .color-scheme-4, .color-scheme-5, .color-scheme-2bedb933-b8cc-4802-9efc-50185fd0bc6a {
363        color: rgba(var(--color-foreground), 0.75);
364        background-color: rgb(var(--color-background));
365      }
366
367      :root {
368        --font-body-family: Assistant, sans-serif;
369        --font-body-style: normal;
370        --font-body-weight: 400;
371        --font-body-weight-bold: 700;
372
373        --font-heading-family: Assistant, sans-serif;
374        --font-heading-style: normal;
375        --font-heading-weight: 400;
376
377        --font-body-scale: 1.0;
378        --font-heading-scale: 1.0;
379
380        --media-padding: px;
381        --media-border-opacity: 0.05;
382        --media-border-width: 1px;
383        --media-radius: 0px;
384        --media-shadow-opacity: 0.0;
385        --media-shadow-horizontal-offset: 0px;
386        --media-shadow-vertical-offset: 4px;
387        --media-shadow-blur-radius: 5px;
388        --media-shadow-visible: 0;
389
390        --page-width: 120rem;
391        --page-width-margin: 0rem;
392
393        --product-card-image-padding: 0.0rem;
394        --product-card-corner-radius: 0.0rem;
395        --product-card-text-alignment: left;
396        --product-card-border-width: 0.0rem;
397        --product-card-border-opacity: 0.1;
398        --product-card-shadow-opacity: 0.0;
399        --product-card-shadow-visible: 0;
400        --product-card-shadow-horizontal-offset: 0.0rem;
401        --product-card-shadow-vertical-offset: 0.4rem;
402        --product-card-shadow-blur-radius: 0.5rem;
403
404        --collection-card-image-padding: 0.0rem;
405        --collection-card-corner-radius: 0.0rem;
406        --collection-card-text-alignment: left;
407        --collection-card-border-width: 0.0rem;
408        --collection-card-border-opacity: 0.1;
409        --collection-card-shadow-opacity: 0.0;
410        --collection-card-shadow-visible: 0;
411        --collection-card-shadow-horizontal-offset: 0.0rem;
412        --collection-card-shadow-vertical-offset: 0.4rem;
413        --collection-card-shadow-blur-radius: 0.5rem;
414
415        --blog-card-image-padding: 0.0rem;
416        --blog-card-corner-radius: 0.0rem;
417        --blog-card-text-alignment: left;
418        --blog-card-border-width: 0.0rem;
419        --blog-card-border-opacity: 0.1;
420        --blog-card-shadow-opacity: 0.0;
421        --blog-card-shadow-visible: 0;
422        --blog-card-shadow-horizontal-offset: 0.0rem;
423        --blog-card-shadow-vertical-offset: 0.4rem;
424        --blog-card-shadow-blur-radius: 0.5rem;
425
426        --badge-corner-radius: 4.0rem;
427
428        --popup-border-width: 1px;
429        --popup-border-opacity: 0.1;
430        --popup-corner-radius: 0px;
431        --popup-shadow-opacity: 0.05;
432        --popup-shadow-horizontal-offset: 0px;
433        --popup-shadow-vertical-offset: 4px;
434        --popup-shadow-blur-radius: 5px;
435
436        --drawer-border-width: 1px;
437        --drawer-border-opacity: 0.1;
438        --drawer-shadow-opacity: 0.0;
439        --drawer-shadow-horizontal-offset: 0px;
440        --drawer-shadow-vertical-offset: 4px;
441        --drawer-shadow-blur-radius: 5px;
442
443        --spacing-sections-desktop: 0px;
444        --spacing-sections-mobile: 0px;
445
446        --grid-desktop-vertical-spacing: 8px;
447        --grid-desktop-horizontal-spacing: 8px;
448        --grid-mobile-vertical-spacing: 4px;
449        --grid-mobile-horizontal-spacing: 4px;
450
451        --text-boxes-border-opacity: 0.1;
452        --text-boxes-border-width: 0px;
453        --text-boxes-radius: 0px;
454        --text-boxes-shadow-opacity: 0.0;
455        --text-boxes-shadow-visible: 0;
456        --text-boxes-shadow-horizontal-offset: 0px;
457        --text-boxes-shadow-vertical-offset: 4px;
458        --text-boxes-shadow-blur-radius: 5px;
459
460        --buttons-radius: 0px;
461        --buttons-radius-outset: 0px;
462        --buttons-border-width: 1px;
463        --buttons-border-opacity: 1.0;
464        --buttons-shadow-opacity: 0.0;
465        --buttons-shadow-visible: 0;
466        --buttons-shadow-horizontal-offset: 0px;
467        --buttons-shadow-vertical-offset: 4px;
468        --buttons-shadow-blur-radius: 5px;
469        --buttons-border-offset: 0px;
470
471        --inputs-radius: 0px;
472        --inputs-border-width: 1px;
473        --inputs-border-opacity: 0.55;
474        --inputs-shadow-opacity: 0.0;
475        --inputs-shadow-horizontal-offset: 0px;
476        --inputs-margin-offset: 0px;
477        --inputs-shadow-vertical-offset: 4px;
478        --inputs-shadow-blur-radius: 5px;
479        --inputs-radius-outset: 0px;
480
481        --variant-pills-radius: 40px;
482        --variant-pills-border-width: 1px;
483        --variant-pills-border-opacity: 0.55;
484        --variant-pills-shadow-opacity: 0.0;
485        --variant-pills-shadow-horizontal-offset: 0px;
486        --variant-pills-shadow-vertical-offset: 4px;
487        --variant-pills-shadow-blur-radius: 5px;
488      }
489
490      *,
491      *::before,
492      *::after {
493        box-sizing: inherit;
494      }
495
496      html {
497        box-sizing: border-box;
498        font-size: calc(var(--font-body-scale) * 62.5%);
499        height: 100%;
500      }
501
502      body {
503        display: grid;
504        grid-template-rows: auto auto 1fr auto;
505        grid-template-columns: 100%;
506        min-height: 100%;
507        margin: 0;
508        font-size: 1.5rem;
509        /* letter-spacing: 0.06rem; */
510        line-height: calc(1 + 0.8 / var(--font-body-scale));
511        font-family: var(--font-body-family);
512        font-style: var(--font-body-style);
513        font-weight: var(--font-body-weight);
514      }
515
516      @media screen and (min-width: 750px) {
517        body {
518          font-size: 1.6rem;
519        }
520      }
521    </style>
522
523    <link href="//sonniskin.com/cdn/shop/t/13/assets/base.css?v=174645804478137458521785334759" rel="stylesheet" type="text/css" media="all" />
524    <link href="//sonniskin.com/cdn/shop/t/13/assets/sonniskin.css?v=82089658717075846311787674568" rel="stylesheet" type="text/css" media="all" />
525    <link rel="stylesheet" href="//sonniskin.com/cdn/shop/t/13/assets/component-cart-items.css?v=123238115697927560811782903944" media="print" onload="this.media='all'">
526      <link rel="preload" as="font" href="//sonniskin.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2" type="font/woff2" crossorigin>
527      
528
529      <link rel="preload" as="font" href="//sonniskin.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2" type="font/woff2" crossorigin>
530      
531<link
532        rel="stylesheet"
533        href="//sonniskin.com/cdn/shop/t/13/assets/component-predictive-search.css?v=118923337488134913561782903944"
534        media="print"
535        onload="this.media='all'"
536      >
536<script>
537      if (Shopify.designMode) {
538        document.documentElement.classList.add('shopify-design-mode');
539      }
540    </script>
540
541  <!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core -->
542
543
544
545
546
547
548
549<link rel="dns-prefetch" href="https://cdn.judge.me">
550<link rel="dns-prefetch" href="https://cdn1.judge.me">
551<link rel="dns-prefetch" href="https://api.judge.me">
552
553<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"any_review","coupon_value_type":"percentage","coupon_value_percentage":15,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":true,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","hide_badge_preview_if_no_reviews":false,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
553ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"","widget_rating_filter_color":"#fbcd0a","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":false,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":false,"widget_location_format":"","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"default","review_date_format":"mm/dd/yyyy","default_sort_method":"most-recent","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"★ Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":false,"featured_carousel_show_header":true,"featured_carousel_title":"Let customers speak for us","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":250,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"branded","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":false,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":false,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":false,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":true,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":true,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"default","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":true,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_advanced_speed_features":5,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
553itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#002459","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":false,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"popup_widget_source_mode":"auto","popup_widget_page_product":"current_product","popup_widget_page_collection":"current_collection","popup_widget_page_cart":"cart_mode","popup_widget_page_home":"all","popup_widget_star_rating":"all","popup_widget_review_type":"all","popup_widget_top_up_thin_pages":true,"popup_widget_corner_styling":"soft","review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#002459","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":true,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"Summarized and selected by AI from recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"signed_in_customers","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":true,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"external_form","request_store_review_after_product_review":true,"request_review_other_products_in_order":true,"review_form_color_scheme":"custom","review_form_corner_style":"round","review_form_star_color":"#002459","review_form_text_color":"#002459","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#002459","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
553youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":true,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":true,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":false,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":false,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
553:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"We’ll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":true,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews","branding_text":"Powered by Judge.me","locale":"en","reply_name":"SONNI","shop_currency":"USD","widget_version":"3.0","footer":true,"autopublish":false,"review_dates":true,"enable_custom_form":false,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":true,"sign_in_with_
553shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"widget_events_v4_impressions_enabled":false,"widget_events_review_grain_enabled":false,"widget_events_v4_time_in_view_enabled":false,"widget_events_v4_session_key_enabled":false,"widget_events_v4_interactions_enabled":false,"widget_attribution_exposure_timestamps_enabled":false,"widget_attribution_v4_exposures_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"hostname_allowlist":"","can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"SONNI"};</script>
553 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #002459;--jdgm-secondary-color: rgba(0,36,89,0.1);--jdgm-star-color: #002459;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #002459;--jdgm-paginate-color: #002459;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #002459}.jdgm-histogram__bar-content{background-color:#002459}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#002459}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-author-all-initials{display:none !important}.jdgm-author-last-initial{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="product"]{display:none !important}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-review-widget[data-from-snippet="true"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #002459;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#002459}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'SONNI'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )}
554</style> <style class='jdgm-settings-style'></style>
555
556  
557  
558  
559  <style class='jdgm-miracle-styles'>
560  @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
560/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-spinner:empty{display:block}.jdgm-prev-badge{display:block !important}
561
562</style>
563
564
565  
566  
567   
568
569
570
571
572<script data-cfasync='false' class='jdgm-script'>
573!function(e){window.jdgm=window.jdgm||{};
574/* INF-1976 */
575var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}();
576if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;}
577jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a11176-2280-7862-971a-b99c4fd1084c/judgeme-773/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/",
578jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)?
579setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){
580!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d),
581(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!",
582a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))},
583jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest;
584t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))},
585t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll(
586".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting?
587parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"):
588jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css")
589)}))}(document);
590</script>
590
591<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a11176-2280-7862-971a-b99c4fd1084c/judgeme-773/assets/shopify_v2.css"></noscript>
592
593<!-- BEGIN app snippet: theme_fix_tags -->
593<script>
594  (function() {
595    var jdgmThemeFixes = null;
596    if (!jdgmThemeFixes) return;
597
598    // "All themes" fix: CSS and JS applied on every theme. CSS is injected
599    // before the per-theme fix so the theme-specific CSS wins the cascade.
600    // HTML is never applied globally (too risky).
601    var allThemesFix = jdgmThemeFixes['all'];
602    if (allThemesFix && allThemesFix.css) {
603      var allStyleTag = document.createElement('style');
604      allStyleTag.classList.add('jdgm-theme-fix-style-all');
605      allStyleTag.innerHTML = allThemesFix.css;
606      document.head.append(allStyleTag);
607    };
608
609    if (allThemesFix && allThemesFix.js) {
610      var allScriptTag = document.createElement('script');
611      allScriptTag.classList.add('jdgm-theme-fix-script-all');
612      allScriptTag.innerHTML = allThemesFix.js;
613      document.head.append(allScriptTag);
614    };
615
616    var thisThemeFix = jdgmThemeFixes[Shopify.theme.id];
617    if (!thisThemeFix) return;
618
619    if (thisThemeFix.html) {
620      document.addEventListener("DOMContentLoaded", function() {
621        var htmlDiv = document.createElement('div');
622        htmlDiv.classList.add('jdgm-theme-fix-html');
623        htmlDiv.innerHTML = thisThemeFix.html;
624        document.body.append(htmlDiv);
625      });
626    };
627
628    if (thisThemeFix.css) {
629      var styleTag = document.createElement('style');
630      styleTag.classList.add('jdgm-theme-fix-style');
631      styleTag.innerHTML = thisThemeFix.css;
632      document.head.append(styleTag);
633    };
634
635    if (thisThemeFix.js) {
636      var scriptTag = document.createElement('script');
637      scriptTag.classList.add('jdgm-theme-fix-script');
638      scriptTag.innerHTML = thisThemeFix.js;
639      document.head.append(scriptTag);
640    };
641  })();
642</script>
642
643<!-- END app snippet -->
644<!-- End of Judge.me Core -->
645
646
647
648<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
649
650
651
652
653
654
655
656
657
658
659
660
661  
661<script async src="https://static.klaviyo.com/onsite/js/TMLGDA/klaviyo.js?company_id=TMLGDA"></script>
661
662  
662<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>
662
663
664  
665
666
667
668
669  
669<script>
670    window.klaviyoReviewsProductDesignMode = false
671  </script>
671
672
673
674
675
676
677
678
679
680
681<!-- END app block --><!-- BEGIN app block: shopify://apps/rebuy-personalization-engine/blocks/rebuy-global-embed/a26ae9b9-933b-40bf-bbc6-bf1220bbc4dc -->
682<script>
683  window.Rebuy = window.Rebuy || {};
684  window.Rebuy.customer = window.Rebuy.customer || {};
685  
686  window.Rebuy.market = window.Rebuy.market || {};
687  
688  window.Rebuy.market.country = "US";
689  
690  
691  window.Rebuy.market.locale = "en";
692  
693</script>
693
694
695
696
697
698
699<!-- END app block --><!-- BEGIN app block: shopify://apps/instafeed/blocks/head-block/c447db20-095d-4a10-9725-b5977662c9d5 --><!-- BEGIN app snippet: storefront-script -->
700
701
702  
703    
703<script src="https://cdn.nfcube.com/instafeed-6e4bbf520adb7389bfd70f6e616a5ebb.js" defer></script>
703
704  
705
706<!-- END app snippet -->
707
708
709
710
711<!-- END app block -->
711<script src="https://cdn.shopify.com/extensions/01a11176-2280-7862-971a-b99c4fd1084c/judgeme-773/assets/loader.js" type="text/javascript" defer="defer"></script>
711
712<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
713<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: 93059612988,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "blog"};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 713
713
714<script>
715  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
716</script>
vendor: 1 bytes, line 716
716
717<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}
717).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: 93059612988,storefrontBaseUrl: "https://sonniskin.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://sonniskin.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b"],webPixelsConfigList: [{"id":"2829058364","configuration":"{\"pixelCode\":\"DAV9LN3C77UAD07R1N20\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
717,"dataSharingState":"unrestricted"},{"id":"2701361468","configuration":"{\"octaneDomain\":\"https:\\\/\\\/app.octaneai.com\",\"octaneNewDomain\":\"https:\\\/\\\/app2.octaneai.com\",\"botID\":\"au517to6lv2m9ho7\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"aace1440a9416e8b2805b96c7b2f2fe0","type":"APP","apiClientId":2012438,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2630615356","configuration":"{\"tagID\":\"2614404562806\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"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":"2585723196","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"6e6b2e32fe6866115b7e49e2ae3c75b2","type":"APP","apiClientId":5940125,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2496823612","configuration":"{\"storeId\":\"1afd773a-7a8f-4644-b75c-85f91bc7376e\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"2066bff610c5c92c0538059190a8d779","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":"2410217788","configuration":"{\"shopId\":\"39674\",\"domainStatus\":\"0\",\"domain\":\"sonniskin.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"13124b044e9b3aaaba4080cdba031853","type":"APP","apiClientId":5443297,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1973879100","configuration":"{\"advertiserId\":\"121804\",\"shopDomain\":\"uijg2k-cd.myshopify.com\",\"appVersion\":\"shopifyApp_5.4.0\"}","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":"1967391036","configuration":"{\"accountID\":\"facct_01k8vx8qe86wm2kqs7p1p6jq25\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"b512ad51efb2fbd80a0b3630d2f185b8","type":"APP","apiClientId":61620781057,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1862828348","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-X8F9WMLBVF\\\",\\\"AW-17610746753\\\",\\\"GT-WBTV3QBR\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-X8F9WMLBVF\\\",\\\"AW-17610746753\\\/K7plCI___KUbEIHXus1B\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-X8F9WMLBVF\\\",\\\"AW-17610746753\\\/WKX5CJv__KUbEIHXus1B\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-X8F9WMLBVF\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-X8F9WMLBVF\\\",\\\"AW-17610746753\\\/jJJmCJj__KUbEIHXus1B\\\",\\\"MC-XD50R2D6YQ\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-X8F9WMLBVF\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-X8F9WMLBVF\\\",\\\"AW-17610746753\\\/xdUZCIz__KUbEIHXus1B\\\",\\\"MC-XD50R2D6YQ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-X8F9WMLBVF\\\",\\\"AW-17610746753\\\/rEeFCJX__KUbEIHXus1B\\\",\\\"MC-XD50R2D6YQ\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-X8F9WMLBVF\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-X8F9WMLBVF\\\",\\\"AW-17610746753\\\/VlsvCKKJhKYbEIHXus1B\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-X8F9WMLBVF\\\",\\\"AW-17610746753\\\/bkDOCJL__KUbEIHXus1B\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-X8F9WMLBVF\\\"}],\\\"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"]}
717,"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"1821704508","configuration":"{\"accountID\":\"TMLGDA\",\"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":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"1802633532","configuration":"{\"pixel_id\":\"1307442767752776\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"1343717692","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"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":"SONNI","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"uijg2k-cd.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/sonniskin.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"9995049894204","handle":"sunday-serum-50","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51601606672700","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9995107729724","handle":"sunday-body-balm-40","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51601710907708","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9995107336508","handle":"sunday-invisible-defense-40","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51601710514492","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10000537256252","handle":"sundown-restoration-mask","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51616987447612","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10370742124860","handle":"active-days-duo","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53002962600252","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10370740158780","handle":"skin-first-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53002950738236","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
717,{"id":"10370749301052","handle":"daily-defense-trio","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53002977870140","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10363904885052","handle":"sonni-system","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52981190164796","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10144369770812","handle":"the-sonni-hat","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52102490390844","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10214669582652","handle":"the-complete-routine-gift-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52414058037564","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10214668206396","handle":"the-essentials-gift-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52414052008252","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10279342342460","handle":"sundown-restoration-mask-single","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52670639898940","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://sonniskin.com/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"186690437436","themeStoreId":"887","themePublished":"true","eventMetadataId":"47d28467-a397-448b-8a64-57f9be55f8c3","pageType":"blog","resourceId":"115834749244","shopId":"93059612988","storefrontBaseUrl":"https:\/\/sonniskin.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
717<script>
718  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
719  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
720  window.ShopifyAnalytics.meta.currency = 'USD';
721  var meta = {"page":{"pageType":"blog","resourceType":"blog","resourceId":115834749244,"requestId":"5ba1346c-72da-45b2-9784-9262fd9f6ab6-1791444212"}};
722  for (var attr in meta) {
723    window.ShopifyAnalytics.meta[attr] = meta[attr];
724  }
725</script>
vendor: 1 bytes, line 725
725
726<script class="analytics">
727  (function () {
728    var customDocumentWrite = function(content) {
729      var jquery = null;
730
731      if (window.jQuery) {
732        jquery = window.jQuery;
733      } else if (window.Checkout && window.Checkout.$) {
734        jquery = window.Checkout.$;
735      }
736
737      if (jquery) {
738        jquery('body').append(content);
739      }
740    };
741
742    var hasLoggedConversion = function(token) {
743      if (token) {
744        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
745      }
746      return false;
747    }
748
749    var setCookieIfConversion = function(token) {
750      if (token) {
751        var twoMonthsFromNow = new Date(Date.now());
752        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
753
754        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
755      }
756    }
757
758    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
759    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
760    if (trekkie.integrations) {
761      return;
762    }
763    trekkie.methods = [
764      'identify',
765      'page',
766      'ready',
767      'track',
768      'trackForm',
769      'trackLink'
770    ];
771    trekkie.factory = function(method) {
772      return function() {
773        var args = Array.prototype.slice.call(arguments);
774        args.unshift(method);
775        trekkie.push(args);
776        if (method == 'track' || method == 'page') {
777          var pageUrl;
778          try {
779            pageUrl = window.location.href;
780          } catch (e) {}
781          var pageReferrer;
782          try {
783            pageReferrer = document.referrer;
784          } catch (e) {}
785          try {
786            if (window.__TREKKIE_SHIM_QUEUE == null) {
787              window.__TREKKIE_SHIM_QUEUE = [];
788            }
789            window.__TREKKIE_SHIM_QUEUE.push({
790              from: 'trekkie-stub',
791              method: method,
792              args: args.slice(1),
793              pageContext: {
794                url: pageUrl,
795                referrer: pageReferrer
796              }
797            });
798          } catch (e) {
799            // no-op
800          }
801        }
802        return trekkie;
803      };
804    };
805    for (var i = 0; i < trekkie.methods.length; i++) {
806      var key = trekkie.methods[i];
807      trekkie[key] = trekkie.factory(key);
808    }
809    trekkie.load = function(config) {
810      trekkie.config = config || {};
811      trekkie.config.initialDocumentCookie = document.cookie;
812      var first = document.getElementsByTagName('script')[0];
813var script = document.createElement('script');
814script.type = 'text/javascript';
815script.onerror = function(e) {
816  var scriptFallback = document.createElement('script');
817  scriptFallback.type = 'text/javascript';
818  scriptFallback.onerror = function(error) {
819          var Monorail = {
820      produce: function produce(monorailDomain, schemaId, payload) {
821        var currentMs = new Date().getTime();
822        var event = {
823          schema_id: schemaId,
824          payload: payload,
825          metadata: {
826            event_created_at_ms: currentMs,
827            event_sent_at_ms: currentMs
828          }
829        };
830        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
831      },
832      sendRequest: function sendRequest(endpointUrl, payload) {
833        // Try the sendBeacon API
834        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
835          var blobData = new window.Blob([payload], {
836            type: 'text/plain'
837          });
838
839          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
840            return true;
841          } // sendBeacon was not successful
842
843        } // XHR beacon
844
845        var xhr = new XMLHttpRequest();
846
847        try {
848          xhr.open('POST', endpointUrl);
849          xhr.setRequestHeader('Content-Type', 'text/plain');
850          xhr.send(payload);
851        } catch (e) {
852          console.log(e);
853        }
854
855        return false;
856      },
857      isIos12: function isIos12() {
858        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
859      }
860    };
861    Monorail.produce('monorail-edge.shopifysvc.com',
862      'trekkie_storefront_load_errors/1.1',
863      {shop_id: 93059612988,
864      theme_id: 186690437436,
865      app_name: "storefront",
866      context_url: window.location.href,
867      source_url: "//sonniskin.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"});
868
869  };
870  scriptFallback.async = true;
871  scriptFallback.src = '//sonniskin.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
872  first.parentNode.insertBefore(scriptFallback, first);
873};
874script.async = true;
875script.src = '//sonniskin.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
876first.parentNode.insertBefore(script, first);
877
878    };
879    trekkie.load(
880      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":93059612988,"isMerchantRequest":null,"themeId":186690437436,"themeCityHash":"3752414525458678883","contentLanguage":"en","currency":"USD","eventMetadataId":"47d28467-a397-448b-8a64-57f9be55f8c3"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
881    );
882
883    var loaded = false;
884    trekkie.ready(function() {
885      if (loaded) return;
886      loaded = true;
887
888      window.ShopifyAnalytics.lib = window.trekkie;
889
890      var originalDocumentWrite = document.write;
891      document.write = customDocumentWrite;
892      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
893      document.write = originalDocumentWrite;
894
895      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
896      var token = match? match[1]: undefined;
897      if (!hasLoggedConversion(token)) {
898        setCookieIfConversion(token);
899        
900      }
901    });
902
903    window.ShopifyAnalytics.lib.page(null,{"pageType":"blog","resourceType":"blog","resourceId":115834749244,"requestId":"5ba1346c-72da-45b2-9784-9262fd9f6ab6-1791444212","shopifyEmitted":true});
904
905    var eventsListenerScript = document.createElement('script');
906    eventsListenerScript.async = true;
907    eventsListenerScript.src = "//sonniskin.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
908    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
909})();</script>
vendor: 1 bytes, line 909
909
910<script
911  defer
912  src="https://sonniskin.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.0.min.js"
913  data-application="storefront-renderer"
914  data-shop-id="93059612988"
915  data-render-region="gcp-us-central1"
916  data-page-type="blog"
917  data-theme-instance-id="186690437436"
918  data-theme-name="Dawn"
919  data-theme-version="15.3.0"
920  data-monorail-region="shop_domain"
921  data-resource-timing-sampling-rate="10"
922  data-shs="true"
923  data-shs-beacon="true"
924  data-shs-export-with-fetch="true"
925  data-shs-logs-sample-rate="1"
926  data-shs-beacon-endpoint="https://sonniskin.com/api/collect"
927></script>
927
928<meta name="shopify-y" content="7ea14357-afce-4e04-9b13-48c3bc6b3d08" data-expiration="1823001812000"><meta name="shopify-s" content="b6c665bf-dcb4-4f89-a606-22f086b30a95" data-expiration="1791446012000"><meta name="new-cookie-storage-activated" content="t">
929</head>
930
931  <body class="gradient"data-password-key="c29ubmlmYW1pbHkyNQ==">
932
933    
934
935    <a class="skip-to-content-link button visually-hidden" href="#MainContent">
936      Skip to content
937    </a><!-- BEGIN sections: header-group -->
938<div id="shopify-section-sections--26813932667196__announcement-bar" class="shopify-section shopify-section-group-header-group announcement-bar-section"><link href="//sonniskin.com/cdn/shop/t/13/assets/component-slideshow.css?v=17933591812325749411782903944" rel="stylesheet" type="text/css" media="all" />
939<link href="//sonniskin.com/cdn/shop/t/13/assets/component-slider.css?v=14039311878856620671782903944" rel="stylesheet" type="text/css" media="all" />
940
941  <link href="//sonniskin.com/cdn/shop/t/13/assets/component-list-social.css?v=35792976012981934991782903944" rel="stylesheet" type="text/css" media="all" />
942
943
944<div
945  class="utility-bar color-scheme-5 gradient"
946>
947  <div class="page-width utility-bar__grid"><slideshow-component
948        class="announcement-bar"
949        role="region"
950        aria-roledescription="Carousel"
951        aria-label="Announcement bar"
952      >
953        <div class="announcement-bar-slider slider-buttons">
954          <button
955            type="button"
956            class="slider-button slider-button--prev"
957            name="previous"
958            aria-label="Previous announcement"
959            aria-controls="Slider-sections--26813932667196__announcement-bar"
960          >
961            <span class="svg-wrapper"><svg class="icon icon-caret" width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
962<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="white"/>
963<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="#002459"/>
964<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="white"/>
965<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="#002459"/>
966</svg>
967</span>
968          </button>
969          <div
970            class="grid grid--1-col slider slider--everywhere"
971            id="Slider-sections--26813932667196__announcement-bar"
972            aria-live="polite"
973            aria-atomic="true"
974            data-autoplay="false"
975            data-speed="5"
976          ><div
977                class="slideshow__slide slider__slide grid__item grid--1-col"
978                id="Slide-sections--26813932667196__announcement-bar-1"
979                
980                role="group"
981                aria-roledescription="Announcement"
982                aria-label="1 of 2"
983                tabindex="-1"
984              >
985                <div
986                  class="announcement-bar__announcement"
987                  role="region"
988                  aria-label="Announcement"
989                ><p class="announcement-bar__message body2-text">
990                      <span>Sign up &amp; get 10% off your first order!</span></p></div>
991              </div><div
992                class="slideshow__slide slider__slide grid__item grid--1-col"
993                id="Slide-sections--26813932667196__announcement-bar-2"
994                
995                role="group"
996                aria-roledescription="Announcement"
997                aria-label="2 of 2"
998                tabindex="-1"
999              >
1000                <div
1001                  class="announcement-bar__announcement"
1002                  role="region"
1003                  aria-label="Announcement"
1004                ><p class="announcement-bar__message body2-text">
1005                      <span>Free shipping on orders $55+</span></p></div>
1006              </div></div>
1007          <button
1008            type="button"
1009            class="slider-button slider-button--next"
1010            name="next"
1011            aria-label="Next announcement"
1012            aria-controls="Slider-sections--26813932667196__announcement-bar"
1013          >
1014            <span class="svg-wrapper"><svg class="icon icon-caret" width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
1015<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="white"/>
1016<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="#002459"/>
1017<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="white"/>
1018<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="#002459"/>
1019</svg>
1020</span>
1021          </button>
1022        </div>
1023      </slideshow-component><div class="localization-wrapper">
1024</div>
1025  </div>
1026</div>
1027
1028
1029</div><div id="shopify-section-sections--26813932667196__header" class="shopify-section shopify-section-group-header-group section-header"><link rel="stylesheet" href="//sonniskin.com/cdn/shop/t/13/assets/component-list-menu.css?v=151968516119678728991782903944" media="print" onload="this.media='all'">
1030<link rel="stylesheet" href="//sonniskin.com/cdn/shop/t/13/assets/component-search.css?v=165164710990765432851782903944" media="print" onload="this.media='all'">
1031<link rel="stylesheet" href="//sonniskin.com/cdn/shop/t/13/assets/component-menu-drawer.css?v=147478906057189667651782903944" media="print" onload="this.media='all'">
1032<link
1033  rel="stylesheet"
1034  href="//sonniskin.com/cdn/shop/t/13/assets/component-cart-notification.css?v=54116361853792938221782903944"
1035  media="print"
1036  onload="this.media='all'"
1037><link rel="stylesheet" href="//sonniskin.com/cdn/shop/t/13/assets/component-price.css?v=70172745017360139101782903944" media="print" onload="this.media='all'"><style>
1038  header-drawer {
1039    justify-self: start;
1040
1041    @media (min-width: 990px) {
1042      margin-left: -1.2rem;  
1043    }
1044  }@media screen and (min-width: 990px) {
1045      header-drawer {
1046        display: none;
1047      }
1048    }.menu-drawer-container {
1049    display: flex;
1050  }
1051
1052  .list-menu {
1053    list-style: none;
1054    padding: 0;
1055    margin: 0;
1056  }
1057
1058  .list-menu--inline {
1059    display: inline-flex;
1060    flex-wrap: wrap;
1061  }
1062
1063  summary.list-menu__item {
1064    padding-right: 2.7rem;
1065  }
1066
1067  .list-menu__item {
1068    display: flex;
1069    align-items: center;
1070    line-height: calc(1 + 0.3 / var(--font-body-scale));
1071  }
1072
1073  .list-menu__item--link {
1074    text-decoration: none;
1075    padding-bottom: 1rem;
1076    padding-top: 1rem;
1077    line-height: calc(1 + 0.8 / var(--font-body-scale));
1078  }
1079
1080  @media screen and (min-width: 750px) {
1081    .list-menu__item--link {
1082      padding-bottom: 0.5rem;
1083      padding-top: 0.5rem;
1084    }
1085  }
1086</style><style data-shopify>
1087
1088  .section-header {
1089    position: sticky; /* This is for fixing a Safari z-index issue. PR #2147 */
1090    /* position: fixed;  Custom Sonni 
1091    margin-bottom: 9px;*/
1092  }
1093
1094  /* @media screen and (min-width: 750px) {
1095    .section-header {
1096      margin-bottom: 12px;
1097    }
1098  }*/
1099
1100  @media screen and (min-width: 990px) {
1101    .header {
1102      padding-top: 20px;
1103      padding-bottom: 20px;
1104    }
1105  }</style>
1105<script src="//sonniskin.com/cdn/shop/t/13/assets/cart-notification.js?v=133508293167896966491782903944" defer="defer"></script>
1105
1106
1107<sticky-header
1108  
1109    data-sticky-type="always"
1110  
1111  class="header-wrapper  color-scheme-1 gradient"
1112><header class="header header--middle-center header--mobile-center container-fluid header--has-menu header--has-social header--has-account">
1113
1114<header-drawer data-breakpoint="tablet">
1115  <details id="Details-menu-drawer-container" class="menu-drawer-container">
1116    <summary
1117      class="header__icon header__icon--menu header__icon--summary link focus-inset"
1118      aria-label="Menu"
1119    >
1120      <span><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-hamburger" viewBox="0 0 18 16"><path fill="currentColor" d="M1 .5a.5.5 0 1 0 0 1h15.71a.5.5 0 0 0 0-1zM.5 8a.5.5 0 0 1 .5-.5h15.71a.5.5 0 0 1 0 1H1A.5.5 0 0 1 .5 8m0 7a.5.5 0 0 1 .5-.5h15.71a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5"/></svg>
1121<svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
1122</span>
1123    </summary>
1124    <div id="menu-drawer" class="gradient menu-drawer motion-reduce color-scheme-1">
1125      <div class="menu-drawer__inner-container">
1126        <div class="menu-drawer__navigation-container">
1127          <nav class="menu-drawer__navigation">
1128            <ul class="menu-drawer__menu has-submenu list-menu" role="list"><li><details id="Details-menu-drawer-menu-item-1">
1129                      <summary
1130                        id="HeaderDrawer-shop"
1131                        class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
1132                      >
1133                        Shop
1134                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1134ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1135</span>
1136                        <span class="svg-wrapper"><svg class="icon icon-caret" width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
1137<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="white"/>
1138<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="#002459"/>
1139<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="white"/>
1140<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="#002459"/>
1141</svg>
1142</span>
1143                      </summary>
1144                      <div
1145                        id="link-shop"
1146                        class="menu-drawer__submenu has-submenu gradient motion-reduce"
1147                        tabindex="-1"
1148                      >
1149                        <div class="menu-drawer__inner-submenu">
1150                          <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1151                            <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1151ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1152</span>
1153                            Shop
1154                          </button>
1155                          <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a
1156                                    id="HeaderDrawer-shop-shop-all"
1157                                    href="/collections/all"
1158                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1159                                    
1160                                  >
1161                                    Shop All
1162                                  </a></li><li><a
1163                                    id="HeaderDrawer-shop-sets"
1164                                    href="/collections/sets"
1165                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1166                                    
1167                                  >
1168                                    Sets
1169                                  </a></li><li><a
1170                                    id="HeaderDrawer-shop-sunday"
1171                                    href="/collections/sunday"
1172                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1173                                    
1174                                  >
1175                                    SunDay
1176                                  </a></li><li><a
1177                                    id="HeaderDrawer-shop-sundown"
1178                                    href="/collections/sundown"
1179                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1180                                    
1181                                  >
1182                                    SunDown
1183                                  </a></li><li><a
1184                                    id="HeaderDrawer-shop-gifts-more"
1185                                    href="/collections/gifts"
1186                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1187                                    
1188                                  >
1189                                    Gifts &amp; More
1190                                  </a></li></ul>
1191                        </div>
1192                      </div>
1193                    </details></li><li><a
1194                      id="HeaderDrawer-sets"
1195                      href="/collections/sets"
1196                      class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
1197                      
1198                    >
1199                      Sets
1200                    </a></li><li><details id="Details-menu-drawer-menu-item-3">
1201                      <summary
1202                        id="HeaderDrawer-learn"
1203                        class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
1204                      >
1205                        Learn
1206                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1206ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1207</span>
1208                        <span class="svg-wrapper"><svg class="icon icon-caret" width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
1209<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="white"/>
1210<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="#002459"/>
1211<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="white"/>
1212<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="#002459"/>
1213</svg>
1214</span>
1215                      </summary>
1216                      <div
1217                        id="link-learn"
1218                        class="menu-drawer__submenu has-submenu gradient motion-reduce"
1219                        tabindex="-1"
1220                      >
1221                        <div class="menu-drawer__inner-submenu">
1222                          <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1223                            <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1223ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1224</span>
1225                            Learn
1226                          </button>
1227                          <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a
1228                                    id="HeaderDrawer-learn-science"
1229                                    href="/pages/science"
1230                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1231                                    
1232                                  >
1233                                    Science
1234                                  </a></li><li><a
1235                                    id="HeaderDrawer-learn-sustainability"
1236                                    href="/pages/sustainability"
1237                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1238                                    
1239                                  >
1240                                    Sustainability
1241                                  </a></li><li><a
1242                                    id="HeaderDrawer-learn-faq"
1243                                    href="/pages/faqs"
1244                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1245                                    
1246                                  >
1247                                    FAQ
1248                                  </a></li></ul>
1249                        </div>
1250                      </div>
1251                    </details></li><li><a
1252                      id="HeaderDrawer-about"
1253                      href="/pages/about-us"
1254                      class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
1255                      
1256                    >
1257                      About
1258                    </a></li><li><a id="HeaderDrawer-product-finder" href="/pages/product-finder" class="menu-drawer__menu-item list-menu__item link link--text focus-inset">SPF Finder</a></li>
1259              <li><a id="HeaderDrawer-light-reading" href="/blogs/light-reading" class="menu-drawer__menu-item list-menu__item link link--text focus-inset">Blog</a></li>
1260
1261              <li><a href="https://sonniskin.com/customer_authentication/redirect?locale=en&region_country=US" class="menu-drawer__menu-item list-menu__item link link--text focus-inset">Login</a></li>
1262
1263            </ul>
1264          </nav>
1265          <div class="menu-drawer__utility-links"><a
1266                href="https://sonniskin.com/customer_authentication/redirect?locale=en&region_country=US"
1267                class="menu-drawer__account link focus-inset h5 medium-hide large-up-hide"
1268                rel="nofollow"
1269              ><span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-account" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M6 4.5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m3-4a4 4 0 1 0 0 8 4 4 0 0 0 0-8m5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15M9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35" clip-rule="evenodd"/></svg>
1270</span>Log in</a><div class="menu-drawer__localization header-localization">
1271</div><ul class="list list-social list-unstyled" role="list"><li class="list-social__item">
1272                  <a href="https://instagram.com/sonniskin" class="list-social__link link">
1273                    <span class="svg-wrapper"><svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1274<g clip-path="url(#clip0_150_565)">
1275<path d="M10.6 1.80078C13.3257 1.80078 13.6485 1.8125 14.7204 1.85937C15.7167 1.90234 16.2546 2.06641 16.6133 2.20313C17.0875 2.38281 17.4302 2.60156 17.7849 2.94922C18.1435 3.30078 18.3627 3.63281 18.546 4.09766C18.6855 4.44922 18.8528 4.98047 18.8967 5.95312C18.9445 7.00781 18.9565 7.32422 18.9565 9.99219C18.9565 12.6641 18.9445 12.9805 18.8967 14.0313C18.8528 15.0078 18.6855 15.5352 18.546 15.8867C18.3627 16.3516 18.1395 16.6875 17.7849 17.0352C17.4262 17.3867 17.0875 17.6016 16.6133 17.7813C16.2546 17.918 15.7127 18.082 14.7204 18.125C13.6445 18.1719 13.3217 18.1836 10.6 18.1836C7.87425 18.1836 7.55146 18.1719 6.47951 18.125C5.48326 18.082 4.94529 17.918 4.58664 17.7813C4.11243 17.6016 3.76972 17.3828 3.41506 17.0352C3.05641 16.6836 2.83724 16.3516 2.65393 15.8867C2.51446 15.5352 2.34709 15.0039 2.30325 14.0313C2.25543 12.9766 2.24348 12.6602 2.24348 9.99219C2.24348 7.32031 2.25543 7.00391 2.30325 5.95312C2.34709 4.97656 2.51446 4.44922 2.65393 4.09766C2.83724 3.63281 3.0604 3.29688 3.41506 2.94922C3.77371 2.59766 4.11243 2.38281 4.58664 2.20313C4.94529 2.06641 5.48725 1.90234 6.47951 1.85937C7.55146 1.8125 7.87425 1.80078 10.6 1.80078ZM10.6 0C7.83041 0 7.48372 0.0117187 6.39582 0.0585938C5.31191 0.105469 4.56672 0.277344 3.92115 0.523438C3.24769 0.78125 2.67784 1.12109 2.11198 1.67969C1.54212 2.23438 1.19543 2.79297 0.932424 3.44922C0.681371 4.08594 0.506032 4.8125 0.458212 5.875C0.410392 6.94531 0.398438 7.28516 0.398438 10C0.398438 12.7148 0.410392 13.0547 0.458212 14.1211C0.506032 15.1836 0.681371 15.9141 0.932424 16.5469C1.19543 17.207 1.54212 17.7656 2.11198 18.3203C2.67784 18.875 3.24769 19.2188 3.91717 19.4727C4.56672 19.7188 5.30792 19.8906 6.39184 19.9375C7.47973 19.9844 7.82643 19.9961 10.596 19.9961C13.3655 19.9961 13.7122 19.9844 14.8001 19.9375C15.884 19.8906 16.6292 19.7188 17.2748 19.4727C17.9443 19.2188 18.5141 18.875 19.08 18.3203C19.6459 17.76
127556 19.9965 17.207 20.2556 16.5508C20.5066 15.9141 20.682 15.1875 20.7298 14.125C20.7776 13.0586 20.7895 12.7188 20.7895 10.0039C20.7895 7.28906 20.7776 6.94922 20.7298 5.88281C20.682 4.82031 20.5066 4.08984 20.2556 3.45703C20.0045 2.79297 19.6578 2.23438 19.088 1.67969C18.5221 1.125 17.9522 0.78125 17.2828 0.527344C16.6332 0.28125 15.892 0.109375 14.8081 0.0625C13.7162 0.0117188 13.3695 0 10.6 0Z" fill="white"/>
1276<path d="M10.6001 4.86328C7.70701 4.86328 5.35986 7.16406 5.35986 10C5.35986 12.8359 7.70701 15.1367 10.6001 15.1367C13.4932 15.1367 15.8403 12.8359 15.8403 10C15.8403 7.16406 13.4932 4.86328 10.6001 4.86328ZM10.6001 13.332C8.72318 13.332 7.20092 11.8398 7.20092 10C7.20092 8.16016 8.72318 6.66797 10.6001 6.66797C12.477 6.66797 13.9993 8.16016 13.9993 10C13.9993 11.8398 12.477 13.332 10.6001 13.332Z" fill="white"/>
1277<path d="M17.271 4.66016C17.271 5.32422 16.7211 5.85938 16.0476 5.85938C15.3702 5.85938 14.8242 5.32031 14.8242 4.66016C14.8242 3.99609 15.3741 3.46094 16.0476 3.46094C16.7211 3.46094 17.271 4 17.271 4.66016Z" fill="white"/>
1278</g>
1279<defs>
1280<clipPath id="clip0_150_565">
1281<rect width="20.4031" height="20" fill="white" transform="translate(0.398438)"/>
1282</clipPath>
1283</defs>
1284</svg>
1285</span>
1286                    <span class="visually-hidden">Instagram</span>
1287                  </a>
1288                </li><li class="list-social__item">
1289                  <a href="https://tiktok.com/@sonniskin" class="list-social__link link">
1290                    <span class="svg-wrapper"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1291<path d="M16.3241 5.57175C15.4919 5.39373 14.7383 4.95454 14.1732 4.31821C13.608 3.68188 13.2609 2.88167 13.1824 2.03425V1.66675H10.3116V13.0601C10.3098 13.5645 10.1501 14.0556 9.85474 14.4645C9.55943 14.8735 9.14341 15.1796 8.66515 15.3398C8.18689 15.5001 7.67044 15.5065 7.18836 15.3581C6.70628 15.2097 6.2828 14.914 5.97745 14.5126C5.66735 14.1044 5.49533 13.608 5.48633 13.0955C5.47734 12.583 5.63183 12.0809 5.92742 11.6621C6.223 11.2433 6.64431 10.9295 7.13024 10.7663C7.61617 10.603 8.14146 10.5988 8.62995 10.7542V7.83758C7.54066 7.687 6.43154 7.88066 5.45774 8.39147C4.48393 8.90228 3.69415 9.7047 3.19884 10.6865C2.70354 11.6683 2.5275 12.7803 2.69535 13.8671C2.86319 14.9538 3.36653 15.961 4.13495 16.7476C4.86774 17.4974 5.80735 18.0118 6.83383 18.2252C7.8603 18.4386 8.92708 18.3412 9.89799 17.9456C10.8689 17.55 11.6999 16.874 12.2849 16.004C12.8699 15.134 13.1824 14.1093 13.1824 13.0609V7.23925C14.3427 8.06869 15.7337 8.51345 17.1599 8.51091V5.65841C16.8791 5.65876 16.5989 5.62971 16.3241 5.57175Z" fill="white"/>
1292</svg>
1293</span>
1294                    <span class="visually-hidden">TikTok</span>
1295                  </a>
1296                </li></ul>
1297          </div>
1298        </div>
1299      </div>
1300    </div>
1301  </details>
1302</header-drawer>
1303
1304
1305<nav class="header__inline-menu">
1306  <ul class="list-menu list-menu--inline" role="list"><li><header-menu>
1307            <details id="Details-HeaderMenu-1">
1308              <summary
1309                id="HeaderMenu-shop"
1310                class="header__menu-item list-menu__item link focus-inset"
1311              >
1312                <span
1313                >Shop</span><svg class="icon icon-caret" width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
1314<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="white"/>
1315<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="#002459"/>
1316<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="white"/>
1317<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="#002459"/>
1318</svg>
1319</summary>
1320              <ul
1321                id="HeaderMenu-MenuList-1"
1322                class="header__submenu list-menu list-menu--disclosure color-scheme-1 gradient caption-large motion-reduce global-settings-popup"
1323                role="list"
1324                tabindex="-1"
1325              ><li><a
1326                        id="HeaderMenu-shop-shop-all"
1327                        href="/collections/all"
1328                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1329                        
1330                      >
1331                        Shop All
1332                      </a></li><li><a
1333                        id="HeaderMenu-shop-sets"
1334                        href="/collections/sets"
1335                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1336                        
1337                      >
1338                        Sets
1339                      </a></li><li><a
1340                        id="HeaderMenu-shop-sunday"
1341                        href="/collections/sunday"
1342                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1343                        
1344                      >
1345                        SunDay
1346                      </a></li><li><a
1347                        id="HeaderMenu-shop-sundown"
1348                        href="/collections/sundown"
1349                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1350                        
1351                      >
1352                        SunDown
1353                      </a></li><li><a
1354                        id="HeaderMenu-shop-gifts-more"
1355                        href="/collections/gifts"
1356                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1357                        
1358                      >
1359                        Gifts &amp; More
1360                      </a></li></ul>
1361            </details>
1362          </header-menu></li><li><a
1363            id="HeaderMenu-sets"
1364            href="/collections/sets"
1365            class="header__menu-item list-menu__item link link--text focus-inset"
1366            
1367          >
1368            <span
1369            >Sets</span>
1370          </a></li><li><header-menu>
1371            <details id="Details-HeaderMenu-3">
1372              <summary
1373                id="HeaderMenu-learn"
1374                class="header__menu-item list-menu__item link focus-inset"
1375              >
1376                <span
1377                >Learn</span><svg class="icon icon-caret" width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
1378<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="white"/>
1379<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="#002459"/>
1380<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="white"/>
1381<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="#002459"/>
1382</svg>
1383</summary>
1384              <ul
1385                id="HeaderMenu-MenuList-3"
1386                class="header__submenu list-menu list-menu--disclosure color-scheme-1 gradient caption-large motion-reduce global-settings-popup"
1387                role="list"
1388                tabindex="-1"
1389              ><li><a
1390                        id="HeaderMenu-learn-science"
1391                        href="/pages/science"
1392                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1393                        
1394                      >
1395                        Science
1396                      </a></li><li><a
1397                        id="HeaderMenu-learn-sustainability"
1398                        href="/pages/sustainability"
1399                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1400                        
1401                      >
1402                        Sustainability
1403                      </a></li><li><a
1404                        id="HeaderMenu-learn-faq"
1405                        href="/pages/faqs"
1406                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1407                        
1408                      >
1409                        FAQ
1410                      </a></li></ul>
1411            </details>
1412          </header-menu></li><li><a
1413            id="HeaderMenu-about"
1414            href="/pages/about-us"
1415            class="header__menu-item list-menu__item link link--text focus-inset"
1416            
1417          >
1418            <span
1419            >About</span>
1420          </a></li></ul>
1421</nav>
1422
1423<a href="/" class="header__heading-link link link--text focus-inset">
1424        <svg width="170" height="40" viewBox="0 0 170 40" fill="none" xmlns="http://www.w3.org/2000/svg">
1425<path d="M123.613 5.08664C123.613 5.73182 123.581 6.37701 123.62 7.01892C123.81 10.3038 123.905 13.6017 124.252 16.8735C124.576 19.9226 125.139 22.9454 125.663 25.9716C126.187 28.9912 126.806 31.9976 127.366 35.0107C127.511 35.7836 127.619 36.5663 127.701 37.3491C127.828 38.5608 127.258 39.2289 126.053 39.2519C124.563 39.2813 123.07 39.2584 121.465 39.2584C122.834 35.9965 122.441 32.6854 122.46 29.4235C122.5 22.916 122.5 16.4085 122.46 9.90095C122.444 6.85189 122.84 3.75043 121.481 0.779963C123.017 0.779963 124.491 0.632587 125.909 0.845464C126.597 0.950265 127.357 1.60855 127.792 2.22098C131.143 6.93704 134.434 11.6924 137.719 16.4543C141.462 21.8778 145.183 27.3176 148.916 32.7444C149.388 33.4288 149.892 34.0871 150.38 34.7585C150.419 34.7323 150.495 34.7028 150.495 34.6766C150.439 32.2302 150.439 29.7804 150.302 27.3405C150.197 25.4443 149.971 23.548 149.709 21.6649C149.352 19.0842 148.942 16.51 148.497 13.9424C147.924 10.6542 147.292 7.3759 146.689 4.0943C146.581 3.50807 146.457 2.91856 146.427 2.32906C146.375 1.37275 146.902 0.747213 147.839 0.707913C149.145 0.655512 150.455 0.688262 151.766 0.684987C152.034 0.684987 152.306 0.684987 152.673 0.684987C152.466 1.42187 152.214 2.06705 152.113 2.73844C151.949 3.83558 151.795 4.94909 151.792 6.05605C151.766 15.2589 151.772 24.4618 151.779 33.6646C151.779 35.5085 151.834 37.3523 152.751 39.1602C152.421 39.2027 152.198 39.2551 151.972 39.2584C151.045 39.2682 150.115 39.2191 149.191 39.2748C147.966 39.3436 147.118 38.7868 146.46 37.8272C143.273 33.1767 140.1 28.5196 136.894 23.8821C133.327 18.7272 129.724 13.5952 126.142 8.45011C125.346 7.30384 124.576 6.1412 123.793 4.98512C123.731 5.02114 123.669 5.
142505389 123.607 5.08992L123.613 5.08664Z" fill="white"/>
1426<path d="M35.48 18.4456C35.5946 12.8158 37.612 8.04411 42.0137 4.42846C44.2964 2.55186 46.9295 1.33682 49.8181 0.61304C52.5953 -0.0845433 55.3693 -0.222095 58.1465 0.383787C60.5701 0.911069 62.8233 1.86411 64.8505 3.36407C68.3614 5.96118 70.6768 9.38032 72.1637 13.4381C73.1593 16.1466 73.7685 18.9303 73.68 21.7993C73.513 27.095 71.5676 31.6473 67.5262 35.1811C65.1027 37.3 62.2534 38.6264 59.1356 39.4124C56.5876 40.0543 54.0102 40.2083 51.4458 39.6843C48.6882 39.121 46.1468 38.0304 43.887 36.2782C40.553 33.6909 38.3391 30.3111 36.9308 26.4204C36.0073 23.8724 35.4112 21.2098 35.48 18.4489V18.4456ZM68.5677 24.6322C68.3417 23.2829 68.1256 21.1377 67.595 19.0712C66.8352 16.1105 65.7119 13.2743 64.094 10.6347C61.7491 6.80614 58.8736 3.6097 54.4392 2.23091C50.5943 1.03552 47.1097 1.82808 44.1818 4.58566C41.5716 7.04849 40.7692 10.3137 40.6316 13.7427C40.4875 17.283 41.2932 20.689 42.4853 24.0066C43.7855 27.6223 45.5376 30.9759 48.2821 33.7335C50.6401 36.1046 53.2864 37.8928 56.771 38.1745C60.3998 38.4692 63.3964 37.3033 65.6726 34.4868C67.7981 31.8602 68.4203 28.7096 68.5677 24.6289V24.6322Z" fill="white"/>
1427<path d="M80.6885 39.2584C81.6382 37.0641 81.6251 34.9452 81.6219 32.8262C81.6186 24.0032 81.6219 15.1836 81.6219 6.3606C81.6219 4.5364 81.5957 2.71875 80.8097 1.01246C80.7802 0.95023 80.8228 0.855254 80.8391 0.724253C82.2212 0.724253 83.6065 0.652202 84.982 0.750453C85.886 0.815954 86.518 1.46441 87.0289 2.20457C89.6359 5.98069 92.2559 9.75026 94.8694 13.5198C98.3016 18.4684 101.74 23.4137 105.173 28.3656C106.542 30.3404 107.898 32.3251 109.263 34.3032C109.378 34.4703 109.512 34.6242 109.666 34.8174C109.666 32.5576 109.813 30.3568 109.633 28.1855C109.335 24.6124 108.89 21.0492 108.382 17.499C108.012 14.9216 107.429 12.3736 106.954 9.81249C106.535 7.54616 106.08 5.28311 105.739 3.00368C105.467 1.19586 105.982 0.681677 107.796 0.684952C109.077 0.684952 110.357 0.691502 111.641 0.698052C111.693 0.698052 111.746 0.727528 111.831 0.750453C111.608 1.62489 111.323 2.4895 111.176 3.37704C111.025 4.28422 110.947 5.21433 110.947 6.13462C110.93 15.2818 110.937 24.4323 110.937 33.5795C110.937 35.4626 111.084 37.3196 111.926 39.1405C111.647 39.1896 111.448 39.2486 111.248 39.2551C110.593 39.2682 109.931 39.1962 109.286 39.2715C107.459 39.4844 106.273 38.7508 105.241 37.2115C101.505 31.657 97.6401 26.1877 93.8279 20.6824C91.3553 17.106 88.8892 13.5264 86.4263 9.94022C85.3751 8.4075 84.3369 6.86495 83.2987 5.32241C83.1939 5.16848 83.1284 4.99163 83.0465 4.8246C82.9581 4.88355 82.8697 4.93923 82.7812 4.99818C82.8795 7.56909 82.9221 10.1433 83.0924 12.7076C83.2397 14.9019 83.5116 17.0929 83.7768 19.2774C83.9439 20.6496 84.1895 22.0153 84.422 23.381C84.7364 25.2248 85.0705 27.0687 85.4045 28.9093C85.8008 31.1003 86.2135 33.2847 86.6032 35.4757C86.7211 36.1438 86.8095 36.8218 86.8652 37.4964C86.9569 38.587 86.41 39.2224 85.3259 39.2453C83.8358 39.2748 82.3456 39.2518 80.6885 39.2518V39.2584Z" fill="white"/>
1428<path d="M15.58 0.0135457C18.1542 0.00372058 21.331 0.606328 24.2065 2.3159C26.558 3.71434 28.1464 5.74159 28.8505 8.4173C29.2075 9.76989 29.0961 10.176 27.809 10.6673C26.8364 11.0373 25.7949 11.2895 24.76 11.4303C23.9412 11.5417 23.7251 11.2044 23.7054 10.3725C23.6792 9.23278 23.748 8.07342 23.5482 6.96318C23.0537 4.2318 20.5876 2.0408 17.8824 1.46111C15.6324 0.979683 13.448 0.986233 11.293 1.73294C8.56819 2.67615 6.75709 4.44467 6.55076 7.48064C6.35753 10.3496 7.68392 12.403 10.0714 13.8604C12.5146 15.3538 15.2067 16.2676 17.8922 17.201C20.7841 18.2031 23.6628 19.2642 26.1748 21.0786C29.5022 23.4825 30.4029 26.9114 29.892 30.7858C29.4531 34.1165 27.4586 36.301 24.6716 37.8599C22.8867 38.8588 20.9282 39.5367 18.8944 39.6907C16.6805 39.8577 14.4076 39.9821 12.2231 39.6808C7.45467 39.0258 3.41982 37.0346 1.15022 32.4561C0.459187 31.0445 0.0825579 29.5544 0.000681894 28.002C-0.0156933 27.7106 0.26596 27.2095 0.511588 27.1342C1.74628 26.751 2.99734 26.3711 4.27133 26.1909C5.3652 26.037 5.70908 26.6003 5.68615 27.7335C5.65995 29.0271 5.65995 30.3404 5.84335 31.6177C6.19706 34.0805 7.5431 35.9899 9.6555 37.2639C12.0823 38.7278 14.7154 39.1863 17.5483 38.6787C19.6607 38.2988 21.557 37.6176 23.0471 35.9931C24.5766 34.3229 24.9237 32.3513 24.7371 30.1832C24.5078 27.4944 22.867 25.834 20.7153 24.5403C17.961 22.8864 14.9185 21.8974 11.9317 20.774C9.08564 19.7064 6.33461 18.4324 4.11413 16.261C1.92641 14.1191 1.18625 11.5024 1.6251 8.53192C2.20806 4.61825 4.80189 2.47965 8.28653 1.17618C10.3957 0.383625 12.5932 0.0430211 15.58 0.0135457Z" fill="white"/>
1429<path d="M162.384 0.721313H169.022C168.97 0.947291 168.931 1.12414 168.888 1.301C168.652 2.29661 168.217 3.28894 168.21 4.28456C168.161 14.7385 168.161 25.1891 168.21 35.6431C168.217 36.7992 
1429168.636 37.9552 168.878 39.1768H162.423C162.636 38.0895 162.872 37.0415 163.039 35.9837C163.153 35.2632 163.229 34.5263 163.232 33.7959C163.245 24.5407 163.275 15.2854 163.206 6.03015C163.196 4.51053 162.741 2.99419 162.492 1.47457C162.453 1.23877 162.423 0.999692 162.384 0.721313Z" fill="white"/>
1430</svg>
1431        
1432      </a><div class="header__icons">
1433      <div class="desktop-localization-wrapper">
1434</div>
1435      
1436
1437      <a href="/pages/product-finder" class="header__menu-item link medium-hide small-hide"><span>SPF Finder</span></a>
1438      <a href="/blogs/light-reading" class="header__menu-item link medium-hide small-hide"><span>Blog</span></a><a
1439          href="https://sonniskin.com/customer_authentication/redirect?locale=en&region_country=US"
1440          class="header__menu-item header__icon header__icon--account link focus-inset medium-hide small-hide"
1441          rel="nofollow"
1442        ><span>Login</span>
1443<span class="visually-hidden">Log in</span>
1444        </a><a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble">
1445        
1446          <span class="svg-wrapper"><svg width="20" height="16" viewBox="0 0 20 16" class="icon icon-cart-empty" fill="none" xmlns="http://www.w3.org/2000/svg">
1447<path d="M18.3335 5.90834H14.3418L10.6918 0.441675C10.5335 0.208342 10.2668 0.0916748 10.0002 0.0916748C9.7335 0.0916748 9.46683 0.208342 9.3085 0.450008L5.6585 5.90834H1.66683C1.2085 5.90834 0.833496 6.28334 0.833496 6.74167C0.833496 6.81667 0.841829 6.89167 0.866829 6.96667L2.9835 14.6917C3.17516 15.3917 3.81683 15.9083 4.5835 15.9083H15.4168C16.1835 15.9083 16.8252 15.3917 17.0252 14.6917L19.1418 6.96667L19.1668 6.74167C19.1668 6.28334 18.7918 5.90834 18.3335 5.90834ZM10.0002 2.40834L12.3335 5.90834H7.66683L10.0002 2.40834ZM15.4168 14.2417L4.59183 14.25L2.7585 7.57501H17.2502L15.4168 14.2417Z" fill="white"/>
1448</svg>
1449</span>
1450        
1451        <span class="visually-hidden">Cart</span></a>
1452    </div>
1453  </header>
1454</sticky-header>
1455
1456<cart-notification>
1457  <div class="cart-notification-wrapper page-width">
1458    <div
1459      id="cart-notification"
1460      class="cart-notification focus-inset color-scheme-1 gradient"
1461      aria-modal="true"
1462      aria-label="Item added to your cart"
1463      role="dialog"
1464      tabindex="-1"
1465    >
1466      <div class="cart-notification__header">
1467        <h2 class="cart-notification__heading caption-large text-body"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg>
1468Item added to your cart
1469        </h2>
1470        <button
1471          type="button"
1472          class="cart-notification__close modal__close-button link link--text focus-inset"
1473          aria-label="Close"
1474        >
1475          <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
1476</span>
1477        </button>
1478      </div>
1479      <div id="cart-notification-product" class="cart-notification-product"></div>
1480      <div class="cart-notification__links">
1481        <a
1482          href="/cart"
1483          id="cart-notification-button"
1484          class="button button--secondary button--full-width"
1485        >View cart</a>
1486        <form action="/cart" method="post" id="cart-notification-form">
1487          <button class="button button--primary button--full-width" name="checkout">
1488            Check out
1489          </button>
1490        </form>
1491        <button type="button" class="link button-label">Continue shopping</button>
1492      </div>
1493    </div>
1494  </div>
1495</cart-notification>
1496<style data-shopify>
1497  .cart-notification {
1498    display: none;
1499  }
1500</style>
1501
1502
1503<script type="application/ld+json">
1504  {
1505    "@context": "http://schema.org",
1506    "@type": "Organization",
1507    "name": "SONNI",
1508    
1509    "sameAs": [
1510      "",
1511      "",
1512      "",
1513      "https:\/\/instagram.com\/sonniskin",
1514      "https:\/\/tiktok.com\/@sonniskin",
1515      "",
1516      "",
1517      "",
1518      ""
1519    ],
1520    "url": "https:\/\/sonniskin.com"
1521  }
1522</script>
1522
1523</div>
1524<!-- END sections: header-group -->
1525
1526    <main id="MainContent" class=" content-for-layout focus-none" role="main" tabindex="-1">
1527      <section id="shopify-section-template--26813936501052__main" class="shopify-section section"><link href="//sonniskin.com/cdn/shop/t/13/assets/component-article-card.css?v=135852286801414527911782903944" rel="stylesheet" type="text/css" media="all" />
1528<link href="//sonniskin.com/cdn/shop/t/13/assets/component-card.css?v=108051552473074739101785334861" rel="stylesheet" type="text/css" media="all" />
1529<link href="//sonniskin.com/cdn/shop/t/13/assets/section-main-blog.css?v=3664748673270112731782903944" rel="stylesheet" type="text/css" media="all" />
1530<style data-shopify>.section-template--26813936501052__main-padding {
1531    padding-top: 48px;
1532    padding-bottom: 48px;
1533  }
1534
1535  @media screen and (min-width: 750px) {
1536    .section-template--26813936501052__main-padding {
1537      padding-top: 64px;
1538      padding-bottom: 64px;
1539    }
1540  }</style><div class="main-blog section-template--26813936501052__main-padding">
1541    <div class="container-fluid">
1542    <h1 class="h2 title--primary scroll-trigger animate--fade-in">
1543      Light Reading
1544    </h1>
1545
1546    <div class="main-blog__nav">
1547      <div class="main-blog__nav-wrapper">
1548        <nav class="blog-nav">
1549	<ul class="menu ">
1550		
1551
1552			
1553
1554			
1555
1556			<li class="menu-item all"><a href="/blogs/light-reading" class="nav-item site-nav--active" title="">All</a></li>
1557		
1558
1559			
1560
1561			
1562
1563			<li class="menu-item the-system"><a href="/blogs/light-reading/tagged/the-system" class="nav-item " title="">The System</a></li>
1564		
1565
1566			
1567
1568			
1569
1570			<li class="menu-item ask-sonni"><a href="/blogs/light-reading/tagged/ask-sonni" class="nav-item " title="">
1570Ask SONNI</a></li>
1571		
1572
1573			
1574
1575			
1576
1577			<li class="menu-item life-in-the-sun"><a href="/blogs/light-reading/tagged/life-in-the-sun" class="nav-item " title="">Life in the Sun</a></li>
1578		
1579	</ul>
1580</nav>
1581      </div>
1582    </div>
1583
1584    <div class="blog-articles blog-articles--collage"><div
1585          class="blog-articles__article article scroll-trigger animate--slide-in"
1586          
1587            data-cascade
1588            style="--animation-order: 1;"
1589          
1590        >
1591<div class="article-card-wrapper card-wrapper underline-links-hover">
1592    
1593    <div
1594      class="
1595        card article-card
1596        card--standard
1597         article-card__image--medium
1598         card--media
1599        
1600        
1601      "
1602      style="--ratio-percent: 66.6875%;"
1603    >
1604      <div
1605        class="card__inner  color-scheme-2 gradient ratio"
1606        style="--ratio-percent: 66.6875%;"
1607      ><div class="article-card__image-wrapper card__media">
1608            <div
1609              class="article-card__image media media--hover-effect"
1610              
1611            >
1612              
1613              <img
1614                srcset="//sonniskin.com/cdn/shop/articles/DTS_Key_Details_Nate_Embrey_Photos_ID2120_1.jpg?v=1790891089&width=165 165w,//sonniskin.com/cdn/shop/articles/DTS_Key_Details_Nate_Embrey_Photos_ID2120_1.jpg?v=1790891089&width=360 360w,//sonniskin.com/cdn/shop/articles/DTS_Key_Details_Nate_Embrey_Photos_ID2120_1.jpg?v=1790891089&width=533 533w,//sonniskin.com/cdn/shop/articles/DTS_Key_Details_Nate_Embrey_Photos_ID2120_1.jpg?v=1790891089&width=720 720w,//sonniskin.com/cdn/shop/articles/DTS_Key_Details_Nate_Embrey_Photos_ID2120_1.jpg?v=1790891089&width=1000 1000w,//sonniskin.com/cdn/shop/articles/DTS_Key_Details_Nate_Embrey_Photos_ID2120_1.jpg?v=1790891089&width=1500 1500w,//sonniskin.com/cdn/shop/articles/DTS_Key_Details_Nate_Embrey_Photos_ID2120_1.jpg?v=1790891089 1600w
1615                "
1616                src="//sonniskin.com/cdn/shop/articles/DTS_Key_Details_Nate_Embrey_Photos_ID2120_1.jpg?v=1790891089&width=533"
1617                sizes="(min-width: 1200px) 550px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
1618                alt="Do I Need to Change My Skincare Routine for Fall?"
1619                class="motion-reduce"
1620                
1621                  loading="lazy"
1622                
1623                width="1600"
1624                height="1067"
1625              >
1626              
1627            </div>
1628          </div><div class="card__content">
1629          <div class="card__information">
1630            <h3 class="card__heading h2">
1631              <a href="/blogs/light-reading/do-i-need-to-change-my-skincare-routine-for-fall" class="full-unstyled-link">
1632                Do I Need to Change My Skincare Routine for Fall?
1633              </a>
1634            </h3>
1635            <div class="article-card__info caption-with-letter-spacing h5"></div><p class="article-card__excerpt rte-width">Short answer: no, you don't need a new routine. You need two or three small adjustments.
1636</p><div class="article-card__footer"></div></div></div>
1637      </div>
1638      <div class="card__content">
1639        <div class="card__information">
1640
1641          
1642
1643          
1644            <p class="article-card__tag body3-text">Ask SONNI</p>
1645          
1646
1647          <h3 class="card__heading">
1648            <a href="/blogs/light-reading/do-i-need-to-change-my-skincare-routine-for-fall" class="full-unstyled-link">
1649              Do I Need to Change My Skincare Routine for Fall?
1650            </a>
1651          </h3>
1652          <div class="article-card__info caption-with-letter-spacing h5"></div><p class="article-card__excerpt rte-width body2-text">Short answer: no, you don't need a new routine. You need two or three small adjustments.
1653</p><div class="article-card__footer"></div></div></div>
1654    </div>
1655  </div></div><div
1656          class="blog-articles__article article scroll-trigger animate--slide-in"
1657          
1658            data-cascade
1659            style="--animation-order: 2;"
1660          
1661        >
1662<div class="article-card-wrapper card-wrapper underline-links-hover">
1663    
1664    <div
1665      class="
1666        card article-card
1667        card--standard
1668         article-card__image--medium
1669         card--media
1670        
1671        
1672      "
1673      style="--ratio-percent: 56.75%;"
1674    >
1675      <div
1676        class="card__inner  color-scheme-2 gradient ratio"
1677        style="--ratio-percent: 56.75%;"
1678      ><div class="article-card__image-wrapper card__media">
1679            <div
1680              class="article-card__image media media--hover-effect"
1681              
1682            >
1683              
1684              <img
1685                srcset="//sonniskin.com/cdn/shop/articles/Desktop_Hero_-_SEAL_blog.png?v=1789674482&width=165 165w,//sonniskin.com/cdn/shop/articles/Desktop_Hero_-_SEAL_blog.png?v=1789674482&width=360 360w,//sonniskin.com/cdn/shop/articles/Desktop_Hero_-_SEAL_blog.png?v=1789674482&width=533 533w,//sonniskin.com/cdn/shop/articles/Desktop_Hero_-_SEAL_blog.png?v=1789674482&width=720 720w,//sonniskin.com/cdn/shop/articles/Desktop_Hero_-_SEAL_blog.png?v=1789674482&width=1000 1000w,//sonniskin.com/cdn/shop/articles/Desktop_Hero_-_SEAL_blog.png?v=1789674482&width=1500 1500w,//sonniskin.com/cdn/shop/articles/Desktop_Hero_-_SEAL_blog.png?v=1789674482 2000w
1686                "
1687                src="//sonniskin.com/cdn/shop/articles/Desktop_Hero_-_SEAL_blog.png?v=1789674482&width=533"
1688                sizes="(min-width: 1200px) 550px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
1689                alt="Why Allure Picked a Sheet Mask From a Suncare Brand"
1690                class="motion-reduce"
1691                
1692                  loading="lazy"
1693                
1694                width="2000"
1695                height="1135"
1696              >
1697              
1698            </div>
1699          </div><div class="card__content">
1700          <div class="card__information">
1701            <h3 class="card__heading h2">
1702              <a href="/blogs/light-reading/why-allure-picked-a-sheet-mask-from-a-suncare-brand" class="full-unstyled-link">
1703                Why Allure Picked a Sheet Mask From a Suncare B...
1704              </a>
1705            </h3>
1706            <div class="article-card__info caption-with-letter-spacing h5"></div><p class="article-card__excerpt rte-width">SONNI's Restoration Electrolyte Sheet Mask is a 2026 Allure SKIN Best of Beauty winner, which raises a fair question: why did Allure pick a sheet mask from a skincare brand?
1707</p><div class="article-card__footer"></div></div></div>
1708      </div>
1709      <div class="card__content">
1710        <div class="card__information">
1711
1712          
1713
1714          
1715            <p class="article-card__tag body3-text">The System</p>
1716          
1717
1718          <h3 class="card__heading">
1719            <a href="/blogs/light-reading/why-allure-picked-a-sheet-mask-from-a-suncare-brand" class="full-unstyled-link">
1720              Why Allure Picked a Sheet Mask From a Suncare Brand
1721            </a>
1722          </h3>
1723          <div class="article-card__info caption-with-letter-spacing h5"></div><p class="article-card__excerpt rte-width body2-text">SONNI's Restoration Electrolyte Sheet Mask is a 2026 Allure SKIN Best of Beauty winner, which raises a fair question: why did Allure pick a sheet mask from a skincare brand?
1724</p><div class="article-card__footer"></div></div></div>
1725    </div>
1726  </div></div><div
1727          class="blog-articles__article article scroll-trigger animate--slide-in"
1728          
1729            data-cascade
1730            style="--animation-order: 3;"
1731          
1732        >
1733<div class="article-card-wrapper card-wrapper underline-links-hover">
1734    
1735    <div
1736      class="
1737        card article-card
1738        card--standard
1739         article-card__image--medium
1740         card--media
1741        
1742        
1743      "
1744      style="--ratio-percent: 133.28125%;"
1745    >
1746      <div
1747        class="card__inner  color-scheme-2 gradient ratio"
1748        style="--ratio-percent: 133.28125%;"
1749      ><div class="article-card__image-wrapper card__media">
1750            <div
1751              class="article-card__image media media--hover-effect"
1752              
1753            >
1754              
1755              <img
1756                srcset="//sonniskin.com/cdn/shop/articles/DTS_SUITE_TALK_PALI_MENDEZ_Photos_ID14173.jpg?v=1789083074&width=165 165w,//sonniskin.com/cdn/shop/articles/DTS_SUITE_TALK_PALI_MENDEZ_Photos_ID14173.jpg?v=1789083074&width=360 360w,//sonniskin.com/cdn/shop/articles/DTS_SUITE_TALK_PALI_MENDEZ_Photos_ID14173.jpg?v=1789083074&width=533 533w,//sonniskin.com/cdn/shop/articles/DTS_SUITE_TALK_PALI_MENDEZ_Photos_ID14173.jpg?v=1789083074&width=720 720w,//sonniskin.com/cdn/shop/articles/DTS_SUITE_TALK_PALI_MENDEZ_Photos_ID14173.jpg?v=1789083074&width=1000 1000w,//sonniskin.com/cdn/shop/articles/DTS_SUITE_TALK_PALI_MENDEZ_Photos_ID14173.jpg?v=1789083074 1280w
1757                "
1758                src="//sonniskin.com/cdn/shop/articles/DTS_SUITE_TALK_PALI_MENDEZ_Photos_ID14173.jpg?v=1789083074&width=533"
1759                sizes="(min-width: 1200px) 550px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
1760                alt="Why Fall Is the Season for Dark Spots (and What SPF Has to Do With It)"
1761                class="motion-reduce"
1762                
1763                  loading="lazy"
1764                
1765                width="1280"
1766                height="1706"
1767              >
1768              
1769            </div>
1770          </div><div class="card__content">
1771          <div class="card__information">
1772            <h3 class="card__heading h2">
1773              <a href="/blogs/light-reading/why-fall-is-the-season-for-dark-spots-and-what-spf-has-to-do-with-it" class="full-unstyled-link">
1774                Why Fall Is the Season for Dark Spots (and What...
1775              </a>
1776            </h3>
1777            <div class="article-card__info caption-with-letter-spacing h5"></div><p class="article-card__excerpt rte-width">September and October are peak months for post-summer hyperpigmentation and melasma to surface, and while brightening actives can help, SPF remains the non-negotiable foundation. 
1778</p><div class="article-card__footer"></div></div></div>
1779      </div>
1780      <div class="card__content">
1781        <div class="card__information">
1782
1783          
1784
1785          
1786            <p class="article-card__tag body3-text">The System</p>
1787          
1788
1789          <h3 class="card__heading">
1790            <a href="/blogs/light-reading/why-fall-is-the-season-for-dark-spots-and-what-spf-has-to-do-with-it" class="full-unstyled-link">
1791              Why Fall Is the Season for Dark Spots (and What SPF Has to Do With It)
1792            </a>
1793          </h3>
1794          <div class="article-card__info caption-with-letter-spacing h5"></div><p class="article-card__excerpt rte-width body2-text">September and October are peak months for post-summer hyperpigmentation and melasma to surface, and while brightening actives can help, SPF remains the non-negotiable foundation. 
1795</p><div class="article-card__footer"></div></div></div>
1796    </div>
1797  </div></div><div
1798          class="blog-articles__article article scroll-trigger animate--slide-in"
1799          
1800            data-cascade
1801            style="--animation-order: 4;"
1802          
1803        >
1804<div class="article-card-wrapper card-wrapper underline-links-hover">
1805    
1806    <div
1807      class="
1808        card article-card
1809        card--standard
1810         article-card__image--medium
1811         card--media
1812        
1813        
1814      "
1815      style="--ratio-percent: 150.00000000000003%;"
1816    >
1817      <div
1818        class="card__inner  color-scheme-2 gradient ratio"
1819        style="--ratio-percent: 150.00000000000003%;"
1820      ><div class="article-card__image-wrapper card__media">
1821            <div
1822              class="article-card__image media media--hover-effect"
1823              
1824            >
1825              
1826              <img
1827                srcset="//sonniskin.com/cdn/shop/articles/DTS_BY_WATER_Daniel_Faro_Photos_ID7959_1.jpg?v=1788471092&width=165 165w,//sonniskin.com/cdn/shop/articles/DTS_BY_WATER_Daniel_Faro_Photos_ID7959_1.jpg?v=1788471092&width=360 360w,//sonniskin.com/cdn/shop/articles/DTS_BY_WATER_Daniel_Faro_Photos_ID7959_1.jpg?v=1788471092&width=533 533w,//sonniskin.com/cdn/shop/articles/DTS_BY_WATER_Daniel_Faro_Photos_ID7959_1.jpg?v=1788471092&width=720 720w,//sonniskin.com/cdn/shop/articles/DTS_BY_WATER_Daniel_Faro_Photos_ID7959_1.jpg?v=1788471092&width=1000 1000w,//sonniskin.com/cdn/shop/articles/DTS_BY_WATER_Daniel_Faro_Photos_ID7959_1.jpg?v=1788471092&width=1500 1500w,//sonniskin.com/cdn/shop/articles/DTS_BY_WATER_Daniel_Faro_Photos_ID7959_1.jpg?v=1788471092 1600w
1828                "
1829                src="//sonniskin.com/cdn/shop/articles/DTS_BY_WATER_Daniel_Faro_Photos_ID7959_1.jpg?v=1788471092&width=533"
1830                sizes="(min-width: 1200px) 550px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
1831                alt="The End-of-Summer Skin Reset"
1832                class="motion-reduce"
1833                
1834                  loading="lazy"
1835                
1836                width="1600"
1837                height="2400"
1838              >
1839              
1840            </div>
1841          </div><div class="card__content">
1842          <div class="card__information">
1843            <h3 class="card__heading h2">
1844              <a href="/blogs/light-reading/the-end-of-summer-skin-reset" class="full-unstyled-link">
1845                The End-of-Summer Skin Reset
1846              </a>
1847            </h3>
1848            <div class="article-card__info caption-with-letter-spacing h5"></div><p class="article-card__excerpt rte-width">Feeling like your skin is off leading into Labor Day? You’re not alone.
1849The good news: your skin can bounce back with the right reset.
1850</p><div class="article-card__footer"></div></div></div>
1851      </div>
1852      <div class="card__content">
1853        <div class="card__information">
1854
1855          
1856
1857          
1858            <p class="article-card__tag body3-text">Life in the Sun</p>
1859          
1860
1861          <h3 class="card__heading">
1862            <a href="/blogs/light-reading/the-end-of-summer-skin-reset" class="full-unstyled-link">
1863              The End-of-Summer Skin Reset
1864            </a>
1865          </h3>
1866          <div class="article-card__info caption-with-letter-spacing h5"></div><p class="article-card__excerpt rte-width body2-text">Feeling like your skin is off leading into Labor Day? You’re not alone.
1867The good news: your skin can bounce back with the right reset.
1868</p><div class="article-card__footer"></div></div></div>
1869    </div>
1870  </div></div></div>
1871
1872<link href="//sonniskin.com/cdn/shop/t/13/assets/component-pagination.css?v=136206814810731739951782903944" rel="stylesheet" type="text/css" media="all" />
1873<div class="pagination-wrapper" data-page="1">
1874    <nav class="pagination" role="navigation" aria-label="Pagination">
1875      <ul class="pagination__list list-unstyled" role="list"><li><a
1876                  role="link"
1877                  aria-disabled="true"
1878                  class="pagination__item pagination__item--current light"
1879                  aria-current="page"
1880                  aria-label="Page 1"
1881                >1</a></li><li><a
1882                href="/blogs/light-reading?page=2"
1883                class="pagination__item link"
1884                aria-label="Page 2"
1885              >2</a></li><li><a
1886                href="/blogs/light-reading?page=3"
1887                class="pagination__item link"
1888                aria-label="Page 3"
1889              >3</a></li><li><span class="pagination__item">&hellip;</span></li><li><a
1890                href="/blogs/light-reading?page=9"
1891                class="pagination__item link"
1892                aria-label="Page 9"
1893              >9</a></li><li>
1894            <a
1895              href="/blogs/light-reading?page=2"
1896              class="pagination__item pagination__item--prev pagination__item-arrow link motion-reduce"
1897              aria-label="Next page"
1898            >
1899              <span class="svg-wrapper"><svg class="icon icon-caret" width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
1900<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="white"/>
1901<line x1="0.353553" y1="0.646447" x2="6.35355" y2="6.64645" stroke="#002459"/>
1902<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="white"/>
1903<line y1="-0.5" x2="8.48528" y2="-0.5" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12 1)" stroke="#002459"/>
1904</svg>
1905</span>
1906            </a>
1907          </li></ul>
1908    </nav>
1909  </div></div>
1910  </div>
1911</section>
1912    </main>
1913
1914    <!-- BEGIN sections: footer-group -->
1915<div id="shopify-section-sections--26813932601660__footer" class="shopify-section shopify-section-group-footer-group">
1916<link href="//sonniskin.com/cdn/shop/t/13/assets/section-footer.css?v=60318643098753476351782903944" rel="stylesheet" type="text/css" media="all" />
1917<link href="//sonniskin.com/cdn/shop/t/13/assets/component-newsletter.css?v=4727253280200485261782903944" rel="stylesheet" type="text/css" media="all" />
1918<link href="//sonniskin.com/cdn/shop/t/13/assets/component-list-menu.css?v=151968516119678728991782903944" rel="stylesheet" type="text/css" media="all" />
1919<link href="//sonniskin.com/cdn/shop/t/13/assets/component-list-payment.css?v=69253961410771838501782903944" rel="stylesheet" type="text/css" media="all" />
1920<link href="//sonniskin.com/cdn/shop/t/13/assets/component-list-social.css?v=35792976012981934991782903944" rel="stylesheet" type="text/css" media="all" />
1921
1922
1923
1924<footer class="footer color- gradient section-sections--26813932601660__footer-padding">
1925  
1926
1927    <div class="footer__content-wrapper body3-text">
1928      <div class="footer__content-left">
1929        <div class="footer__content-left--top">
1930          
1931            <div class="footer__menus">
1932              
1933                <div class="footer__menu-column">
1934                  
1935                    <h4 class="title body3-text">Shop</h4>
1936                  
1937
1938                  
1939                    
1940	<ul class="menu vertical">
1941		
1942
1943			
1944
1945			
1946
1947			<li class="menu-item shop-all"><a href="/collections/all" class="nav-item " title="">Shop All</a></li>
1948		
1949
1950			
1951
1952			
1953
1954			<li class="menu-item sunday"><a href="/collections/sunday" class="nav-item " title="">SunDay</a></li>
1955		
1956
1957			
1958
1959			
1960
1961			<li class="menu-item sundown"><a href="/collections/sundown" class="nav-item " title="">SunDown</a></li>
1962		
1963
1964			
1965
1966			
1967
1968			<li class="menu-item sets"><a href="/collections/sets" class="nav-item " title="">Sets</a></li>
1969		
1970
1971			
1972
1973			
1974
1975			<li class="menu-item gifts-more"><a href="/collections/gifts" class="nav-item " title="">Gifts & More</a></li>
1976		
1977	</ul>
1978
1979                  
1980
1981                </div>
1982              
1983                <div class="footer__menu-column">
1984                  
1985                    <h4 class="title body3-text">Learn</h4>
1986                  
1987
1988                  
1989                    
1990	<ul class="menu vertical">
1991		
1992
1993			
1994
1995			
1996
1997			<li class="menu-item science"><a href="/pages/science" class="nav-item " title="">Science</a></li>
1998		
1999
2000			
2001
2002			
2003
2004			<li class="menu-item sustainability"><a href="/pages/sustainability" class="nav-item " title="">Sustainability</a></li>
2005		
2006
2007			
2008
2009			
2010
2011			<li class="menu-item about-sonni"><a href="/pages/about-us" class="nav-item " title="">About SONNI</a></li>
2012		
2013
2014			
2015
2016			
2017
2018			<li class="menu-item light-reading"><a href="/blogs/light-reading" class="nav-item " title="">Light Reading</a></li>
2019		
2020	</ul>
2021
2022                  
2023
2024                </div>
2025              
2026                <div class="footer__menu-column">
2027                  
2028                    <h4 class="title body3-text">Support</h4>
2029                  
2030
2031                  
2032                    
2033	<ul class="menu vertical">
2034		
2035
2036			
2037
2038			
2039
2040			<li class="menu-item faq"><a href="/pages/faqs" class="nav-item " title="">FAQ</a></li>
2041		
2042
2043			
2044
2045			
2046
2047			<li class="menu-item returns-exchanges"><a href="/policies/refund-policy" class="nav-item " title="">Returns & Exchanges</a></li>
2048		
2049
2050			
2051
2052			
2053
2054			<li class="menu-item press"><a href="/pages/press" class="nav-item " title="">Press</a></li>
2055		
2056
2057			
2058
2059			
2060
2061			<li class="menu-item retail-wholesale-partners"><a href="/pages/wholesale" class="nav-item " title="">Retail & Wholesale Partners</a></li>
2062		
2063
2064			
2065
2066			
2067
2068			<li class="menu-item contact-us"><a href="/pages/contact" class="nav-item " title="">Contact Us</a></li>
2069		
2070
2071			
2072
2073			
2074
2075			<li class="menu-item pay-with-hsa-fsa"><a href="/pages/sonni-hsa-or-fsa" class="nav-item " title="">Pay with HSA/FSA</a></li>
2076		
2077
2078			
2079
2080			
2081
2082			<li class="menu-item where-to-find-us"><a href="/pages/where-to-find-us" class="nav-item " title="">Where to Find Us</a></li>
2083		
2084	</ul>
2085
2086                  
2087
2088                </div>
2089              
2090            </div>
2091          
2092        </div>
2093        <div class="footer__content-left--bottom">
2094          <div class="footer-logo d-none d-lg-block">
2095            <a href="/"><svg width="170" height="40" viewBox="0 0 170 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2096<path d="M123.613 5.08664C123.613 5.73182 123.581 6.37701 123.62 7.01892C123.81 10.3038 123.905 13.6017 124.252 16.8735C124.576 19.9226 125.139 22.9454 125.663 25.9716C126.187 28.9912 126.806 31.9976 127.366 35.0107C127.511 35.7836 127.619 36.5663 127.701 37.3491C127.828 38.5608 127.258 39.2289 126.053 39.2519C124.563 39.2813 123.07 39.2584 121.465 39.2584C122.834 35.9965 122.441 32.6854 122.46 29.4235C122.5 22.916 122.5 16.4085 122.46 9.90095C122.444 6.85189 122.84 3.75043 121.481 0.779963C123.017 0.779963 124.491 0.632587 125.909 0.845464C126.597 0.950265 127.357 1.60855 127.792 2.22098C131.143 6.93704 134.434 11.6924 137.719 16.4543C141.462 21.8778 145.183 27.3176 148.916 32.7444C149.388 33.4288 149.892 34.0871 150.38 34.7585C150.419 34.7323 150.495 34.7028 150.495 34.6766C150.439 32.2302 150.439 29.7804 150.302 27.3405C150.197 25.4443 149.971 23.548 149.709 21.6649C149.352 19.0842 148.942 16.51 148.497 13.9424C147.924 10.6542 147.292 7.3759 146.689 4.0943C146.581 3.50807 146.457 2.91856 146.427 2.32906C146.375 1.37275 146.902 0.747213 147.839 0.707913C149.145 0.655512 150.455 0.688262 151.766 0.684987C152.034 0.684987 152.306 0.684987 152.673 0.684987C152.466 1.42187 152.214 2.06705 152.113 2.73844C151.949 3.83558 151.795 4.94909 151.792 6.05605C151.766 15.2589 151.772 24.4618 151.779 33.6646C151.779 35.5085 151.834 37.3523 152.751 39.1602C152.421 39.2027 152.198 39.2551 151.972 39.2584C151.045 39.2682 150.115 39.2191 149.191 39.2748C147.966 39.3436 147.118 38.7868 146.46 37.8272C143.273 33.1767 140.1 28.5196 136.894 23.8821C133.327 18.7272 129.724 13.5952 126.142 8.45011C125.346 7.30384 124.576 6.1412 123.793 4.98512C123.731 5.02114 123.669 5.05389 123.607 5.08992L123.613 5.08664Z" fill="white"/>
2097<path d="M35.48 18.4456C35.5946 12.8158 37.612 8.04411 42.0137 4.42846C44.2964 2.55186 46.9295 1.33682 49.8181 0.61304C52.5953 -0.0845433 55.3693 -0.222095 58.1465 0.383787C60.5701 0.911069 62.8233 1.86411 64.8505 3.36407C68.3614 5.96118 70.6768 9.38032 72.1637 13.4381C73.1593 16.1466 73.7685 18.9303 73.68 21.7993C73.513 27.095 71.5676 31.6473 67.5262 35.1811C65.1027 37.3 62.2534 38.6264 59.1356 39.4124C56.5876 40.0543 54.0102 40.2083 51.4458 39.6843C48.6882 39.121 46.1468 38.0304 43.887 36.2782C40.553 33.6909 38.3391 30.3111 36.9308 26.4204C36.0073 23.8724 35.4112 21.2098 35.48 18.4489V18.4456ZM68.5677 24.6322C68.3417 23.2829 68.1256 21.1377 67.595 19.0712C66.8352 16.1105 65.7119 13.2743 64.094 10.6347C61.7491 6.80614 58.8736 3.6097 54.4392 2.23091C50.5943 1.03552 47.1097 1.82808 44.1818 4.58566C41.5716 7.04849 40.7692 10.3137 40.6316 13.7427C40.4875 17.283 41.2932 20.689 42.4853 24.0066C43.7855 27.6223 45.5376 30.9759 48.2821 33.7335C50.6401 36.1046 53.2864 37.8928 56.771 38.1745C60.3998 38.4692 63.3964 37.3033 65.6726 34.4868C67.7981 31.8602 68.4203 28.7096 68.5677 24.6289V24.6322Z" fill="white"/>
2098<path d="M80.6885 39.2584C81.6382 37.0641 81.6251 34.9452 81.6219 32.8262C81.6186 24.0032 81.6219 15.1836 81.6219 6.3606C81.6219 4.5364 81.5957 2.71875 80.8097 1.01246C80.7802 0.95023 80.8228 0.855254 80.8391 0.724253C82.2212 0.724253 83.6065 0.652202 84.982 0.750453C85.886 0.815954 86.518 1.46441 87.0289 2.20457C89.6359 5.98069 92.2559 9.75026 94.8694 13.5198C98.3016 18.4684 101.74 23.4137 105.173 28.3656C106.542 30.3404 107.898 32.3251 109.263 34.3032C109.378 34.4703 109.512 34.6242 109.666 34.8174C109.666 32.5576 109.813 30.3568 109.633 28.1855C109.335 24.6124 108.89 21.0492 108.382 17.499C108.012 14.9216 107.429 12.3736 106.954 9.81249C106.535 7.54616 106.08 5.28311 105.739 3.00368C105.467 1.19586 105.982 0.681677 107.796 0.684952C109.077 0.684952 110.357 0.691502 111.641 0.698052C111.693 0.698052 111.746 0.727528 111.831 0.750453C111.608 1.62489 111.323 2.4895 111.176 3.37704C111.025 4.28422 110.947 5.21433 110.947 6.13462C110.93 15.2818 110.937 24.4323 110.937 33.5795C110.937 35.4626 111.084 37.3196 111.926 39.1405C111.647 39.1896 111.448 39.2486 111.248 39.2551C110.593 39.2682 109.931 39.1962 109.286 39.2715C107.459 39.4844 106.273 38.7508 105.241 37.2115C101.505 31.657 97.6401 26.1877 93.8279 20.6824C91.3553 17.106 88.8892 13.5264 86.4263 9.94022C85.3751 8.4075 84.3369 6.86495 83.2987 5.32241C83.1939 5.
209816848 83.1284 4.99163 83.0465 4.8246C82.9581 4.88355 82.8697 4.93923 82.7812 4.99818C82.8795 7.56909 82.9221 10.1433 83.0924 12.7076C83.2397 14.9019 83.5116 17.0929 83.7768 19.2774C83.9439 20.6496 84.1895 22.0153 84.422 23.381C84.7364 25.2248 85.0705 27.0687 85.4045 28.9093C85.8008 31.1003 86.2135 33.2847 86.6032 35.4757C86.7211 36.1438 86.8095 36.8218 86.8652 37.4964C86.9569 38.587 86.41 39.2224 85.3259 39.2453C83.8358 39.2748 82.3456 39.2518 80.6885 39.2518V39.2584Z" fill="white"/>
2099<path d="M15.58 0.0135457C18.1542 0.00372058 21.331 0.606328 24.2065 2.3159C26.558 3.71434 28.1464 5.74159 28.8505 8.4173C29.2075 9.76989 29.0961 10.176 27.809 10.6673C26.8364 11.0373 25.7949 11.2895 24.76 11.4303C23.9412 11.5417 23.7251 11.2044 23.7054 10.3725C23.6792 9.23278 23.748 8.07342 23.5482 6.96318C23.0537 4.2318 20.5876 2.0408 17.8824 1.46111C15.6324 0.979683 13.448 0.986233 11.293 1.73294C8.56819 2.67615 6.75709 4.44467 6.55076 7.48064C6.35753 10.3496 7.68392 12.403 10.0714 13.8604C12.5146 15.3538 15.2067 16.2676 17.8922 17.201C20.7841 18.2031 23.6628 19.2642 26.1748 21.0786C29.5022 23.4825 30.4029 26.9114 29.892 30.7858C29.4531 34.1165 27.4586 36.301 24.6716 37.8599C22.8867 38.8588 20.9282 39.5367 18.8944 39.6907C16.6805 39.8577 14.4076 39.9821 12.2231 39.6808C7.45467 39.0258 3.41982 37.0346 1.15022 32.4561C0.459187 31.0445 0.0825579 29.5544 0.000681894 28.002C-0.0156933 27.7106 0.26596 27.2095 0.511588 27.1342C1.74628 26.751 2.99734 26.3711 4.27133 26.1909C5.3652 26.037 5.70908 26.6003 5.68615 27.7335C5.65995 29.0271 5.65995 30.3404 5.84335 31.6177C6.19706 34.0805 7.5431 35.9899 9.6555 37.2639C12.0823 38.7278 14.7154 39.1863 17.5483 38.6787C19.6607 38.2988 21.557 37.6176 23.0471 35.9931C24.5766 34.3229 24.9237 32.3513 24.7371 30.1832C24.5078 27.4944 22.867 25.834 20.7153 24.5403C17.961 22.8864 14.9185 21.8974 11.9317 20.774C9.08564 19.7064 6.33461 18.4324 4.11413 16.261C1.92641 14.1191 1.18625 11.5024 1.6251 8.53192C2.20806 4.61825 4.80189 2.47965 8.28653 1.17618C10.3957 0.383625 12.5932 0.0430211 15.58 0.0135457Z" fill="white"/>
2100<path d="M162.384 0.721313H169.022C168.97 0.947291 168.931 1.12414 168.888 1.301C168.652 2.29661 168.217 3.28894 168.21 4.28456C168.161 14.7385 168.161 25.1891 168.21 35.6431C168.217 36.7992 168.636 37.9552 168.878 39.1768H162.423C162.636 38.0895 162.872 37.0415 163.039 35.9837C163.153 35.2632 163.229 34.5263 163.232 33.7959C163.245 24.5407 163.275 15.2854 163.206 6.03015C163.196 4.51053 162.741 2.99419 162.492 1.47457C162.453 1.23877 162.423 0.999692 162.384 0.721313Z" fill="white"/>
2101</svg></a>
2102          </div>
2103        </div>
2104      </div>
2105      <div class="footer__content-spacer d-none d-lg-block">&nbsp;</div>
2106      <div class="footer__content-right">
2107
2108        <div class="footer__newsletter">
2109
2110          
2111            <h3 class="newsletter-title">Brighten your day.</h3>
2112          
2113
2114          
2115            <p class="newsletter-description">Join our email list to receive 15% off your first order, plus early access to new launches, exclusive offers, and more.</p>
2116          
2117
2118          <div class="klaviyo-form-UWfhVc"></div>
2119
2120        </div>
2121
2122        <div class="footer__social">
2123          
2124            <p class="footer__social-text">Looking to collaborate? <span><a href="mailto:[email protected]">Get in touch</a>.</span></p>
2125          
2126
2127          <div class="footer__social-links">
2128            <ul class="menu">
2129              
2130
2131              
2132
2133              
2134                <li><a href="https://www.instagram.com/sonniskin"><svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2135<g clip-path="url(#clip0_150_565)">
2136<path d="M10.6 1.80078C13.3257 1.80078 13.6485 1.8125 14.7204 1.85937C15.7167 1.90234 16.2546 2.06641 16.6133 2.20313C17.0875 2.38281 17.4302 2.60156 17.7849 2.94922C18.1435 3.30078 18.3627 3.63281 18.546 4.09766C18.6855 4.44922 18.8528 4.98047 18.8967 5.95312C18.9445 7.00781 18.9565 7.32422 18.9565 9.99219C18.9565 12.6641 18.9445 12.9805 18.8967 14.0313C18.8528 15.0078 18.6855 15.5352 18.546 15.8867C18.3627 16.3516 18.1395 16.6875 17.7849 17.0352C17.4262 17.3867 17.0875 17.6016 16.6133 17.7813C16.2546 17.918 15.7127 18.082 14.7204 18.125C13.6445 18.1719 13.3217 18.1836 10.6 18.1836C7.87425 18.1836 7.55146 18.1719 6.47951 18.125C5.48326 18.082 4.94529 17.918 4.58664 17.7813C4.11243 17.6016 3.76972 17.3828 3.41506 17.0352C3.05641 16.6836 2.83724 16.3516 2.65393 15.8867C2.51446 15.5352 2.34709 15.0039 2.30325 14.0313C2.25543 12.9766 2.24348 12.6602 2.24348 9.99219C2.24348 7.32031 2.25543 7.00391 2.30325 5.95312C2.34709 4.97656 2.51446 4.44922 2.65393 4.09766C2.83724 3.63281 3.0604 3.29688 3.41506 2.94922C3.77371 2.59766 4.11243 2.38281 4.58664 2.20313C4.94529 2.06641 5.48725 1.90234 6.47951 1.85937C7.55146 1.8125 7.87425 1.80078 10.6 1.80078ZM10.6 0C7.83041 0 7.48372 0.0117187 6.39582 0.0585938C5.31191 0.105469 4.56672 0.277344 3.92115 0.523438C3.24769 0.78125 2.67784 1.12109 2.11198 1.67969C1.54212 2.23438 1.19543 2.79297 0.932424 3.44922C0.681371 4.08594 0.506032 4.8125 0.458212 5.875C0.410392 6.94531 0.398438 7.28516 0.398438 10C0.398438 12.7148 0.410392 13.0547 0.458212 14.1211C0.506032 15.1836 0.681371 15.9141 0.932424 16.5469C1.19543 17.207 1.54212 17.7656 2.11198 18.3203C2.67784 18.875 3.24769 19.2188 3.91717 19.4727C4.56672 19.7188 5.30792 19.8906 6.39184 19.9375C7.47973 19.9844 7.82643 19.9961 10.596 19.9961C13.3655 19.9961 13.7122 19.9844 14.8001 19.9375C15.884 19.8906 16.6292 19.7188 17.2748 19.4727C17.9443 19.2188 18.5141 18.875 19.08 18.3203C19.6459 17.76
213656 19.9965 17.207 20.2556 16.5508C20.5066 15.9141 20.682 15.1875 20.7298 14.125C20.7776 13.0586 20.7895 12.7188 20.7895 10.0039C20.7895 7.28906 20.7776 6.94922 20.7298 5.88281C20.682 4.82031 20.5066 4.08984 20.2556 3.45703C20.0045 2.79297 19.6578 2.23438 19.088 1.67969C18.5221 1.125 17.9522 0.78125 17.2828 0.527344C16.6332 0.28125 15.892 0.109375 14.8081 0.0625C13.7162 0.0117188 13.3695 0 10.6 0Z" fill="white"/>
2137<path d="M10.6001 4.86328C7.70701 4.86328 5.35986 7.16406 5.35986 10C5.35986 12.8359 7.70701 15.1367 10.6001 15.1367C13.4932 15.1367 15.8403 12.8359 15.8403 10C15.8403 7.16406 13.4932 4.86328 10.6001 4.86328ZM10.6001 13.332C8.72318 13.332 7.20092 11.8398 7.20092 10C7.20092 8.16016 8.72318 6.66797 10.6001 6.66797C12.477 6.66797 13.9993 8.16016 13.9993 10C13.9993 11.8398 12.477 13.332 10.6001 13.332Z" fill="white"/>
2138<path d="M17.271 4.66016C17.271 5.32422 16.7211 5.85938 16.0476 5.85938C15.3702 5.85938 14.8242 5.32031 14.8242 4.66016C14.8242 3.99609 15.3741 3.46094 16.0476 3.46094C16.7211 3.46094 17.271 4 17.271 4.66016Z" fill="white"/>
2139</g>
2140<defs>
2141<clipPath id="clip0_150_565">
2142<rect width="20.4031" height="20" fill="white" transform="translate(0.398438)"/>
2143</clipPath>
2144</defs>
2145</svg>
2146</a></li>
2147              
2148
2149              
2150
2151              
2152                <li><a href="https://www.tiktok.com/@sonniskin"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2153<path d="M16.3241 5.57175C15.4919 5.39373 14.7383 4.95454 14.1732 4.31821C13.608 3.68188 13.2609 2.88167 13.1824 2.03425V1.66675H10.3116V13.0601C10.3098 13.5645 10.1501 14.0556 9.85474 14.4645C9.55943 14.8735 9.14341 15.1796 8.66515 15.3398C8.18689 15.5001 7.67044 15.5065 7.18836 15.3581C6.70628 15.2097 6.2828 14.914 5.97745 14.5126C5.66735 14.1044 5.49533 13.608 5.48633 13.0955C5.47734 12.583 5.63183 12.0809 5.92742 11.6621C6.223 11.2433 6.64431 10.9295 7.13024 10.7663C7.61617 10.603 8.14146 10.5988 8.62995 10.7542V7.83758C7.54066 7.687 6.43154 7.88066 5.45774 8.39147C4.48393 8.90228 3.69415 9.7047 3.19884 10.6865C2.70354 11.6683 2.5275 12.7803 2.69535 13.8671C2.86319 14.9538 3.36653 15.961 4.13495 16.7476C4.86774 17.4974 5.80735 18.0118 6.83383 18.2252C7.8603 18.4386 8.92708 18.3412 9.89799 17.9456C10.8689 17.55 11.6999 16.874 12.2849 16.004C12.8699 15.134 13.1824 14.1093 13.1824 13.0609V7.23925C14.3427 8.06869 15.7337 8.51345 17.1599 8.51091V5.65841C16.8791 5.65876 16.5989 5.62971 16.3241 5.57175Z" fill="white"/>
2154</svg>
2155</a></li>
2156              
2157            </ul>
2158
2159            
2160              <a href="https://www.instagram.com/sonniskin" class="instagram-user">@SONNISKIN</a>
2161            
2162          </div>
2163
2164        </div>
2165
2166
2167        <div class="footer__copyright">
2168          <p class="copyright-links body4-text">SONNI 2026. <a href="/policies/privacy-policy">Privacy Policy.</a> <a href="/policies/privacy-policy">Terms and Conditions.</a></p>
2169        </div>
2170
2171      </div>
2172    </div>
2173
2174    <div class="footer-logo d-block d-lg-none">
2175      <a href="/"><svg width="170" height="40" viewBox="0 0 170 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2176<path d="M123.613 5.08664C123.613 5.73182 123.581 6.37701 123.62 7.01892C123.81 10.3038 123.905 13.6017 124.252 16.8735C124.576 19.9226 125.139 22.9454 125.663 25.9716C126.187 28.9912 126.806 31.9976 127.366 35.0107C127.511 35.7836 127.619 36.5663 127.701 37.3491C127.828 38.5608 127.258 39.2289 126.053 39.2519C124.563 39.2813 123.07 39.2584 121.465 39.2584C122.834 35.9965 122.441 32.6854 122.46 29.4235C122.5 22.916 122.5 16.4085 122.46 9.90095C122.444 6.85189 122.84 3.75043 121.481 0.779963C123.017 0.779963 124.491 0.632587 125.909 0.845464C126.597 0.950265 127.357 1.60855 127.792 2.22098C131.143 6.93704 134.434 11.6924 137.719 16.4543C141.462 21.8778 145.183 27.3176 148.916 32.7444C149.388 33.4288 149.892 34.0871 150.38 34.7585C150.419 34.7323 150.495 34.7028 150.495 34.6766C150.439 32.2302 150.439 29.7804 150.302 27.3405C150.197 25.4443 149.971 23.548 149.709 21.6649C149.352 19.0842 148.942 16.51 148.497 13.9424C147.924 10.6542 147.292 7.3759 146.689 4.0943C146.581 3.50807 146.457 2.91856 146.427 2.32906C146.375 1.37275 146.902 0.747213 
2176147.839 0.707913C149.145 0.655512 150.455 0.688262 151.766 0.684987C152.034 0.684987 152.306 0.684987 152.673 0.684987C152.466 1.42187 152.214 2.06705 152.113 2.73844C151.949 3.83558 151.795 4.94909 151.792 6.05605C151.766 15.2589 151.772 24.4618 151.779 33.6646C151.779 35.5085 151.834 37.3523 152.751 39.1602C152.421 39.2027 152.198 39.2551 151.972 39.2584C151.045 39.2682 150.115 39.2191 149.191 39.2748C147.966 39.3436 147.118 38.7868 146.46 37.8272C143.273 33.1767 140.1 28.5196 136.894 23.8821C133.327 18.7272 129.724 13.5952 126.142 8.45011C125.346 7.30384 124.576 6.1412 123.793 4.98512C123.731 5.02114 123.669 5.05389 123.607 5.08992L123.613 5.08664Z" fill="white"/>
2177<path d="M35.48 18.4456C35.5946 12.8158 37.612 8.04411 42.0137 4.42846C44.2964 2.55186 46.9295 1.33682 49.8181 0.61304C52.5953 -0.0845433 55.3693 -0.222095 58.1465 0.383787C60.5701 0.911069 62.8233 1.86411 64.8505 3.36407C68.3614 5.96118 70.6768 9.38032 72.1637 13.4381C73.1593 16.1466 73.7685 18.9303 73.68 21.7993C73.513 27.095 71.5676 31.6473 67.5262 35.1811C65.1027 37.3 62.2534 38.6264 59.1356 39.4124C56.5876 40.0543 54.0102 40.2083 51.4458 39.6843C48.6882 39.121 46.1468 38.0304 43.887 36.2782C40.553 33.6909 38.3391 30.3111 36.9308 26.4204C36.0073 23.8724 35.4112 21.2098 35.48 18.4489V18.4456ZM68.5677 24.6322C68.3417 23.2829 68.1256 21.1377 67.595 19.0712C66.8352 16.1105 65.7119 13.2743 64.094 10.6347C61.7491 6.80614 58.8736 3.6097 54.4392 2.23091C50.5943 1.03552 47.1097 1.82808 44.1818 4.58566C41.5716 7.04849 40.7692 10.3137 40.6316 13.7427C40.4875 17.283 41.2932 20.689 42.4853 24.0066C43.7855 27.6223 45.5376 30.9759 48.2821 33.7335C50.6401 36.1046 53.2864 37.8928 56.771 38.1745C60.3998 38.4692 63.3964 37.3033 65.6726 34.4868C67.7981 31.8602 68.4203 28.7096 68.5677 24.6289V24.6322Z" fill="white"/>
2178<path d="M80.6885 39.2584C81.6382 37.0641 81.6251 34.9452 81.6219 32.8262C81.6186 24.0032 81.6219 15.1836 81.6219 6.3606C81.6219 4.5364 81.5957 2.71875 80.8097 1.01246C80.7802 0.95023 80.8228 0.855254 80.8391 0.724253C82.2212 0.724253 83.6065 0.652202 84.982 0.750453C85.886 0.815954 86.518 1.46441 87.0289 2.20457C89.6359 5.98069 92.2559 9.75026 94.8694 13.5198C98.3016 18.4684 101.74 23.4137 105.173 28.3656C106.542 30.3404 107.898 32.3251 109.263 34.3032C109.378 34.4703 109.512 34.6242 109.666 34.8174C109.666 32.5576 109.813 30.3568 109.633 28.1855C109.335 24.6124 108.89 21.0492 108.382 17.499C108.012 14.9216 107.429 12.3736 106.954 9.81249C106.535 7.54616 106.08 5.28311 105.739 3.00368C105.467 1.19586 105.982 0.681677 107.796 0.684952C109.077 0.684952 110.357 0.691502 111.641 0.698052C111.693 0.698052 111.746 0.727528 111.831 0.750453C111.608 1.62489 111.323 2.4895 111.176 3.37704C111.025 4.28422 110.947 5.21433 110.947 6.13462C110.93 15.2818 110.937 24.4323 110.937 33.5795C110.937 35.4626 111.084 37.3196 111.926 39.1405C111.647 39.1896 111.448 39.2486 111.248 39.2551C110.593 39.2682 109.931 39.1962 109.286 39.2715C107.459 39.4844 106.273 38.7508 105.241 37.2115C101.505 31.657 97.6401 26.1877 93.8279 20.6824C91.3553 17.106 88.8892 13.5264 86.4263 9.94022C85.3751 8.4075 84.3369 6.86495 83.2987 5.32241C83.1939 5.16848 83.1284 4.99163 83.0465 4.8246C82.9581 4.88355 82.8697 4.93923 82.7812 4.99818C82.8795 7.56909 82.9221 10.1433 83.0924 12.7076C83.2397 14.9019 83.5116 17.0929 83.7768 19.2774C83.9439 20.6496 84.1895 22.0153 84.422 23.381C84.7364 25.2248 85.0705 27.0687 85.4045 28.9093C85.8008 31.1003 86.2135 33.2847 86.6032 35.4757C86.7211 36.1438 86.8095 36.8218 86.8652 37.4964C86.9569 38.587 86.41 39.2224 85.3259 39.2453C83.8358 39.2748 82.3456 39.2518 80.6885 39.2518V39.2584Z" fill="white"/>
2179<path d="M15.58 0.0135457C18.1542 0.00372058 21.331 0.606328 24.2065 2.3159C26.558 3.71434 28.1464 5.74159 28.8505 8.4173C29.2075 9.76989 29.0961 10.176 27.809 10.6673C26.8364 11.0373 25.7949 11.2895 24.76 11.4303C23.9412 11.5417 23.7251 11.2044 23.7054 10.3725C23.6792 9.23278 23.748 8.07342 23.5482 6.96318C23.0537 4.2318 20.5876 2.0408 17.8824 1.46111C15.6324 0.979683 13.448 0.986233 11.293 1.73294C8.56819 2.67615 6.75709 4.44467 6.55076 7.48064C6.35753 10.3496 7.68392 12.403 10.0714 13.8604C12.5146 15.3538 15.2067 16.2676 17.8922 17.201C20.7841 18.2031 23.6628 19.2642 26.1748 21.0786C29.5022 23.4825 30.4029 26.9114 29.892 30.7858C29.4531 34.1165 27.4586 36.301 24.6716 37.8599C22.8867 38.8588 20.9282 39.5367 18.8944 39.6907C16.6805 39.8577 14.4076 39.9821 12.2231 39.6808C7.45467 39.0258 3.41982 37.0346 1.15022 32.4561C0.459187 31.0445 0.0825579 29.5544 0.000681894 28.002C-0.0156933 27.7106 0.26596 27.2095 0.511588 27.1342C1.74628 26.751 2.99734 26.3711 4.27133 26.1909C5.3652 26.037 5.70908 26.6003 5.68615 27.7335C5.65995 29.0271 5.65995 30.3404 5.84335 31.6177C6.19706 34.0805 7.5431 35.9899 9.6555 37.2639C12.0823 38.7278 14.7154 39.1863 17.5483 38.6787C19.6607 38.2988 21.557 37.6176 23.0471 35.9931C24.5766 34.3229 24.9237 32.3513 24.7371 30.1832C24.5078 27.4944 22.867 25.834 20.7153 24.5403C17.961 22.8864 14.9185 21.8974 11.9317 20.774C9.08564 19.7064 6.33461 18.4324 4.11413 16.261C1.92641 14.1191 1.18625 11.5024 1.6251 8.53192C2.20806 4.61825 4.80189 2.47965 8.28653 1.17618C10.3957 0.383625 12.5932 0.0430211 15.58 0.0135457Z" fill="white"/>
2180<path d="M162.384 0.721313H169.022C168.97 0.947291 168.931 1.12414 168.888 1.301C168.652 2.29661 168.217 3.28894 168.21 4.28456C168.161 14.7385 168.161 25.1891 168.21 35.6431C168.217 36.7992 
2180168.636 37.9552 168.878 39.1768H162.423C162.636 38.0895 162.872 37.0415 163.039 35.9837C163.153 35.2632 163.229 34.5263 163.232 33.7959C163.245 24.5407 163.275 15.2854 163.206 6.03015C163.196 4.51053 162.741 2.99419 162.492 1.47457C162.453 1.23877 162.423 0.999692 162.384 0.721313Z" fill="white"/>
2181</svg></a>
2182    </div>
2183
2184  </div>
2185</footer>
2186
2187
2188
2189</div>
2190<!-- END sections: footer-group -->
2191
2192    <ul hidden>
2193      <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li>
2194      <li id="a11y-new-window-message">Opens in a new window.</li>
2195    </ul>
2196
2197    
2197<script>
2198      window.shopUrl = 'https://sonniskin.com';
2199      window.routes = {
2200        cart_add_url: '/cart/add',
2201        cart_change_url: '/cart/change',
2202        cart_update_url: '/cart/update',
2203        cart_url: '/cart',
2204        predictive_search_url: '/search/suggest',
2205      };
2206
2207      window.cartStrings = {
2208        error: `There was an error while updating your cart. Please try again.`,
2209        quantityError: `You can only add [quantity] of this item to your cart.`,
2210      };
2211
2212      window.variantStrings = {
2213        addToCart: `Add to bag`,
2214        soldOut: `Sold out`,
2215        unavailable: `Unavailable`,
2216        unavailable_with_option: `[value] - Unavailable`,
2217      };
2218
2219      window.quickOrderListStrings = {
2220        itemsAdded: `[quantity] items added`,
2221        itemAdded: `[quantity] item added`,
2222        itemsRemoved: `[quantity] items removed`,
2223        itemRemoved: `[quantity] item removed`,
2224        viewCart: `View cart`,
2225        each: `[money]/ea`,
2226        min_error: `This item has a minimum of [min]`,
2227        max_error: `This item has a maximum of [max]`,
2228        step_error: `You can only add this item in increments of [step]`,
2229      };
2230
2231      window.accessibilityStrings = {
2232        imageAvailable: `Image [index] is now available in gallery view`,
2233        shareSuccess: `Link copied to clipboard`,
2234        pauseSlideshow: `Pause slideshow`,
2235        playSlideshow: `Play slideshow`,
2236        recipientFormExpanded: `Gift card recipient form expanded`,
2237        recipientFormCollapsed: `Gift card recipient form collapsed`,
2238        countrySelectorSearchCount: `[count] countries/regions found`,
2239      };
2240    </script>
2240<script src="//sonniskin.com/cdn/shop/t/13/assets/predictive-search.js?v=57209189334897115771782903944" defer="defer"></script>
2240<script async src="https://static.shopmy.us/Affiliates/sms_aff_clicktrack.js?domain=sonniskin.com&expires=30"></script>
2240
2241   
2242  <style> cart-notification {display: none !important;} div[aria-label="POPUP Form"] div.needsclick button[type="button"] {padding: 10px !important;} </style>
2243<div id="shopify-block-AdTBORzdUdm95L0F1Z__1537173939754162885" class="shopify-block shopify-app-block">
2244
2245<script>
2246  window.accessProWidgetSettings = {"icon":"default","icon_size":"default","icon_style":"thick","widget_size":"large","icon_position":"BR","color_template":"custom","enable_features":true,"icon_color_fill":"#002459","icon_color_stroke":"#002459","enableMenuSettings":{"links":true,"reset":true,"cursor":true,"images":true,"sounds":true,"videos":true,"mission":true,"contrast":true,"dyslexic":true,"headings":true,"profiles":true,"alignment":true,"animation":true,"fontscale":true,"languages":true,"magnifier":true,"fontweight":true,"hidewidget":false,"saturation":true,"adhdprofile":true,"linespacing":true,"readingmask":true,"text2speech":false,"textsummary":true,"readingguide":false,"letterspacing":true,"pagestructure":true,"readerprofile":true,"describeimages":false,"seizureprofile":true,"cognitiveprofile":true},"menu_content_color":"#002459","selected_languages":["en","fr","es","de"],"default_menu_language":"en","menu_header_font_color":"#ffffff","open_accessibility_profile":true,"menu_header_background_color":"#002459"};
2247  window.accessProComplianceSettings = {"compliance_title":"Our Mission","compliance_content":"\u003cdiv class=\"ap-compliance-main-title\"\u003e\u003cstrong\u003eAccessPro Compliance Mission Statement\u003c\/strong\u003e\u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-wrapper\"\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eWCAG 2.2 Commitment:\u003c\/strong\u003e We strictly adhere to WCAG 2.2 AA guidelines.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003ePersonalized UI:\u003c\/strong\u003e Users with disabilities can personalize the interface.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eAI-Based Compliance:\u003c\/strong\u003e We use AI to maintain accessibility during updates.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eARIA Attributes:\u003c\/strong\u003e Meaningful data for screen-readers using ARIA attributes.\u003c\/div\u003e \u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-wrapper\"\u003e\u003cdiv class=\"ap-compliance-list-title\"\u003e\u003cstrong\u003eOptimized Screen Reader and Keyboard Navigation:\u003c\/strong\u003e\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list\"\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eScreen-reader Optimization:\u003c\/strong\u003e ARIA attributes for meaningful data.\u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eImage Description:\u003c\/strong\u003e Auto image descriptions for better understanding.\u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eOCR Technology:\u003c\/strong\u003e Text extraction from images.\u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eKeyboard Navigation:\u003c\/strong\u003e Enhanced keyboard operability. \u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eContent-skip Menus:\u003c\/strong\u003e Easy navigation with shortcuts.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003ePopup Handling:\u003c\/strong\u003e Improved handling of popups.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eShortcuts:\u003c\/strong\u003e Quick access to key elements with shortcuts.\u003c\/div\u003e\u003c\/div\u003e \u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-wrapper\"\u003e\u003cdiv class=\"ap-compliance-list-title\"\u003e\u003cstrong\u003eSpecialized Profiles for Disabilities:\u003c\/strong\u003e\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list\"\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eEpilepsy Safe Profile:\u003c\/strong\u003e Safe browsing with reduced triggers.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eVision Impaired Profile:\u003c\/strong\u003e Enhanced interface for visual impairments.\u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eCognitive Disability Profile:\u003c\/strong\u003e Assistive features for cognitive disabilities.\u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eADHD-Friendly Profile:\u003c\/strong\u003e Minimized distractions for ADHD users.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eBlind Users Profile:\u003c\/strong\u003e Compatibility with popular screen-readers.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eKe
2247yboard Navigation Profile:\u003c\/strong\u003e Navigate with keyboard commands.\u003c\/div\u003e\u003c\/div\u003e \u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-wrapper\"\u003e\u003cdiv class=\"ap-compliance-list-title\"\u003e\u003cstrong\u003eCustomizable User Interface Adjustments:\u003c\/strong\u003e\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list\"\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eFont Adjustments:\u003c\/strong\u003e Customize font settings for readability.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eColour Adjustments:\u003c\/strong\u003e Choose contrast profiles and color schemes.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eAnimations:\u003c\/strong\u003e Disable animations for user safety.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eContent Highlighting:\u003c\/strong\u003e Emphasize key elements.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eAudio Muting:\u003c\/strong\u003e Instantly mute the website.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eCognitive Disorders:\u003c\/strong\u003e Linked search engine for better understanding.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eAdditional Functions:\u003c\/strong\u003e Various customizable options.\u003c\/div\u003e\u003c\/div\u003e \u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-wrapper\"\u003e\u003cdiv class=\"ap-compliance-list-title\"\u003e\u003cstrong\u003eBrowser and Assistive Technology Support:\u003c\/strong\u003e\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list\"\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eSupported Browsers:\u003c\/strong\u003e Google Chrome, Mozilla Firefox, Apple Safari, Opera, Microsoft Edge.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eSupported Screen Readers:\u003c\/strong\u003e JAWS (Windows\/MAC), NVDA (Windows\/MAC).\u003c\/div\u003e\u003c\/div\u003e \u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-wrapper\"\u003e\u003cdiv class=\"ap-compliance-list-title\"\u003e\u003cstrong\u003eContinual Accessibility Improvement:\u003c\/strong\u003e\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list\"\u003e \u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eOngoing Efforts:\u003c\/strong\u003e We continuously enhance accessibility. \u003c\/div\u003e \u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eGoal:\u003c\/strong\u003e Achieve maximum accessibility with evolving technology.\u003c\/div\u003e\u003cdiv class=\"ap-compliance-list-item\"\u003e• \u003cstrong\u003eContact Us:\u003c\/strong\u003e Reach out via the website’s contact form for queries or concerns.\u003c\/div\u003e\u003c\/div\u003e \u003c\/div\u003e","statement_action":"popup","statement_redirect_url":"","statement_redirect_page_id":""};
2248  window.accessProCurrentPage = {
2249    pageType: "blog",
2250    path: "\/blogs\/light-reading"
2251  };
2252</script>
2252
2253
2254<style>
2255    
2256
2257  .asw-widget-button-top {
2258     position: absolute !important;
2259     top: 10px !important;
2260     left: 10px !important;
2261     background-color: #000 !important;
2262     color: #fff !important;
2263     text-decoration: none !important;
2264     overflow: hidden;
2265     width: 1px !important;
2266     height: 1px !important;
2267     margin: -1px !important;
2268     padding: 0 !important;
2269     border: 0 !important;
2270     clip: rect(0 0 0 0) !important;
2271     word-wrap: normal !important;
2272  }
2273    .asw-widget-button-top-focused,
2274    .asw-widget-button-top:focus {
2275      z-index: 9999 !important;
2276      overflow: auto !important;
2277      width: auto !important;
2278      height: auto !important;
2279      clip: auto !important;
2280      padding: 10px 15px !important;
2281    }
2282
2283    #acp-virtualKeyboardPopup {
2284      position: fixed;
2285      bottom: 80px;
2286      left: 50%;
2287      transform: translateX(-50%);
2288      background: #ffffff !important;
2289      border: 1px solid #ccc;
2290      padding: 8px;
2291      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
2292      z-index: 9999;
2293      display: none;
2294      width: 90%;
2295      max-width: 600px;
2296      border-radius: 10px;
2297    }
2298
2299    #acp-virtual-input {
2300      width: 100%;
2301      padding: 10px;
2302      font-size: 16px;
2303      margin-bottom: 10px;
2304    }
2305
2306    #acp-closeKeyboardBtn {
2307      color: #fff;
2308      border: none;
2309      padding: 1px 3px;
2310      cursor: pointer;
2311      float: right;
2312      border-radius: 4px;
2313      margin-bottom: 5px;
2314    }
2315    #acp-definition-popup {
2316      position: absolute;
2317      display: none;
2318      padding: 10px;
2319      background: white;
2320      border: 1px solid #ccc;
2321      z-index: 1000;
2322      border-radius: 14px;
2323    }
2324</style>
2325
2326<div id="acp-icon"></div>
2327<div id="acp-widget"></div>
2328
2329<!-- Virtual Keyboard Input and Keyboard -->
2330<div
2331  id="acp-definition-popup"
2332></div>
2333<div
2334  id="acp-dictionary-toast"
2335  class="asw-text-speech-bar"
2336  style="display: none;"
2337  data-ap-translate="DICTIONARY DESC"
2338>
2339  Double click on a word to see the definition.
2340</div>
2341<div id="acp-virtualKeyboardPopup" role="dialog" aria-modal="true" aria-label="Virtual keyboard popup">
2342  <button id="acp-closeKeyboardBtn" aria-label="Close virtual keyboard">
2343    <svg
2344      xmlns="http://www.w3.org/2000/svg"
2345      width="24"
2346      height="24"
2347      viewBox="0 0 24 24"
2348      fill="none"
2349    >
2350      <path
2351        d="M18 6L6 18"
2352        stroke="black"
2353        strokeWidth="2"
2354        strokeLinecap="round"
2355        strokeLinejoin="round"
2356      />
2357      <path
2358        d="M6 6L18 18"
2359        stroke="black"
2360        strokeWidth="2"
2361        strokeLinecap="round"
2362        strokeLinejoin="round"
2363      />
2364    </svg>
2365  </button>
2366  
2367  <div id="acp-virtual-keyboard" class="simple-keyboard"></div>
2368  
2368<script>
2369    function makeDraggableVirtualKeyboard(el) {
2370      let pos1 = 0,
2371        pos2 = 0,
2372        pos3 = 0,
2373        pos4 = 0;
2374
2375      el.onmousedown = dragMouseDown;
2376
2377      function dragMouseDown(e) {
2378        e.preventDefault();
2379        pos3 = e.clientX;
2380        pos4 = e.clientY;
2381        document.onmouseup = closeDragElement;
2382        document.onmousemove = elementDrag;
2383      }
2384
2385      function elementDrag(e) {
2386        e.preventDefault();
2387        pos1 = pos3 - e.clientX;
2388        pos2 = pos4 - e.clientY;
2389        pos3 = e.clientX;
2390        pos4 = e.clientY;
2391        el.style.top = el.offsetTop - pos2 + 'px';
2392        el.style.left = el.offsetLeft - pos1 + 'px';
2393        el.style.bottom = 'unset';
2394        el.style.right = 'unset';
2395      }
2396
2397      function closeDragElement() {
2398        document.onmouseup = null;
2399        document.onmousemove = null;
2400      }
2401    }
2402
2403    makeDraggableVirtualKeyboard(document.getElementById('acp-virtualKeyboardPopup'));
2404  </script>
2404
2405</div>
2406<script>
2407  // App Procxy Handle
2408  
2409  window.accessProProxyHandle = '/apps/access-pro';
2410  
2411
2412  // URLs
2413  window.accessProSettingsUrl = `${window.accessProProxyHandle}/theme/settings/`;
2414  window.accessProPageViewsCountUrl = `${window.accessProProxyHandle}/theme/views/update/count`;
2415  
2416
2417  // Translation URL
2418  var shopify_domain = `uijg2k-cd.myshopify.com`;
2419  window.accessProTranslationUrl = `https://access-pro-api.entanglecommerce.com/api/v1/language/translate/?domain=${shopify_domain}`;
2420  window.pageViewsCountURL = `${window.accessProProxyHandle}/theme/views/update/count`;
2421</script>
2421
2422
2423<script src="https://cdn.shopify.com/extensions/01a1115f-a4db-79a9-998b-83572f4594c6/access-pro-2-247/assets/main.js" defer></script>
vendor: 1 bytes, line 2423
2423
2424<script>
2425  (function () {
2426    var params = new URLSearchParams(window.location.search);
2427    var token = params.get('acp_scan');
2428    if (!token) return;
2429
2430    function showScanOverlay(message) {
2431      var el = document.getElementById('acp-scan-overlay');
2432      if (!el) {
2433        el = document.createElement('div');
2434        el.id = 'acp-scan-overlay';
2435        el.style.cssText =
2436          'position:fixed;inset:0;background:rgba(255,255,255,0.94);z-index:2147483647;display:flex;align-items:center;justify-content:center;font-family:system-ui,-apple-system,sans-serif;';
2437        el.innerHTML =
2438          '<div style="text-align:center;max-width:320px;padding:24px">' +
2439          '<p style="font-size:18px;font-weight:600;margin:0 0 8px;color:#111">Scanning for accessibility</p>' +
2440          '<p id="acp-scan-overlay-status" style="font-size:14px;color:#666;margin:0"></p>' +
2441          '</div>';
2442        document.body.appendChild(el);
2443      }
2444      var status = document.getElementById('acp-scan-overlay-status');
2445      if (status) status.textContent = message || 'Please wait…';
2446    }
2447
2448    showScanOverlay('Preparing accessibility scan…');
2449
2450    function hideOverlay() {
2451      var el = document.getElementById('acp-scan-overlay');
2452      if (el) el.style.display = 'none';
2453    }
2454
2455    function pageIsThemePreview() {
2456      try {
2457        return Boolean(new URLSearchParams(window.location.search).get('preview_theme_id'));
2458      } catch (e) {
2459        return false;
2460      }
2461    }
2462
2463    // Shopify stores the unpublished theme in a storefront cookie. Clear it
2464    // here so the scan window never has to navigate to the live theme.
2465    var previewExitPromise = null;
2466    function exitThemePreviewQuietly() {
2467      if (!pageIsThemePreview()) return Promise.resolve();
2468      if (previewExitPromise) return previewExitPromise;
2469      previewExitPromise = new Promise(function (resolve) {
2470        var settled = false;
2471        function finish() {
2472          if (settled) return;
2473          settled = true;
2474          resolve();
2475        }
2476        setTimeout(finish, 2000);
2477        try {
2478          var frame = document.createElement('iframe');
2479          frame.setAttribute('aria-hidden', 'true');
2480          frame.title = '';
2481          frame.style.cssText =
2482            'position:absolute;width:0;height:0;border:0;visibility:hidden';
2483          frame.src = window.location.origin + '/?exitPreview=1';
2484          (document.body || document.documentElement).appendChild(frame);
2485        } catch (e) {}
2486        try {
2487          fetch(window.location.origin + '/?exitPreview=1', {
2488            credentials: 'include',
2489            cache: 'no-store',
2490            redirect: 'follow',
2491          }).catch(function () {});
2492        } catch (e) {}
2493      });
2494      return previewExitPromise;
2495    }
2496
2497    window.addEventListener('message', function (event) {
2498      if (event.source !== window.opener) return;
2499      var data = event.data;
2500      if (!data || data.type !== 'accesspro-exit-preview') return;
2501      exitThemePreviewQuietly().then(function () {
2502        if (window.opener) {
2503          window.opener.postMessage({ type: 'accesspro-preview-exited' }, '*');
2504        }
2505      });
2506    });
2507
2508    function submitScanResult(payload) {
2509      var params = new URLSearchParams(window.location.search);
2510      var jobId = params.get('acp_job');
2511      if (!jobId) {
2512        return;
2513      }
2514
2515      var pageUrl = window.location.origin + window.location.pathname;
2516      fetch(window.accessProProxyHandle + '/theme/accessibility-scan/complete', {
2517        method: 'POST',
2518        headers: { 'Content-Type': 'application/json' },
2519        body: JSON.stringify({
2520          jobId: jobId,
2521          scanToken: token,
2522          url: pageUrl,
2523          axeResults: payload.results || null,
2524          error:
2525            payload.type === 'accesspro-axe-scan-error'
2526              ? payload.message || 'Accessibility scan failed'
2527              : null,
2528        }),
2529      })
2530        .then(function (response) {
2531          return response.json().catch(function () {
2532            return {};
2533          });
2534        })
2535        .then(function (data) {
2536          if (window.opener) {
2537            var isFinal = data.reportId != null;
2538            var hasError = !data.success;
2539            var isNextScanPage = false;
2540            if (data.redirectUrl) {
2541              try {
2542                isNextScanPage = new URL(data.redirectUrl).searchParams.has('acp_scan');
2543              } catch (e) {}
2544            }
2545            var continuing = isNextScanPage && data.redirectUrl && !isFinal && !hasError;
2546
2547            function deliver() {
2548              window.opener.postMessage(
2549                {
2550                  type: 'accesspro-axe-scan-progress',
2551                  jobId: jobId,
2552                  redirectUrl: data.redirectUrl || null,
2553                  reportId: data.reportId != null ? data.reportId : null,
2554                  error: data.success ? null : (data.message || 'Scan failed'),
2555                },
2556                '*',
2557              );
2558
2559              if (isFinal) {
2560                showScanOverlay('Returning to your audit report…');
2561                return;
2562              }
2563
2564              if (continuing) {
2565                showScanOverlay('Scanning next page…');
2566                window.location.href = data.redirectUrl;
2567                return;
2568              }
2569
2570              setTimeout(function () {
2571                window.close();
2572              }, 400);
2573            }
2574
2575            if (pageIsThemePreview() && !continuing) {
2576              if (isFinal) showScanOverlay('Returning to your audit report…');
2577              exitThemePreviewQuietly().then(deliver);
2578              return;
2579            }
2580
2581            deliver();
2582            return;
2583          }
2584          if (data.redirectUrl) {
2585            showScanOverlay('Returning to your audit report…');
2586            window.location.href = data.redirectUrl;
2587            return;
2588          }
2589          showScanOverlay(data.message || 'Scan failed');
2590          if (window.opener) {
2591            window.opener.postMessage(
2592              {
2593                type: 'accesspro-axe-scan-progress',
2594                jobId: jobId,
2595                error: data.message || 'Scan failed',
2596              },
2597              '*',
2598            );
2599          }
2600        })
2601        .catch(function (err) {
2602          var message =
2603            (err && err.message) || 'Scan failed';
2604          showScanOverlay(message);
2605          function deliver() {
2606            if (!window.opener) return;
2607            var jobIdErr = new URLSearchParams(window.location.search).get('acp_job');
2608            window.opener.postMessage(
2609              {
2610                type: 'accesspro-axe-scan-progress',
2611                jobId: jobIdErr,
2612                error: message,
2613              },
2614              '*',
2615            );
2616          }
2617          if (pageIsThemePreview()) {
2618            exitThemePreviewQuietly().then(deliver);
2619            return;
2620          }
2621          deliver();
2622        });
2623    }
2624
2625    function waitForFullPageLoad() {
2626      return new Promise(function (resolve) {
2627        function settle() {
2628          // Extended settle time for dynamic content, carousels, lazy sections
2629          // Wait for network idle + animations + JS state changes
2630          setTimeout(function() {
2631            // Wait for any lazy images to finish loading
2632            var images = Array.prototype.slice.call(document.querySelectorAll('img[loading="lazy"]'));
2633            var pendingImages = images.filter(function(img) {
2634              return !img.complete;
2635            });
2636            
2637            if (pendingImages.length > 0) {
2638              var loaded = 0;
2639              var timeout = setTimeout(function() {
2640                resolve(); // Don't wait forever
2641              }, 2000);
2642              
2643              pendingImages.forEach(function(img) {
2644                function handleLoad() {
2645                  loaded++;
2646                  if (loaded >= pendingImages.length) {
2647                    clearTimeout(timeout);
2648                    // Additional wait for any pending RAF or microtasks
2649                    requestAnimationFrame(function() {
2650                      setTimeout(resolve, 100);
2651                    });
2652                  }
2653                }
2654                img.addEventListener('load', handleLoad, { once: true });
2655                img.addEventListener('error', handleLoad, { once: true });
2656              });
2657            } else {
2658              // Additional wait for any pending RAF or microtasks
2659              requestAnimationFrame(function() {
2660                setTimeout(resolve, 100);
2661              });
2662            }
2663          }, 3000);
2664        }
2665        if (document.readyState === 'complete') {
2666          settle();
2667          return;
2668        }
2669        window.addEventListener('load', settle, { once: true });
2670      });
2671    }
2672
2673    // Port of accessibility-scanner Phase 3 WCAG 2.2 / APG checks (browser-side).
2674    // Findings are merged into axe violations/incomplete so the existing pipeline needs no changes.
2675    function isAccessProScanElement(el) {
2676      if (!el || !el.closest) return false;
2677      return !!(
2678        el.closest('#acp-icon') ||
2679        el.closest('#acp-widget') ||
2680        el.closest('#acp-virtualKeyboardPopup') ||
2681        el.closest('#acp-definition-popup') ||
2682        el.closest('#acp-dictionary-toast') ||
2683        el.closest('#acp-scan-overlay') ||
2684        el.closest('[id^="acp-"]') ||
2685        el.closest('.asw-widget-button-top')
2686      );
2687    }
2688    
2689    // Enhanced element visibility check including all CSS hiding techniques
2690    function isElementVisible(el) {
2691      if (!el || !el.getBoundingClientRect) return false;
2692      var style = window.getComputedStyle(el);
2693      if (style.display === 'none' || style.visibility === 'hidden') return false;
2694      if (style.opacity === '0') return false;
2695      if (style.position === 'absolute' && style.clip === 'rect(0px, 0px, 0px, 0px)') return false;
2696      if (style.width === '1px' && style.height === '1px' && style.overflow === 'hidden') return false;
2697      var rect = el.getBoundingClientRect();
2698      if (rect.width === 0 || rect.height === 0) return false;
2699      return true;
2700    }
2701
2702    function runWcag22Checks() {
2703      var violations = [];
2704      var incomplete = [];
2705
2706      try {
2707        // WCAG 2.4.11 Focus Not Obscured — sticky/fixed heuristic (manual review)
2708        var stickyElements = Array.prototype.slice
2709          .call(document.querySelectorAll('*'))
2710          .filter(function (el) {
2711            if (isAccessProScanElement(el)) return false;
2712            if (!isElementVisible(el)) return false;
2713            var style = getComputedStyle(el);
2714            return (
2715              (style.position === 'sticky' || style.position === 'fixed') &&
2716              el.getBoundingClientRect().height > 40
2717            );
2718          })
2719          .slice(0, 5)
2720          .map(function (el) {
2721            var style = getComputedStyle(el);
2722            return {
2723              tag: el.tagName.toLowerCase(),
2724              id: el.id || null,
2725              height: Math.round(el.getBoundingClientRect().height),
2726              position: style.position,
2727            };
2728          });
2729
2730        if (stickyElements.length > 0) {
2731          incomplete.push({
2732            id: 'focus-not-obscured',
2733            impact: 'serious',
2734            tags: ['wcag22aa', 'wcag2411'],
2735            description:
2736              'WCAG 2.4.11: Focused elements must not be entirely obscured. Fixed/sticky elements detected — manual keyboard testing required.',
2737            helpUrl:
2738              'https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html',
2739            nodes: stickyElements.map(function (e) {
2740              return {
2741                html:
2742                  '<' +
2743                  e.tag +
2744                  (e.id ? ' id="' + e.id + '"' : '') +
2745                  '> (' +
2746                  e.position +
2747                  ', ' +
2748                  e.height +
2749                  'px tall)',
2750                target: [e.tag + (e.id ? '#' + e.id : '')],
2751                failureSummary:
2752                  'Fixed/sticky element may obscure focused components. Verify with keyboard navigation.',
2753              };
2754            }),
2755          });
2756        }
2757        
2758        // NEW: aria-hidden-focus check - elements with aria-hidden="true" that are focusable
2759        var hiddenFocusable = [];
2760        document.querySelectorAll('[aria-hidden="true"]').forEach(function(el) {
2761          if (isAccessProScanElement(el)) return;
2762          // Check if this element or any descendant is focusable
2763          var focusableSelectors = 'a[href], button, input, select, textarea, [tabindex]:not
2763([tabindex="-1"])';
2764          var focusables = el.matches(focusableSelectors) ? [el] : Array.prototype.slice.call(el.querySelectorAll(focusableSelectors));
2765          focusables.forEach(function(focusEl) {
2766            if (isElementVisible(focusEl) && focusEl.tabIndex >= 0) {
2767              hiddenFocusable.push({
2768                html: focusEl.outerHTML.slice(0, 500),
2769                selector: buildScanSelector(focusEl),
2770                parentHiddenHtml: el.outerHTML.slice(0, 200)
2771              });
2772            }
2773          });
2774        });
2775        
2776        if (hiddenFocusable.length > 0) {
2777          violations.push({
2778            id: 'aria-hidden-focus',
2779            impact: 'serious',
2780            tags: ['wcag2aa', 'wcag412'],
2781            description: 'WCAG 4.1.2: Focusable elements must not be hidden with aria-hidden="true"',
2782            helpUrl: 'https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html',
2783            nodes: hiddenFocusable.slice(0, 10).map(function(item) {
2784              return {
2785                html: item.html,
2786                target: [item.selector],
2787                failureSummary: 'Focusable element is inside aria-hidden="true" container'
2788              };
2789            })
2790          });
2791        }
2792
2793        // WCAG 2.5.3 Label in Name - Enhanced with better visible text extraction
2794        // Visible text = text rendered on screen (excludes aria-hidden, sr-only, SVG internals).
2795        function getVisibleText(el) {
2796          var text = '';
2797          for (var i = 0; i < el.childNodes.length; i++) {
2798            var child = el.childNodes[i];
2799            if (child.nodeType === 3) { text += child.textContent; continue; }
2800            if (child.nodeType !== 1) continue;
2801            if (child.getAttribute('aria-hidden') === 'true') continue;
2802            var st = window.getComputedStyle(child);
2803            if (st.display === 'none' || st.visibility === 'hidden') continue;
2804            if (st.opacity === '0') continue;
2805            if (st.position === 'absolute') {
2806              var clip = st.clip;
2807              if (clip === 'rect(0px, 0px, 0px, 0px)' || clip === 'rect(0, 0, 0, 0)') continue;
2808            }
2809            if (st.width === '1px' && st.height === '1px' && st.overflow === 'hidden') continue;
2810            if (st.fontSize === '0px' || st.width === '0px' || st.height === '0px') continue;
2811            text += getVisibleText(child);
2812          }
2813          return text;
2814        }
2815        function buildScanSelector(el) {
2816          if (el.id) return '#' + CSS.escape(el.id);
2817          var testId = el.getAttribute('data-testid') || el.getAttribute('data-test-id');
2818          if (testId) return '[data-testid="' + testId + '"]';
2819          var tag = el.tagName.toLowerCase();
2820          var cls = (el.getAttribute('class') || '').split(/\s+/).filter(function (c) {
2821            return c && c.length < 60 && !/^(active|is-|js-|open|hidden|focus|hover)/i.test(c);
2822          }).slice(0, 3);
2823          return cls.length ? tag + '.' + cls.join('.') : tag;
2824        }
2825        
2826        // Enhanced selector to catch more interactive elements
2827        var interactiveSelector = 'button, [role="button"], a[aria-label], [role="link"][aria-label], ' +
2828          '[role="menuitem"][aria-label], [role="tab"][aria-label], [role="checkbox"][aria-label], ' +
2829          '[role="radio"][aria-label], [role="switch"][aria-label], [role="combobox"][aria-label], ' +
2830          '[role="searchbox"][aria-label], [role="textbox"][aria-label]';
2831          
2832        var mismatches = Array.prototype.slice
2833          .call(document.querySelectorAll(interactiveSelector))
2834          .filter(function (el) {
2835            return !isAccessProScanElement(el) && isElementVisible(el);
2836          })
2837          .map(function (el) {
2838            var ariaLabel = el.getAttribute('aria-label') || '';
2839            var visibleText = getVisibleText(el).replace(/\s+/g, ' ').trim();
2840            if (!ariaLabel || !visibleText) return null;
2841            if (visibleText.length <= 1) return null;
2842            
2843            // Normalize for comparison - remove punctuation and make case-insensitive
2844            var normalizedLabel = ariaLabel.toLowerCase().replace(/[^\w\s]/g, '');
2845            var normalizedVisible = visibleText.toLowerCase().replace(/[^\w\s]/g, '');
2846            
2847            // Check if visible text is substring of aria-label
2848            if (normalizedLabel.includes(normalizedVisible)) return null;
2849            
2850            // Check word-by-word containment for multi-word labels
2851            var visibleWords = normalizedVisible.split(/\s+/).filter(Boolean);
2852            if (visibleWords.length > 0) {
2853              var allWordsPresent = visibleWords.every(function(word) {
2854                return normalizedLabel.includes(word);
2855              });
2856              if (allWordsPresent) return null;
2857            }
2858            
2859            return {
2860              html: el.outerHTML.slice(0, 500),
2861              selector: buildScanSelector(el),
2862              ariaLabel: ariaLabel,
2863              visibleText: visibleText,
2864            };
2865          })
2866          .filter(Boolean)
2867          .slice(0, 10);
2868
2869        if (mismatches.length > 0) {
2870          violations.push({
2871            id: 'label-in-name',
2872            impact: 'serious',
2873            tags: ['wcag21a', 'wcag253'],
2874            description: 'WCAG 2.5.3: Accessible name must contain visible label text',
2875            helpUrl: 'https://www.w3.org/WAI/WCAG22/Understanding/label-in-name.html',
2876            nodes: mismatches.map(function (m) {
2877              return {
2878                html: m.html,
2879                target: [m.selector],
2880                failureSummary:
2881                  'aria-label="' +
2882                  m.ariaLabel +
2883                  '" does not contain visible text "' +
2884                  m.visibleText +
2885                  '"',
2886              };
2887            }),
2888          });
2889        }
2890
2891        // 2.5.7 Dragging Movements
2892        var draggableElements = Array.prototype.slice
2893          .call(
2894            document.querySelectorAll(
2895              '[draggable="true"], [data-sortable], .sortable-item',
2896            ),
2897          )
2898          .filter(function (el) {
2899            return !isAccessProScanElement(el);
2900          })
2901          .slice(0, 5)
2902          .map(function (el) {
2903            return {
2904              html: el.outerHTML.slice(0, 500),
2905              selector: buildScanSelector(el),
2906            };
2907          });
2908
2909        if (draggableElements.length > 0) {
2910          incomplete.push({
2911            id: 'dragging-movements',
2912            impact: 'serious',
2913            tags: ['wcag22aa', 'wcag257'],
2914            description:
2915              'WCAG 2.5.7: Draggable elements must have a single-pointer alternative. Manual verification required.',
2916            helpUrl: 'https://www.w3.org/WAI/WCAG22/Understanding/dragging-movements.html',
2917            nodes: draggableElements.map(function (e) {
2918              return {
2919                html: e.html,
2920                target: [e.selector],
2921                failureSummary:
2922                  'Verify that a keyboard or single-pointer alternative exists for this drag operation.',
2923              };
2924            }),
2925          });
2926        }
2927
2928        // ARIA APG: Dialog Pattern
2929        var badDialogs = Array.prototype.slice
2930          .call(document.querySelectorAll('[role="dialog"], [role="alertdialog"]'))
2931          .filter(function (el) {
2932            if (isAccessProScanElement(el)) return false;
2933            return !(
2934              el.hasAttribute('aria-labelledby') || el.hasAttribute('aria-label')
2935            );
2936          })
2937          .slice(0, 5)
2938          .map(function (el) {
2939            return {
2940              html: el.outerHTML.slice(0, 500),
2941              selector: buildScanSelector(el),
2942            };
2943          });
2944
2945        if (badDialogs.length > 0) {
2946          violations.push({
2947            id: 'dialog-missing-label',
2948            impact: 'serious',
2949            tags: ['aria-apg', 'wcag2aa'],
2950            description:
2951              'ARIA APG Dialog Pattern: role="dialog" must have aria-labelledby or aria-label',
2952            helpUrl: 'https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/',
2953            nodes: badDialogs.map(function (d) {
2954              return {
2955                html: d.html,
2956                target: [d.selector],
2957                failureSummary:
2958                  'Add aria-labelledby pointing to a visible dialog title, or aria-label.',
2959              };
2960            }),
2961          });
2962        }
2963
2964        // ARIA APG: Tabs Pattern — tabs must have aria-selected (true on active, false on others
2964)
2965        var badTabs = [];
2966        Array.prototype.slice
2967          .call(document.querySelectorAll('[role="tablist"]'))
2968          .forEach(function (tabList) {
2969            if (isAccessProScanElement(tabList)) return;
2970            var tabs = Array.prototype.slice.call(tabList.querySelectorAll('[role="tab"]'));
2971            var hasAnySelected = tabs.some(function (t) { return t.getAttribute('aria-selected') === 'true'; });
2972            tabs.forEach(function (tab) {
2973                if (isAccessProScanElement(tab)) return;
2974                if (!tab.hasAttribute('aria-selected')) {
2975                  // Detect if this tab appears active (has aria-current, class "active", etc.)
2976                  var looksActive = !hasAnySelected && tab.classList.contains('active');
2977                  badTabs.push({
2978                    html: tab.outerHTML.slice(0, 500),
2979                    selector: buildScanSelector(tab),
2980                    suggestValue: looksActive ? 'true' : 'false',
2981                  });
2982                }
2983              });
2984          });
2985        badTabs = badTabs.slice(0, 5);
2986
2987        if (badTabs.length > 0) {
2988          violations.push({
2989            id: 'tabs-missing-aria-selected',
2990            impact: 'serious',
2991            tags: ['aria-apg', 'wcag2aa'],
2992            description:
2993              'ARIA APG Tabs Pattern: each [role="tab"] must have aria-selected="true" or aria-selected="false"',
2994            helpUrl: 'https://www.w3.org/WAI/ARIA/apg/patterns/tabs/',
2995            nodes: badTabs.map(function (t) {
2996              return {
2997                html: t.html,
2998                target: [t.selector],
2999                failureSummary:
3000                  'Tab missing aria-selected. Suggested value: aria-selected="' + (t.suggestValue || 'false') + '"',
3001              };
3002            }),
3003          });
3004        }
3005      } catch (err) {
3006        console.warn(
3007          '[AccessPro][AxeScan][storefront] WCAG 2.2 checks error',
3008          err && err.message ? err.message : err,
3009        );
3010      }
3011
3012      return { violations: violations, incomplete: incomplete };
3013    }
3014
3015    function runAxeScan() {
3016      if (!window.axe) {
3017        showScanOverlay('Scan failed: axe-core not loaded');
3018        notifyScanOpener({
3019          type: 'accesspro-axe-scan-error',
3020          token: token,
3021          message: 'axe-core failed to load',
3022        });
3023        return;
3024      }
3025      
3026      // CRITICAL: Hide overlay before scan to prevent interference with color-contrast/visibility checks
3027      hideOverlay();
3028      
3029      // Run axe WITHOUT overlay visible to get accurate color contrast and visibility results
3030      window.axe
3031        .run(document, {
3032          runOnly: {
3033            type: 'tag',
3034            values: ['wcag2a', 'wcag2aa', 'wcag21aa', 'wcag22aa'],
3035          },
3036          exclude: [
3037            ['#acp-icon'],
3038            ['#acp-widget'],
3039            ['#acp-virtualKeyboardPopup'],
3040            ['#acp-definition-popup'],
3041            ['#acp-dictionary-toast'],
3042            ['#acp-scan-overlay'],
3043            ['.asw-widget-button-top'],
3044          ],
3045        })
3046        .then(function (results) {
3047          // Now safe to show overlay after scan completes
3048          showScanOverlay('Processing scan results…');
3049          var extra = runWcag22Checks();
3050          if (!results.violations) results.violations = [];
3051          if (!results.incomplete) results.incomplete = [];
3052          // Scanner stores customChecks separately; merge into axe arrays so
3053          // buildAxeScanSummary (customChecks: []) still surfaces them.
3054          results.violations = results.violations.concat(extra.violations || []);
3055          results.incomplete = results.incomplete.concat(extra.incomplete || []);
3056
3057          // List rule only: axe often stores just the opening <ul> tag.
3058          // Re-serialize with direct children so the report/AI Fixes show the real issue.
3059          enrichListViolationNodes(results);
3060
3061          notifyScanOpener({
3062            type: 'accesspro-axe-scan',
3063            token: token,
3064            url: window.location.href,
3065            results: results,
3066          });
3067        })
3068        .catch(function (err) {
3069          showScanOverlay('Scan failed');
3070          notifyScanOpener({
3071            type: 'accesspro-axe-scan-error',
3072            token: token,
3073            message: err && err.message ? err.message : 'Accessibility scan failed',
3074          });
3075        });
3076    }
3077
3078    /**
3079     * Optimize axe `list` node payloads only (no other rules).
3080     * Horizon overflow-list / ul[part=list] failures need children in HTML
3081     * so merchants see role=presentation / non-li children clearly.
3082     */
3083    function enrichListViolationNodes(results) {
3084      var violations = results && results.violations;
3085      if (!violations || !violations.length) return;
3086
3087      function queryInRoot(root, sel) {
3088        if (!root || !sel) return null;
3089        try {
3090          return root.querySelector(sel);
3091        } catch (e) {
3092          return null;
3093        }
3094      }
3095
3096      function resolveShadowPath(path) {
3097        if (!path) return null;
3098        if (typeof path === 'string') {
3099          return (
3100            queryInRoot(document, path) ||
3101            queryDeepAll(path)[0] ||
3102            null
3103          );
3104        }
3105        if (!Array.isArray(path) || !path.length) return null;
3106
3107        // Nested shadow path: ["host", "inner"] or [["host", "inner"]]
3108        var steps = path;
3109        if (steps.length === 1 && Array.isArray(steps[0])) {
3110          steps = steps[0];
3111        }
3112
3113        var ctx = document;
3114        var el = null;
3115        for (var i = 0; i < steps.length; i++) {
3116          var step = steps[i];
3117          if (Array.isArray(step)) {
3118            el = resolveShadowPath(step);
3119          } else {
3120            el = queryInRoot(ctx, String(step));
3121            if (!el && ctx === document) {
3122              el = queryDeepAll(String(step))[0] || null;
3123            }
3124          }
3125          if (!el) return null;
3126          ctx = el.shadowRoot || el;
3127        }
3128        return el;
3129      }
3130
3131      function queryDeepAll(sel) {
3132        var out = [];
3133        function walk(root) {
3134          if (!root || !root.querySelectorAll) return;
3135          try {
3136            Array.prototype.push.apply(out, root.querySelectorAll(sel));
3137          } catch (e) {
3138            /* invalid selector */
3139          }
3140          var all = root.querySelectorAll ? root.querySelectorAll('*') : [];
3141          for (var i = 0; i < all.length; i++) {
3142            if (all[i].shadowRoot) walk(all[i].shadowRoot);
3143          }
3144        }
3145        walk(document);
3146        return out;
3147      }
3148
3149      function serializeChildSnippet(child) {
3150        if (!child || !child.tagName) return '';
3151        var tag = child.tagName.toLowerCase();
3152        var role = (child.getAttribute && child.getAttribute('role')) || '';
3153        var part = (child.getAttribute && child.getAttribute('part')) || '';
3154        var cls = (child.getAttribute && child.getAttribute('class')) || '';
3155        var open =
3156          '<' +
3157          tag +
3158          (role ? ' role="' + role + '"' : '') +
3159          (part ? ' part="' + part + '"' : '') +
3160          (cls
3161            ? ' class="' +
3162              String(cls)
3163                .trim()
3164                .split(/\s+/)
3165                .slice(0, 3)
3166                .join(' ') +
3167              '"'
3168            : '') +
3169          '>';
3170        var text = (child.textContent || '').replace(/\s+/g, ' ').trim().slice(0, 40);
3171        return open + (text ? text : '…') + '</' + tag + '>';
3172      }
3173
3174      function serializeListHtml(listEl) {
3175        if (!listEl || !listEl.tagName) return '';
3176        var tag = listEl.tagName.toLowerCase();
3177        if (tag !== 'ul' && tag !== 'ol') return '';
3178        var openMatch = String(listEl.outerHTML || '').match(/^<[^>]+>/);
3179        var openTag = openMatch ? openMatch[0] : '<' + tag + '>';
3180        var children = Array.prototype.slice.call(listEl.children || []).slice(0, 10);
3181        if (!children.length) return openTag;
3182        var lines = children.map(function (child) {
3183          return '  ' + serializeChildSnippet(child);
3184        });
3185        if ((listEl.children || []).length > 10) {
3186          lines.push('  <!-- … ' + (listEl.children.length - 10) + ' more -->');
3187        }
3188        return openTag + '\n' + lines.join('\n') + '\n</' + tag + '>';
3189      }
3190
3191      function findListFallback() {
3192        var candidates = queryDeepAll('ul[part="list"], overflow-list ul, ul, ol');
3193        var withBad = candidates.filter(function (listEl) {
3194          return Array.prototype.some.call(listEl.children || [], function (child) {
3195            var role = (child.getAttribute && child.getAttribute('role')) || '';
3196            var t = (child.tagName || '').toLowerCase();
3197            return (
3198              role === 'presentation' ||
3199              role === 'none' ||
3200              (t !== 'li' && t !== 'script' && t !== 'template' && t !== 'style')
3201            );
3202          });
3203        });
3204        return withBad.length === 1 ? withBad[0] : null;
3205      }
3206
3207      violations.forEach(function (v) {
3208        if (!v || v.id !== 'list') return;
3209        (v.nodes || []).forEach(function (node) {
3210          if (!node) return;
3211          var hintHtml = String(node.html || '');
3212          var el = resolveShadowPath(node.target);
3213
3214          // Flat axe targets like ["ul"] are too generic — prefer part=list from html hint.
3215          if (
3216            el &&
3217            /part\s*=\s*["']list["']/i.test(hintHtml) &&
3218            !(el.getAttribute && el.getAttribute('part') === 'list')
3219          ) {
3220            var partLists = queryDeepAll('ul[part="list"]');
3221            if (partLists.length === 1) el = partLists[0];
3222            else if (partLists.length > 1) {
3223              var badPart = partLists.filter(function (listEl) {
3224                return Array.prototype.some.call(listEl.children || [], function (child) {
3225                  var role = (child.getAttribute && child.getAttribute('role')) || '';
3226                  return role === 'presentation' || role === 'none';
3227                });
3228              });
3229              if (badPart.length === 1) el = badPart[0];
3230            }
3231          }
3232
3233          if (el && el.tagName) {
3234            var t = el.tagName.toLowerCase();
3235            if (t !== 'ul' && t !== 'ol' && el.closest) {
3236              el = el.closest('ul, ol') || el;
3237            }
3238          }
3239          if (!el || !el.tagName || !/^(UL|OL)$/.test(el.tagName)) {
3240            el = findListFallback();
3241          }
3242          if (!el) return;
3243
3244          var better = serializeListHtml(el);
3245          if (better && better.length > hintHtml.length) {
3246            node.html = better.slice(0, 2500);
3247          }
3248
3249          // Prefer a stable, actionable selector for Horizon chrome lists.
3250          if (el.getAttribute && el.getAttribute('part') === 'list') {
3251            node.target = ['ul[part="list"]'];
3252          }
3253        });
3254      });
3255    }
3256
3257    function notifyScanOpener(payload) {
3258      if (window.opener && payload.type === 'accesspro-axe-scan-error') {
3259        var jobId = new URLSearchParams(window.location.search).get('acp_job');
3260        showScanOverlay('Scan failed');
3261        window.opener.postMessage(
3262          {
3263            type: 'accesspro-axe-scan-progress',
3264            jobId: jobId,
3265            error: payload.message || 'Accessibility scan failed',
3266          },
3267          '*',
3268        );
3269        setTimeout(function () {
3270          window.close();
3271        }, 400);
3272        return;
3273      }
3274      submitScanResult(payload);
3275    }
3276
3277    var script = document.createElement('script');
3278    // cdnjs only goes up to 4.10.3; jsDelivr serves 4.11.1 (matches accessibility-scanner).
3279    script.src = 'https://cdn.jsdelivr.net/npm/[email protected]/axe.min.js';
3280    script.onload = function () {
3281      waitForFullPageLoad().then(runAxeScan);
3282    };
3283    script.onerror = function () {
3284      notifyScanOpener({
3285        type: 'accesspro-axe-scan-error',
3286        token: token,
3287        message: 'Failed to load axe-core',
3288      });
3289    };
3290    document.head.appendChild(script);
3291  })();
3292</script>
3292
3293
3294
3295<style>
3296  .accesspro-icon {
3297    display: inline-flex;
3298    flex-direction: column;
3299    align-items: center;
3300    gap: 4px;
3301    cursor: pointer;
3302    text-decoration: none;
3303    vertical-align: middle;
3304    color: var(--acp-trigger-color, #23185c);
3305  }
3306
3307  /* Icon-only triggers should not reserve a text line box. */
3308  .accesspro-icon[icon='true']:not(.acp-trigger--has-text) {
3309    line-height: 0;
3310  }
3311
3312  .accesspro-icon .asw-menu-btn-container {
3313    flex-shrink: 0;
3314  }
3315
3316  /* The cloned icon is inert; the host element is the control. */
3317  .accesspro-icon .asw-menu-btn-container,
3318  .accesspro-icon .asw-menu-btn {
3319    pointer-events: none;
3320  }
3321</style>
3322<script>
3323  (function () {
3324    var SELECTOR = '.accesspro-icon';
3325    var BOUND = 'acpTriggerBound';
3326    var FILLED = 'acpTriggerFilled';
3327    var settings = window.accessProWidgetSettings || {};
3328    var inlineMode = !!settings.hide_floating_icon;
3329    var fallbackReady = inlineMode;
3330    document.documentElement.style.setProperty(
3331      '--acp-trigger-color',
3332      settings.icon_color_fill || '#23185c'
3333    );
3334
3335    /* ---- open the widget ------------------------------------------------ */
3336    /* main.js is deferred, so iconInstance may not exist on an early click. */
3337    function openWidget(event) {
3338      if (event) event.preventDefault();
3339      if (window.iconInstance) {
3340        window.iconInstance.toggleWidget();
3341        return;
3342      }
3343      var waited = 0;
3344      var timer = setInterval(function () {
3345        if (window.iconInstance) {
3346          clearInterval(timer);
3347          window.iconInstance.toggleWidget();
3348        } else if ((waited += 100) >= 10000) {
3349          clearInterval(timer);
3350          console.error('[AccessPro] Widget did not load — cannot open menu.');
3351        }
3352      }, 100);
3353    }
3354
3355    /* ---- clone the floating icon ---------------------------------------- */
3356    function buildIcon() {
3357      var source = document.querySelector('#Access-Pro-Icon .asw-menu-btn-container');
3358      if (!source) return null;
3359
3360      var clone = source.cloneNode(true);
3361
3362      // Strip ids: the widget mutates apMenuIconStroke / apMenuIconFill by id
3363      // when contrast modes change, and duplicates would shadow the original.
3364      clone.removeAttribute('id');
3365      clone.querySelectorAll('[id]').forEach(function (node) {
3366        node.removeAttribute('id');
3367      });
3368
3369      // The dismiss "X" and loading dots belong to the floating icon only.
3370      clone.querySelectorAll('.asw-hide-widget-icon, .acp-floating-dots').forEach(function (node) {
3371        node.remove();
3372      });
3373
3374      // A <button> nested inside the merchant's <a>
3374 is invalid HTML. Swap it
3375      // for a <span> carrying the same classes so the widget CSS still applies.
3376      var button = clone.querySelector('.asw-menu-btn');
3377      if (button) {
3378        var span = document.createElement('span');
3379        span.className = button.className;
3380        span.setAttribute('style', button.getAttribute('style') || '');
3381        span.setAttribute('aria-hidden', 'true');
3382        while (button.firstChild) span.appendChild(button.firstChild);
3383        button.parentNode.replaceChild(span, button);
3384      }
3385
3386      return clone;
3387    }
3388
3389
3390    /* ---- fallback: build the icon from settings ------------------------- */
3391    /* Used when the floating icon is not in the DOM — the widget skips
3392       render() entirely if the visitor dismissed it, if a page/country filter
3393       bails out of init(), or if trigger display is set to title-only.
3394       Geometry below mirrors render() in main.js exactly. */
3395    var GLYPHS = {
3396      default: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" fill="#ffffff" style="height: 45%; width: 45%; fill: #ffffff" viewBox="0 0 512 512" aria-hidden="true" focusable="false"><path d="M256,112a56,56,0,1,1,56-56A56.06,56.06,0,0,1,256,112Z" /><path d="M432,112.8l-.45.12h0l-.42.13c-1,.28-2,.58-3,.89-18.61,5.46-108.93,30.92-172.56,30.92-59.13,0-141.28-22-167.56-29.47a73.79,73.79,0,0,0-8-2.58c-19-5-32,14.3-32,31.94,0,17.47,15.7,25.79,31.55,31.76v.28l95.22,29.74c9.73,3.73,12.33,7.54,13.6,10.84,4.13,10.59.83,31.56-.34,38.88l-5.8,45L150.05,477.44q-.15.72-.27,1.47l-.23,1.27h0c-2.32,16.15,9.54,31.82,32,31.82,19.6,0,28.25-13.53,32-31.94h0s28-157.57,42-157.57,42.84,157.57,42.84,157.57h0c3.75,18.41,12.4,31.94,32,31.94,22.52,0,34.38-15.74,32-31.94-.21-1.38-.46-2.74-.76-4.06L329,301.27l-5.79-45c-4.19-26.21-.82-34.87.32-36.9a1.09,1.09,0,0,0,.08-.15c1.08-2,6-6.48,17.48-10.79l89.28-31.21a16.9,16.9,0,0,0,1.62-.52c16-6,32-14.3,32-31.93S451,107.81,432,112.8Z" /></svg>',
3397      wheelchair: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 960" fill="#ffffff" aria-hidden="true" focusable="false"> <path d="M480 240q-33 0-56.5-23.5T400 160q0-33 23.5-56.5T480 80q33 0 56.5 23.5T560 160q0 33-23.5 56.5T480 240ZM680 880V680H480q-33 0-56.5-23.5T400 600V360q0-33 23.5-56.5T480 280q24 0 41.5 10.5T559 324q55 66 99.5 90.5T760 480v80q-53 0-107-23t-93-55v138h120q33 0 56.5 23.5T760 680v220h-80ZM400 880q-83 0-141.5-58.5T200 680q0-72 45.5-127T360 484v82q-35 14-57.5 44.5T280 680q0 50 35 85t85 35q39 0 69.5-22.5T514 720h82q-14 69-69 114.5T400 880Z" /> </svg>',
3398      blind: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="#ffffff" style="fill: #ffffff" aria-hidden="true" focusable="false"> <path d="m240-60-64-48 104-139v-213q0-31 5.5-68.5T300-596l-60 34v142h-80v-188l216-123q8-5 17-7t19-2q24 0 44 12t30 33l31 67q20 44 61 66t102 22v80h-39L860-78l-35 20-237-413q-40-13-72.5-37.5T460-568q-10 29-15.5 66.5T441-432l79 112v260h-80v-200l-71-102-9 142L240-60Zm220-700q-33 0-56.5-23.5T380-840q0-33 23.5-56.5T460-920q33 0 56.5 23.5T540-840q0 33-23.5 56.5T460-760Z" /> </svg>',
3399      eye: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="#ffffff" style="fill: #ffffff" aria-hidden="true" focusable="false"><path d="m644-428-58-58q9-47-27-88t-93-32l-58-58q17-8 34.5-12t37.5-4q75 0 127.5 52.5T660-500q0 20-4 37.5T644-428Zm128 126-58-56q38-29 67.5-63.5T832-500q-50-101-143.5-160.5T480-720q-29 0-57 4t-55 12l-62-62q41-17 84-25.5t90-8.5q151 0 269 83.5T920-500q-23 59-60.5 109.5T772-302Zm20 246L624-222q-35 11-70.5 16.5T480-200q-151 0-269-83.5T40-500q21-53 53-98.5t73-81.5L56-792l56-56 736 736-56 56ZM222-624q-29 26-53 57t-41 67q50 101 143.5 160.5T480-280q20 0 39-2.5t39-5.5l-36-38q-11 3-21 4.5t-21 1.5q-75 0-127.5-52.5T300-500q0-11 1.5-21t4.5-21l-84-82Zm319 93Zm-151 75Z" /></svg>',
3400      accStraight: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" fill="#ffffff" style="fill: #ffffff" aria-hidden="true" focusable="false"><path d="M480-720q-33 0-56.5-23.5T400-800q0-33 23.5-56.5T480-880q33 0 56.5 23.5T560-800q0 33-23.5 56.5T480-720ZM360-80v-520H120v-80h720v80H600v520h-80v-240h-80v240h-80Z" /></svg>',
3401      settings: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="#ffffff" style="fill: #ffffff" aria-hidden="true" focusable="false">
3401<path d="m370-80-16-128q-13-5-24.5-12T307-235l-119 50L78-375l103-78q-1-7-1-13.5v-27q0-6.5 1-13.5L78-585l110-190 119 50q11-8 23-15t24-12l16-128h220l16 128q13 5 24.5 12t22.5 15l119-50 110 190-103 78q1 7 1 13.5v27q0 6.5-2 13.5l103 78-110 190-118-50q-11 8-23 15t-24 12L590-80H370Zm70-80h79l14-106q31-8 57.5-23.5T639-327l99 41 39-68-86-65q5-14 7-29.5t2-31.5q0-16-2-31.5t-7-29.5l86-65-39-68-99 42q-22-23-48.5-38.5T533-694l-13-106h-79l-14 106q-31 8-57.5 23.5T321-633l-99-41-39 68 86 64q-5 15-7 30t-2 32q0 16 2 31t7 30l-86 65 39 68 99-42q22 23 48.5 38.5T427-266l13 106Zm42-180q58 0 99-41t41-99q0-58-41-99t-99-41q-59 0-99.5 41T342-480q0 58 40.5 99t99.5 41Zm-2-140Z" /></svg>'
3402    };
3403
3404    var SIZES = {
3405      small: 40, '0.5x': 40,
3406      medium: 50, '1x': 50, default: 50,
3407      large: 60, '1.5x': 60,
3408      extraLarge: 75, '2x': 75
3409    };
3410
3411    function buildIconFromSettings() {
3412      var s = window.accessProWidgetSettings || {};
3413      var style = s.icon_style || 'thick';
3414      var square = s.icon_shape === 'square';
3415      // Defaults must match mergeSettings() in main.js and DEFAULT_SETTINGS in
3416      // app/constants/settings.js — both use #23185c for stroke AND fill — so a
3417      // metafield missing these keys renders identically on either path.
3418      var stroke = s.icon_color_stroke || '#23185c';
3419      var fill = s.icon_color_fill || '#23185c';
3420      var px = SIZES[s.icon_size] || 50;
3421      var solid = style === 'solid';
3422      var thin = style === 'thin';
3423      var shapes = '';
3424
3425      if (square) {
3426        var sizes = [
3427          [solid ? 100 : 98, stroke, 12],
3428          [solid ? 0 : thin ? 86 : 82, '#ffffff', 10],
3429          [solid || thin ? 80 : 70, fill, 8]
3430        ];
3431        sizes.forEach(function (d) {
3432          if (!d[0]) return;
3433          var off = (100 - d[0]) / 2;
3434          shapes += '<rect x="' + off + '" y="' + off + '" width="' + d[0] + '" height="' + d[0] +
3435            '" rx="' + d[2] + '" ry="' + d[2] + '" fill="' + d[1] + '" />';
3436        });
3437      } else {
3438        [
3439          [solid ? 50 : 49, stroke],
3440          [solid ? 0 : thin ? 43 : 41, '#ffffff'],
3441          [solid || thin ? 40 : 35, fill]
3442        ].forEach(function (d) {
3443          shapes += '<circle cx="50" cy="50" r="' + d[0] + '" fill="' + d[1] + '" />';
3444        });
3445      }
3446
3447      var name = GLYPHS[s.icon] ? s.icon : 'default';
3448      var box = document.createElement('div');
3449      box.className = 'asw-menu-btn-container';
3450      box.setAttribute('style', 'position:relative;width:' + px + 'px;height:' + px + 'px;');
3451      // The widget stylesheet may not be loaded when render() never ran, so
3452      // every layout-critical rule is inlined rather than left to the classes.
3453      box.innerHTML =
3454        '<span class="asw-menu-btn' + (square ? ' asw-menu-btn--square' : '') + '" aria-hidden="true"' +
3455        ' style="position:relative;display:flex;align-items:center;justify-content:center;' +
3456        'width:100%;height:100%;background:transparent;border:none;padding:0;margin:0;' +
3457        'border-radius:' + (square ? '12%' : '50%') + ';">' +
3458        '<svg class="asw-outer-svg" viewBox="0 0 100 100" aria-hidden="true" focusable="false"' +
3459        ' style="width:100%;height:100%;display:block;">' + shapes + '</svg>' +
3460        GLYPHS[name] + '</span>';
3461
3462      var glyph = box.querySelector('.asw-main-icon');
3463      if (glyph) {
3464        // .asw-main-icon sizes to 50% via CSS; the default glyph overrides to 45% inline.
3465        var pct = name === 'default' ? '45%' : '50%';
3466        glyph.setAttribute(
3467          'style',
3468          'position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);' +
3469          'width:' + pct + ';height:' + pct + ';fill:#ffffff;z-index:100;'
3470        );
3471      }
3472      return box;
3473    }
3474
3475    /* Name from the host only. Text inside aria-hidden (the cloned icon) does not count. */
3476    function triggerNeedsName(el) {
3477      if ((el.getAttribute('aria-label') || '').trim()) return false;
3478      if ((el.getAttribute('aria-labelledby') || '').trim()) return false;
3479      if ((el.getAttribute('title') || '').trim()) return false;
3480      var node = el.firstChild;
3481      while (node) {
3482        if (node.nodeType === 3) {
3483          if (node.textContent.trim()) return false;
3484        } else if (node.nodeType === 1 && node.getAttribute('aria-hidden') !== 'true') {
3485          if (!triggerNeedsName(node)) return false;
3486        }
3487        node = node.nextSibling;
3488      }
3489      return true;
3490    }
3491
3492    function ensureTriggerName(el) {
3493      if (triggerNeedsName(el)) {
3494        el.setAttribute('aria-label', 'Open Accessibility Menu');
3495      }
3496    }
3497
3498    /* ---- wire one element ----------------------------------------------- */
3499    function bind(el) {
3500      if (el.dataset[BOUND]) return;
3501      el.dataset[BOUND] = '1';
3502
3503      el.addEventListener('click', openWidget);
3504      el.addEventListener('keydown', function (event) {
3505        if (event.key === 'Enter' || event.key === ' ') openWidget(event);
3506      });
3507
3508      // A non-anchor host (div/span) needs explicit button semantics.
3509      var tag = el.tagName.toLowerCase();
3510      if (tag !== 'a' && tag !== 'button') {
3511        if (!el.hasAttribute('role')) el.setAttribute('role', 'button');
3512        if (!el.hasAttribute('tabindex')) el.setAttribute('tabindex', '0');
3513      }
3514
3515      if (el.textContent.trim()) el.classList.add('acp-trigger--has-text');
3516      ensureTriggerName(el);
3517    }
3518
3519    function fillIcon(el, allowFallback) {
3520      if (el.dataset[FILLED]) return true;
3521      if (el.getAttribute('icon') !== 'true') return true;
3522
3523      // Prefer cloning the live icon; fall back to rebuilding from settings.
3524      var icon = buildIcon();
3525      if (!icon && (allowFallback || inlineMode)) icon = buildIconFromSettings();
3526      if (!icon) return false;
3527
3528      // The clone's size lives only in the container's inline style. If the
3529      // widget rendered without one, size it from settings so it cannot
3530      // collapse to zero height inside the merchant's layout.
3531      if (!/\bheight\s*:/.test(icon.getAttribute('style') || '')) {
3532        var px = SIZES[(window.accessProWidgetSettings || {}).icon_size] || 50;
3533        icon.style.position = 'relative';
3534        icon.style.width = px + 'px';
3535        icon.style.height = px + 'px';
3536      }
3537
3538      el.insertBefore(icon, el.firstChild);
3539      el.dataset[FILLED] = '1';
3540      ensureTriggerName(el);
3541      return true;
3542    }
3543
3544    /* ---- scan ------------------------------------------------------------ */
3545    /* Clicks are wired immediately so the trigger works before the icon
3546       renders; icons are filled in once the floating icon exists. */
3547    var pendingIcons = false;
3548
3549    function scan(allowFallback) {
3550      pendingIcons = false;
3551      document.querySelectorAll(SELECTOR).forEach(function (el) {
3552        bind(el);
3553        if (!fillIcon(el, allowFallback)) pendingIcons = true;
3554      });
3555    }
3556
3557    function start() {
3558      scan(inlineMode);
3559
3560      // Inline mode hides the floating icon, so build from settings immediately.
3561      if (inlineMode) {
3562        // console.log('[AccessPro] Inline triggers — using widget settings for icons');
3563      }
3564
3565      // The floating icon only renders after the settings request resolves and
3566      // the widget chunk loads, so poll until it appears. If it never does,
3567      // stop waiting and build the icon from settings instead.
3568      var FALLBACK_AFTER = 2500;
3569      var waited = 0;
3570      var timer = setInterval(function () {
3571        if (!pendingIcons) {
3572          clearInterval(timer);
3573          return;
3574        }
3575        waited += 200;
3576        if (waited < FALLBACK_AFTER) {
3577          scan(false);
3578          return;
3579        }
3580        fallbackReady = true;
3581        clearInterval(timer);
3582        scan(true);
3583        if (pendingIcons) {
3584          console.warn('[AccessPro] Could not render inline icons.');
3585        }
3586      }, 200);
3587
3588      // Catch triggers added later (theme editor re-renders, dynamic sections).
3589      // Debounced: the widget itself mutates the DOM heavily as it renders.
3590      if (window.MutationObserver) {
3591        var queued = false;
3592        new window.MutationObserver(function () {
3593          if (queued) return;
3594          queued = true;
3595          requestAnimationFrame(function () {
3596            queued = false;
3597            scan(fallbackReady || inlineMode);
3598          });
3599        }).observe(document.body, { childList: true, subtree: true });
3600      }
3601    }
3602
3603    if (document.readyState === 'loading') {
3604      document.addEventListener('DOMContentLoaded', start);
3605    } else {
3606      start();
3607    }
3608  })();
3609</script>
3609
3610
3611
3612</div><div id="shopify-block-AWGxmMlp0WWFnTzZRY__16798170927650018749" class="shopify-block shopify-app-block">
3613
3614
3615
3616
3617
3618
3619
3620  
3621    
3622    
3623  
3624  
3625
3626
3627
3628
3629<div id="recharge-storefront-experiences">
3630  
3631  <div></div>
3632</div>
3633<script type="module" src="https://static.rechargecdn.com/assets/storefront-experiences/storefront-experiences.js"></script>
3633
3634
3635<script>
3636  (function () {
3637    
3638    
3639    
3640    
3641    
3642  
3643    window.RechargeStorefrontConfig = {
3644      customer: null,
3645      shop: {
3646        currency: "USD",
3647        locale: "en",
3648        identifier: "uijg2k-cd.myshopify.com",
3649        market_id: 92716368188,
3650        currency_format: "${{amount}}",
3651        routes: {
3652          cart: "\/cart",
3653          root: "\/",
3654        },
3655      },
3656      cart_overlay:{"enabled":true},
3657      cart_overlay_preview:{},
3658      cart_drawer:{"enabled":true},
3659      cart_drawer_preview:{},
3660      bundles_selling_plan_sync_enabled:false,
3661    };
3662  })();
3663</script>
3663
3664
3665
3666
3667
3668</div><div id="shopify-block-AK0h3cTVsZkRtSWZvY__back-in-stock-restock-alerts-4bb73be2-b7c2-4870-949f-c528145452a3" class="shopify-block shopify-app-block"><link rel="preconnect" href="https://app.restockrocket.io" crossorigin><link rel="preconnect" href="https://uijg2k-cd.myshopify.com" crossorigin><!-- Config and setup JS -->
3669<script id="RestockRocketConfig">
3670  window._RestockRocketConfig = window._RestockRocketConfig || {}
3671  window._RestockRocket = window._RestockRocket || {}
3672  window._Stoq = window._RestockRocket
3673  window._StoqConfig = window._RestockRocketConfig
3674  try { window._RestockRocket.inlineRanAt = performance.now(); } catch (e) { }
3675  function normalizeLocale(locale) {
3676    if (!locale || locale.trim() === '') {
3677      return '';
3678    }
3679    return locale.toString().toLowerCase().replace(/-/g, '_');
3680  }
3681
3682  window._RestockRocketConfig.locale = 'en';
3683  window._RestockRocketConfig.normalizedLocale = normalizeLocale('en');
3684  window._RestockRocketConfig.shop = 'uijg2k-cd.myshopify.com';
3685  window._RestockRocketConfig.pageType = 'blog';
3686  window._RestockRocketConfig.liquidRenderedAt = 1791444213;window._RestockRocketConfig.marketId = 92716368188;window._RestockRocketConfig.countryName = 'United States';
3687    window._RestockRocketConfig.countryIsoCode = 'US';window._RestockRocketConfig.languageIsoCode = 'en';window._RestockRocketConfig.cartInventoryQuantity = {};
3688  if (!window._RestockRocketConfig.cartToken) {
3689    try {
3690      const m = document.cookie.match(/(?:^|;\s*)cart=([^;]+)/);
3691      if (m && m[1]) window._RestockRocketConfig.cartToken = decodeURIComponent(m[1]);
3692    } catch (e) { }
3693  }
3694window._RestockRocketConfig.cachedSettings = {"id":47272,"shop_id":47248,"currency":"USD","created_at":"2025-11-06T18:51:27.497Z","updated_at":"2026-10-01T04:50:15.567Z","enable_app":true,"enable_signup_widget":true,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":false,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"preorderIndexButtonChildSelector":".body4-text span:nth-child(2)","disableDebugLoggingForNonPreorderItem":false,"preorderCollectionButtonChildSelector":".body4-text span:nth-child(2)"},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":"","collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too!","show_button_on_collection":false,"sms_default_country":"us","sms_allowed_countries":[],"sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_custom_domain_enabled":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":"","insert_button_after_selector_type":"afterend","storefront_button_position_type":"float-right","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"Preorders must be purchased 
3694separately from regular items. Please complete your current order first, or clear your cart to continue.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":".card__inner","insert_button_after_selector_index":".card__inner","push_enabled":false,"push_allowed":true,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again.","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send push notification","insert_button_after_selector_page":".card__inner","show_button_on_page":false,"insert_button_after_selector_search":".card__inner","show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":"","index_buttons_container":"","page_buttons_container":"","search_buttons_container":"","extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it’s restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":".shopify-payment-button","preorder_add_to_cart_button_selector":".product-form__submit.button.button-lightblue","preorder_badge_selector":".price__container","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":".quick-add.no-js-hidden","preorder_collection_enabled":true,"preorder_collection_form_selector":".product-form form","preorder_collection_add_to_cart_button_selector":".quick-add__submit.button.button-lightblue.button--secondary","preorder_index_enabled":true,"preorder_index_form_selector":".product-form form","preorder_index_add_to_cart_button_selector":".quick-add__submit.button.button-lightblue.button--secondary","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":".card__inner","preorder_index_badge_selector":".card__inner","preorder_page_badge_selector":".card__inner","preorder_search_badge_selector":".card__inner","preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":".btn-cta","preorder_button_disclaimer_insert_selector":".product-form__submit","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":"","preorder_payment_insert_selector_type":"afterend","preorder_price_container_selector":".price__container","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":".price__regular .price-item--regular","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":false,"inline_form_selector":".product-form__buttons","inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":0,"market_setup_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":null,"preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","configure_notify_me_enabled":false,"restock_note_insert_selector":null,"restock_note_insert_selector_type":"afterend","restock_note_background_color":"#f3f4f6","restock_note_text_color":"#202223","restock_note_border_radius":4,"preorder_modal_continue_button_text":"Continue","preorder_modal_cancel_button_text":"Cancel","meta_pixel_enabled":false,"meta_pixel_id":null,"cache":true,"cached_at":"2026-10-01T04:50:15.620Z","multi_language_enabled":false,"translation_locale":"en","disable_refresh_on_stale_liquid":false,"api_host":"https://ext.stoqapp.com"};window._RestockRocketConfig.storefrontAccessToken = "ef4d47db36741ebf0ee472b25f2b5223";
3695  window._RestockRocketConfig.metafieldNamespace = 'restockrocket_production';
3696  window._RestockRocketConfig.storefrontApiVersion = '2026-07';window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[52981190164796,53002950738236,53002962600252,53002977870140],"updated_at":"2026-10-02T12:19:12Z","market_locations_enabled":false,"market_id":92716368188,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null,"bulk_operation":true};window._RestockRocketConfig.cachedInStockVariantIds = {"in_stock_variant_ids":[51601606672700,51601710514492,51601710907708,51616987447612,52102490390844,52414052008252,52414058037564,52670639898940],"updated_at":"2026-10-08T07:04:04Z","market_locations_enabled":false,"market_id":92716368188,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-10-02T12:18:47Z","shopify_market_id":92716368188,"market_locations_enabled":false};
3697    window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_92716368188";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-10-02T12:18:56Z","shopify_market_id":92716368188,"market_locations_enabled":false};
3698    window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_92716368188";
3699window._RestockRocketConfig.sellingPlans = [];(function() {
3700      const cachedData = {"plans":[{"shopify_selling_plan_group_id":79560966460,"shopify_selling_plan_id":693512438076,"enabled":true,"variant_ids":[],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Pre-Order","preorder_button_description":"Our gift sets are expected to ship in early December. ","preorder_button_description_enabled":true,"preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":0,"delivery_at":"2025-11-06T18:52:15.334Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":false,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: As soon as possible","shipping_applies_to_all_products":true,"shipping_text":"ASAP","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":"0.0","pricing_percentage":"0.0","discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"shopify","preorder_badge_enabled":true,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#002459","preorder_badge_background_color":"#E5BB42","preorder_discounted_price_enabled":false,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":false,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#3244D3","preorder_button_colors_enabled":true,"markets_enabled":false,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":true,"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-11-06T18:52:15.334Z","billing_after_n_intervals":0,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":"0.0","pricing_percentage":"0.0","billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":693512438076,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":true,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"acknowledgement_line_item_property_enabled":false,"acknowledgement_line_item_property_text":"Preorder Terms Accepted","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-12-05T18:22:41.237Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased 
3700separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"batches_enabled":false,"preorder_batches":[]}],"disabled_plan_ids":[],"has_in_stock_offer":true,"has_preorder_offer":false,"read_flags":{"enable_storefront_product_reads":true,"enable_storefront_integrations_read":true,"enable_storefront_selling_plans_read":true},"cached_at":"2026-10-04T10:28:11Z"};
3701
3702      if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) {
3703        window._RestockRocketConfig.readFlags = cachedData.read_flags || {};
3704        const oldPlans = window._RestockRocketConfig.sellingPlans;
3705        const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0
3706          ? oldPlans.reduce(function(max, plan) {
3707              if (plan.updated_at) {
3708                const planDate = new Date(plan.updated_at);
3709                const maxDate = max ? new Date(max) : null;
3710                return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max;
3711              }
3712              return max;
3713            }, '')
3714          : null;
3715        const cachedDate = new Date(cachedData.cached_at);
3716        const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null;
3717        const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate));
3718
3719        if (useCached) {
3720          if (Array.isArray(cachedData.plans)) {
3721            window._RestockRocketConfig.sellingPlans = cachedData.plans;
3722            window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || [];
3723            console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')');
3724          }
3725        } else {
3726          window._RestockRocketConfig.disabledSellingPlanIds = [];
3727          console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')');
3728        }
3729      }
3730    })();window._RestockRocketConfig.enabledNotifyMeVariantIds = [];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};window._RestockRocketConfig.integrations = [{"id":"cf9136e9-a0d3-4ff9-bab4-adb41357a9ce","shop_id":47248,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false,"enableCartChangeValidation":false,"enableCartUpdateValidation":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-11-06T18:52:14.545Z","updated_at":"2025-11-06T18:52:14.545Z"}];
3731  try {
3732    var _sqCfg = window._RestockRocketConfig;
3733    var _sqPlanEnabled = Array.isArray(_sqCfg.sellingPlans) &&
3734      _sqCfg.sellingPlans.some(function (p) { return p && p.enabled; });
3735    var _sqPreCount = ((_sqCfg.cachedPreorderVariantIds &&
3736      _sqCfg.cachedPreorderVariantIds.preorder_variant_ids) || []).length;
3737    _sqCfg.preordersConfigured = !!(_sqPlanEnabled && _sqPreCount);
3738  } catch (e) { }
3739  try {
3740    var _sqc = window._RestockRocketConfig;
3741    var _sqOn = !(_sqc.cachedSettings && _sqc.cachedSettings.block_accelerated_checkout === false);
3742    var _sqPre = (_sqc.cachedPreorderVariantIds &&
3743      _sqc.cachedPreorderVariantIds.preorder_variant_ids) || [];
3744    var _sqArm = false;
3745    if (_sqOn && _sqc.preordersConfigured) {
3746      if (_sqc.pageType === 'product' && _sqc.product && _sqc.product.variants) {
3747        _sqArm = _sqc.product.variants.some(function (v) { return _sqPre.indexOf(Number(v.id)) !== -1; });
3748      } else {
3749        _sqArm = (_sqc.integrations || []).some(function (i) {
3750          return i && i.type === 'featured_product' && i.enabled &&
3751            Array.isArray(i.page_types) && i.page_types.indexOf(_sqc.pageType) !== -1;
3752        });
3753      }
3754    }
3755    if (_sqArm && document.documentElement) {
3756      _sqc.acceleratedGateArmed = true;
3757      document.documentElement.classList.add('stoq-buy-now-pending');
3758      setTimeout(function () {
3759        document.documentElement.classList.remove('stoq-buy-now-pending');
3760      }, 6000);
3761    }
3762  } catch (e) { }
3763
3764  window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/01a10b23-799c-7a38-a052-ddf9175946a6/restockrocket-1-600/assets/restockrocket-product.js'
3765  window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/01a10b23-799c-7a38-a052-ddf9175946a6/restockrocket-1-600/assets/restockrocket-collection.js'
3766  window._RestockRocketConfig.scriptUrlProductBis = 'https://cdn.shopify.com/extensions/01a10b23-799c-7a38-a052-ddf9175946a6/restockrocket-1-600/assets/restockrocket-product-bis.js'
3767  window._RestockRocketConfig.scriptUrlCollectionBis = 'https://cdn.shopify.com/extensions/01a10b23-799c-7a38-a052-ddf9175946a6/restockrocket-1-600/assets/restockrocket-collection-bis.js'
3768  window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
3769  window._RestockRocketConfig.host = (window._RestockRocketConfig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io'
3770  try {
3771    const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/);
3772    window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || '';
3773  } catch (e) {
3774    window._RestockRocketConfig.appVersion = '';
3775  }
3776  const SETTINGS_CACHE_DURATION = 15 * 60 * 1000;
3777  const LIQUID_CACHE_MAX_AGE = 15 * 60;
3778  const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt;
3779  if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) {
3780    console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh');
3781    window._RestockRocketConfig.isLiquidCacheFresh = true;
3782    window._RestockRocketConfig.liquidCacheAge = null;
3783  } else {
3784    const now = Math.floor(Date.now() / 1000);
3785    const liquidCacheAge = now - liquidRenderedAt;
3786    window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCacheAge);
3787    if (liquidCacheAge < 0) {
3788      console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`);
3789      window._RestockRocketConfig.isLiquidCacheFresh = true;
3790    } else if (liquidCacheAge <= LIQUID_CACHE_MAX_AGE) {
3791      console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`);
3792      window._RestockRocketConfig.isLiquidCacheFresh = true;
3793    } else {
3794      console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`);
3795      window._RestockRocketConfig.isLiquidCacheFresh = false;
3796    }
3797  }
3798
3799  function checkSettingsExpiry(settings) {
3800    try {
3801      if (!settings || !settings.updated_at) {
3802        console.debug('STOQ - Invalid settings data structure');
3803        return null;
3804      }
3805
3806      if (!settings.cache) {
3807        console.debug('STOQ - settings caching disabled');
3808        return null;
3809      }
3810      if (settings.multi_language_enabled) {
3811        if (!settings.translations) {
3812          console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
3813          return null;
3814        }
3815        if (window._RestockRocketConfig.normalizedLocale &&
3816            !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
3817          console.debug('STOQ - locale not explicitly translated, will use default language from cache');
3818        }
3819      }
3820
3821      const updatedAt = new Date(settings.updated_at);
3822      if (isNaN(updatedAt.getTime())) {
3823        console.debug('STOQ - Invalid updated_at date format in settings');
3824        return null;
3825      }
3826
3827      const age = Date.now() - updatedAt.getTime();
3828      if (age < SETTINGS_CACHE_DURATION) {
3829        console.debug('STOQ - settings changed recently, skipping cache');
3830        return null;
3831      }
3832
3833      return settings;
3834    } catch (error) {
3835      console.debug('STOQ - Error checking settings cache:', error);
3836      return null;
3837    }
3838  }
3839
3840  function createRestockRocketContainer() {
3841    const restockRocketContainer = document.createElement('div');
3842    restockRocketContainer.id = 'restock-rocket';
3843    document.body.appendChild(restockRocketContainer);
3844  }
3845
3846  function createRestockRocketScript(scriptUrl) {
3847    const restockRocketScriptElement = document.createElement('script');
3848    restockRocketScriptElement.setAttribute('defer', 'defer');
3849    restockRocketScriptElement.src = scriptUrl;
3850    document.body.appendChild(restockRocketScriptElement);
3851  }
3852
3853  createRestockRocketContainer()
3854
3855  console.debug('STOQ - extension activated')
3856  try {
3857    const _stoqInitConfig = window._RestockRocketConfig;
3858    const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqInitConfig.product.variants)
3858)
3859      ? _stoqInitConfig.product.variants.map(function(v) { return v.id })
3860      : [];
3861    const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id;
3862    var _stoqPageSeq = 0;
3863    try {
3864      _stoqPageSeq = (parseInt(window.sessionStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1;
3865      window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq));
3866    } catch (e) { }
3867    Shopify?.analytics?.publish?.('stoq_initialized', {
3868      cart_token: _stoqInitConfig.cartToken || '',
3869      page_url: window.location.href,
3870      page_type: _stoqInitConfig.pageType || '',
3871      shop_domain: _stoqInitConfig.shop || '',
3872      market_id: _stoqInitConfig.marketId || '',
3873      country_code: _stoqInitConfig.countryIsoCode || '',
3874      detected_variant_ids: _stoqDetectedVariantIds,
3875      selected_variant_id: _stoqSelectedVariantId || '',
3876      page_load_seq: _stoqPageSeq,
3877      liquid_rendered_at: _stoqInitConfig.liquidRenderedAt || 0,
3878      app_version: _stoqInitConfig.appVersion || '',
3879      liquid_cache_age: _stoqInitConfig.liquidCacheAge,
3880      inventory_policy: (_stoqInitConfig.variantsInventoryPolicy || {})[_stoqSelectedVariantId] || '',
3881      inventory_quantity: (_stoqInitConfig.variantsInventoryQuantity || {})[_stoqSelectedVariantId],
3882    });
3883  } catch (e) {
3884    console.debug('STOQ - stoq_initialized publish failed:', e);
3885  }
3886  try {
3887    var _sqTrack = window._RestockRocketConfig;
3888    if (_sqTrack.preordersConfigured) {
3889      document.addEventListener('click', function (e) {
3890        try {
3891          var t = e.target;
3892          if (!t || !t.closest) return;
3893          var host = t.closest('.shopify-payment-button, shopify-payment-terms');
3894          if (!host) return;
3895          var channel = host.matches && host.matches('shopify-payment-terms')
3896            ? 'shop_pay_installments' : 'buy_now';
3897          var form = host.closest('form');
3898          var vidEl = form && form.querySelector('[name="id"]');
3899          var variantId = (vidEl && vidEl.value) || _sqTrack.selected_variant_id || '';
3900          var _sqVidNum = Number(variantId);
3901          var _sqPlan = null;
3902          var _sqPlans = Array.isArray(_sqTrack.sellingPlans) ? _sqTrack.sellingPlans : [];
3903          var _sqMktId = Number(_sqTrack.marketId);
3904          var _sqForVariant = function (pl) {
3905            return pl && pl.enabled && Array.isArray(pl.variant_ids) &&
3906              pl.variant_ids.indexOf(_sqVidNum) !== -1;
3907          };
3908          _sqPlans.forEach(function (pl) {
3909            if (!_sqPlan && _sqForVariant(pl) && pl.markets_enabled &&
3910                Array.isArray(pl.shopify_market_ids) &&
3911                pl.shopify_market_ids.indexOf(_sqMktId) !== -1) { _sqPlan = pl; }
3912          });
3913          if (!_sqPlan) {
3914            _sqPlans.forEach(function (pl) {
3915              if (!_sqPlan && _sqForVariant(pl) && !pl.markets_enabled) { _sqPlan = pl; }
3916            });
3917          }
3918          Shopify?.analytics?.publish?.('stoq_accelerated_checkout_clicked', {
3919            variant_id: variantId,
3920            product_id: (_sqTrack.product && _sqTrack.product.id) || '',
3921            channel: channel,
3922            market_id: _sqTrack.marketId || '',
3923            country_code: _sqTrack.countryIsoCode || '',
3924            page_type: _sqTrack.pageType || '',
3925            cart_token: _sqTrack.cartToken || '',
3926            page_url: (window.location && window.location.href) || '',
3927            properties: {
3928              is_preorder_variant: (function () {
3929                var vid = Number(variantId);
3930                var has = function (a) { return Array.isArray(a) && a.indexOf(vid) !== -1; };
3931                return has(_sqTrack.preorderVariantIds) ||
3932                  has(_sqTrack.cachedPreorderVariantIds &&
3933                    _sqTrack.cachedPreorderVariantIds.preorder_variant_ids);
3934              })(),
3935              in_enabled_plan: !!_sqPlan,
3936              is_instock_variant: (function () {
3937                var has = function (a) { return Array.isArray(a) && a.indexOf(_sqVidNum) !== -1; };
3938                return has(_sqTrack.inStockVariantIds) ||
3939                  has(_sqTrack.cachedInStockVariantIds &&
3940                    _sqTrack.cachedInStockVariantIds.in_stock_variant_ids);
3941              })(),
3942              enrolled_plan_id: (_sqPlan && (_sqPlan.shopify_selling_plan_id || _sqPlan.shopify_selling_plan_group_id)) || '',
3943              enrolled_plan_provider: (_sqPlan && _sqPlan.inventory_provider) || '',
3944              block_enabled: !(_sqTrack.cachedSettings && _sqTrack.cachedSettings.block_accelerated_checkout === false),
3945              gate_armed: !!_sqTrack.acceleratedGateArmed,
3946              gate_active_at_click: !!(document.documentElement &&
3947                document.documentElement.classList.contains('stoq-buy-now-pending')),
3948              blocked: (function () {
3949                try {
3950                  var rr = window._RestockRocket;
3951                  return !!(rr && typeof rr.willBlockAcceleratedCl
3951ick === 'function' &&
3952                    rr.willBlockAcceleratedClick(e));
3953                } catch (err) { return false; }
3954              })(),
3955            },
3956          });
3957        } catch (err) { }
3958      }, true);
3959    }
3960  } catch (e) { }
3961  function applyTranslations(settings) {
3962    try {
3963      if (!settings || !settings.multi_language_enabled) {
3964        return settings;
3965      }
3966
3967      if (!settings.translations) {
3968        console.debug('STOQ - No translations found, skipping translation');
3969        return settings;
3970      }
3971
3972      const normalizedLocale = window._RestockRocketConfig.normalizedLocale;
3973      const translations = settings.translations;
3974
3975      if (!normalizedLocale) {
3976        console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
3977        delete settings.translations;
3978        return settings;
3979      }
3980
3981      console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`);
3982
3983      const translatedFields = translations[normalizedLocale];
3984      if (translatedFields && typeof translatedFields === 'object') {
3985        Object.keys(translatedFields).forEach(function(key) {
3986          const value = translatedFields[key];
3987          if (value !== null && value !== undefined && value !== '') {
3988            settings[key] = value;
3989          }
3990        });
3991      } else {
3992        console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
3993      }
3994
3995      delete settings.translations;
3996      return settings;
3997    } catch (e) {
3998      console.debug('STOQ - error applying translations:', e);
3999      return settings;
4000    }
4001  }
4002  function setupCartSellingPlanUpdater(settings) {
4003    window.addEventListener('stoq:inventory-data-loaded', function(event) {
4004      console.debug('STOQ - Inventory data loaded, updating cart selling plans');
4005      if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
4006        window._RestockRocket.updateCartSellingPlans()
4007          .then(hasUpdates => {
4008            if (hasUpdates) {
4009              console.debug('STOQ - cart selling plans updated successfully');
4010            } else {
4011              console.debug('STOQ - no cart selling plan updates needed');
4012            }
4013          })
4014          .catch(error => {
4015            console.error('STOQ - error updating cart selling plans:', error);
4016          });
4017      }
4018    });
4019  }
4020  function storefrontGraphql(query, variables) {
4021    const cfg = window._RestockRocketConfig;
4022    if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) {
4023      return Promise.reject(new Error('Storefront API unavailable'));
4024    }
4025    return fetch(
4026      `https://${cfg.shop}/api/${cfg.storefrontApiVersion}/graphql.json`,
4027      {
4028        method: 'POST',
4029        headers: {
4030          'Content-Type': 'application/json',
4031          'X-Shopify-Storefront-Access-Token': cfg.storefrontAccessToken,
4032        },
4033        body: JSON.stringify({ query: query, variables: variables }),
4034      }
4035    )
4036    .then(function(response) {
4037      if (!response.ok) { throw new Error('Storefront API HTTP ' + response.status); }
4038      return response.json();
4039    })
4040    .then(function(body) {
4041      if (body && body.errors && body.errors.length) {
4042        throw new Error('Storefront API errors: ' + body.errors.map(function(e) { return e && e.message; }).join(', '));
4043      }
4044      return body && body.data;
4045    });
4046  }
4047  function fetchStorefrontShopMetafield(key) {
4048    const cfg = window._RestockRocketConfig;
4049    const query = 'query StoqShopMetafield($namespace: String!, $key: String!) { shop { metafield(namespace: $namespace, key: $key) { value } } }';
4050    return storefrontGraphql(query, { namespace: cfg.metafieldNamespace, key: key })
4051    .then(function(data) {
4052      const value = data && data.shop && data.shop.metafield && data.shop.metafield.value;
4053      if (!value) { throw new Error('Storefront API returned no ' + key + ' metafield value'); }
4054      return JSON.parse(value);
4055    });
4056  }
4057  (function loadStorefrontSettings() {
4058    const cfg = window._RestockRocketConfig;
4059    if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) return;
4060    function run() {
4061      // The live-settings read is one more shop-level metafield fetch, so it
4062      // shares fetchStorefrontShopMetafield with the integrations/selling_plans
4063      // reads rather than re-issuing the same query + parse.
4064      fetchStorefrontShopMetafield('settings')
4065      .then(function(settings) {
4066        cfg.storefrontSettings = settings;
4067        console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings');
4068      })
4069      .catch(function(e) {
4070        console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message);
4071      });
4072    }
4073
4074    if (typeof window.requestIdleCallback === 'function') {
4075      window.requestIdleCallback(run, { timeout: 5000 });
4076    } else {
4077      setTimeout(run, 0);
4078    }
4079  })();
4080  const cachedSettings = window._RestockRocketConfig.cachedSettings;
4081  const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
4082
4083  if (validCachedSettings) {
4084    console.debug('STOQ - using cached settings');
4085    initializeScripts(validCachedSettings);
4086  } else {
4087    console.debug('STOQ - fetching fresh settings');
4088    const headers = {
4089      'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
4090      'ngrok-skip-browser-warning': 'skip'
4091    };
4092
4093    if (window.Shopify?.theme?.role === 'main') {
4094      headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name;
4095      headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;
4096      headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id;
4097    }
4098
4099    fetch(
4100      `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`,
4101      { headers }
4102    )
4103    .then(function(response) {
4104      if (!response.ok) {
4105        throw new Error('Network response was not ok');
4106      }
4107      return response.json();
4108    })
4109    .then(function(settings) {
4110      initializeScripts(settings);
4111    })
4112    .catch(function(error) {
4113      if (cachedSettings) {
4114        console.debug('STOQ - using expired cached settings as fallback');
4115        initializeScripts(cachedSettings);
4116      } else {
4117        console.error('STOQ - failed to load settings:', error);
4118      }
4119    })
4120    .catch(function(e) {
4121      console.error(e)
4122    })
4123  }
4124
4125  function fetchEmbedConfig(endpoint, apply) {
4126    return fetch(
4127      `${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`,
4128      {
4129        headers: {
4130          'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
4131          'ngrok-skip-browser-warning': 'skip'
4132        }
4133      }
4134    )
4135    .then(function(response) {
4136      if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`);
4137      return response.json();
4138    })
4139    .then(function(data) {
4140      try {
4141        apply(data);
4142      } catch (applyError) {
4143        console.error('STOQ - apply failed for ' + endpoint + ':', applyError);
4144        throw applyError;
4145      }
4146    })
4147    .catch(function(error) {
4148      console.debug(`STOQ - using cached ${endpoint}:`, error.message);
4149    });
4150  }
4151  function refreshShopConfig(source) {
4152    const cfg = window._RestockRocketConfig;
4153    const viaEmbed = function() { return fetchEmbedConfig(source.endpoint, source.apply); };
4154    const flagOn = !!cfg.readFlags && cfg.readFlags[source.flag] === true;
4155    if (!flagOn || source.embedOnly === true) { return viaEmbed(); }
4156
4157    return fetchStorefrontShopMetafield(source.metafieldKey)
4158      .then(function(value) {
4159        if (!source.isValid(value)) { throw new Error(source.metafieldKey + ' metafield is not a valid ' + source.endpoint + ' payload'); }
4160        source.apply(value);
4161        console.debug('STOQ - refreshed ' + source.endpoint + ' from the Storefront API');
4162      })
4163      .catch(function(error) {
4164        console.debug('STOQ - Storefront ' + source.endpoint + ' read failed, using embed:', error.message);
4165        return viaEmbed();
4166      });
4167  }
4168  function refreshIntegrations() {
4169    const cfg = window._RestockRocketConfig;
4170    return refreshShopConfig({
4171      endpoint: 'integrations',
4172      metafieldKey: 'integrations',
4173      flag: 'enable_storefront_integrations_read',
4174      isValid: function(value) { return Array.isArray(value); },
4175      apply: function(data) {
4176        cfg.integrations = data;
4177      }
4178    });
4179  }
4180  function refreshSellingPlans(embedOnly) {
4181    const cfg = window._RestockRocketConfig;
4182    return refreshShopConfig({
4183      embedOnly: embedOnly === true,
4184      endpoint: 'selling_plans',
4185      metafieldKey: 'cachedSellingPlans',
4186      flag: 'enable_storefront_selling_plans_read',
4187      isValid: function(value) { return !!value && Array.isArray(value.plans); },
4188      apply: function(data) {
4189        cfg.sellingPlans = data.plans;
4190        cfg.disabledSellingPlanIds = data.disabled_plan_ids || [];
4191        if (data && data.read_flags && typeof data.read_flags === 'object' && !Array.isArray(data.read_flags)) {
4192          cfg.readFlags = data.read_flags;
4193        }
4194      }
4195    });
4196  }
4197
4198  function initializeScripts(settings) {
4199    settings = applyTranslations(settings);
4200    window._RestockRocketConfig.settings = settings;
4201    console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
4202    const forceEmbedSellingPlans = settings.force_embed_selling_plans === true;
4203    const staleRefresh = !window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid;
4204    if (forceEmbedSellingPlans || staleRefresh) {
4205      console.debug('STOQ - refreshing selling_plans' + (staleRefresh ? ' + integrations (Liquid cache stale)' : ' (force_embed_selling_plans)'));
4206      const refreshes = [refreshSellingPlans(forceEmbedSellingPlans)];
4207      if (staleRefresh) { refreshes.push(refreshIntegrations()); }
4208      Promise.race([
4209        Promise.all(refreshes),
4210        new Promise(function(resolve) { setTimeout(resolve, 1000); })
4211      ]).then(function() { loadScripts(settings); });
4212      return;
4213    }
4214
4215    loadScripts(settings);
4216  }
4217
4218  function loadScripts(settings) {
4219    setupCartSellingPlanUpdater(settings);
4220
4221    if(settings.enable_app) {
4222      const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
4223        return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType);
4224      })
4225      const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans)
4226        && window._RestockRocketConfig.sellingPlans.some(function(plan) { return plan && plan.enabled; });
4227      const hasDisabledPlanIds = Array.isArray(window._RestockRocketConfig.disabledSellingPlanIds)
4228        && window._RestockRocketConfig.disabledSellingPlanIds.length > 0;
4229      const usePreorderBuild = settings.preorder_enabled || hasEnabledOffer || hasDisabledPlanIds;
4230
4231      const collectionScriptUrl = usePreorderBuild
4232        ? window._RestockRocketConfig.scriptUrlCollection
4233        : window._RestockRocketConfig.scriptUrlCollectionBis;
4234      const productScriptUrl = usePreorderBuild
4235        ? window._RestockRocketConfig.scriptUrlProduct
4236        : window._RestockRocketConfig.scriptUrlProductBis;
4237
4238      const pageType = window._RestockRocketConfig.pageType;
4239      const collectionPageTypes = ['collection', 'index', 'search', 'page'];
4240
4241      if(collectionPageTypes.indexOf(pageType) !== -1 && (settings[`show_button_on_${pageType}`] || settings[`preorder_${pageType}_enabled`])) {
4242        createRestockRocketScript(collectionScriptUrl);
4243      } else if(pageType === 'product') {
4244        createRestockRocketScript(productScriptUrl);
4245      } else if(hijackIntegration) {
4246        createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
4247      } else if(usePreorderBuild) {
4248        createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
4249      } else {
4250        console.debug(`STOQ - no scripts enabled for ${pageType}`);
4251      }
4252      const appLoadedEvent = new CustomEvent('stoq:loaded', {
4253        detail: {
4254          pageType: window._RestockRocketConfig.pageType,
4255          enabled: settings.enable_app,
4256          settings: settings,
4257          preorderEnabled: settings.preorder_enabled
4258        }
4259      });
4260      console.debug('STOQ - dispatching app loaded event');
4261      window.dispatchEvent(appLoadedEvent);
4262    }
4263  }
4264</script>
4264<style id="RestockRocketStyle">html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}</style>
4265
4266
4267</div><div id="shopify-block-AcVNFMzZ6c2NvTGpQT__15079184273603081885" class="shopify-block shopify-app-block">
4268
4269
4270
4271
4272
4273
4274<script>
4275 
4276    window.essentialOrderValueBoosterConfigs = [{"id":"cmfypncks00e7qibubwzb9ztu","name":"Free Shipping Over $55","title":"Free shipping for orders over {order-value}!","progressTitle":"You’re only {order-value-progress} away from free shipping!","reachedTitle":"Congratulations! You've got free shipping!","type":"cart-page","goal":"55","moneyFormat":"${{amount}}","placement":"","published":true,"showOnProducts":[],"showOnCollections":[],"showOnProductsInCollections":[],"selectedProducts":[],"CTAType":"add-to-cart","CTALink":"","closeButton":false,"buttonText":"Add to cart","updatedAt":"2026-06-11T23:26:32.764Z","createdAt":"2025-09-25T01:04:16.888Z","style":{"font":"","titleSize":"16","borderSize":"0","titleColor":"#002459","borderColor":"#c5c8d1","gradientEnd":"#FFFFFF","singleColor":"#FFFFFF","borderRadius":"8","buttonRadius":"4","gradientTurn":"90","gradientStart":"#DDDDDD","arrowIconColor":"#BBC0C4","backgroundType":"singleBackground","buttonTextSize":"14","buttonTextColor":"#002459","insideTopSpacing":"16","productPriceSize":"14","productTitleSize":"16","buttonBorderColor":"#002459","outsideTopSpacing":"20","productPriceColor":"#002459","productTitleColor":"#002459","insideBottomSpacing":"16","outsideBottomSpacing":"20","progressBorderRadius":"4","progressBackgroundColor":"#E4E5E7","progressBarBackgroun
4276dColor":"#002459"},"showInCountries":[],"showInSubdivisions":[],"locationType":"","currency":"USD","excludeProducts":[],"excludeProductTags":[],"excludeOnPages":[],"excludeOnSpecificUrls":[],"excludeOnKeywordsInUrl":[],"upsellType":"","translations":[],"productTags":[],"offer":null},];
4277    window.essentialOrderValueBoosterProductsData = [];
4278  
4279
4280  window.essentialOrderValueBoosterPageTemplate = "blog"
4281  window.essentialOrderValueBoosterMeta = {
4282    productData: "null",
4283    cartItems: [],
4284    cartProducts: [],
4285    mainCurrency: "USD",
4286    productCollections: null,
4287  };
4288
4289  window.essentialOrderValueBoosterTranslations = {
4290    previousSlide: "Previous slide",
4291    nextSlide: "Next slide",
4292    regularPrice: "Regular price",
4293    salePrice: "Sale price",
4294    slide: "Slide"
4295  };
4296</script>
4296
4297
4298
4299
4300<script src="https://cdn.shopify.com/extensions/01a1100c-8141-7e50-92ef-fd4faee25453/order-value-booster-361/assets/free_shipping_bar_essential_apps.min.js" defer crossorigin="anonymous"></script>
4300
4301
4302<script>
4303  
4304</script>
4304
4305
4306
4307
4308
4309</div><div id="shopify-block-AOVc2SVJycmZ3TDFrM__5043070786800498925" class="shopify-block shopify-app-block"><style>
4310  .product-restore-email + .product-restore-email {
4311    display: none !important;
4312  }
4313</style>
4314
4315
4316
4317  
4317<script src="https://cdn.shopify.com/extensions/01a0c7ca-5010-747b-9d99-9a644250288a/ecomsend-restock-108/assets/sealapps_email_config.js" defer="defer"></script>
4317
4318  
4318<script src="https://cdn.shopify.com/extensions/01a0c7ca-5010-747b-9d99-9a644250288a/ecomsend-restock-108/assets/product_restore_email.js" defer="defer"></script>
4318
4319
4320
4321
4322<script id="em_product_variants" type="application/json">
4323  null
4324</script>
vendor: 2 bytes, line 4324
4324
4325<script id="em_product_selected_or_first_available_variant" type="application/json">
4326  null
4327</script>
vendor: 2 bytes, line 4327
4327
4328<script id="bis_shop_id" type="application/json">
4329  93059612988
4330</script>
vendor: 2 bytes, line 4330
4330
4331<script id="ecomsend_bis_product_title" type="application/json">
4332  null
4333</script>
vendor: 2 bytes, line 4333
4333
4334<script id="ecomsend_bis_page_type" type="application/json">
4335  "blog"
4336</script>
4336<script>
4337  
4338</script>
vendor: 2 bytes, line 4338
4338
4339<script>
4340  
4341</script>
vendor: 2 bytes, line 4341
4341
4342<script>
4343  
4344</script>
4344
4345
4346
4347<script>
4348	var bis_popup_settings = {"btn_text":"EMAIL ME WHEN AVAILABLE","btn_bg_color":"#000000","btn_text_color":"#FFFFFF","header_text":"EMAIL ME WHEN AVAILABLE","verification_failed_text":"* Your contact info is invalid","footer_text":"We will notify you when this product is in stock. We do not share your address with anybody else.","success_title":"Successfully subscribed","success_content":"We will send you an email when this product is back in stock.","email_address_placeholder":"Email address...","customer_name_placeholder":"Your name","subscribed_text":"* You are already subscribed to this product.","opt_in_text":"Subscribe me to your list","popup_template":1,"email_tab_text":"Email","sms_tab_text":"SMS","sms_default_region":"US","is_branding_removed":1,"lang":"en","terms":"Terms","privacy_policy":"Privacy Policy","protection_text":"By submitting this subscription, you agree to {{Store_Name}}'s {{Privacy_Policy}} and {{Terms}} regarding the processing of your personal data.","display_consent_checkbox":false,"display_privacy_consent":true,"terms_link":"","privacy_policy_link":"","store_name":"SONNI"}
4349	var bis_product_button_settings = {"is_active_inline_btn":1,"inline_btn_margin_top":-9,"inline_btn_margin_bottom":-9,"inline_btn_text":"Email me when available","inline_btn_bg_color":"#002459","inline_text_color":"#FFFFFF","is_active_float_btn":0,"float_offset":160,"float_btn_text":"EMAIL ME WHEN AVAILABLE","float_btn_bg_color":"#000000","float_text_color":"#FFFFFF","display_all":0,"border_color":"#FFFFFF","border_radius":10,"hover_animation":0,"font_size":14,"font_family":"Inherit","font_weight":"Inherit","hover_bg_color":"#444444","hover_text_color":"#FFFFFF","horizontal_animation":0,"display_button_oversell":0,"customize_inline_btn_position":0,"insert_type":"afterend","customize_css":"#sealapps-bis-widget { width: fit-content; }\n#sealapps-bis-widget .product-restore-email .email-me-button { padding: 5px 20px; min-height: auto; letter-spacing: 0 }","insert_element_selector":"","lang":"en","continue_sell_notify":0,"bis_segment_enabled":0,"subscribe_scope":1}
4350	var bis_collection_button_settings = {"is_active_inline_btn":0,"inline_btn_margin_top":0,"inline_btn_margin_bottom":0,"inline_btn_text":"","inline_btn_bg_color":"","inline_text_color":"","is_active_float_btn":0,"float_offset":0,"float_btn_text":"","float_btn_bg_color":"","float_text_color":"","display_all":0,"border_color":"","border_radius":0,"hover_animation":0,"font_size":0,"font_family":"","font_weight":"","hover_bg_color":"","hover_text_color":"","horizontal_animation":0,"display_button_oversell":0,"customize_inline_btn_position":0,"insert_type":"","customize_css":"","insert_element_selector":"","lang":"","continue_sell_notify":0,"bis_segment_enabled":0,"subscribe_scope":0}
4351	var bis_integrations = []
4352	var bis_floating_popup_settings = {"id":671,"component_code":"floating_popup","is_enabled":0,"position":"bottom_left","horizontal_spacing":5,"vertical_spacing":5,"display_delay":8,"show_when_continue_selling_out":0,"show_when_all_variants_out_of_stock":0,"popup_font_size":14,"popup_border_radius":12,"button_font_size":14,"button_border_radius":4,"language":"en","popup_message_text":"The product is out of stock. Subscribe to be notified when it's available.","button_text":"EMAIL ME WHEN AVAILABLE","popup_text_color":"#000000","popup_background_color":"#FFFFFF","button_text_color":"#FFFFFF","button_background_color":"#000000"}
4353</script>
4353
4354
4355
4356<script>
4357    var bis_shopify_block_status = 2;
4358  var customerInfo = null;
4359
4360  window.ChannelWillBIS = {
4361    customerInfo: customerInfo
4362  };
4363</script>
4363
4364
4365
4366</div>
4366<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4366
4367</body>
4368</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.