1<!DOCTYPE html> 2 3<html lang="en"> 4<head>
4<script data-source-attribution="shopify.event_observer.bootstrap"> 5(function(){let e=navigator,t=`prototype`,n=`sendBeacon`,r=e[n],i=fetch,a=XMLHttpRequest[t],{open:o,send:s}=a,c=`EventListener`,l=`add${c}`,u=`remove${c}`,d=EventTarget[t],f=d[l],p=d[u],m=e=>Error((e=document.currentScript)&&[e?.src,e?.id||e?.dataset?.sourceAttribution]),h=(e=[],t=0)=>(e.p=n=>e[t++%1e3]=n,[e,t=>(e.forEach(e.p=t),e.length=0)]),[g,_]=h(),[v,y]=h(),b,x=new WeakMap,S=e=>e&&g.p([e,b||[m()]]);d[l]=function(e,t,n){let r=this,i=t?.handleEvent||t,a=x.get(t),o=m();i?.call&&!a&&x.set(t,a=function(e){b=[o,e.type];try{i.call(t==i?this:t,e)}finally{b=null}}),v.p([e,o,a,r?.tagName||r+``,r?.id]),f.call(r,e,a||t,n)},d[u]=function(e,t,n){p.call(this,e,x.get(t)||t,n)},a.open=function(e,t){x.set(this,[t+``,e]),o.apply(this,arguments)},a.send=function(e){S(x.get(this)),s.call(this,e)},fetch=(e,t)=>(S([(e?.url||e)+``,t?.method]),i(e,t)),e[n]=(t,n)=>(S([t+``,``]),r.call(e,t,n)),setTimeout(()=>import("//goodsleepco.health/cdn/shopifycloud/storefront/assets/storefront/event_observer_reporter-ed358274.js").then(e=>e.$(_,y,f,i,`59824177291`)))})(); 6//# sourceURL=event-observer-collector.js 7</script>
7 8 9 <meta name="google-site-verification" content="-WIPJyy2Ng7K07tModat6XpGUfyEYC5-2hqlG8Zo-gs" /> 10 <meta charset="UTF-8" /> 11 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 12 <title>Contact | Good Sleep Co</title> 13 <meta name="description" content="Contact Good Sleep Co for sleep apnea testing and oral device inquiries. Call 07 5690 2029 or email [email protected]. Burleigh Heads, QLD." /> 14 <link rel="canonical" href="https://goodsleepco.health/pages/contact" /> 15 <meta property="og:title" content="Contact" /> 16 <meta property="og:description" content="Contact Good Sleep Co for sleep apnea testing and oral device inquiries. Call 07 5690 2029 or email [email protected]. Burleigh Heads, QLD." /> 17 <meta property="og:url" content="https://goodsleepco.health/pages/contact" /> 18 <meta property="og:type" content="website" /> 19 <meta property="og:site_name" content="Good Sleep Co" /> 20 <meta property="og:image" content="https:files/Screen_Shot_2022-07-29_at_3.59.41_pm.png" /> 21
21<script type="application/ld+json"> 22 { 23 "@context": "https://schema.org", 24 "@type": ["Organization", "MedicalBusiness"], 25 "name": "Good Sleep Co", 26 "url": "https://goodsleepco.health", 27 "logo": "https://cdn.shopify.com/s/files/1/0598/2417/7291/files/good-sleep-co-logo-long.svg", 28 "description": "At-home sleep apnea testing and clinically proven oral devices for snoring and sleep apnea treatment.", 29 "telephone": "+61756902029", 30 "email": "[email protected]", 31 "address": { 32 "@type": "PostalAddress", 33 "streetAddress": "U2/46 Junction Rd", 34 "addressLocality": "Burleigh Heads", 35 "addressRegion": "QLD", 36 "postalCode": "4220", 37 "addressCountry": "AU" 38 }, 39 "sameAs": [ 40 "https://www.facebook.com/GoodSleepCo", 41 "https://www.instagram.com/goodsleep_co/", 42 "https://www.linkedin.com/company/good-sleep-co/" 43 ] 44 } 45 </script>
45 46 <link rel="icon" type="image/png" href="https://cdn.shopify.com/s/files/1/0718/2372/0537/files/good_sleep_fav.png?v=1685575978"> 47 48 <!-- Google Tag Manager --> 49
49<script>
vendor: 335 bytes, lines 49-53
49(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 50 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 51 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 52 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 53 })(window,document,'script','dataLayer','
53GTM-M3CLJRL4
vendor: 3 bytes, line 53
53');
53</script>
53 54 55 <!-- Meta Pixel --> 56
56<script>
vendor: 419 bytes, lines 56-62
56 57 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 58 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 59 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 60 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 61 document,'script','https://connect.facebook.net/en_US/fbevents.js'); 62 fbq('init', '
62215594561324661
vendor: 36 bytes, lines 62-64
62'); 63 fbq('track', 'PageView'); 64
64</script>
64 65 <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=215594561324661&ev=PageView&noscript=1" /></noscript> 66 67 <!-- CAPI Helpers (Stape dedup + dataLayer bridge) --> 68
68<script> 69 function genEventId(prefix) { 70 return prefix + '_' + Date.now() + '_' + Math.random().toString(36).substr(2,9); 71 } 72 function getFbCookie(n) { 73 var m = document.cookie.match('(^|;)\\s*' + n + '\\s*=\\s*([^;]+)'); 74 return m ? m.pop() : ''; 75 } 76 window.dataLayer = window.dataLayer || []; 77 dataLayer.push({ 78 event: 'capi_init', 79 fbp: getFbCookie('_fbp'), 80 fbc: getFbCookie('_fbc'), 81 page_url: window.location.href, 82 page_referrer: document.referrer 83 }); 84 </script>
84 85 86 <!-- GA4 -->
vendor: 66 bytes, lines 86-87
86 87 <script async src="https://www.googletagmanager.com/gtag/js?id=
87G-KJMJE19M6G
vendor: 14 bytes, lines 87-88
87"></script> 88
88<script> 89
vendor: 139 bytes, lines 89-92
89window.dataLayer = window.dataLayer || []; 90 function gtag(){dataLayer.push(arguments);} 91 gtag('js', new Date()); 92 gtag('config', '
92G-KJMJE19M6G
vendor: 8 bytes, lines 92-93
92'); 93
93/* Google Ads conversion tracking handled via GTM (Kraken tags, conversion ID 16804250699). 94 AW-17634919796 removed â no conversion actions configured in that account. 95 Re-add when account has proper conversion tags set up. */ 96 </script>
96 97 98 99 <!-- Hyros (universal) â deferred to not block LCP --> 100
100<script> 101window.addEventListener('load', function() { 102 var head = document.head; 103 var script = document.createElement('script'); 104 script.type = 'text/javascript'; 105 script.src = "https://tr.goodsleepco.health/v1/lst/universal-script?ph=870f297b63c5291965577f724d5b5cb88e2f5c638b25cab9e3dc91ddcecd6f74&tag=!clicked&ref_url=" + encodeURI(document.URL) ; 106 head.appendChild(script); 107}); 108</script>
108 109 110 111 <!-- PostHog â deferred to window.load --> 112
112<script> 113 window.addEventListener('load', function() { 114 !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group identify setPersonProperties setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags resetGroups onFeatureFlags addFeatureFlagsHandler onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]); 115 posthog.init('phc_i4IITH8aa9SyDS1vFFcMt7ZWwjunMcFE9TzA6BokPkh', { 116 api_host: 'https://us.i.posthog.com', 117 defaults: '2026-01-30' 118 }); 119 }); 120 </script>
120 121 122 <!-- Klaviyo Web Tracking â deferred --> 123
123<script> 124 window.addEventListener('load', function() { 125 var s = document.createElement('script'); 126 s.type = 'text/javascript'; 127 s.src = 'https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=WscBdf'; 128 document.head.appendChild(s); 129 }); 130 </script>
130 131 132 <!-- Compiled Tailwind CSS (replaces CDN runtime â 26KB vs 300KB) --> 133 <link rel="stylesheet" href="//goodsleepco.health/cdn/shop/t/11/assets/tailwind-compiled.css?v=59973773598703081251773992497"> 134 <link rel="preconnect" href="https://fonts.googleapis.com"> 135 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 136 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet"> 137 <style> 138 * { font-family: 'Inter', system-ui, sans-serif; } 139 html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; } 140 body { font-family: 'Inter', system-ui, sans-serif; margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } 141 .tracking-brand { letter-spacing: 0.2em; } 142 143 /* FAQ Accordion */ 144 .faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.3s ease, padding 0.3s ease; } 145 .faq-answer.open { max-height: 500px; } 146 .faq-chevron { transition: transform 0.3s ease; } 147 .faq-chevron.open { transform: rotate(180deg); } 148 149 /* Fade-in animation */ 150 .fade-in { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; } 151 .fade-in.visible { opacity: 1; transform: translateY(0); } 152 153 /* Quiz select dropdown */ 154 .quiz-select { transition: all 0.2s ease; } 155 .quiz-step { animation: fadeUp 0.4s ease; } 156 157 /* Result cards */ 158 .result-card { display: none; } 159 .result-card.active { display: block; animation: fadeUp 0.5s ease; } 160 161 @keyframes fadeUp { 162 from { opacity: 0; transform: translateY(16px); } 163 to { opacity: 1; transform: translateY(0); } 164 } 165 166 /* Sticky bar */ 167 .sticky-cta { transform: translateY(100%); transition: transform 0.3s ease; } 168 .sticky-cta.show { transform: translateY(0); } 169 170 /* Price strikethrough */ 171 .price-old { text-decoration: line-through; opacity: 0.6; } 172 173 /* Safe area for iOS notch/bottom bar */ 174 .safe-area-bottom { padding-bottom: env(safe-area-inset-bottom, 0); } 175 176 /* Bottom padding so sticky CTA doesn't overlap footer content on mobile */ 177 @media (max-width: 1023px) { 178 footer { padding-bottom: 4.5rem; } 179 } 180 181 /* Comparison table highlight */ 182 .highlight-col { background-color: #E8F0F6; } 183 184 /* Journey line */ 185 .journey-line { position: relative; } 186 .journey-line::before { 187 content: ''; 188 position: absolute; 189 top: 20px; 190 left: 0; 191 right: 0; 192 height: 2px; 193 background: linear-gradient(to right, #ECAFAC, #99BCD2, #002156); 194 } 195 196 /* Pulse animation for CTA */ 197 .pulse-soft { 198 animation: pulseSoft 2s infinite; 199 } 200 @keyframes pulseSoft { 201 0%, 100% { box-shadow: 0 0 0 0 rgba(236, 175, 172, 0.4); } 202 50% { box-shadow: 0 0 0 12px rgba(236, 175, 172, 0); } 203 } 204 205 /* Scrollbar hide for thumbnail strips */ 206 .scrollbar-hide::-webkit-scrollbar { display: none; } 207 .scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; } 208 209 /* Skip-to-content */ 210 .skip-link { position: absolute; top: -100%; left: 50%; transform: translateX(-50%); z-index: 100; } 211 .skip-link:focus { top: 0.5rem; } 212 213 /* Focus-visible for keyboard users */ 214 :focus-visible { outline: 2px solid #ECAFAC; outline-offset: 2px; } 215 button:focus:not(:focus-visible), a:focus:not(:focus-visible) { outline: none; } 216 </style>
216<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
216<meta name="google-site-verification" content="ETV9ghkhb6XK185UpHnL0Au1_x3pQ1Y_ggHn-iG5VAg"> 217<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/59824177291/digital_wallets/dialog"> 218<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
218<script async="async" src="/checkouts/internal/preloads.js?locale=en-AU"></script>
218 219<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
220<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-AU&shop_id=59824177291" crossorigin="anonymous"></script>
vendor: 1 bytes, line 220
220
221<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":59824177291,"countryCode":"AU","currencyCode":"AUD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/59824177291","merchantName":"Good Sleep Co","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","jcb"],"total":{"type":"pending","label":"Good Sleep Co","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 221
221
222<script id="shopify-features" type="application/json">{"accessToken":"ded888b8287375f7beb665757cf73295","betas":["rich-media-storefront-analytics"],"domain":"goodsleepco.health","predictiveSearch":true,"shopId":59824177291,"locale":"en"}</script>
vendor: 1 bytes, line 222
222
223<script>var Shopify = Shopify || {}; 224Shopify.shop = "good-sleep-co-gc.myshopify.com"; 225Shopify.locale = "en"; 226Shopify.currency = {"active":"AUD","rate":"1.0"}; 227Shopify.country = "AU"; 228Shopify.theme = {"name":"Gateway Home Page","id":140639207563,"schema_name":"Motion","schema_version":"8.5.1","theme_store_id":null,"role":"main"}; 229Shopify.theme.handle = "null"; 230Shopify.theme.style = {"id":null,"handle":null}; 231Shopify.cdnHost = "goodsleepco.health/cdn"; 232Shopify.routes = Shopify.routes || {}; 233Shopify.routes.root = "/"; 234Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 235Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 236Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 237Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 237
237
238<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 238
238
239<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 239
239
240<script> 241 window.ShopifyPay = window.ShopifyPay || {}; 242 window.ShopifyPay.apiHost = "shop.app\/pay"; 243 window.ShopifyPay.redirectState = null; 244</script>
vendor: 1 bytes, line 244
244
245<script> 246 window.Shopify = window.Shopify || {}; 247 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 248 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 249 window.Shopify.SignInWithShop.eligible = true; 250</script>
vendor: 1 bytes, line 250
250
251<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 251
251
252<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 252
252
253<script type="module"> 254 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 255 256 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 257 258</script>
vendor: 1 bytes, line 258
258
259<script> 260 window.Shopify = window.Shopify || {}; 261 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 262 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"]}; 263</script>
vendor: 1 bytes, line 263
263
264<script>(function() { 265 var isLoaded = false; 266 function asyncLoad() { 267 if (isLoaded) return; 268 isLoaded = true; 269 var urls = ["https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=good-sleep-co-gc.myshopify.com"]; 270 for (var i = 0; i < urls.length; i++) { 271 var s = document.createElement('script'); 272 s.type = 'text/javascript'; 273 s.async = true; 274 s.src = urls[i]; 275 var x = document.getElementsByTagName('script')[0]; 276 x.parentNode.insertBefore(s, x); 277 } 278 }; 279 if(window.attachEvent) { 280 window.attachEvent('onload', asyncLoad); 281 } else { 282 window.addEventListener('load', asyncLoad, false); 283 } 284})();</script>
vendor: 1 bytes, line 284
284
285<script id="__st">var __st={"a":59824177291,"offset":36000,"reqid":"b2b89439-cf30-4dd2-9dd8-13e130d17625-1790856701","pageurl":"goodsleepco.health\/pages\/contact","s":"pages-93631021195","u":"c3e59b39343e","p":"page","rtyp":"page","rid":93631021195};</script>
vendor: 1 bytes, line 285
285
286<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 286
286
287<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 287
287
288<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//goodsleepco.health/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 288
288
289<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 = "//goodsleepco.health/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>
289<script crossorigin="anonymous" defer="defer" src="//goodsleepco.health/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 289
289
290<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 290
290
291<script> 292 window.Shopify = window.Shopify || {}; 293 window.Shopify.MCP = window.Shopify.MCP || {}; 294 window.Shopify.MCP.enabled = true; 295 window.Shopify.MCP.shop = "good-sleep-co-gc.myshopify.com"; 296 window.Shopify.MCP.mcpEndpoint = "https:\/\/goodsleepco.health\/api\/mcp"; 297 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 298</script>
vendor: 1 bytes, line 298
298
299<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("\/\/goodsleepco.health\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 300</script>
vendor: 1 bytes, line 300
300
301<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://goodsleepco.health/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 302</script>
vendor: 1 bytes, line 302
302
303<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 304 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); 305</script>
vendor: 1 bytes, line 305
305
306<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})}})); 307</script>
307 308<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://goodsleepco.health/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 309<style id="shopify-accelerated-checkout-cart"> 310 #shopify-buyer-consent { 311 margin-top: 1em; 312 display: inline-block; 313 width: 100%; 314} 315 316#shopify-buyer-consent.hidden { 317 display: none; 318} 319 320#shopify-subscription-policy-button { 321 background: none; 322 border: none; 323 padding: 0; 324 text-decoration: underline; 325 font-size: inherit; 326 cursor: pointer; 327} 328 329#shopify-subscription-policy-button::before { 330 box-shadow: none; 331} 332 333 </style> 334
335<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
335 336
336<script> 337 /* Session UTM capture: any entry page stores UTMs so lead forms (e.g. treatment) keep attribution after navigation */ 338 (function () { 339 try { 340 var p = new URLSearchParams(window.location.search); 341 var ks = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term']; 342 var out = {}, found = false; 343 ks.forEach(function (k) { var v = p.get(k); if (v) { out[k] = v; found = true; } }); 344 if (found) sessionStorage.setItem('gsc_utms', JSON.stringify(out)); 345 } catch (e) {} 346 })(); 347 </script>
347 348<!-- BEGIN app block: shopify://apps/essential-a-b-testing/blocks/ab-testing/0154ac6b-7b9c-4958-8219-ed5b06e6d463 -->
348<script type="text/javascript"> 349 var eaABtEmbdScrV=(function(){"use strict";var P=Object.defineProperty;var E=(c,a,l)=>a in c?P(c,a,{enumerable:!0,configurable:!0,writable:!0,value:l}):c[a]=l;var h=(c,a,l)=>E(c,typeof a!="symbol"?a+"":a,l);class c{constructor(){h(this,"selectors",["#PBarNextFrameWrapper","#preview-bar-iframe"]);h(this,"keepLookingForMs",1e4)}hide(){return Promise.all(this.selectors.map(e=>this.waitAndHideElement(e)))}waitAndHideElement(e){return new Promise(t=>{let s=0;const i=u=>{u.dataset.eaAbPbHidden!=="1"&&(u.dataset.eaAbPbHidden="1",u.style.display="none")},n=document.querySelector(e);if(n){i(n),t(!0);return}const o=new MutationObserver(()=>{const u=document.querySelector(e);u&&(i(u),window.clearTimeout(s),o.disconnect(),t(!0))});o.observe(document.documentElement,{childList:!0,subtree:!0}),s=window.setTimeout(()=>{o.disconnect(),t(!1)},this.keepLookingForMs)})}}const a=/\b(googlebot|adsbot-google|google-adsbot|mediapartners-google|google-inspectiontool|googleother|storebot-google|google-read-aloud|googleweblight|googlepage|google-adwords(?:-[a-z0-9-]+)?|bingbot|slurp|duckduckbot|baiduspider|yandex(?:bot|images)|sogou|exabot|applebot|petalbot|ahrefsbot|semrushbot|mj12bot|dotbot|seznambot|rogerbot|linkdexbot|facebookexternalhit|facebot|linkedinbot|twitterbot|pinterest|redditbot|discordbot|slackbot|whatsapp|telegrambot|embedly|quora-link-preview|outbrain|nuzzel|flipboardproxy|vkshare)\b/i;class l{static shouldProcessRequest(e){return!(this.isBot()||!this.canPersist()||this.isInDesignMode(e)||this.isAppPreview())}static isBot(){return a.test(navigator.userAgent)}static canPersist(){try{const e="__essential-ab-testing-persistance__";return localStorage.setItem(e,"1"),localStorage.removeItem(e),!0}catch{return!1}}static isInDesignMode(e){return e.request.designMode}static isAppPreview(){return new URLSearchParams(window.location.search).get("eaPreview")==="true"}}var d=(r=>(r.TEMPLATE="template",r.THEME="theme",r))(d||{});class f{static themeGid(e){return`gid://shopify/OnlineStoreTheme/${e}`}static themeId(e){return e.replace("gid://shopify/OnlineStoreTheme/","")}}class m{static handle(e,t,s){switch(e.type){case d.TEMPLATE:this.handleTemplate(e,t,s);return;case d.THEME:this.handleTheme(e,t);return}}static handleTemplate(e,t,s){if(t!=="a"&&t!=="b")return;const n=e.params[t];if(n.name!==s.template.name||n.suffix===s.template.suffix)return;const o=new URL(window.location.href);o.searchParams.set("view",n.suffix??"__DEFAULT"),window.location.replace(o.toString())}static handleTheme(e,t){if(t!=="a"&&t!=="b")return;const i=e.params[t];if(i===f.themeGid(Shopify.theme.id))return;const n=f.themeId(i),o=new URL(window.location.href);o.searchParams.set("preview_theme_id",n),window.location.replace(o.toString())}}class p{constructor(e){h(this,"tests");this.tests=e}find(e){return this.tests.find(t=>{switch(t.type){case d.TEMPLATE:return this.testMatchesTemplate(t.params,e);case d.THEME:return this.testMatchesTheme(t.params)}return!1})}testMatchesTemplate(e,t){return e.themeId!==f.themeGid(Shopify.theme.id)?!1:e.a.name===t.template.name&&e.a.suffix===t.template.suffix||e.b.name===t.template.name&&e.b.suffix===t.template.suffix}testMatchesTheme(e){const t=f.themeGid(Shopify.theme.id);return e.a===t||e.b===t}}class g{static pick(e){return Math.random()<=e.aPercentage/100?"a":"b"}}class b{static generate(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():typeof crypto<"u"&&crypto.getRandomValues?"10000000-1000-4000-8000-100000000000".replace(/[018]/g,e=>(+e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>+e/4).toString(16)):"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}}class x{constructor(e){h(this,"key");this.key=`essential-ab-testing-${e}`}get(){const e=localStorage.getItem(this.key);if(e)try{return JSON.parse(e)}catch{}}getOrMake(){const e=this.get();return e||{id:b.generate(),createdAt:new Date,tests:[]}}getTestVariant(e){const t=this.get();if(!t)return;const i=(t.tests??[]).find(n=>n.id==e);return i?i.variant:void 0}setTestVariant(e,t){const s=this.getOrMake();s.tests.push({id:e,variant:t,createdAt:new Date}),localStorage.setItem(this.key,JSON.stringify(s))}onlyKeepTests(e){const t=this.get();if(!t||t.tests.length==0)return;const s=t.tests.filter(i=>e.includes(i.id));s.length!=t.tests.length&&(t.tests=s,localStorage.setItem(this.key,JSON.stringify(t)))}}const w=50,y=200;function T(r){if(typeof Shopify<"u"&&Shopify.theme){r();return}let e=0;const t=setInterval(()=>{e++,typeof Shopify<"u"&&Shopify.theme?(clearInterval(t),r()):e>=y&&clearInterval(t)},w)}function S(r,e){if(!l.shouldProcessRequest(r))return;new c().hide();const t=new x(r.shopId);t.onlyKeepTests(e.map(o=>o.id));const i=new p(e).find(r);if(!i)return;let n=t.getTestVariant(i.id);n||(n=g.pick(i),t.setTestVariant(i.id,n)),m.handle(i,n,r)}function v(r,e){T(()=>S(r,e))}return v})(); 350 351 eaABtEmbdScrV( 352 { 353 shopId: 59824177291, 354 request: { 355 designMode: false, 356 visualPreviewMode: false, 357 }, 358 template: { 359 directory: null, 360 name: "page", 361 suffix: "contact-v2", 362 } 363 }, 364 JSON.parse('[]') 365 ); 366</script>
366<!-- END app block --><!-- BEGIN app block: shopify://apps/geolocation-flow/blocks/auto-redirects/99c42a40-4a88-4244-a03e-a752a0b4e07d -->
366<script src="https://cdn.shopify.com/extensions/019fa68b-5014-74a6-b414-02bbdcfce20d/xapps-geo-345/assets/xgeo-countries-data.js"></script>
366<script type="application/json" data-xgeo-auto-config> 367 { 368 "settings": {"autoRedirectOnce":false,"autoRedirectOnceType":"session","disableUrlParam":false,"forward_url_params":true,"domain_redirection":false,"botDetectionPatterns":"bot|adsbot|googlebot|crawler|spider|robot|crawling|slurp","allowedPages":["all"],"redirectOnPagesMode":"trigger","autoRedirectDelay":0,"utm_source":"","utm_medium":"","utm_campaign":""}, 369 "shopifyTemplate": "page", 370 "shopifyTemplateDir": "", 371 "planName": "Pro plan", 372 "isDevPlan": false, 373 374 "autoRedirects": [{"id":"gid:\/\/shopify\/Metafield\/34906479493259","key":"mmcluumm","location":["US","CA"],"except_r":false,"block":false,"url":"https:\/\/goodsleepco.com\/","domain_redirection":true,"status":true,"order":1,"redirectOnPagesMode":"trigger","allowedPages":["all"]}], 375 "customCodeString": "" 376 } 377 </script>
377<script src="https://cdn.shopify.com/extensions/019fa68b-5014-74a6-b414-02bbdcfce20d/xapps-geo-345/assets/auto-redirects.min.js"></script>
377<!-- BEGIN app snippet: geo-simulator -->
377<script> 378(function(){ 379 var u=location.search,c=document.cookie,k='xgeo-sim-active'; 380 if(u.includes('xgeo-sim=1')){document.cookie=k+'=1;path=/;max-age=86400';} 381 if(u.includes('xgeo-sim=1')||c.includes(k+'=')){ 382 var s=document.createElement('script'); 383 s.src="https://cdn.shopify.com/extensions/019fa68b-5014-74a6-b414-02bbdcfce20d/xapps-geo-345/assets/geo-simulator.min.js"; 384 s.dataset.logo="https://cdn.shopify.com/extensions/019fa68b-5014-74a6-b414-02bbdcfce20d/xapps-geo-345/assets/main-logo.svg"; 385 document.head.appendChild(s); 386 } 387})(); 388</script>
388 389<!-- END app snippet --> 390<!-- END app block --><!-- BEGIN app block: shopify://apps/eg-auto-add-to-cart/blocks/app-embed/0f7d4f74-1e89-4820-aec4-6564d7e535d2 --> 391 392 393 394 395 396 397 398 399 400 401 402 403
403<script 404 async 405 type="text/javascript" 406 src="https://cdn.506.io/eg/script.js?shop=good-sleep-co-gc.myshopify.com&v=12" 407 ></script>
407 408 409 410 411 412 <meta id="easygift-shop" itemid="c2hvcF8kXzE3OTA4NTY3MDE=" content="{"isInstalled":true,"installedOn":"2025-10-07T06:33:21.498Z","appVersion":"3.0","subscriptionName":"Standard","cartAnalytics":true,"freeTrialEndsOn":null,"settings":{"reminderBannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"closingMode":"doNotAutoClose","cssStyles":"","displayAfter":5,"headerText":"","imageUrl":null,"primaryColor":"#000000","reshowBannerAfter":"everyNewSession","selfcloseAfter":5,"showImage":false,"subHeaderText":""},"addedItemIdentifier":"_Gifted","ignoreOtherAppLineItems":null,"customVariantsInfoLifetimeMins":1440,"redirectPath":null,"ignoreNonStandardCartRequests":false,"bannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"cssStyles":null,"primaryColor":"#000000"},"themePresetId":null,"notificationStyle":{"position":{"horizontal":null,"vertical":null},"cssStyles":null,"duration":null,"hasCustomizations":false,"primaryColor":null},"fetchCartData":false,"useLocalStorage":{"enabled":false,"expiryMinutes":null},"popupStyle":{"addButtonText":null,"cssStyles":null,"dismissButtonText":null,"hasCustomizations":false,"imageUrl":null,"outOfStockButtonText":null,"primaryColor":null,"secondaryColor":null,"showProductLink":false,"subscriptionLabel":null},"refreshAfterBannerClick":false,"disableReapplyRules":false,"disableReloadOnFailedAddition":false,"autoReloadCartPage":false,"ajaxRedirectPath":null,"allowSimultaneousRequests":false,"applyRulesOnCheckout":false,"enableCartCtrlOverrides":true,"scriptSettings":{"branding":{"removalRequestSent":null,"show":false},"productPageRedirection":{"enabled":false,"products":[],"redirectionURL":"\/"},"debugging":{"enabled":false,"enabledOn":null,"stringifyObj":false},"hideGiftedPropertyText":false,"fetchCartDataBeforeRequest":false,"customCSS":null,"decodePayload":false,"delayUpdates":2000,"enableBuyNowInterceptions":false,"fetchProductInfoFromSavedDomain":false,"hideAlertsOnFrontend":false,"removeEGPropertyFromSplitActionLineItems":false,"removeProductsAddedFromExpiredRules":false,"useFinalPrice":true}},"translations":null,"defaultLocale":"en","shopDomain":"goodsleepco.health"}"> 413 414
415<script defer> 416 (async function() { 417 try { 418 419 const blockVersion = "v3" 420 if (blockVersion != "v3") { 421 return 422 } 423 424 let metaErrorFlag = false; 425 if (metaErrorFlag) { 426 return 427 } 428 429 // Parse metafields as JSON 430 const metafields = {"easygift-rule-68e4b71485c315935a7a62fa":{"schedule":{"enabled":false,"starts":null,"ends":null},"trigger":{"productTags":{"targets":[],"collectionInfo":null,"sellingPlan":null},"type":"productsInclude","minCartValue":null,"hasUpperCartValue":false,"upperCartValue":null,"products":[{"name":"Good Sleep Test - Default Title","variantId":41438208163979,"variantGid":"gid:\/\/shopify\/ProductVariant\/41438208163979","productGid":"gid:\/\/shopify\/Product\/7135719981195","handle":"good-sleep-test","sellingPlans":[],"alerts":[],"_id":"68e4b7ac65068856f3ac3ab7"}],"collections":[],"condition":"quantity","conditionMin":1,"conditionMax":null,"collectionSellingPlanType":null},"action":{"notification":{"enabled":false,"headerText":null,"subHeaderText":null,"showImage":false,"imageUrl":""},"discount":{"issue":null,"type":"app","discountType":"percentage","title":"Ebook Free","createdByEasyGift":true,"easygiftAppDiscount":true,"value":100,"id":"gid:\/\/shopify\/DiscountAutomaticNode\/1536712671371"},"popupOptions":{"showVariantsSeparately":false,"headline":null,"subHeadline":null,"showItemsPrice":false,"popupDismissable":false,"imageUrl":null,"persistPopup":false,"rewardQuantity":1,"showDiscountedPrice":false,"hideOOSItems":false},"banner":{"enabled":false,"headerText":null,"subHeaderText":null,"showImage":false,"imageUrl":null,"displayAfter":"5","closingMode":"doNotAutoClose","selfcloseAfter":"5","reshowBannerAfter":"everyNewSession","redirectLink":null},"type":"addAutomatically","products":[{"name":"Ebook - Sleep, snoring and sleep disorders - Default Title","variantId":"44338407899275","variantGid":"gid:\/\/shopify\/ProductVariant\/44338407899275","productGid":"gid:\/\/shopify\/Product\/7934261297291","quantity":1,"handle":"ebook-sleep-snoring-and-sleep-disorders","price":"0.00"}],"limit":1,"preventProductRemoval":false,"addAvailableProducts":false},"targeting":{"link":{"destination":null,"data":null,"cookieLifetime":14},"additionalCriteria":{"geo":{"include":[],"exclude":[]},"type":null,"customerTags":[],"customerTagsExcluded":[],"customerId":[],"orderCount":null,"hasOrderCountMax":false,"orderCountMax":null,"totalSpent":null,"hasTotalSpentMax":false,"totalSpentMax":null},"type":"all"},"settings":{"worksInReverse":true,"runsOncePerSession":false,"preventAddedItemPurchase":true,"showReminderBanner":false},"_id":"68e4b71485c315935a7a62fa","name":"Ebook","store":"68e4b42e97137fb6fb552788","shop":"good-sleep-co-gc","active":true,"translations":null,"createdAt":"2025-10-07T06:45:40.675Z","updatedAt":"2025-11-10T16:38:19.921Z","__v":0}}; 431 432 // Process metafields in JavaScript 433 let savedRulesArray = []; 434 for (const [key, value] of Object.entries(metafields)) { 435 if (value) { 436 for (const prop in value) { 437 // avoiding Object.Keys for performance gain -- no need to make an array of keys. 438 savedRulesArray.push(value); 439 break; 440 } 441 } 442 } 443 444 const metaTag = document.createElement('meta'); 445 metaTag.id = 'easygift-rules'; 446 metaTag.content = JSON.stringify(savedRulesArray); 447 metaTag.setAttribute('itemid', 'cnVsZXNfJF8xNzkwODU2NzAx'); 448 449 document.head.appendChild(metaTag); 450 } catch (err) { 451 452 } 453 })(); 454</script>
454 455 456 457
457<script 458 type="text/javascript" 459 defer 460 > 461 462 (function () { 463 try { 464 window.EG_INFO = window.EG_INFO || {}; 465 var shopInfo = {"isInstalled":true,"installedOn":"2025-10-07T06:33:21.498Z","appVersion":"3.0","subscriptionName":"Standard","cartAnalytics":true,"freeTrialEndsOn":null,"settings":{"reminderBannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"closingMode":"doNotAutoClose","cssStyles":"","displayAfter":5,"headerText":"","imageUrl":null,"primaryColor":"#000000","reshowBannerAfter":"everyNewSession","selfcloseAfter":5,"showImage":false,"subHeaderText":""},"addedItemIdentifier":"_Gifted","ignoreOtherAppLineItems":null,"customVariantsInfoLifetimeMins":1440,"redirectPath":null,"ignoreNonStandardCartRequests":false,"bannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"cssStyles":null,"primaryColor":"#000000"},"themePresetId":null,"notificationStyle":{"position":{"horizontal":null,"vertical":null},"cssStyles":null,"duration":null,"hasCustomizations":false,"primaryColor":null},"fetchCartData":false,"useLocalStorage":{"enabled":false,"expiryMinutes":null},"popupStyle":{"addButtonText":null,"cssStyles":null,"dismissButtonText":null,"hasCustomizations":false,"imageUrl":null,"outOfStockButtonText":null,"primaryColor":null,"secondaryColor":null,"showProductLink":false,"subscriptionLabel":null},"refreshAfterBannerClick":false,"disableReapplyRules":false,"disableReloadOnFailedAddition":false,"autoReloadCartPage":false,"ajaxRedirectPath":null,"allowSimultaneousRequests":false,"applyRulesOnCheckout":false,"enableCartCtrlOverrides":true,"scriptSettings":{"branding":{"removalRequestSent":null,"show":false},"productPageRedirection":{"enabled":false,"products":[],"redirectionURL":"\/"},"debugging":{"enabled":false,"enabledOn":null,"stringifyObj":false},"hideGiftedPropertyText":false,"fetchCartDataBeforeRequest":false,"customCSS":null,"decodePayload":false,"delayUpdates":2000,"enableBuyNowInterceptions":false,"fetchProductInfoFromSavedDomain":false,"hideAlertsOnFrontend":false,"removeEGPropertyFromSplitActionLineItems":false,"removeProductsAddedFromExpiredRules":false,"useFinalPrice":true}},"translations":null,"defaultLocale":"en","shopDomain":"goodsleepco.health"}; 466 var productRedirectionEnabled = shopInfo.settings.scriptSettings.productPageRedirection.enabled; 467 if (["Unlimited", "Enterprise"].includes(shopInfo.subscriptionName) && productRedirectionEnabled) { 468 var products = shopInfo.settings.scriptSettings.productPageRedirection.products; 469 if (products.length > 0) { 470 var productIds = products.map(function(prod) { 471 var productGid = prod.id; 472 var productIdNumber = parseInt(productGid.split('/').pop()); 473 return productIdNumber; 474 }); 475 var productInfo = null; 476 var isProductInList = productIds.includes(productInfo.id); 477 if (isProductInList) { 478 var redirectionURL = shopInfo.settings.scriptSettings.productPageRedirection.redirectionURL; 479 if (redirectionURL) { 480 window.location = redirectionURL; 481 } 482 } 483 } 484 } 485 486 487 } catch(err) { 488 return 489 }}
489)() 490 </script>
490 491 492 493 494<!-- END app block --><!-- BEGIN app block: shopify://apps/triplewhale/blocks/triple_pixel_snippet/483d496b-3f1a-4609-aea7-8eee3b6b7a2a --><link rel='preconnect dns-prefetch' href='https://api.config-security.com/' crossorigin /> 495<link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin />
496<script> 497/* >> TriplePixel :: start*/ 498window.TriplePixelData={TripleName:"good-sleep-co-gc.myshopify.com",ver:"2.16",plat:"SHOPIFY",isHeadless:false,src:'SHOPIFY_EXT',product:{id:"",name:``,price:"",variant:"",av:{ }},search:"",collection:"",cart:"drawer",template:"page",curr:"AUD" || "AUD", market:"28434563211"},function(W,H,A,L,E,_,B,N){function O(U,T,P,H,R){void 0===R&&(R=!1),H=new XMLHttpRequest,P?(H.open("POST",U,!0),H.setRequestHeader("Content-Type","text/plain")):H.open("GET",U,!0),H.send(JSON.stringify(P||{})),H.onreadystatechange=function(){4===H.readyState&&200===H.status?(R=H.responseText,U.includes("/first")?eval(R):P||(N[B]=R)):(299<H.status||H.status<200)&&T&&!R&&(R=!0,O(U,T-1,P))}}if(N=window,!N[H+"sn"]){N[H+"sn"]=1,L=function(){return Date.now().toString(36)+"_"+Math.random().toString(36)};try{A.setItem(H,1+(0|A.getItem(H)||0)),(E=JSON.parse(A.getItem(H+"U")||"[]")).push({u:location.href,r:document.referrer,t:Date.now(),id:L()}),A.setItem(H+"U",JSON.stringify(E))}catch(e){}var i,m,p;A.getItem('"!nC`')||(_=A,A=N,A[H]||(E=A[H]=function(t,e,i){return void 0===i&&(i=[]),"State"==t?E.s:(W=L(),(E._q=E._q||[]).push([W,t,e].concat(i)),W)},E.s="Installed",E._q=[],E.ch=W,B="configSecurityConfModel",N[B]=1,O("https://conf.config-security.com/model",5),i=L(),m=A[atob("c2NyZWVu")],_.setItem("di_pmt_wt",i),p={id:i,action:"profile",avatar:_.getItem("auth-security_rand_salt_"),time:m[atob("d2lkdGg=")]+":"+m[atob("aGVpZ2h0")],host:A.TriplePixelData.TripleName,plat:A.TriplePixelData.plat,url:window.location.href.slice(0,500),ref:document.referrer,ver:A.TriplePixelData.ver},O("https://api.config-security.com/event",5,p),O("https://api.config-security.com/first?host=".concat(p.host,"&plat=").concat(p.plat),5)))}}("","TriplePixel",localStorage); 499/* << TriplePixel :: end*/ 500</script>
500 501 502 503 504<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 505 506 507 508 509 510 511 512 513 514 515 516 517
517<script async src="https://static.klaviyo.com/onsite/js/WscBdf/klaviyo.js?company_id=WscBdf"></script>
517 518
518<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>
518 519 520 521 522 523 524 525
525<script> 526 window.klaviyoReviewsProductDesignMode = false 527 </script>
527 528 529 530 531 532 533 534 535 536 537<!-- END app block -->
537<script src="https://cdn.shopify.com/extensions/019cfe03-08f6-782b-9714-4c1ba92113b7/theme-app-extension-25/assets/kooee-embed.js" type="text/javascript" defer="defer"></script>
537 538<link href="https://cdn.shopify.com/extensions/019cfe03-08f6-782b-9714-4c1ba92113b7/theme-app-extension-25/assets/kooee.css" rel="stylesheet" type="text/css" media="all">
539<script src="https://cdn.shopify.com/extensions/019feb7b-2b89-71ba-a248-f1c8ef9b3368/stape-remix-56/assets/widget.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 539
539
540<script src="https://cdn.shopify.com/extensions/01a0ec21-7369-78a6-b9c0-c07227d664ec/lb-upsell-451/assets/lb-selleasy.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 540
540
541<script src="https://cdn.shopify.com/extensions/019fa68b-5014-74a6-b414-02bbdcfce20d/xapps-geo-345/assets/native-geo-redirects.min.js" type="text/javascript" defer="defer"></script>
541 542<link href="https://cdn.shopify.com/extensions/019fa68b-5014-74a6-b414-02bbdcfce20d/xapps-geo-345/assets/native-geo-redirects.min.css" rel="stylesheet" type="text/css" media="all"> 543<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
544<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: 59824177291,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};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 544
544
545<script> 546 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 547</script>
vendor: 1 bytes, line 547
547
548<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}
548).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: 59824177291,storefrontBaseUrl: "https://goodsleepco.health",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://goodsleepco.health/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2378301579","configuration":"{\"storeId\":\"fc8c33ba-ddb3-4627-bcbd-4d1f2e36df0d\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9b5c7e9eba54366aed35e340586c8163","type":"APP","apiClientId":274629623809,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2197258379","configuration":"{\"shopId\":\"good-sleep-co-gc.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7093dff47f098f6de2afb75b62011ebe","type":"APP","apiClientId":2753413,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
548,{"id":"1902149771","configuration":"{\"accountID\":\"59824177291\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9cf281f576a3744d05c8685f9f7f3f72","type":"APP","apiClientId":10250649601,"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":"1809023115","configuration":"{\"accountID\":\"WscBdf\",\"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":"1502478475","configuration":"{\"hyrosProductHash\":\"870f297b63c5291965577f724d5b5cb88e2f5c638b25cab9e3dc91ddcecd6f74\",\"hyrosUrl\":\"https:\\\/\\\/tr.goodsleepco.health\\\/v1\\\/lst\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"602d3c7dfefa9b81da3f888ed343aca5","type":"APP","apiClientId":1804565,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1430978699","configuration":"{\"shopId\":\"gid:\/\/shopify\/Shop\/59824177291\",\"baseUrl\":\"https:\/\/ab-testing.essential-apps.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"b26e45fa9a7a5cf51742cf4b300d6739","type":"APP","apiClientId":248390909953,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1293156491","configuration":"{\"pixel_id\":\"215594561324661\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"519209099","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"AW-17634919796\\\",\\\"GT-PL9DFRG2\\\",\\\"G-KJMJE19M6G\\\"],\\\"target_country\\\":\\\"AU\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-KJMJE19M6G\\\",\\\"AW-17634919796\\\/pn9QCNar8KMcEPSK_thB\\\",\\\"AW-17634919796\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-KJMJE19M6G\\\",\\\"AW-17634919796\\\/cO1QCM6X8KMcEPSK_thB\\\",\\\"AW-17634919796\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-KJMJE19M6G\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-KJMJE19M6G\\\",\\\"AW-17634919796\\\/PQMCCNOr8KMcEPSK_thB\\\",\\\"MC-5E8NX8PYRJ\\\",\\\"AW-17634919796\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-KJMJE19M6G\\\",\\\"AW-17634919796\\\/trUiCMuX8KMcEPSK_thB\\\",\\\"MC-5E8NX8PYRJ\\\",\\\"AW-17634919796\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-KJMJE19M6G\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-KJMJE19M6G\\\",\\\"AW-17634919796\\\/E7u5CMyY8KMcEPSK_thB\\\",\\\"MC-5E8NX8PYRJ\\\",\\\"AW-17634919796\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-KJMJE19M6G\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-KJMJE19M6G\\\",\\\"AW-17634919796\\\/mub6CNmr8KMcEPSK_thB\\\",\\\"AW-17634919796\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-KJMJE19M6G\\\",\\\"AW-17634919796\\\/-fJXCMmY8KMcEPSK_thB\\\",\\\"AW-17634919796\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-KJMJE19M6G\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"46170251","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"Google Ads Tracking","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
548,{"id":"127205515","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"Strape","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"127238283","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"Hyros","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"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":"Good Sleep Co","paymentSettings":{"currencyCode":"AUD"},"myshopifyDomain":"good-sleep-co-gc.myshopify.com","countryCode":"AU","storefrontUrl":"https:\/\/goodsleepco.health"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"7557722964107","handle":"hushd-avera","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42792097382539","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7135719981195","handle":"good-sleep-test","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41438208163979","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7222007398539","handle":"hushd-guard","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41722883932299","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7399462469771","handle":"hushd-nasal","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42331947729035","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7058014961803","handle":"cleaner","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41124907712651","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://goodsleepco.health/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"140639207563","themePublished":"true","eventMetadataId":"9e9ae553-7239-427b-8b8d-a09392e09ab6","pageType":"page","resourceId":"93631021195","shopId":"59824177291","storefrontBaseUrl":"https:\/\/goodsleepco.health","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
548<script> 549 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 550 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 551 window.ShopifyAnalytics.meta.currency = 'AUD'; 552 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":93631021195,"requestId":"b2b89439-cf30-4dd2-9dd8-13e130d17625-1790856701"}}; 553 for (var attr in meta) { 554 window.ShopifyAnalytics.meta[attr] = meta[attr]; 555 } 556</script>
vendor: 1 bytes, line 556
556
557<script class="analytics"> 558 (function () { 559 var customDocumentWrite = function(content) { 560 var jquery = null; 561 562 if (window.jQuery) { 563 jquery = window.jQuery; 564 } else if (window.Checkout && window.Checkout.$) { 565 jquery = window.Checkout.$; 566 } 567 568 if (jquery) { 569 jquery('body').append(content); 570 } 571 }; 572 573 var hasLoggedConversion = function(token) { 574 if (token) { 575 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 576 } 577 return false; 578 } 579 580 var setCookieIfConversion = function(token) { 581 if (token) { 582 var twoMonthsFromNow = new Date(Date.now()); 583 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 584 585 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 586 } 587 } 588 589 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 590 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 591 if (trekkie.integrations) { 592 return; 593 } 594 trekkie.methods = [ 595 'identify', 596 'page', 597 'ready', 598 'track', 599 'trackForm', 600 'trackLink' 601 ]; 602 trekkie.factory = function(method) { 603 return function() { 604 var args = Array.prototype.slice.call(arguments); 605 args.unshift(method); 606 trekkie.push(args); 607 if (method == 'track' || method == 'page') { 608 var pageUrl; 609 try { 610 pageUrl = window.location.href; 611 } catch (e) {} 612 var pageReferrer; 613 try { 614 pageReferrer = document.referrer; 615 } catch (e) {} 616 try { 617 if (window.__TREKKIE_SHIM_QUEUE == null) { 618 window.__TREKKIE_SHIM_QUEUE = []; 619 } 620 window.__TREKKIE_SHIM_QUEUE.push({ 621 from: 'trekkie-stub', 622 method: method, 623 args: args.slice(1), 624 pageContext: { 625 url: pageUrl, 626 referrer: pageReferrer 627 } 628 }); 629 } catch (e) { 630 // no-op 631 } 632 } 633 return trekkie; 634 }; 635 }; 636 for (var i = 0; i < trekkie.methods.length; i++) { 637 var key = trekkie.methods[i]; 638 trekkie[key] = trekkie.factory(key); 639 } 640 trekkie.load = function(config) { 641 trekkie.config = config || {}; 642 trekkie.config.initialDocumentCookie = document.cookie; 643 var first = document.getElementsByTagName('script')[0]; 644var script = document.createElement('script'); 645script.type = 'text/javascript'; 646script.onerror = function(e) { 647 var scriptFallback = document.createElement('script'); 648 scriptFallback.type = 'text/javascript'; 649 scriptFallback.onerror = function(error) { 650 var Monorail = { 651 produce: function produce(monorailDomain, schemaId, payload) { 652 var currentMs = new Date().getTime(); 653 var event = { 654 schema_id: schemaId, 655 payload: payload, 656 metadata: { 657 event_created_at_ms: currentMs, 658 event_sent_at_ms: currentMs 659 } 660 }; 661 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 662 }, 663 sendRequest: function sendRequest(endpointUrl, payload) { 664 // Try the sendBeacon API 665 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 666 var blobData = new window.Blob([payload], { 667 type: 'text/plain' 668 }); 669 670 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 671 return true; 672 } // sendBeacon was not successful 673 674 } // XHR beacon 675 676 var xhr = new XMLHttpRequest(); 677 678 try { 679 xhr.open('POST', endpointUrl); 680 xhr.setRequestHeader('Content-Type', 'text/plain'); 681 xhr.send(payload); 682 } catch (e) { 683 console.log(e); 684 } 685 686 return false; 687 }, 688 isIos12: function isIos12() { 689 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 690 } 691 }; 692 Monorail.produce('monorail-edge.shopifysvc.com', 693 'trekkie_storefront_load_errors/1.1', 694 {shop_id: 59824177291, 695 theme_id: 140639207563, 696 app_name: "storefront", 697 context_url: window.location.href, 698 source_url: "//goodsleepco.health/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 699 700 }; 701 scriptFallback.async = true; 702 scriptFallback.src = '//goodsleepco.health/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 703 first.parentNode.insertBefore(scriptFallback, first); 704}; 705script.async = true; 706script.src = '//goodsleepco.health/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 707first.parentNode.insertBefore(script, first); 708 709 }; 710 trekkie.load( 711 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":59824177291,"isMerchantRequest":null,"themeId":14
7110639207563,"themeCityHash":"148775060654889333","contentLanguage":"en","currency":"AUD","eventMetadataId":"9e9ae553-7239-427b-8b8d-a09392e09ab6"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 712 ); 713 714 var loaded = false; 715 trekkie.ready(function() { 716 if (loaded) return; 717 loaded = true; 718 719 window.ShopifyAnalytics.lib = window.trekkie; 720 721 var originalDocumentWrite = document.write; 722 document.write = customDocumentWrite; 723 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 724 document.write = originalDocumentWrite; 725 726 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 727 var token = match? match[1]: undefined; 728 if (!hasLoggedConversion(token)) { 729 setCookieIfConversion(token); 730 731 } 732 }); 733 734 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":93631021195,"requestId":"b2b89439-cf30-4dd2-9dd8-13e130d17625-1790856701","shopifyEmitted":true}); 735 736 var eventsListenerScript = document.createElement('script'); 737 eventsListenerScript.async = true; 738 eventsListenerScript.src = "//goodsleepco.health/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 739 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 740})();</script>
vendor: 1 bytes, line 740
740
741<script 742 defer 743 src="https://goodsleepco.health/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 744 data-application="storefront-renderer" 745 data-shop-id="59824177291" 746 data-render-region="gcp-us-central1" 747 data-page-type="page" 748 data-theme-instance-id="140639207563" 749 data-theme-name="Motion" 750 data-theme-version="8.5.1" 751 data-monorail-region="shop_domain" 752 data-resource-timing-sampling-rate="10" 753 data-shs="true" 754 data-shs-beacon="true" 755 data-shs-export-with-fetch="true" 756 data-shs-logs-sample-rate="1" 757 data-shs-beacon-endpoint="https://goodsleepco.health/api/collect" 758></script>
758 759<meta name="shopify-y" content="46492387-fda1-4342-b369-317b187178bd" data-expiration="1822414301000"><meta name="shopify-s" content="3774d2e0-f94a-4591-9980-ecfbd8a31326" data-expiration="1790858501000"><meta name="new-cookie-storage-activated" content="t"> 760</head> 761<body class="bg-white text-brand-gray-900"> 762<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 762-763
762 763<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
763GTM-M3CLJRL4
vendor: 86 bytes, lines 763-765
763" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 764 765
765<a href="#main-content" class="skip-link bg-blossom text-astral font-bold px-4 py-2 rounded-lg">Skip to content</a> 766 <div id="shopify-section-template--20248016584843__main" class="shopify-section"> 767 768<!-- âââ UNIVERSAL SITE HEADER (site-header) âââ --> 769<style> 770 .gsh-mobile-nav { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; } 771 .gsh-mobile-nav.open { max-height: 380px; } 772 .gsh-link { font-size: 14px; font-weight: 600; color: #002156; transition: color 0.2s; text-decoration: none; } 773 .gsh-link:hover { color: #ECAFAC; } 774 .gsh-link.gsh-active { border-bottom: 2px solid #002156; padding-bottom: 2px; } 775 .gsh-link.gsh-active:hover { color: #002156; } 776</style> 777<header class="sticky top-0 left-0 right-0 z-50 bg-white/95 backdrop-blur-sm border-b border-brand-gray-100" style="position:sticky;"> 778 <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> 779 <div class="flex justify-between items-center h-16"> 780 781 <!-- Logo --> 782 <a href="/" class="flex items-center"> 783 <img src="https://cdn.shopify.com/s/files/1/0598/2417/7291/files/gst-logo-navy-pink.webp?v=1772167928" 784 alt="Good Sleep Co." class="h-8 sm:h-9 w-auto" width="180" height="36" /> 785 </a> 786 787 <!-- Desktop Nav --> 788 <nav class="hidden lg:flex items-center gap-8"> 789 <a href="/pages/sleep-quiz" class="gsh-link">Sleep Quiz</a> 790 <a href="/products/good-sleep-test" class="gsh-link">Get Tested</a> 791 <a href="/pages/treatment" class="gsh-link">Treatment</a> 792 <a href="/products/cleaner" class="gsh-link">Cleaner</a> 793 <a href="/collections/shop" class="gsh-link">Shop</a> 794 <a href="/pages/faqs" class="gsh-link">FAQs</a> 795 </nav><!-- Desktop Cart --> 796 <a href="/cart" onclick="if (window.scCart && window.scCart.open) { event.preventDefault(); window.scCart.open(); }" class="hidden lg:flex items-center gap-2 text-astral hover:text-blossom transition" aria-label="Cart"> 797 <svg class="w-5 h-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> 798 <path stroke-linecap="round" stroke-linejoin="round" d="M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z" /> 799 </svg> 800 </a> 801 802 <!-- Mobile: Cart + Hamburger --> 803 <div class="flex items-center gap-3 lg:hidden"> 804 <a href="/cart" onclick="if (window.scCart && window.scCart.open) { event.preventDefault(); window.scCart.open(); }" class="text-astral" aria-label="Cart"> 805 <svg class="w-5 h-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> 806 <path stroke-linecap="round" stroke-linejoin="round" d="M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z" /> 807 </svg> 808 </a> 809 <button class="gsh-menu-toggle text-astral" aria-label="Menu" aria-expanded="false"> 810 <svg class="gsh-menu-open w-6 h-6" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> 811 <path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16" /> 812 </svg> 813 <svg class="gsh-menu-close w-6 h-6 hidden" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> 814 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /> 815 </svg> 816 </button> 817 </div> 818 </div> 819 820 <!-- Mobile Nav Dropdown --> 821 <div class="gsh-mobile-nav lg:hidden"> 822 <nav class="py-4 border-t border-brand-gray-100 flex flex-col gap-3"><a href="/pages/sleep-quiz" class="gsh-link py-1">Sleep Quiz</a> 823 <a href="/products/good-sleep-test" class="gsh-link py-1">Get Tested</a> 824 <a href="/pages/treatment" class="gsh-link py-1">Treatment</a> 825 <a href="/products/cleaner" class="gsh-link py-1">Cleaner</a> 826 <a href="/collections/shop" class="gsh-link py-1">Shop</a> 827 <a href="/pages/faqs" class="gsh-link py-1">FAQs</a> 828 </nav> 829 </div> 830 </div> 831</header>
832<script> 833 (function () { 834 document.querySelectorAll('.gsh-menu-toggle').forEach(function (toggle) { 835 if (toggle.dataset.gshBound) return; 836 toggle.dataset.gshBound = '1'; 837 var header = toggle.closest('header'); 838 var nav = header.querySelector('.gsh-mobile-nav'); 839 var iconOpen = toggle.querySelector('.gsh-menu-open'); 840 var iconClose = toggle.querySelector('.gsh-menu-close'); 841 toggle.addEventListener('click', function () { 842 var isOpen = nav.classList.toggle('open'); 843 toggle.setAttribute('aria-expanded', isOpen); 844 iconOpen.classList.toggle('hidden', isOpen); 845 iconClose.classList.toggle('hidden', !isOpen); 846 }); 847 }); 848 })(); 849</script>
849 850 851 852<main id="main-content" class="bg-white"> 853 <!-- Hero --> 854 <section class="bg-gradient-to-br from-astral to-astral/90 py-16 sm:py-20"> 855 <div class="max-w-4xl mx-auto px-6 text-center"> 856 <p class="text-xs font-bold tracking-brand uppercase text-blossom mb-4">GET IN TOUCH</p> 857 <h1 class="text-3xl sm:text-4xl md:text-5xl font-extrabold text-white leading-tight mb-4"> 858 We're Here to Help 859 </h1> 860 <p class="text-white/70 text-lg max-w-2xl mx-auto"> 861 Questions about sleep testing, our oral devices, or your order? Our team is ready to help. 862 </p> 863 </div> 864 </section> 865 866 <!-- Contact Grid --> 867 <section class="py-16 sm:py-20"> 868 <div class="max-w-6xl mx-auto px-6"> 869 <div> 870 871 <!-- Contact Form --> 872 <div class="max-w-3xl mx-auto"> 873 <h2 class="text-2xl font-bold text-astral mb-6">Send Us a Message</h2> 874 <form method="post" action="/contact#gscContactForm" id="gscContactForm" accept-charset="UTF-8" class="space-y-5"><input type="hidden" name="form_type" value="contact" /><input type="hidden" name="utf8" value="â" /> 875 876 877 878 <div> 879 <label class="block text-sm font-semibold text-astral mb-1.5">What do you need help with?</label> 880 <div id="contact-topic-grid" class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3"> 881 <button type="button" data-topic="Order & Shipping" aria-pressed="false" style="-webkit-tap-highlight-color:transparent;" class="topic-opt w-full px-4 py-4 rounded-xl border-2 border-brand-gray-300 text-sm font-semibold text-astral text-center hover:border-blossom">Order & Shipping</button> 882 <button type="button" data-topic="Refund or Return" aria-pressed="false" style="-webkit-tap-highlight-color:transparent;" class="topic-opt w-full px-4 py-4 rounded-xl border-2 border-brand-gray-300 text-sm font-semibold text-astral text-center hover:border-blossom">Refund or Return</button> 883 <button type="button" data-topic="Product Support" aria-pressed="false" style="-webkit-tap-highlight-color:transparent;" class="topic-opt w-full px-4 py-4 rounded-xl border-2 border-brand-gray-300 text-sm font-semibold text-astral text-center hover:border-blossom">Product Support</button> 884 <button type="button" data-topic="Healthcare Professional" aria-pressed="false" style="-webkit-tap-highlight-color:transparent;" class="topic-opt w-full px-4 py-4 rounded-xl border-2 border-brand-gray-300 text-sm font-semibold text-astral text-center hover:border-blossom">I’m a Healthcare Professional</button> 885 <button type="button" data-topic="Other" aria-pressed="false" style="-webkit-tap-highlight-color:transparent;" class="topic-opt w-full px-4 py-4 rounded-xl border-2 border-brand-gray-300 text-sm font-semibold text-astral text-center hover:border-blossom">Other</button> 886 </div> 887 <select id="contact-topic" name="contact[topic]" class="hidden" tabindex="-1" aria-hidden="true"> 888 <option value="" selected></option> 889 <option value="Order & Shipping">Order & Shipping</option> 890 <option value="Refund or Return">Refund or Return</option> 891 <option value="Product Support">Product Support</option> 892 <option value="Healthcare Professional">I’m a Healthcare Professional</option> 893 <option value="Other">Other</option> 894 </select> 895 </div> 896 897 <div id="contact-provider-panel" class="hidden bg-astral/5 rounded-xl p-5"> 898 <p class="font-semibold text-astral text-sm mb-1">Healthcare professionals</p> 899 <p class="text-sm text-brand-gray-600 mb-3">Our provider team looks after practitioners: partnerships, Resdent software and patient referrals.</p> 900 <a href="https://provider.goodsleepco.health" class="inline-flex items-center bg-astral text-white font-bold text-sm px-5 py-2.5 rounded-full hover:bg-astral/90 transition">Visit the provider site</a> 901 </div> 902 903 <div id="contact-fields-wrap" class="hidden space-y-5"> 904 <div id="contact-order-wrap" class="hidden"> 905 <label for="contact-order" class="block text-sm font-semibold text-astral mb-1.5">Order number <span class="font-normal text-brand-gray-400">(from your confirmation email)</span></label> 906 <input type="text" id="contact-order" name="contact[order_number]" placeholder="e.g. #12345" 907 class="w-full px-4 py-3 rounded-xl border-2 border-brand-gray-300 focus:border-blossom focus:ring-2 focus:ring-blossom/20 outline-none transition text-sm" /> 908 </div> 909 910 <!-- Order tracking. Self-contained: its own order-number and email inputs 911 (the ticket form's copies are hidden while this shows and mirror these), 912 because customers typed the order number into the wrong box when the
913 two inputs lived in different places. --> 914 <div id="contact-track-panel" class="hidden"> 915 <p class="gsc-tk-title">Where is my order?</p> 916 <p class="gsc-tk-hint">Your order number and the email you ordered with. Both are in your confirmation email.</p> 917 <div class="gsc-tk-row"> 918 <div class="gsc-tk-col gsc-tk-col-order"> 919 <label for="contact-track-order" class="gsc-tk-label">Order number</label> 920 <input type="text" id="contact-track-order" inputmode="numeric" autocomplete="off" placeholder="e.g. 5024" class="gsc-tk-input" /> 921 </div> 922 <div class="gsc-tk-col gsc-tk-col-email"> 923 <label for="contact-track-email" class="gsc-tk-label">Email</label> 924 <input type="email" id="contact-track-email" autocomplete="email" placeholder="[email protected]" class="gsc-tk-input" /> 925 </div> 926 <div class="gsc-tk-col gsc-tk-col-btn"> 927 <button type="button" id="contact-track-btn" class="gsc-tk-btn">Track</button> 928 </div> 929 </div> 930 <div id="contact-track-result" class="hidden gsc-tk-result"></div> 931 </div> 932 933 <div id="contact-product-wrap" class="hidden"> 934 <label for="contact-product" class="block text-sm font-semibold text-astral mb-1.5">Which product?</label> 935 <select id="contact-product" name="contact[product]" class="w-full px-4 py-3 rounded-xl border-2 border-brand-gray-300 focus:border-blossom focus:ring-2 focus:ring-blossom/20 outline-none transition text-sm bg-white"> 936 <option value="" disabled selected>Choose a product</option> 937 <option value="Good Sleep Test">Good Sleep Test</option> 938 <option value="Hushd Avera">Hushd Avera</option> 939 <option value="Pro Avera">Pro Avera</option> 940 <option value="Cleaner">Cleaner</option> 941 <option value="Guard/Nasal">Guard/Nasal</option> 942 <option value="App">App</option> 943 </select> 944 </div> 945 946 <div class="grid sm:grid-cols-2 gap-4"> 947 <div> 948 <label for="contact-name" class="block text-sm font-semibold text-astral mb-1.5">Name</label> 949 <input type="text" id="contact-name" name="contact[name]" autocomplete="name" 950 class="w-full px-4 py-3 rounded-xl border-2 border-brand-gray-300 focus:border-blossom focus:ring-2 focus:ring-blossom/20 outline-none transition text-sm" /> 951 </div> 952 <div> 953 <label for="contact-phone" class="block text-sm font-semibold text-astral mb-1.5">Phone</label> 954 <input type="tel" id="contact-phone" name="contact[phone]" autocomplete="tel" 955 class="w-full px-4 py-3 rounded-xl border-2 border-brand-gray-300 focus:border-blossom focus:ring-2 focus:ring-blossom/20 outline-none transition text-sm" /> 956 </div> 957 </div> 958 959 <!-- SMS consent (A2P): its own checkbox, unticked by default, never required to submit --> 960 <div class="flex items-start gap-3"> 961 <input type="checkbox" id="contact-sms-consent" name="contact[sms_consent]" value="yes" 962 class="mt-0.5 w-4 h-4 flex-shrink-0 rounded border-brand-gray-300" style="accent-color:#ECAFAC;" /> 963 <label for="contact-sms-consent" class="text-xs text-brand-gray-500 leading-relaxed">I consent to receive SMS notifications and alerts from Good Sleep Co at the number provided. Message frequency varies. Message and data rates may apply. Text HELP for help. Reply STOP to unsubscribe at any time.</label> 964 </div> 965 <p id="contact-consent-phone-note" class="hidden text-xs text-red-600">Add your phone number so we can send SMS updates, or untick the SMS box.</p> 966 967 <div> 968 <label for="contact-email" class="block text-sm font-semibold text-astral mb-1.5">Email</label> 969 <input type="email" id="contact-email" name="contact[email]" autocomplete="email" 970 class="w-full px-4 py-3 rounded-xl border-2 border-brand-gray-300 focus:border-blossom focus:ring-2 focus:ring-blossom/20 outline-none transition text-sm" /> 971 </div> 972 973 <div id="contact-msg-wrap"> 974 <label for="contact-message" class="block text-sm font-semibold text-astral mb-1.5">Describe the issue. <span class="text-red-500">*</span></label> 975 <textarea id="contact-message" name="contact[body]" rows="5" 976 class="w-full px-4 py-3 rounded-xl border-2 border-brand-gray-300 focus:border-blossom focus:ring-2 focus:ring-blossom/20 outline-none transition text-sm resize-none"></textarea> 977 </div> 978 979 <div style="position:absolute;
979left:-9999px;top:-9999px;" aria-hidden="true"> 980 <label>Website<input type="text" name="website" tabindex="-1" autocomplete="off" value="" /></label> 981 </div> 982 983 <button type="submit" id="contact-submit" 984 class="w-full sm:w-auto bg-blossom text-astral font-bold text-sm px-8 py-3.5 rounded-full hover:bg-opacity-80 transition"> 985 Send Message 986 </button> 987 </div> 988 </form> 989 </div> 990 991 <!-- Contact Info --> 992 <div class="max-w-3xl mx-auto mt-16 grid sm:grid-cols-2 gap-10 items-start"> 993 <div> 994 <h2 class="text-2xl font-bold text-astral mb-6">Contact Details</h2> 995 <div class="space-y-5"> 996 <div class="flex items-start gap-4"> 997 <div class="w-10 h-10 bg-blossom/10 rounded-xl flex items-center justify-center flex-shrink-0"> 998 <svg class="w-5 h-5 text-blossom" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> 999 <path stroke-linecap="round" stroke-linejoin="round" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" /> 1000 </svg> 1001 </div> 1002 <div> 1003 <p class="font-semibold text-astral">Phone</p> 1004 <a href="tel:+61756902029" class="text-brand-gray-600 hover:text-blossom transition">07 5690 2029</a> 1005 </div> 1006 </div> 1007 1008 <div class="flex items-start gap-4"> 1009 <div class="w-10 h-10 bg-blossom/10 rounded-xl flex items-center justify-center flex-shrink-0"> 1010 <svg class="w-5 h-5 text-blossom" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> 1011 <path stroke-linecap="round" stroke-linejoin="round" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" /> 1012 </svg> 1013 </div> 1014 <div> 1015 <p class="font-semibold text-astral">Email</p> 1016 <a href="mailto:[email protected]" class="text-brand-gray-600 hover:text-blossom transition">[email protected]</a> 1017 </div> 1018 </div> 1019 1020 <div class="flex items-start gap-4"> 1021 <div class="w-10 h-10 bg-blossom/10 rounded-xl flex items-center justify-center flex-shrink-0"> 1022 <svg class="w-5 h-5 text-blossom" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> 1023 <path stroke-linecap="round" stroke-linejoin="round" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z" /> 1024 <path stroke-linecap="round" stroke-linejoin="round" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z" /> 1025 </svg> 1026 </div> 1027 <div> 1028 <p class="font-semibold text-astral">Address</p> 1029 <p class="text-brand-gray-600">U2/46 Junction Rd<br>Burleigh Heads, QLD 4220<br>Australia</p> 1030 </div> 1031 </div> 1032 </div> 1033 </div> 1034 1035 <div class="bg-astral/5 rounded-2xl p-6"> 1036 <h3 class="font-bold text-astral mb-2">Business Hours</h3> 1037 <div class="text-sm text-brand-gray-600 space-y-1"> 1038 <p>Monday â Friday: 9:00 AM â 5:00 PM AEST</p> 1039 <p>Saturday â Sunday: Closed</p> 1040 </div> 1041 </div> 1042 </div> 1043 1044 </div> 1045 </div> 1046 </section> 1047</main> 1048 1049<!-- ContactPage Schema -->
1050<script type="application/ld+json"> 1051{ 1052 "@context": "https://schema.org", 1053 "@type": "ContactPage", 1054 "name": "Contact Good Sleep Co", 1055 "url": "https://goodsleepco.health/pages/contact", 1056 "mainEntity": { 1057 "@type": "Organization", 1058 "name": "Good Sleep Co", 1059 "telephone": "+61756902029", 1060 "email": "[email protected]", 1061 "address": { 1062 "@type": "PostalAddress", 1063 "streetAddress": "U2/46 Junction Rd", 1064 "addressLocality": "Burleigh Heads", 1065 "addressRegion": "QLD", 1066 "postalCode": "4220", 1067 "addressCountry": "AU" 1068 } 1069 } 1070} 1071</script>
1071 1072 1073<!-- Footer --> 1074<footer class="bg-white border-t border-astral/10 pt-16 pb-24 md:pb-8"> 1075 <div class="max-w-7xl mx-auto px-6 grid grid-cols-2 md:grid-cols-4 gap-8 mb-16"> 1076 <div class="col-span-2 md:col-span-1"> 1077 <div class="flex items-center gap-2 mb-4"> 1078 <span class="font-bold text-lg tracking-tight text-astral"> 1079 Good Sleep<span class="font-normal">co</span> 1080 </span> 1081 </div> 1082 <p class="text-sm text-astral/60 mb-4">Aura of the night, energy for the day.</p> 1083 <div class="flex items-center gap-4"> 1084 <a href="https://www.facebook.com/GoodSleepCo" target="_blank" rel="noopener" 1085 class="text-astral/50 hover:text-astral transition-colors"> 1086 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"> 1087 <path 1088 d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z" /> 1089 </svg> 1090 </a> 1091 <a href="https://www.instagram.com/goodsleep_co/" target="_blank" rel="noopener" 1092 class="text-astral/50 hover:text-astral transition-colors"> 1093 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"> 1094 <path 1095 d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z" /> 1096 </svg> 1097 </a> 1098 <a href="https://www.linkedin.com/company/good-sleep-co/" target="_blank" rel="noopener" 1099 class="text-astral/50 hover:text-astral transition-colors"> 1100 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"> 1101 <path 1102 d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" /> 1103 </svg> 1104 </a> 1105 </div> 1106 </div> 1107 <div> 1108 <h4 class="text-astral font-bold mb-4">Support</h4> 1109 <ul class="space-y-3 text-sm text-astral/70"> 1110 <li><a href="https://goodsleepco.health/pages/contact" 1111 class="hover:text-astral underline-offset-4 hover:underline">Contact</a></li> 1112 <li><a href="https://goodsleepco.health/pages/faqs" 1113 class="hover:text-astral underline-offset-4 hover:underline">FAQs</a></li> 1114 <li><a href="https://calendly.com/nilvi-goodsleepco/resdent-team" target="_blank" 1115 class="hover:text-astral underline-offset-4 hover:underline">Talk to Our Team</a></li> 1116 <li><a href="https://goodsleepco.health/pages/location" 1117 class="hover:text-astral underline-offset-4 hover:underline">Retailers</a></li> 1118 </ul> 1119 </div> 1120 <div> 1121 <h4 class="text-astral font-bold mb-4">Legal</h4> 1122 <ul class="space-y-3 text-sm text-astral/70"> 1123 <li><a href="https://goodsleepco.health/policies/privacy-policy" 1124 class="hover:text-astral underline-offset-4 hover:underline">Privacy Policy</a></li> 1125 <li><a href="https://goodsleepco.health/policies/terms-of-service" 1126 class="hover:text-astral underline-offset-4 hover:underline">Terms of Service</a></li> 1127 <li><a href="https://goodsleepco.health/policies/shipping-policy" 1128 class="hover:text-astral underline-offset-4 hover:underline">Shipping Policy</a></li> 1129 <li><a href="https://goodsleepco.health/policies/refund-policy" 1130 class="hover:text-astral underline-offset-4 hover:underline">Refund Policy</a></li> 1131 </ul> 1132 </div> 1133 </div> 1134 <div 1135 class="max-w-7xl mx-auto px-6 text-center text-sm font-semibold text-astral/40 border-t border-astral/10 pt-8"> 1136 <p>© 2026 Good Sleep Co. All rights reserved.</p> 1137 </div> 1138</footer> 1139 1140<style> 1141 /* Order tracking widget. Custom CSS on purpose: the AU Tailwind build is 1142 precompiled, so text-red-800 / bg-red-50 / border-red-200 / text-green-800 / 1143 py-2.5 and bare outline-none silently do nothing on this store. */ 1144 #contact-track-panel { border: 2px solid #dee2e6; border-radius: .75rem; padding: 1rem; } 1145 @media (min-width: 640px) { #contact-track-panel { padding: 1.25rem; } } 1146 .gsc-tk-title { font-size: .875rem; font-weight: 600; color: #002156; margin-bottom: .25rem; } 1147 .gsc-tk-hint { font-size: .75rem; color: #495057; margin-bottom: .75rem; } 1148 .gsc-tk-input { width: 100%; padding: .75rem 1rem; margin-bottom: .75rem; font-size: .875rem; 1149 border: 2px solid #dee2e6; border-radius: .75rem; outline: none; 1150 transition: border-color .15s ease, box-shadow .15s ease; } 1151 .gsc-tk-input:focus { border-color: #ecafac; box-shadow: 0 0 0 2px rgba(236, 175, 172, .2); } 1152 .gsc-tk-btn { background: #002156; color: #fff; font-weight: 700; font-size: .875rem; 1153 padding: .625rem 1.5rem; border: 0; border-radius: 9999px; cursor: pointer; 1154 transition: opacity .15s ease; -webkit-tap-highlight-color: transparent; } 1155 .gsc-tk-btn:hover { opacity: .8; } 1156 .gsc-tk-btn[disabled] { opacity: .6; cursor: default; } 1157 .gsc-tk-row { display: flex; flex-direction: column; gap: .75rem; } 1158 .gsc-tk-row .gsc-tk-input { margin-bottom: 0; } 1159 .gsc-tk-col-btn { display: flex; align-items: flex-end; } 1160 .gsc-tk-col-btn .gsc-tk-btn { width: 100%; } 1161 @media (min-width: 640px) { 1162 .gsc-tk-row { flex-direction: row; align-items: flex-end; } 1163 .gsc-tk-col-order { flex: 1 1 0; } 1164 .gsc-tk-col-email { flex: 1.4 1 0; } 1165 .gsc-tk-col-btn .gsc-tk-btn { width: auto; } 1166 } 1167 .gsc-tk-label { display: block; font-size: .7rem; font-weight: 600; letter-spacing: .06em; 1168 text-transform: uppercase; color: #495057; margin-bottom: .25rem; } 1169 .gsc-tk-result { margin-top: 1rem; font-size: .875rem; } 1170 .gsc-tk-ok, .gsc-tk-err { border-radius: .75rem; padding: .75rem 1rem; } 1171 .gsc-tk-ok { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; } 1172 .gsc-tk-err { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; } 1173 .gsc-tk-ok p, .gsc-tk-err p { margin: 0; } 1174 .gsc-tk-ok p + p { margin-top: .25rem; } 1175 .gsc-tk-ok a { color: inherit; font-weight: 600; text-decoration: underline; } 1176 /* Delivery timeline result */ 1177 .gsc-tk-card { border: 1px solid #dee2e6; border-radius: .75rem; padding: 1rem 1.25rem; color: #002156; } 1178 .gsc-tk-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .6rem; } 1179 .gsc-tk-head p { margin: 0; font-weight: 700; } 1180 .gsc-tk-pill { font-size: .65rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; 1181 padding: .3rem .65rem; border-radius: 9999px; background: #f4efe9; color: #002156; white-space: nowrap; } 1182 .gsc-tk-pill.is-live { background: #ecafac; } 1183 .gsc-tl { list-style: none; margin: 0; padding: 0 0 0 1.75rem; position: relative; } 1184 .gsc-tl:before { content: ''; position: absolute; left: .5rem; top: .5rem; bottom: .5rem; width: 2px; background: #dee2e6; } 1185 .gsc-tl li { position: relative; padding: .3rem 0; color: #6b7280; font-size: .875rem; } 1186 .gsc-tl li:before { content: ''; position: absolute; left: -1.75rem; top: .55rem; width: 18px; height: 18px; 1187 border-radius: 9999px; background: #fff; border: 2px solid #dee2e6; box-sizing: border-box; } 1188 .gsc-tl li.done { color: #002156; font-weight: 600; } 1189 .gsc-tl li.done:before { background: #002156; border-color: #002156; box-shadow: inset 0 0 0 3px #fff; } 1190 .gsc-tl li.now { color: #002156; font-weight: 700; } 1191 .gsc-tl li.now:before { background: #ecafac; border-color: #ecafac; } 1192 .gsc-tl a { color: inherit; font-weight: 600; text-decoration: underline; margin-left: .25rem; } 1193 .gsc-tk-foot { font-size: .75rem; color: #6b7280; margin: .75rem 0 0; } 1194</style> 1195
1196<script> 1197 (function () { 1198 var form = document.getElementById('gscContactForm'); 1199 if (!form) return; 1200 var topic = document.getElementById('contact-topic'); 1201 var fieldsWrap = document.getElementById('contact-fields-wrap'); 1202 var orderWrap = document.getElementById('contact-order-wrap'); 1203 var productWrap = document.getElementById('contact-product-wrap'); 1204 var providerPanel = document.getElementById('contact-provider-panel'); 1205 var nameEl = document.getElementById('contact-name'); 1206 var emailEl = document.getElementById('contact-email'); 1207 var msg = document.getElementById('contact-message'); 1208 1209 /* Order tracking. Webhook is store-parameterised and live since 19/08/2026. 1210 It returns only status + carrier + tracking number/url, and refuses when the 1211 email does not match the order, so a wrong email and a missing order look 1212 identical from the outside. */ 1213 var TRACK_URL = 'https://n8n.altoraa.com/webhook/gsc-order-tracking'; 1214 var trackPanel = document.getElementById('contact-track-panel'); 1215 var trackBtn = document.getElementById('contact-track-btn'); 1216 var trackEmail = document.getElementById('contact-track-email'); 1217 var trackOrder = document.getElementById('contact-track-order'); 1218 var trackResult = document.getElementById('contact-track-result'); 1219 var orderEl = document.getElementById('contact-order'); 1220 1221 function show(el, on) { el.classList.toggle('hidden', !on); } 1222 function sync() { 1223 var v = topic.value; 1224 var provider = v === 'Healthcare Professional'; 1225 var picked = v !== '' && !provider; 1226 show(providerPanel, provider); 1227 show(fieldsWrap, picked); 1228 /* Order & Shipping gets its order number from the tracker (mirrored into the 1229 hidden ticket field), so only Refund or Return shows the plain field. */ 1230 show(orderWrap, v === 'Refund or Return'); 1231 show(productWrap, v === 'Refund or Return' || v === 'Product Support'); 1232 show(trackPanel, v === 'Order & Shipping'); 1233 if (v !== 'Order & Shipping') { trackResult.classList.add('hidden'); trackResult.innerHTML = ''; } 1234 nameEl.required = picked; 1235 emailEl.required = picked; 1236 msg.required = picked; 1237 } 1238 /* Keep the tracker inputs and the ticket inputs in step. Assigning .value does 1239 not fire `input`, so these listeners cannot loop. */ 1240 trackEmail.addEventListener('input', function () { emailEl.value = trackEmail.value; }); 1241 emailEl.addEventListener('input', function () { trackEmail.value = emailEl.value; }); 1242 trackOrder.addEventListener('input', function () { orderEl.value = trackOrder.value; }); 1243 orderEl.addEventListener('input', function () { trackOrder.value = orderEl.value; }); 1244 1245 var HTML_ESC = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; 1246 function escapeHtml(s) { 1247 return String(s == null ? '' : s).replace(/[&<>"']/g, function (ch) { return HTML_ESC[ch]; }); 1248 } 1249 1250 function timeline(orderNumber, pill, pillLive, steps) { 1251 var html = '<div class="gsc-tk-card"><div class="gsc-tk-head"><p>Order #' + escapeHtml(orderNumber) + '</p>' + 1252 '<span class="gsc-tk-pill' + (pillLive ? ' is-live' : '') + '">' + pill + '</span></div><ul class="gsc-tl">'; 1253 for (var i = 0; i < steps.length; i++) { 1254 html += '<li class="' + steps[i].state + '">' + steps[i].text + '</li>'; 1255 } 1256 html += '</ul><p class="gsc-tk-foot">Something not right? Send us a request below and we will look into it.</p></div>'; 1257 return html; 1258 } 1259 1260 function renderTracking(data, orderNumber) { 1261 var html; 1262 if (!data || data.found !== true) { 1263 html = '<div class="gsc-tk-err"><p style="font-weight:600;">No match for that order number and email.</p><p>Check both against your confirmation email. Still stuck? Send us a request below.</p></div>'; 1264 } else if (data.status === 'cancelled') { 1265 html = '<div class="gsc-tk-err">This order was cancelled. If that is unexpected, send us a request below.</div>'; 1266 } else if (data.status === 'preparing') { 1267 html = timeline(orderNumber, 'Preparing', false, [ 1268 { state: 'done', text: 'Order confirmed' }, 1269 { state: 'now', text: 'Being packed. You will get a tracking email the moment it ships' }, 1270 { state: '', text: 'In transit' }, 1271 { state: '', text: 'Delivered' } 1272 ]); 1273 } else { 1274 var partial = data.status === 'partially_shipped'; 1275 var ships = data.shipments || []; 1276 var transit = partial ? 'Part of your order is in transit' : 'In transit'; 1277 var links = ''; 1278 for (var i = 0; i < ships.length; i++) { 1279 var s = ships[i]; 1280 /* Cin7 writes the literal "Standard" as a carrier name, which tells the 1281 customer nothing, so hide it rather than print it. */ 1282 var carrier = s.carrier && s.carrier !== 'Standard' ? ' with ' + escapeHtml(s.carrier) : ''; 1283 if (s.tracking_url) { 1284 links += carrier + '<a href="' + escapeHtml(s.tracking_url) + '" target="_blank" rel="noopener">
1284Track parcel</a>'; 1285 } else if (s.tracking_number) { 1286 links += carrier + ', tracking number <strong>' + escapeHtml(s.tracking_number) + '</strong>'; 1287 } 1288 } 1289 if (ships.length === 0) { links = '. Tracking details are being generated, check back shortly'; } 1290 html = timeline(orderNumber, partial ? 'Partly shipped' : 'On its way', true, [ 1291 { state: 'done', text: 'Order confirmed' }, 1292 { state: 'done', text: 'Packed and dispatched' }, 1293 { state: 'now', text: transit + links }, 1294 { state: '', text: 'Delivered' } 1295 ]); 1296 } 1297 trackResult.innerHTML = html; 1298 trackResult.classList.remove('hidden'); 1299 } 1300 1301 trackBtn.addEventListener('click', function () { 1302 var email = trackEmail.value.trim() || emailEl.value.trim(); 1303 /* Customers paste "#5024" straight from the confirmation email. */ 1304 var orderNumber = (trackOrder.value.trim() || orderEl.value.trim()).replace(/^#/, ''); 1305 if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email) || !orderNumber) { 1306 trackResult.innerHTML = '<div class="gsc-tk-err">Enter your order number and the email you ordered with.</div>'; 1307 trackResult.classList.remove('hidden'); 1308 return; 1309 } 1310 trackBtn.disabled = true; 1311 var restore = trackBtn.textContent; 1312 trackBtn.textContent = 'Checking...'; 1313 fetch(TRACK_URL, { 1314 method: 'POST', 1315 headers: { 'Content-Type': 'application/json' }, 1316 body: JSON.stringify({ order_number: orderNumber, email: email, store: 'AU' }) 1317 }) 1318 .then(function (res) { return res.json(); }) 1319 .then(function (data) { renderTracking(data, orderNumber); }) 1320 .catch(function () { renderTracking(null, orderNumber); }) 1321 .then(function () { 1322 trackBtn.disabled = false; 1323 trackBtn.textContent = restore; 1324 }); 1325 }); 1326 1327 var topicGrid = document.getElementById('contact-topic-grid'); 1328 topicGrid.addEventListener('click', function (e) { 1329 var btn = e.target.closest('.topic-opt'); 1330 if (!btn) return; 1331 topic.value = btn.getAttribute('data-topic'); 1332 Array.prototype.forEach.call(topicGrid.querySelectorAll('.topic-opt'), function (b) { 1333 var on = b === btn; 1334 b.classList.toggle('bg-astral', on); 1335 b.classList.toggle('border-astral', on); 1336 b.classList.toggle('text-white', on); 1337 b.classList.toggle('text-astral', !on); 1338 b.setAttribute('aria-pressed', on ? 'true' : 'false'); 1339 }); 1340 sync(); 1341 }); 1342 topic.addEventListener('change', sync); 1343 sync(); 1344 form.addEventListener('submit', function (e) { 1345 var consent = document.getElementById('contact-sms-consent').checked; 1346 var phone = document.getElementById('contact-phone').value.trim(); 1347 var note = document.getElementById('contact-consent-phone-note'); 1348 if (consent && !phone) { 1349 e.preventDefault(); 1350 note.classList.remove('hidden'); 1351 document.getElementById('contact-phone').focus(); 1352 return; 1353 } 1354 note.classList.add('hidden');
1355 try { 1356 var name = nameEl.value.trim(); 1357 var parts = name.split(/\s+/); 1358 fetch('https://n8n.altoraa.com/webhook/gsc-support-ticket-au', { 1359 method: 'POST', 1360 keepalive: true, 1361 headers: { 'Content-Type': 'application/json' }, 1362 body: JSON.stringify({ 1363 store: 'au', 1364 first_name: parts[0] || '', 1365 last_name: parts.slice(1).join(' '), 1366 email: emailEl.value.trim(), 1367 phone: phone, 1368 category: topic.value || 'Other', 1369 product: document.getElementById('contact-product').value || '', 1370 order_number: document.getElementById('contact-order').value.trim(), 1371 details: msg.value.trim(), 1372 urgency: 'Normal', 1373 sms_consent: consent ? 'true' : 'false', 1374 page_url: window.location.origin + window.location.pathname, 1375 website: form.querySelector('input[name="website"]').value || '' 1376 }) 1377 }); 1378 } catch (err) {} 1379 }); 1380 })(); 1381</script>
1381 1382 1383 1384</div> 1385 1386<style> 1387 #gsc-intent-popup { position: fixed; inset: 0; z-index: 9996; display: none; background: #002156 url('https://cdn.shopify.com/s/files/1/0598/2417/7291/files/Couple_Sleeping.jpg?v=1782981097') center/cover no-repeat; } 1388 #gsc-intent-popup.gscp-open { display: block; } 1389 #gsc-intent-popup::before { content: ''; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,33,86,0.94) 0%, rgba(0,33,86,0.78) 55%, rgba(0,33,86,0.55) 100%); } 1390 .gscp-modal { position: absolute; inset: 0; overflow-y: auto; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 24px 40px; box-sizing: border-box; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; opacity: 0; transform: translateY(14px); transition: opacity .25s ease, transform .25s ease; } 1391 #gsc-intent-popup.gscp-in .gscp-modal { opacity: 1; transform: translateY(0); } 1392 .gscp-close { position: fixed; top: 16px; right: 16px; width: 38px; height: 38px; border: 0; background: rgba(244,239,233,0.15); border-radius: 50%; cursor: pointer; color: #F4EFE9; font-size: 22px; line-height: 38px; text-align: center; padding: 0; z-index: 2; -webkit-tap-highlight-color: transparent; } 1393 .gscp-step { display: none; width: 100%; max-width: 480px; margin: 0 auto; text-align: center; } 1394 .gscp-step.gscp-active { display: block; } 1395 .gscp-eyebrow { display: inline-block; background: #ECAFAC; color: #002156; font-size: 11px; font-weight: bold; letter-spacing: 1.4px; text-transform: uppercase; border-radius: 999px; padding: 6px 14px; margin: 0 0 20px; } 1396 .gscp-ten { color: #F4EFE9; font-size: 72px; line-height: 72px; font-weight: bold; letter-spacing: -2px; margin: 0; } 1397 .gscp-h { margin: 6px 0 10px; color: #F4EFE9; font-size: 25px; line-height: 32px; font-weight: bold; } 1398 .gscp-sub { margin: 0 0 26px; color: #99BCD2; font-size: 15px; line-height: 22px; } 1399 .gscp-opt { display: block; width: 100%; text-align: center; background: rgba(244,239,233,0.14); color: #F4EFE9; border: 1px solid rgba(153,188,210,0.7); border-radius: 999px; padding: 14px 18px; margin: 0 0 11px; font-size: 15px; line-height: 20px; font-family: inherit; cursor: pointer; transition: border-color .15s ease; -webkit-tap-highlight-color: transparent; backdrop-filter: blur(3px); } 1400 .gscp-opt:hover { border-color: #ECAFAC; } 1401 .gscp-opt.gscp-selected { background: #F4EFE9; color: #002156; border-color: #F4EFE9; } 1402 .gscp-input { display: block; width: 100%; box-sizing: border-box; background: #F4EFE9; border: 1.5px solid #F4EFE9; border-radius: 999px; padding: 14px 20px; font-size: 16px; color: #002156; font-family: inherit; margin: 0 0 12px; text-align: center; } 1403 .gscp-input:focus { outline: none; border-color: #ECAFAC; } 1404 .gscp-cta { display: block; width: 100%; background: #ECAFAC; color: #002156; border: 0; border-radius: 999px; padding: 15px 18px; font-size: 16px; font-weight: bold; font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; } 1405 .gscp-cta:disabled { opacity: .6; cursor: default; } 1406 .gscp-fine { margin: 14px 0 0; color: rgba(244,239,233,0.55); font-size: 12px; line-height: 17px; } 1407 .gscp-err { display: none; margin: 0 0 10px; color: #FFB4AC; font-size: 13px; line-height: 18px; } 1408 .gscp-err.gscp-show { display: block; } 1409 .gscp-hp { position: absolute; left: -9999px; top: -9999px; height: 0; width: 0; opacity: 0; } 1410 .gscp-tick { width: 54px; height: 54px; border-radius: 50%; background: #F4EFE9; color: #002156; font-size: 26px; line-height: 54px; text-align: center; margin: 4px auto 16px; } 1411 .gscp-code { background: rgba(244,239,233,0.12); border: 1.5px dashed #ECAFAC; border-radius: 14px; padding: 13px 18px; margin: 0 0 14px; font-size: 30px; letter-spacing: 5px; font-weight: bold; color: #F4EFE9; } 1412 #gscp-teaser { position: fixed; left: 16px; bottom: 16px; z-index: 9995; display: none; background: #ECAFAC; color: #002156; border: 0; border-radius: 999px; padding: 12px 20px; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 14px; font-weight: bold; letter-spacing: .3px; cursor: pointer; box-shadow: 0 6px 20px rgba(0,33,86,0.28); transition: transform .2s ease, box-shadow .2s ease; -webkit-tap-highlight-color: transparent; }
1413 #gscp-teaser.gscp-teaser-show { display: block; animation: gscpTeaserIn .35s cubic-bezier(0.34, 1.56, 0.64, 1); } 1414 #gscp-teaser:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,33,86,0.34); } 1415 @keyframes gscpTeaserIn { from { opacity: 0; transform: scale(0.7); } to { opacity: 1; transform: scale(1); } } 1416 @media (max-width: 860px) { #gscp-teaser { bottom: 90px; left: 12px; padding: 11px 16px; font-size: 13px; } } 1417 @media (max-width: 480px) { 1418 .gscp-ten { font-size: 54px; line-height: 54px; } 1419 .gscp-h { font-size: 20px; line-height: 26px; } 1420 .gscp-code { font-size: 24px; letter-spacing: 4px; } 1421 .gscp-modal { padding: 56px 20px 32px; } 1422 } 1423</style> 1424 1425<div id="gsc-intent-popup" role="dialog" aria-modal="true" aria-labelledby="gscp-title"> 1426 <div class="gscp-modal"> 1427 <button type="button" class="gscp-close" data-gscp-dismiss aria-label="Close">×</button> 1428 1429 <div class="gscp-step gscp-active" data-gscp-step="intent"> 1430 <span class="gscp-eyebrow">Our gift to you</span> 1431 <p class="gscp-ten">$10 off</p> 1432 <h3 class="gscp-h" id="gscp-title">your first order — and quieter nights ahead</h3> 1433 <p class="gscp-sub">Tell us what brings you here to unlock your $10 code.</p> 1434 <button type="button" class="gscp-opt" data-gscp-intent="snoring">I snore</button> 1435 <button type="button" class="gscp-opt" data-gscp-intent="test">I think I have sleep apnea</button> 1436 <button type="button" class="gscp-opt" data-gscp-intent="cpap_alt">Diagnosed, but CPAP isn’t working</button> 1437 <button type="button" class="gscp-opt" data-gscp-intent="research">Just researching better sleep</button> 1438 <p class="gscp-fine">Plus practical sleep tips. Unsubscribe anytime.</p> 1439 </div> 1440 1441 <div class="gscp-step" data-gscp-step="email"> 1442 <span class="gscp-eyebrow">Almost there</span> 1443 <h3 class="gscp-h">Last step — unlock your $10 code</h3> 1444 <p class="gscp-sub">Your code shows right here and applies automatically at checkout.</p> 1445 <form id="gscp-form" novalidate> 1446 <p class="gscp-err" data-gscp-error>Something went wrong — please check your email and try again.</p> 1447 <input type="email" class="gscp-input" data-gscp-email placeholder="Enter your email" autocomplete="email" required> 1448 <input type="text" class="gscp-hp" name="website" tabindex="-1" autocomplete="off" data-gscp-hp> 1449 <button type="submit" class="gscp-cta" data-gscp-submit>Show my $10 code</button> 1450 </form> 1451 <p class="gscp-fine">Plus practical sleep tips. Unsubscribe anytime.</p> 1452 </div> 1453 1454 <div class="gscp-step" data-gscp-step="success"> 1455 <div class="gscp-tick">✓</div> 1456 <h3 class="gscp-h">Here’s your $10 code</h3> 1457 <p class="gscp-code" data-gscp-code>SLEEP10</p> 1458 <p class="gscp-sub">It’s applied automatically at checkout — nothing to paste.</p> 1459 <button type="button" class="gscp-cta" data-gscp-dismiss>Keep browsing</button> 1460 <p class="gscp-fine" data-gscp-code-fine>Not showing at checkout? Just enter SLEEP10.</p> 1461 </div> 1462 </div> 1463</div> 1464<button type="button" id="gscp-teaser" aria-label="Get $10 off your first order">$10 Off</button>
1465<script> 1466(function () { 1467 'use strict'; 1468 var COMPANY_ID = 'WscBdf'; 1469 var LIST_ID = 'RsDuiB'; 1470 var CODE = 'SLEEP10'; 1471 var LS_SUBMITTED = 'gscp_submitted'; 1472 var LS_DISMISSED_AT = 'gscp_dismissed_at'; 1473 var SS_SHOWN = 'gscp_shown'; 1474 var DISMISS_DAYS = 7; 1475 var root = document.getElementById('gsc-intent-popup'); 1476 if (!root) return; 1477 1478 var state = { open: false, step: 'intent', intent: null, submitting: false, openRetries: 0, code: CODE }; 1479 1480 function lsGet(k) { try { return window.localStorage.getItem(k); } catch (e) { return null; } } 1481 function lsSet(k, v) { try { window.localStorage.setItem(k, v); } catch (e) {} } 1482 function ssGet(k) { try { return window.sessionStorage.getItem(k); } catch (e) { return null; } } 1483 function ssSet(k, v) { try { window.sessionStorage.setItem(k, v); } catch (e) {} } 1484 1485 // Urgency A/B concluded 28/08/2026: evergreen (control) won on purchases in 1486 // both markets. The 48h badge / unique-code / countdown machinery is gone; 1487 // the static SLEEP10 + auto-apply path below is the whole popup again. 1488 1489 function track(name, props) { 1490 var payload = props || {}; 1491 try { 1492 window.dataLayer = window.dataLayer || []; 1493 var dl = { event: name }; 1494 for (var k in payload) { if (payload.hasOwnProperty(k)) dl[k] = payload[k]; } 1495 window.dataLayer.push(dl); 1496 } catch (e) {} 1497 try { 1498 if (window.posthog && typeof window.posthog.capture === 'function') { 1499 window.posthog.capture(name, payload); 1500 } 1501 } catch (e) {} 1502 } 1503 1504 function eligible() { 1505 if (lsGet(LS_SUBMITTED)) return false; 1506 if (ssGet(SS_SHOWN)) return false; 1507 var d = parseInt(lsGet(LS_DISMISSED_AT) || '0', 10); 1508 if (d && (Date.now() - d) < DISMISS_DAYS * 86400000) return false; 1509 return true; 1510 } 1511 1512 function setStep(step) { 1513 state.step = step; 1514 var steps = root.querySelectorAll('[data-gscp-step]'); 1515 for (var i = 0; i < steps.length; i++) { 1516 steps[i].className = steps[i].className.replace(' gscp-active', ''); 1517 if (steps[i].getAttribute('data-gscp-step') === step) steps[i].className += ' gscp-active'; 1518 } 1519 } 1520 1521 function openPopup(source, force) { 1522 if (state.open) return; 1523 if (!force && !eligible()) return; 1524 var cartOpen = document.querySelector('.sc-overlay.sc-open'); 1525 if (cartOpen && state.openRetries < 4) { 1526 state.openRetries += 1; 1527 window.setTimeout(function () { openPopup(source); }, 15000); 1528 return; 1529 } 1530 state.open = true; 1531 ssSet(SS_SHOWN, '1'); 1532 root.className = 'gscp-open'; 1533 window.setTimeout(function () { root.className = 'gscp-open gscp-in'; }, 20); 1534 document.body.style.overflow = 'hidden'; 1535 updateTeaser(); 1536 track('popup_viewed', { trigger_source: source, popup: 'au_intent' }); 1537 } 1538 1539 function closePopup(reason) { 1540 if (!state.open) return; 1541 state.open = false; 1542 root.className = ''; 1543 document.body.style.overflow = ''; 1544 updateTeaser(); 1545 if (reason === 'dismiss' && !lsGet(LS_SUBMITTED)) { 1546 lsSet(LS_DISMISSED_AT, String(Date.now())); 1547 track('popup_dismissed', { step: state.step, intent: state.intent || 'none', popup: 'au_intent' }); 1548 } 1549 } 1550 1551 // --- triggers: first of 30s timer / >50% scroll / desktop exit-intent --- 1552 var fired = false; 1553 function fire(source) { 1554 if (fired) return; 1555 fired = true; 1556 window.removeEventListener('scroll', onScroll); 1557 document.removeEventListener('mouseleave', onLeave); 1558 openPopup(source); 1559 } 1560 function onScroll() { 1561 var doc = document.documentElement; 1562 var max = (doc.scrollHeight - doc.clientHeight); 1563 if (max > 0 && (window.pageYOffset / max) > 0.5) fire('scroll'); 1564 } 1565 function onLeave(e) { if (e.clientY <= 0) fire('exit_intent'); } 1566 1567 if (eligible()) { 1568 try { var pre = new Image(); pre.src = 'https://cdn.shopify.com/s/files/1/0598/2417/7291/files/Couple_Sleeping.jpg?v=1782981097'; } catch (e) {} 1569 window.setTimeout(function () { fire('timer'); }, 12000); 1570 window.addEventListener('scroll', onScroll, { passive: true }); 1571 if (window.matchMedia && window.matchMedia('(pointer: fine)').matches) { 1572 document.addEventListener('mouseleave', onLeave); 1573 } 1574 } 1575 1576 // --- dismiss handlers --- 1577 var dismissers = root.querySelectorAll('[data-gscp-dismiss]'); 1578 for (var i = 0; i < dismissers.length; i++) { 1579 dismissers[i].addEventListener('click', function () {
1580 closePopup(state.step === 'success' ? 'done' : 'dismiss'); 1581 }); 1582 } 1583 document.addEventListener('keydown', function (e) { 1584 if (e.key === 'Escape' && state.open) closePopup(state.step === 'success' ? 'done' : 'dismiss'); 1585 }); 1586 1587 // --- intent selection --- 1588 var opts = root.querySelectorAll('[data-gscp-intent]'); 1589 for (var j = 0; j < opts.length; j++) { 1590 opts[j].addEventListener('click', function () { 1591 state.intent = this.getAttribute('data-gscp-intent'); 1592 this.className += ' gscp-selected'; 1593 track('popup_intent_selected', { intent: state.intent, popup: 'au_intent' }); 1594 var self = this; 1595 window.setTimeout(function () { 1596 setStep('email'); 1597 var em = root.querySelector('[data-gscp-email]'); 1598 if (em) em.focus(); 1599 self.className = self.className.replace(' gscp-selected', ''); 1600 }, 180); 1601 }); 1602 } 1603 1604 function showSuccessCode() { 1605 var codeEl = root.querySelector('[data-gscp-code]'); 1606 if (codeEl) codeEl.textContent = state.code; 1607 var fineEl = root.querySelector('[data-gscp-code-fine]'); 1608 if (fineEl) fineEl.textContent = 'Not showing at checkout? Just enter ' + state.code + '.'; 1609 setStep('success'); 1610 } 1611 1612 // --- submit --- 1613 var form = document.getElementById('gscp-form'); 1614 form.addEventListener('submit', function (e) { 1615 e.preventDefault(); 1616 if (state.submitting) return; 1617 var emailEl = root.querySelector('[data-gscp-email]'); 1618 var errEl = root.querySelector('[data-gscp-error]'); 1619 var btn = root.querySelector('[data-gscp-submit]'); 1620 var hp = root.querySelector('[data-gscp-hp]'); 1621 var email = (emailEl.value || '').trim(); 1622 errEl.className = errEl.className.replace(' gscp-show', ''); 1623 1624 if (hp && hp.value) { setStep('success'); return; } // honeypot: silently succeed 1625 if (!/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(email)) { 1626 errEl.textContent = 'Please enter a valid email address.'; 1627 errEl.className += ' gscp-show'; 1628 return; 1629 } 1630 1631 state.submitting = true; 1632 btn.disabled = true; 1633 var prevLabel = btn.textContent; 1634 btn.textContent = 'Sendingâ¦'; 1635 1636 Promise.resolve().then(function () { 1637 state.code = CODE; 1638 1639 var props = { intent: state.intent || 'research' }; 1640 var body = { 1641 data: { 1642 type: 'subscription', 1643 attributes: { 1644 custom_source: 'AU Intent Popup', 1645 profile: { data: { type: 'profile', attributes: { 1646 email: email, 1647 properties: props 1648 } } } 1649 }, 1650 relationships: { list: { data: { type: 'list', id: LIST_ID } } } 1651 } 1652 }; 1653 1654 function subscribe() { 1655 return fetch('https://a.klaviyo.com/client/subscriptions/?company_id=' + COMPANY_ID, { 1656 method: 'POST', 1657 headers: { 'Content-Type': 'application/vnd.api+json', 'revision': '2025-07-15' }, 1658 body: JSON.stringify(body) 1659 }); 1660 } 1661 return subscribe().then(function (res) { 1662 if (res.status !== 202 && !res.ok) throw new Error('klaviyo_' + res.status); 1663 return res; 1664 }).catch(function () { 1665 return new Promise(function (resolve) { window.setTimeout(resolve, 1200); }).then(subscribe); 1666 }).then(function (res) { 1667 if (res.status !== 202 && !res.ok) throw new Error('klaviyo_' + res.status); 1668 lsSet(LS_SUBMITTED, '1'); 1669 try { fetch('/discount/' + state.code, { credentials: 'same-origin' }); } catch (err) {} 1670 showSuccessCode(); 1671 track('popup_submitted', { intent: state.intent || 'research', popup: 'au_intent' }); 1672 }); 1673 }).catch(function () { 1674 errEl.textContent = 'Something went wrong â please try again in a moment.'; 1675 errEl.className += ' gscp-show'; 1676 }).then(function () { 1677 state.submitting = false; 1678 btn.disabled = false; 1679 btn.textContent = prevLabel; 1680 }); 1681 }); 1682 1683 // --- teaser tab: stays in the corner while the offer is unclaimed; reopens the form --- 1684 var teaser = document.getElementById('gscp-teaser'); 1685 var teaserTracked = false; 1686 function updateTeaser() { 1687 if (!teaser) return; 1688 var show = !lsGet(LS_SUBMITTED) && !state.open;
1689 teaser.className = show ? 'gscp-teaser-show' : ''; 1690 if (show && !teaserTracked) { 1691 teaserTracked = true; 1692 track('popup_teaser_shown', { popup: 'au_intent' }); 1693 } 1694 } 1695 if (teaser) teaser.addEventListener('click', function () { 1696 track('popup_teaser_clicked', { popup: 'au_intent' }); 1697 openPopup('teaser', true); 1698 }); 1699 updateTeaser(); 1700})();</script>
1700 1701 1702 1703<style> 1704 .gs-sd-backdrop { position: fixed; inset: 0; z-index: 9998; background: rgba(0,21,54,.45); opacity: 0; pointer-events: none; transition: opacity .25s ease; } 1705 .gs-sd-backdrop.gs-sd-open { opacity: 1; pointer-events: auto; } 1706 #gs-shop-drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 9999; width: 440px; max-width: 100%; background: #fff; display: flex; flex-direction: column; 1707 transform: translateX(102%); transition: transform .3s cubic-bezier(.22,.7,.3,1); box-shadow: -12px 0 40px rgba(0,21,54,.18); } 1708 #gs-shop-drawer.gs-sd-open { transform: translateX(0); } 1709 #gs-shop-drawer *, #gs-shop-drawer *:before, #gs-shop-drawer *:after { box-sizing: border-box; } 1710 .gs-sd-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid #E5E7EB; flex: 0 0 auto; } 1711 .gs-sd-head img { height: 26px; width: auto; display: block; } 1712 .gs-sd-close, .gs-sd-cart { background: none; border: none; cursor: pointer; padding: 8px; -webkit-tap-highlight-color: transparent; line-height: 0; } 1713 .gs-sd-close svg, .gs-sd-cart svg { width: 22px; height: 22px; fill: none; stroke: #002156; stroke-width: 2.2; } 1714 .gs-sd-body { overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 14px 14px 40px; flex: 1 1 auto; } 1715 .gs-sd-col { display: flex; flex-direction: column; gap: 12px; } 1716 .gs-sd-tile { display: grid; grid-template-columns: 1.15fr 1fr; border-radius: 14px; overflow: hidden; min-height: 150px; position: relative; border: 1px solid #E5E7EB; 1717 text-decoration: none; transition: box-shadow .18s ease, transform .18s ease; -webkit-tap-highlight-color: transparent; } 1718 .gs-sd-tile:hover { box-shadow: 0 8px 26px rgba(0,21,54,.12); transform: translateY(-1px); text-decoration: none; } 1719 .gs-sd-txt { padding: 20px 6px 20px 20px; display: flex; flex-direction: column; justify-content: center; } 1720 .gs-sd-tag { font-size: 11px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; color: #43567A; } 1721 .gs-sd-tile h3 { font-size: 20px; font-weight: 800; color: #002156; margin: 6px 0 0; line-height: 1.15; } 1722 .gs-sd-sub { margin: 8px 0 0; font-size: 13.5px; line-height: 1.45; font-weight: 300; color: #43567A; } 1723 .gs-sd-img { display: flex; align-items: center; justify-content: center; overflow: hidden; } 1724 .gs-sd-img img { width: 100%; height: 100%; object-fit: contain; padding: 14px; } 1725 .gs-sd-img.gs-sd-cover img { object-fit: cover; padding: 0; } 1726 .gs-sd-tile.gs-sd-hero { background: #002156; border-color: #002156; } 1727 .gs-sd-tile.gs-sd-hero .gs-sd-tag { color: #ECAFAC; } 1728 .gs-sd-tile.gs-sd-hero h3 { color: #fff; } 1729 .gs-sd-tile.gs-sd-hero .gs-sd-sub { color: #C9D6E6; } 1730 .gs-sd-tile.gs-sd-blush { background: #F8ECEB; } 1731 .gs-sd-tile.gs-sd-blue { background: #E8F0F6; } 1732 .gs-sd-tile.gs-sd-grey { background: #F7F8FA; } 1733 .gs-sd-soldout { position: absolute; top: 12px; right: 12px; background: #43567A; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; padding: 6px 12px; border-radius: 999px; } 1734 .gs-sd-tile.gs-sd-is-sold .gs-sd-img img { filter: grayscale(55%); opacity: .72; } 1735 .gs-sd-tile.gs-sd-quiz { background: #ECAFAC; border-color: #ECAFAC; min-height: 110px; grid-template-columns: 1fr; } 1736 .gs-sd-tile.gs-sd-quiz h3 { color: #001536; } 1737 .gs-sd-tile.gs-sd-quiz .gs-sd-tag, .gs-sd-tile.gs-sd-quiz .gs-sd-sub { color: #7A4A46; } 1738 .gs-sd-links { display: none; margin-top: 18px; border-top: 1px solid #E5E7EB; padding-top: 6px; } 1739 .gs-sd-links a { display: block; padding: 13px 6px; color: #002156; font-size: 15px; font-weight: 400; text-decoration: none; border-bottom: 1px solid #F7F8FA; } 1740 @media (max-width: 860px) { .gs-sd-links { display: block; } } 1741</style> 1742 1743<div class="gs-sd-backdrop" id="gs-sd-backdrop"></div> 1744<div id="gs-shop-drawer" role="dialog" aria-modal="true" aria-label="Shop"> 1745 <div class="gs-sd-head"> 1746 <button class="gs-sd-close" id="gs-sd-close" aria-label="Close shop menu"><svg viewBox="0 0 24 24"><path d="M6 6l12 12M18 6L6 18"/></svg></button> 1747 <img src="//goodsleepco.health/cdn/shop/t/11/assets/good-sleep-co-logo-long.svg?v=74090565778415339771747357548" alt="Good Sleep Co"> 1748 <a class="gs-sd-cart" href="/cart" onclick="if (window.scCart && window.scCart.open) { event.preventDefault(); window.scCart.open(); }" aria-label="Cart"><svg viewBox="0 0 24 24">
1748<path d="M6 7h12l1.2 12.2a1.5 1.5 0 01-1.5 1.8H6.3a1.5 1.5 0 01-1.5-1.8L6 7z"/><path d="M9 10V6a3 3 0 016 0v4"/></svg></a> 1749 </div> 1750 <div class="gs-sd-body"> 1751 <div class="gs-sd-col"><a class="gs-sd-tile gs-sd-hero" href="/products/hushd-avera"> 1752 <div class="gs-sd-txt"><span class="gs-sd-tag">Snoring</span><h3>Stop the snoring</h3> 1753 <p class="gs-sd-sub">Hushd Avera. The custom-fit mouthpiece you mould at home. $139</p></div> 1754 <div class="gs-sd-img"><img src="//goodsleepco.health/cdn/shop/files/Avera_Packaging.webp?v=1771996349&width=400" alt="Hushd Avera" loading="lazy"></div></a><a class="gs-sd-tile gs-sd-blue" href="/products/good-sleep-test"> 1755 <div class="gs-sd-txt"><span class="gs-sd-tag">Sleep Apnea</span><h3>Test your sleep at home</h3> 1756 <p class="gs-sd-sub">Good Sleep Test. One night in your own bed, specialist report and a free consult. $200</p></div> 1757 <div class="gs-sd-img"><img src="//goodsleepco.health/cdn/shop/files/Web_Product_Images_1080x1080_GoodSleepTest2.jpg?v=1728010687&width=400" alt="Good Sleep Test" loading="lazy"></div></a><a class="gs-sd-tile gs-sd-blush" href="/pages/treatment"> 1758 <div class="gs-sd-txt"><span class="gs-sd-tag">Sleep Apnea</span><h3>Explore treatment options</h3> 1759 <p class="gs-sd-sub">Clinically-backed treatment pathways, guided by our team.</p></div> 1760 <div class="gs-sd-img gs-sd-cover"><img src="https://cdn.shopify.com/s/files/1/0598/2417/7291/files/homepage-oral-device-hand.webp?v=1773366326" alt="Oral device" loading="lazy"></div> 1761 </a><a class="gs-sd-tile gs-sd-grey gs-sd-is-sold" href="/products/hushd-guard"> 1762 <div class="gs-sd-txt"><span class="gs-sd-tag">Teeth Grinding</span><h3>Protect your teeth</h3> 1763 <p class="gs-sd-sub">Hushd Guard. Custom-fit night guard for grinding and jaw tension. $59.95</p></div> 1764 <div class="gs-sd-img"><img src="//goodsleepco.health/cdn/shop/files/Web_Product_Images_1080x1080_HushdGuardTemp2.jpg?v=1700607833&width=400" alt="Hushd Guard" loading="lazy"></div><span class="gs-sd-soldout">Sold Out</span></a><a class="gs-sd-tile gs-sd-blue gs-sd-is-sold" href="/products/hushd-nasal"> 1765 <div class="gs-sd-txt"><span class="gs-sd-tag">Blocked Nose</span><h3>Breathe easier tonight</h3> 1766 <p class="gs-sd-sub">Hushd Nasal dilators. Drug-free, two per pack. $24.95</p></div> 1767 <div class="gs-sd-img"><img src="//goodsleepco.health/cdn/shop/files/Hushd_Nasal.jpg?v=1757568127&width=400" alt="Hushd Nasal" loading="lazy"></div><span class="gs-sd-soldout">Sold Out</span></a><a class="gs-sd-tile gs-sd-grey" href="/products/cleaner"> 1768 <div class="gs-sd-txt"><span class="gs-sd-tag">Device Care</span><h3>Keep it fresh</h3> 1769 <p class="gs-sd-sub">The Cleaner. Deep-cleaning solution for your mouthpiece. $25</p></div> 1770 <div class="gs-sd-img"><img src="//goodsleepco.health/cdn/shop/files/GoodSleepCo-Product-Photos-39_Clipped.jpg?v=1752707389&width=400" alt="Cleaner" loading="lazy"></div></a><a class="gs-sd-tile gs-sd-quiz" href="/pages/sleep-quiz"> 1771 <div class="gs-sd-txt"><span class="gs-sd-tag">Not sure where to start?</span><h3>Take the 2-minute sleep quiz</h3> 1772 <p class="gs-sd-sub">Get a personalised recommendation.</p></div> 1773 </a> 1774 1775 </div> 1776 <nav class="gs-sd-links"> 1777 <a href="/pages/location">Location</a> 1778 <a href="/pages/faqs">FAQs</a> 1779 <a href="/pages/contact">Contact Us</a> 1780 </nav> 1781 </div> 1782</div> 1783
1784<script> 1785(function () { 1786 var drawer = document.getElementById('gs-shop-drawer'); 1787 var backdrop = document.getElementById('gs-sd-backdrop'); 1788 if (!drawer || !backdrop) return; 1789 var pushed = false; 1790 var prevOverflow = ''; 1791 1792 function openDrawer() { 1793 drawer.classList.add('gs-sd-open'); 1794 backdrop.classList.add('gs-sd-open'); 1795 prevOverflow = document.body.style.overflow; 1796 document.body.style.overflow = 'hidden'; 1797 if (window.location.pathname !== '/collections/shop') { 1798 try { 1799 history.pushState({ gsShopDrawer: 1 }, '', '/collections/shop'); 1800 pushed = true; 1801 } catch (e) { pushed = false; } 1802 } 1803 window.dataLayer = window.dataLayer || []; 1804 window.dataLayer.push({ event: 'virtual_page_view', page_path: '/collections/shop', page_title: 'Shop' }); 1805 if (window.posthog && typeof window.posthog.capture === 'function') { 1806 try { window.posthog.capture('$pageview'); } catch (e) {} 1807 } 1808 } 1809 1810 function closeDrawer(skipHistory) { 1811 drawer.classList.remove('gs-sd-open'); 1812 backdrop.classList.remove('gs-sd-open'); 1813 document.body.style.overflow = prevOverflow; 1814 if (pushed && !skipHistory) { try { history.back(); } catch (e) {} } 1815 pushed = false; 1816 } 1817 1818 document.getElementById('gs-sd-close').addEventListener('click', function () { closeDrawer(false); }); 1819 backdrop.addEventListener('click', function () { closeDrawer(false); }); 1820 document.addEventListener('keydown', function (e) { 1821 if (e.key === 'Escape' && drawer.classList.contains('gs-sd-open')) closeDrawer(false); 1822 }); 1823 window.addEventListener('popstate', function () { 1824 if (drawer.classList.contains('gs-sd-open')) closeDrawer(true); 1825 }); 1826 1827 // Capture-phase interception: burger (mobile nav) + Shop nav links. 1828 document.addEventListener('click', function (e) { 1829 var burger = e.target.closest ? e.target.closest('.js-drawer-open-nav, #menuBtn, #menuToggle, button[aria-label="Menu"]') : null; 1830 if (burger) { 1831 e.preventDefault(); 1832 e.stopImmediatePropagation ? e.stopImmediatePropagation() : e.stopPropagation(); 1833 openDrawer(); 1834 return; 1835 } 1836 var link = e.target.closest ? e.target.closest('a[href*="/collections/shop"]') : null; 1837 if (link && !drawer.contains(link)) { 1838 e.preventDefault(); 1839 e.stopImmediatePropagation ? e.stopImmediatePropagation() : e.stopPropagation(); 1840 openDrawer(); 1841 } 1842 }, true); 1843})(); 1844</script>
1844 1845 1846<div id="shopify-block-AUitnVGUzYUpqd3NYV__3498691031678343252" class="shopify-block shopify-app-block">
1846<script> 1847 var translations = {"store.load_more":"Load More-","store.leave_a_review":"Leave a review","store.verified_buyer":"Verified Buyer","store.view_product":"View Product","store.reply_from_owner":"Reply from owner","store.sticky_bar_discount":"CLAIM UP TO {discount} OFF* IN DISCOUNT CODES","store.sticky_bar_info":"Review products from your previous orders to claim your discount codes.","store.sticky_bar_click":"Click each order below to get started.","store.sticky_bar_order":"Order","store.sticky_bar_order_discount_one":"Discount code worth {discount} off","store.sticky_bar_order_discount_every":"Discount codes worth {discount} off","store.sticky_bar_term_created":"*A discount code is created for each product reviewed.","store.sticky_bar_term_only_one":"*Only one discount code can be used per order.","store.review_graph_total":"From {count} Reviews"}; 1848 window.kooee = { 1849 strings: translations 1850 }; 1851</script>
1851 1852 1853<!-- BEGIN app snippet: kooee-rich-snippet --> 1854<!-- END app snippet --> 1855 1856<div 1857 id="kooee-global-style" 1858 data-local-dev="false" 1859 data-fill-color="#F0F083" 1860 data-star-size="24" 1861 data-text-color="#000000" 1862 data-text-size="16" 1863 data-hide-no-results="false" 1864 data-rating-template="${review_rating} stars from ${review_count} reviews" 1865 data-padding="20" 1866 data-gap="10" 1867 data-flex-direction="column" 1868 data-align-items="center" 1869 data-script-url="https://cdn.shopify.com/extensions/019cfe03-08f6-782b-9714-4c1ba92113b7/theme-app-extension-25/assets/kooee-reviews-rating.js" 1870 data-leave-review-script-url="https://cdn.shopify.com/extensions/019cfe03-08f6-782b-9714-4c1ba92113b7/theme-app-extension-25/assets/kooee-leave-review.js" 1871 data-so-load-more="Load More" 1872 data-so-leave-review="Leave a Review" 1873 data-so-verified-buyer="Verified Buyer" 1874 data-so-view-product="View Product" 1875 data-so-owner-reply="Reply from owner" 1876></div> 1877 1878 1879 1880
1881<script 1882 src="https://cdn.shopify.com/extensions/019cfe03-08f6-782b-9714-4c1ba92113b7/theme-app-extension-25/assets/kooee-reviews-rewards.js" 1883 data-rewards-enabled="true" 1884 data-sticky-enabled="true" 1885 data-user="" 1886 data-bar-bg-colour="#F8AFB1" 1887 data-bar-text-size="20" 1888 data-bar-text-weight="800" 1889 data-bar-text-colour="#021f4a" 1890 data-bar-location="footer" 1891 data-bar-reward-for="one" 1892 data-modal-left-bg-colour="#F8AFB1" 1893 data-modal-left-text-colour="#fff" 1894 data-modal-right-bg-colour="#fff" 1895 data-modal-right-text-colour="#021f4a" 1896 data-bar-app-url="https://app.kooee.reviews" 1897 1898 async></script>
1898 1899 1900
1900<script 1901 src="https://cdn.shopify.com/extensions/019cfe03-08f6-782b-9714-4c1ba92113b7/theme-app-extension-25/assets/kooee-embed.js" 1902 async></script>
1902 1903 1904</div><div id="shopify-block-ARExFU25Wa0dyOGZGU__6251270934270006384" class="shopify-block shopify-app-block">
1904<script> 1905 console.log("Stape gtm: 1.0.4"); 1906 window.lsData = {}; 1907 window.dataLayer = window.dataLayer || []; 1908 window.addEventListener("message", (event) => { 1909 if (event.data?.event) { 1910 window.dataLayer.push(event.data); 1911 } 1912 }); 1913 window.dataShopStape = { 1914 shop: "goodsleepco.health", 1915 shopId: "59824177291", 1916 } 1917</script>
1917 1918 1919 1920 1921 1922 1923 1924
1924<script> 1925 console.log("â ï¸ User not logged in"); 1926 window.localStorage.removeItem('customerShopStape'); 1927 </script>
1927 1928 1929 1930 1931
1932<script> 1933 window.currentShopifyMarketStapeId = null; 1934 window.currentShopifyMarketStapeCode = null; 1935 try { 1936 window.currentShopifyMarketStapeId = "28434563211"; 1937 window.currentShopifyMarketStapeCode = "AU"; 1938 // Checkout doesn't render theme app extension blocks, so this is the 1939 // only place the market/country code is ever set. Persisting it here 1940 // lets checkout-side field mapping (country_market_code) fall back to 1941 // the last known value instead of coming up empty. 1942 localStorage.setItem('marketShopStape', JSON.stringify({ 1943 id: window.currentShopifyMarketStapeId, 1944 code: window.currentShopifyMarketStapeCode 1945 })); 1946 } catch (error) { 1947 console.error("â Stape Error:", error); 1948 } 1949</script>
1949 1950 1951 1952 1953 1954 1955</div><div id="shopify-block-AY3pVa3ZJR0E3aHF6e__10436698916776057164" class="shopify-block shopify-app-block">
1955<script id="subscription-helper"> 1956 1957 if (!window.AppstleIncluded) { 1958 window.AppstleIncluded = true; 1959 window.RS = Window.RS || {}; 1960 1961 RS.Config = { 1962 "selectors": { 1963 "payment_button_selectors": "form[action$='/cart/add'] .shopify-payment-button", 1964 "subscriptionLinkSelector": "", 1965 "atcButtonPlacement": "BEFORE", 1966 "subscriptionLinkPlacement": "BEFORE", 1967 "cartRowSelector": "", 1968 "cartLineItemSelector": "", 1969 "cartLineItemPerQuantityPriceSelector": "", 1970 "cartLineItemTotalPriceSelector": "", 1971 "cartLineItemSellingPlanNameSelector": "", 1972 "cartSubTotalSelector" : "", 1973 "cartLineItemPriceSelector": "", 1974 "cartLineItemPlacement": "BEFORE", 1975 "cartHiddenAttributesSelector": "", 1976 "buildABoxDiscountSelector": "", 1977 }, 1978 "baseUrl": "https://subscription-admin.appstle.com", 1979 "usedTranslation": "true", 1980 "enableCartWidgetFeature": "false", 1981 "storefrontAnalyticsForwardingEnabled": false, 1982 "appstleStorefrontAnalyticsPath": "https://subscription-admin.appstle.com/assets/js/appstle-storefront-analytics.min.js?shop=good-sleep-co-gc.myshopify.com&v=1785489929499", 1983 "useUrlWithCustomerId": "true", 1984 "atcButtonSelector": "", 1985 "moneyFormat": "${{amount}}", 1986 "oneTimePurchaseText": "One Time Purchase", 1987 "minimumQuantityMessage": "", 1988 "tapToSelectText": "", 1989 "bundleDiscountTextV2": "bundle discount extra: {{bundleDiscount}} off", 1990 "productPageUnitPriceSelectorV2": "", 1991 "monthsFrequencyTextV2": "Months", 1992 "monthlyLabelTextV2": "Monthly", 1993 "monthFrequencyTextV2": "Month", 1994 "weeksFrequencyTextV2": "Weeks", 1995 "weeklyLabelTextV2": "Weekly", 1996 "weekFrequencyTextV2": "Week", 1997 "daysFrequencyTextV2": "Days", 1998 "dayFrequencyTextV2": "day", 1999 "yearsFrequencyTextV2": "Years", 2000 "yearlyLabelTextV2": "Yearly", 2001 "yearFrequencyTextV2": "Year", 2002 "offFrequencyTextV2": "Off", 2003 "prepayLabelTextV2": "Prepay", 2004 "prepaidLabelTextV2": "Prepaid", 2005 "prepaidSaveBadgeTextV2": "SAVE {{selectedDiscountPercentage}}", 2006 "onetimeDescriptionTextV2": "", 2007 "atcButtonTextV2": "", 2008 "oneTimeFrequencyTextV2": "One Time", 2009 "cancelAnytimeLabelTextV2": "Cancel Anytime", 2010 "noSubscriptionLabelTextV2": "No Subscription", 2011 "addToShipmentButtonTextV2": "Add to Shipment", 2012 "addToShipmentProcessingV2": "Processing...", 2013 "addToShipmentSuccessTextV2": "Success", 2014 "addToShipmentErrorTextV2": "Error", 2015 "addToShipmentTooltipTextV2": "Please avoid double delivery charges! Login to add this product to an upcoming delivery.", 2016 "frequencyCombinedWidgetTextV2": "Frequency", 2017 "selectDeliverOptionV2": "select deliver option", 2018 "subscribeAndSaveSuccessV2": "Subscribe success", 2019 "unsubscribeFrequencyTextV2": "unsubscribe", 2020 "deliveryEveryFrequencyTextV2": "Delivery Every", 2021 "sellingPlanTitleTextNonPrepaid": "{{sellingPlanName}}", 2022 "subscribeAndSaveInitalV2": "Subscribe & save", 2023 "subscriptionDescriptionTextV2": "", 2024 "atcButtonTextSelector": "", 2025 "disableCartWidgetOnVariants": "", 2026 "shop": "good-sleep-co-gc.myshopify.com", 2027 "deliveryText": "delivery", 2028 "purchaseOptionsText": "Purchase Options", 2029 "manageSubscriptionButtonText": "Manage Subscription", 2030 "subscriptionOptionText": "Subscribe", 2031 "sellingPlanSelectTitle": "DELIVERY FREQUENCY", 2032 "subscriptionPriceDisplayText": "", 2033 "tooltipTitle": "Subscription detail", 2034 "showTooltipOnClick": "false", 2035 "tooltipDesctiption": `<strong>Have complete control of your subscriptions<\/strong><br\/><br\/>Skip, reschedule, edit, or cancel deliveries anytime, based on your needs.`, 2036 "tooltipDescriptionOnPrepaidPlan": "<b>Prepaid Plan Details<\/b><\/br> Total price: {{totalPrice}} ( Price for every delivery: {{pricePerDelivery}})", 2037 "tooltipDescriptionOnMultipleDiscount": "<b>Discount Details<\/b><\/br> Initial discount is {{discountOne}} and then {{discountTwo}}", 2038 "manualTranslation": "false", 2039 "tooltipDescriptionCustomization": "{{{defaultTooltipDescription}}} <\/br> {{{prepaidDetails}}} <\/br> {{{discountDetails}}}", 2040 "orderStatusManageSubscriptionTitle": "Subscription", 2041 "orderStatusManageSubscriptionDescription": "Continue to your account to view and manage your subscriptions. Please use the same email address that you used to buy the subscription.", 2042 "orderStatusManageSubscriptionButtonText": "Manage your subscription", 2043 "subscriptionOptionSelectedByDefault" : true, 2044 "totalPricePerDeliveryText" : "{{prepaidPerDeliveryPrice}}\/delivery", 2045 "memberOnlySellingPlansJson": {}, 2046 "nonMemberOnlySellingPlansJson": {}, 2047 "sellingPlansJson": [{"frequencyCount":1,"frequencyInterval":"MONTH","billingFrequencyCount":1,"billingFrequencyInterval":"MONTH","frequencyName":"Monthly","frequencyDescription":"A monthly delivery of our Cleaner solution.","discountOffer":20.0,"afterCycle1":0,"discountType":"PERCENTAGE","discountEnabled":true,"discountEnabledMasked":true,"id":"gid://shopify/SellingPlan/773587083","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/773587083","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"null","frequencySequence":0,"groupName":"Monthly Cleaner","groupId":219283595,"repeatingCycle":false,"defaultSelectedPlan":false,"inventoryPolicyReserve":"ON_SALE","appstleCycles":[]},{"frequencyCount":1,"frequencyInterval":"MONTH","billingFrequencyCount":1,"billingFrequencyInterval":"MONTH","frequencyName":"Monthly Subscription","frequencyDescription":"","afterCycle1":0,"afterCycle2":0,"discountEnabled":false,"discountEnabled2":false,"discountEnabledMasked":false,"discountEnabled2Masked":false,"id":"gid://shopify/SellingPlan/2068152459","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/2068152459","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"null","frequencySequence":0,"groupName":"Hushd Avera Subscription ","groupId":1153433739,"repeatingCycle":false,"defaultSelectedPlan":false,"frequencyNameTranslations":{},"inventoryPolicyReserve":"ON_SALE","appstleCycles":[]},{"frequencyCount":3,"frequencyInterval":"MONTH","billingFrequencyCount":3,"billingFrequencyInterval":"MONTH","frequencyName":"Quarterly Subscription","frequencyDescription":"","afterCycle1":0,"afterCycle2":0,"discountEnabled":false,"discountEnabled2":false,"discountEnabledMasked":false,"discountEnabled2Masked":false,"id":"gid://shopify/SellingPlan/2068185227","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/2068185227","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"[]","frequencySequence":1,"groupName":"Hushd Avera Subscription ","groupId":1153433739,"repeatingCycle":false,"defaultSelectedPlan":false,"frequencyNameTranslations":{},"inventoryPolicyReserve":"ON_SALE","appstleCycles":[]},{"frequencyCount":1,"frequencyInterval":"MONTH","billingFrequencyCount":1,"billingFrequencyInterval":"MONTH","frequencyName":"Monthly Subscription","frequencyDescription":"","discountOffer":10.0,"afterCycle1":0,"discountType":"PERCENTAGE","discountEnabled":true,"discountEnabledMasked":true,"id":"gid://shopify/SellingPlan/2655355019","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/2655355019","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"[]","frequencySequence":0,"groupName":"Magnesium Subscription ","groupId":1711603851,"repeatingCycle":false,"defaultSelectedPlan":false,"frequencyNameTranslations":{},"inventoryPolicyReserve":"ON_SALE","appstleCycles":[]}], 2048 "widgetEnabled": true, 2049 "showFreeGiftPrice" : true, 2050 "showFreeGiftComparePrice" : true, 2051 "enableFreeGiftLayout" : false, 2052 "freeGiftLabelText": "+ Free {{productName}}", 2053 "freeGiftBadgeText": "", 2054 "showTooltip" : true, 2055 "showCartWidgetOnBundleItems" : false, 2056 "prepaidOptionSelectedByDefault" : false, 2057 "disablePassingSellingPlanAsLineProperties" : false, 2058 "updateThemePrice" : false, 2059 "sortByDefaultSequence": false, 2060 "showSubOptionBeforeOneTime": false, 2061 "detectVariantFromURLParams": false, 2062 "disableQueryParamsUpdate": false, 2063 "showStaticTooltip": false, 2064 "showAppstleLink": true, 2065 "sellingPlanTitleText" : "{{sellingPlanName}} ({{sellingPlanPrice}}\/delivery)", 2066 "oneTimePriceText" : "{{price}}", 2067 "selectedPayAsYouGoSellingPlanPriceText" : "{{price}}", 2068 "selectedPrepaidSellingPlanPriceText" : " {{totalPrice}}", 2069 "selectedDiscountFormat" : "SAVE {{selectedDiscountPercentage}}", 2070 "manageSubscriptionBtnFormat" : "<a href='apps\/subscriptions' class='appstle_manageSubBtn' ><button class='btn' style='padding: 2px 20px'>Manage Subscription<\/button>
2070<a><br><br>", 2071 "manageSubscriptionUrl" : "https:\/\/goodsleepco.health\/apps\/subscriptions", 2072 "appstlePlanId": 161, 2073 "showCheckoutSubscriptionBtn": true, 2074 "priceSelector": "", 2075 "reloadPriceSelector": "", 2076 "landingPagePriceSelector": "", 2077 "quickViewClickSelector": "", 2078 "badgeTop": "", 2079 "pricePlacement": "BEFORE", 2080 "disableLoadingJquery": false, 2081 "widgetEnabledOnSoldVariant": "false", 2082 "switchRadioButtonWidget": true, 2083 "appstlePlanName": "FREE", 2084 "appstlePlanFeatures": {"analytics": true, "webhookAccess": false, "accessBundling": false, "enableAutoSync": false, "enableBundling": false, "enableSmsAlert": false, "accessBuildABox": false, "enableCampaigns": false, "enablePriceSync": false, "enableAutomation": false, "enableCartWidget": false, "accessAppstleMenu": false, "accessResendEmail": false, "enableAddressSync": false, "enableExternalApi": false, "enablePhasedRetry": false, "enableIntegrations": true, "enableQuickActions": false, "accessQuickCheckout": false, "accessSplitContract": false, "enableSummaryReports": false, "enableCustomEmailHtml": false, "enableWidgetPlacement": false, "enableCancellationFlow": false, "enableShippingProfiles": true, "accessZapierIntegration": true, "enableCustomEmailDomain": false, "enableDunningManagement": true, "enableExportActivityLog": true, "subscriptionOrderAmount": 500, "accessGorgiasIntegration": true, "accessKlaviyoContactSync": false, "enableOrderConsolidation": false, "accessMechanicIntegration": true, "accessWidgetDesignOptions": false, "enableImmediatePlaceOrder": false, "enableInventoryManagement": true, "accessMechanicsIntegration": true, "enableAdvancedSellingPlans": false, "accessOneTimeProductUpsells": false, "enableBillingIntervalChange": true, "enableProductSwapAutomation": false, "accessShopifyFlowIntegration": true, "enableCancellationManagement": false, "enableCustomerPortalSettings": true, "enableSubscriptionManagement": true, "accessKlaviyoEmailIntegration": true, "enableAdminNotificationAccess": true, "accessSubscriptionActivityLogs": true, "enableBackupPaymentMethodRetry": false, "accessSubscriberLoyaltyFeatures": false, "enableAddToExistingSubscription": false, "enableContractPriceModification": true, "enableTrackInventoryInSingleBAB": true, "accessManualSubscriptionCreation": false, "enableNextBillingDateModification": true, "accessCustomerPortalProductUpsells": false, "enableServerSideConversionTracking": false, "accessDiscountOnCancellationAttempt": false, "enableStorefrontAnalyticsForwarding": false, "accessAdvanceSubscriptionPlanOptions": false, "accessAdvancedCustomerPortalSettings": true}, 2085 "formMappingAttributeName": "", 2086 "formMappingAttributeSelector": "", 2087 "quickViewModalPollingSelector": "", 2088 "scriptLoadDelay": "0", 2089 "formatMoneyOverride": "false", 2090 "enableAddToExistingSubscriptionFeature": "false", 2091 "displayAddToExistingSubscriptionButtonForNotLoggedInV2": "", 2092 "showAddToSubscriptionButtonOnlyOnSubscriptionProducts": "false", 2093 "appstle_app_proxy_path_prefix": "apps\/subscriptions", 2094 "updatePriceOnQuantityChange": "", 2095 "widgetParentSelector": "", 2096 "quantitySelector": "", 2097 "enableAddJSInterceptor": "false", 2098 "isDevEnabled": false, 2099 "forceReloadWidgetSelector": "", 2100 "forceReloadOnFreqChange": false, 2101 "showPrepaidPlanSeparately": false, 2102 "debugLogsEnabled": false, 2103 "isUseStorefrontAPI": false, 2104 "reBuyEnabled": "false", 2105 "loyaltyDetailsLabelText": "", 2106 "loyaltyPerkDescriptionTextV2": "{{#isDiscountTypeFreeProduct}}<div style='display: flex;'><div style='height: 60px; width: 60px; flex-shrink: 0; margin-right: 10px;'><img style='width: 100%' src={{{featured_image}}}><\/img><\/div><div>After {{{billingCycleBlock}}} orders,<span style='color: #ffc000;font-weight: 700;';> get a FREE {{freeProductName}} <\/span><\/div><div>{{\/isDiscountTypeFreeProduct}}{{#isDiscountTypePercentage}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>
2106get <span style='color: #ffc000;font-weight: 700;';>{{{discount}}}% OFF your entire order<\/span><\/span>.{{\/isDiscountTypePercentage}}{{#isDiscountTypeShipping}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>shipping at {{{formatDiscountedPrice}}}<\/span><\/span>.{{\/isDiscountTypeShipping}}{{#isDiscountTypeFixed}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>{{{formatDiscountedPrice}}} OFF your entire order<\/span><\/span>.{{\/isDiscountTypeFixed}}", 2107 "widgetType": "WIDGET_TYPE_1", 2108 "collectionWidgetType": "LEGACY", 2109 "enableCompactProductPageWidget": false, 2110 "enableCartDrawerWidget": false, 2111 "cartDrawerWidgetStyle": false, 2112 "cartDrawerWidgetInlineStyle": "", 2113 "cartDrawerWidgetPanelStyle": "", 2114 "cartDrawerWidgetSegmentedStyle": "", 2115 "showOneTimeComparePrice": false, 2116 "showCombinedSellingPlanCartWidget": false, 2117 "combinedCartWidgetSelector": "", 2118 "removeUnsubscribeOption": false, 2119 "widgetTemplateHtml": `{% raw %}{% endraw %}`, 2120 2121 "allWidgetTemplateHtml": "{\"WIDGET_TYPE_1\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_6\":\"{% raw %}<div id=\\\"appstle-widget-template\\\">\\n <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n <div class=\\\"widgetSellingPlanWrapper\\\">\\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n <div class=\\\"appstle_input_wrapper appstle_onetime_block\\\">\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n<div class=\\\"appstle-selling-plan-name-wrapper\\\">\\n {{oneTimePuchaseText}}\\n<div class=\\\"appstle-cancel-text\\\">{{{noSubscriptionLabelTextV2}}}</div>\\n</div>\\n <div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<div class=\\\"appstle_span_wrapper\\\">\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}</span></div>\\n</div>\\n </label>\\n \\n </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n {{#sellingPlanVariants}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n \\n <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n{{^prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\">\\n<div class=\\\"appstle-selling-plan-name-wrapper appstle-selling-plan-label-name\\\">\\n {{{name}}}\\n<div class=\\\"appstle-cancel-text\\\">{{{cancelAnytimeLabelTextV2}}}</div>\\n</div>\\n<div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_formattedCompareAtPrice appstle_price_block\\\">{{{formattedCompareAtPrice}}}</span>\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}</span>
2121\\n\\n\\n</div> \\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_formattext_block\\\"></span>\\n{{#showPricePerDay}}<div class=\\\"appstle-perday-price\\\">{{{pricePerDay}}}</div>{{/showPricePerDay}}\\n<div class=\\\"appstle-frequency-description\\\">\\n{{{frequencyDescription}}} \\n</div>\\n </div>\\n </label>\\n{{#showFormattedDiscountText}}\\n <span class=\\\"appstle_sellingPlan_discountText\\\">{{{formattedDiscountText}}}</span>\\n{{/showFormattedDiscountText}}\\n<div class=\\\"appstle-sm-hide appstle-frequency-description\\\">{{{frequencyDescription}}} </div> \\n{{/prepaidFlag}}\\n{{#prepaidFlag}}\\n<label for=\\\"{{sellingPlanId}}\\\">\\n<div class=\\\"appstle-selling-plan-name-wrapper appstle-selling-plan-label-name\\\">\\n {{{name}}}\\n<div class=\\\"appstle-cancel-text\\\">{{{cancelAnytimeLabelTextV2}}}</div>\\n</div>\\n<div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_formattedCompareAtPrice appstle_price_block\\\">{{{formattedCompareAtPrice}}}</span>\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n\\n</div> \\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block appstle_formattedPrepaidPerDeliveryPriceText\\\">{{{formattedPrepaidPerDeliveryPriceText}}}</span>\\n {{#showPricePerDay}}<div class=\\\"appstle-perday-price\\\">{{{pricePerDay}}}</div>{{/showPricePerDay}}\\n<div class=\\\"\\\">\\n<div class=\\\"appstle-frequency-description\\\">\\n{{{frequencyDescription}}} \\n</div>\\n</div>\\n</div>\\n</label>\\n{{#showFormattedDiscountText}}\\n <span class=\\\"appstle_sellingPlan_discountText\\\">{{{formattedDiscountText}}}</span>\\n{{/showFormattedDiscountText}}\\n<div class=\\\"appstle-sm-hide appstle-frequency-description\\\">{{{frequencyDescription}}} </div> \\n\\n{{/prepaidFlag}}\\n \\n </div>\\n {{/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n <div class=\\\"appstle_input_wrapper appstle_onetime_block\\\">\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n<div class=\\\"appstle-selling-plan-name-wrapper\\\">\\n {{oneTimePuchaseText}}\\n<div class=\\\"appstle-cancel-text\\\">{{{noSubscriptionLabelTextV2}}}</div>\\n</div>\\n<div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">{{{oneTimePuchaseComparePriceAmount}}}</span>\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}</span>\\n\\n</div>\\n </label>\\n \\n </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\"> {{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n<div class=\\\"appstle-tootltip-parent\\\">\\n <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n <path\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n ></path>\\n </svg>\\n <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n </div>\\n<div class=\\\"appstle_tooltip\\\">\\n <div class=\\\"appstle_tooltip_content\\\">\\n {{{toolTipDescription}}}\\n </div>\\n {{#showAppstleLink}}\\n <div class=\\\"appstle_tooltip_appstle\\\">\\n <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n POWERED BY APPSTLE </a>\\n </div>\\n {{/showAppstleLink}}\\n </div>\\n</div>\\n{{/showTooltip}}\\n<style>\\n.widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 1.5rem;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\nmargin-top: 10px;\\n}\\n\\n.widgetSellingPlanWrapper input {\\n display: none;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n border-radius: 10px;\\n border: 1px solid rgba(var(--color-foreground));\\n padding: 0.5rem;\\n display: flex;\\n justify-content: center;
2121\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\ncursor: pointer;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground)) !important;\\ncolor: rgba(var(--color-background)) !important;\\n}\\n.appstle_lowercase {\\n text-transform: lowercase;\\n}\\n\\n\\n.appstle_input_wrapper {\\n position: relative;\\n}\\n\\nspan.appstle_sellingPlan_discountText {\\n position: absolute;\\n background: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border-radius: 3px;\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n}\\n\\nspan.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n}\\ndiv.appstle_span_wrapper{\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n}\\n</style>\\n<style>\\n.widgetSellingPlanWrapper {\\n grid-template-columns: repeat(3, minmax(0, 1fr)) !important;\\n gap: 0.8rem !important;\\n}\\n\\n.appstle_sub_widget {\\n max-width: 100%!important;\\n} \\n\\n.widgetSellingPlanWrapper label {\\n height: auto !important;\\n border: none !important;\\n padding: 14px 5px !important;\\n display: flex !important;\\n justify-content: center !important;\\n align-items: center !important;\\n flex-direction: column;\\n max-width: 100% !important;\\n width: unset !important;\\nline-height: 20px;\\n}\\n\\n.appstle_how_does_it_work {\\n line-height: 16px !important;\\n margin: 6px 0px;\\n color: rgba(var(--color-background));\\n}\\n@media screen and (max-width: 800px) {\\n .appstle_how_does_it_work {\\n text-align: right;\\n }\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_formattext_block {\\ntext-align: right !important;\\n display: block;\\n}\\n\\n.appstle_span_wrapper {\\n align-items: baseline;\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_discount_block.appstle_formattedPrepaidPerDeliveryPriceText {\\n display: block;\\n text-align: right;\\n}\\n\\n.appstle_input_wrapper {\\n display: flex;\\n height: 100% !important;\\nflex-direction: column;\\n}\\n\\n.appstle_sub_widget input[type=radio]+label:before {\\n content: \\\"\\\";\\n position: absolute;\\n inset: 0;\\n border-radius: 12px;\\n padding: 2px;\\n background: #121212;\\n -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);\\n -webkit-mask-composite: xor;\\n mask-composite: exclude;\\n pointer-events: none;\\n z-index: 0;\\n transition: all 0.2s;\\n}\\n\\n.appstle_sub_widget input[type=radio]:checked+label:before {\\n content: \\\"\\\";\\n position: absolute;\\n inset: 0;\\n border-radius: 12px;\\n // padding: 4px;\\n// background: linear-gradient(to right,#Fef58f,#7A3900);\\n//background: #E53D29;\\n border: 2px transparent;\\n -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);\\n -webkit-mask-composite: xor;\\n mask-composite: exclude;\\n pointer-events: none;\\n z-index: 0;\\n}\\n\\nspan.appstle_sellingPlan_discountText {\\n background: rgba(var(--color-foreground));\\n border-radius: 100px !important;\\n padding: 0px 8px !important;\\n height: 20px;\\n display: flex !important;\\n justify-content: center;\\n align-items: center;\\n letter-spacing: 1px;\\nz-index: 2;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\ntext-decoration: line-through;\\n}\\n\\n\\nspan.appstle-popular {\\n position: absolute;\\n top: -40px;\\n background: black;\\n color: rgba(var(--color-background));\\n z-index: -3;\\n border-radius: 10px;\\n padding: 0px 10px 29px 10px;\\nleft: 0;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n border-radius: 14px;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n overflow: hidden;\\n}\\n\\n\\n.appstle-perday-price {\\ndisplay: none;\\n}\\n\\n .widgetSellingPlanWrapper {\\n grid-template-columns: repeat(1, minmax(0, 1fr)) !important;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n flex-direction: row;\\n justify-content: space-between !important;
2121\\n align-items: flex-start !important;\\nwidth: 100% !important;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n text-align: left;\\n padding: 16px !important;\\nflex-basis: unset;\\n}\\n\\n.appstle_span_wrapper {\\n justify-content: flex-end !important;\\n}\\n\\n.appstle-perday-price {\\n text-align: right;\\n}\\n\\n.widgetSellingPlanWrapper {\\n gap: 15px !important;\\n}\\n\\nspan.appstle-popular {\\n width: calc(100% - 20px);\\n text-align: center;\\n letter-spacing: 2px;\\n top: -30px;\\nleft: 0;\\n}\\n\\nspan.appstle_sellingPlan_discountText { \\nleft: unset !important;\\n right: 15px;\\n transform: translate(0, -50%) !important;\\n}\\n.appstle-cancel-text {\\n text-align: left;\\n}\\n\\n.appstle_input_wrapper label {\\n text-align: left !important;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n width: 100% !important;\\n margin: 0 !important;\\n}\\n.appstle_input_wrapper {\\n width: 100% !important;\\nflex-direction: row;\\n}\\n.widgetSellingPlanWrapper input:checked+label+span {\\n background: rgba(var(--color-background)) !important;\\n color:rgba(var(--color-foreground)) !important;\\n border: 2px solid rgba(var(--color-foreground));\\n}\\n.appstle_onetime_block .appstle_span_wrapper {\\n grid-column: 2;\\n}\\n.appstle-frequency-description {\\n text-align: right !important;\\n}\\n\\n\\n.appstle-sm-hide {\\n display: none;\\n}\\n\\n@media screen and (min-width: 800px) {\\n.appstle-lg-show {\\n display: block;\\n}\\n.appstle-lg-hide {\\n display: none;\\n}\\n\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_formattedCompareAtPrice.appstle_price_block {\\n text-decoration: line-through;\\n display: block;\\n margin-right: 3px;\\n color: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label .appstle_sellingPlan_formattedCompareAtPrice {\\ncolor:rgba(var(--color-background));\\n} \\n\\n.appstle_span_wrapper > * {\\nflex-shrink: 0\\n}\\n.appstle-selling-plan-detail-wrapper{\\ncolor: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label .appstle-selling-plan-detail-wrapper{\\ncolor: rgba(var(--color-background)) !important;\\n}\\n\\n</style>\\n</div>{% endraw %}\",\"WIDGET_TYPE_7\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_8\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_2\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_3\":\"{% raw %}<div id=\\\"appstle-widget-template\\\">\\n <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n <div class=\\\"widgetSellingPlanWrapper appstle_subscription_wrapper\\\">\\n{{#showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n <div class=\\\"appstle_input_wrapper appstle_subscription_option\\\">\\n <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n {{^prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}</span>\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"> ({{{secondFormattedDiscountText}}})</span> {{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n</div>\\n \\n </label>\\n {{/prepaidFlag}}\\n {{#prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n {{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"> ({{{secondFormattedDiscountText}}})</span>{{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n {{#formattedPrepaidPerDeliveryPriceText}}<span class=\\\"appstle_formattedPrepaidPerDeliveryPriceText\\\"> ({{{formattedPrepaidPerDeliveryPriceText}}})</span>{{/formattedPrepaidPerDeliveryPriceText}}\\n </div>\\n \\n </label>\\n {{/prepaidFlag}}\\n \\n </div>\\n {{/sellingPlanVariants}}\\n{{/showSubOptionBeforeOneTime}}\\n {{^requires_selling_plan}}\\n <div class=\\\"appstle_input_wrapper appstle_onetime\\\">
2121\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"{{sellingPlanId}}\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" class=\\\"appstle_widget_three\\\">\\n {{oneTimePuchaseText}}\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n{{{oneTimePuchaseAmount}}}</span>\\n </label>\\n \\n </div>\\n {{/requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n <div class=\\\"appstle_input_wrapper appstle_subscription_option\\\">\\n <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n {{^prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}</span>\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"> ({{{secondFormattedDiscountText}}})</span> {{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n</div>\\n \\n </label>\\n {{/prepaidFlag}}\\n {{#prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n {{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"> ({{{secondFormattedDiscountText}}})</span>{{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n {{#formattedPrepaidPerDeliveryPriceText}}<span class=\\\"appstle_formattedPrepaidPerDeliveryPriceText\\\"> ({{{formattedPrepaidPerDeliveryPriceText}}})</span>{{/formattedPrepaidPerDeliveryPriceText}}\\n </div>\\n \\n </label>\\n {{/prepaidFlag}}\\n \\n </div>\\n {{/sellingPlanVariants}}\\n{{/showSubOptionBeforeOneTime}}\\n </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\">{{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n <path\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n ></path>\\n </svg>\\n <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n </div>\\n<div class=\\\"appstle_tooltip appstle_tooltip_hover\\\">\\n <div class=\\\"appstle_tooltip_content\\\">\\n {{{toolTipDescription}}}\\n </div>\\n {{#showAppstleLink}}\\n <div class=\\\"appstle_tooltip_appstle\\\">\\n <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n POWERED BY APPSTLE\\n </a>\\n </div>\\n{{/showAppstleLink}}\\n </div>\\n{{/showTooltip}}\\n<style>.widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 0.5rem;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\n}\\n.widgetSellingPlanWrapper input {\\n display: none;\\n}\\n.widgetSellingPlanWrapper label {\\n border-radius: 8px;\\n border: 1px solid rgba(var(--color-foreground));\\n padding: 0.5rem;\\n display: flex;\\n justify-content: center;
2121\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\ncursor: pointer;\\ncolor: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border: 1px solid rgba(var(--color-background)) !important;\\n}\\n.appstle_lowercase {\\n text-transform: lowercase;\\n}\\n.appstle_input_wrapper {\\n position: relative;\\n}\\nspan.appstle_sellingPlan_discountText {\\n position: absolute;\\n background-color: color: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border-radius: 3px;\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n}\\nspan.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price {\\n color: rgba(var(--color-foreground));\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\n color: rgba(var(--color-foreground));\\n text-decoration: line-through;\\n padding: 0 3px;\\n}\\n#appstle_subscription_widget0 .appstle_tooltip_wrapper {\\n margin-top: 8px;\\n margin-bottom: 16px;\\n}\\n.appstle_subscription_wrapper {\\n border: none !important;\\n}\\nlabel.appstle_widget_three {\\n display: flex;\\n flex-direction: column;\\n}\\n.widgetSellingPlanWrapper input:checked+label span {\\n color: rgba(var(--color-background)) !important;\\n}\\n.appstle_sub_widget .appstle_subscription_wrapper{\\n border-radius:unset !important;\\n}\\nspan.appstle_second_price_block:empty {\\n display: none !important;\\n}\\n</style>\\n</div>{% endraw %}\",\"WIDGET_TYPE_4\":\"{% raw %}<div id=\\\"appstle-widget-template\\\">\\n <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n <div class=\\\"widgetSellingPlanWrapper\\\">\\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n {{oneTimePuchaseText}}\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}/{{{oneTimeFrequencyText}}}</span>\\n </label>\\n </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n {{#sellingPlanVariants}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n <span class=\\\"appstle_sellingPlan_discountText\\\">{{{formattedDiscountText}}}</span>\\n <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n{{^prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}<span>\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_formattext_block\\\">/{{{sellingPlanFrequencyText}}}{{#isFrequencySubsequent}}{{/isFrequencySubsequent}}</span>\\n</div>\\n </label>\\n{{/prepaidFlag}}\\n{{#prepaidFlag}}\\n<label for=\\\"{{sellingPlanId}}\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block appstle_formattedPrepaidPerDeliveryPriceText\\\"> {{{formattedPrepaidPerDeliveryPriceText}}}</span>\\n</div>\\n</label>\\n{{/prepaidFlag}}\\n </div>\\n {{/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n <div class=\\\"appstle_input_wrapper\\\">
2121\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n {{oneTimePuchaseText}}\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}/{{{oneTimeFrequencyText}}}</span>\\n </label>\\n </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\"> {{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n <path\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n ></path>\\n </svg>\\n <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n </div>\\n <div class=\\\"appstle_tooltip\\\">\\n <div class=\\\"appstle_tooltip_content\\\">\\n {{{toolTipDescription}}}\\n </div>\\n{{#showAppstleLink}}\\n <div class=\\\"appstle_tooltip_appstle\\\">\\n <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n POWERED BY APPSTLE\\n </a>\\n </div>\\n{{/showAppstleLink}}\\n </div>\\n{{/showTooltip}}\\n<style>\\n.widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 16px;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\nmargin-top: 10px\\n}\\n.widgetSellingPlanWrapper input {\\n display: none;\\n}\\n.widgetSellingPlanWrapper label {\\n border-radius: 10px;\\n border: 1px solid rgba(var(--color-foreground, 0, 0, 0));\\n padding: 0.5rem;\\n display: flex !important;\\n flex-direction: column;\\n justify-content: center;
2121\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\ncursor: pointer;\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground, 0, 0, 0));\\n}\\n.appstle_lowercase {\\n text-transform: lowercase;\\n}\\n.appstle_input_wrapper {\\n position: relative;\\n}\\nspan.appstle_sellingPlan_discountText {\\n position: absolute;\\n font-size: 1.2rem;\\n background-color: rgba(var(--color-foreground, 0, 0, 0));\\n color: rgba(var(--color-background, 255, 255, 255));\\n border-radius: 3px;\\n border: 2px solid rgba(var(--color-background, 255, 255, 255));\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n}\\nspan.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\ntext-decoration: line-through;\\n}\\n.appstle_tooltip_wrapper {\\n margin-bottom:10px;\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground, 0, 0, 0));\\n color: rgba(var(--color-background, 255, 255, 255));\\n border: 2px solid rgba(var(--color-background, 255, 255, 255)) !important;\\n}\\n</style>\\n</div>{% endraw %}\",\"WIDGET_TYPE_5\":\"{% raw %}<div id=\\\"appstle-widget-template\\\">\\n <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n <div class=\\\"widgetSellingPlanWrapper\\\">\\n{{^showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}/>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n {{{oneTimePuchaseText}}}\\n </label>\\n \\n </div>\\n{{/requires_selling_plan}}\\n{{/showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}} />\\n <label for=\\\"{{sellingPlanId}}\\\">\\n {{{name}}}\\n </label>\\n \\n </div>\\n {{/sellingPlanVariants}}\\n{{#showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}/>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n {{{oneTimePuchaseText}}}\\n </label>\\n \\n </div>\\n{{/requires_selling_plan}}\\n{{/showSubOptionBeforeOneTime}}\\n </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\">{{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n <path\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8
2121635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n ></path>\\n </svg>\\n <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n </div>\\n<div class=\\\"appstle_tooltip appstle_tooltip_hover\\\">\\n <div class=\\\"appstle_tooltip_content\\\">\\n {{{toolTipDescription}}}\\n </div>\\n {{#showAppstleLink}}\\n <div class=\\\"appstle_tooltip_appstle\\\">\\n <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n POWERED BY APPSTLE\\n </a>\\n </div>\\n {{/showAppstleLink}}\\n </div>\\n{{/showTooltip}}\\n <style>\\n .widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 8px;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\n margin-top: 10px;\\n }\\n \\n .widgetSellingPlanWrapper input {\\n display: none;\\n }\\n \\n .widgetSellingPlanWrapper label {\\n border-radius: 4px;\\n border: 1px solid rgba(var(--color-foreground));\\n padding: 0.5rem;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\n \\t color: rgba(var(--color-foreground));\\ncursor: pointer;\\n }\\n \\n .widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground));\\n \\t color: rgba(var(--color-background));\\n }\\n .appstle_lowercase {\\n text-transform: lowercase;\\n }\\n \\n \\n .appstle_input_wrapper {\\n position: relative;\\n }\\n \\n span.appstle_sellingPlan_discountText {\\n position: absolute;\\n background-color: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border-radius: 3px;\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n }\\n span.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n }\\n </style>\\n </div>{% endraw %}\"}", 2122 2123 2124 "bundle": {}, 2125 2126 2127 "labels": `{\"appstle.subscription.wg.addToShipmentErrorTextV2\":\"Error\",\"appstle.subscription.wg.weeksFrequencyTextV2\":\"Weeks\",\"appstle.subscription.wg.weeklyLabelTextV2\":\"Weekly\",\"appstle.subscription.wg.displayAddToExistingSubscriptionButtonForNotLoggedInV2\":\"false\",\"appstle.subscription.wg.addToShipmentProcessingV2\":\"Processing...\",\"appstle.subscription.wg.deliveryEveryFrequencyTextV2\":\"Delivery Every\",\"appstle.subscription.wg.subscribeAndSaveInitalV2\":\"Subscribe & save\",\"appstle.subscription.wg.allowRefreshOnCartPageV2\":\"false\",\"appstle.subscription.wg.prepaidLabelTextV2\":\"Prepaid\",\"appstle.subscription.wg.daysFrequencyTextV2\":\"Days\",\"appstle.subscription.wg.monthlyLabelTextV2\":\"Monthly\",\"appstle.subscription.wg.subscribeAndSaveSuccessV2\":\"Subscribe success\",\"appstle.subscription.wg.addToShipmentSuccessTextV2\":\"Success\",\"appstle.subscription.wg.monthFrequencyTextV2\":\"Month\",\"appstle.subscription.wg.addToShipmentButtonTextV2\":\"Add to Shipment\",\"appstle.subscription.wg.displayAddToExistingSubscriptionButtonToSubscribersOnlyV2\":\"false\",\"appstle.subscription.wg.yearsFrequencyTextV2\":\"Years\",\"appstle.subscription.wg.addToShipmentTooltipTextV2\":\"Please avoid double delivery charges! Login to add this product to an upcoming delivery.\",\"appstle.subscription.wg.weekFrequencyTextV2\":\"Week\",\"appstle.subscription.wg.oneTimePurchaseTextV2\":\"One Time Purchase\",\"appstle.subscription.wg.loyaltyPerkDescriptionTextV2\":\"{{#isDiscountTypeFreeProduct}}<div style='display: flex;'><div style='height: 60px; width: 60px; flex-shrink: 0; margin-right: 10px;'><img style='width: 100%' src={{{featured_image}}}><\/img><\/div><div>After {{{billingCycleBlock}}} orders,<span style='color: #ffc000;font-weight: 700;';> get a FREE {{freeProductName}} <\/span><\/div><div>{{\/isDiscountTypeFreeProduct}}{{#isDiscountTypePercentage}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>
2127get <span style='color: #ffc000;font-weight: 700;';>{{{discount}}}% OFF your entire order<\/span><\/span>.{{\/isDiscountTypePercentage}}{{#isDiscountTypeShipping}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>shipping at {{{formatDiscountedPrice}}}<\/span><\/span>.{{\/isDiscountTypeShipping}}{{#isDiscountTypeFixed}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>{{{formatDiscountedPrice}}} OFF your entire order<\/span><\/span>.{{\/isDiscountTypeFixed}}\",\"appstle.subscription.wg.unsubscribeFrequencyTextV2\":\"unsubscribe\",\"appstle.subscription.wg.oneTimeFrequencyTextV2\":\"One Time\",\"appstle.subscription.wg.dayFrequencyTextV2\":\"day\",\"appstle.subscription.wg.allowFulfilmentCountViaPropertiesV2\":\"false\",\"appstle.subscription.wg.monthsFrequencyTextV2\":\"Months\",\"appstle.subscription.wg.prepaidSaveBadgeTextV2\":\"SAVE {{selectedDiscountPercentage}}\",\"appstle.subscription.wg.showPrepidPerDeliveryProductPriceV2\":\"false\",\"appstle.subscription.wg.manageSubscriptionButtonTextV2\":\"Manage Subscription\",\"appstle.subscription.wg.offFrequencyTextV2\":\"Off\",\"appstle.subscription.wg.yearFrequencyTextV2\":\"Year\",\"appstle.subscription.wg.prepayLabelTextV2\":\"Prepay\",\"appstle.subscription.wg.frequencyCombinedWidgetTextV2\":\"Frequency\",\"appstle.subscription.wg.showNewLoyaltyUI\":\"false\",\"appstle.subscription.wg.sellingPlanTitleTextNonPrepaid\":\"{{sellingPlanName}}\",\"appstle.subscription.wg.selectDeliverOptionV2\":\"select deliver option\",\"appstle.subscription.wg.yearlyLabelTextV2\":\"Yearly\"}`, 2128 2129 "css": { 2130 "appstle_subscription_widget": { 2131 "margin-top": "" , 2132 "margin-bottom": "", 2133 }, 2134 2135 "appstle_subscription_wrapper": { 2136 "border-width": "", 2137 "border-color": "", 2138 }, 2139 2140 "appstle_circle": { 2141 "border-color": "", 2142 }, 2143 2144 "appstle_dot": { 2145 "background-color": "", 2146 }, 2147 2148 "appstle_select": { 2149 "padding-top": "", 2150 "padding-bottom": "", 2151 "padding-left": "", 2152 "padding-right": "", 2153 "border-width": "", 2154 "border-style": "", 2155 "border-color": "", 2156 "border-radius": "", 2157 }, 2158 2159 "tooltip_subscription_svg": { 2160 "fill": "", 2161 }, 2162 2163 "appstle_tooltip": { 2164 "color": "", 2165 "background-color": "", 2166 }, 2167 2168 "appstle_tooltip_border_top_color": { 2169 "border-top-color": "", 2170 }, 2171 2172 "appstle_subscription_final_price": { 2173 "color": "", 2174 }, 2175 "appstle_widget_text_color": { 2176 "color": "", 2177 }, 2178 "appstle_selected_background": { 2179 "background": "transparent", 2180 }, 2181 "elementCSS": "[]", 2182 "customCSS": "", 2183 "customerPortalCss": "", 2184 "externalStyleTag": "", 2185 "themeCss": "", 2186 } 2187 }; 2188 2189 2190 window.AppstleSubscription = window.AppstleSubscription || JSON.parse(JSON.stringify(RS)); 2191 2192 sessionStorage['appstleSubscriptionConfig'] = JSON.stringify(RS.Config); 2193 2194 2195 try { 2196 2197 window.appstle_build_a_box_labels = {"perDeliveryLabelTextV2":"\\/delivery","variantNotAvailable":"Not Available","saveDiscountText":"{{discount}}","bundleSummaryTextV2":"Your bundle is empty. Please add products to your bundles to see bundle summary here.","freeProductLabelTextV2":"Free","bundleDescriptionTextV2":"Our bundle of all bundles, The Ultimate Superfood Bundle delivers exactly what it promises - a complete superfood solution. With 7 superfood blends each created to empower every aspect of your health and wellbeing - from immunity and gut health to energy & better focus.","productDetails":"Product Details","failedToAddMsgText":"Your cart can't have more than {{maxProduct}}
2197 products","cart":"Cart","reviewBundleTextV2":"Review Bundle","addButtonText":"Add","minimumQuantityToCheckoutV2":"Minimum {{quantity}} quantity to checkout","buildBoxErrormsgV2":"Build a Box token is Invalid, Please reach out to support.","continueShopping":"Continue Shopping","failedToAddTitleText":"Failed to add","spendAmountGetDiscount":"Spend {{amount}} get {{percent}}% discount","maxiumQuantityToCheckoutV2":"Maxium {{quantity}} quantity to checkout","contentsOnModalTextV2":"Contents","nextStepButtonTextV2":"Next Step","choosePlanLifeStyleTextV2":"Choose a plan to match your lifestyle","selectMinimumProductButtonText":"Please select {{minProduct}} minimum product","subtotal":"Subtotal","buyQuantityGetDiscount":"Buy {{quantity}} get {{percent}}% discount","loyaltyTablePercentageTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>{{discount}}% off<\\/span><\\/span>.","loyaltyTablePriceTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get at <span class='appstle-loyalty-discount-amount'>{{price}}<\\/span><\\/span>.","myDeliveryText":"My {{selectedSellingPlanDisplayName}} delivery","removeItem":"Remove","productsToProceedText":"Please select products to proceed","previousStepButtonTextV2":"Previous step","loadMoreTextV2":"Load more","selectedFrequencyLabelText":"Selected Frequency","addToCartButtonTextV2":"Add To Cart ","basePriceFormatFieldV2":"{{unitPrice}}\\/{{quantityUnit}}","title":"Build a Box","productPriceFormatField":"{{price}}","reviewOrdeDescriptionTextV2":"Check your items and select your required frequency plan","quantityLabelV2":"Quantity","subscriptionNotAvailableButtonV2":"Subscription not available","shoppingCart":"Shopping Cart","checkoutMessage":"Shipping and taxes calculated at checkout.","discountPopupCheckoutMessageV2":"Discount","selectedButtonTextV2":"Selected","congratsMessageText":null,"okBtnText":"Ok","tieredDiscount":"Tiered Discount","choosePlanLifeStyleDescriptionTextV2":"Cutoff each week to amend your meals is midnight on Thursday's. (Delivery Schedule is as follows: Gold Coast - Mondays | Brisbane & Sunshine Coast - Wednesdays)","orderNoteLabelTextV2":"Order Note","minimumToCheckoutV2":"Minimum {{quantity}} to checkout","loyaltyTableFixedTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>{{price}} off<\\/span><\\/span>.","editQuantity":"Edit Quantity","itemsText":null,"chooseProductsTextV2":"Choose Products","loyaltyTableFreeProductTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>FREE PRODUCT ({{productName}})<\\/span><\\/span>.","loyaltyTableShippingTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>shipping at {{price}}<\\/span><\\/span>.","spentText":null,"quantityLabel":null,"addButtonV2":"Add","loyaltyTableFreeTrailTextV2":"Get <span class='appstle-loyalty-free-trial-discount'>{{discount}} <span class='appstle-loyalty-free-trial-discount-count' style='text-transform: lowercase;'>{{discountType}} <\\/span><\\/span> <span class='appstle-loyalty-free-trial-text'>free trial.<\\/span>","bundleCheckoutTextV2":"Checkout","reviewOrderTextV2":"Review Order","goBackButtonText":"Go Back","selectPlanTextV2":"Select Plan","viewProduct":"View Product","oneTimePurchaseTextV2":"One Time Purchase","bundleOnModalTextV2":"Bundle","proceedToCheckoutButtonText":"Proceed to checkout","pleaseWaitLabelTextV2":"Please wait...","typeToSearchPlaceholderTextV2":"Type to search","selectedProgressLabelTextV2":"Selected","outOfStockTextV2":"Out of stock"}; 2198 2199 } catch (e) { 2200 console.error("Error parsing build a box labels:", e); 2201 } 2202 2203 2204 var _RSConfig = _RSConfig || {}; 2205 2206 _RSConfig.shop = 'good-sleep-co-gc.myshopify.com'; 2207 2208 2209 2210 2211 2212 2213 _RSConfig.shopMoneyFormat = '${{amount}}'; 2214 _RSConfig.shopMoneyFormatWithCurrencyFormat = '${{amount}} AUD'; 2215 2216 2217 2218 2219 } 2220 2221 2222 2223 _RSConfig.assetRev = "f692e2ab9771bd0c6c55e797118551a1"; 2224 2225 2226</script>
2226 2227 2228<style id="appstle-payment-button-override"> 2229 .shopify-payment-button {display: none;} 2230</style>
2231<script> 2232 let appstleCount = 0 2233 function isAppstleJSInitiated() { 2234 appstleCount++; 2235 if (window?.["RSConfig"] || appstleCount > 20) { 2236 let appstleStyleElement = document.querySelector('#appstle-payment-button-override'); 2237 if (appstleStyleElement) { 2238 appstleStyleElement.remove(); 2239 } 2240 } else { 2241 setTimeout(isAppstleJSInitiated, 500) 2242 } 2243 } 2244 isAppstleJSInitiated(); 2245</script>
2245 2246 2247<style> 2248 2249</style>
2250<script> 2251 function pollAppstleInit() { 2252 if (window?.appstleInit) { 2253 window?.appstleInit() 2254 } else { 2255 setTimeout(pollAppstleInit, 30); 2256 } 2257 } 2258</script>
2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276
2276<script src="https://subscription-admin.appstle.com/assets/js/appstle-subscription.min.js?shop=good-sleep-co-gc.myshopify.com&v=1785489929499" defer ></script>
2276 2277 2278 2279 2280 2281 2282 2283 2284 2285</div><div id="shopify-block-AM05QbkZpaG5MWU93V__18228966181090706294" class="shopify-block shopify-app-block"> 2286 2287 2288
2288<script type="module" src="https://cdn.shopify.com/extensions/01a0ec21-7369-78a6-b9c0-c07227d664ec/lb-upsell-451/assets/lb-upsell.js" defer="defer"></script>
2288 2289
2289<script type="module" src="https://cdn.shopify.com/extensions/01a0ec21-7369-78a6-b9c0-c07227d664ec/lb-upsell-451/assets/lb-upsell-components.esm.js" defer="defer"></script>
2289 2290 2291 2292
2293<script> 2294 2295 2296 2297</script>
2297 2298
2299<script> 2300 2301 window.lbInitMode = "immediate"; 2302 2303 window.lbComponentSrc = "https://cdn.shopify.com/extensions/01a0ec21-7369-78a6-b9c0-c07227d664ec/lb-upsell-451/assets/lb-upsell-components.esm.js";</script>
2303 2304
2305<script type="text/javascript" src="https://cdn.shopify.com/extensions/01a0ec21-7369-78a6-b9c0-c07227d664ec/lb-upsell-451/assets/lb-utils.js" defer="defer"></script>
2305 2306 2307</div><div id="shopify-block-ANExPbHMzYjJyMXg2Z__17646240911419608881" class="shopify-block shopify-app-block ngr-embed-block">
2308<script src="https://cdn.shopify.com/extensions/019fa68b-5014-74a6-b414-02bbdcfce20d/xapps-geo-345/assets/countries-data.js"></script>
2308<!-- BEGIN app snippet: autoredirects -->
2309<script> 2310 function ngrSetCookie(name, value, days) { 2311 var expires = ""; 2312 if (days) { 2313 var date = new Date(); 2314 date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); 2315 expires = "; expires=" + date.toUTCString(); 2316 } 2317 document.cookie = name + "=" + (encodeURIComponent(value) || "") + expires + "; path=/"; 2318 } 2319 function ngrGetCookie(name) { 2320 var nameEQ = name + "="; 2321 var cookies = document.cookie.split(';'); 2322 for (var i = 0; i < cookies.length; i++) { 2323 var cookie = cookies[i].trim(); 2324 if (cookie.indexOf(nameEQ) === 0) { 2325 return decodeURIComponent(cookie.substring(nameEQ.length, cookie.length)); 2326 } 2327 } 2328 return null; 2329 } 2330 function ngrDeleteCookie(name) { 2331 document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;'; 2332 } 2333 function ngrAutoRun(){ 2334 const STORE_PLAN = "Pro plan"; 2335 const NGR_REDIRECTED = "ngr-redirected" 2336 const LOGGER_NAME = "[NGRP APP]:"; 2337 const NGR_SESSION_NAME = "ngr-session"; 2338 const NGR_AUTORD_NAME = "ngr-auto"; 2339 const ENABLE_DEV_MODE_PARAM = "xgeo-off"; 2340 const DISABLE_DEV_MODE_PARAM = "xgeo-reset"; 2341 const NGR_TEST_PARAM = "ngr-test"; 2342 const NGR_TEST_HASH = "#" + NGR_TEST_PARAM; 2343 const HOST = "https://xapps-geo-ca956fdeab0c.herokuapp.com"; 2344 const AUTO_ONCE_TYPE = "session"; 2345 const AUTO_ONCE = false; 2346 const ROOT_URL = "/"; 2347 const userAgents = { 2348 mobile: 'Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36', 2349 desktop: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 2350 }; 2351 let isBot = false; 2352 if(window.location.search.includes(ENABLE_DEV_MODE_PARAM)){ 2353 ngrSetCookie(ENABLE_DEV_MODE_PARAM, 1, 7); 2354 } 2355 if(window.location.search.includes(DISABLE_DEV_MODE_PARAM)){ 2356 ngrDeleteCookie(ENABLE_DEV_MODE_PARAM); 2357 } 2358 2359 const isPreviewMode = ngrGetCookie(ENABLE_DEV_MODE_PARAM); 2360 if(navigator && navigator.userAgent){ 2361 isBot = /bot|adsbot|googlebot|crawler|spider|robot|crawling|slurp/i.test(navigator.userAgent); 2362 if(navigator.userAgent === userAgents.mobile || navigator.userAgent === userAgents.desktop){ 2363 isBot = true; 2364 } 2365 } 2366 2367 if(!isPreviewMode && !window.location?.host?.includes(".shopifypreview.com") && !isBot && !window.Shopify.designMode && !(window.location.search.includes(NGR_TEST_PARAM) || window.location.hash === NGR_TEST_HASH)){ 2368 2369 try{ 2370 ngrInitialize() 2371 }catch(e){ 2372 console.error(`${LOGGER_NAME} GEO location issue. `, e) 2373 } 2374 async function ngrInitialize(){ 2375 const ngrCurrentGeo = await ngrGeoRequest(); 2376 const ngrAutoRedirects = [{"id":"gid:\/\/shopify\/Metafield\/26630627917963","location":["US"],"except_r":false,"block":false,"url":"https:\/\/provider.goodsleepco.health\/usa-landing-page\/","domain_redirection":false,"status":false,"order_r":1}]; 2377 if(!ngrAutoRedirects || !ngrAutoRedirects?.length) return; 2378 if(window.Shopify.designMode || window.location.search.includes(NGR_TEST_PARAM) || window.location.hash === NGR_TEST_HASH){ 2379 return; 2380 } 2381 const suitableRedirects = ngrAutoRedirects.filter(item => item.status).sort((a, b) => a.order_r - b.order_r); 2382 for (let index = 0; index < suitableRedirects.length; index++) { 2383 const item = suitableRedirects[index]; 2384 let itemStringUrl = item.url ? item.url.replace(/\/$/, '') : ''; 2385 let itemUrl = null; 2386 2387 if (!item.block && (!itemStringUrl || typeof itemStringUrl !== 'string')) continue; 2388 2389 if (!item.block) { 2390 try { 2391 itemUrl = new URL(item.url.replace(/\/$/, '')); 2392 } catch (e) { 2393 console.warn(`${LOGGER_NAME} Invalid URL encountered: "${item.url}". Error:`, e); 2394 continue; 2395 } 2396 } 2397 2398 let domainRedirectUrl = ''; 2399 const currentParams = new URLSearchParams(removePreviewThemeId(window.location.search)); 2400 if(itemUrl) { 2401 const existingParams = new URLSearchParams(itemUrl.search);
2402 for (const [key, value] of currentParams.entries()) { 2403 existingParams.set(key, value); 2404 } 2405 itemUrl.search = existingParams.toString(); 2406 const basePath = (itemUrl.pathname && itemUrl.pathname !== '/') 2407 ? itemUrl.pathname.replace(/\/$/, '') 2408 : ''; 2409 const currentPath = window.location.pathname.replace(/^\/+/, ''); 2410 let combinedPath = joinPathsAvoidDuplicate(basePath, currentPath); 2411 if (!combinedPath.startsWith('/')) { 2412 combinedPath = '/' + combinedPath; 2413 } 2414 domainRedirectUrl = itemUrl.origin + combinedPath + (itemUrl.search ? itemUrl.search : '') + window.location.hash; 2415 } 2416 const locationIncludes = item.location.includes(ngrCurrentGeo.country) || item.location.includes("C:" + ngrCurrentGeo.continent) 2417 const customCodeString = ` 2418function pattern(redirectUrl, currentUrl, geolocation, forceRedirect) { 2419 let newUrl = ; 2420 // your logic 2421 // force redirection logic: 2422 // if(gelocation.country === CA){ 2423 // return forceRedirect(https://your-url.com) 2424 // } 2425 return newUrl; 2426} 2427`; 2428 2429 if(item.block && (!item.except_r && locationIncludes || item.except_r && !locationIncludes)){ 2430 blockUser(); 2431 return 2432 } 2433 if(!item.block && item.domain_redirection && (!item.except_r && locationIncludes || item.except_r && !locationIncludes)){ 2434 redirectUser(domainRedirectUrl, itemStringUrl) 2435 return 2436 } 2437 if(!item.block && !item.domain_redirection && (!item.except_r && locationIncludes || item.except_r && !locationIncludes)){ 2438 redirectUser(itemStringUrl) 2439 return 2440 } 2441 } 2442 } 2443 function redirectUser(redirectUrl, orignalUrl){ 2444 if (window.location.hostname === 'thejunkdesign.com') { 2445 if (!window.ngrRedirectCountTheJunkDesign) { 2446 window.ngrRedirectCountTheJunkDesign = 0; 2447 } 2448 window.ngrRedirectCountTheJunkDesign++; 2449 if (window.ngrRedirectCountTheJunkDesign > 3) { 2450 return; 2451 } 2452 const currentUrl = window.location.href.split('?')[0]; 2453 const targetUrl = redirectUrl.split('?')[0]; 2454 if (currentUrl === targetUrl) { 2455 return; 2456 } 2457 try { 2458 const redirectUrlObj = new URL(redirectUrl); 2459 if (redirectUrlObj.hostname === window.location.hostname && 2460 redirectUrlObj.pathname === window.location.pathname) { 2461 return; 2462 } 2463 } catch (e) {} 2464 } 2465 if(checkRedirectOnce() || window.location.search.includes(NGR_REDIRECTED)){ 2466 return; 2467 } 2468 let generatedUrl; 2469 try { 2470 generatedUrl = orignalUrl && new URL(orignalUrl); 2471 } catch (e) { 2472 console.warn(`${LOGGER_NAME} Invalid original URL encountered: "${orignalUrl}". Error:`, e); 2473 generatedUrl = null; 2474 } 2475 if(!generatedUrl){ 2476 const redirectUrlObj = new URL(redirectUrl, window.location.origin); 2477 if (window.location.search) { 2478 const currentSearchParams = new URLSearchParams(window.location.search); 2479 currentSearchParams.forEach((value, key) => { 2480 if (!redirectUrlObj.searchParams.has(key)) { 2481 redirectUrlObj.searchParams.append(key, value); 2482 } 2483 }); 2484 } 2485 redirectUrl = redirectUrlObj.toString(); 2486 } 2487 const equalHost = window.location.host === generatedUrl?.host; 2488 const checkCondition = equalHost ? !window.location.href.includes(orignalUrl) : true; 2489 const locationHref = window.location.href.replace(/\/$/, ''); 2490 2491 if(locationHref !== redirectUrl && checkCondition){ 2492 track();setRedirectOnce(); 2493 2494 if (window.location.hostname === 'thejunkdesign.com') { 2495 const referrer = document.referrer; 2496 const hasInstagramReferrer = referrer.includes('instagram.com'); 2497 const hasFacebookReferrer = referrer.includes('facebook.com') || referrer.includes('fb.com'); 2498 const hasFbclid = window.location.search.includes('fbclid'); 2499 const hasIgshid = window.location.search.includes('igshid'); 2500 if (hasInstagramReferrer || hasFacebookReferrer || hasFbclid || hasIgshid) { 2501 setTimeout(() => { 2502 window.location.replace(footprint(redirectUrl)); 2503 }, 1000); 2504 return; 2505 } 2506 } 2507 2508 return window.location.replace(footprint(redirectUrl)); 2509 } 2510 }
2511 function footprint(urlString){ 2512 const url = new URL(urlString); 2513 url.searchParams.append(NGR_REDIRECTED, 1); 2514 return url.toString(); 2515 } 2516 function blockUser(){ 2517 track(); 2518 window.location.replace("about:blank"); 2519 } 2520 function track() { 2521 try{ 2522 const dataEndpoint = `${HOST}/api/analytics/auto?shop=${window?.Shopify?.shop}`; 2523 fetch(dataEndpoint) 2524 return; 2525 }catch(e){} 2526 } 2527 function removePreviewThemeId(search) { 2528 return search.replace( 2529 /([?&])preview_theme_id=\d+(&?)/, 2530 (match, p1, p2) => { 2531 return p1 === "?" && p2 ? "?" : p1; 2532 } 2533 ); 2534 } 2535 function setRedirectOnce(){ 2536 if(!AUTO_ONCE) return; 2537 if(AUTO_ONCE_TYPE === "session"){ 2538 sessionStorage.setItem(NGR_AUTORD_NAME, 1); 2539 return 2540 } 2541 if(AUTO_ONCE_TYPE === "cookies"){ 2542 ngrSetCookie(NGR_AUTORD_NAME, 1, 7) 2543 return 2544 } 2545 } 2546 function checkRedirectOnce(){ 2547 if(AUTO_ONCE){ 2548 if(AUTO_ONCE_TYPE === "session"){ 2549 return sessionStorage?.getItem(NGR_AUTORD_NAME) ? true : false 2550 } 2551 if(AUTO_ONCE_TYPE === "cookies"){ 2552 return ngrGetCookie(NGR_AUTORD_NAME) ? true : false 2553 } 2554 return false 2555 } 2556 return false 2557 } 2558 async function ngrGeoRequest(){ 2559 const savedUserData = ngrGetCookie(NGR_SESSION_NAME); 2560 if (savedUserData && isJsonParsable(savedUserData) && !window.location.search.includes(NGR_TEST_PARAM) && window.location.hash !== NGR_TEST_HASH) { 2561 return JSON.parse(savedUserData) 2562 } 2563 try{ 2564 const countries = window.ngr_countries_window 2565 const userGeo = await fetch("/browsing_context_suggestions.json").then( 2566 (resp) => resp.json() 2567 ); 2568 if (!countries || !userGeo) 2569 return console.error( 2570 `${LOGGER_NAME} User GEO location or countries list not detected. Contact app support please.` 2571 ); 2572 const userCountry = userGeo?.detected_values?.country?.handle; 2573 const userLocation = { 2574 country_name: userGeo?.detected_values?.country?.name || userGeo?.detected_values?.country_name || countries[userCountry]?.name, 2575 country: userCountry, 2576 continent: countries[userCountry]?.continent, 2577 }; 2578 ngrSetCookie(NGR_SESSION_NAME, JSON.stringify(userLocation), 7); 2579 window[NGR_SESSION_NAME] = userLocation 2580 return userLocation; 2581 }catch(e){ 2582 console.error(`${LOGGER_NAME} GEO location issue. `, e) 2583 } 2584 } 2585 function isJsonParsable(input){try{JSON.parse(input);return true}catch(e){return false}} 2586 function joinPathsAvoidDuplicate(basePath, currentPath) { 2587 basePath = basePath.replace(/\/$/, ''); 2588 currentPath = currentPath.replace(/^\/+/, ''); 2589 if (currentPath.toLowerCase().startsWith(basePath.replace(/^\/+/, '').toLowerCase() + '/')) { 2590 return '/' + currentPath; 2591 } 2592 if (currentPath.toLowerCase() === basePath.replace(/^\/+/, '').toLowerCase()) { 2593 return '/' + currentPath; 2594 } 2595 if (basePath && currentPath) { 2596 return basePath + '/' + currentPath; 2597 } else if (basePath) { 2598 return basePath; 2599 } else { 2600 return '/' + currentPath; 2601 } 2602 } 2603 2604 } 2605 } 2606 ngrAutoRun() 2607</script>
2607 2608 2609<!-- END app snippet --><!-- BEGIN app snippet: widget --><ngr-app 2610 style="display: none" 2611 data-markets="false" 2612 data-menu-icon="" 2613 data-lng="en" 2614 data-shopify-template="page" 2615 data-shopify-template-dir="" 2616 data-flag-src="//cdn.shopify.com/static/images/flags/au.svg?width=100" 2617 data-custom-opener-icon-src="" 2618 data-widget-icon="https://cdn.shopify.com/extensions/019fa68b-5014-74a6-b414-02bbdcfce20d/xapps-geo-345/assets/earth-americas-solid.svg" 2619 data-widget-sticky-icon="https://cdn.shopify.com/extensions/019fa68b-5014-74a6-b414-02bbdcfce20d/xapps-geo-345/assets/sticky-logo.png" 2620 data-test-mode="false" 2621 ><template id="NGR-Redirects-Template"> 2622 <div class="ngr-modal" data-ngr-modal> 2623 <div role="dialog" aria-label="" aria-modal="true" class="ngr-modal__content" tabindex="-1" data-ngr-modal-content> 2624 <button class="ngr-modal__close" type="button" aria-label="Close" data-ngr-close>â</button> 2625 <div data-ngr-redirects></div> 2626 </div> 2627 </div> 2628 </template> 2629 </ngr-app><!-- END app snippet --> 2630 2631</div>
2631<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
2631 2632</body> 2633</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.