1<!doctype html> 2<html class="no-js js-loading" lang="en"> 3 <head> 4 5 <meta charset="utf-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width,initial-scale=1"> 8 <link rel="canonical" href="https://sidekicktool.com/pages/contact-us"> 9 <link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 10 11 12 13 <!-- snippets/theme-layout-title-description.liquid --> 14 15 16 17 18 19 20 21 22<title> 23 Contact us 24 – Sidekick</title> 25 26<meta name="description" content="Discover effective injury recovery tools and muscle scraping techniques for pain relief. Explore trusted methods to accelerate healing and enhance recovery."> 27 28 29 30 31 <!-- snippets/theme-meta-tags.liquid --> 32 33 34 35 36<meta property="og:site_name" content="Sidekick"> 37<meta property="og:url" content="https://sidekicktool.com/pages/contact-us"> 38<meta property="og:title" content="Contact us"> 39<meta property="og:type" content="website"> 40<meta property="og:description" content="Discover effective injury recovery tools and muscle scraping techniques for pain relief. Explore trusted methods to accelerate healing and enhance recovery."> 41<meta name="twitter:card" content="summary_large_image"> 42<meta name="twitter:title" content="Contact us"> 43<meta name="twitter:description" content="Discover effective injury recovery tools and muscle scraping techniques for pain relief. Explore trusted methods to accelerate healing and enhance recovery."><meta name="theme-color" content="#EE3932"> 44 45 46<link rel="icon" type="image/png" href="//sidekicktool.com/cdn/shop/files/favicon_new-orange.png?crop=center&height=32&v=1786529689&width=32"> 47 48 <!-- snippets/theme-font-links.liquid --> 49 50 51 52 53 54<link rel="preconnect" href="https://use.typekit.net" crossorigin> 55<link rel="dns-prefetch" href="https://use.typekit.net"> 56 57 58 59<link rel="preload" href="https://use.typekit.net/af/d3af1d/00000000000000003b9b0ef9/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3" as="font" type="font/woff2" crossorigin> 60 61<style> 62/* âââ urw-din (body font) âââ */ 63 64/* 400 â critical, used in body text above the fold */ 65@font-face{font-family:urw-din;src:url(https://use.typekit.net/af/3bd84d/00000000000000003b9b0ee4/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3) format("woff2"),url(https://use.typekit.net/af/3bd84d/00000000000000003b9b0ee4/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3) format("woff");font-display:swap;font-style:normal;font-weight:400} 66 67/* 500 â non-critical */ 68@font-face{font-family:urw-din;src:url(https://use.typekit.net/af/e69b71/00000000000000003b9b0ee6/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n5&v=3) format("woff2"),url(https://use.typekit.net/af/e69b71/00000000000000003b9b0ee6/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n5&v=3) format("woff");font-display:swap;font-style:normal;font-weight:500} 69 70/* 700 â non-critical */ 71@font-face{font-family:urw-din;src:url(https://use.typekit.net/af/359d41/00000000000000003b9b0eea/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3) format("woff2"),url(https://use.typekit.net/af/359d41/00000000000000003b9b0eea/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3) format("woff");font-display:swap;font-style:normal;font-weight:700} 72 73/* 900 â non-critical */ 74@font-face{font-family:urw-din;src:url(https://use.typekit.net/af/cbadfd/00000000000000003b9b0eec/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n9&v=3) format("woff2"),url(https://use.typekit.net/af/cbadfd/00000000000000003b9b0eec/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n9&v=3) format("woff");font-display:swap;font-style:normal;font-weight:900} 75 76/* âââ urw-din-condensed (display/heading font) âââ */ 77 78/* 400 â non-critical */ 79@font-face{font-family:urw-din-condensed;src:url(https://use.typekit.net/af/dc81c6/00000000000000003b9b0ef4/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3) format("woff2"),url(https://use.typekit.net/af/dc81c6/00000000000000003b9b0ef4/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3) format("woff");font-display:swap;font-style:normal;font-weight:400} 80 81/* 700 â CRITICAL, used in hero headings (LCP element). Preloaded above. */ 82@font-face{font-family:urw-din-condensed;src:url(https://use.typekit.net/af/d3af1d/00000000000000003b9b0ef9/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3) format("woff2"),url(https://use.typekit.net/af/d3af1d/00000000000000003b9b0ef9/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3) format("woff");font-display:swap;font-style:normal;font-weight:700} 83 84/* 900 â non-critical */ 85@font-face{font-family:urw-din-condensed;src:url(https://use.typekit.net/af/a284cd/00000000000000003b9b0efc/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n9&v=3) format("woff2"),url(https://use.typekit.net/af/a284cd/00000000000000003b9b0efc/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n9&v=3) format("woff");font-display:swap;font-style:normal;font-weight:900} 86 87/* âââ urw-din-semi-condensed âââ */ 88 89/* 400 â non-critical */ 90@font-face{font-family:urw-din-semi-condensed;src:url(https://use.typekit.net/af/d1b9a7/00000000000000003b9b0f03/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3) format("woff2"),url(https://use.typekit.net/af/d1b9a7/00000000000000003b9b0f03/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3) format("woff");font-display:swap;font-style:normal;font-weight:400} 91 92/* 700 â non-critical */ 93@font-face{font-family:urw-din-semi-condensed;src:url(https://use.typekit.net/af/b6a996/00000000000000003b9b0f09/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3) format("woff2"),url(https://use.typekit.net/af/b6a996/00000000000000003b9b0f09/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3) format("woff");font-display:swap;font-style:normal;font-weight:700} 94 95/* âââ Local font files âââ */ 96 97@font-face { font-family: URWDIN-Light; src: url("//sidekicktool.com/cdn/shop/files/URWDIN-Light.woff2?v=16086029203970517612") format("woff2"); font-display: swap; } 98@font-face { font-family: "Urwdincond V 2"; src: url("//sidekicktool.com/cdn/shop/files/URWDINCond-Regular-v2.woff?v=589059435661361902") format("woff"); font-display: swap; } 99</style> 100 101 102 103 <!-- snippets/theme-main-assets.liquid --> 104 105 106 107 108 109<link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/main.min.css?v=23132843076901896171789577397" onload="document.documentElement.classList.remove('js-loading');"> 110<noscript><link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/main.min.css?v=23132843076901896171789577397"></noscript> 111 112 113 114<link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/theme.css?v=88434983405424094801783712690"> 115 116 117 118<link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/fm-slider-index.min.css?v=92415946355931236641776725828" media="print" onload="this.media='all';"> 119 120 121
122<script> 123 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 124</script>
124 125 126 127
128<script src="//sidekicktool.com/cdn/shop/t/109/assets/main.min.js?v=35025599267178266681773849046" defer="defer" crossorigin="anonymous"></script>
128 129 130 131 132 133 134 135 136 <!-- snippets/theme-template-specific-assets.liquid --> 137 138 139 140 141 142 143 144 145 146 147 148 149 <!-- begin content_for_header --> 150
150<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
150<meta name="google-site-verification" content="RZV2O7lXQAOq_uoJE3O2YRALQFqExdHqiAmyrmkxcAQ"> 151<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/17237793/digital_wallets/dialog"> 152<meta id="in-context-paypal-metadata" data-shop-id="17237793" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 153<link rel="alternate" hreflang="x-default" href="https://sidekicktool.com/pages/contact-us"> 154<link rel="alternate" hreflang="en" href="https://sidekicktool.com/pages/contact-us"> 155<link rel="alternate" hreflang="en-CA" href="https://sidekicktool.com/en-ca/pages/contact-us"> 156<link rel="alternate" hreflang="en-GB" href="https://sidekicktool.com/en-gb/pages/contact-us"> 157<link rel="alternate" hreflang="en-AU" href="https://sidekicktool.com/en-au/pages/contact-us">
158<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=385646679"></script>
158 159<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
160<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=385646679&shop_id=17237793" crossorigin="anonymous"></script>
vendor: 1 bytes, line 160
160
161<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":17237793,"countryCode":"CA","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/17237793","merchantName":"Sidekick","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","jcb"],"total":{"type":"pending","label":"Sidekick","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 161
161
162<script id="shopify-features" type="application/json">{"accessToken":"500ff36b6c9c33dbe37755ebbaa3833d","betas":["rich-media-storefront-analytics"],"domain":"sidekicktool.com","predictiveSearch":true,"shopId":17237793,"locale":"en"}</script>
vendor: 1 bytes, line 162
162
163<script>var Shopify = Shopify || {}; 164Shopify.shop = "sidekicktools.myshopify.com"; 165Shopify.locale = "en"; 166Shopify.currency = {"active":"USD","rate":"1.0"}; 167Shopify.country = "US"; 168Shopify.theme = {"name":"sidekicktools-shopify-com-2.0\/main","id":138960732247,"schema_name":"Sidekick Tool","schema_version":"1.0.0","theme_store_id":null,"role":"main"}; 169Shopify.theme.handle = "null"; 170Shopify.theme.style = {"id":null,"handle":null}; 171Shopify.cdnHost = "sidekicktool.com/cdn"; 172Shopify.routes = Shopify.routes || {}; 173Shopify.routes.root = "/"; 174Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 175Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 176Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 177Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 177
177
178<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 178
178
179<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 179
179
180<script> 181 window.ShopifyPay = window.ShopifyPay || {}; 182 window.ShopifyPay.apiHost = "shop.app\/pay"; 183 window.ShopifyPay.redirectState = null; 184</script>
vendor: 1 bytes, line 184
184
185<script> 186 window.Shopify = window.Shopify || {}; 187 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 188 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 189 window.Shopify.SignInWithShop.eligible = true; 190</script>
vendor: 1 bytes, line 190
190
191<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 191
191
192<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 192
192
193<script type="module"> 194 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 195 196 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 197 198</script>
vendor: 1 bytes, line 198
198
199<script> 200 window.Shopify = window.Shopify || {}; 201 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 202 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"]}; 203</script>
vendor: 1 bytes, line 203
203
204<script>(function() { 205 var isLoaded = false; 206 function asyncLoad() { 207 if (isLoaded) return; 208 isLoaded = true; 209 var urls = ["https:\/\/storage.googleapis.com\/dynamic_remarketing_scripts\/sidekicktools.myshopify.com\/remarketing.js?shop=sidekicktools.myshopify.com","https:\/\/cdn-bundler.nice-team.net\/app\/js\/bundler.js?shop=sidekicktools.myshopify.com","\/\/cdn.shopify.com\/proxy\/922d691d5990987dddb9941393ff561083c8400e2856a446c1d24942b96c7c29\/s3-us-west-2.amazonaws.com\/jsstore\/a\/2J0HVWRM\/reids.js?shop=sidekicktools.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/cdn.logbase.io\/lb-upsell-wrapper.js?shop=sidekicktools.myshopify.com","\/\/cdn.shopify.com\/proxy\/82d721d5c01acb9df6d50aa8fcd960e0e9d8d16a29dd030cf18feb34ab4906fe\/app.retention.com\/shopify\/shopify_app_add_to_cart_script.js?shop=sidekicktools.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/widgets.automizely.com\/returns\/main.js?shop=sidekicktools.myshopify.com"]; 210 for (var i = 0; i < urls.length; i++) { 211 var s = document.createElement('script'); 212 s.type = 'text/javascript'; 213 s.async = true; 214 s.src = urls[i]; 215 var x = document.getElementsByTagName('script')[0]; 216 x.parentNode.insertBefore(s, x); 217 } 218 }; 219 if(window.attachEvent) { 220 window.attachEvent('onload', asyncLoad); 221 } else { 222 window.addEventListener('load', asyncLoad, false); 223 } 224})();</script>
vendor: 1 bytes, line 224
224
225<script id="__st">var __st={"a":17237793,"offset":-21600,"reqid":"d7b558f3-aa2c-4f62-ae18-7411d1472957-1790252390","pageurl":"sidekicktool.com\/pages\/contact-us","s":"pages-205842307","u":"d8a487cd03f4","p":"page","rtyp":"page","rid":205842307};</script>
vendor: 1 bytes, line 225
225
226<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 226
226
227<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!1)}();</script>
vendor: 1 bytes, line 227
227
228<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//sidekicktool.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 228
228
229<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 = "//sidekicktool.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
229<script crossorigin="anonymous" defer="defer" src="//sidekicktool.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 229
229
230<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 230
230
231<script> 232 window.Shopify = window.Shopify || {}; 233 window.Shopify.MCP = window.Shopify.MCP || {}; 234 window.Shopify.MCP.enabled = true; 235 window.Shopify.MCP.shop = "sidekicktools.myshopify.com"; 236 window.Shopify.MCP.mcpEndpoint = "https:\/\/sidekicktool.com\/api\/mcp"; 237 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"]}}]; 238</script>
vendor: 1 bytes, line 238
238
239<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("\/\/sidekicktool.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 240</script>
vendor: 1 bytes, line 240
240
241<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://sidekicktool.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 242</script>
vendor: 1 bytes, line 242
242
243<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 244 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); 245</script>
vendor: 1 bytes, line 245
245
246<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})}})); 247</script>
247 248<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://sidekicktool.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 249<style id="shopify-accelerated-checkout-cart"> 250 #shopify-buyer-consent { 251 margin-top: 1em; 252 display: inline-block; 253 width: 100%; 254} 255 256#shopify-buyer-consent.hidden { 257 display: none; 258} 259 260#shopify-subscription-policy-button { 261 background: none; 262 border: none; 263 padding: 0; 264 text-decoration: underline; 265 font-size: inherit; 266 cursor: pointer; 267} 268 269#shopify-subscription-policy-button::before { 270 box-shadow: none; 271} 272 273 </style> 274
275<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
275 276 <!-- end content_for_header --> 277 278 279 280
280<script type="text/javascript"> 281 var script = document.createElement('script'); 282 script.src = "https://xp2023-pix.s3.amazonaws.com/px_ToVnW.js"; 283 document.getElementsByTagName('head')[0].appendChild(script); 284 </script>
284 285 286 287 288 <!-- snippets/theme-schema-global.liquid --> 289 290 291 292 293 294 295
296<script type="application/ld+json"> 297 { 298 "@context": "http://schema.org", 299 "@type": "Organization", 300 "name": "Sidekick", 301 302 "logo": { 303 "@type": "ImageObject", 304 "height": 184, 305 "url": "https:\/\/sidekicktool.com\/cdn\/shop\/files\/Primary_Logo_NEW_Orange.png?v=1786529168", 306 "width": 1583 307 }, 308 309 310 "url": "https:\/\/sidekicktool.com\/pages\/contact-us" 311 } 312</script>
312 313 314
314<script type="application/ld+json"> 315 { 316 "@context": "http://schema.org", 317 "@type": "BreadcrumbList", 318 "itemListElement": [ 319 { 320 "@type": "ListItem", 321 "position": 1, 322 "item": "https://sidekicktool.com", 323 "name": "Sidekick" 324 }, 325 { 326 "@type": "ListItem", 327 "position": 2, 328 "item": "https://sidekicktool.com", 329 "name": "Contact us" 330 } 331 ] 332 } 333 </script>
333 334 335 336
337<script> 338 document.addEventListener("DOMContentLoaded", function(event) { 339 const style = document.getElementById('wsg-custom-style'); 340 if (typeof window.isWsgCustomer != "undefined" && isWsgCustomer) { 341 style.innerHTML = ` 342 ${style.innerHTML} 343 /* A friend of hideWsg - this will _show_ only for wsg customers. Add class to an element to use */ 344 .showWsg { 345 display: unset; 346 } 347 /* wholesale only CSS */ 348 .additional-checkout-buttons, .shopify-payment-button { 349 display: none !important; 350 } 351 .wsg-proxy-container select { 352 background-color: 353 ${ 354 document.querySelector('input').style.backgroundColor 355 ? document.querySelector('input').style.backgroundColor 356 : 'white' 357 } !important; 358 } 359 `; 360 } else { 361 style.innerHTML = ` 362 ${style.innerHTML} 363 /* Add CSS rules here for NOT wsg customers - great to hide elements from retail when we can't access the code driving the element */ 364 365 `; 366 } 367 368 if (typeof window.embedButtonBg !== undefined && typeof window.embedButtonText !== undefined && window.embedButtonBg !== window.embedButtonText) { 369 style.innerHTML = ` 370 ${style.innerHTML} 371 .wsg-button-fix { 372 background: ${embedButtonBg} !important; 373 border-color: ${embedButtonBg} !important; 374 color: ${embedButtonText} !important; 375 } 376 `; 377 } 378 379 // ========================= 380 // CUSTOM JS 381 // ========================== 382 if (document.querySelector(".wsg-proxy-container")) { 383 initNodeObserver(wsgCustomJs); 384 } 385 }) 386 387 function wsgCustomJs() { 388 389 // update button classes 390 const button = document.querySelectorAll(".wsg-button-fix"); 391 let buttonClass = "xxButtonClassesHerexx"; 392 buttonClass = buttonClass.split(" "); 393 for (let i = 0; i < button.length; i++) { 394 button[i].classList.add(... buttonClass); 395 } 396 397 // wsgCustomJs window placeholder 398 // update secondary btn color on proxy cart 399 if (document.getElementById("wsg-checkout-one")) { 400 const checkoutButton = document.getElementById("wsg-checkout-one"); 401 let wsgBtnColor = window.getComputedStyle(checkoutButton).backgroundColor; 402 let wsgBtnBackground = "none"; 403 let wsgBtnBorder = "thin solid " + wsgBtnColor; 404 let wsgBtnPadding = window.getComputedStyle(checkoutButton).padding; 405 let spofBtn = document.querySelectorAll(".spof-btn"); 406 for (let i = 0; i < spofBtn.length; i++) { 407 spofBtn[i].style.background = wsgBtnBackground; 408 spofBtn[i].style.color = wsgBtnColor; 409 spofBtn[i].style.border = wsgBtnBorder; 410 spofBtn[i].style.padding = wsgBtnPadding; 411 } 412 } 413 414 // update Quick Order Form label 415 if (typeof window.embedSPOFLabel != "undefined" && embedSPOFLabel) { 416 document.querySelectorAll(".spof-btn").forEach(function(spofBtn) { 417 spofBtn.removeAttribute("data-translation-selector"); 418 spofBtn.innerHTML = embedSPOFLabel; 419 }); 420 } 421 } 422 423 function initNodeObserver(onChangeNodeCallback) { 424 425 // Select the node that will be observed for mutations 426 const targetNode = document.querySelector(".wsg-proxy-container"); 427 428 // Options for the observer (which mutations to observe) 429 const config = { 430 attributes: true, 431 childList: true, 432 subtree: true 433 }; 434 435 // Callback function to execute when mutations are observed 436 const callback = function(mutationsList, observer) { 437 for (const mutation of mutationsList) { 438 if (mutation.type === 'childList') { 439 onChangeNodeCallback(); 440 observer.disconnect(); 441 } 442 } 443 }; 444 445 // Create an observer instance linked to the callback function 446 const observer = new MutationObserver(callback); 447 448 // Start observing the target node for configured mutations 449 observer.observe(targetNode, config); 450 } 451</script>
451 452 453 454<style id="wsg-custom-style"> 455 /* A friend of hideWsg - this will _show_ only for wsg customers. Add class to an element to use */ 456 .showWsg { 457 display: none; 458 } 459 /* Signup/login */ 460 #wsg-signup select, 461 #wsg-signup input, 462 #wsg-signup textarea { 463 height: 46px; 464 border: thin solid #d1d1d1; 465 padding: 6px 10px; 466 } 467 #wsg-signup textarea { 468 min-height: 100px; 469 } 470 .wsg-login-input { 471 height: 46px; 472 border: thin solid #d1d1d1; 473 padding: 6px 10px; 474 } 475 #wsg-signup select { 476 } 477/* Quick Order Form */ 478 .wsg-table td { 479 border: none; 480 min-width: 150px; 481 } 482 .wsg-table tr { 483 border-bottom: thin solid #d1d1d1; 484 border-left: none; 485 } 486 .wsg-table input[type="number"] { 487 border: thin solid #d1d1d1; 488 padding: 5px 15px; 489 min-height: 42px; 490 } 491 #wsg-spof-link a { 492 text-decoration: inherit; 493 color: inherit; 494 } 495 .wsg-proxy-container { 496 margin-top: 0% !important; 497 } 498 @media screen and (max-width:768px){ 499 .wsg-proxy-container .wsg-table input[type="number"] { 500 max-width: 80%; 501 } 502 .wsg-center img { 503 width: 50px !important; 504 } 505 .wsg-variant-price-area { 506 min-width: 70px !important; 507 } 508 } 509 /* Submit button */ 510 #wsg-cart-update{ 511 padding: 8px 10px; 512 min-height: 45px; 513 max-width: 100% !important; 514 } 515 .wsg-table { 516 background: inherit !important; 517 } 518 .wsg-spof-container-main { 519 background: inherit !important; 520 } 521 /* General fixes */ 522 .wsg-hide-prices { 523 opacity: 0; 524 } 525 .wsg-ws-only .button { 526 margin: 0; 527 } 528</style> 529<!-- BEGIN app block: shopify://apps/intelligems-a-b-testing/blocks/intelligems-script/fa83b64c-0c77-4c0c-b4b2-b94b42f5ef19 -->
529<script> 530 window._template = { 531 directory: "", 532 name: "page", 533 suffix: "contact" 534 }; 535 window.__productIdFromTemplate = null; 536 window.__plpCollectionIdFromTemplate = null; 537 window.igProductData = (function() { 538 const data = {};return data; 539 })(); 540</script>
540 541
542<script type="module" blocking="render" fetchpriority="high" src="https://cdn.intelligems.io/esm/e09f51fcfe59/bundle.js" data-em-disable async></script>
542 543 544 545<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core --> 546 547 548 549 550 551 552 553<link rel="dns-prefetch" href="https://cdn.judge.me"> 554<link rel="dns-prefetch" href="https://cdn1.judge.me"> 555<link rel="dns-prefetch" href="https://api.judge.me"> 556
557<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":false,"badge_no_review_text":"Rated 5/5 by verified buyers","badge_n_reviews_text":"Rated 5/5 by verified buyers","badge_star_color":"#f1614b","hide_badge_preview_if_no_reviews":false,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Verified Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
557ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"","widget_rating_filter_color":"","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","widget_star_color":"#f1614b","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":false,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":false,"widget_location_format":"country_iso_code","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":true,"widget_theme":"","review_date_format":"mm/dd/yyyy","default_sort_method":"highest-rating","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"â
Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":true,"featured_carousel_title":"Real reviews from real customers","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":true,"featured_carousel_url":"https://sidekicktool.com/pages/reviews","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":250,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#444346","verified_count_badge_style":"branded","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":false,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":true,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":true,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":false,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":false,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"aligned","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":false,"featured_carousel_verified_badge_color":"#EA6852","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_advanced_speed_features":5,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":true,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":true,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
557itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#444346","widget_enable_secondary_color":true,"widget_secondary_color":"#93DACF","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":false,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":false,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#444346","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":true,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":true,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"external_form","request_store_review_after_product_review":false,"request_review_other_products_in_order":true,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":"#444346","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#444346","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
557youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":true,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":".jdgm-prev-badge__text {\n text-decoration: none !important;\n font-weight: bold;\n margin-left: 2px;\n}\n.jdgm-widget {\n margin-bottom: 0 !important;\n line-height: 1 !important;\n}\n.jdgm-star.jdgm--off:before {\n content: \"\\e000\";\n}","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":true,"transparency_badges_from_another_provider":true,"transparency_badges_collected_from_store_visitor":true,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":true,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":false,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":false,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":true,"review_widget_qna_enabled":false,"review_widget_revamp_dual_publish_end_date":"2026-05-22T10:54:42.000+00:00","review_widget_header_theme":"standard","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"large","review_widget_header_text_weight":"bold","review_widget_average_rating_style":"minimal","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"small","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"small","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"hidden","review_widget_card_section_size":"small","review_widget_star_and_histogram_color":"#F1614B","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#333333","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"square","review_widget_custom_css":".jm-cluster.jm-review-widget-header__summary-section{--cluster-justify:flex-start!important;--cluster-space:var(--jm-space-600)!important;}\n.jm-review-widget-header__title{font-family:var(--font-display);font-size:var(--font-responsive-heading-lg)!important;font-weight:900!important;}\n.jm-cluster.jm-review-widget-header__average-rating-display{--cluster-justify: flex-start!important;}\n.jm-average-rating-display.jm-average-rating-display--clickable .jm-text{font-size:var(--font-static-md)!important;}\n.jm-star-rating__font-icon{color:var(--primary-base)!important;}\n.jm-review-content__title{font-family:'urw-din';}\n.jm-cluster.jm-histogram-row{margin-top:.25rem;}\n.jm-reviewer-avatar__initial{background:var(--neutral-light);}\n.jm-verified-buyer-badge__text{color:white!important;background:var(--neutral-dark);}\n.jm-review-item__pin-icon{background-color:transparent!important;}","review_widget_review_word_singular":"review","review_widget_review_word_plural"
557:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"Weâll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews/stores/sidekicktool.com","branding_text":"Powered by Judge.me","locale":"en","reply_name":"Sidekick","shop_currency":"USD","widget_version":"3.0","footer":true,"autopublish":true,"review_dates":true,"enable_custom_form":false,"shop_use_review_site":true,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":false,"sign_in_with_
557shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"Sidekick"};</script>
557 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #444346;--jdgm-secondary-color: #93DACF;--jdgm-star-color: #f1614b;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #444346;--jdgm-paginate-color: #444346;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #444346}.jdgm-histogram__bar-content{background-color:#444346}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#444346}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-preview-badge .jdgm-star.jdgm-star{color:#f1614b}.jdgm-author-all-initials{display:none !important}.jdgm-author-last-initial{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="product"]{display:none !important}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-review-widget[data-from-snippet="true"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #444346;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#444346}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'Sidekick'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )} 558</style> <style class='jdgm-settings-style'>.jdgm-review-widget .jm-cluster.jm-review-widget-header__summary-section{--cluster-justify:flex-start!important;--cluster-space:var(--jm-space-600)!important}.jdgm-review-widget .jm-review-widget-header__title{font-family:var(--font-display);font-size:var(--font-responsive-heading-lg) !important;font-weight:900 !important}.jdgm-review-widget .jm-cluster.jm-review-widget-header__average-rating-display{--cluster-justify: flex-start!important}.jdgm-review-widget .jm-average-rating-display.jm-average-rating-display--clickable .jm-text{font-size:var(--font-static-md) !important}.jdgm-review-widget .jm-star-rating__font-icon{color:var(--primary-base) !important}.jdgm-review-widget .jm-review-content__title{font-family:'urw-din'}.jdgm-review-widget .jm-cluster.jm-histogram-row{margin-top:.25rem}.jdgm-review-widget .jm-reviewer-avatar__initial{background:var(--neutral-light)}.jdgm-review-widget .jm-verified-buyer-badge__text{color:#fff !important;background:var(--neutral-dark)}.jdgm-review-widget .jm-review-item__pin-icon{background-color:transparent !important}.jdgm-preview-badge .jdgm-prev-badge__text{text-decoration:none !important;font-weight:bold;margin-left:2px}.jdgm-preview-badge .jdgm-widget{margin-bottom:0 !important;line-height:1 !important}.jdgm-preview-badge .jdgm-star.jdgm--off:before{content:"\e000"} 559</style> 560 561 562 563 564 <style class='jdgm-miracle-styles'> 565 @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
565/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-prev-badge{display:block !important} 566 567</style> 568 569 570 571 572 573 574 575 576
577<script data-cfasync='false' class='jdgm-script'> 578!function(e){window.jdgm=window.jdgm||{}; 579/* INF-1976 */ 580var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}(); 581if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;} 582jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/", 583jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 584setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){ 585!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 586(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!", 587a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))}, 588jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest; 589t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))}, 590t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll( 591".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 592parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"): 593jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css") 594)}))}(document); 595</script>
595 596<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/shopify_v2.css"></noscript> 597 598<!-- BEGIN app snippet: theme_fix_tags -->
598<script> 599 (function() { 600 var jdgmThemeFixes = {"121928679511":{"html":"","css":".jdgm-prev-badge__text{\n vertical-align: -0.08em !important;\n}\n .product-title .jdgm-prev-badge[data-number-of-reviews=\"1\"] .jdgm-prev-badge__text::after {\n content: \" review\";\n}\n .product-title .jdgm-prev-badge__text::after {\n content: \" reviews\";\n}","js":""},"126737743959":{"html":"","css":"","js":"\/* setTimeout(() =\u003e {\n if (document.querySelector('body').classList.contains('template-collection')) {\n jdgmSettings.badge_n_reviews_text = '{{ n }}';\n setTimeout(() =\u003e {\n document.querySelectorAll(\".jdgm-prev-badge__text\").forEach((el) =\u003e {\n el.setAttribute('style', 'display: inline !important;');\n });\n }, 800)\n }\n}, 1300);"}}; 601 if (!jdgmThemeFixes) return; 602 603 // "All themes" fix: CSS and JS applied on every theme. CSS is injected 604 // before the per-theme fix so the theme-specific CSS wins the cascade. 605 // HTML is never applied globally (too risky). 606 var allThemesFix = jdgmThemeFixes['all']; 607 if (allThemesFix && allThemesFix.css) { 608 var allStyleTag = document.createElement('style'); 609 allStyleTag.classList.add('jdgm-theme-fix-style-all'); 610 allStyleTag.innerHTML = allThemesFix.css; 611 document.head.append(allStyleTag); 612 }; 613 614 if (allThemesFix && allThemesFix.js) { 615 var allScriptTag = document.createElement('script'); 616 allScriptTag.classList.add('jdgm-theme-fix-script-all'); 617 allScriptTag.innerHTML = allThemesFix.js; 618 document.head.append(allScriptTag); 619 }; 620 621 var thisThemeFix = jdgmThemeFixes[Shopify.theme.id]; 622 if (!thisThemeFix) return; 623 624 if (thisThemeFix.html) { 625 document.addEventListener("DOMContentLoaded", function() { 626 var htmlDiv = document.createElement('div'); 627 htmlDiv.classList.add('jdgm-theme-fix-html'); 628 htmlDiv.innerHTML = thisThemeFix.html; 629 document.body.append(htmlDiv); 630 }); 631 }; 632 633 if (thisThemeFix.css) { 634 var styleTag = document.createElement('style'); 635 styleTag.classList.add('jdgm-theme-fix-style'); 636 styleTag.innerHTML = thisThemeFix.css; 637 document.head.append(styleTag); 638 }; 639 640 if (thisThemeFix.js) { 641 var scriptTag = document.createElement('script'); 642 scriptTag.classList.add('jdgm-theme-fix-script'); 643 scriptTag.innerHTML = thisThemeFix.js; 644 document.head.append(scriptTag); 645 }; 646 })(); 647</script>
647 648<!-- END app snippet --> 649<!-- End of Judge.me Core --> 650 651 652 653<!-- END app block --><!-- BEGIN app block: shopify://apps/elevar-conversion-tracking/blocks/dataLayerEmbed/bc30ab68-b15c-4311-811f-8ef485877ad6 --> 654 655 656
657<script type="module" dynamic> 658 const configUrl = "/a/elevar/static/configs/75a818ab340a0ee727a173770c5e11a91ba67e26/config.js"; 659 const config = (await import(configUrl)).default; 660 const scriptUrl = config.script_src_app_theme_embed; 661 662 if (scriptUrl) { 663 const { handler } = await import(scriptUrl); 664 665 await handler( 666 config, 667 { 668 cartData: { 669 marketId: "8618071", 670 localeCountryCode:"US", 671 attributes:{}, 672 cartTotal: "0.0", 673 currencyCode:"USD", 674 items: [] 675} 676, 677 user: { 678 cartTotal: "0.0", 679 currencyCode:"USD", 680 customer: {}, 681} 682, 683 isOnCartPage:false, 684 collectionView:null, 685 searchResultsView:null, 686 productView:null, 687 } 688 ); 689 } 690</script>
690 691 692 693<!-- END app block --><!-- BEGIN app block: shopify://apps/videowise-video-commerce/blocks/script_embed/b48d6c0c-3e3f-4791-a9ab-a5ab7ec82f4d --> 694 695 696 697 698<link 699 rel="preload" 700 as="style" 701 onload="this.onload=null;this.rel='stylesheet'" 702 href="https://assets.videowise.com/style.css.gz" 703 id="videowise-style-css">
704<script 705 defer 706 src="https://assets.videowise.com/vendors.js.gz" 707 id="videowise-vendors-js"></script>
vendor: 1 bytes, line 707
707
708<script 709 defer 710 src="https://assets.videowise.com/client.js.gz" 711 id="videowise-client-js"></script>
711 712 713<link rel="dns-prefetch" href="https://assets.videowise.com/" /> 714 715<link rel="dns-prefetch" href="https://cdn2.videowise.com/" /> 716 717<link rel="dns-prefetch" href="https://api-cdn.videowise.com/" /> 718 719<link rel="dns-prefetch" href="https://images.videowise.com/" /> 720 721<link rel="dns-prefetch" href="https://cdn.videowise.com/" /> 722 723<!-- END app block --><!-- BEGIN app block: shopify://apps/wholesale-gorilla/blocks/wsg-header/c48d0487-dff9-41a4-94c8-ec6173fe8b8d --> 724 725 726 727 728 729 730 731
731<script> 732 733 </script>
733 734 735 736 737 738 739 740 741 742 743 744 745 746 <!-- check for wsg customer - this now downcases to compare so we are no longer concerned about case matching in tags --> 747 748 749 750 751 752 753 754 <!-- ajax data --> 755 756 757 758
758<script> 759 console.log("Wsg-header release 7-21-26") 760 // here we need to check if we on a preview theme and set the shop config from the metafield 761 762const wsgShopConfigMetafields = { 763 764 765 766 767 768 769 770 shopConfig : {"notes":"","btnClasses":"","hideDomElements":[".hideWsg"],"wsgPriceSelectors":{"productPrice":[],"collectionPrices":[]},"autoInstall":true,"wsgMultiAjax":false,"wsgAjaxSettings":{"price":"","linePrice":"","subtotal":"","checkoutBtn":""},"wsgSwatch":"","wsgAccountPageSelector":"","wsgVolumeTable":"","excludedSections":[],"productSelectors":[],"wsgQVSelector":[""],"fileList":[],"wsgATCButtonsSelectors":[],"wsgVersion":6,"themeId":138960732247}, 771 772 773 774 shopConfig121928679511 : {"btnClasses":"","hideDomElements":[".hideWsg"],"wsgPriceSelectors":{"productPrice":[],"collectionPrices":[]},"autoInstall":true,"wsgMultiAjax":false,"wsgAjaxSettings":{"price":"","linePrice":"","subtotal":"","checkoutBtn":""},"wsgSwatch":"","wsgAccountPageSelector":"","wsgVolumeTable":"","excludedSections":[],"productSelectors":[],"wsgQVSelector":[""],"fileList":[],"wsgATCButtonsSelectors":[],"wsgVersion":6,"themeId":121928679511}, 775 776 777 778 shopConfig136024227927 : {"btnClasses":"","hideDomElements":[".hideWsg"],"wsgPriceSelectors":{"productPrice":[],"collectionPrices":[]},"autoInstall":true,"wsgMultiAjax":false,"wsgAjaxSettings":{"price":"","linePrice":"","subtotal":"","checkoutBtn":""},"wsgSwatch":"","wsgAccountPageSelector":"","wsgVolumeTable":"","excludedSections":[],"productSelectors":[],"wsgQVSelector":[""],"fileList":[],"wsgATCButtonsSelectors":[],"wsgVersion":6,"themeId":136024227927}, 779 780 781 782 shopConfig137028960343 : {"btnClasses":"","hideDomElements":[".hideWsg"],"wsgPriceSelectors":{"productPrice":[],"collectionPrices":[]},"autoInstall":true,"wsgMultiAjax":false,"wsgAjaxSettings":{"price":"","linePrice":"","subtotal":"","checkoutBtn":""},"wsgSwatch":"","wsgAccountPageSelector":"","wsgVolumeTable":"","excludedSections":[],"productSelectors":[],"wsgQVSelector":[""],"fileList":[],"wsgATCButtonsSelectors":[],"wsgVersion":6,"themeId":137028960343}, 783 784 785 786 shopConfigundefined : {"notes":"","btnClasses":"","hideDomElements":[".hideWsg"],"wsgPriceSelectors":{"productPrice":[],"collectionPrices":[]},"autoInstall":true,"wsgMultiAjax":false,"wsgAjaxSettings":{"price":"","linePrice":"","subtotal":"","checkoutBtn":""},"wsgSwatch":"","wsgAccountPageSelector":"","wsgVolumeTable":"","excludedSections":[],"productSelectors":[],"wsgQVSelector":[""],"fileList":[],"wsgATCButtonsSelectors":[],"wsgVersion":6}, 787 788 789} 790 let wsgShopConfig = {"notes":"","btnClasses":"","hideDomElements":[".hideWsg"],"wsgPriceSelectors":{"productPrice":[],"collectionPrices":[]},"autoInstall":true,"wsgMultiAjax":false,"wsgAjaxSettings":{"price":"","linePrice":"","subtotal":"","checkoutBtn":""},"wsgSwatch":"","wsgAccountPageSelector":"","wsgVolumeTable":"","excludedSections":[],"productSelectors":[],"wsgQVSelector":[""],"fileList":[],"wsgATCButtonsSelectors":[],"wsgVersion":6,"themeId":138960732247}; 791 if (window.Shopify.theme.role !== 'main') { 792 const wsgShopConfigUnpublishedTheme = wsgShopConfigMetafields[`shopConfig${window.Shopify.theme.id}`]; 793 if (wsgShopConfigUnpublishedTheme) { 794 wsgShopConfig = wsgShopConfigUnpublishedTheme; 795 } 796 } 797 // ========================================== 798 // Set global liquid variables 799 // ========================================== 800 // general variables 1220 801 var wsgVersion = 6.0; 802 var wsgActive = true; 803 // the permanent domain of the shop 804 var shopPermanentDomain = 'sidekicktools.myshopify.com'; 805 const wsgShopOrigin = 'https://sidekicktool.com'; 806 const wsgThemeTemplate = 'page.contact'; 807 //customer 808 var isWsgCustomer = 809 false 810 ; 811 var wsgCustomerTags = null 812 var wsgCustomerId = null 813 // execution variables 814 var wsgRunCollection; 815 var wsgCollectionObserver; 816 var wsgRunProduct; 817 var wsgRunAccount; 818 var wsgRunCart; 819 var wsgRunSinglePage; 820 var wsgRunSignup; 821 var wsgRunSignupV2; 822 var runProxy; 823 // wsgData 824 var wsgData = JSON.parse("{\"hostedStore\":{\"branding\":{\"isShowLogo\":true},\"accountPage\":{\"title\":\"My Account\"},\"cartPage\":{\"description\":\"\",\"title\":\"Your Cart\"},\"catalogPage\":{\"collections\":[],\"hideSoldOut\":false,\"imageAspectRatio\":\"adaptToImage\",\"numberOfColumns\":4,\"productsPerPage\":12},\"spofPage\":{\"description\":\"\",\"title\":\"Quick Order Form\"},\"colorSettings\":{\"background\":\"#FFFFFF\",\"primaryColor\":\"#000000\",\"secondaryColor\":\"#FFFFFF\",\"textColor\":\"#000000\"},\"footer\":{\"privacyPolicy\":false,\"termsOfService\":false},\"bannerText\":\"You are logged in to your wholesale account\"},\"translations\":{\"custom\":false,\"enable\":false,\"language\":\"english\",\"translateBasedOnMarket\":true},\"shop_preferences\":{\"cart\":{\"note\":{\"description\":\"\",\"isRequired\":false},\"poNumber\":{\"isRequired\":false,\"isShow\":false},\"termsAndConditions\":{\"isEnable\":false,\"text\":\"\"}},\"exclusionsAndLocksSettings\":{\"hidePrices\":{\"link\":\"\",\"loginToViewPrices\":false,\"replacementText\":\"\"}},\"transitions\":{\"installedTransitions\":false,\"showTransitions\":false},\"retailPrice\":{\"enable\":false,\"label\":\"MSRP\",\"lowerOpacity\":true,\"strikethrough\":false},\"autoBackorder\":false,\"checkInventory\":true,\"customWholesaleDiscountLabel\":\"\",\"draftNotification\":true,\"exclusions\":[],\"hideExclusions\":true,\"includeTaxInPriceRule\":false,\"lockedPages\":[],\"marketSetting\":false,\"minOrder\":-1,\"showShipPartial\":false,\"taxLabel\":\"\",\"taxRate\"
824:-1},\"page_styles\":{\"btnClasses\":\"\",\"proxyMargin\":0,\"shipMargin\":50},\"volume_discounts\":{\"quantity_discounts\":{\"collections\":[],\"products\":[]},\"settings\":{\"product_price_table\":{},\"custom_messages\":{\"custom_banner\":{\"banner_default\":true,\"banner_input\":\"Spend {{$}}, receive {{%}} off of your order.\"},\"custom_success\":{\"success_default\":true,\"success_input\":\"Congratulations! You received {{%}} off of your order!\"}}},\"discounts\":[],\"enabled\":false},\"shipping_rates\":{\"handlingFee\":{\"amount\":-1,\"label\":\"\",\"max\":-1,\"min\":-1,\"percent\":-1,\"type\":\"flat\"},\"itemReservationOnInternational\":{\"isEnabledCustomReservationTime\":false,\"isReserveInventory\":false,\"reserveInventoryDays\":60},\"internationalMsg\":{\"message\":\"Because you are outside of our home country we will calculate your shipping and send you an invoice shortly.\",\"title\":\"Thank you for your order!\"},\"localPickup\":{\"fee\":-1,\"instructions\":\"\",\"isEnabled\":false,\"locations\":[],\"minOrderPrice\":0,\"pickupTime\":\"\"},\"localDelivery\":{\"isEnabled\":true,\"minOrderPrice\":0},\"autoApplyLowestRate\":true,\"customShippingRateLabel\":\"\",\"deliveryTime\":\"\",\"fixedPercent\":-1,\"flatRate\":-1,\"freeShippingMin\":-1,\"ignoreAll\":false,\"ignoreCarrierRates\":false,\"ignoreShopifyFreeRates\":false,\"isIncludeLocalDeliveryInLowestRate\":true,\"redirectInternational\":false,\"useShopifyDefault\":true},\"single_page\":{\"collapseCollections\":true,\"isHideSPOFbtn\":false,\"isShowInventoryInfo\":true,\"isShowSku\":true,\"linkInCart\":true,\"menuAction\":\"exclude\",\"message\":\"\",\"spofButtonText\":\"Quick Order Form\"},\"net_orders\":{\"netRedirect\":{\"autoEmail\":false,\"message\":\"\",\"title\":\"Thank you for your order!\"},\"autoPending\":false,\"defaultPaymentTermsTemplateId\":\"\",\"enabled\":false,\"isEnabledCustomReservationTime\":false,\"isReserveInventory\":false,\"netTag\":\"\",\"netTags\":[],\"reserveInventoryDays\":60},\"customer\":{\"signup\":{\"autoInvite\":false,\"autoTags\":[],\"taxExempt\":true},\"accountMessage\":\"\",\"accountPendingTitle\":\"Account Created!\",\"loginMessage\":\"Log in to your wholesale account here.\",\"redirectMessage\":\"Your account is under review. Keep an eye on your email! Once we approve your account, you will have access to our wholesale catalog. In the meantime, you can continue to shop our retail store.\"},\"quantity\":{\"cart\":{},\"collections\":[],\"migratedToCurrent\":false,\"products\":[]},\"activeTags\":[],\"hideDrafts\":[],\"server_link\":\"https:\/\/www.wholesalegorilla.app\/shop_assets\/wsg-index.js\",\"tier\":\"essential\",\"isPauseShop\":false,\"installStatus\":\"ti_pending\"}") 825 var wsgTier = 'essential' 826 var wsgCustomerRates = {}; 827 var wsgGeneralRates = {}; 828 // AJAX variables 829 var wsgRunAjax; 830 var wsgAjaxCart; 831 // product variables 832 var wsgCollectionsList = null 833 var wsgProdData = null 834 835 var wsgCurrentVariant = null; 836 837 var wsgCheckRestrictedProd = false; 838 // Market and tax variables 839 var wsgShopCountryCode = "CA"; 840 var wsgShopCountry = "Canada" 841 var wsgCustomerTaxExempt = null 842 var wsgPricesIncludeTax = false 843 var wsgCustomerSelectedMarket = { 844 country: "United States", 845 iso_code: "US" 846 } 847 var wsgPrimaryMarketCurrency = "USD"; 848 // money formatting 849 var wsgMoneyFormat = "${{amount}}"; 850 // config variables 851 var wsgAjaxSettings = wsgShopConfig.wsgAjaxSettings; 852 var wsgSwatch = wsgShopConfig.wsgSwatch; 853 var wsgPriceSelectors = wsgShopConfig.wsgPriceSelectors; 854 var wsgVolumeTable = wsgShopConfig.wsgVolumeTable; 855 var wsgUseLegacyCollection = wsgShopConfig.wsgUseLegacyCollection; 856 var wsgQVSelector = wsgShopConfig.wsgQVSelector; 857 var hideDomElements = wsgShopConfig.hideDomElements; 858 // button color settings 859 var embedButtonBg = '#000000'; 860 var embedButtonText = '#000000'; 861 // Quick Order Form Label settings 862 var embedSPOFLabel = wsgData?.single_page?.spofButtonText || 'Quick Order Form'; 863 864 // Load WSG script 865 (function() { 866 var loadWsg = function(url, callback) { 867 var script = document.createElement("script"); 868 script.type = "text/javascript"; 869 // If the browser is Internet Explorer. 870 if (script.readyState) { 871 script.onreadystatechange = function() { 872 if (script.readyState == "loaded" || script.readyState == "complete") { 873 script.onreadystatechange = null; 874 callback(); 875 } 876 }; 877 // For any other browser. 878 } else { 879 script.onload = function() { 880 callback(); 881 }; 882 } script.src = url; 883 document.getElementsByTagName("head")[0].appendChild(script); 884 }; 885 loadWsg(wsgData.server_link + "?v=6", function() {}) 886 })(); 887 // Run appropriate WSG process 888 // === PRODUCT=== 889 890 // === ACCOUNT === 891 892 // === SPOF === 893 894 // === COLLECTION === 895 // Run collection on all templates/pages if we're running the 5+ script 896 897 wsgRunCollection = true; 898 899 // === AJAX CART === 900 901 if (wsgAjaxSettings && (wsgAjaxSettings.price || wsgAjaxSettings.linePrice || wsgAjaxSettings.subtotal || wsgAjaxSettings.checkoutBtn)) { 902 wsgRunAjax = true; 903 } 904 905 // === CART === 906 907 </script>
907 908 909 910 911 912<link href="//cdn.shopify.com/extensions/01a049db-5604-78b4-b7a3-b93d040e3947/wholesale-gorilla-45/assets/wsg-embed.css" rel="stylesheet" type="text/css" media="all" /> 913 914<!-- END app block -->
914<script src="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 914
914
915<script src="https://cdn.shopify.com/extensions/01a049db-5604-78b4-b7a3-b93d040e3947/wholesale-gorilla-45/assets/wsg-dependencies.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 915
915
916<script src="https://cdn.shopify.com/extensions/01a0d300-c426-79d6-b090-f4bfd4249626/lb-upsell-448/assets/lb-selleasy.js" type="text/javascript" defer="defer"></script>
916 917<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
918<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: 17237793,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 918
918
919<script> 920 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 921</script>
vendor: 1 bytes, line 921
921
922<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}
922).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: 17237793,storefrontBaseUrl: "https://sidekicktool.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://sidekicktool.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b"],webPixelsConfigList: [{"id":"1702723671","configuration":"{\"shopId\":\"sidekicktools.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"31536d5a2ef62c1887054e49fd58dba0","type":"APP","apiClientId":4845829,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
922,"dataSharingState":"unrestricted"},{"id":"1575845975","configuration":"{\"accountID\":\"1220658\",\"workspaceId\":\"0eade446-a0bc-45f2-8e29-4ca3c320a91b\",\"projectId\":\"a837e6aa-b75d-4c21-a903-7fea68e9c85d\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d98eb033f1e81320021a411362de3a55","type":"APP","apiClientId":5461967,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1244364887","configuration":"{\"accountID\":\"Bbkihg\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"772472919","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"658931799","configuration":"{\"publicKey\":\"pub_8a830aa854229b44fe3f\",\"apiUrl\":\"https:\\\/\\\/tracking.refersion.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0fb80394591dba97de0fece487c9c5e4","type":"APP","apiClientId":147004,"privacyPurposes":["ANALYTICS","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"329842775","configuration":"{\"accountID\":\"selleasy-metrics-track\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"50acfdcd7b118f50e52df83f64624d06","type":"APP","apiClientId":5519923,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"4390999","configuration":"{\"config_url\": \"https:\/\/shopify-gtm-suite.getelevar.com\/configs\/75a818ab340a0ee727a173770c5e11a91ba67e26\/config.js\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"7ae63d00911d5ee26809bf1e3232d852","type":"APP","apiClientId":2509311,"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":"15040599","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Retention.com Shopify V2 Scrip"}
922,{"id":"16580695","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"videowise"},{"id":"23593047","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Elevar - Checkout Tracking"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Sidekick","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"sidekicktools.myshopify.com","countryCode":"CA","storefrontUrl":"https:\/\/sidekicktool.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"7471958917207","handle":"ladderpod","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41959441498199","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7483459895383","handle":"axisboard","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42700260999255","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7573473525847","handle":"heel-hero","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42531294937175","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"3594261200983","handle":"eclipse-muscle-scraper","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41365420081239","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9366016771","handle":"echo-muscle-reliever","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41922181922903","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7714571157591","handle":"strength-and-mobility-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44081644830807","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://sidekicktool.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"138960732247","themePublished":"true","eventMetadataId":"00e07b96-980c-4bfe-8303-a0bbe37ae297","pageType":"page","resourceId":"205842307","shopId":"17237793","storefrontBaseUrl":"https:\/\/sidekicktool.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
922<script> 923 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 924 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 925 window.ShopifyAnalytics.meta.currency = 'USD'; 926 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":205842307,"requestId":"d7b558f3-aa2c-4f62-ae18-7411d1472957-1790252390"}}; 927 for (var attr in meta) { 928 window.ShopifyAnalytics.meta[attr] = meta[attr]; 929 } 930</script>
vendor: 1 bytes, line 930
930
931<script class="analytics"> 932 (function () { 933 var customDocumentWrite = function(content) { 934 var jquery = null; 935 936 if (window.jQuery) { 937 jquery = window.jQuery; 938 } else if (window.Checkout && window.Checkout.$) { 939 jquery = window.Checkout.$; 940 } 941 942 if (jquery) { 943 jquery('body').append(content); 944 } 945 }; 946 947 var hasLoggedConversion = function(token) { 948 if (token) { 949 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 950 } 951 return false; 952 } 953 954 var setCookieIfConversion = function(token) { 955 if (token) { 956 var twoMonthsFromNow = new Date(Date.now()); 957 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 958 959 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 960 } 961 } 962 963 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 964 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 965 if (trekkie.integrations) { 966 return; 967 } 968 trekkie.methods = [ 969 'identify', 970 'page', 971 'ready', 972 'track', 973 'trackForm', 974 'trackLink' 975 ]; 976 trekkie.factory = function(method) { 977 return function() { 978 var args = Array.prototype.slice.call(arguments); 979 args.unshift(method); 980 trekkie.push(args); 981 if (method == 'track' || method == 'page') { 982 try { 983 if (window.__TREKKIE_SHIM_QUEUE == null) { 984 window.__TREKKIE_SHIM_QUEUE = []; 985 } 986 window.__TREKKIE_SHIM_QUEUE.push({ 987 from: 'trekkie-stub', 988 method: method, 989 args: args.slice(1) 990 }); 991 } catch (e) { 992 // no-op 993 } 994 } 995 return trekkie; 996 }; 997 }; 998 for (var i = 0; i < trekkie.methods.length; i++) { 999 var key = trekkie.methods[i]; 1000 trekkie[key] = trekkie.factory(key); 1001 } 1002 trekkie.load = function(config) { 1003 trekkie.config = config || {}; 1004 trekkie.config.initialDocumentCookie = document.cookie; 1005 var first = document.getElementsByTagName('script')[0]; 1006var script = document.createElement('script'); 1007script.type = 'text/javascript'; 1008script.onerror = function(e) { 1009 var scriptFallback = document.createElement('script'); 1010 scriptFallback.type = 'text/javascript'; 1011 scriptFallback.onerror = function(error) { 1012 var Monorail = { 1013 produce: function produce(monorailDomain, schemaId, payload) { 1014 var currentMs = new Date().getTime(); 1015 var event = { 1016 schema_id: schemaId, 1017 payload: payload, 1018 metadata: { 1019 event_created_at_ms: currentMs, 1020 event_sent_at_ms: currentMs 1021 } 1022 }; 1023 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1024 }, 1025 sendRequest: function sendRequest(endpointUrl, payload) { 1026 // Try the sendBeacon API 1027 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1028 var blobData = new window.Blob([payload], { 1029 type: 'text/plain' 1030 }); 1031 1032 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1033 return true; 1034 } // sendBeacon was not successful 1035 1036 } // XHR beacon 1037 1038 var xhr = new XMLHttpRequest(); 1039 1040 try { 1041 xhr.open('POST', endpointUrl); 1042 xhr.setRequestHeader('Content-Type', 'text/plain'); 1043 xhr.send(payload); 1044 } catch (e) { 1045 console.log(e); 1046 } 1047 1048 return false; 1049 }, 1050 isIos12: function isIos12() { 1051 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1052 } 1053 }; 1054 Monorail.produce('monorail-edge.shopifysvc.com', 1055 'trekkie_storefront_load_errors/1.1', 1056 {shop_id: 17237793, 1057 theme_id: 138960732247, 1058 app_name: "storefront", 1059 context_url: window.location.href, 1060 source_url: "//sidekicktool.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 1061 1062 }; 1063 scriptFallback.async = true; 1064 scriptFallback.src = '//sidekicktool.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 1065 first.parentNode.insertBefore(scriptFallback, first); 1066}; 1067script.async = true; 1068script.src = '//sidekicktool.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 1069first.parentNode.insertBefore(script, first); 1070 1071 }; 1072 trekkie.load( 1073 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":17237793,"isMerchantRequest":null,"themeId":138960732247,"themeCityHash":"5192071764366403416","contentLanguage":"en","currency":"USD","eventMetadataId":"00e07b96-980c-4bfe-8303-a0bbe37ae297"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1074 ); 1075 1076 var loaded = false;
1077 trekkie.ready(function() { 1078 if (loaded) return; 1079 loaded = true; 1080 1081 window.ShopifyAnalytics.lib = window.trekkie; 1082 1083 var originalDocumentWrite = document.write; 1084 document.write = customDocumentWrite; 1085 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1086 document.write = originalDocumentWrite; 1087 1088 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1089 var token = match? match[1]: undefined; 1090 if (!hasLoggedConversion(token)) { 1091 setCookieIfConversion(token); 1092 1093 } 1094 }); 1095 1096 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":205842307,"requestId":"d7b558f3-aa2c-4f62-ae18-7411d1472957-1790252390","shopifyEmitted":true}); 1097 1098 var eventsListenerScript = document.createElement('script'); 1099 eventsListenerScript.async = true; 1100 eventsListenerScript.src = "//sidekicktool.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1101 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1102})();</script>
vendor: 1 bytes, line 1102
1102
1103<script 1104 defer 1105 src="https://sidekicktool.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1106 data-application="storefront-renderer" 1107 data-shop-id="17237793" 1108 data-render-region="gcp-us-central1" 1109 data-page-type="page" 1110 data-theme-instance-id="138960732247" 1111 data-theme-name="Sidekick Tool" 1112 data-theme-version="1.0.0" 1113 data-monorail-region="shop_domain" 1114 data-resource-timing-sampling-rate="10" 1115 data-shs="true" 1116 data-shs-beacon="true" 1117 data-shs-export-with-fetch="true" 1118 data-shs-logs-sample-rate="1" 1119 data-shs-beacon-endpoint="https://sidekicktool.com/api/collect" 1120></script>
1120 1121<meta name="shopify-y" content="b9c8cba5-cbbc-4704-8ea0-f392c5c761da" data-expiration="1821809990000"><meta name="shopify-s" content="91bc86b2-36ed-4c03-912e-ccb7127ef2e5" data-expiration="1790254190000"><meta name="new-cookie-storage-activated" content="t"> 1122</head> 1123 1124 <body 1125 class="template-name-page template-suffix-contact" 1126 1127 > 1128
1128<script src="//sidekicktool.com/cdn/shop/t/109/assets/cart-sections-url-fix.js?v=115477330276651530311783618181"></script>
1128 1129 1130 1131
1131<script> 1132 (function () { 1133 var euCountries = ['AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR','GR','HU','HR','IE','IT','LV','LT','LU','MT','NL','PO','PT','RO','SI','SK','SE']; 1134 fetch('https://www.cloudflare.com/cdn-cgi/trace') 1135 .then(function (data) { return data.text(); }) 1136 .then(function (txt) { 1137 var loc = txt.toUpperCase().split('LOC=')[1].split('\n')[0]; 1138 if (euCountries.indexOf(loc) > -1) { 1139 document.body.classList.add('show-cookie'); 1140 } else { 1141 document.body.classList.add('no-cookie'); 1142 } 1143 }) 1144 .catch(function () { 1145 // If the request fails, default to showing the banner to be safe 1146 document.body.classList.add('show-cookie'); 1147 }); 1148 })(); 1149</script>
1149 1150 1151 1152 1153 1154 <!-- snippets/skip-links.liquid --> 1155 1156 1157 1158<a class="skip-link btn btn--primary" href="#MainContent">Skip Navigation</a> 1159 1160 1161 1162 1163 <header class="js-trap-focus-container js-modal-inert-container"> 1164 <!-- BEGIN sections: header-group --> 1165<div id="shopify-section-sections--18158769242199__fm_x_promo_bar_slideshow_78Cypg" class="shopify-section shopify-section-group-header-group s-promo-bar-slider"><!-- sections/fm-x-promo-bar-slideshow.liquid --> 1166 1167 1168 1169 1170 <!-- snippets/theme-load-assets.liquid --> 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 <link href="//sidekicktool.com/cdn/shop/t/109/assets/section-fm-x-promo-bar-slideshow.min.css?v=74936833929550710141788551641" as="style" rel="preload"> 1181 <link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/section-fm-x-promo-bar-slideshow.min.css?v=74936833929550710141788551641" media="print" onload="this.media='all'; this.setAttribute('data-is-loaded', 'true')" data-fm-asset > 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 <aside 1199 class="s-promo-bar-slider__main s-promo-bar-slider--is-not-slider" 1200 aria-label="Promotions" 1201 data-aria-label="Promotions" 1202 id="promo-bar-slider" 1203 > 1204 1205 1206 <div class="fm-slider" data-fm-slider> 1207 1208 1209 1210 1211 1212 1213 <div class="fm-slider__scrollport s-promo-bar-slider__scrollport js-fm-slider-scrollport"> 1214 1215 1216 1217 1218 1219 <div class="fm-slider__slide s-promo-bar-slider__slide" data-aria-label="Promotion 1"> 1220 <div class="s-promo-bar-slider__slide-inner"> 1221 <p class="tablet-sm-down t-center"><a href="/collections/all-products" title="All Products"><strong>Enjoy free shipping and 60-day returns on all orders </strong>â</a></p> 1222 <p class="tablet-lg-up t-center"><a href="/collections/all-products" title="All Products"><strong>Enjoy free shipping and 60-day returns on all orders </strong>â</a></p> 1223 </div> 1224 </div> 1225 1226 </div> 1227 </div> 1228 </aside> 1229 1230 1231</div><div id="shopify-section-sections--18158769242199__header" class="shopify-section shopify-section-group-header-group s-header s-header--row-logo-left js-modal-not-inert-container"><!-- sections/header-row-logo-left.liquid --> 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241<div class="s-header__main" id="primary-header" style="height: 3.5rem;"> 1242 <div 1243 class="s-header__container" 1244 style="display: flex; width: 100%; height: 3.5rem; min-height: 3.5rem;" 1245 > 1246 1247 <mega-menu class="s-header__mobile-actions" 1248 data-overlay="under-header-overlay" 1249 data-stop-videos-when-open="true" 1250 data-prevent-scroll-when-open="true" 1251 > 1252 1253 1254 <div class="s-header__mobile-drawer-button"> 1255 <button 1256 type="button" 1257 class="btn js-modal-trigger s-header__interactive" 1258 aria-controls="mobile-drawer" 1259 aria-expanded="false" 1260 data-overlay="mobile-drawer-overlay" 1261 > 1262 <!-- snippets/hamburger.liquid --> 1263 1264 1265 1266<span class="c-hamburger"> 1267 <span></span> 1268 <span></span> 1269 <span></span> 1270 <span></span> 1271</span> 1272 1273 <span class="sr-only"> 1274 Menu 1275 </span> 1276 </button> 1277 </div> 1278 1279 1280 1281 1282 <div class="s-header__search-toggle tablet-sm-down"> 1283 <button 1284 class="s-header__interactive js-megamenu-trigger" 1285 type="button" 1286 aria-expanded="false" 1287 aria-controls="header-search-mobile" 1288 > 1289 1290<span class="icon icon--md"> 1291 <svg viewBox="0 0 512 512" aria-hidden="true"><!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc.--><path d="M368 208a160 160 0 1 0-320 0 160 160 0 1 0 320 0zm-30.9 163.1C301.7 399.2 256.8 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.8-16.8 93.7-44.9 129.1L505 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-134-133.8z"/></svg> 1292 </span> 1293 <span class="sr-only"> 1294 Toggle search 1295 </span> 1296 </button> 1297 1298 <div class="s-header__dropdown js-megamenu-content" id="header-search-mobile"> 1299 <div class="container s-header__dropdown-wrapper s-header__dropdown-search"> 1300 <!-- snippets/search-bar.liquid --> 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 <!-- snippets/theme-load-assets.liquid --> 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 <link href="//sidekicktool.com/cdn/shop/t/109/assets/component-predictive-search.min.css?v=85157119467464052351773848987" as="style" rel="preload"> 1326 <link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/component-predictive-search.min.css?v=85157119467464052351773848987" media="print" onload="this.media='all'; this.setAttribute('data-is-loaded', 'true')" data-fm-asset > 1327 1328 1329 1330 1331 1332 1333 1334 <link rel="preload" href="//sidekicktool.com/cdn/shop/t/109/assets/component-predictive-search.min.js?v=15357256478848897501773848988" as="script" crossorigin="anonymous"> 1335
1335<script type="module" src="//sidekicktool.com/cdn/shop/t/109/assets/component-predictive-search.min.js?v=15357256478848897501773848988" defer data-fm-asset ></script>
1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 <predictive-search class="c-predict-search"> 1345 <form method="get" action="/search" role="search"> 1346 1347 1348
1348<script type="application/json" class="js-predict-search-params"> 1349 { 1350 "section_id": "sections--18158769242199__header", 1351 "resources[limit]": 5, 1352 "resources[limit_scope]": "each", 1353 "resources[options][fields]": "product_type,title,vendor" 1354 } 1355 </script>
1355 1356 1357 1358 <div class="input-group"> 1359 <label for="fm-id-header-2-search-bar--header-search-mobile">What are you looking for?</label> 1360 1361 <div class="input-with-button input-with-button--sm"> 1362 <input 1363 type="search" 1364 id="fm-id-header-2-search-bar--header-search-mobile" 1365 name="q" 1366 placeholder="Search products" 1367 aria-autocomplete="list" 1368 autocomplete="off" 1369 autocapitalize="off" 1370 spellcheck="false" 1371 value="" 1372 > 1373 <button class="btn btn--primary" type="submit"> 1374 1375<span class="icon icon--lg"> 1376 <svg viewBox="0 0 512 512" aria-hidden="true"><!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc.--><path d="M368 208a160 160 0 1 0-320 0 160 160 0 1 0 320 0zm-30.9 163.1C301.7 399.2 256.8 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.8-16.8 93.7-44.9 129.1L505 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-134-133.8z"/></svg> 1377 </span> 1378 1379 <span class="sr-only">Search</span> 1380 </button> 1381 </div> 1382 </div> 1383 1384 </form> 1385 1386 <!-- snippets/predictive-search-results.liquid --> 1387 1388 1389 1390 1391 1392 1393 1394<section class="c-predict-search__container js-predict-search-results"> 1395</section> 1396 1397 </predictive-search> 1398 1399 1400 </div> 1401 </div> 1402 </div> 1403 1404 </mega-menu> 1405 1406 1407 1408 <div class="s-header__logo"> 1409 <a 1410 href="/" 1411 title="Sidekick Logo" 1412 1413 style="display: block; width: 8rem; height: auto;" 1414 > 1415 <span class="sr-only"> View Homepage </span> 1416 1417 1418 <!-- snippets/logo.liquid --> 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428<img 1429 src="//sidekicktool.com/cdn/shop/files/Primary_Logo_NEW_Orange.png?v=1786529168&width=400" 1430 alt="Sidekick logo" 1431 width="130" 1432 height="15.11054958938724" 1433 fetchpriority="high" 1434 1435 1436 srcset=" 1437 //sidekicktool.com/cdn/shop/files/Primary_Logo_NEW_Orange.png?v=1786529168&width=1 10w, 1438 //sidekicktool.com/cdn/shop/files/Primary_Logo_NEW_Orange.png?v=1786529168&width=180 180w, 1439 //sidekicktool.com/cdn/shop/files/Primary_Logo_NEW_Orange.png?v=1786529168&width=300 360w, 1440 //sidekicktool.com/cdn/shop/files/Primary_Logo_NEW_Orange.png?v=1786529168&width=540 540w, 1441 //sidekicktool.com/cdn/shop/files/Primary_Logo_NEW_Orange.png?v=1786529168&width=720 720w, 1442 //sidekicktool.com/cdn/shop/files/Primary_Logo_NEW_Orange.png?v=1786529168&width=900 900w, 1443 //sidekicktool.com/cdn/shop/files/Primary_Logo_NEW_Orange.png?v=1786529168&width=1080 1080w, 1444 //sidekicktool.com/cdn/shop/files/Primary_Logo_NEW_Orange.png?v=1786529168&width=1296 1296w, 1445 //sidekicktool.com/cdn/shop/files/Primary_Logo_NEW_Orange.png?v=1786529168&width=1512 1512w, 1446 " 1447 1448> 1449 1450 1451 </a> 1452 </div> 1453 1454 1455 1456 <!-- blocks/_header-menu.liquid --> 1457 1458 1459 1460 1461 1462<mega-menu-hover 1463 data-overlay="false" 1464 data-stop-videos-when-open="false" 1465 data-prevent-scroll-when-open="false" 1466 data-inert-inside-container="true" 1467 data-hover-open="(min-width: 1024px)" 1468 class="s-header-menu" 1469 1470> 1471 <nav aria-label="Desktop"> 1472 <ul class="s-header-menu__list" aria-label="Navigation" style="--list-count: 4"> 1473 <!-- blocks/_header-shop-megamenu.liquid --> 1474 1475�<li class="s-header-menu__list-item s-header-shop-megamenu" > 1476 <a 1477 href="/collections/all-products" 1478 class="s-header__interactive has-children js-megamenu-trigger" 1479 aria-expanded="false" 1480 aria-haspopup="menu" 1481 aria-controls="desktop-shop-megamenu-AeUttOVhEKy90Wm1td__header_shop_megamenu_kPN8fg-children" 1482 > 1483 Shop All 1484 </a> 1485 1486 <div class="s-header-menu__children s-header-shop-megamenu__children js-megamenu-content" id="desktop-shop-megamenu-AeUttOVhEKy90Wm1td__header_shop_megamenu_kPN8fg-children"> 1487 <div class="s-header-shop-megamenu__wrapper s-header-shop-megamenu__wrapper--default" tabindex="0"> 1488 <!-- snippets/theme-load-assets.liquid --> 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 <link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/component-header-shop-megamenu.min.css?v=160843677073513971191787557113" media="print" onload="this.media='all'; this.setAttribute('data-is-loaded', 'true')" data-fm-asset > 1499 1500 1501 1502 1503 1504 1505 1506
1506<script type="module" src="//sidekicktool.com/cdn/shop/t/109/assets/component-header-shop-megamenu.min.js?v=159486317508468931431778783670" defer data-fm-asset ></script>
1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 <div class="s-header-shop-megamenu__inner"> 1516 1517 <div class="s-header-shop-megamenu__heading"> 1518 1519 <div class="s-header-shop-megamenu__breadcrumb">Home / Shop all</div> 1520 1521 1522 1523 <h2>Shop</h2> 1524 1525 </div> 1526 1527 1528 <!-- blocks/_header-shop-megamenu-link.liquid --> 1529 1530� 1531 <div 1532 class="s-header-shop-megamenu__item" 1533 1534 data-shop-megamenu-item="shop-all" 1535 1536 1537 > 1538 <a href="/collections/all-products" class="s-header-shop-megamenu__nav-link"> 1539 <span>Shop All</span> 1540 1541 1542 </a> 1543 1544 1545 <div class="s-header-shop-megamenu__panel s-header-shop-megamenu__panel--shop-all"> 1546 1547 <div class="s-header-shop-megamenu__default-layout"> 1548 <div class="s-header-shop-megamenu__default-feature"> 1549 1550 <img src="//sidekicktool.com/cdn/shop/files/Feature_menu_ladderpod.png?v=1788858122&width=900" alt="" srcset="//sidekicktool.com/cdn/shop/files/Feature_menu_ladderpod.png?v=1788858122&width=352 352w, //sidekicktool.com/cdn/shop/files/Feature_menu_ladderpod.png?v=1788858122&width=832 832w, //sidekicktool.com/cdn/shop/files/Feature_menu_ladderpod.png?v=1788858122&width=900 900w" width="900" height="1125" loading="eager" class="s-header-shop-megamenu__feature-image"> 1551 1552 1553 <div class="s-header-shop-megamenu__default-feature-content"> 1554 1555 1556 1557 <h3 class="s-header-shop-megamenu__feature-title">LadderPod</h3> 1558 1559 1560 1561 <p class="s-header-shop-megamenu__feature-text">12 adjustable heights, 300+ ways to train. From knee rehab and mobility to explosive box jumps. One system. Zero clutter.</p> 1562 1563 1564 1565 <a href="/products/ladderpod" class="btn btn--primary s-header-shop-megamenu__feature-button"> 1566 Shop Now 1567 </a> 1568 1569 </div> 1570 </div> 1571 1572 <div class="s-header-shop-megamenu__default-cards"> 1573 � 1574 <a href="/collections/scraping" class="s-header-shop-megamenu__card"> 1575 1576 1577 1578 <img src="//sidekicktool.com/cdn/shop/files/ECLIPSE_SILVER_1_1.png?v=1778779565&width=400" alt="" srcset="//sidekicktool.com/cdn/shop/files/ECLIPSE_SILVER_1_1.png?v=1778779565&width=352 352w, //sidekicktool.com/cdn/shop/files/ECLIPSE_SILVER_1_1.png?v=1778779565&width=400 400w" width="400" height="667" loading="eager" class="s-header-shop-megamenu__card-image"> 1579 1580 1581 <span class="s-header-shop-megamenu__card-title">Muscle Scrapers</span> 1582 </a> 1583 1584 � 1585 <a href="/products/axisboard" class="s-header-shop-megamenu__card"> 1586 1587 1588 1589 <img src="//sidekicktool.com/cdn/shop/files/Axiboard_2_4a4a7131-77ee-40b4-8743-9219d266d7ab.png?v=1779372926&width=400" alt="" srcset="//sidekicktool.com/cdn/shop/files/Axiboard_2_4a4a7131-77ee-40b4-8743-9219d266d7ab.png?v=1779372926&width=352 352w, //sidekicktool.com/cdn/shop/files/Axiboard_2_4a4a7131-77ee-40b4-8743-9219d266d7ab.png?v=1779372926&width=400 400w" width="400" height="667" loading="eager" class="s-header-shop-megamenu__card-image"> 1590 1591 1592 <span class="s-header-shop-megamenu__card-title">AxisBoard</span> 1593 </a> 1594 1595 � 1596 <a href="/products/heel-hero" class="s-header-shop-megamenu__card"> 1597 1598 1599 1600 <img src="//sidekicktool.com/cdn/shop/files/HH_1.png?v=1778696580&width=400" alt="" srcset="//sidekicktool.com/cdn/shop/files/HH_1.png?v=1778696580&width=352 352w, //sidekicktool.com/cdn/shop/files/HH_1.png?v=1778696580&width=400 400w" width="400" height="293" loading="eager" class="s-header-shop-megamenu__card-image"> 1601 1602 1603 <span class="s-header-shop-megamenu__card-title">Heel Hero</span> 1604 </a> 1605 1606 � 1607 <a href="/collections/bundles" class="s-header-shop-megamenu__card"> 1608 1609 1610 1611 <img src="//sidekicktool.com/cdn/shop/files/BUNDLE_AB_EC_1.png?v=1778781798&width=400" alt="" srcset="//sidekicktool.com/cdn/shop/files/BUNDLE_AB_EC_1.png?v=1778781798&width=352 352w, //sidekicktool.com/cdn/shop/files/BUNDLE_AB_EC_1.png?v=1778781798&width=400 400w" width="400" height="295" loading="eager" class="s-header-shop-megamenu__card-image"> 1612 1613 1614 <span class="s-header-shop-megamenu__card-title">Bundles</span> 1615 </a> 1616 1617 1618 1619 1620 </div> 1621 </div> 1622 1623 </div> 1624 1625 </div> 1626 1627 1628<!-- blocks/_header-shop-megamenu-link.liquid --> 1629 1630� 1631 <div 1632 class="s-header-shop-megamenu__item" 1633 1634 1635 > 1636 <a href="https://sidekicktool.com/collections/all-products?filter.p.m.fm_field.product_designation=Best+Sellers" class="s-header-shop-megamenu__nav-link"> 1637 <span>Best Sellers</span> 1638 1639 1640 </a> 1641 1642 1643 </div> 1644 1645 1646<!-- blocks/_header-shop-megamenu-link.liquid --> 1647 1648� 1649 <div 1650 class="s-header-shop-megamenu__item" 1651 1652 data-shop-megamenu-item="muscle-scrapers" 1653 1654 1655 > 1656 <a href="/collections/scraping" class="s-header-shop-megamenu__nav-link"> 1657 <span>Muscle Scrapers</span> 1658 1659
1660 <span class="s-header-shop-megamenu__nav-arrow">âº</span> 1661 1662 </a> 1663 1664 1665 <div class="s-header-shop-megamenu__panel "> 1666 1667 <div class="s-header-shop-megamenu__panel-main"> 1668 <div class="s-header-shop-megamenu__panel-header"> 1669 1670 <h3 class="s-header-shop-megamenu__panel-title">Muscle Scrapers</h3> 1671 1672 1673 1674 <a href="/collections/scraping" class="s-header-shop-megamenu__panel-top-link"> 1675 View all scrapers <span>âº</span> 1676 </a> 1677 1678 </div> 1679 1680 <div class="s-header-shop-megamenu__panel-cards"> 1681 � 1682 <a href="/products/eclipse-muscle-scraper" class="s-header-shop-megamenu__card"> 1683 1684 1685 1686 <img src="//sidekicktool.com/cdn/shop/files/ECLIPSE_SILVER_1_1.png?v=1778779565&width=400" alt="" srcset="//sidekicktool.com/cdn/shop/files/ECLIPSE_SILVER_1_1.png?v=1778779565&width=352 352w, //sidekicktool.com/cdn/shop/files/ECLIPSE_SILVER_1_1.png?v=1778779565&width=400 400w" width="400" height="667" loading="eager" class="s-header-shop-megamenu__card-image"> 1687 1688 1689 <span class="s-header-shop-megamenu__card-title">Eclipse Muscle Scraper</span> 1690 </a> 1691 1692 � 1693 <a href="/products/echo-muscle-reliever" class="s-header-shop-megamenu__card"> 1694 1695 1696 1697 <img src="//sidekicktool.com/cdn/shop/files/ECHO_SILVER_1.png?v=1778693256&width=400" alt="" srcset="//sidekicktool.com/cdn/shop/files/ECHO_SILVER_1.png?v=1778693256&width=352 352w, //sidekicktool.com/cdn/shop/files/ECHO_SILVER_1.png?v=1778693256&width=400 400w" width="400" height="667" loading="eager" class="s-header-shop-megamenu__card-image"> 1698 1699 1700 <span class="s-header-shop-megamenu__card-title">
1700Echo Muscle Scraper</span> 1701 </a> 1702 1703 � 1704 <a href="/products/curve-muscle-reliever" class="s-header-shop-megamenu__card"> 1705 1706 1707 1708 <img src="//sidekicktool.com/cdn/shop/files/CURVE_BLACK_1.png?v=1778693255&width=400" alt="" srcset="//sidekicktool.com/cdn/shop/files/CURVE_BLACK_1.png?v=1778693255&width=352 352w, //sidekicktool.com/cdn/shop/files/CURVE_BLACK_1.png?v=1778693255&width=400 400w" width="400" height="732" loading="eager" class="s-header-shop-megamenu__card-image"> 1709 1710 1711 <span class="s-header-shop-megamenu__card-title">Curve Muscle Scraper</span> 1712 </a> 1713 1714 1715 </div> 1716 </div> 1717 1718 <div class="s-header-shop-megamenu__panel-side"> 1719 1720 <a href="/products/echo-muscle-reliever" class="s-header-shop-megamenu__side-media-link"> 1721 1722 1723 1724 <video playsinline="playsinline" autoplay="autoplay" loop="loop" muted="muted" preload="metadata" poster="//sidekicktool.com/cdn/shop/files/preview_images/0134ca606ecd4f5d85d55ec6129e7a95.thumbnail.0000000000_800x.jpg?v=1778770328"><source src="//sidekicktool.com/cdn/shop/videos/c/vp/0134ca606ecd4f5d85d55ec6129e7a95/0134ca606ecd4f5d85d55ec6129e7a95.HD-1080p-7.2Mbps-84120263.mp4?v=0" type="video/mp4"><img src="//sidekicktool.com/cdn/shop/files/preview_images/0134ca606ecd4f5d85d55ec6129e7a95.thumbnail.0000000000_800x.jpg?v=1778770328"></video> 1725 1726 1727 1728 </a> 1729 1730 1731 1732 <div class="s-header-shop-megamenu__side-links-heading">Learn about muscle scrapers</div> 1733 1734 1735 <div class="s-header-shop-megamenu__side-links"> 1736 � 1737 <a href="https://learn.sidekicktool.com/" class="s-header-shop-megamenu__side-link"> 1738 1739 <img src="//sidekicktool.com/cdn/shop/files/Info.png?v=1778769899&width=80" alt="" srcset="//sidekicktool.com/cdn/shop/files/Info.png?v=1778769899&width=80 80w" width="80" height="80" loading="eager" class="s-header-shop-megamenu__side-link-icon"> 1740 1741 1742 <span> 1743 <strong>How to use</strong> 1744 1745 1746 <small>Technique guide + video</small> 1747 1748 </span> 1749 1750 <span class="s-header-shop-megamenu__side-link-arrow">âº</span> 1751 </a> 1752 1753 � 1754 <a href="/pages/science-of-scraping" class="s-header-shop-megamenu__side-link"> 1755 1756 <img src="//sidekicktool.com/cdn/shop/files/Care.png?v=1778769899&width=80" alt="" srcset="//sidekicktool.com/cdn/shop/files/Care.png?v=1778769899&width=80 80w" width="80" height="72" loading="eager" class="s-header-shop-megamenu__side-link-icon"> 1757 1758 1759 <span> 1760 <strong>View the science</strong> 1761 1762 1763 <small>Research behind IASTM</small> 1764 1765 </span> 1766 1767 <span class="s-header-shop-megamenu__side-link-arrow">âº</span> 1768 </a> 1769 1770 � 1771 <a href="/pages/clinical-study" class="s-header-shop-megamenu__side-link"> 1772 1773 <img src="//sidekicktool.com/cdn/shop/files/Clinical-2.png?v=1778774169&width=80" alt="" srcset="//sidekicktool.com/cdn/shop/files/Clinical-2.png?v=1778774169&width=80 80w" width="80" height="89" loading="eager" class="s-header-shop-megamenu__side-link-icon"> 1774 1775 1776 <span> 1777 <strong>Clinical results</strong> 1778 1779 1780 <small>Outcomes from clinical trials</small> 1781 1782 </span> 1783 1784 <span class="s-header-shop-megamenu__side-link-arrow">âº</span> 1785 </a> 1786 1787 1788 </div> 1789 </div> 1790 1791 </div> 1792 1793 </div> 1794 1795 1796<!-- blocks/_header-shop-megamenu-link.liquid --> 1797 1798� 1799 <div 1800 class="s-header-shop-megamenu__item" 1801 1802 1803 > 1804 <a href="/products/axisboard" class="s-header-shop-megamenu__nav-link"> 1805 <span>AxisBoard</span> 1806 1807 1808 </a> 1809 1810 1811 </div> 1812 1813 1814<!-- blocks/_header-shop-megamenu-link.liquid --> 1815 1816� 1817 <div 1818 class="s-header-shop-megamenu__item" 1819 1820 1821 > 1822 <a href="/products/ladderpod" class="s-header-shop-megamenu__nav-link"> 1823 <span>LadderPod</span> 1824 1825 1826 </a> 1827 1828 1829 </div> 1830 1831 1832<!-- blocks/_header-shop-megamenu-link.liquid --> 1833 1834� 1835 <div 1836 class="s-header-shop-megamenu__item" 1837 1838 1839 > 1840 <a href="/products/heel-hero" class="s-header-shop-megamenu__nav-link"> 1841 <span>Heel Hero</span> 1842 1843 1844 </a> 1845 1846 1847 </div> 1848 1849 1850<!-- blocks/_header-shop-megamenu-link.liquid --> 1851 1852� 1853 <div 1854 class="s-header-shop-megamenu__item" 1855 1856 1857 > 1858 <a href="/collections/bundles" class="s-header-shop-megamenu__nav-link"> 1859 <span>Bundles</span> 1860 1861 1862 </a> 1863 1864 1865 </div> 1866 1867 1868<!-- blocks/_header-shop-megamenu-link.liquid --> 1869 1870� 1871 <div 1872 class="s-header-shop-megamenu__item" 1873 1874 1875 > 1876 <a href="/collections/accessories" class="s-header-shop-megamenu__nav-link"> 1877 <span>Strength and Mobility</span> 1878 1879 1880 </a> 1881 1882 1883 </div> 1884 1885 1886 1887 1888 1889 <div class="s-header-shop-megamenu__footer-links"> 1890 1891 <a href="/pages/contact-us"> 1892 Get Support 1893 1894 1895 <img src="//sidekicktool.com/cdn/shop/files/Contact.png?v=1778769899&width=40" alt="" srcset="//sidekicktool.com/cdn/shop/files/Contact.png?v=1778769899&width=40 40w" width="40" height="45" loading="eager" class="s-header-shop-megamenu__footer-icon"> 1896 1897 </a> 1898 1899 1900 1901 <a href="/collections/all-products">Shop All Products</a> 1902 1903 </div> 1904 1905 </div> 1906 </div> 1907 </div> 1908</li> 1909 1910<!-- blocks/_header-menu-link.liquid --> 1911 1912 1913 1914 1915<li class="s-header-menu__list-item" > 1916 <a class="s-header__interactive s-header__interactive--default" href="https://sidekicktool.com/pages/clinicians-sign-up"> 1917 Clinicians 1918 </a> 1919</li> 1920 1921 1922 1923 1924<!-- blocks/_header-menu-link.liquid --> 1925 1926 1927 1928 1929<li class="s-header-menu__list-item" > 1930 <a class="s-header__interactive s-header__interactive--default" href="/pages/athletes-v1"> 1931 Athletes 1932 </a> 1933</li> 1934 1935 1936 1937 1938<!-- blocks/_header-menu-link.liquid --> 1939 1940 1941 1942 1943<li class="s-header-menu__list-item" > 1944 <a class="s-header__interactive s-header__interactive--button" href="#quiz"> 1945 Tool Finder Quiz 1946 </a> 1947</li> 1948 1949 1950 1951 1952 1953 </ul> 1954 </nav> 1955</mega-menu-hover> 1956 1957 1958 1959 1960 1961 1962 1963 1964 <mega-menu class="s-header__utilities" aria-label="Utility" 1965 data-overlay="under-header-overlay" 1966 data-stop-videos-when-open="true" 1967 data-prevent-scroll-when-open="true" 1968 > 1969 1970 1971 1972 <div class="s-header__search-toggle tablet-lg-up"> 1973 <button 1974 class="s-header__interactive js-megamenu-trigger" 1975 type="button" 1976 aria-expanded="false" 1977 aria-controls="header-search" 1978 > 1979 1980<span class="icon icon--lg"> 1981 <svg viewBox="0 0 512 512" aria-hidden="true"><!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc.--><path d="M368 208a160 160 0 1 0-320 0 160 160 0 1 0 320 0zm-30.9 163.1C301.7 399.2 256.8 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.8-16.8 93.7-44.9 129.1L505 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-134-133.8z"/></svg> 1982 </span> 1983 <span class="sr-only"> 1984 Toggle search 1985 </span> 1986 </button> 1987 1988 <div class="s-header__dropdown js-megamenu-content" id="header-search"> 1989 <div class="container s-header__dropdown-wrapper s-header__dropdown-search"> 1990 <!-- snippets/search-bar.liquid --> 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 <!-- snippets/theme-load-assets.liquid --> 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 <link href="//sidekicktool.com/cdn/shop/t/109/assets/component-predictive-search.min.css?v=85157119467464052351773848987" as="style" rel="preload"> 2016 <link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/component-predictive-search.min.css?v=85157119467464052351773848987" media="print" onload="this.media='all'; this.setAttribute('data-is-loaded', 'true')" data-fm-asset > 2017 2018 2019 2020 2021 2022 2023 2024 <link rel="preload" href="//sidekicktool.com/cdn/shop/t/109/assets/component-predictive-search.min.js?v=15357256478848897501773848988" as="script" crossorigin="anonymous"> 2025
2025<script type="module" src="//sidekicktool.com/cdn/shop/t/109/assets/component-predictive-search.min.js?v=15357256478848897501773848988" defer data-fm-asset ></script>
2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 <predictive-search class="c-predict-search"> 2035 <form method="get" action="/search" role="search"> 2036 2037 2038
2038<script type="application/json" class="js-predict-search-params"> 2039 { 2040 "section_id": "sections--18158769242199__header", 2041 "resources[limit]": 5, 2042 "resources[limit_scope]": "each", 2043 "resources[options][fields]": "product_type,title,vendor" 2044 } 2045 </script>
2045 2046 2047 2048 <div class="input-group"> 2049 <label for="fm-id-header-2-search-bar--header-search-desktop">What are you looking for?</label> 2050 2051 <div class="input-with-button input-with-button--sm"> 2052 <input 2053 type="search" 2054 id="fm-id-header-2-search-bar--header-search-desktop" 2055 name="q" 2056 placeholder="Search products" 2057 aria-autocomplete="list" 2058 autocomplete="off" 2059 autocapitalize="off" 2060 spellcheck="false" 2061 value="" 2062 > 2063 <button class="btn btn--primary" type="submit"> 2064 2065<span class="icon icon--lg"> 2066 <svg viewBox="0 0 512 512" aria-hidden="true"><!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc.--><path d="M368 208a160 160 0 1 0-320 0 160 160 0 1 0 320 0zm-30.9 163.1C301.7 399.2 256.8 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.8-16.8 93.7-44.9 129.1L505 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-134-133.8z"/></svg> 2067 </span> 2068 2069 <span class="sr-only">Search</span> 2070 </button> 2071 </div> 2072 </div> 2073 2074 </form> 2075 2076 <!-- snippets/predictive-search-results.liquid --> 2077 2078 2079 2080 2081 2082 2083 2084<section class="c-predict-search__container js-predict-search-results"> 2085</section> 2086 2087 </predictive-search> 2088 2089 2090 </div> 2091 </div> 2092 </div> 2093 2094 2095 2096 2097 <div class="tablet-lg-up"> 2098 <div id="shopify-block-AZHJaS1kySkRZMlVFY__account-link" class="shopify-block tablet-sm-up"><!-- blocks/_header-account-link.liquid --> 2099 2100 2101 2102 2103 2104<a 2105 href="https://sidekicktool.com/customer_authentication/redirect?locale=en®ion_country=US" 2106 class="s-header__interactive" 2107> 2108 2109<span class="icon icon--lg"> 2110 <svg viewBox="0 0 448 512" aria-hidden="true"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M304 128a80 80 0 1 0-160 0 80 80 0 1 0 160 0zm-208 0a128 128 0 1 1 256 0 128 128 0 1 1-256 0zM49.3 464h349.5c-8.9-63.3-63.3-112-129-112h-91.4c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304h91.4c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3z"/></svg> 2111 </span> 2112 <span class="sr-only">Account</span> 2113</a> 2114 2115 2116 2117 2118</div> 2119 2120 </div> 2121 2122 2123 2124 <!-- snippets/cart-button.liquid --> 2125 2126 2127 2128 2129 2130 2131<!-- snippets/theme-load-assets.liquid --> 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 <link href="//sidekicktool.com/cdn/shop/t/109/assets/component-cart-button.min.css?v=179415389684115001981773848987" as="style" rel="preload"> 2142 <link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/component-cart-button.min.css?v=179415389684115001981773848987" media="print" onload="this.media='all'; this.setAttribute('data-is-loaded', 'true')" data-fm-asset > 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157<!-- snippets/modal-button.liquid --> 2158 2159 2160 2161 2162 2163 2164 2165<button 2166 type="button" 2167 class="s-header__interactive c-cart-button js-update-on-cart-change js-modal-trigger" 2168 aria-controls="cart-drawer" 2169 aria-expanded="false" 2170 aria-haspopup="dialog" 2171 data-overlay="cart-drawer-overlay" 2172 2173 id="cart-btn-open" 2174 2175 2176 2177> 2178 2179 2180<span class="icon icon--lg"> 2181 <svg viewBox="0 0 640 640" aria-hidden="true"><!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M24 48C10.7 48 0 58.7 0 72s10.7 24 24 24h45.3c3.9 0 7.2 2.8 7.9 6.6l52.1 286.3c6.2 34.2 36 59.1 70.8 59.1H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H200.1c-11.6 0-21.5-8.3-23.6-19.7l-5.1-28.3H475c30.8 0 57.2-21.9 62.9-52.2l31-165.9c3.7-19.7-11.4-37.9-31.5-37.9H124.7l-.4-2c-4.8-26.6-28-46-55.1-46H24zm184 528c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm224 0c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48z"/></svg> 2182 </span> 2183 <span class="c-cart-button__count c-cart-button__count--0" aria-hidden="true">0</span> 2184 <span class="sr-only">Cart with 0 items</span> 2185 2186</button> 2187 2188 2189 2190 2191 2192 <div class="s-header__currency-selector-placeholder hide"></div> 2193 </mega-menu> 2194 </div> 2195</div> 2196 2197 2198</div><div id="shopify-section-sections--18158769242199__mobile-drawer_K4jTA7" class="shopify-section shopify-section-group-header-group js-modal-not-inert-container"><!-- sections/mobile-drawer.liquid --> 2199 2200 2201 2202<style> 2203 .s-mobile-drawer { 2204 display: none; 2205 } 2206</style> 2207 2208 2209 2210<!-- snippets/theme-load-assets.liquid --> 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 <link rel="stylesheet" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/section-mobile-drawer.min.css?v=105194986294058139111777999133" media="print" data-is-loaded="false" data-fm-asset > 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236<section class="s-mobile-drawer " id="mobile-drawer" data-aria-label="Main Menu"> 2237 <mega-menu class="s-mobile-drawer__wrapper"> 2238 2239 2240 <nav aria-label="Mobile" class="s-mobile-drawer-nav"> 2241 2242 <!-- blocks/_mobile-drawer-product-menu.liquid --> 2243 2244 2245 2246 2247 2248<div class=" s-mobile-drawer-products" > 2249 <div class="s-mobile-drawer__eyebrow s-mobile-drawer-products__eyebrow"> 2250 OUR PRODUCTS 2251 </div> 2252 2253 <!-- blocks/_mobile-drawer-product-card.liquid --> 2254 2255 2256 2257 2258 2259 2260 <a href="/products/axisboard" class=" s-mobile-drawer-product-card" > 2261 <div class="s-mobile-drawer-product-card__image"> 2262 2263 <img src="//sidekicktool.com/cdn/shop/files/AxisBoard_Pro_PDP_Axisbioard_Pro_for_the_menu_1000x1000_px.jpg?v=1776794399&width=96" alt="mv-cart-1" srcset="//sidekicktool.com/cdn/shop/files/AxisBoard_Pro_PDP_Axisbioard_Pro_for_the_menu_1000x1000_px.jpg?v=1776794399&width=96 96w" width="96" height="96" loading="lazy"> 2264 2265 </div> 2266 2267 <div class="s-mobile-drawer-product-card__content"> 2268 <div class="s-mobile-drawer-product-card__title-row">
2269 <span class="s-mobile-drawer-product-card__title"> 2270 AxisBoard Single-Leg Balance Board 2271 </span> 2272 2273 2274 </div> 2275 2276 2277 <div class="s-mobile-drawer-product-card__subtitle">Ankle rehab & balance training at home</div> 2278 2279 </div> 2280 2281 <span class="s-mobile-drawer-product-card__arrow">âº</span> 2282 </a> 2283 2284 2285<!-- blocks/_mobile-drawer-product-card.liquid --> 2286 2287 2288 2289 2290 2291 2292 <a href="/products/ladderpod" class=" s-mobile-drawer-product-card" > 2293 <div class="s-mobile-drawer-product-card__image"> 2294 2295 <img src="//sidekicktool.com/cdn/shop/files/PDP1_LadderPod-mob_1000x1000-3.jpg?v=1757954705&width=96" alt="" srcset="//sidekicktool.com/cdn/shop/files/PDP1_LadderPod-mob_1000x1000-3.jpg?v=1757954705&width=96 96w" width="96" height="96" loading="lazy"> 2296 2297 </div> 2298 2299 <div class="s-mobile-drawer-product-card__content"> 2300 <div class="s-mobile-drawer-product-card__title-row"> 2301 <span class="s-mobile-drawer-product-card__title"> 2302 LadderPod Adjustable-Height Box 2303 </span> 2304 2305 2306 </div> 2307 2308 2309 <div class="s-mobile-drawer-product-card__subtitle">Knee & hip rehab with adjustable height</div> 2310 2311 </div> 2312 2313 <span class="s-mobile-drawer-product-card__arrow">âº</span> 2314 </a> 2315 2316 2317<!-- blocks/_mobile-drawer-product-card.liquid --> 2318 2319 2320 2321 2322 2323 2324 <a href="/products/echo-muscle-reliever" class=" s-mobile-drawer-product-card" > 2325 <div class="s-mobile-drawer-product-card__image"> 2326 2327 <img src="//sidekicktool.com/cdn/shop/files/Echo-700x700px.jpg?v=1751667720&width=96" alt="" srcset="//sidekicktool.com/cdn/shop/files/Echo-700x700px.jpg?v=1751667720&width=96 96w" width="96" height="96" loading="lazy"> 2328 2329 </div> 2330 2331 <div class="s-mobile-drawer-product-card__content"> 2332 <div class="s-mobile-drawer-product-card__title-row"> 2333 <span class="s-mobile-drawer-product-card__title"> 2334 Echo Muscle Scraper 2335 </span> 2336 2337 2338 </div> 2339 2340 2341 <div class="s-mobile-drawer-product-card__subtitle">
2341Professional-level therapy at home</div> 2342 2343 </div> 2344 2345 <span class="s-mobile-drawer-product-card__arrow">âº</span> 2346 </a> 2347 2348 2349<!-- blocks/_mobile-drawer-product-card.liquid --> 2350 2351 2352 2353 2354 2355 2356 <a href="/products/heel-hero" class=" s-mobile-drawer-product-card" > 2357 <div class="s-mobile-drawer-product-card__image"> 2358 2359 <img src="//sidekicktool.com/cdn/shop/files/HeelHero_1000x1000_831f4f77-a4e7-4275-b212-19e6fa0b0462.jpg?v=1777543137&width=96" alt="" srcset="//sidekicktool.com/cdn/shop/files/HeelHero_1000x1000_831f4f77-a4e7-4275-b212-19e6fa0b0462.jpg?v=1777543137&width=96 96w" width="96" height="96" loading="lazy"> 2360 2361 </div> 2362 2363 <div class="s-mobile-drawer-product-card__content"> 2364 <div class="s-mobile-drawer-product-card__title-row"> 2365 <span class="s-mobile-drawer-product-card__title"> 2366 Heel Hero Incline Training Platform 2367 </span> 2368 2369 2370 </div> 2371 2372 2373 <div class="s-mobile-drawer-product-card__subtitle">The first adjustable slant board with a built-in toe stretch</div> 2374 2375 </div> 2376 2377 <span class="s-mobile-drawer-product-card__arrow">âº</span> 2378 </a> 2379 2380 2381 2382 2383 2384 <a 2385 href="/collections/all-products" 2386 class="s-mobile-drawer-products__view-all" 2387 2388 style="color: #ee3932;" 2389 2390 > 2391 View all products 2392 </a> 2393 2394</div> 2395 2396 2397 2398 2399 2400 2401<ul class="s-mobile-drawer-nav__menu"></ul> 2402 2403 <!-- blocks/_header-mobile-utility-menu.liquid --> 2404 2405 2406 2407 2408 2409<ul class=" s-mobile-drawer-utility" > 2410 <!-- blocks/_header-mobile-utility-menu-link.liquid --> 2411 2412 2413 2414 2415 2416 2417 2418 <li 2419 class=" s-mobile-drawer-utility__item" 2420 2421 2422 > 2423 <a 2424 href="#quiz" 2425 class="s-mobile-drawer-utility__link" 2426 2427 > 2428 <span class="s-mobile-drawer-utility__text"> 2429 <!-- blocks/icon.liquid --> 2430 2431 2432 2433 2434 2435 2436 2437<span class="icon "> 2438 <svg viewBox="0 0 448 512" aria-hidden="true"><path d="M160 112v48h128v-48c0-35.3-28.7-64-64-64s-64 28.7-64 64zm-48 96H48v208c0 26.5 21.5 48 48 48h256c26.5 0 48-21.5 48-48V208h-64v56c0 13.3-10.7 24-24 24s-24-10.7-24-24v-56H160v56c0 13.3-10.7 24-24 24s-24-10.7-24-24v-56zm0-48v-48C112 50.1 162.1 0 224 0s112 50.1 112 112v48h64c26.5 0 48 21.5 48 48v208c0 53-43 96-96 96H96c-53 0-96-43-96-96V208c0-26.5 21.5-48 48-48h64z"/></svg> 2439 </span> 2440 2441 2442 2443 2444 2445 2446 Tool Finder Quiz 2447 </span> 2448 2449 2450 </a> 2451 </li> 2452 2453 2454 2455 2456 2457<!-- blocks/_header-mobile-utility-menu-link.liquid --> 2458 2459 2460 2461 2462 2463 2464 2465 <li 2466 class=" s-mobile-drawer-utility__item" 2467 2468 2469 > 2470 <a 2471 href="https://sidekicktool.com/pages/clinicians-sign-up" 2472 class="s-mobile-drawer-utility__link" 2473 2474 > 2475 <span class="s-mobile-drawer-utility__text"> 2476 <!-- blocks/icon.liquid --> 2477 2478 2479 2480 2481 2482 2483 2484<span class="icon "> 2485 <svg viewBox="0 0 640 640" aria-hidden="true"><!--!Font Awesome Pro 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc.--><path d="m311.6 95 8.4 11.7 8.4-11.7c14.1-19.5 36.7-31 60.7-31 41.4 0 74.9 33.5 74.9 74.9v2.4c0 64.4-82 133.4-122.2 163.3-13 9.7-30.5 9.7-43.5 0-40.2-30-122.3-98.9-122.2-163.3v-2.4c0-41.4 33.5-74.9 74.9-74.9 24 0 46.6 11.5 60.7 31zm-92.2 305c-7.9 0-15.6 2.3-22.2 6.7L117.3 460c-3.9 2.6-8.6 4-13.3 4H56c-13.3 0-24-10.7-24-24s10.7-24 24-24h40.7l73.8-49.2C185 357.1 202 352 219.4 352H352c35.3 0 64 28.7 64 64 0 5.5-.7 10.9-2 16h10.6l69.9-47.9c33.5-23 79.4-12.9 100.3 21.9 19.2 32 10.1 73.5-20.7 94.5L494 555.1c-19.9 13.6-43.5 20.9-67.6 20.9H56c-13.3 0-24-10.7-24-24s10.7-24 24-24h370.4c14.5 0 28.6-4.4 40.6-12.5l80-54.6c9.9-6.7 12.8-20 6.6-30.2-6.7-11.1-21.3-14.3-32-7l-76 52.1c-4 2.7-8.7 4.2-13.6 4.2H288c-13.3 0-24-10.7-24-24s10.7-24 24-24h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H219.4z"/></svg> 2486 </span> 2487 2488 2489 2490 2491 2492 2493 Clinicians 2494 </span> 2495 2496 2497 </a> 2498 </li> 2499 2500 2501 2502 2503 2504<!-- blocks/_header-mobile-utility-menu-link.liquid --> 2505 2506 2507 2508 2509 2510 2511 2512 <li 2513 class=" s-mobile-drawer-utility__item" 2514 2515 2516 > 2517 <a 2518 href="https://sidekicktool.com/pages/athletes-v1" 2519 class="s-mobile-drawer-utility__link" 2520 2521 > 2522 <span class="s-mobile-drawer-utility__text"> 2523 <!-- blocks/icon.liquid --> 2524 2525 2526 2527 2528 2529 2530 2531 <!-- snippets/image-static-size.liquid --> 2532 2533<img 2534 width="36" 2535 height="36" 2536 data-image-load="lazy" 2537 2538 alt="" 2539 2540 style="object-position:50.0% 50.0%;" 2541 class=" icon icon--sm media-image media-image--static" 2542 loading='lazy' 2543 data-srcset="//sidekicktool.com/cdn/shop/files/Athletes_c7598cf7-6c88-454a-872d-6b7631371f0f.svg?crop=center&height=36&v=1782224890&width=36 1x, //sidekicktool.com/cdn/shop/files/Athletes_c7598cf7-6c88-454a-872d-6b7631371f0f.svg?crop=center&height=72&v=1782224890&width=72 2x" 2544 data-original-image="//sidekicktool.com/cdn/shop/files/Athletes_c7598cf7-6c88-454a-872d-6b7631371f0f.svg?v=1782224890" 2545 src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E" 2546 > 2547 2548 2549 2550 2551 2552 2553 Athletes 2554 </span> 2555 2556 2557 </a> 2558 </li> 2559 2560 2561 2562 2563 2564<!-- blocks/_header-mobile-utility-menu-link.liquid --> 2565 2566 2567 2568 2569 2570 2571 2572 <li 2573 class=" s-mobile-drawer-utility__item" 2574 2575 2576 > 2577 <a 2578 href="/collections/bundles" 2579 class="s-mobile-drawer-utility__link" 2580 2581 > 2582 <span class="s-mobile-drawer-utility__text"> 2583 <!-- blocks/icon.liquid --> 2584 2585 2586 2587 2588 2589 2590 2591 <!-- snippets/image-static-size.liquid --> 2592 2593<img 2594 width="36" 2595 height="36" 2596 data-image-load="lazy" 2597 2598 alt="" 2599 2600 style="object-position:50.0% 50.0%;" 2601 class=" icon icon--sm media-image media-image--static" 2602 loading='lazy' 2603 data-srcset="//sidekicktool.com/cdn/shop/files/Bundle_062d3405-8b81-47f5-90b9-33cd412d3ab5.svg?crop=center&height=36&v=1782224870&width=36 1x, //sidekicktool.com/cdn/shop/files/Bundle_062d3405-8b81-47f5-90b9-33cd412d3ab5.svg?crop=center&height=72&v=1782224870&width=72 2x" 2604 data-original-image="//sidekicktool.com/cdn/shop/files/Bundle_062d3405-8b81-47f5-90b9-33cd412d3ab5.svg?v=1782224870" 2605 src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E" 2606 > 2607 2608 2609 2610 2611 2612 2613 Bundle and save 2614 </span> 2615 2616 2617 </a> 2618 </li> 2619 2620 2621 2622 2623 2624<!-- blocks/_header-mobile-utility-menu-link.liquid --> 2625 2626 2627 2628 2629 2630 2631 2632 <li 2633 class=" s-mobile-drawer-utility__item" 2634 2635 2636 > 2637 <a 2638 href="/pages/contact-us" 2639 class="s-mobile-drawer-utility__link" 2640 2641 > 2642 <span class="s-mobile-drawer-utility__text"> 2643 <!-- blocks/icon.liquid --> 2644 2645 2646 2647 2648 2649 2650 2651<span class="icon "> 2652 <svg viewBox="0 0 512 512" aria-hidden="true"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M160 368c26.5 0 48 21.5 48 48v16l72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6H448c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h96zm48 124-.2.2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3v-80H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0h384c35.3 0 64 28.7 64 64v288c0 35.3-28.7 64-64 64H309.3L208 492z"/>
2652</svg> 2653 </span> 2654 2655 2656 2657 2658 2659 2660 Get support 2661 </span> 2662 2663 2664 </a> 2665 </li> 2666 2667 2668 2669 2670 2671<!-- blocks/_header-mobile-utility-menu-link.liquid --> 2672 2673 2674 2675 2676 2677 2678 2679 <li 2680 class=" s-mobile-drawer-utility__item" 2681 2682 2683 > 2684 <a 2685 href="/account" 2686 class="s-mobile-drawer-utility__link" 2687 2688 > 2689 <span class="s-mobile-drawer-utility__text"> 2690 <!-- blocks/icon.liquid --> 2691 2692 2693 2694 2695 2696 2697 2698<span class="icon "> 2699 <svg viewBox="0 0 448 512" aria-hidden="true"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M304 128a80 80 0 1 0-160 0 80 80 0 1 0 160 0zm-208 0a128 128 0 1 1 256 0 128 128 0 1 1-256 0zM49.3 464h349.5c-8.9-63.3-63.3-112-129-112h-91.4c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304h91.4c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3z"/></svg> 2700 </span> 2701 2702 2703 2704 2705 2706 2707 Log in / Create account 2708 </span> 2709 2710 2711 </a> 2712 </li> 2713 2714 2715 2716 2717 2718 2719</ul> 2720 2721 2722 2723 2724 2725 </nav> 2726 2727 2728 2729 <!-- blocks/_mobile-drawer-header.liquid --> 2730 2731 2732 2733 2734 2735 2736<section class=" s-mobile-drawer-footer" > 2737 2738</section> 2739 2740 2741 2742 2743 2744 </mega-menu> 2745</section> 2746 2747 2748 2749</div> 2750<!-- END sections: header-group --> 2751 </header> 2752 2753 2754 2755 <!-- snippets/theme-overlays.liquid --> 2756 2757 2758 2759<div class="overlay overlay--under-header" aria-hidden="true" id="under-header-overlay"></div> 2760<div class="overlay overlay--under-header" aria-hidden="true" id="under-header-overlay-alt"></div> 2761<div class="overlay overlay--mobile-drawer" aria-hidden="true" id="mobile-drawer-overlay"></div> 2762<div class="overlay overlay--above-header" aria-hidden="true" id="above-header-overlay"></div> 2763<div class="overlay overlay--modals" aria-hidden="true" id="modals-overlay"></div> 2764<div class="overlay overlay--cart-drawer" aria-hidden="true" id="cart-drawer-overlay"></div> 2765<div class="overlay overlay--above-modals" aria-hidden="true" id="above-modals-overlay"></div> 2766 2767 2768 2769 2770 <main id="MainContent" role="main" tabindex="-1"> 2771 2772 2773 2774 <div id="shopify-section-template--18158769700951__banner" class="shopify-section"><!-- sections/hero-text-only.liquid --> 2775 2776 2777 2778 2779<!-- snippets/theme-load-assets.liquid --> 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 <link href="//sidekicktool.com/cdn/shop/t/109/assets/section-hero-text-only.min.css?v=56531445368607181881789411675" as="style" rel="preload"> 2790 <link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/section-hero-text-only.min.css?v=56531445368607181881789411675" media="print" onload="this.media='all'; this.setAttribute('data-is-loaded', 'true')" data-fm-asset > 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802<!-- snippets/theme-section-spacing.liquid --> 2803 2804 2805 2806 2807 2808<style data-shopify>#hero-text-template--18158769700951__banner { 2809 padding-block: 0rem 0rem; 2810 }</style> 2811 2812 2813<style data-shopify>#shopify-section-template--18158769700951__banner { 2814 2815 2816 --mobile-text-alignment: center; 2817 --desktop-text-alignment: center; 2818 --mobile-items-alignment: center; 2819 2820 2821 --desktop-items-alignment: center; 2822 2823 }</style> 2824 2825<section id="hero-text-template--18158769700951__banner" class="s-hero-text surface-light" > 2826 <div class="container-medium s-hero-text__container"> 2827 <div class="s-hero-text__content"> 2828 <div class="s-hero-text__header"> 2829 2830 <!-- blocks/text-heading.liquid --> 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 <h1 class="t-heading t-heading--s-lg t-light t-center s-hero-text__title" >We'd love to hear from you.</h1> 2842 2843 2844 2845 2846 2847 2848 </div> 2849 2850 <!-- blocks/text-richtext.liquid --> 2851 2852 2853 2854 2855 2856 2857 2858 <div id="Ad256bGVGT3BnNWxZQ__text" class="rte b-text-richtext t-display--s-md t-center s-hero-text__text" ><p>If you need to contact us with questions, feedback, testimonial or a suggestion, you can send us an email to <a href="mailto:[email protected]">[email protected]</a>, call us at 1-877-897-KICK (1-877-897-5425) or send us a message using the form below. All emails are typically responded to within 24 to 48 hours, except weekends and holidays.</p></div> 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 </div> 2869 </div> 2870</section> 2871 2872 2873 2874 2875</div><div id="shopify-section-template--18158769700951__main" class="shopify-section"><!-- sections/contact-form.liquid --> 2876 2877 2878 2879 2880 2881 2882 2883<!-- snippets/theme-load-assets.liquid --> 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 <link href="//sidekicktool.com/cdn/shop/t/109/assets/section-contact-form.min.css?v=15146792191949713141773849056" as="style" rel="preload"> 2894 <link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/section-contact-form.min.css?v=15146792191949713141773849056" media="print" onload="this.media='all'; this.setAttribute('data-is-loaded', 'true')" data-fm-asset > 2895 2896 2897 2898 <link href="//sidekicktool.com/cdn/shop/t/109/assets/component-contact-form.min.css?v=93181398616690562191773848989" as="style" rel="preload"> 2899 <link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/component-contact-form.min.css?v=93181398616690562191773848989" media="print" onload="this.media='all'; this.setAttribute('data-is-loaded', 'true')" data-fm-asset > 2900 2901 2902 2903 <link href="//sidekicktool.com/cdn/shop/t/109/assets/component-form.min.css?v=70896762959811336681773848987" as="style" rel="preload"> 2904 <link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/component-form.min.css?v=70896762959811336681773848987" media="print" onload="this.media='all'; this.setAttribute('data-is-loaded', 'true')" data-fm-asset > 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916<!-- snippets/theme-section-spacing.liquid --> 2917 2918 2919 2920 2921 2922<style data-shopify>#shopify-section-template--18158769700951__main { 2923 padding-block: var(--grid-section-md) var(--grid-section-lg); 2924 }</style> 2925 2926 2927 2928<section class="container-medium s-contact-form" > 2929
2930 <h2 class="t-heading t-center s-contact-form__title">Get In Touch</h2> 2931 2932 2933 <form method="post" action="/contact#contact-form-template--18158769700951__main" id="contact-form-template--18158769700951__main" accept-charset="UTF-8" class="c-contact-form"><input type="hidden" name="form_type" value="contact" /><input type="hidden" name="utf8" value="â" /> 2934 <div class="c-contact-form__messages"> 2935 2936 2937 2938 2939 2940 2941 2942 </div> 2943 2944 2945 2946 2947 2948 2949 <div class="c-contact-form__fields"> 2950 <div class="c-contact-form__fields-group"> 2951 2952 2953 2954<!-- snippets/contact-form-field.liquid --> 2955 2956 2957 2958 2959<div class="input-group c-contact-form__field-name"> 2960 2961 2962 2963 <label for="contact-form-field-contact_form_field_KAJ6nq" class="sr-only"> 2964 Name 2965 </label> 2966 2967 2968 2969 2970 2971 <input 2972 type="text" 2973 id="contact-form-field-contact_form_field_KAJ6nq" 2974 name="contact[name]" 2975 autocapitalize="words" 2976 value="" 2977 2978 placeholder="Name" 2979 > 2980 2981 2982</div> 2983 2984 2985 2986 2987<!-- snippets/contact-form-field.liquid --> 2988 2989 2990 2991 2992<div class="input-group c-contact-form__field-email"> 2993 2994 2995 2996 <label for="contact-form-field-contact_form_field_c4wdLf" class="sr-only"> 2997 Email 2998 </label> 2999 3000 3001 3002 3003 3004 <input 3005 type="email" 3006 id="contact-form-field-contact_form_field_c4wdLf" 3007 name="contact[email]" 3008 autocorrect="off" 3009 autocapitalize="off" 3010 value="" 3011 required 3012 3013 placeholder="Email" 3014 > 3015 3016 3017</div> 3018 3019 3020 3021 3022<!-- snippets/contact-form-field.liquid --> 3023 3024 3025 3026 3027<div class="input-group c-contact-form__field-phone"> 3028 3029 3030 3031 <label for="contact-form-field-contact_form_field_jaLrL8" class="sr-only"> 3032 Your Phone 3033 </label> 3034 3035 3036 3037 3038 3039 <input 3040 type="tel" 3041 id="contact-form-field-contact_form_field_jaLrL8" 3042 name="contact[phone]" 3043 value="" 3044 3045 placeholder="Your Phone" 3046 > 3047 3048 3049</div> 3050 3051 3052 3053 3054 3055 </div> 3056 3057 <div class="c-contact-form__fields-group"> 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070<!-- snippets/contact-form-field.liquid --> 3071 3072 3073 3074 3075<div class="input-group c-contact-form__field-body"> 3076 3077 3078 3079 <label for="contact-form-field-contact_form_field_XPGrzf" class="sr-only"> 3080 Your Comment 3081 </label> 3082 3083 3084 3085 3086 3087 <textarea 3088 id="contact-form-field-contact_form_field_XPGrzf" 3089 name="contact[body]" 3090 rows="5" 3091 placeholder="Your Comment" 3092 ></textarea> 3093 3094 3095</div> 3096 3097 3098 </div> 3099 </div> 3100 3101 3102 3103 <div class="c-contact-form__actions"> 3104 <button type="submit" class="btn btn--secondary">Send Message</button> 3105 3106 3107 3108 <!-- snippets/form-captcha-disclaimer.liquid --> 3109 3110 3111 3112 3113 3114 3115 3116 </div> 3117 3118 3119 3120 </form> 3121</section> 3122 3123 3124</div> 3125 3126 </main> 3127 3128 3129 3130 <footer aria-label="Footer" role="contentinfo"> 3131 <!-- BEGIN sections: footer-group --> 3132<div id="shopify-section-sections--18158769176663__footer_Q9DmYL" class="shopify-section shopify-section-group-footer-group"><!-- sections/footer.liquid --> 3133 3134 3135 3136<!-- snippets/theme-load-assets.liquid --> 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 <link rel="stylesheet" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/section-footer.min.css?v=71874045911679578391785423066" media="print" data-is-loaded="false" data-fm-asset > 3147 3148 3149 3150 3151 3152 3153 3154
3154<script type="module" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/component-accordion-native.min.js?v=169612067287940672751773848988" data-fm-asset ></script>
3154 3155 3156 3157 3158 3159 3160 3161 3162<!-- snippets/theme-section-spacing.liquid --> 3163 3164 3165 3166 3167 3168<style data-shopify>#shopify-section-sections--18158769176663__footer_Q9DmYL { 3169 padding-block: 0rem 0rem; 3170 }</style> 3171 3172 3173 3174 3175 3176 3177 3178<div class="s-footer-back-to-top"> 3179 <button 3180 type="button" 3181 class="s-footer-back-to-top__button" 3182 onclick="window.scrollTo({ top: 0, behavior: 'smooth' });" 3183 > 3184 <span>Back to top</span> 3185 <span aria-hidden="true">â</span> 3186 </button> 3187</div> 3188 3189<div class="s-footer surface-dark"> 3190 <div class="container-footer"> 3191 3192 3193 3194 <div class="s-footer__logo mobile-down"> 3195 <!-- snippets/image.liquid --><picture data-image-load="lazy" class="media-image " > 3196 <source 3197 sizes="1px" 3198 data-srcset=" 3199 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=180 180w, 3200 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=260 260w, 3201 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=360 360w, 3202 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=480 480w, 3203 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=640 640w, 3204 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=800 800w, 3205 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=1000 1000w, 3206 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=1200 1200w, 3207 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=1600 1600w, 3208 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=2000 2000w, 3209 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=2600 2600w, 3210 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=3200 3200w 3211 " 3212 > 3213 3214 <img 3215 width="451" 3216 height="53" 3217 alt="" 3218 class="" 3219 3220 3221 style="object-position:50.0% 50.0%;" 3222 3223 data-original-image="//sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686" 3224 src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E" 3225 > 3226 </picture> 3227 </div> 3228 3229 3230 3231 3232 <!-- blocks/_footer-header.liquid --> 3233 3234 3235 3236 3237 3238<div class="s-footer__header mobile-lg-up" > 3239 <div class="s-footer__header-inner"> 3240 <div class="s-footer__header-text"><span class="s-footer__header-title">Got other questions? Sidekick is here to help.</span></div><div class="s-footer__header-cta-wrapper"> 3241 <a href="/pages/contact-us" class="s-footer__header-cta"> 3242 Get Support 3243 </a> 3244 </div></div> 3245</div> 3246 3247 3248 3249 3250 3251 3252 3253 <div class="s-footer__main"> 3254 3255 3256 <!-- blocks/_footer-nav.liquid --> 3257 3258 3259 3260 3261 3262 3263<div class="s-footer__nav" > 3264 3265 3266 <!-- snippets/theme-load-assets.liquid --> 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 <link rel="stylesheet" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/component-footer-nav.min.css?v=63702262912174147361773848987" media="print" data-is-loaded="false" data-fm-asset > 3277 3278 3279 3280 3281 3282 3283 3284
3284<script type="module" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/component-accordion-custom.min.js?v=156027120758326840231773848987" data-fm-asset ></script>
3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 <ul class="c-footer-nav s-footer__nav c-footer-nav--has-multiple-menus" > 3294 3295 <!-- blocks/_footer-nav-menu.liquid --> 3296 3297 3298 3299 3300 3301 3302<li class="c-footer-nav__menu " > 3303 <span class="c-footer-nav__menu-title"> 3304 Products 3305 </span> 3306 3307 <div class="c-footer-nav__menu-content"> 3308 <ul class="c-footer-nav__list"> 3309 3310 <li> 3311 <a href="/collections/scraping-tools" class="c-footer-nav__link"> 3312 Muscle Scrapers 3313 </a> 3314 </li> 3315 3316 <li> 3317 <a href="/collections/bundles" class="c-footer-nav__link"> 3318 Bundles 3319 </a> 3320 </li> 3321 3322 <li> 3323 <a href="/collections/topical-recovery" class="c-footer-nav__link"> 3324 Topical Recovery 3325 </a> 3326 </li> 3327 3328 <li> 3329 <a href="/collections/mobility" class="c-footer-nav__link"> 3330 Mobility and Strength Tools 3331 </a> 3332 </li> 3333 3334 <li> 3335 <a href="/collections/all-products" class="c-footer-nav__link"> 3336 Shop All 3337 </a> 3338 </li> 3339 3340 </ul> 3341 </div> 3342</li> 3343 3344 3345 3346 3347<!-- blocks/_footer-nav-menu.liquid --> 3348 3349 3350 3351 3352 3353 3354<li class="c-footer-nav__menu " > 3355 <span class="c-footer-nav__menu-title"> 3356 Support 3357 </span> 3358 3359 <div class="c-footer-nav__menu-content"> 3360 <ul class="c-footer-nav__list"> 3361 3362 <li> 3363 <a href="/pages/faq-2" class="c-footer-nav__link"> 3364 FAQ 3365 </a> 3366 </li> 3367 3368 <li> 3369 <a href="/pages/contact-us" class="c-footer-nav__link"> 3370 Contact us 3371 </a> 3372 </li> 3373 3374 <li> 3375 <a href="/pages/shipping" class="c-footer-nav__link"> 3376 Shipping 3377 </a> 3378 </li> 3379 3380 <li> 3381 <a href="https://sidekicktool.com/pages/return-policy" class="c-footer-nav__link"> 3382 Returns 3383 </a> 3384 </li> 3385 3386 <li> 3387 <a href="https://sidekicktool.com/pages/truemed-fsa-hsa" class="c-footer-nav__link"> 3388 FSA/HSA 3389 </a> 3390 </li> 3391 3392 <li> 3393 <a href="/pages/store-locator" class="c-footer-nav__link"> 3394 Where To Buy 3395 </a> 3396 </li> 3397 3398 <li> 3399 <a href="/pages/wholesale" class="c-footer-nav__link"> 3400 Wholesale 3401 </a> 3402 </li> 3403 3404 </ul> 3405 </div> 3406</li> 3407 3408 3409 3410 3411<!-- blocks/_footer-nav-menu.liquid --> 3412 3413 3414 3415 3416 3417 3418<li class="c-footer-nav__menu " > 3419 <span class="c-footer-nav__menu-title"> 3420 Learn 3421 </span> 3422 3423 <div class="c-footer-nav__menu-content"> 3424 <ul class="c-footer-nav__list"> 3425 3426 <li> 3427 <a href="https://learn.sidekicktool.com/" class="c-footer-nav__link"> 3428 How To Use 3429 </a> 3430 </li> 3431 3432 <li> 3433 <a href="https://sidekicktool.com/pages/science-of-scraping" class="c-footer-nav__link"> 3434 View The Science 3435 </a> 3436 </li> 3437 3438 <li> 3439 <a href="https://sidekicktool.com/pages/clinical-study" class="c-footer-nav__link"> 3440 Clinical Results 3441 </a> 3442 </li> 3443 3444 </ul> 3445 </div> 3446</li> 3447 3448 3449 3450 3451<!-- blocks/_footer-nav-menu.liquid --> 3452 3453 3454 3455 3456 3457 3458<li class="c-footer-nav__menu " > 3459 <span class="c-footer-nav__menu-title"> 3460 About 3461 </span> 3462 3463 <div class="c-footer-nav__menu-content"> 3464 <ul class="c-footer-nav__list"> 3465 3466 <li> 3467 <a href="/pages/about-us" class="c-footer-nav__link"> 3468 Our Story 3469 </a> 3470 </li> 3471 3472 <li> 3473 <a href="/pages/athletes-v1" class="c-footer-nav__link"> 3474 Sidekick Athletes 3475 </a> 3476 </li> 3477 3478 <li> 3479 <a href="https://sidekickblog.com/" class="c-footer-nav__link"> 3480 Sidekick Blog 3481 </a> 3482 </li> 3483 3484 </ul> 3485 </div> 3486</li> 3487 3488 3489 3490 3491 3492 3493 </ul> 3494</div> 3495 3496 3497 3498 3499 3500 3501 <div class="s-footer__social-newsletter"> 3502 3503 3504 <!-- blocks/newsletter.liquid --> 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515<section class="c-newsletter c-newsletter--klaviyo-embed s-footer__newsletter" > 3516 3517 3518 <!-- snippets/theme-load-assets.liquid --> 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 <link rel="stylesheet" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/component-newsletter.min.css?v=33093732606551791941773848986" media="print" data-is-loaded="false" data-fm-asset > 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 <div class="c-newsletter__text"> 3544 3545 3546 3547 3548 3549 <!-- blocks/text-inline-richtext.liquid --> 3550 3551 3552 3553 3554 3555 3556 3557 <div class="t-body c-social-text b-text-inline-richtext rte " > 3558 Sign up for our newsletter to learn more about Sidekick tools, discounts and promotions. 3559 </div> 3560 3561 3562 3563 3564 3565 3566 3567 </div> 3568 3569 3570 <div class="klaviyo-form-V8n5kX"></div> 3571 3572</section> 3573 3574 3575 3576 3577 3578 3579 3580 3581 <div class="s-footer__social"> 3582 <!-- blocks/social-links.liquid --> 3583 3584 3585 3586 3587 3588 3589 3590 <!-- snippets/theme-load-assets.liquid --> 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 <link rel="stylesheet" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/component-social-links.min.css?v=17554150472095
36005708041785420039" media="print" data-is-loaded="false" data-fm-asset > 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 <span class="t-body c-social-text"> 3617 Follow us: 3618 </span> 3619 3620 3621 <ul class="c-social-links"> 3622 <!-- blocks/_social-link.liquid --> 3623 3624 3625 3626 3627 3628 3629<li class="" > 3630 <a href="https://www.facebook.com/SidekickTool" class="c-social-links__link" title="Facebook" target="_blank" rel="noopener"> 3631 <span class="sr-only"> Facebook (Opens in a new window.) </span> 3632 <!-- snippets/fa-icon-brands.liquid --> 3633<span class="icon icon--md "> 3634 <svg viewBox="0 0 512 512" aria-hidden="true"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256c0 120 82.7 220.8 194.2 248.5V334.2h-52.8V256h52.8v-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287v175.9C413.8 494.8 512 386.9 512 256z"/></svg> 3635 </span> 3636 </a> 3637</li> 3638 3639 3640 3641 3642<!-- blocks/_social-link.liquid --> 3643 3644 3645 3646 3647 3648 3649<li class="" > 3650 <a href="https://www.instagram.com/sidekicktool/?hl=en" class="c-social-links__link" title="Instagram" target="_blank" rel="noopener"> 3651 <span class="sr-only"> Instagram (Opens in a new window.) </span> 3652 <!-- snippets/fa-icon-brands.liquid --> 3653<span class="icon icon--md "> 3654 <svg viewBox="0 0 448 512" aria-hidden="true"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"/></svg> 3655 </span> 3656 </a> 3657</li> 3658 3659 3660 3661 3662<!-- blocks/_social-link.liquid --> 3663 3664 3665 3666 3667 3668 3669<li class="" > 3670 <a href="https://www.youtube.com/channel/UCWqy8TX0q2o5jenmWA28nFQ" class="c-social-links__link" title="Youtube" target="_blank" rel="noopener"> 3671 <span class="sr-only"> Youtube (Opens in a new window.) </span> 3672 <!-- snippets/fa-icon-brands.liquid --> 3673<span class="icon icon--md "> 3674 <svg viewBox="0 0 576 512" aria-hidden="true"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M549.7 124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8 64 288 64 288 64S117.2 64 74.6 75.5c-23.5 6.3-42 24.9-48.3 48.6C14.9 167 14.9 256.4 14.9 256.4s0 89.4 11.4 132.3c6.3 23.7 24.8 41.5 48.3 47.8C117.2 448 288 448 288 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zM232.2 337.6V175.2l142.7 81.2-142.7 81.2z"/></svg> 3675 </span> 3676 </a> 3677</li> 3678 3679 3680 3681 3682 3683 </ul> 3684 3685 3686 3687 3688 3689 </div> 3690 </div> 3691 </div> 3692 3693 3694 3695 <div class="s-footer__bottom"> 3696 <div class="s-footer__bottom-inner"> 3697 3698 3699 3700 <div class="s-footer__bottom-logo mobile-lg-up"> 3701 <!-- snippets/image.liquid --><picture data-image-load="lazy" class="media-image " > 3702 <source 3703 sizes="1px" 3704 data-srcset=" 3705 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=180 180w, 3706 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=260 260w, 3707 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=360 360w, 3708 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=480 480w, 3709 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=640 640w, 3710 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=800 800w, 3711 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=1000 1000w, 3712 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=1200 1200w, 3713 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=1600 1600w, 3714 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=2000 2000w, 3715 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=2600 2600w, 3716 //sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686&width=3200 3200w 3717 " 3718 > 3719 3720 <img 3721 width="451" 3722 height="53" 3723 alt="" 3724 class="" 3725 3726 3727 style="object-position:50.0% 50.0%;" 3728 3729 data-original-image="//sidekicktool.com/cdn/shop/files/Asset_2_3x_2048x_ad437d49-0c5d-40ca-86dd-0f415305997e.webp?v=1756354686" 3730 src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E" 3731 > 3732 </picture> 3733 </div> 3734 3735 3736 3737 3738 <div class="s-footer__bottom-inner-menu">
3739 <div class="s-footer__copyright"> 3740 © 2026. All rights reserved. 3741 </div> 3742 3743 3744<ul class="s-footer__utility-menu"> 3745 <li class="s-footer__utility-menu-item"> 3746 <a href="/pages/privacy-policy" class="s-footer__bottom-link"> 3747 Privacy 3748 </a> 3749 </li> 3750 <li class="s-footer__utility-menu-item"> 3751 <a href="/pages/terms-of-use" class="s-footer__bottom-link"> 3752 Terms of Service 3753 </a> 3754 </li></ul></div> 3755 </div> 3756 </div> 3757 </div> 3758</div> 3759 3760 3761<style> #shopify-section-sections--18158769176663__footer_Q9DmYL img {width: 90%;} #shopify-section-sections--18158769176663__footer_Q9DmYL .s-footer {background-color: var(--neutral-darker);} </style></div><div id="shopify-section-sections--18158769176663__cart" class="shopify-section shopify-section-group-footer-group"><!-- sections/cart-drawer.liquid --> 3762 3763 3764 3765<!-- snippets/theme-load-assets.liquid --> 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 <link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/section-cart-drawer.min.css?v=6177877897685960791787228926" media="print" onload="this.media='all'; this.setAttribute('data-is-loaded', 'true')" data-fm-asset > 3776 3777 3778 3779 3780 3781 3782 3783
3783<script type="module" src="//sidekicktool.com/cdn/shop/t/109/assets/component-cart.min.js?v=73414559517668200241785344779" defer data-fm-asset ></script>
3783 3784 3785 3786 3787 3788 3789 3790 3791<!-- snippets/theme-load-assets.liquid --> 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805
3805<script type="module" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/component-cart-injury-dropdown.min.js?v=44936528013960695871773848986" data-fm-asset data-preserve-asset="true"></script>
3805 3806 3807 3808 3809 3810 3811 3812 3813<!-- snippets/theme-load-assets.liquid --> 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827
3827<script type="module" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/component-fm-x-cart-gift-with-purchase.min.js?v=87028315237453024911773848985" data-fm-asset data-preserve-asset="true"></script>
3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842<style> 3843 .s-cart-drawer { 3844 display: none; 3845 } 3846</style> 3847 3848 3849 3850<div class="s-cart-drawer " data-aria-label="Shopping Cart" id="cart-drawer"> 3851 <div class="s-cart-drawer__wrapper js-update-on-cart-change" data-aria-label="Cart Contents"> 3852 3853 3854 <div class="s-cart-drawer__header"> 3855 <div class="s-cart-drawer__title"> 3856 Your Cart 3857 3858 <span class="sr-only">0 items</span> 3859 </div> 3860 3861 <button class="s-cart-drawer__close js-modal-close" id="cart-btn-close" aria-expanded="false"> 3862 <span class="sr-only">Close Cart Drawer</span> 3863 3864<span class="icon icon--lg"> 3865 <svg viewBox="0 0 384 512" aria-hidden="true"><path d="M345 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-119 119L73 103c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l119 119L39 375c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l119-119L311 409c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-119-119L345 137z"/></svg> 3866 </span> 3867 </button> 3868 </div> 3869 3870 3871 3872 <!-- blocks/_cart-drawer-header.liquid --> 3873 3874 3875 3876 3877 3878<section class="s-cart-drawer__merchant-header " > 3879 <div id="shopify-block-AYlk0MXRCaFJwR3ppb__cart_meter_simple_UyGm77" class="shopify-block"><!-- blocks/_cart-meter-simple.liquid --> 3880 3881 3882 3883 3884 3885<!-- snippets/theme-load-assets.liquid --> 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 <link rel="stylesheet" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/component-cart-meter-simple.min.css?v=142469865658525843271773848986" media="print" data-is-loaded="false" data-fm-asset data-preserve-asset="true"> 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916</div> 3917<!-- blocks/_cart-drawer-highlight-icons.liquid --> 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929<!-- blocks/_cart-drawer-highlight-icons.liquid --> 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941<!-- blocks/_cart-drawer-highlight-icons.liquid --> 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953<!-- blocks/_cart-drawer-highlight-icons.liquid --> 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965<!-- blocks/_cart-drawer-highlight-icons.liquid --> 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978</section> 3979 3980 3981 3982 3983 3984 3985 3986 3987 <div class="s-cart-drawer__main js-cart-main" tabindex="0" id="cart-drawer-main"> 3988 3989 3990 3991 3992 3993 3994 3995 <div class="s-cart-drawer__empty"><div class="s-cart-drawer__empty-title"> 3996 Best sellers 3997 </div><div class="s-cart-drawer__empty-subtitle"> 3998 Clinically proven tools, trusted by physical therapists 3999 </div> 4000 4001 <!-- blocks/_cart-drawer-links.liquid --> 4002 4003 4004 4005 4006 4007<!-- snippets/theme-load-assets.liquid --> 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 <link rel="stylesheet" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/component-cart-drawer-links.min.css?v=26146005531185303461778494006" media="print" data-is-loaded="false" data-fm-asset data-preserve-asset="true"> 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032<div class="c-cart-drawer-links" > 4033 4034<div class="c-cart-drawer-links__title" id="cart-drawer-links-title"> 4035 Products 4036 </div><ul class="c-cart-drawer-links__list" aria-labelledby="cart-drawer-links-title"> 4037 <!-- blocks/_cart-drawer-link.liquid --> 4038 4039 4040 4041 4042 <li class=" c-cart-drawer-links__item" > 4043 4044 <!-- snippets/image-static-size.liquid --> 4045 4046<img 4047 width="60" 4048 height="60" 4049 data-image-load="lazy" 4050 4051 alt="mv-cart-1" 4052 4053 style="object-position:50.0% 50.0%;" 4054 class=" c-cart-drawer-links__image media-image media-image--static" 4055 loading='lazy' 4056 data-srcset="//sidekicktool.com/cdn/shop/files/AxisBoard_Pro_PDP_Axisbioard_Pro_for_the_menu_1000x1000_px.jpg?crop=center&height=60&v=1776794399&width=60 1x, //sidekicktool.com/cdn/shop/files/AxisBoard_Pro_PDP_Axisbioard_Pro_for_the_menu_1000x1000_px.jpg?crop=center&height=120&v=1776794399&width=120 2x" 4057 data-original-image="//sidekicktool.com/cdn/shop/files/AxisBoard_Pro_PDP_Axisbioard_Pro_for_the_menu_1000x1000_px.jpg?v=1776794399" 4058 src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E" 4059 > 4060 4061 <div class="c-cart-drawer-links__content"> 4062 <div class="c-cart-drawer-links__text"> 4063 <a href="/products/axisboard" class="c-cart-drawer-links__link"> 4064 AxisBoard Balance Board 4065 4066 </a> 4067 4068 <div class="c-cart-drawer-links__detail"> 4069 Strengthen your ankles and feet 4070 </div> 4071 4072 4073 <div class="c-cart-drawer-links__subtext"> 4074 <span class="c-cart-drawer-links__rating"> 4075 4.7 â 4076 </span> · 1,600+ reviews 4077 </div> 4078 4079 4080 <div class="c-cart-drawer-links__price c-cart-drawer-links__price--mobile"> 4081 <span>$89</span> 4082 4083 4084 </div> 4085 4086 </div> 4087 4088 4089 <div class="c-cart-drawer-links__meta"> 4090 <div class="c-cart-drawer-links__price c-cart-drawer-links__price--desktop"> 4091 4092 <span>$89</span> 4093 </div><div class="c-cart-drawer-links__actions"> 4094 <form action="/cart/add" method="post" enctype="multipart/form-data" id="cart-drawer-link-form-AN0JESEpaajg5TTlRe__cart_drawer_link_cgByRJ" novalidate> 4095 <input type="hidden" name="id" value="42700260999255"> 4096 <input type="hidden" name="quantity" value="1"><input type="hidden" name="properties[Includes]" value="Sidekick App and PT Guide"><button 4097 type="submit" 4098 class="js-add-to-cart c-cart-drawer-links__add-button" 4099 aria-label="Add to Cart: AxisBoard Balance Board" 4100 4101 > 4102 <span aria-hidden="true"></span> 4103 </button> 4104 </form> 4105 </div></div> 4106 4107 </div> 4108 </li> 4109 4110<!-- blocks/_cart-drawer-link.liquid --> 4111 4112 4113 4114 4115 <li class=" c-cart-drawer-links__item" > 4116 4117 <!-- snippets/image-static-size.liquid --> 4118 4119<img 4120 width="60" 4121 height="60" 4122 data-image-load="lazy" 4123 4124 alt="" 4125 4126 style="object-position:50.0% 50.0%;" 4127 class=" c-cart-drawer-links__image media-image media-image--static" 4128 loading='lazy' 4129 data-srcset="//sidekicktool.com/cdn/shop/files/HeelHero_1000x1000_831f4f77-a4e7-4275-b212-19e6fa0b0462.jpg?crop=center&height=60&v=1777543137&width=60 1x, //sidekicktool.com/cdn/shop/files/HeelHero_1000x1000_831f4f77-a4e7-4275-b212-19e6fa0b0462.jpg?crop=center&height=120&v=1777543137&width=120 2x" 4130 data-original-image="//sidekicktool.com/cdn/shop/files/HeelHero_1000x1000_831f4f77-a4e7-4275-b212-19e6fa0b0462.jpg?v=1777543137" 4131 src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E" 4132 > 4133 4134 <div class="c-cart-drawer-links__content"> 4135 <div class="c-cart-drawer-links__text">
4136 <a href="/products/heel-hero" class="c-cart-drawer-links__link"> 4137 Heel Hero Incline Training Platform 4138 4139 </a> 4140 4141 <div class="c-cart-drawer-links__detail"> 4142 Targeted relief for foot pain 4143 </div> 4144 4145 4146 <div class="c-cart-drawer-links__subtext"> 4147 <span class="c-cart-drawer-links__rating"> 4148 4.8 â 4149 </span> · 20+ reviews 4150 </div> 4151 4152 4153 <div class="c-cart-drawer-links__price c-cart-drawer-links__price--mobile"> 4154 <span>$99</span> 4155 4156 4157 </div> 4158 4159 </div> 4160 4161 4162 <div class="c-cart-drawer-links__meta"> 4163 <div class="c-cart-drawer-links__price c-cart-drawer-links__price--desktop"> 4164 4165 <span>$99</span> 4166 </div><div class="c-cart-drawer-links__actions"> 4167 <form action="/cart/add" method="post" enctype="multipart/form-data" id="cart-drawer-link-form-AV0xiWmI1V3RsaThlN__cart_drawer_link_mKnEdb" novalidate> 4168 <input type="hidden" name="id" value="42531294937175"> 4169 <input type="hidden" name="quantity" value="1"><input type="hidden" name="properties[Includes]" value="Sidekick App and Training Manual"><button 4170 type="submit" 4171 class="js-add-to-cart c-cart-drawer-links__add-button" 4172 aria-label="Add to Cart: Heel Hero Incline Training Platform" 4173 4174 > 4175 <span aria-hidden="true"></span> 4176 </button> 4177 </form> 4178 </div></div> 4179 4180 </div> 4181 </li> 4182 4183<!-- blocks/_cart-drawer-link.liquid --> 4184 4185 4186 4187 4188 4189 4190<!-- blocks/_cart-drawer-link.liquid --> 4191 4192 4193 4194 4195 <li class=" c-cart-drawer-links__item" > 4196 4197 <!-- snippets/image-static-size.liquid --> 4198 4199<img 4200 width="60" 4201 height="60" 4202 data-image-load="lazy" 4203 4204 alt="" 4205 4206 style="object-position:50.0% 50.0%;" 4207 class=" c-cart-drawer-links__image media-image media-image--static" 4208 loading='lazy' 4209 data-srcset="//sidekicktool.com/cdn/shop/files/Eclipse-600x600px.jpg?crop=center&height=60&v=1761245600&width=60 1x, //sidekicktool.com/cdn/shop/files/Eclipse-600x600px.jpg?crop=center&height=120&v=1761245600&width=120 2x" 4210 data-original-image="//sidekicktool.com/cdn/shop/files/Eclipse-600x600px.jpg?v=1761245600" 4211 src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E" 4212 > 4213 4214 <div class="c-cart-drawer-links__content"> 4215 <div class="c-cart-drawer-links__text"> 4216 <a href="/products/eclipse-muscle-scraper" class="c-cart-drawer-links__link"> 4217 Eclipse Muscle Scraper 4218 4219 </a> 4220 4221 <div class="c-cart-drawer-links__detail"> 4222 Pinpoint and release trigger points 4223 </div> 4224 4225 4226 <div class="c-cart-drawer-links__subtext"> 4227 <span class="c-cart-drawer-links__rating"> 4228 4.7 â 4229 </span> · 200+ reviews 4230 </div> 4231 4232 4233 <div class="c-cart-drawer-links__price c-cart-drawer-links__price--mobile"> 4234 <span>$119</span> 4235 4236 4237 </div> 4238 4239 </div> 4240 4241 4242 <div class="c-cart-drawer-links__meta"> 4243 <div class="c-cart-drawer-links__price c-cart-drawer-links__price--desktop"> 4244 4245 <span>$119</span> 4246 </div><div class="c-cart-drawer-links__actions"> 4247 <form action="/cart/add" method="post" enctype="multipart/form-data" id="cart-drawer-link-form-AMEFCckZUdVpwYVMxT__cart_drawer_link_Er4KER" novalidate> 4248 <input type="hidden" name="id" value="41365420081239"> 4249 <input type="hidden" name="quantity" value="1"><input type="hidden" name="properties[Includes]" value="Sidekick App and Muscle Scraping Guide"><button 4250 type="submit" 4251 class="js-add-to-cart c-cart-drawer-links__add-button" 4252 aria-label="Add to Cart: Eclipse Muscle Scraper" 4253 4254 > 4255 <span aria-hidden="true"></span> 4256 </button> 4257 </form> 4258 </div></div> 4259 4260 </div> 4261 </li> 4262 4263 4264 </ul> 4265 4266</div> 4267 4268 4269 4270 4271 <!-- blocks/_cart-drawer-bundle-links.liquid --> 4272 4273 4274 4275 4276 4277<!-- snippets/theme-load-assets.liquid --> 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 <link rel="stylesheet" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/component-cart-drawer-links.min.css?v=26146005531185303461778494006" media="print" data-is-loaded="false" data-fm-asset data-preserve-asset="true"> 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300� 4301 4302 4303 <div class="c-cart-drawer-links c-cart-drawer-links--bundles" > 4304 4305 4306 <div class="c-cart-drawer-links__title-row"> 4307 <div class="c-cart-drawer-links__title"> 4308 Bundles 4309 </div> 4310 4311 4312 </div> 4313 4314 4315 <ul class="c-cart-drawer-links__list c-cart-drawer-links__list--bundles"> 4316 <!-- blocks/_cart-drawer-link.liquid --> 4317 4318 4319 4320 4321 <li class=" c-cart-drawer-links__item" > 4322 4323 <!-- snippets/image-static-size.liquid --> 4324 4325<img 4326 width="60" 4327 height="60" 4328 data-image-load="lazy" 4329 4330 alt="" 4331 4332 style="object-position:50.0% 50.0%;" 4333 class=" c-cart-drawer-links__image media-image media-image--static" 4334 loading='lazy' 4335 data-srcset="//sidekicktool.com/cdn/shop/files/PDP1_AHB_1000x1000_7df4d60c-26c0-4
43351ec-bd3b-067867dae8c7.png?crop=center&height=60&v=1785258329&width=60 1x, //sidekicktool.com/cdn/shop/files/PDP1_AHB_1000x1000_7df4d60c-26c0-41ec-bd3b-067867dae8c7.png?crop=center&height=120&v=1785258329&width=120 2x" 4336 data-original-image="//sidekicktool.com/cdn/shop/files/PDP1_AHB_1000x1000_7df4d60c-26c0-41ec-bd3b-067867dae8c7.png?v=1785258329" 4337 src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E" 4338 > 4339 4340 <div class="c-cart-drawer-links__content"> 4341 <div class="c-cart-drawer-links__text"> 4342 <a href="/products/strength-and-mobility-bundle" class="c-cart-drawer-links__link"> 4343 Strength & Mobility Bundle 4344 4345 </a> 4346 4347 <div class="c-cart-drawer-links__detail"> 4348 AxisBoard + Heel Hero save 15% 4349 </div> 4350 4351 4352 <div class="c-cart-drawer-links__subtext"> 4353 <span class="c-cart-drawer-links__rating"> 4354 4.7 â 4355 </span> 4356 </div> 4357 4358 4359 <div class="c-cart-drawer-links__price c-cart-drawer-links__price--mobile"> 4360 <span>$159</span> 4361 4362 4363 <span class="c-cart-drawer-links__compare-price"> 4364 $188 4365 </span> 4366 4367 </div> 4368 4369 </div> 4370 4371 4372 <div class="c-cart-drawer-links__meta"> 4373 <div class="c-cart-drawer-links__price c-cart-drawer-links__price--desktop"> 4374 4375 <span class="c-cart-drawer-links__compare-price"> 4376 $188 4377 </span> 4378 4379 <span>$159</span> 4380 </div><div class="c-cart-drawer-links__actions"> 4381 <form action="/cart/add" method="post" enctype="multipart/form-data" id="cart-drawer-link-form-ANW9LS2pqOFI4cEtOV__cart_drawer_link_K64fqN" novalidate> 4382 <input type="hidden" name="id" value="44081644830807"> 4383 <input type="hidden" name="quantity" value="1"><input type="hidden" name="properties[Includes]" value="Sidekick App and 2 PT Guides"><button 4384 type="submit" 4385 class="js-add-to-cart c-cart-drawer-links__add-button" 4386 aria-label="Add to Cart: Strength & Mobility Bundle" 4387 4388 > 4389 <span aria-hidden="true"></span> 4390 </button> 4391 </form> 4392 </div></div> 4393 4394 </div> 4395 </li> 4396 4397 4398 </ul> 4399 4400 </div> 4401 4402 4403 4404 4405 4406 </div> 4407 4408 4409 4410 4411 </div> 4412 4413 4414 4415 <div class="s-cart-drawer__footer"> 4416 4417 4418 4419 <a href="/collections/all-products" class="btn btn--primary btn--hollow btn--wide"> 4420 <div class="btn__text"> 4421 Browse all products 4422 </div> 4423 </a> 4424 4425 4426 </div> 4427 4428 4429 4430 <!-- blocks/_cart-drawer-footer.liquid --> 4431 4432 4433 4434 4435 4436<section class="s-cart-drawer__merchant-footer " > 4437 <!-- blocks/_cart-drawer-highlight-icons.liquid --> 4438 4439 4440 4441 4442 4443 4444 4445 <div 4446 class="c-cart-hi-icons c-cart-hi-icons--cart_is_empty " 4447 4448 4449 > 4450 4451 4452 <!-- snippets/theme-load-assets.liquid --> 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 <link rel="stylesheet" data-src-asset="//sidekicktool.com/cdn/shop/t/109/assets/component-cart-drawer-highlight-icons.min.css?v=165856235902220094361788350010" media="print" data-is-loaded="false" data-fm-asset data-preserve-asset="true"> 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 <ul class="c-cart-hi-icons__list"> 4476 4477 4478<li class="s-hi-icons__item c-cart-hi-icons__item"> 4479 <div class="c-cart-hi-icons__item-content"> 4480 4481 <!-- snippets/image-static-size.liquid --> 4482 4483<img 4484 width="48" 4485 height="48" 4486 data-image-load="lazy" 4487 4488 alt="" 4489 4490 style="object-position:center;" 4491 class=" s-hi-icons__icon c-cart-hi-icons__icon media-image media-image--static" 4492 loading='lazy' 4493 data-srcset="//sidekicktool.com/cdn/shop/files/25-08-08-badge-gray-shipping-750.png?crop=center&height=48&v=1755891011&width=48 1x, //sidekicktool.com/cdn/shop/files/25-08-08-badge-gray-shipping-750.png?crop=center&height=96&v=1755891011&width=96 2x" 4494 data-original-image="//sidekicktool.com/cdn/shop/files/25-08-08-badge-gray-shipping-750.png?v=1755891011" 4495 src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E" 4496 > 4497 4498 4499 <div class="s-hi-icons__title c-cart-hi-icons__title"> 4500 Free Shipping 4501 </div> 4502 </div> 4503 </li> 4504 4505<li class="s-hi-icons__item c-cart-hi-icons__item"> 4506 <div class="c-cart-hi-icons__item-content"> 4507 4508 <!-- snippets/image-static-size.liquid --> 4509 4510<img 4511 width="48" 4512 height="48" 4513 data-image-load="lazy" 4514 4515 alt="" 4516 4517 style="object-position:center;" 4518 class=" s-hi-icons__icon c-cart-hi-icons__icon media-image media-image--static" 4519 loading='lazy' 4520 data-srcset="//sidekicktool.com/cdn/shop/files/25-08-08-badge-gray-60-days-return-750.png?crop=center&height=48&v=1755891028&width=48 1x, //sidekicktool.com/cdn/shop/files/25-08-08-badge-gray-60-days-return-750.png?crop=center&height=96&v=1755891028&width=96 2x" 4521 data-original-image="//sidekicktool.com/cdn/shop/files/25-08-08-badge-gray-60-days-return-750.png?v=1755891028" 4522 src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E" 4523 > 4524 4525 4526 <div class="s-hi-icons__title c-cart-hi-icons__title"> 4527 60-Day Returns 4528 </div> 4529 </div> 4530 </li> 4531 4532<li class="s-hi-icons__item c-cart-hi-icons__item"> 4533 <div class="c-cart-hi-icons__item-content"> 4534 4535 <!-- snippets/image-static-size.liquid --> 4536 4537<img 4538 width="48" 4539 height="48" 4540 data-image-load="lazy" 4541 4542 alt="" 4543 4544 style="object-position:center;" 4545 class=" s-hi-icons__icon c-cart-hi-icons__icon media-image media-image--static" 4546 loading='lazy' 4547 data-srcset="//sidekicktool.com/cdn/shop/files/Truemed_Thinner.png?crop=center&height=48&v=1787766768&width=48 1x, //sidekicktool.com/cdn/shop/files/Truemed_Thinner.png?crop=center&height=96&v=1787766768&width=96 2x" 4548 data-original-image="//sidekicktool.com/cdn/shop/files/Truemed_Thinner.png?v=1787766768" 4549 src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E" 4550 > 4551 4552 4553 <div class="s-hi-icons__title c-cart-hi-icons__title"> 4554 HSA/FSA Approved 4555 </div> 4556 </div> 4557 </li> 4558 4559 4560 </ul> 4561 </div> 4562 4563 4564 4565 4566 4567<!-- blocks/_cart-drawer-highlight-icons.liquid --> 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579<!-- blocks/_cart-drawer-highlight-icons.liquid --> 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591<!-- blocks/_cart-drawer-highlight-icons.liquid --> 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603<!-- blocks/_cart-drawer-highlight-icons.liquid --> 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616</section> 4617 4618 4619 4620 4621 4622 4623 4624 4625 <div class="s-cart-drawer__spinner hide"></div> 4626 </div> 4627</div> 4628 4629 4630</div> 4631<!-- END sections: footer-group --> 4632 </footer> 4633 4634 4635 4636 <div id="screen-reader-status" role="status" class="sr-only"></div> 4637 4638 4639 4640 <!-- snippets/theme-window-data.liquid --> 4641 4642 4643
4644<script> 4645 window.fmData = { 4646 currentProductId: null, 4647 currentVariantIds: [], 4648 shopUrl: "https:\/\/sidekicktool.com", 4649 4650 theme: { 4651 template: "page.contact", 4652 templateName: "page", 4653 }, 4654 4655 user: { 4656 prefersReducedMotion: window.matchMedia("(prefers-reduced-motion: reduce)").matches 4657 }, 4658 4659 cartStrings: { 4660 error: "There was an error while updating your cart. Please try again.", 4661 quantityError: "You can only add [quantity] of this item to your cart.", 4662 added: "Added to cart", 4663 }, 4664 4665 variantStrings: { 4666 addToCart: "Add to Cart", 4667 soldOut: "Sold out", 4668 unavailable: "Unavailable", 4669 preorder: "Preorder", 4670 variantSoldOutAnnouncement: "Your selected variant is sold out", 4671 variantUnavailableAnnouncement: "Your selected variant is unavailable", 4672 }, 4673 4674 customerStrings: { 4675 confirmAddressDelete: "Are you sure you wish to delete this address?", 4676 }, 4677 4678 a11yStrings: { 4679 shareSuccess: "Link copied to clipboard!", 4680 cartUpdating: "Updating cart...", 4681 quantityUpdated: "Quantity is [quantity]", 4682 videoPause: "Pause Video", 4683 videoPlay: "Play Video", 4684 videoMute: "Mute", 4685 videoUnmute: "Unmute" 4686 }, 4687 4688 klaviyo: { 4689 lazyloadOnsiteScript: true, 4690 apiKey: "Bbkihg", 4691 klaviyoSubscribe: "\/\/sidekicktool.com\/cdn\/shop\/t\/109\/assets\/klaviyo_subscribe.min.js?v=150331325216746448311773849045", 4692 }, 4693 4694 routes: { 4695 predictiveSearch: "\/search\/suggest" 4696 }, 4697 4698 market: { 4699 isoCode: "US", 4700 currencyCode: "USD" 4701 } 4702 } 4703</script>
4703 4704 4705 4706 4707 4708 <!-- snippets/theme-templates.liquid --> 4709 4710 4711 4712 4713 4714<template id="template-cart-api-error"> 4715 <div class="input-error js-cart-api-error" role="alert"> 4716 4717<span class="icon icon--sm"> 4718 <svg viewBox="0 0 512 512" aria-hidden="true"><path d="M248.4 84.3c1.6-2.7 4.5-4.3 7.6-4.3s6 1.6 7.6 4.3L461.9 410c1.4 2.3 2.1 4.9 2.1 7.5 0 8-6.5 14.5-14.5 14.5h-387c-8 0-14.5-6.5-14.5-14.5 0-2.7.7-5.3 2.1-7.5L248.4 84.3zm-41-25L9.1 385c-6 9.8-9.1 21-9.1 32.5C0 452 28 480 62.5 480h387c34.5 0 62.5-28 62.5-62.5 0-11.5-3.2-22.7-9.1-32.5L304.6 59.3C294.3 42.4 275.9 32 256 32s-38.3 10.4-48.6 27.3zM288 368a32 32 0 1 0-64 0 32 32 0 1 0 64 0zm-8-184c0-13.3-10.7-24-24-24s-24 10.7-24 24v96c0 13.3 10.7 24 24 24s24-10.7 24-24v-96z"/></svg> 4719 </span> 4720 4721 <div class="js-cart-api-error-text"></div> 4722 </div> 4723</template> 4724 4725 4726 4727<!-- snippets/vendor-klaviyo-web-tracking.liquid --> 4728 4729 4730
4731<script> 4732 /** 4733 * Loads the Klaviyo object 4734 */ 4735 4736 !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)}}}}(); 4737 4738 /** 4739 * Klaviyo viewed product tracking 4740 */</script>
4740 4741 4742<!-- snippets/vendor-klaviyo-web-atc-tracking.liquid --> 4743 4744 4745
4746<script> 4747 /** 4748 * Fetches the cart object 4749 */ 4750 4751 const getCartForKlaviyo = () => { 4752 return fetch(`${window.location.origin}/cart.js`) 4753 .then((response) => response.json()) 4754 .then((cart) => { 4755 return cart; 4756 }) 4757 .catch((error) => { 4758 console.error(error); 4759 }); 4760 }; 4761 4762 /** 4763 * Tracks ATC events for Klaviyo 4764 * 4765 * @param {Object} cart The cart object 4766 */ 4767 4768 const trackAddToCart = () => { 4769 // The cart:item:added event will normally pass the added line_item 4770 // object, so we'll fetch the cart again as Klaviyo requires it. 4771 4772 getCartForKlaviyo() 4773 .then((cart) => { 4774 let cartForKlaviyo = { 4775 total_price: cart.total_price / 100, 4776 $value: cart.total_price / 100, 4777 total_discount: cart.total_discount, 4778 original_total_price: cart.original_total_price / 100, 4779 items: cart.items, 4780 }; 4781 4782 if (window.item !== undefined) { 4783 cartForKlaviyo = Object.assign(cartForKlaviyo, item); 4784 } 4785 4786 klaviyo.push(['track', 'Added to Cart', cartForKlaviyo]); 4787 }) 4788 .catch((error) => { 4789 console.error(error); 4790 }); 4791 }; 4792 4793 /* 4794 * Whenever a product is added to the cart, we'll 4795 * need to grab the data and pass to Klaviyo. 4796 */ 4797 4798 document.addEventListener('DOMContentLoaded', () => { 4799 window.EventBus.on('cart:item:added', trackAddToCart); 4800 }); 4801</script>
4801 4802 4803
4804<script> 4805 localStorage.collection = "Shop All"; 4806 localStorage.collectionLink = "all-products"; 4807 </script>
4807 4808 4809 4810 <link rel="stylesheet" href="//sidekicktool.com/cdn/shop/t/109/assets/section-vendor-judgeme-review-widget.min.css?v=127612569922715659891773849065" media="print" onload="this.media='all'; this.setAttribute('data-is-loaded', 'true')" data-fm-asset> 4811 4812 4813 4814 4815 <div id="shopify-section-cookie-consent-banner" class="shopify-section"><div class="cookie-consent-banner js-cookie-consent" role="dialog" aria-label="Cookie consent" aria-live="polite"> 4816 <div class="cookie-consent-banner__inner"> 4817 <p class="cookie-consent-banner__text"><p>We use cookies to improve your experience on our site. By continuing to browse, you agree to our use of cookies.</p></p> 4818 <button type="button" class="cookie-consent-banner__accept js-cookie-consent-accept">Accept</button> 4819 </div> 4820</div> 4821 4822<style> 4823 .cookie-consent-banner { 4824 position: fixed; 4825 bottom: 0; 4826 left: 0; 4827 right: 0; 4828 z-index: 9999; 4829 min-height: 200px; 4830 background: #222; 4831 color: #fff; 4832 padding: 16px 24px; 4833 display: none; 4834 } 4835 4836 body.show-cookie .cookie-consent-banner { 4837 display: block; 4838 } 4839 4840 body.no-cookie .cookie-consent-banner, 4841 body.cookie-consent-accepted .cookie-consent-banner { 4842 display: none !important; 4843 } 4844 4845 .cookie-consent-banner__inner { 4846 max-width: 1200px; 4847 margin: 0 auto; 4848 display: flex; 4849 align-items: center; 4850 gap: 16px; 4851 flex-wrap: wrap; 4852 } 4853 4854 .cookie-consent-banner__text { 4855 flex: 1; 4856 margin: 0; 4857 font-size: 14px; 4858 line-height: 1.5; 4859 } 4860 4861 .cookie-consent-banner__link { 4862 color: #fff; 4863 text-decoration: underline; 4864 margin-left: 4px; 4865 } 4866 4867 .cookie-consent-banner__accept { 4868 background: #fff; 4869 color: #222; 4870 border: none; 4871 padding: 10px 20px; 4872 font-size: 14px; 4873 font-weight: 600; 4874 cursor: pointer; 4875 white-space: nowrap; 4876 flex-shrink: 0; 4877 } 4878 4879 .cookie-consent-banner__accept:hover { 4880 background: #e0e0e0; 4881 } 4882</style> 4883
4884<script> 4885 (function () { 4886 var COOKIE_KEY = 'sk-cookie-consent'; 4887 var banner = document.querySelector('.js-cookie-consent'); 4888 var acceptBtn = document.querySelector('.js-cookie-consent-accept'); 4889 4890 if (!banner || !acceptBtn) return; 4891 4892 // If already accepted, hide permanently 4893 if (localStorage.getItem(COOKIE_KEY) === 'accepted') { 4894 document.body.classList.add('cookie-consent-accepted'); 4895 return; 4896 } 4897 4898 acceptBtn.addEventListener('click', function () { 4899 localStorage.setItem(COOKIE_KEY, 'accepted'); 4900 document.body.classList.add('cookie-consent-accepted'); 4901 }); 4902 })(); 4903</script>
4903 4904</div> 4905 4906 <style> #promo-bar-slider.s-promo-bar-slider__main,#promo-bar-countdown.s-promo-bar-countdown__main {background-color: #333;} #promo-bar-slider strong {font-family: "urw-din-condensed"; font-size: 16px;} #promo-bar-slider-sub.s-promo-bar-slider__main {background-color: var(--surface-subtle);} #promo-bar-slider-sub {font-family: "urw-din-condensed"; font-size: 16px; color: var(--text);} #promo-bar-slider-sub strong {font-family: "urw-din-condensed"; font-size: 16px; color: var(--text);} #promo-bar-auto-scroll-below-nav.s-promo-bar-auto-scroll__container {background-color: var(--surface-subtle); color: var(--text) !important;} #promo-bar-auto-scroll-below-nav .s-promo-bar-auto-scroll__item:after {color: var(--text) !important;} #promo-bar-auto-scroll-below-nav .s-promo-bar-auto-scroll__items {height: 100%;} #promo-bar-countdown strong {font-family: "urw-din-condensed"; font-size: 16px;} </style> 4907<div id="shopify-block-AOW9IR2RlVlBCRUh0T__12510727292439481604" class="shopify-block shopify-app-block"> 4908 4909 4910 4911<style> 4912 .wb-btn-trigger { 4913 position: fixed; 4914 4915 bottom: 20px; 4916 left: 20px; 4917 4918 z-index: 9999; 4919 padding: 14px 28px; 4920 background-color: #EE3932; 4921 color: #ffffff; 4922 border: none; 4923 border-radius: 8px; 4924 cursor: pointer; 4925 font-size: 15px; 4926 font-weight: 600; 4927 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 4928 transition: all 0.2s ease; 4929 } 4930 4931 .wb-btn-trigger:hover { 4932 transform: translateY(-2px); 4933 box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2); 4934 } 4935 4936 .wb-btn-trigger.wb-btn-center:hover { 4937 transform: translateX(-50%) translateY(-2px); 4938 } 4939 4940 .wb-btn-trigger:active { 4941 transform: translateY(0); 4942 } 4943 4944 .wb-btn-trigger.wb-btn-center:active { 4945 transform: translateX(-50%) translateY(0); 4946 } 4947 4948 .wb-modal-overlay { 4949 display: none; 4950 position: fixed; 4951 top: 0; 4952 left: 0; 4953 width: 100%; 4954 height: 100%; 4955 background-color: rgba(0, 0, 0, 0.5); 4956 z-index: 10000; 4957 justify-content: center; 4958 align-items: center; 4959 padding: 20px; 4960 backdrop-filter: blur(2px); 4961 } 4962 4963 .wb-modal-overlay.wb-active { 4964 display: flex; 4965 animation: fadeIn 0.2s ease; 4966 } 4967 4968 @keyframes fadeIn { 4969 from { opacity: 0; } 4970 to { opacity: 1; } 4971 } 4972 4973 .wb-modal { 4974 background: white; 4975 border-radius: 12px; 4976 width: 100%; 4977 max-width: 650px; 4978 max-height: 90vh; 4979 overflow: hidden; 4980 display: flex; 4981 flex-direction: column; 4982 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); 4983 animation: slideUp 0.3s ease; 4984 position: relative; 4985 } 4986 4987 @keyframes slideUp { 4988 from { 4989 transform: translateY(20px); 4990 opacity: 0; 4991 } 4992 to { 4993 transform: translateY(0); 4994 opacity: 1; 4995 } 4996 } 4997 4998 .wb-modal-header { 4999 padding: 24px 60px 20px 28px; 5000 flex-shrink: 0; 5001 } 5002 5003 .wb-modal-title { 5004 margin: 0; 5005 font-size: 20px; 5006 font-weight: 600; 5007 color: #111827; 5008 } 5009 5010 .wb-modal-title--p { 5011 margin: 0; 5012 font-family: var(--font-heading-family, var(--heading-font-family, inherit)); 5013 } 5014 5015 .wb-modal-description { 5016 margin: 8px 0 0 0; 5017 font-size: 14px; 5018 color: #6b7280; 5019 line-height: 1.5; 5020 } 5021 5022 .wb-modal-close { 5023 position: absolute; 5024 top: 20px; 5025 right: 20px; 5026 background: #f3f4f6; 5027 border: none; 5028 font-size: 20px; 5029 cursor: pointer; 5030 padding: 0; 5031 width: 32px; 5032 height: 32px; 5033 display: flex; 5034 align-items: center; 5035 justify-content: center; 5036 border-radius: 6px; 5037 line-height: 1; 5038 color: #6b7280; 5039 transition: all 0.15s ease; 5040 z-index: 1; 5041 } 5042 5043 .wb-modal-close:hover { 5044 background: #e5e7eb; 5045 color: #111827; 5046 } 5047 5048 .wb-modal-close:active { 5049 transform: scale(0.95); 5050 } 5051 5052 .wb-modal-body { 5053 flex: 1; 5054 overflow-y: auto; 5055 display: flex; 5056 flex-direction: column; 5057 min-height: 0; 5058 scrollbar-gutter: stable; 5059 } 5060 5061 .wb-modal-body iframe { 5062 width: 100%; 5063 min-height: 425px; 5064 border: none; 5065 display: block; 5066 flex-shrink: 0; 5067 } 5068 5069 @media (max-width: 768px) { 5070 .wb-btn-trigger { 5071 padding: 12px 20px; 5072 font-size: 14px; 5073 5074 bottom: 16px; 5075 left: 16px; 5076 5077 } 5078 5079 .wb-modal { 5080 max-width: 100%; 5081 max-height: 100vh; 5082 border-radius: 0; 5083 height: 100%; 5084 } 5085 5086 .wb-modal-overlay { 5087 padding: 0; 5088 } 5089 5090 .wb-modal-header { 5091 padding: 20px 20px 16px; 5092 } 5093 } 5094</style> 5095 5096<div class="wb-container"> 5097 5098 <button type="button" class="wb-btn-trigger" id="wb-trigger-btn"> 5099 Cancel Order 5100 </button> 5101 5102 5103 <div class="wb-modal-overlay" id="wb-modal-overlay"> 5104 <div class="wb-modal" role="dialog" aria-modal="true" aria-labelledby="wb-modal-title"> 5105 <button type="button" class="wb-modal-close" id="wb-close-btn" aria-label="Close">×</button> 5106 <div class="wb-modal-header"> 5107 5108 5109 <h2 class="wb-modal-title" id="wb-modal-title">Declare withdrawal</h2> 5110 5111 5112 5113 5114 <p class="wb-modal-description">Please fill out the following form to declare your withdrawal from the contract.</p> 5115 5116 </div> 5117 <div class="wb-modal-body"> 5118 <iframe 5119 id="wb-iframe" 5120 src="https://euwiderrufsbutton.de/withdrawal/proxy/embed/withdrawal-form?c_shop=sidekicktools.myshopify.com&c_hmac=d20a8dcebe86494438fed3c7763d0b77c87df87a6a468293f3c331565ee8024b&c_timestamp=1790208000&c_locale=en&c_country=US&sv=1789670700240-98520f9f&primaryColor=%23EE3932&backgroundColor=%23ffffff&textColor=%23212326&borderRadius=8px&maxWidth=100%&showOrderLookup=true&requireOrderNumber=true&hideOrderNotes=false&requireItems=false&confirmStep=false" 5121 title="Withdrawal Form" 5122 loading="lazy" 5123 ></iframe> 5124 </div></div> 5125 </div> 5126</div> 5127
5128<script> 5129 (function() { 5130 const triggerBtn = document.getElementById('wb-trigger-btn'); 5131 const modalOverlay = document.getElementById('wb-modal-overlay'); 5132 const closeBtn = document.getElementById('wb-close-btn'); 5133 const iframe = document.getElementById('wb-iframe'); 5134 let lastFocused = null; 5135 // Rendered by Liquid to a plain true/false literal â kept out of the script 5136 // body so no Liquid tag can ever interfere with JS parsing. 5137 const wbsHideOrderNotes = false; 5138 5139 // Expose the global API FIRST, before anything below that could throw in a 5140 // particular theme (dedup query, const captures, listener wiring). Section 5141 // blocks and links call window.withdrawalModal.open()/close(); if this 5142 // registration ever failed, they would silently do nothing and the fallback 5143 // alert would surface instead of the modal. 5144 window.withdrawalModal = { 5145 open: openModal, 5146 close: closeModal 5147 }; 5148 5149 // If the standalone asset built its own overlay before this embed block was 5150 // added (theme-editor section render without a page reload), remove it so 5151 // the two modals do not stack with duplicate IDs and z-index. 5152 var standaloneOverlay = document.querySelector('#wb-modal-overlay[data-wbs-standalone]'); 5153 if (standaloneOverlay && standaloneOverlay.parentNode) { 5154 standaloneOverlay.parentNode.removeChild(standaloneOverlay); 5155 } 5156 5157 // Embed's own server-rendered defaults, captured so a caller block's config 5158 // (heading/description/show_heading/form_color) can be applied on open and 5159 // restored when the embed's own floating button is used. 5160 const defaultEmbedUrl = iframe ? iframe.getAttribute('src') : null; 5161 const headerEl = modalOverlay ? modalOverlay.querySelector('.wb-modal-header') : null; 5162 const defaultHeaderHtml = headerEl ? headerEl.innerHTML : ''; 5163 // The role="dialog" element is the inner .wb-modal, not the overlay wrapper; 5164 // aria-labelledby must be synced there to affect the dialog's accessible name. 5165 const dialogEl = modalOverlay ? modalOverlay.querySelector('.wb-modal') : null; 5166 const defaultAriaLabelledby = dialogEl ? dialogEl.getAttribute('aria-labelledby') : null; 5167 5168 function applyBlockConfig(cfg) { 5169 if (!cfg) return; 5170 if (iframe && cfg.embedUrl && iframe.getAttribute('src') !== cfg.embedUrl) { 5171 iframe.setAttribute('src', cfg.embedUrl); 5172 // Fresh iframe load: reset to the config's default height; the form 5173 // re-sends setHeight once loaded. Same-src re-opens preserve the 5174 // current height so a taller form is not clipped back to the default. 5175 if (typeof cfg.hideOrderNotes === 'boolean') { 5176 iframe.style.height = cfg.hideOrderNotes ? '425px' : '570px'; 5177 } 5178 } 5179 if (headerEl) { 5180 if (cfg.showHeading) { 5181 headerEl.style.display = ''; 5182 // The embed's own server-rendered header only contains title/description 5183 // when the embed's Show Heading is on; when the merchant disabled it 5184 // those nodes do not exist, so create them for the caller's config. 5185 var titleEl = headerEl.querySelector('.wb-modal-title'); 5186 if (!titleEl && cfg.heading) { 5187 titleEl = document.createElement('h2'); 5188 titleEl.className = 'wb-modal-title'; 5189 headerEl.insertBefore(titleEl, headerEl.firstChild); 5190 } 5191 if (titleEl) { 5192 titleEl.textContent = cfg.heading || ''; 5193 titleEl.id = 'wb-modal-title'; 5194 if (dialogEl) dialogEl.setAttribute('aria-labelledby', 'wb-modal-title'); 5195 } else if (dialogEl) { 5196 dialogEl.removeAttribute('aria-labelledby'); 5197 } 5198 var descEl = headerEl.querySelector('.wb-modal-description'); 5199 if (!descEl && cfg.description) { 5200 descEl = document.createElement('p'); 5201 descEl.className = 'wb-modal-description'; 5202 headerEl.appendChild(descEl); 5203 } 5204 if (descEl) descEl.textContent = cfg.description || ''; 5205 } else { 5206 headerEl.style.display = 'none'; 5207 if (dialogEl) dialogEl.removeAttribute('aria-labelledby'); 5208 } 5209 } 5210 } 5211 5212 function restoreEmbedDefaults() { 5213 if (iframe && defaultEmbedUrl && iframe.getAttribute('src') !== defaultEmbedUrl) { 5214 iframe.setAttribute('src', defaultEmbedUrl); 5215 iframe.style.height = wbsHideOrderNotes ? '425px' : '570px'; 5216 } 5217 if (headerEl) { 5218 headerEl.style.display = ''; 5219 headerEl.innerHTML = defaultHeaderHtml; 5220 } 5221 if (dialogEl) {
5222 if (defaultAriaLabelledby) { 5223 dialogEl.setAttribute('aria-labelledby', defaultAriaLabelledby); 5224 } else { 5225 dialogEl.removeAttribute('aria-labelledby'); 5226 } 5227 } 5228 } 5229 5230 function openModal(blockId) { 5231 if (modalOverlay) { 5232 // A button block with "hide outside EU" sets this flag for non-EU 5233 // visitors; URL/hash triggers must not open the form either. 5234 if (window.__wbsEuHidden) return; 5235 // Re-entry safe: same-document #eu-withdrawal=open clicks fire the click 5236 // handler AND a hashchange (which calls openModal again); without this 5237 // guard the second call overwrites lastFocused with the close button 5238 // and focus restore on close drops to <body>. 5239 if (modalOverlay.classList.contains('wb-active')) return; 5240 var cfg = blockId && window.WITHDRAWAL_EMBED_CONFIG && window.WITHDRAWAL_EMBED_CONFIG[blockId]; 5241 if (cfg) applyBlockConfig(cfg); else restoreEmbedDefaults(); 5242 lastFocused = document.activeElement; 5243 modalOverlay.classList.add('wb-active'); 5244 document.body.style.overflow = 'hidden'; 5245 if (closeBtn) closeBtn.focus(); 5246 } 5247 } 5248 5249 function closeModal() { 5250 if (modalOverlay) { 5251 modalOverlay.classList.remove('wb-active'); 5252 document.body.style.overflow = ''; 5253 if (lastFocused && typeof lastFocused.focus === 'function') { 5254 lastFocused.focus(); 5255 } 5256 lastFocused = null; 5257 } 5258 } 5259 5260 if (triggerBtn) { 5261 triggerBtn.addEventListener('click', function() { openModal(); }); 5262 } 5263 5264 if (closeBtn) { 5265 closeBtn.addEventListener('click', closeModal); 5266 } 5267 5268 if (modalOverlay) { 5269 modalOverlay.addEventListener('click', function(e) { 5270 if (e.target === modalOverlay) closeModal(); 5271 }); 5272 5273 document.addEventListener('keydown', function(e) { 5274 if (e.key === 'Escape' && modalOverlay.classList.contains('wb-active')) { 5275 closeModal(); 5276 return; 5277 } 5278 // Keep focus inside the open dialog while tabbing. 5279 if (e.key === 'Tab' && modalOverlay.classList.contains('wb-active')) { 5280 const focusables = modalOverlay.querySelectorAll('button, [href], iframe, [tabindex]:not([tabindex="-1"])'); 5281 if (!focusables.length) return; 5282 const first = focusables[0]; 5283 const last = focusables[focusables.length - 1]; 5284 if (e.shiftKey && (document.activeElement === first || document.activeElement === modalOverlay)) { 5285 e.preventDefault(); 5286 last.focus(); 5287 } else if (!e.shiftKey && document.activeElement === last) { 5288 e.preventDefault(); 5289 first.focus(); 5290 } 5291 } 5292 }); 5293 } 5294 5295 window.addEventListener('message', function(event) { 5296 if (event.data.type === 'setHeight' && iframe && event.data.height > 0) { 5297 iframe.style.height = event.data.height + 'px'; 5298 } 5299 }); 5300 5301 if (iframe) { 5302 iframe.style.height = wbsHideOrderNotes ? '425px' : '570px'; 5303 } 5304 5305 function withdrawalTriggerInSearch() { 5306 return new URLSearchParams(window.location.search).get('eu-withdrawal') === 'open'; 5307 } 5308 5309 function withdrawalTriggerInHash() { 5310 return new URLSearchParams((window.location.hash || '').replace(/^#/, '')).get('eu-withdrawal') === 'open'; 5311 } 5312 5313 function clearWithdrawalTrigger() { 5314 if (!(window.history && window.history.replaceState)) return; 5315 var params = new URLSearchParams(window.location.search); 5316 params.delete('eu-withdrawal'); 5317 var newSearch = params.toString(); 5318 var newHash = ''; 5319 var hash = window.location.hash || ''; 5320 if (withdrawalTriggerInHash()) { 5321 var hashParams = new URLSearchParams(hash.replace(/^#/, '')); 5322 hashParams.delete('eu-withdrawal'); 5323 var rebuiltHash = hashParams.toString(); 5324 if (rebuiltHash) newHash = '#' + rebuiltHash; 5325 } else { 5326 // Trigger came from the search parameter: keep the fragment verbatim, 5327 // so plain-word fragments like #reviews are not mangled. 5328 newHash = hash; 5329 } 5330 var newUrl = window.location.pathname + (newSearch ? '?' + newSearch : '') + newHash; 5331 window.history.replaceState(null, '', newUrl); 5332 } 5333 5334 function openFromUrlTrigger() { 5335 if (withdrawalTriggerInSearch() || withdrawalTriggerInHash()) { 5336 openModal(); 5337 clearWithdrawalTrigger(); 5338 } 5339 } 5340 5341 openFromUrlTrigger(); 5342 5343 window.addEventListener('hashchange', function() { 5344 if (withdrawalTriggerInHash()) { 5345 openModal(); 5346 clearWithdrawalTrigger(); 5347 } 5348 }); 5349 5350 // Same-document re-clicks: after the fragment was stripped, clicking a link 5351 // to the identical #eu-withdrawal=open hash fires no hashchange. Open the 5352 // modal directly for links whose target is this document; cross-document 5353 // navigations are handled by the initial-load check on the target page. 5354 document.addEventListener('click', function(e) { 5355 var target = e.target; 5356 var link = target && target.closest ? target.closest('a[href*="eu-withdrawal"]') : null; 5357 if (!link) return; 5358 var url;
5359 try { 5360 url = new URL(link.getAttribute('href'), window.location.href); 5361 } catch (err) { 5362 return; 5363 } 5364 if (!url.hash) return; 5365 if (new URLSearchParams(url.hash.replace(/^#/, '')).get('eu-withdrawal') !== 'open') return; 5366 if (url.pathname === window.location.pathname && url.search === window.location.search) { 5367 openModal(); 5368 } 5369 }); 5370 })(); 5371</script>
5371<script> 5372 (function() { 5373 // The theme editor keeps the button visible (a merchant previewing from 5374 // outside the EU/EEA/NI would otherwise see an empty section) and shows an 5375 // explanatory notice instead. 5376 var designMode = false; 5377 var cached; 5378 try { cached = sessionStorage.getItem('wf_geo_eu'); } catch(e) { cached = null; } 5379 if (cached === 'false') { 5380 apply(false); 5381 return; 5382 } 5383 if (cached === 'true') return; 5384 5385 if (window._wf_geo_pending) { 5386 window._wf_geo_pending.then(apply); 5387 return; 5388 } 5389 5390 var controller = new AbortController(); 5391 setTimeout(function() { controller.abort(); }, 5000); 5392 5393 window._wf_geo_pending = fetch('https://geo.euwiderrufsbutton.de/api/info', { signal: controller.signal }) 5394 .then(function(r) { return r.json(); }) 5395 .then(function(data) { 5396 try { sessionStorage.setItem('wf_geo_eu', data.isEU ? 'true' : 'false'); } catch(e) {} 5397 window._wf_geo_pending = null; 5398 return data.isEU; 5399 }) 5400 .catch(function() { 5401 window._wf_geo_pending = null; 5402 return true; 5403 }); 5404 5405 window._wf_geo_pending.then(apply); 5406 5407 function apply(isEU) { 5408 if (isEU) return; 5409 if (designMode) { 5410 var notice = document.getElementById('wf-eu-geo-notice-AOW9IR2RlVlBCRUh0T__12510727292439481604'); 5411 if (notice) notice.style.display = 'block'; 5412 return; 5413 } 5414 hideButton(); 5415 } 5416 5417 function hideButton() { 5418 var btn = document.querySelector('.wb-btn-trigger, .wb-modal'); 5419 if (btn) btn.style.display = 'none'; 5420 var style = document.createElement('style'); 5421 style.textContent = '.wb-btn-trigger,.wb-modal,.wb-modal-overlay{display:none !important}'; 5422 document.head.appendChild(style); 5423 // Mirror the standalone hide() sequence: block future opens via the 5424 // shared flag, and close any modal already opened by a URL/hash trigger 5425 // or a fast click before the geo check landed. The CSS above hides the 5426 // dialog, but without close() the scroll lock and focus trap would stay 5427 // active on an invisible modal. 5428 window.__wbsEuHidden = true; 5429 if (window.withdrawalModal && typeof window.withdrawalModal.close === 'function') { 5430 window.withdrawalModal.close(); 5431 } else { 5432 document.body.style.overflow = ''; 5433 } 5434 } 5435 })(); 5436</script>
5436 5437</div><div id="shopify-block-ATk45N1dmN05jM05yU__4061484991452085298" class="shopify-block shopify-app-block">
5438<script> 5439 console.log('===== SHOPIFY WIDGET DEBUG START ====='); 5440</script>
5440 5441
5441<script> 5442 console.log('>>> ENTERING MULTI-STORE MODE SCRIPT <<<'); 5443 // Multi-store widget loader 5444 (function() { 5445 var currentHost = window.location.hostname; 5446 var configs = {"sidekicktools.myshopify.com":{"shopify_domain":"sidekicktools.myshopify.com","primary_domain":"sidekicktool.com","token":"vK5utQ2KJv57R7Cat9ERU6BX","position":"right","type":"standard","launcher_title":"Chat with us","base_url":"https:\/\/app.commslayer.com"}}; 5447 var activeConfig = null; 5448 5449 // Server-side: Get the shop's permanent domain from Liquid 5450 var shopPermanentDomain = 'sidekicktools.myshopify.com'; 5451 5452 // Find matching configuration for the current domain 5453 for (var shopDomain in configs) { 5454 var config = configs[shopDomain]; 5455 5456 // Check if current host matches either shopify domain or primary domain 5457 if (config.shopify_domain && (currentHost === config.shopify_domain)) { 5458 activeConfig = config; 5459 break; 5460 } 5461 5462 if (config.primary_domain && currentHost === config.primary_domain) { 5463 activeConfig = config; 5464 break; 5465 } 5466 } 5467 5468 // Fallback: Use shop.permanent_domain to find config for alias domains 5469 if (!activeConfig && shopPermanentDomain) { 5470 activeConfig = configs[shopPermanentDomain]; 5471 } 5472 5473 // Only load widget if we found a matching configuration 5474 if (activeConfig && activeConfig.token) { 5475 window.chatwootSettings = { 5476 "position": activeConfig.position || 'right', 5477 "type": activeConfig.type || 'standard', 5478 "launcherTitle": activeConfig.launcher_title || 'Chat with us', 5479 "locale": "en" 5480 }; 5481 5482 // Store base URL globally for cart tracking 5483 window.COMMSLAYER_BASE_URL = activeConfig.base_url || 'https://app.commslayer.com'; 5484 5485 var idName = 'commslayer-widget-toggle'; 5486 var clickableElement = document.getElementById(idName); 5487 5488 (function(d,t) { 5489 var BASE_URL = window.COMMSLAYER_BASE_URL; 5490 var g=d.createElement(t),s=d.getElementsByTagName(t)[0]; 5491 g.src=BASE_URL+"/packs/js/sdk.js"; 5492 g.defer = true; 5493 g.async = true; 5494 s.parentNode.insertBefore(g,s); 5495 g.onload=function(){ 5496 window.chatwootSDK.run({ 5497 websiteToken: activeConfig.token, 5498 baseUrl: BASE_URL 5499 }) 5500 } 5501 })(document,"script"); 5502 5503 if (clickableElement) { 5504 window.addEventListener("chatwoot:ready", function () { 5505 window.$chatwoot.toggleBubbleVisibility('hide'); 5506 }); 5507 5508 clickableElement.addEventListener('click', function() { 5509 window.$chatwoot.toggle(); 5510 if (window.$chatwoot.isOpen) { 5511 window.$chatwoot.toggleBubbleVisibility('show'); 5512 } else { 5513 window.$chatwoot.toggleBubbleVisibility('hide'); 5514 } 5515 }); 5516 } 5517 } else { 5518 console.log('[CommSlayer] No widget configuration found for domain:', currentHost); 5519 } 5520 })(); 5521 </script>
vendor: 1 bytes, line 5521
5521
5522<script> 5523 // Only run common functionality if widget was initialized 5524 if (window.COMMSLAYER_BASE_URL) { 5525 // =============================================== 5526 // CUSTOMER IDENTIFICATION - IDENTIFY LOGGED IN CUSTOMERS 5527 // =============================================== 5528 5529 5530 // Guest user - optionally set some attributes to indicate guest status 5531 window.addEventListener('chatwoot:ready', function() { 5532 try { 5533 window.$chatwoot.setCustomAttributes({ 5534 logged_in: false, 5535 is_guest: true 5536 }); 5537 } catch (error) { 5538 if (window.COMMSLAYER_DEBUG) { 5539 console.error('[CommSlayer] Error setting guest attributes:', error); 5540 } 5541 } 5542 }); 5543 5544 5545 // =============================================== 5546 // CART STATE TRACKING - SEND ON WIDGET LOAD 5547 // =============================================== 5548 5549 (function() { 5550 'use strict'; 5551 5552 // Configuration - use the global BASE_URL set by widget initialization 5553 const COMMSLAYER_BASE_URL = window.COMMSLAYER_BASE_URL || 'https://app.commslayer.com'; 5554 5555 // --- Cart state cache --- 5556 let cachedCart = null; 5557 let lastSentToken = null; 5558 let refreshDebounceTimer = null; 5559 let forceNextRefresh = false; 5560 5561 // Post cached cart state to widget iframe (no network request) 5562 function postCartToWidget() { 5563 if (!cachedCart) return; 5564 5565 const iframe = document.querySelector('iframe[src*="' + COMMSLAYER_BASE_URL + '"]'); 5566 if (!iframe) { 5567 if (window.COMMSLAYER_DEBUG) { 5568 console.log('[CommSlayer] Widget iframe not found yet'); 5569 } 5570 return; 5571 } 5572 5573 try { 5574 if (!iframe.contentWindow) { 5575 if (window.COMMSLAYER_DEBUG) { 5576 console.log('[CommSlayer] Iframe contentWindow not ready'); 5577 } 5578 return; 5579 } 5580 5581 iframe.contentWindow.postMessage({ 5582 type: 'SHOPIFY_CART_STATE', 5583 action: 'cartUpdated', 5584 cart: cachedCart, 5585 ajax_token: cachedCart.token 5586 }, COMMSLAYER_BASE_URL); 5587 5588 lastSentToken = cachedCart.token; 5589 5590 if (window.COMMSLAYER_DEBUG) { 5591 console.log('[CommSlayer] Sent cart token to widget:', cachedCart.token); 5592 } 5593 } catch (e) { 5594 if (window.COMMSLAYER_DEBUG) { 5595 console.log('[CommSlayer] PostMessage failed (iframe not ready):', e.message); 5596 } 5597 } 5598 } 5599 5600 // Fetch /cart.js once, update cache, and post to widget only if needed 5601 async function refreshCart(force) { 5602 try { 5603 const response = await fetch('/cart.js'); 5604 const cart = await response.json(); 5605 5606 const tokenChanged = !cachedCart || cart.token !== cachedCart.token; 5607 cachedCart = cart; 5608 5609 if (force || tokenChanged || lastSentToken === null) { 5610 if (window.COMMSLAYER_DEBUG && tokenChanged && lastSentToken !== null) { 5611 console.log('[CommSlayer] Cart token changed from', lastSentToken, 'to', cart.token); 5612 } 5613 postCartToWidget(); 5614 } 5615 } catch (error) { 5616 if (window.COMMSLAYER_DEBUG) { 5617 console.error('[CommSlayer] Error fetching cart:', error); 5618 } 5619 } 5620 } 5621 5622 // Debounced refresh â collapses rapid calls into a single /cart.js fetch. 5623 // If any call within the debounce window sets force=true, it sticks. 5624 function scheduleRefresh(force) { 5625 if (force) forceNextRefresh = true; 5626 clearTimeout(refreshDebounceTimer); 5627 refreshDebounceTimer = setTimeout(function() { 5628 const shouldForce = forceNextRefresh; 5629 forceNextRefresh = false;
5630 refreshCart(shouldForce); 5631 }, 300); 5632 } 5633 5634 // Start cart tracking: one initial fetch + infrequent fallback poll 5635 function startCartTracking() { 5636 refreshCart(true); 5637 5638 // Fallback poll every 60s for themes that don't emit cart events 5639 setInterval(function() { refreshCart(false); }, 60000); 5640 } 5641 5642 5643 // Get sections that need updating when cart changes 5644 function getCartSectionsToRender() { 5645 const sections = []; 5646 5647 // Find all shopify-section elements that contain cart-related UI 5648 // These are the sections that typically need updating when cart changes 5649 document.querySelectorAll('.shopify-section').forEach(section => { 5650 if (section.id) { 5651 // Check if this section contains cart-related elements 5652 const hasCartElements = section.querySelector('.cart-count, .cart-count-bubble, [data-cart-count], .cart-icon, .cart-drawer, #cart-icon-bubble'); 5653 if (hasCartElements) { 5654 // Extract the section ID (e.g., 'shopify-section-header' -> 'header') 5655 const sectionId = section.id.replace('shopify-section-', ''); 5656 if (sectionId && !sections.includes(sectionId)) { 5657 sections.push(sectionId); 5658 } 5659 } 5660 } 5661 }); 5662 5663 // Limit to 5 sections as per Shopify's API limit 5664 return sections.slice(0, 5); 5665 } 5666 5667 // Ajax cart functions using Shopify's bundled section rendering 5668 async function addToCart(items) { 5669 if (window.COMMSLAYER_DEBUG) { 5670 console.log('[CommSlayer] Adding items to cart:', items); 5671 } 5672 5673 try { 5674 // Get sections to update with bundled rendering 5675 const sectionsToRender = getCartSectionsToRender(); 5676 let lastResponse = null; 5677 5678 // Add items to cart 5679 for (const item of items) { 5680 const formData = { 5681 id: item.variant_id, 5682 quantity: item.quantity || 1 5683 }; 5684 5685 // Include sections parameter for bundled section rendering (Shopify official approach) 5686 // This updates the cart and returns updated section HTML in one request 5687 if (sectionsToRender.length > 0) { 5688 formData.sections = sectionsToRender.join(','); 5689 formData.sections_url = window.location.pathname; 5690 } 5691 5692 const response = await fetch('/cart/add.js', { 5693 method: 'POST', 5694 headers: { 5695 'Content-Type': 'application/json', 5696 'Accept': 'application/json' 5697 }, 5698 body: JSON.stringify(formData) 5699 }); 5700 5701 if (!response.ok) { 5702 if (window.COMMSLAYER_DEBUG) { 5703 console.error('[CommSlayer] Failed to add item:', item, response); 5704 } 5705 } else { 5706 lastResponse = await response.json(); 5707 if (window.COMMSLAYER_DEBUG) { 5708 console.log('[CommSlayer] Successfully added item:', item, lastResponse); 5709 } 5710 } 5711 } 5712 5713 // Update sections if we got them in the response 5714 if (lastResponse && lastResponse.sections) { 5715 updatePageSections(lastResponse.sections); 5716 } 5717 5718 // Dispatch cart update events for theme compatibility 5719 dispatchCartEvents(lastResponse); 5720 5721 // Send updated cart state to widget 5722 scheduleRefresh(true); 5723 5724 return true; 5725 } catch (error) { 5726 if (window.COMMSLAYER_DEBUG) { 5727 console.error('[CommSlayer] Error adding to cart:', error); 5728 } 5729 return false;
5730 } 5731 } 5732 5733 // Update page sections with HTML from bundled section rendering response 5734 function updatePageSections(sections) { 5735 if (!sections) return; 5736 5737 Object.entries(sections).forEach(([sectionId, html]) => { 5738 if (html !== null) { // null means section failed to render 5739 const sectionElement = document.getElementById(`shopify-section-${sectionId}`); 5740 if (sectionElement) { 5741 // Create temporary element to parse HTML 5742 const temp = document.createElement('div'); 5743 temp.innerHTML = html; 5744 5745 // Find the shopify-section content 5746 const newContent = temp.querySelector('.shopify-section'); 5747 if (newContent) { 5748 // Replace the inner HTML to preserve event listeners on the section element itself 5749 sectionElement.innerHTML = newContent.innerHTML; 5750 } else { 5751 // If no .shopify-section wrapper, use the HTML directly 5752 sectionElement.innerHTML = html; 5753 } 5754 5755 if (window.COMMSLAYER_DEBUG) { 5756 console.log('[CommSlayer] Updated section:', sectionId); 5757 } 5758 } 5759 } 5760 }); 5761 } 5762 5763 // Dispatch cart events for theme compatibility 5764 function dispatchCartEvents(cartData) { 5765 if (!cartData) return; 5766 5767 // Standard cart update events 5768 document.dispatchEvent(new CustomEvent('cart:updated', { 5769 detail: { cart: cartData } 5770 })); 5771 5772 document.dispatchEvent(new CustomEvent('cart:change', { 5773 detail: { cart: cartData } 5774 })); 5775 5776 // Theme-specific compatibility 5777 if (window.Shopify && window.Shopify.onCartUpdate) { 5778 window.Shopify.onCartUpdate(cartData); 5779 } 5780 5781 // jQuery events for older themes 5782 if (window.jQuery) { 5783 jQuery(document).trigger('cart.requestComplete', [cartData]); 5784 jQuery(document.body).trigger('added.ajaxProduct'); 5785 } 5786 } 5787 5788 async function updateCartItems(items) { 5789 if (window.COMMSLAYER_DEBUG) { 5790 console.log('[CommSlayer] Updating cart items:', items); 5791 } 5792 5793 try { 5794 // Build updates object with line item IDs as keys 5795 const updates = {}; 5796 items.forEach(item => { 5797 if (item.line_item_id) { 5798 // Line item ID is the 1-based index position in cart 5799 updates[item.line_item_id] = item.quantity; 5800 } 5801 }); 5802 5803 // Get sections to update with bundled rendering 5804 const sectionsToRender = getCartSectionsToRender(); 5805 const requestBody = { updates: updates }; 5806 5807 // Include sections for bundled section rendering 5808 if (sectionsToRender.length > 0) { 5809 requestBody.sections = sectionsToRender.join(','); 5810 requestBody.sections_url = window.location.pathname; 5811 } 5812 5813 const response = await fetch('/cart/update.js', { 5814 method: 'POST', 5815 headers: { 5816 'Content-Type': 'application/json', 5817 'Accept': 'application/json' 5818 }, 5819 body: JSON.stringify(requestBody) 5820 }); 5821 5822 if (!response.ok) { 5823 if (window.COMMSLAYER_DEBUG) { 5824 console.error('[CommSlayer] Failed to update cart:', response); 5825 } 5826 return false;
5827 } 5828 5829 const cart = await response.json(); 5830 if (window.COMMSLAYER_DEBUG) { 5831 console.log('[CommSlayer] Cart updated successfully:', cart); 5832 } 5833 5834 // Update sections if bundled rendering returned them 5835 if (cart.sections) { 5836 updatePageSections(cart.sections); 5837 } 5838 5839 // Dispatch cart events 5840 dispatchCartEvents(cart); 5841 5842 // Send updated cart state to widget 5843 scheduleRefresh(true); 5844 5845 return true; 5846 } catch (error) { 5847 if (window.COMMSLAYER_DEBUG) { 5848 console.error('[CommSlayer] Error updating cart:', error); 5849 } 5850 return false; 5851 } 5852 } 5853 5854 async function changeCartQuantity(lineItemId, quantity) { 5855 if (window.COMMSLAYER_DEBUG) { 5856 console.log('[CommSlayer] Changing quantity for line item:', lineItemId, 'to:', quantity); 5857 } 5858 5859 try { 5860 // Get sections to update with bundled rendering 5861 const sectionsToRender = getCartSectionsToRender(); 5862 const requestBody = { 5863 line: lineItemId, 5864 quantity: quantity 5865 }; 5866 5867 // Include sections for bundled section rendering 5868 if (sectionsToRender.length > 0) { 5869 requestBody.sections = sectionsToRender.join(','); 5870 requestBody.sections_url = window.location.pathname; 5871 } 5872 5873 const response = await fetch('/cart/change.js', { 5874 method: 'POST', 5875 headers: { 5876 'Content-Type': 'application/json', 5877 'Accept': 'application/json' 5878 }, 5879 body: JSON.stringify(requestBody) 5880 }); 5881 5882 if (!response.ok) { 5883 if (window.COMMSLAYER_DEBUG) { 5884 console.error('[CommSlayer] Failed to change quantity:', response); 5885 } 5886 return false; 5887 } 5888 5889 const cart = await response.json(); 5890 if (window.COMMSLAYER_DEBUG) { 5891 console.log('[CommSlayer] Quantity changed successfully:', cart); 5892 } 5893 5894 // Update sections if bundled rendering returned them 5895 if (cart.sections) { 5896 updatePageSections(cart.sections); 5897 } 5898 5899 // Dispatch cart events 5900 dispatchCartEvents(cart); 5901 5902 // Send updated cart state to widget 5903 scheduleRefresh(true); 5904 5905 return true; 5906 } catch (error) { 5907 if (window.COMMSLAYER_DEBUG) { 5908 console.error('[CommSlayer] Error changing quantity:', error); 5909 } 5910 return false; 5911 } 5912 } 5913 5914 // Message handler for widget communication 5915 function handleWidgetMessage(event) { 5916 // Log all messages for debugging 5917 if (window.COMMSLAYER_DEBUG) { 5918 console.log('[CommSlayer] Received message:', event.data, 'from:', event.origin); 5919 } 5920 5921 // Only accept messages from CommSlayer 5922 if (!event.origin.includes(COMMSLAYER_BASE_URL.replace(/^https?:\/\//, ''))) { 5923 if (window.COMMSLAYER_DEBUG) { 5924 console.log('[CommSlayer] Ignoring message from non-CommSlayer origin'); 5925 } 5926 return; 5927 } 5928 5929 // Handle cart sync requests from backend (via widget) 5930 if (event.data && (event.data.type === 'CART_SYNC' || event.data.type === 'cart_sync')) { 5931 const { action, items, operation } = event.data; 5932 if (window.COMMSLAYER_DEBUG) { 5933 console.log('[CommSlayer] Received cart sync request:', action, operation, items); 5934 } 5935 5936 switch (operation) { 5937 case 'add': 5938 addToCart(items); 5939 break; 5940 case 'update': 5941 if (items && items.length > 0) { 5942 // Check if we have line item IDs for update 5943 if (items.some(item => item.line_item_id)) { 5944 updateCartItems(items); 5945 } else { 5946 // If no line item IDs, treat as add 5947 addToCart(items); 5948 } 5949 } 5950 break; 5951 case 'change': 5952 // Handle single item quantity change 5953 if (items && items.length > 0) { 5954 const item = items[0]; 5955 if (item.line_item_id) { 5956 changeCartQuantity(item.line_item_id, item.quantity); 5957 } 5958 } 5959 break; 5960 } 5961 } 5962 5963 // Handle cart state requests 5964 if (event.data && event.data.type === 'COMMSLAYER_CART_UPDATE') { 5965 const { action } = event.data; 5966 5967 switch (action) { 5968 case 'getCart': 5969 if (window.COMMSLAYER_DEBUG) { 5970 console.log('[CommSlayer] Sending c
5970art state to widget'); 5971 } 5972 // Send current cart state to widget 5973 refreshCart(true); 5974 break; 5975 case 'openCheckout': 5976 // Navigate to checkout if requested 5977 if (event.data.data && event.data.data.checkoutUrl) { 5978 window.location.href = event.data.data.checkoutUrl; 5979 } 5980 break; 5981 } 5982 } 5983 } 5984 5985 // Initialize cart monitoring 5986 function initCartMonitoring() { 5987 // Listen for messages from widget 5988 window.addEventListener('message', handleWidgetMessage); 5989 5990 // Start cart tracking 5991 startCartTracking(); 5992 5993 // Listen for manual cart updates 5994 document.addEventListener('cart:updated', () => { 5995 scheduleRefresh(); 5996 }); 5997 5998 // Listen for Shopify cart events instead of overriding fetch 5999 // This is a cleaner approach that doesn't interfere with other scripts 6000 6001 // Listen for standard Shopify cart events 6002 document.addEventListener('cart:change', () => { 6003 scheduleRefresh(); 6004 }); 6005 6006 document.addEventListener('cart:add', () => { 6007 scheduleRefresh(); 6008 }); 6009 6010 // Listen for common theme-specific events 6011 document.addEventListener('ajaxCart:success', () => { 6012 scheduleRefresh(); 6013 }); 6014 6015 document.addEventListener('product:added', () => { 6016 scheduleRefresh(); 6017 }); 6018 6019 // Listen for jQuery cart events if jQuery is available 6020 if (window.jQuery) { 6021 jQuery(document).on('cart.requestComplete', () => { 6022 scheduleRefresh(); 6023 }); 6024 6025 jQuery(document.body).on('added.ajaxProduct', () => { 6026 scheduleRefresh(); 6027 }); 6028 } 6029 6030 // Use MutationObserver to detect cart count changes in the DOM 6031 // This is more reliable than overriding fetch and works with any implementation 6032 const observeCartChanges = () => { 6033 // Find cart count elements 6034 const cartCountSelectors = [ 6035 '.cart-count', 6036 '.cart-count-bubble', 6037 '[data-cart-count]', 6038 '.cart-item-count', 6039 '#CartCount', 6040 '.js-cart-item-count' 6041 ]; 6042 6043 const cartCountElements = []; 6044 cartCountSelectors.forEach(selector => { 6045 document.querySelectorAll(selector).forEach(el => { 6046 if (!cartCountElements.includes(el)) { 6047 cartCountElements.push(el); 6048 } 6049 }); 6050 }); 6051 6052 if (cartCountElements.length > 0) { 6053 const observer = new MutationObserver((mutations) => { 6054 // Debounce notifications to avoid too many updates 6055 clearTimeout(window.commslayerCartObserverTimeout); 6056 window.commslayerCartObserverTimeout = setTimeout(() => { 6057 scheduleRefresh(); 6058 }, 500); 6059 }); 6060 6061 // Observe each cart count element for changes 6062 cartCountElements.forEach(element => { 6063 observer.observe(element, { 6064 childList: true, 6065 characterData: true, 6066 subtree: true, 6067 attributes: true, 6068 attributeFilter: ['data-cart-count', 'aria-label'] 6069 }); 6070 }); 6071 } 6072 }; 6073 6074 // Start observing cart changes after a short delay 6075 setTimeout(observeCartChanges, 1000); 6076 } 6077 6078 // Wait for DOM and widget to be ready 6079 if (document.readyState === 'loading') { 6080 document.addEventListener('DOMContentLoaded', initCartMonitoring); 6081 } else { 6082 initCartMonitoring(); 6083 } 6084 6085 // Also initialize when widget is ready 6086 window.addEventListener('chatwoot:ready', () => { 6087 scheduleRefresh(true); 6088 }); 6089 6090 })(); 6091 } 6092</script>
6092 6093 6094 6095 6096</div><div id="shopify-block-AdGQ0NFFncmhwdVBBY__421189893315497488" class="shopify-block shopify-app-block blz_localization_overlay_selector"><link rel="dns-prefetch" href="https://cdn.shopify.com"> 6097<link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 6098<link href="//cdn.shopify.com/extensions/01a0c8e5-2df0-7118-9ab4-b68433e16942/geolocation-markets-selector-183/assets/os-main.min.css" rel="stylesheet" type="text/css" media="all" /> 6099<div class="blz-overlay_selector_container is-inline-mode" data-os-anchor=".s-header__currency-selector-placeholder" data-os-anchor-mobile="" data-os-anchor-tablet="" data-os-placement="after"> 6100 <form method="post" action="/localization" class="blz-country-picker__form blz_os_localization_form"> 6101 <!-- BEGIN app snippet: os-country --> 6102<link href="//cdn.shopify.com/extensions/01a0c8e5-2df0-7118-9ab4-b68433e16942/geolocation-markets-selector-183/assets/os-main.min.css" rel="stylesheet" type="text/css" media="all" /> 6103 6104<style> 6105.blz_os_language_content,.blz_os_country_content,.blz-overlay_selector_container,.blz_os_list_item{background-color:#ffffff}.blz_os_list_item:hover{background-color:#eaf6ff} 6106</style> 6107� 6108 6109 <div class="blz-overlay_country_selector" > 6110<button onclick="blzToggleCountrySelector(event);" class="blz_os_country_btn" id="blz_os_country_btn" 6111 style="background-color: #ffffff;"> 6112 <img src="https://cdn.shopify.com/static/images/flags/us.svg?width=32" width="auto" height="auto" alt="United States" class="blz_os_flag_img"> 6113 6114 <span class="blz_os_span_text "> USD</span> 6115 6116<svg id="blz_os_country_svg" width="20" class="blz_os_country_svg" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg><i class="blz_os_icon" aria-hidden="true"></i> 6117</button> 6118<div 6119 id="blz_os_country_content" 6120 class="blz_os_country_content blz_os_content_top" 6121 style="right: 0; width: fit-content;"> 6122 <ul class="blz_os_country_list"> 6123 6124 6125 <style> 6126 /* Sidekick only: neutralize theme flex order so Liquid list order is visible */ 6127 .s-header__utilities .blz_os_country_list, 6128 .blz_os_country_list { 6129 display: flex; 6130 flex-direction: column; 6131 } 6132 .s-header__utilities .blz_os_country_list .blz_os_list_item, 6133 .s-header__utilities .blz_os_country_list .blz_os_country_list_item, 6134 .blz_os_country_list .blz_os_list_item, 6135 .blz_os_country_list .blz_os_country_list_item { 6136 order: 0 !important; 6137 } 6138 </style> 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="us" data-type="country" style="font-size:px;"> 6151 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6152 6153 6154 6155 <img src="https://cdn.shopify.com/static/images/flags/us.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6156 6157 6158 <span class="blz_os_span_text blz_os_span_text_container"> 6159 <span class="blz_os_first_text blz_os_list">United states</span> 6160 <span class="blz_os_second_text">USD $</span> 6161 </span> 6162 </div> 6163 </li> 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="ca" data-type="country" style="font-size:px;"> 6174 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6175 6176 6177 6178 <img src="https://cdn.shopify.com/static/images/flags/ca.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6179 6180
6181 <span class="blz_os_span_text blz_os_span_text_container"> 6182 <span class="blz_os_first_text blz_os_list">Canada</span> 6183 <span class="blz_os_second_text">CAD $</span> 6184 </span> 6185 </div> 6186 </li> 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="gb" data-type="country" style="font-size:px;"> 6197 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6198 6199 6200 6201 <img src="https://cdn.shopify.com/static/images/flags/gb.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6202 6203 6204 <span class="blz_os_span_text blz_os_span_text_container"> 6205 <span class="blz_os_first_text blz_os_list">United kingdom</span> 6206 <span class="blz_os_second_text">GBP £</span> 6207 </span> 6208 </div> 6209 </li> 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="au" data-type="country" style="font-size:px;"> 6220 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6221 6222 6223 6224 <img src="https://cdn.shopify.com/static/images/flags/au.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6225 6226 6227 <span class="blz_os_span_text blz_os_span_text_container"> 6228 <span class="blz_os_first_text blz_os_list">Australia</span> 6229 <span class="blz_os_second_text">AUD $</span> 6230 </span> 6231 </div> 6232 </li> 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="nz" data-type="country" style="font-size:px;"> 6243 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6244 6245 6246 6247 <img src="https://cdn.shopify.com/static/images/flags/nz.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6248 6249 6250 <span class="blz_os_span_text blz_os_span_text_container"> 6251 <span class="blz_os_first_text blz_os_list">New zealand</span> 6252 <span class="blz_os_second_text">USD $</span> 6253 </span> 6254 </div> 6255 </li> 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="hk" data-type="country" style="font-size:px;"> 6266 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6267 6268 6269 6270 <img src="https://cdn.shopify.com/static/images/flags/hk.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6271 6272 6273 <span class="blz_os_span_text blz_os_span_text_container"> 6274 <span class="blz_os_first_text blz_os_list">Hong kong</span> 6275 <span class="blz_os_second_text">USD $</span> 6276 </span> 6277 </div> 6278 </li> 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="ph" data-type="country" style="font-size:px;"> 6289 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6290 6291 6292 6293 <img src="https://cdn.shopify.com/static/images/flags/ph.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6294 6295
6296 <span class="blz_os_span_text blz_os_span_text_container"> 6297 <span class="blz_os_first_text blz_os_list">Philippines</span> 6298 <span class="blz_os_second_text">USD $</span> 6299 </span> 6300 </div> 6301 </li> 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="my" data-type="country" style="font-size:px;"> 6312 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6313 6314 6315 6316 <img src="https://cdn.shopify.com/static/images/flags/my.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6317 6318 6319 <span class="blz_os_span_text blz_os_span_text_container"> 6320 <span class="blz_os_first_text blz_os_list">Malaysia</span> 6321 <span class="blz_os_second_text">USD $</span> 6322 </span> 6323 </div> 6324 </li> 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="sg" data-type="country" style="font-size:px;"> 6335 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6336 6337 6338 6339 <img src="https://cdn.shopify.com/static/images/flags/sg.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6340 6341 6342 <span class="blz_os_span_text blz_os_span_text_container"> 6343 <span class="blz_os_first_text blz_os_list">Singapore</span> 6344 <span class="blz_os_second_text">USD $</span> 6345 </span> 6346 </div> 6347 </li> 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="kr" data-type="country" style="font-size:px;"> 6358 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6359 6360 6361 6362 <img src="https://cdn.shopify.com/static/images/flags/kr.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6363 6364 6365 <span class="blz_os_span_text blz_os_span_text_container"> 6366 <span class="blz_os_first_text blz_os_list">South korea</span> 6367 <span class="blz_os_second_text">USD $</span> 6368 </span> 6369 </div> 6370 </li> 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="kw" data-type="country" style="font-size:px;"> 6381 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6382 6383 6384 6385 <img src="https://cdn.shopify.com/static/images/flags/kw.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6386 6387 6388 <span class="blz_os_span_text blz_os_span_text_container"> 6389 <span class="blz_os_first_text blz_os_list">Kuwait</span> 6390 <span class="blz_os_second_text">USD $</span> 6391 </span> 6392 </div> 6393 </li> 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="de" data-type="country" style="font-size:px;"> 6404 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6405 6406 6407 6408 <img src="https://cdn.shopify.com/static/images/flags/de.svg?width=32" width="auto" height="auto" alt="United States Flag" class="blz_os_flag_img"> 6409 6410
6411 <span class="blz_os_span_text blz_os_span_text_container"> 6412 <span class="blz_os_first_text blz_os_list">Germany</span> 6413 <span class="blz_os_second_text">USD $</span> 6414 </span> 6415 </div> 6416 </li> 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 <li class="blz_os_list_item blz_os_country_list_item" data-action="/localization?SkipBlazeGeo=yes" data-country-code="al" data-type="country" style="font-size:px;"> 6427 <div style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 6428 6429 6430 6431 <img src="https://cdn.shopify.com/s/files/1/0626/0156/0204/files/earth-icon.svg?v=1750870598" width="auto" height="auto" alt="united-states" class="blz_os_flag_img"> 6432 6433 6434 <span class="blz_os_span_text blz_os_span_text_container"> 6435 <span class="blz_os_first_text blz_os_list">International</span> 6436 <span class="blz_os_second_text">USD $</span> 6437 </span> 6438 </div> 6439 </li> 6440 6441 6442 6443 6444 </ul> 6445</div> 6446</div> 6447<!-- END app snippet --> 6448 <!-- BEGIN app snippet: os-language --> 6449 6450<!-- END app snippet --> 6451 6452 <input type="hidden" name="form_type" value="localization"> 6453 <input type="hidden" name="_method" value="put"> 6454 <input type="hidden" name="utf8" value="â"> 6455 6456 <input type="hidden" name="return_to" value="/pages/contact-us?SkipBlazeGeo=yes"> 6457 <input type="hidden" name="country_code" value="US"> 6458 <input type="hidden" name="language_code" value="en"> 6459 </form> 6460</div> 6461<style> 6462.blz_os_language_content,.blz_os_country_content{background-color:#ffffff;} 6463.blz-overlay_selector_container{background-color:#ffffff;} 6464.blz_os_country_svg,.blz_os_language_svg{color:#ee3932;} 6465.blz_os_flag_img,.blz_os_country_btn img{ width:22px !important;height:22px !important;border-radius:50%;object-fit:cover; } 6466.blz_os_span_text{color:#ee3932;font-size:16px;} 6467.blz-overlay_selector_container{border-radius:4px;top:2%;} 6468.blz_os_country_content,.blz_os_language_content{border-radius:4px;} 6469</style>
6470<script src="https://cdn.shopify.com/extensions/01a0c8e5-2df0-7118-9ab4-b68433e16942/geolocation-markets-selector-183/assets/os-main.min.js" async></script>
6470 6471
6472<script src="https://cdn.shopify.com/extensions/01a0c8e5-2df0-7118-9ab4-b68433e16942/geolocation-markets-selector-183/assets/inline-os.min.js" async></script>
6472 6473<link href="//cdn.shopify.com/extensions/01a0c8e5-2df0-7118-9ab4-b68433e16942/geolocation-markets-selector-183/assets/inline-os.min.css" rel="stylesheet" type="text/css" media="all" /> 6474 6475<style>.blz_os_country_list { 6476 display: flex; 6477 flex-direction: column; 6478} 6479 6480.blz_os_country_list_item[data-country-code="al"] { 6481 order: 999; 6482} 6483.blz_os_country_list .blz_os_list_item { 6484 order: 0 !important; 6485} 6486.blz_os_country_list_item[data-country-code="nz"], 6487.blz_os_country_list_item[data-country-code="hk"], 6488.blz_os_country_list_item[data-country-code="ph"], 6489.blz_os_country_list_item[data-country-code="my"], 6490.blz_os_country_list_item[data-country-code="sg"], 6491.blz_os_country_list_item[data-country-code="kr"], 6492.blz_os_country_list_item[data-country-code="kw"], 6493.blz_os_country_list_item[data-country-code="de"] { 6494 display: none !important; 6495}</style> 6496</div><div id="shopify-block-AM05QbkZpaG5MWU93V__18228966181090706294" class="shopify-block shopify-app-block"> 6497 6498 6499
6499<script type="module" src="https://cdn.shopify.com/extensions/01a0d300-c426-79d6-b090-f4bfd4249626/lb-upsell-448/assets/lb-upsell.js" defer="defer"></script>
6499 6500
6500<script type="module" src="https://cdn.shopify.com/extensions/01a0d300-c426-79d6-b090-f4bfd4249626/lb-upsell-448/assets/lb-upsell-components.esm.js" defer="defer"></script>
6500 6501 6502 6503
6504<script> 6505 6506 6507 window.lbupsellToken = "aaa4dbe8415d4f1eda034f278429f512" 6508 6509 6510</script>
6510 6511
6512<script> 6513 6514 window.lbInitMode = "immediate"; 6515 6516 window.lbComponentSrc = "https://cdn.shopify.com/extensions/01a0d300-c426-79d6-b090-f4bfd4249626/lb-upsell-448/assets/lb-upsell-components.esm.js";</script>
6516 6517
6518<script type="text/javascript" src="https://cdn.shopify.com/extensions/01a0d300-c426-79d6-b090-f4bfd4249626/lb-upsell-448/assets/lb-utils.js" defer="defer"></script>
6518 6519 6520</div><div id="shopify-block-AWW1UQzJIQVBwWExmU__8660026769530893754" class="shopify-block shopify-app-block estimated-embed-root"><!-- BEGIN app snippet: add-cart-data -->
6520<script> 6521 window.estimatedCartItems ??= []; 6522 window.estimatedCartItemsProduct ??= {}; 6523 window.estimatedCartItemsMetafields ??= {}; 6524 window.estimatedCartItemsCollections ??= {}; 6525 6526 6527</script>
6527 6528<!-- END app snippet --><!-- BEGIN app snippet: add-product-data -->
6528<script> 6529 window.estimatedCurrentProduct ??= undefined; 6530 window.estimatedProductsMetafields ??= {}; 6531 window.estimatedSelectedVariant ??= undefined; 6532 window.estimatedProductCollections ??= []; 6533 window.estimatedProductVariants ??= []; 6534 window.estimatedProductVariantQuantity ??= {}; 6535 window.estimatedProductVariantInventoryPolicy ??= {}; 6536</script>
6536 6537 6538 6539<!-- END app snippet --><!-- BEGIN app snippet: add-collection-data -->
6539<script> 6540 window.estimatedCurrentCollection ??= undefined; 6541 window.estimatedCollectionProducts ??= []; 6542 window.estimatedCollectionProductCollections ??= {}; 6543</script>
6543 6544 6545 6546<!-- END app snippet --><!-- BEGIN app snippet: add-metafields --> 6547 6548
6549<script> 6550 window.estimatedAppMetafields = {"rootLink":"https://estimated.omegatheme.com/s/api","data":null,"isABTest":true,"shop":"sidekicktools.myshopify.com","publicKey":"6572c59a4a97365c92cd22c374c425529d797d7218f6e7bc43e5614137e508c9","showOnPages":"products,pages","manualData":true,"isOverflowBy":"zipcode"}; 6551</script>
6551 6552<!-- END app snippet --><!-- BEGIN app snippet: add-script -->
6552<script> 6553 if (!document.querySelector("#omega-estimated-script")) { 6554 // Shops that only load the bundle on pages enabled in showOnPages (+ cart). 6555 // Add a shop domain here to opt it into that gating. 6556 const ESTIMATED_SHOPS_GATE_SCRIPT_BY_PAGES = ['inny-shop.myshopify.com']; 6557 const ESTIMATED_ALLOW_SCRIPT_ON_PAGE = true; 6558 6559 const estimatedShop = window?.Shopify?.shop; 6560 const estimatedBlocked = 6561 (estimatedShop === 'mamaandpeachesstore.myshopify.com' && 6562 ['home', 'collection'].includes(window?.__st?.p)) || 6563 (ESTIMATED_SHOPS_GATE_SCRIPT_BY_PAGES.includes(estimatedShop) && !ESTIMATED_ALLOW_SCRIPT_ON_PAGE); 6564 6565 if (!estimatedBlocked) { 6566 const script = document.createElement('script'); 6567 script.id = 'omega-estimated-script'; 6568 script.src = 'https://cdn.shopify.com/extensions/01a0d151-53d0-7087-9768-a3e26a5a49f3/estimated-shipping-date-896/assets/omega-estimated.min.js'; 6569 script.async = false; 6570 script.type = 'module'; 6571 document.head.appendChild(script); 6572 } 6573 } 6574</script>
6574 6575<!-- END app snippet --><!-- BEGIN app snippet: add-localization-market -->
6575<script> 6576 window.estimatedLocalizationMarket = { 6577 name: null, 6578 handle: "united-states", 6579 id: 8618071, 6580 countryISO: "US" 6581 }; 6582</script>
6582 6583<!-- END app snippet --> 6584 6585 6586</div><div id="shopify-block-Aa3UrMW9IZE1TVFNUQ__5537102726230261467" class="shopify-block shopify-app-block"> 6587 6588 6589 <!-- BEGIN app snippet: quiz-popup-styles --><style> 6590 #quiz-container { 6591 position: fixed; 6592 top: 0; 6593 left: 0; 6594 width: 100%; 6595 height: 100%; 6596 display: flex; 6597 flex-direction: column; 6598 justify-content: center; 6599 align-items: center; 6600 background: rgba(0, 0, 0, 0.5); 6601 z-index: var(--quiz-z-index, 100); 6602 overflow: auto; 6603 touch-action: manipulation; 6604 } 6605 #quiz-container .quiz-content { 6606 position: relative; 6607 border-radius: 8px; 6608 box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); 6609 z-index: var(--quiz-content-z-index, 101); 6610 max-height: 100%; 6611 overflow: auto; 6612 background: white; 6613 touch-action: manipulation; 6614 } 6615 #quiz-container .close-btn { 6616 position: absolute; 6617 top: 10px; 6618 right: 10px; 6619 background: none; 6620 border: none; 6621 font-size: 32px; 6622 cursor: pointer; 6623 z-index: var(--close-btn-z-index, 102); 6624 margin-left: auto; 6625 color: var(--close-btn-color, #777777); 6626 line-height: 32px; 6627 } 6628 body.revenuehunt-popup-open .react-dropdown-select-dropdown { 6629 z-index: var(--quiz-dropdown-z-index, 103) !important; 6630 } 6631</style> 6632<!-- END app snippet --> 6633 <!-- BEGIN app snippet: quiz-global-vars -->
6633<script> 6634 if (!window.quizUrls) window.quizUrls = {}; 6635 6636 window.quizUrls['quiz_kw4dPS'] = "https:\/\/cdn.shopify.com\/s\/files\/1\/1723\/7793\/files\/quiz-kw4dPS.json?v=1787262676"; 6637 6638 6639 if (!window.quiz_locale) { 6640 window.quiz_locale = 'en' 6641 } 6642 if (!window.quiz_country) { 6643 window.quiz_country = 'US' 6644 } 6645 if (!window.quiz_currency) { 6646 window.quiz_currency = '${{ amount_no_decimals }} USD' 6647 } 6648 if (!window.quiz_market_id) { 6649 window.quiz_market_id = 'gid://shopify/Market/8618071' 6650 } 6651</script>
6651 6652<!-- END app snippet --> 6653 <!-- BEGIN app snippet: quiz-renderer-script -->
6653<script type="module" src="https://cdn.shopify.com/extensions/01a0ae74-621f-7bd2-943c-becfcffeaae8/revenuehunt-200/assets/quiz-renderer.js" defer></script>
6653<!-- END app snippet --> 6654 <!-- BEGIN app snippet: quiz-popup-setup --><!-- BEGIN app snippet: quiz-url-functions -->
6654<script> 6655 /** 6656 * Quiz URL Functions 6657 * 6658 * Single source of truth for quiz URL parsing and clearing. 6659 */ 6660 (function() { 6661 if (window.revenueHuntQuizUrl && window.revenueHuntQuizUrl.__initialized) { 6662 return; 6663 } 6664 6665 window.revenueHuntQuizUrl = { 6666 __initialized: true, 6667 6668 isQuizHash: function(hash) { 6669 return ( 6670 hash === '#quiz' || 6671 /^#quiz-[A-Za-z0-9]+$/.test(hash) || 6672 /^#response-[A-Za-z0-9]+$/.test(hash) 6673 ); 6674 }, 6675 6676 getQuizKey: function(hash, defaultQuizKey) { 6677 if (!this.isQuizHash(hash)) return null; 6678 6679 const hashTarget = String(hash || '').replace(/^#/, ''); 6680 6681 if (hashTarget === 'quiz') { 6682 return defaultQuizKey; 6683 } 6684 6685 if (hashTarget.startsWith('quiz-')) { 6686 return 'quiz_' + hashTarget.substring(5); 6687 } 6688 6689 if (hashTarget.startsWith('response-')) { 6690 return hashTarget; 6691 } 6692 6693 return null; 6694 }, 6695 6696 getTarget: function(hash, search, defaultQuizKey) {
6697 const hashTarget = this.getQuizKey(hash, defaultQuizKey); 6698 if (hashTarget) return hashTarget; 6699 6700 const responseId = new URLSearchParams(String(search || '')).get('response_id'); 6701 if (responseId && /^[A-Za-z0-9]+$/.test(responseId)) { 6702 return 'response-' + responseId; 6703 } 6704 6705 return null; 6706 }, 6707 6708 clear: function() { 6709 const url = new URL(window.location.href); 6710 let changed = false; 6711 6712 if (this.isQuizHash(url.hash)) { 6713 url.hash = ''; 6714 changed = true; 6715 } 6716 6717 if (url.searchParams.has('response_id')) { 6718 url.searchParams.delete('response_id'); 6719 changed = true; 6720 } 6721 6722 if (changed) { 6723 window.history.replaceState(window.history.state, '', url.toString()); 6724 } 6725 }, 6726 }; 6727 })(); 6728</script>
6728 6729<!-- END app snippet --> 6730<!-- BEGIN app snippet: quiz-popup-functions -->
6730<script> 6731 /** 6732 * Popup Functions 6733 * 6734 * Shared, setting-free quiz popup behavior. 6735 * Individual theme extension instances register their own popup config with 6736 * window.revenueHuntQuizPopup.register(config), then open by instance id. 6737 * 6738 * Popup extensions are intentionally singleton: only one #quiz-container 6739 * exists at a time. Multiple instances can register configs, but opening a 6740 * popup replaces the current popup unless the caller chooses another policy. 6741 * 6742 * Used by: automatic popup, link popup, chat button 6743 */ 6744 (function() { 6745 if (window.revenueHuntQuizPopup && window.revenueHuntQuizPopup.__initialized) { 6746 return; 6747 } 6748 6749 function getConfig(instanceId) { 6750 return window.revenueHuntQuizPopup.configs[String(instanceId)] || null; 6751 } 6752 6753 function applyPopupStyles(quizContainer, quizContent, config) { 6754 const zIndex = parseInt(config.zIndex || 100, 10); 6755 const width = parseInt(config.width || 100, 10); 6756 const height = parseInt(config.height || 100, 10); 6757 6758 quizContainer.style.setProperty('--quiz-z-index', zIndex); 6759 quizContainer.style.setProperty('--quiz-content-z-index', zIndex + 1); 6760 quizContainer.style.setProperty('--close-btn-z-index', zIndex + 2); 6761 quizContainer.style.setProperty('--close-btn-color', config.closeColor || '#777777'); 6762 6763 // Quiz dropdowns are portaled to document.body, outside #quiz-container. 6764 // Keep this one popup-open body variable so portaled dropdowns stay above the modal. 6765 document.body.style.setProperty('--quiz-dropdown-z-index', zIndex + 3); 6766 6767 quizContent.style.width = `${width}%`; 6768 quizContent.style.height = `${height}%`; 6769 } 6770 6771 function markPopupShown(quizKey) { 6772 // Only mark the popup as shown when the key already targets a quiz (not for response hashes) 6773 if (typeof quizKey === 'string' && quizKey.startsWith('quiz_')) { 6774 window.revenueHuntSetStorage('revenuehunt-popup-already-shown-' + quizKey, true, 1); 6775 } 6776 } 6777 6778 window.revenueHuntQuizPopup = { 6779 __initialized: true, 6780 configs: {}, 6781 6782 register: function(config) { 6783 if (!config || !config.instanceId) return; 6784 6785 this.configs[String(config.instanceId)] = { 6786 instanceId: String(config.instanceId), 6787 source: config.source || 'popup', 6788 width: config.width || 100, 6789 height: config.height || 100, 6790 zIndex: config.zIndex || 100, 6791 closeColor: config.closeColor || '#777777', 6792 }; 6793 }, 6794 6795 close: function(options) { 6796 const settings = options || {}; 6797 const quizContainer = document.getElementById('quiz-container'); 6798 6799 if (quizContainer) { 6800 quizContainer.remove(); 6801 } 6802 6803 document.body.classList.remove('revenuehunt-popup-open'); 6804 document.body.style.removeProperty('--quiz-dropdown-z-index'); 6805 6806 if (settings.clearHash !== false && window.revenueHuntQuizUrl) { 6807 window.revenueHuntQuizUrl.clear(); 6808 } 6809 }, 6810 6811 getContainer: function(instanceId) { 6812 const owner = String(instanceId); 6813 const containers = document.querySelectorAll('[data-popup-owner]'); 6814 6815 for (let i = 0; i < containers.length; i += 1) { 6816 if (containers[i].dataset.popupOwner === owner) { 6817 return containers[i]; 6818 } 6819 } 6820 6821 return null; 6822 }, 6823 6824 resize: function(instanceId) { 6825 const config = getConfig(instanceId); 6826 const quizContainer = this.getContainer(instanceId); 6827 const quizContent = quizContainer && quizContainer.querySelector('.quiz-content'); 6828 6829 if (!config || !quizContainer || !quizContent) return; 6830 6831 applyPopupStyles(quizContainer, quizContent, config); 6832 }, 6833 6834 open: function(instanceId, quizKey, options) { 6835 const config = getConfig(instanceId); 6836 if (!config) return null; 6837 6838 const settings = options || {}; 6839 6840 const existingQuizContainer = document.getElementById('quiz-container'); 6841 if (existingQuizContainer) { 6842 if (settings.ifOpen === 'mark-shown') { 6843 markPopupShown(quizKey); 6844 return null; 6845 } 6846
6847 existingQuizContainer.remove(); 6848 } 6849 6850 markPopupShown(quizKey); 6851 6852 const popupRenderId = `popup-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`; 6853 const quizContainer = document.createElement('div'); 6854 quizContainer.id = 'quiz-container'; 6855 // `needsclick` opts out of FastClick, which legacy Shopify themes (e.g. Brooklyn) bundle in 6856 // theme.js. FastClick collides with the renderer's own touch handler on iOS and swallows the 6857 // first taps until a refresh. 6858 quizContainer.className = 'quiz-container needsclick'; 6859 quizContainer.dataset.quizInstanceId = popupRenderId; 6860 quizContainer.dataset.popupOwner = config.instanceId; 6861 quizContainer.dataset.popupSource = config.source; 6862 if (settings.openedBy) { 6863 quizContainer.dataset.openedBy = settings.openedBy; 6864 } 6865 quizContainer.style.display = 'flex'; 6866 document.body.classList.add('revenuehunt-popup-open'); 6867 6868 const quizContent = document.createElement('div'); 6869 quizContent.className = 'quiz-content needsclick'; 6870 applyPopupStyles(quizContainer, quizContent, config); 6871 6872 const closeButton = document.createElement('button'); 6873 closeButton.className = 'close-btn'; 6874 closeButton.setAttribute('aria-label', 'Close quiz'); 6875 6876 const closeIcon = document.createElement('span'); 6877 closeIcon.textContent = 'Ã'; 6878 closeButton.appendChild(closeIcon); 6879 6880 const quizRenderer = document.createElement('quiz-renderer'); 6881 quizRenderer.setAttribute('data-quiz-instance-id', popupRenderId); 6882 quizRenderer.setAttribute('target', String(quizKey)); 6883 quizRenderer.setAttribute('type', 'modal'); 6884 quizRenderer.setAttribute('aria-label', 'Quiz'); 6885 quizRenderer.setAttribute( 6886 'over-plan-at', 6887 "", 6888 ); 6889 quizRenderer.setAttribute( 6890 'execute-custom-features', 6891 'true', 6892 ); 6893 quizRenderer.setAttribute('myshopify-domain', "sidekicktools.myshopify.com"); 6894 6895 quizContent.appendChild(closeButton); 6896 quizContent.appendChild(quizRenderer); 6897 quizContainer.appendChild(quizContent); 6898 document.body.appendChild(quizContainer); 6899 6900 closeButton.addEventListener('click', function () { 6901 window.revenueHuntQuizPopup.close(); 6902 }); 6903 6904 quizContainer.addEventListener('click', function (event) { 6905 if (event.target === quizContainer) { 6906 window.revenueHuntQuizPopup.close(); 6907 } 6908 }); 6909 6910 return quizContainer; 6911 }, 6912 }; 6913 6914 window.revenueHuntCloseQuizContainer = function(options) { 6915 window.revenueHuntQuizPopup.close(options); 6916 }; 6917 })(); 6918</script>
6918 6919<!-- END app snippet --> 6920<!-- BEGIN app snippet: quiz-popup-config -->
6920<script> 6921 (function() { 6922 if (!window.revenueHuntQuizPopup) return; 6923 6924 window.revenueHuntQuizPopup.register({ 6925 instanceId: "link-popup-Aa3UrMW9IZE1TVFNUQ__5537102726230261467", 6926 source: "link-popup", 6927 width: "90", 6928 height: "90", 6929 zIndex: 100, 6930 closeColor: "#777777", 6931 }); 6932 })(); 6933</script>
6933 6934<!-- END app snippet --> 6935<!-- END app snippet --> 6936 <!-- BEGIN app snippet: quiz-storage-helpers -->
6936<script> 6937 /** 6938 * Storage Helpers 6939 * 6940 * Provides localStorage utilities with automatic expiration. 6941 * Used to track popup display state, greeting/notification dismissals, etc. 6942 * 6943 * Functions: 6944 * - revenueHuntGetStorage(name): Get value, returns null if expired 6945 * - revenueHuntSetStorage(name, value, days): Set value with expiration 6946 */ 6947 window.revenueHuntGetStorage = function(name) { 6948 try { 6949 const itemStr = localStorage.getItem(name); 6950 if (!itemStr) { 6951 return null; 6952 } 6953 const item = JSON.parse(itemStr); 6954 if (Date.now() > item.expiry) { 6955 localStorage.removeItem(name); 6956 return null; 6957 } 6958 return item.value; 6959 } catch (e) { 6960 console.warn('Failed to get localStorage:', e); 6961 return null; 6962 } 6963 }; 6964 6965 window.revenueHuntSetStorage = function(name, value, days) { 6966 try { 6967 const expiry = Date.now() + (days * 24 * 60 * 60 * 1000); 6968 const data = { 6969 value: value, 6970 expiry: expiry 6971 }; 6972 localStorage.setItem(name, JSON.stringify(data)); 6973 } catch (e) { 6974 console.warn('Failed to set localStorage:', e); 6975 } 6976 }; 6977</script>
6977<!-- END app snippet --> 6978 <!-- BEGIN app snippet: quiz-block-priority -->
6978<script> 6979 /** 6980 * Block Priority System 6981 * 6982 * Ensures only ONE quiz extension of each type activates per page. 6983 * Priority: First block > First global 6984 * 6985 * Use cases: 6986 * - Multiple blocks of same type: Only first block runs 6987 * - Multiple globals of same type: Only first global runs (if no blocks) 6988 * - Mix of block + global: Only block runs, global is skipped 6989 */ 6990 6991 // Registry for synchronous block registration (works before document.body exists) 6992 window.revenueHuntBlockRegistry = window.revenueHuntBlockRegistry || {}; 6993 6994 /** 6995 * Registers a block extension 6996 * Uses JS variable instead of DOM to support synchronous registration before document.body exists 6997 * @param {string} type - Extension type (e.g., 'link-popup', 'chat-button', 'automatic-popup') 6998 * @returns {boolean} - True if registered successfully, false if already registered 6999 */ 7000 window.revenueHuntRegisterBlock = function(type) { 7001 if (window.revenueHuntBlockRegistry[type]) { 7002 return false; 7003 } 7004 window.revenueHuntBlockRegistry[type] = true; 7005 return true; 7006 }; 7007 7008 /** 7009 * Checks if a block extension is active 7010 * @param {string} type - Extension type 7011 * @returns {boolean} - True if block extension is active 7012 */ 7013 window.revenueHuntIsBlockActive = function(type) { 7014 return !!window.revenueHuntBlockRegistry[type]; 7015 }; 7016 7017 /** 7018 * Registers a global extension 7019 * @param {string} type - Extension type 7020 * @returns {boolean} - True if registered successfully, false if already registered 7021 */ 7022 window.revenueHuntRegisterGlobal = function(type) { 7023 const globalMarkerId = 'revenuehunt-' + type + '-global-active'; 7024 if (document.getElementById(globalMarkerId)) { 7025 return false; 7026 } 7027 const marker = document.createElement('div'); 7028 marker.id = globalMarkerId; 7029 marker.style.display = 'none'; 7030 document.body.appendChild(marker); 7031 return true; 7032 }; 7033</script>
7033<!-- END app snippet --> 7034 <!-- BEGIN app snippet: quiz-link-quiz-script -->
7034<script> 7035 /** 7036 * Link Popup Quiz Script 7037 * 7038 * Handles quiz popups triggered by quiz/response hashes or a response_id query parameter. 7039 * Also handles direct URL navigation (e.g., /page#quiz or /page?response_id={id}). 7040 * 7041 * Priority system: 7042 * - Block extensions: Register and exit if already registered 7043 * - Global extensions: Exit if block exists OR already registered 7044 */ 7045 document.addEventListener('DOMContentLoaded', function() { 7046 const isBlock = false; 7047 7048 if (isBlock) { 7049 if (!window.revenueHuntRegisterBlock('link-popup')) { 7050 return; 7051 } 7052 } else { 7053 if (window.revenueHuntIsBlockActive('link-popup')) { 7054 return; 7055 } 7056 if (!window.revenueHuntRegisterGlobal('link-popup')) { 7057 return; 7058 } 7059 } 7060 7061 const defaultQuizKey = 'quiz_kw4dPS'; 7062 const popupInstanceId = "link-popup-Aa3UrMW9IZE1TVFNUQ__5537102726230261467"; 7063 7064 function getActiveRenderer() { 7065 const quizContainer = document.getElementById('quiz-container'); 7066 return quizContainer && quizContainer.querySelector('quiz-renderer'); 7067 } 7068 7069 function syncQuizPopupWithUrl() { 7070 const target = window.revenueHuntQuizUrl.getTarget( 7071 window.location.hash, 7072 window.location.search, 7073 defaultQuizKey, 7074 ); 7075 const quizContainer = document.getElementById('quiz-container'); 7076 7077 if (!target) { 7078 if ( 7079 quizContainer && 7080 quizContainer.dataset.openedBy === 'url' && 7081 window.revenueHuntQuizPopup 7082 ) { 7083 window.revenueHuntQuizPopup.close({ clearHash: false }); 7084 } 7085 return; 7086 } 7087 7088 const activeRenderer = getActiveRenderer(); 7089 const activeTarget = activeRenderer && activeRenderer.getAttribute('target'); 7090 7091 if ( 7092 quizContainer && 7093 quizContainer.dataset.openedBy === 'url' && 7094 quizContainer.dataset.popupOwner === popupInstanceId && 7095 activeTarget === target 7096 ) { 7097 return; 7098 } 7099 7100 window.revenueHuntQuizPopup.open(popupInstanceId, target, { openedBy: 'url' }); 7101 } 7102 7103 syncQuizPopupWithUrl(); 7104 window.addEventListener('hashchange', syncQuizPopupWithUrl); 7105 window.addEventListener('popstate', syncQuizPopupWithUrl); 7106 7107 if(window.addEventListener) { 7108 window.addEventListener('message', function(event) { 7109 const data = event.data; 7110 const quizContainer = window.revenueHuntQuizPopup && window.revenueHuntQuizPopup.getContainer(popupInstanceId); 7111 const quizContent = quizContainer && quizContainer.querySelector('.quiz-content'); 7112 const activeRenderer = quizContent && quizContent.querySelector('quiz-renderer'); 7113 const activeInstanceId = activeRenderer && activeRenderer.getAttribute('data-quiz-instance-id'); 7114 7115 if ( 7116 !data || 7117 typeof data !== 'object' || 7118 data.channel !== 'revenuehunt:quiz-renderer' || 7119 data.source !== 'quiz-renderer' || 7120 data.type !== 'isResult' || 7121 !quizContent || 7122 !activeInstanceId || 7123 data.instanceId !== activeInstanceId 7124 ) { 7125 return; 7126 } 7127 7128 window.revenueHuntQuizPopup.resize(popupInstanceId); 7129 }); 7130 } 7131 }); 7132</script>
7132 7133<!-- END app snippet --> 7134 7135 7136 7137</div>
7137<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
7137 7138</body> 7139</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.