1<!doctype html> 2<head class="no-js" lang="en"> 3 <!-- Other scripts and styles --> 4
4<script src="https://cdnjs.cloudflare.com/ajax/libs/forge/1.3.1/forge.min.js"></script>
4 5 6 <!-- Firebase SDK scripts --> 7 <!-- The core Firebase JS SDK is always required and must be listed first --> 8
8<script src="https://www.gstatic.com/firebasejs/10.2.0/firebase-app.js" type="module"></script>
8 9
9<script src="https://www.gstatic.com/firebasejs/10.2.0/firebase-auth.js" type="module"></script>
9 10
10<script src="//getquibble.com/cdn/shop/t/4/assets/firebase-init.js?v=123291048652714178591721086172" type="module"></script>
10 11 12 <!-- Other scripts and styles --> 13 <meta charset="utf-8"> 14 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 15 <meta name="viewport" content="width=device-width,initial-scale=1"> 16 <meta name="theme-color" content=""> 17 <link rel="canonical" href="https://getquibble.com/">' 18 <link rel="preconnect" href="https://fonts.googleapis.com"> 19 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 20 <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet"><link rel="icon" type="image/png" href="//getquibble.com/cdn/shop/files/icon.png?crop=center&height=32&v=1693515025&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><title> 21 Quibble: Master Homework and Quizzes with AI 22</title> 23 24 25 <meta name="description" content="Elevate your academic journey with Quibble - the ultimate Google Chrome extension designed to support students in completing homework and quizzes effortlessly. Harness the power of AI technology to enhance your learning experience and achieve academic success. Get your AI homework and quiz assistant today!"> 26 27 28 29 30<meta property="og:site_name" content="Quibble"> 31<meta property="og:url" content="https://getquibble.com/"> 32<meta property="og:title" content="Quibble: Master Homework and Quizzes with AI"> 33<meta property="og:type" content="website"> 34<meta property="og:description" content="Elevate your academic journey with Quibble - the ultimate Google Chrome extension designed to support students in completing homework and quizzes effortlessly. Harness the power of AI technology to enhance your learning experience and achieve academic success. Get your AI homework and quiz assistant today!"><meta property="og:image" content="http://getquibble.com/cdn/shop/files/icon_large_e312f111-f176-4b3e-9e02-972f923a69d3.png?height=628&pad_color=ffffff&v=1692385358&width=1200"> 35 <meta property="og:image:secure_url" content="https://getquibble.com/cdn/shop/files/icon_large_e312f111-f176-4b3e-9e02-972f923a69d3.png?height=628&pad_color=ffffff&v=1692385358&width=1200"> 36 <meta property="og:image:width" content="1200"> 37 <meta property="og:image:height" content="628"><meta name="twitter:card" content="summary_large_image"> 38<meta name="twitter:title" content="Quibble: Master Homework and Quizzes with AI"> 39<meta name="twitter:description" content="Elevate your academic journey with Quibble - the ultimate Google Chrome extension designed to support students in completing homework and quizzes effortlessly. Harness the power of AI technology to enhance your learning experience and achieve academic success. Get your AI homework and quiz assistant today!"> 40 41 42
42<script src="//getquibble.com/cdn/shop/t/4/assets/constants.js?v=58251544750838685771721086172" defer="defer"></script>
42 43
43<script src="//getquibble.com/cdn/shop/t/4/assets/pubsub.js?v=158357773527763999511721086172" defer="defer"></script>
43 44
44<script src="//getquibble.com/cdn/shop/t/4/assets/global.js?v=54939145903281508041721086172" defer="defer"></script>
44<script src="//getquibble.com/cdn/shop/t/4/assets/animations.js?v=88693664871331136111721086172" defer="defer"></script>
44<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
44<meta name="google-site-verification" content="zRlffp4aDoneU-0q7CX8OgaOPy4Y5YmMzM1DNgqN_0U"> 45<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/81449812275/digital_wallets/dialog"> 46<meta id="in-context-paypal-metadata" data-shop-id="81449812275" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 47<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
47<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
47 48<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
49<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=81449812275" crossorigin="anonymous"></script>
vendor: 1 bytes, line 49
49
50<script id="shopify-features" type="application/json">{"accessToken":"a9fff067ee4c01328098efabfba97877","betas":["rich-media-storefront-analytics"],"domain":"getquibble.com","predictiveSearch":true,"shopId":81449812275,"locale":"en"}</script>
vendor: 1 bytes, line 50
50
51<script>var Shopify = Shopify || {}; 52Shopify.shop = "c820c3-2.myshopify.com"; 53Shopify.locale = "en"; 54Shopify.currency = {"active":"USD","rate":"1.0"}; 55Shopify.country = "US"; 56Shopify.theme = {"name":"DawnV2","id":170261545267,"schema_name":"Dawn","schema_version":"11.0.0","theme_store_id":887,"role":"main"}; 57Shopify.theme.handle = "null"; 58Shopify.theme.style = {"id":null,"handle":null}; 59Shopify.cdnHost = "getquibble.com/cdn"; 60Shopify.routes = Shopify.routes || {}; 61Shopify.routes.root = "/"; 62Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 63Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 64Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 65Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 65
65
66<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 66
66
67<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 67
67
68<script> 69 window.ShopifyPay = window.ShopifyPay || {}; 70 window.ShopifyPay.apiHost = "shop.app\/pay"; 71 window.ShopifyPay.redirectState = null; 72</script>
vendor: 1 bytes, line 72
72
73<script> 74 window.Shopify = window.Shopify || {}; 75 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 76 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 77 window.Shopify.SignInWithShop.eligible = true; 78</script>
vendor: 1 bytes, line 78
78
79<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 79
79
80<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 80
80
81<script type="module"> 82 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 83 84 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 85 86</script>
vendor: 1 bytes, line 86
86
87<script> 88 window.Shopify = window.Shopify || {}; 89 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 90 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"]}; 91</script>
vendor: 1 bytes, line 91
91
92<script>(function() { 93 var isLoaded = false; 94 function asyncLoad() { 95 if (isLoaded) return; 96 isLoaded = true; 97 var urls = ["https:\/\/static.klaviyo.com\/onsite\/js\/UbFrps\/klaviyo.js?company_id=UbFrps\u0026shop=c820c3-2.myshopify.com","https:\/\/static.klaviyo.com\/onsite\/js\/UnvD4v\/klaviyo.js?company_id=UnvD4v\u0026shop=c820c3-2.myshopify.com"]; 98 for (var i = 0; i < urls.length; i++) { 99 var s = document.createElement('script'); 100 s.type = 'text/javascript'; 101 s.async = true; 102 s.src = urls[i]; 103 var x = document.getElementsByTagName('script')[0]; 104 x.parentNode.insertBefore(s, x); 105 } 106 }; 107 if(window.attachEvent) { 108 window.attachEvent('onload', asyncLoad); 109 } else { 110 window.addEventListener('load', asyncLoad, false); 111 } 112})();</script>
vendor: 1 bytes, line 112
112
113<script id="__st">var __st={"a":81449812275,"offset":-14400,"reqid":"967f9002-d595-41a1-8421-30443db1615e-1790904608","pageurl":"getquibble.com\/","u":"68bc9b99bfab","p":"home"};</script>
vendor: 1 bytes, line 113
113
114<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 114
114
115<script id="form-persister">!function(){'use strict';const t='contact',e='new_comment',n=[[t,t],['blogs',e],['comments',e],[t,'customer']],o='password',r='form_key',c=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',o],s=()=>{try{return window.sessionStorage}catch{return}},i='__shopify_v',u=t=>t.elements[r],a=function(){const t=[...n].map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');var e;return e=t,()=>e?[...document.querySelectorAll(e)].map((t=>t.form)):[]}();function m(t){const e=u(t);a().includes(t)&&(!e||!e.value)&&function(t){try{if(!s())return;!function(t){const e=s();if(!e)return;const n=u(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){u(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:r})),t.elements[r].value=e}(t,e),function(t,e){const n=s();if(!n)return;const r=[...t.querySelectorAll(`input[type='${o}']`)].map((({name:t})=>t)),u=[...c,...r],a={};for(const[o,c]of new FormData(t).entries())u.includes(o)||(a[o]=c);n.setItem(e,JSON.stringify({[i]:1,action:t.action,data:a}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(t)}const f=t=>{if('true'===t.dataset.persistBound)return;const e=function(t,e){const n=function(t){return'function'==typeof t.submit?t.submit:HTMLFormElement.prototype.submit}(t).bind(t);return function(){let t;return()=>{t||(t=!0,(()=>{try{e(),n()}catch(t){(t=>{console.error('form submit failed',t)})(t)}})(),setTimeout((()=>t=!1),250))}}()}(t,(()=>{m(t)}));!function(t,e){if('function'==typeof t.submit&&'function'==typeof e)try{t.submit=e}catch{}}(t,e),t.addEventListener('submit',(t=>{t.preventDefault(),e()})),t.dataset.persistBound='true'};!function(){function t(t){const e=(t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form})(t);e&&m(e)}document.addEventListener('submit',t),document.addEventListener('DOMContentLoaded',(()=>{const e=a();for(const t of e)f(t);var n;n=document.body,new window.MutationObserver((t=>{for(const e of t)if('childList'===e.type&&e.addedNodes.length)for(const t of e.addedNodes)1===t.nodeType&&'FORM'===t.tagName&&a().includes(t)&&f(t)})).observe(n,{childList:!0,subtree:!0,attributes:!1}),document.removeEventListener('submit',t)}))}()}();</script>
vendor: 1 bytes, line 115
115
116<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//getquibble.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 116
116
117<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 = "//getquibble.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>
117<script crossorigin="anonymous" defer="defer" src="//getquibble.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 117
117
118<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 118
118
119<script> 120 window.Shopify = window.Shopify || {}; 121 window.Shopify.MCP = window.Shopify.MCP || {}; 122 window.Shopify.MCP.enabled = true; 123 window.Shopify.MCP.shop = "c820c3-2.myshopify.com"; 124 window.Shopify.MCP.mcpEndpoint = "https:\/\/getquibble.com\/api\/mcp"; 125 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"]}}]; 126</script>
vendor: 1 bytes, line 126
126
127<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("\/\/getquibble.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 128</script>
vendor: 1 bytes, line 128
128
129<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://getquibble.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 130</script>
vendor: 1 bytes, line 130
130
131<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 132 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); 133</script>
vendor: 1 bytes, line 133
133
134<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})}})); 135</script>
135 136<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://getquibble.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 137<style id="shopify-accelerated-checkout-cart"> 138 #shopify-buyer-consent { 139 margin-top: 1em; 140 display: inline-block; 141 width: 100%; 142} 143 144#shopify-buyer-consent.hidden { 145 display: none; 146} 147 148#shopify-subscription-policy-button { 149 background: none; 150 border: none; 151 padding: 0; 152 text-decoration: underline; 153 font-size: inherit; 154 cursor: pointer; 155} 156 157#shopify-subscription-policy-button::before { 158 box-shadow: none; 159} 160 161 </style>
162<script id="sections-script" data-sections="header" defer="defer" src="//getquibble.com/cdn/shop/t/4/compiled_assets/scripts.js?v=94409624721522135871723504232"></script>
vendor: 1 bytes, line 162
162
163<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
163 164 165 166 <style data-shopify> 167 @font-face { 168 font-family: Asap; 169 font-weight: 400; 170 font-style: normal; 171 font-display: swap; 172 src: url("//getquibble.com/cdn/fonts/asap/asap_n4.994be5d5211fe3b2dda4ebd41cf2b04f4dfe140e.woff2") format("woff2"), 173 url("//getquibble.com/cdn/fonts/asap/asap_n4.e7f26429238df8651924f4a97a5e9467c7cf683b.woff") format("woff"); 174} 175 176 @font-face { 177 font-family: Asap; 178 font-weight: 700; 179 font-style: normal; 180 font-display: swap; 181 src: url("//getquibble.com/cdn/fonts/asap/asap_n7.3209f7e23b2ef01c793f40c7556e6532b06b5f1e.woff2") format("woff2"), 182 url("//getquibble.com/cdn/fonts/asap/asap_n7.b0a0b6deb369ccc0b973a1d12f3530d5e4373c77.woff") format("woff"); 183} 184 185 @font-face { 186 font-family: Asap; 187 font-weight: 400; 188 font-style: italic; 189 font-display: swap; 190 src: url("//getquibble.com/cdn/fonts/asap/asap_i4.3c59c01b158892bd0ef8b61bc7f081c23ae9b42e.woff2") format("woff2"), 191 url("//getquibble.com/cdn/fonts/asap/asap_i4.014f2bc4fda2741d520d341143cf61b2d5e0d21e.woff") format("woff"); 192} 193 194 @font-face { 195 font-family: Asap; 196 font-weight: 700; 197 font-style: italic; 198 font-display: swap; 199 src: url("//getquibble.com/cdn/fonts/asap/asap_i7.54957565625fd1dffc964521d01f3da61e596089.woff2") format("woff2"), 200 url("//getquibble.com/cdn/fonts/asap/asap_i7.98e2b88b25225290e9c09e36eb54e243fd11491f.woff") format("woff"); 201} 202 203 @font-face { 204 font-family: Nunito; 205 font-weight: 800; 206 font-style: normal; 207 font-display: swap; 208 src: url("//getquibble.com/cdn/fonts/nunito/nunito_n8.a4faa34563722dcb4bd960ae538c49eb540a565f.woff2") format("woff2"), 209 url("//getquibble.com/cdn/fonts/nunito/nunito_n8.7b9b4d7a0ef879eb46735a0aecb391013c7f7aeb.woff") format("woff"); 210} 211 212 213 214 :root, 215 .color-background-1 { 216 --color-background: 255,255,255; 217 218 --gradient-background: #ffffff; 219 220 --color-foreground: 0,0,0; 221 --color-shadow: 18,18,18; 222 --color-button: 36,156,98; 223 --color-button-text: 255,255,255; 224 --color-secondary-button: 255,255,255; 225 --color-secondary-button-text: 18,18,18; 226 --color-link: 18,18,18; 227 --color-badge-foreground: 0,0,0; 228 --color-badge-background: 255,255,255; 229 --color-badge-border: 0,0,0; 230 --payment-terms-background-color: rgb(255 255 255); 231 } 232 233 234 .color-background-2 { 235 --color-background: 36,156,98; 236 237 --gradient-background: #249c62; 238 239 --color-foreground: 255,255,255; 240 --color-shadow: 18,18,18; 241 --color-button: 18,18,18; 242 --color-button-text: 243,243,243; 243 --color-secondary-button: 36,156,98; 244 --color-secondary-button-text: 18,18,18; 245 --color-link: 18,18,18; 246 --color-badge-foreground: 255,255,255; 247 --color-badge-background: 36,156,98; 248 --color-badge-border: 255,255,255; 249 --payment-terms-background-color: rgb(36 156 98); 250 } 251 252 253 .color-inverse { 254 --color-background: 36,156,98; 255 256 --gradient-background: linear-gradient(180deg, rgba(36, 156, 98, 1) 27%, rgba(42, 156, 120, 1) 65%, rgba(29, 65, 38, 1) 100%); 257 258 --color-foreground: 255,255,255; 259 --color-shadow: 18,18,18; 260 --color-button: 255,255,255; 261 --color-button-text: 0,0,0; 262 --color-secondary-button: 36,156,98; 263 --color-secondary-button-text: 255,255,255; 264 --color-link: 255,255,255; 265 --color-badge-foreground: 255,255,255; 266 --color-badge-background: 36,156,98; 267 --color-badge-border: 255,255,255; 268 --payment-terms-background-color: rgb(36 156 98); 269 } 270 271 272 .color-accent-1 { 273 --color-background: 36,156,98; 274 275 --gradient-background: #249c62; 276 277 --color-foreground: 0,0,0; 278 --color-shadow: 18,18,18; 279 --color-button: 255,255,255; 280 --color-button-text: 18,18,18; 281 --color-secondary-button: 36,156,98; 282 --color-secondary-button-text: 255,255,255; 283 --color-link: 255,255,255; 284 --color-badge-foreground: 0,0,0; 285 --color-badge-background: 36,156,98; 286 --color-badge-border: 0,0,0; 287 --payment-terms-background-color: rgb(36 156 98); 288 } 289 290 291 .color-accent-2 { 292 --color-background: 255,255,255; 293 294 --gradient-background: #ffffff; 295 296 --color-foreground: 255,255,255; 297 --color-shadow: 18,18,18; 298 --color-button: 36,156,98; 299 --color-button-text: 255,255,255; 300 --color-secondary-button: 255,255,255; 301 --color-secondary-button-text: 255,255,255; 302 --color-link: 255,255,255; 303 --color-badge-foreground: 255,255,255; 304 --color-badge-background: 255,255,255; 305 --color-badge-border: 255,255,255; 306 --payment-terms-background-color: rgb(255 255 255); 307 } 308 309 310 body, .color-background-1, .color-background-2, .color-inverse, .color-accent-1, .color-accent-2 { 311 color: rgba(var(--color-foreground), 0.75); 312 background-color: rgb(var(--color-background)); 313 } 314 315 :root { 316 --font-body-family: Asap, sans-serif; 317 --font-body-style: normal; 318 --font-body-weight: 400; 319 --font-body-weight-bold: 700; 320 321 --font-heading-family: Nunito, sans-serif; 322 --font-heading-style: normal; 323 --font-heading-weight: 800; 324 325 --font-body-scale: 1.3; 326 --font-heading-scale: 1.1538461538461537; 327 328 --media-padding: px; 329 --media-border-opacity: 0.05; 330 --media-border-width: 1px; 331 --media-radius: 20px;
332 --media-shadow-opacity: 0.5; 333 --media-shadow-horizontal-offset: 0px; 334 --media-shadow-vertical-offset: 4px; 335 --media-shadow-blur-radius: 25px; 336 --media-shadow-visible: 1; 337 338 --page-width: 100rem; 339 --page-width-margin: 0rem; 340 341 --product-card-image-padding: 1.2rem; 342 --product-card-corner-radius: 2.0rem; 343 --product-card-text-alignment: center; 344 --product-card-border-width: 0.0rem; 345 --product-card-border-opacity: 0.1; 346 --product-card-shadow-opacity: 0.5; 347 --product-card-shadow-visible: 1; 348 --product-card-shadow-horizontal-offset: 0.0rem; 349 --product-card-shadow-vertical-offset: 0.4rem; 350 --product-card-shadow-blur-radius: 2.5rem; 351 352 --collection-card-image-padding: 0.0rem; 353 --collection-card-corner-radius: 0.0rem; 354 --collection-card-text-alignment: left; 355 --collection-card-border-width: 0.0rem; 356 --collection-card-border-opacity: 0.1; 357 --collection-card-shadow-opacity: 0.0; 358 --collection-card-shadow-visible: 0; 359 --collection-card-shadow-horizontal-offset: 0.0rem; 360 --collection-card-shadow-vertical-offset: 0.4rem; 361 --collection-card-shadow-blur-radius: 0.5rem; 362 363 --blog-card-image-padding: 0.0rem; 364 --blog-card-corner-radius: 0.0rem; 365 --blog-card-text-alignment: left; 366 --blog-card-border-width: 0.0rem; 367 --blog-card-border-opacity: 0.1; 368 --blog-card-shadow-opacity: 0.0; 369 --blog-card-shadow-visible: 0; 370 --blog-card-shadow-horizontal-offset: 0.0rem; 371 --blog-card-shadow-vertical-offset: 0.4rem; 372 --blog-card-shadow-blur-radius: 0.5rem; 373 374 --badge-corner-radius: 4.0rem; 375 376 --popup-border-width: 1px; 377 --popup-border-opacity: 0.1; 378 --popup-corner-radius: 0px; 379 --popup-shadow-opacity: 0.05; 380 --popup-shadow-horizontal-offset: 0px; 381 --popup-shadow-vertical-offset: 4px; 382 --popup-shadow-blur-radius: 5px; 383 384 --drawer-border-width: 1px; 385 --drawer-border-opacity: 0.1; 386 --drawer-shadow-opacity: 0.0; 387 --drawer-shadow-horizontal-offset: 0px; 388 --drawer-shadow-vertical-offset: 4px; 389 --drawer-shadow-blur-radius: 5px; 390 391 --spacing-sections-desktop: 0px; 392 --spacing-sections-mobile: 0px; 393 394 --grid-desktop-vertical-spacing: 40px; 395 --grid-desktop-horizontal-spacing: 4px; 396 --grid-mobile-vertical-spacing: 20px; 397 --grid-mobile-horizontal-spacing: 2px; 398 399 --text-boxes-border-opacity: 0.0; 400 --text-boxes-border-width: 0px; 401 --text-boxes-radius: 38px; 402 --text-boxes-shadow-opacity: 0.0; 403 --text-boxes-shadow-visible: 0; 404 --text-boxes-shadow-horizontal-offset: -40px; 405 --text-boxes-shadow-vertical-offset: -40px; 406 --text-boxes-shadow-blur-radius: 0px; 407 408 --buttons-radius: 40px; 409 --buttons-radius-outset: 42px; 410 --buttons-border-width: 2px; 411 --buttons-border-opacity: 1.0; 412 --buttons-shadow-opacity: 0.5; 413 --buttons-shadow-visible: 1; 414 --buttons-shadow-horizontal-offset: 0px; 415 --buttons-shadow-vertical-offset: 4px; 416 --buttons-shadow-blur-radius: 10px; 417 --buttons-border-offset: 0.3px; 418 419 --inputs-radius: 0px; 420 --inputs-border-width: 1px; 421 --inputs-border-opacity: 0.55; 422 --inputs-shadow-opacity: 0.0; 423 --inputs-shadow-horizontal-offset: 0px; 424 --inputs-margin-offset: 0px; 425 --inputs-shadow-vertical-offset: 4px; 426 --inputs-shadow-blur-radius: 5px; 427 --inputs-radius-outset: 0px; 428 429 --variant-pills-radius: 40px; 430 --variant-pills-border-width: 1px; 431 --variant-pills-border-opacity: 0.55; 432 --variant-pills-shadow-opacity: 0.5; 433 --variant-pills-shadow-horizontal-offset: 0px; 434 --variant-pills-shadow-vertical-offset: 4px; 435 --variant-pills-shadow-blur-radius: 5px; 436 } 437 438 *, 439 *::before, 440 *::after { 441 box-sizing: inherit; 442 } 443 444 html { 445 box-sizing: border-box; 446 font-size: calc(var(--font-body-scale) * 62.5%); 447 height: 100%; 448 } 449 450 body { 451 display: grid; 452 grid-template-rows: auto auto 1fr auto; 453 grid-template-columns: 100%; 454 min-height: 100%; 455 margin: 0; 456 font-size: 1.5rem; 457 letter-spacing: 0.06rem; 458 line-height: calc(1 + 0.8 / var(--font-body-scale)); 459 font-family: var(--font-body-family); 460 font-style: var(--font-body-style); 461 font-weight: var(--font-body-weight); 462 } 463 .header { 464 font-family: "Roboto", sans-serif; 465 font-weight: 400; 466 font-style: normal; 467 } 468 469 @font-face { 470font-family: 'SegoeUI'; 471src: url(https://cdn.shopify.com/s/files/1/0814/4981/2275/files/SegoeUIThis.woff?v=1721089167) format('woff2'); 472} 473 474 @media screen and (min-width: 750px) { 475 body { 476 font-size: 1.6rem; 477 } 478 } 479 </style> 480 481 <link href="//getquibble.com/cdn/shop/t/4/assets/base.css?v=133893235274628601201721090771" rel="stylesheet" type="text/css" media="all" /> 482<link rel="preload" as="font" href="//getquibble.com/cdn/fonts/asap/asap_n4.994be5d5211fe3b2dda4ebd41cf2b04f4dfe140e.woff2" type="font/woff2" crossorigin><link rel="preload" as="font" href="//getquibble.com/cdn/fonts/nunito/nunito_n8.a4faa34563722dcb4bd960ae538c49eb540a565f.woff2" type="font/woff2" crossorigin><link 483 rel="stylesheet" 484 href="//getquibble.com/cdn/shop/t/4/assets/component-predictive-search.css?v=118923337488134913561721086172" 485 media="print" 486 onload="this.media='all'" 487 >
487<script> 488 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 489 if (Shopify.designMode) { 490 document.documentElement.classList.add('shopify-design-mode'); 491 } 492 </script>
492 493<!-- BEGIN app block: shopify://apps/seowill-ai-seo/blocks/seoant-core/8e57283b-dcb0-4f7b-a947-fb5c57a0d59d --><!--SEOAnt Core By SEOAnt Teams, v0.1.6 START --> 494<!-- BEGIN app snippet: Index-JSON-LD-V2 --><!-- END app snippet --> 495<!-- JsSON-LD generated By SEOAnt END --> 496<!-- Start : SEOAnt BrokenLink Redirect -->
496<script src="https://cdn.shopify.com/extensions/01a0d261-ec07-7224-8562-58005aa6a0f8/seowill-ai-seo-121/assets/seoant-receive-id.js" data-shop="c820c3-2.myshopify.com" defer></script>
496<!-- END : SEOAnt BrokenLink Redirect --> 497<!-- Added By SEOAnt AMP. v0.0.1, START --><!-- Added By SEOAnt AMP END --> 498<!-- Instant Page START -->
498<script src="https://cdn.shopify.com/extensions/01a0d261-ec07-7224-8562-58005aa6a0f8/seowill-ai-seo-121/assets/pagespeed-preloading.js" defer="defer"></script>
498<!-- Instant Page END --> 499<!-- Google search console START v1.0 --><!-- Google search console END v1.0 --> 500<!-- Lazy Loading START --><!-- Lazy Loading END --> 501<!-- Video Lazy START --><!-- Video Lazy END --> 502<!-- SEOAnt Core End --> 503<!-- END app block --><link href="https://cdn.shopify.com/extensions/019ff9f4-4c16-7aa1-846e-ceb42a4bb7ed/bitloyalty-loyalty-login-149/assets/app.css" rel="stylesheet" type="text/css" media="all"> 504<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
505<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: 81449812275,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};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 505
505
506<script> 507 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 508</script>
vendor: 1 bytes, line 508
508
509<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}
509).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: 81449812275,storefrontBaseUrl: "https://getquibble.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://getquibble.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"931168563","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"AW-16764775318\\\",\\\"GT-P84QCJ3Q\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"AW-16764775318\\\/k0ALCJGm0-YZEJbXiLo-\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"AW-16764775318\\\/xfDXCJem0-YZEJbXiLo-\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"AW-16764775318\\\/4DlGCI6m0-YZEJbXiLo-\\\",\\\"MC-8MZYMS2CVE\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"AW-16764775318\\\/n8ioCIim0-YZEJbXiLo-\\\",\\\"MC-8MZYMS2CVE\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"AW-16764775318\\\/h4rhCIum0-YZEJbXiLo-\\\",\\\"MC-8MZYMS2CVE\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"AW-16764775318\\\/1GjICJqm0-YZEJbXiLo-\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"AW-16764775318\\\/GVtBCJSm0-YZEJbXiLo-\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"693207347","configuration":"{\"pixelCode\":\"COM3KTRC77U77RN3BEUG\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"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":"Quibble","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"c820c3-2.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/getquibble.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://getquibble.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"170261545267","themeStoreId":"887","themePublished":"true","eventMetadataId":"15902eb0-f78c-4e84-b8ad-b6dbd6baa2bc","pageType":"home","shopId":"81449812275","storefrontBaseUrl":"https:\/\/getquibble.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
509<script> 510 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 511 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 512 window.ShopifyAnalytics.meta.currency = 'USD'; 513 var meta = {"page":{"pageType":"home","requestId":"967f9002-d595-41a1-8421-30443db1615e-1790904608"}}; 514 for (var attr in meta) { 515 window.ShopifyAnalytics.meta[attr] = meta[attr]; 516 } 517</script>
vendor: 1 bytes, line 517
517
518<script class="analytics"> 519 (function () { 520 var customDocumentWrite = function(content) { 521 var jquery = null; 522 523 if (window.jQuery) { 524 jquery = window.jQuery; 525 } else if (window.Checkout && window.Checkout.$) { 526 jquery = window.Checkout.$; 527 } 528 529 if (jquery) { 530 jquery('body').append(content); 531 } 532 }; 533 534 var hasLoggedConversion = function(token) { 535 if (token) { 536 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 537 } 538 return false; 539 } 540 541 var setCookieIfConversion = function(token) { 542 if (token) { 543 var twoMonthsFromNow = new Date(Date.now()); 544 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 545 546 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 547 } 548 } 549 550 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 551 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 552 if (trekkie.integrations) { 553 return; 554 } 555 trekkie.methods = [ 556 'identify', 557 'page', 558 'ready', 559 'track', 560 'trackForm', 561 'trackLink' 562 ]; 563 trekkie.factory = function(method) { 564 return function() { 565 var args = Array.prototype.slice.call(arguments); 566 args.unshift(method); 567 trekkie.push(args); 568 if (method == 'track' || method == 'page') { 569 var pageUrl; 570 try { 571 pageUrl = window.location.href; 572 } catch (e) {} 573 var pageReferrer; 574 try { 575 pageReferrer = document.referrer; 576 } catch (e) {} 577 try { 578 if (window.__TREKKIE_SHIM_QUEUE == null) { 579 window.__TREKKIE_SHIM_QUEUE = []; 580 } 581 window.__TREKKIE_SHIM_QUEUE.push({ 582 from: 'trekkie-stub', 583 method: method, 584 args: args.slice(1), 585 pageContext: { 586 url: pageUrl, 587 referrer: pageReferrer 588 } 589 }); 590 } catch (e) { 591 // no-op 592 } 593 } 594 return trekkie; 595 }; 596 }; 597 for (var i = 0; i < trekkie.methods.length; i++) { 598 var key = trekkie.methods[i]; 599 trekkie[key] = trekkie.factory(key); 600 } 601 trekkie.load = function(config) { 602 trekkie.config = config || {}; 603 trekkie.config.initialDocumentCookie = document.cookie; 604 var first = document.getElementsByTagName('script')[0]; 605var script = document.createElement('script'); 606script.type = 'text/javascript'; 607script.onerror = function(e) { 608 var scriptFallback = document.createElement('script'); 609 scriptFallback.type = 'text/javascript'; 610 scriptFallback.onerror = function(error) { 611 var Monorail = { 612 produce: function produce(monorailDomain, schemaId, payload) { 613 var currentMs = new Date().getTime(); 614 var event = { 615 schema_id: schemaId, 616 payload: payload, 617 metadata: { 618 event_created_at_ms: currentMs, 619 event_sent_at_ms: currentMs 620 } 621 }; 622 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 623 }, 624 sendRequest: function sendRequest(endpointUrl, payload) { 625 // Try the sendBeacon API 626 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 627 var blobData = new window.Blob([payload], { 628 type: 'text/plain' 629 }); 630 631 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 632 return true; 633 } // sendBeacon was not successful 634 635 } // XHR beacon 636 637 var xhr = new XMLHttpRequest(); 638 639 try { 640 xhr.open('POST', endpointUrl); 641 xhr.setRequestHeader('Content-Type', 'text/plain'); 642 xhr.send(payload); 643 } catch (e) { 644 console.log(e); 645 } 646 647 return false; 648 }, 649 isIos12: function isIos12() { 650 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 651 } 652 }; 653 Monorail.produce('monorail-edge.shopifysvc.com', 654 'trekkie_storefront_load_errors/1.1', 655 {shop_id: 81449812275, 656 theme_id: 170261545267, 657 app_name: "storefront", 658 context_url: window.location.href, 659 source_url: "//getquibble.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 660 661 }; 662 scriptFallback.async = true; 663 scriptFallback.src = '//getquibble.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 664 first.parentNode.insertBefore(scriptFallback, first); 665}; 666script.async = true; 667script.src = '//getquibble.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 668first.parentNode.insertBefore(script, first); 669 670 }; 671 trekkie.load( 672 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":81449812275,"isMerchantRequest":null,"themeId":170261545267,"themeCityHash":"15324313491085434524","contentLanguage":"en","currency":"USD","eventMetadataId":"15902eb0-f78c-4e84-b8ad-b6dbd6baa2bc"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 673 ); 674 675 var loaded = false;
676 trekkie.ready(function() { 677 if (loaded) return; 678 loaded = true; 679 680 window.ShopifyAnalytics.lib = window.trekkie; 681 682 var originalDocumentWrite = document.write; 683 document.write = customDocumentWrite; 684 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 685 document.write = originalDocumentWrite; 686 687 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 688 var token = match? match[1]: undefined; 689 if (!hasLoggedConversion(token)) { 690 setCookieIfConversion(token); 691 692 } 693 }); 694 695 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"967f9002-d595-41a1-8421-30443db1615e-1790904608","shopifyEmitted":true}); 696 697 var eventsListenerScript = document.createElement('script'); 698 eventsListenerScript.async = true; 699 eventsListenerScript.src = "//getquibble.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 700 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 701})();</script>
vendor: 1 bytes, line 701
701
702<script 703 defer 704 src="https://getquibble.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 705 data-application="storefront-renderer" 706 data-shop-id="81449812275" 707 data-render-region="gcp-us-central1" 708 data-page-type="index" 709 data-theme-instance-id="170261545267" 710 data-theme-name="Dawn" 711 data-theme-version="11.0.0" 712 data-monorail-region="shop_domain" 713 data-resource-timing-sampling-rate="10" 714 data-shs="true" 715 data-shs-beacon="true" 716 data-shs-export-with-fetch="true" 717 data-shs-logs-sample-rate="1" 718 data-shs-beacon-endpoint="https://getquibble.com/api/collect" 719></script>
719 720<meta name="shopify-y" content="85a6ccb5-63df-44df-b52d-d373142409ef" data-expiration="1822462208000"><meta name="shopify-s" content="0118c38e-5a72-48e2-ae20-6cdd986150cf" data-expiration="1790906408000"><meta name="new-cookie-storage-activated" content="t"> 721</head> 722 723<body class="gradient animate--hover-3d-lift"> 724 <a class="skip-to-content-link button visually-hidden" href="#MainContent"> 725 Skip to content 726 </a><!-- BEGIN sections: header-group --> 727<div id="shopify-section-sections--23060958773555__header" class="shopify-section shopify-section-group-header-group section-header"><link rel="stylesheet" href="//getquibble.com/cdn/shop/t/4/assets/component-list-menu.css?v=151968516119678728991721086172" media="print" onload="this.media='all'"> 728<link rel="stylesheet" href="//getquibble.com/cdn/shop/t/4/assets/component-search.css?v=130382253973794904871721086172" media="print" onload="this.media='all'"> 729<link rel="stylesheet" href="//getquibble.com/cdn/shop/t/4/assets/component-menu-drawer.css?v=31331429079022630271721086172" media="print" onload="this.media='all'"> 730<link rel="stylesheet" href="//getquibble.com/cdn/shop/t/4/assets/component-cart-notification.css?v=54116361853792938221721086172" media="print" onload="this.media='all'"> 731<link rel="stylesheet" href="//getquibble.com/cdn/shop/t/4/assets/component-cart-items.css?v=63185545252468242311721086172" media="print" onload="this.media='all'"><link rel="stylesheet" href="//getquibble.com/cdn/shop/t/4/assets/component-price.css?v=70172745017360139101721086172" media="print" onload="this.media='all'"> 732 <link rel="stylesheet" href="//getquibble.com/cdn/shop/t/4/assets/component-loading-overlay.css?v=58800470094666109841721086172" media="print" onload="this.media='all'"><noscript><link href="//getquibble.com/cdn/shop/t/4/assets/component-list-menu.css?v=151968516119678728991721086172" rel="stylesheet" type="text/css" media="all" /></noscript> 733<noscript><link href="//getquibble.com/cdn/shop/t/4/assets/component-search.css?v=130382253973794904871721086172" rel="stylesheet" type="text/css" media="all" /></noscript> 734<noscript><link href="//getquibble.com/cdn/shop/t/4/assets/component-menu-drawer.css?v=31331429079022630271721086172" rel="stylesheet" type="text/css" media="all" /></noscript> 735<noscript><link href="//getquibble.com/cdn/shop/t/4/assets/component-cart-notification.css?v=54116361853792938221721086172" rel="stylesheet" type="text/css" media="all" /></noscript> 736<noscript><link href="//getquibble.com/cdn/shop/t/4/assets/component-cart-items.css?v=63185545252468242311721086172" rel="stylesheet" type="text/css" media="all" /></noscript> 737 738<style> 739 header-drawer { 740 justify-self: start; 741 margin-left: -1.2rem; 742 }@media screen and (min-width: 990px) { 743 header-drawer { 744 display: none; 745 } 746 }.menu-drawer-container { 747 display: flex; 748 } 749 750 .list-menu { 751 list-style: none; 752 padding: 0; 753 margin: 0; 754 } 755 756 .list-menu--inline { 757 display: inline-flex; 758 flex-wrap: wrap; 759 } 760 761 summary.list-menu__item { 762 padding-right: 2.7rem; 763 } 764 765 .list-menu__item { 766 display: flex; 767 align-items: center; 768 line-height: calc(1 + 0.3 / var(--font-body-scale)); 769 } 770 771 .list-menu__item--link { 772 text-decoration: none; 773 padding-bottom: 1rem; 774 padding-top: 1rem; 775 line-height: calc(1 + 0.8 / var(--font-body-scale)); 776 } 777 778 @media screen and (min-width: 750px) { 779 .list-menu__item--link { 780 padding-bottom: 0.5rem; 781 padding-top: 0.5rem; 782 } 783 } 784</style><style data-shopify>.header { 785 padding: 10px 3rem 10px 3rem; 786 } 787 788 .section-header { 789 position: sticky; /* This is for fixing a Safari z-index issue. PR #2147 */ 790 margin-bottom: 0px; 791 } 792 793 @media screen and (min-width: 750px) { 794 .section-header { 795 margin-bottom: 0px; 796 } 797 } 798 799 @media screen and (min-width: 990px) { 800 .header { 801 padding-top: 20px; 802 padding-bottom: 20px; 803 } 804 }</style>
804<script src="//getquibble.com/cdn/shop/t/4/assets/details-disclosure.js?v=13653116266235556501721086172" defer="defer"></script>
vendor: 1 bytes, line 804
804
805<script src="//getquibble.com/cdn/shop/t/4/assets/details-modal.js?v=25581673532751508451721086172" defer="defer"></script>
vendor: 1 bytes, line 805
805
806<script src="//getquibble.com/cdn/shop/t/4/assets/cart-notification.js?v=133508293167896966491721086172" defer="defer"></script>
vendor: 1 bytes, line 806
806
807<script src="//getquibble.com/cdn/shop/t/4/assets/search-form.js?v=133129549252120666541721086172" defer="defer"></script>
807<svg xmlns="http://www.w3.org/2000/svg" class="hidden"> 808 <symbol id="icon-search" viewbox="0 0 18 19" fill="none"> 809 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/> 810 </symbol> 811 812 <symbol id="icon-reset" class="icon icon-close" fill="none" viewBox="0 0 18 18" stroke="currentColor"> 813 <circle r="8.5" cy="9" cx="9" stroke-opacity="0.2"/> 814 <path d="M6.82972 6.82915L1.17193 1.17097" stroke-linecap="round" stroke-linejoin="round" transform="translate(5 5)"/> 815 <path d="M1.22896 6.88502L6.77288 1.11523" stroke-linecap="round" stroke-linejoin="round" transform="translate(5 5)"/> 816 </symbol> 817 818 <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17"> 819 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 820 </symbol> 821</svg><sticky-header data-sticky-type="on-scroll-up" class="header-wrapper color-background-1 gradient header-wrapper--border-bottom"><header class="header header--middle-left header--mobile-center page-width header--has-menu header--has-social header--has-account"> 822 823<header-drawer data-breakpoint="tablet"> 824 <details id="Details-menu-drawer-container" class="menu-drawer-container"> 825 <summary 826 class="header__icon header__icon--menu header__icon--summary link focus-inset" 827 aria-label="Menu" 828 > 829 <span> 830 <svg 831 xmlns="http://www.w3.org/2000/svg" 832 aria-hidden="true" 833 focusable="false" 834 class="icon icon-hamburger" 835 fill="none" 836 viewBox="0 0 18 16" 837> 838 <path d="M1 .5a.5.5 0 100 1h15.71a.5.5 0 000-1H1zM.5 8a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1A.5.5 0 01.5 8zm0 7a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1a.5.5 0 01-.5-.5z" fill="currentColor"> 839</svg> 840 841 <svg 842 xmlns="http://www.w3.org/2000/svg" 843 aria-hidden="true" 844 focusable="false" 845 class="icon icon-close" 846 fill="none" 847 viewBox="0 0 18 17" 848> 849 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 850</svg> 851 852 </span> 853 </summary> 854 <div id="menu-drawer" class="gradient menu-drawer motion-reduce color-background-1"> 855 <div class="menu-drawer__inner-container"> 856 <div class="menu-drawer__navigation-container"> 857 <nav class="menu-drawer__navigation"> 858 <ul class="menu-drawer__menu has-submenu list-menu" role="list"><li><a 859 id="HeaderDrawer-affiliate-program" 860 href="https://getquibble.com/community/affiliate/signup" 861 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 862 863 > 864 Affiliate Program 865 </a></li><li><a 866 id="HeaderDrawer-pricing" 867 href="https://getquibble.com/#quibble-products" 868 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 869 870 > 871 Pricing 872 </a></li><li><a 873 id="HeaderDrawer-contact" 874 href="/pages/contact-quibble" 875 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 876 877 > 878 Contact 879 </a></li><li><a 880 id="HeaderDrawer-log-in" 881 href="https://getquibble.com/account/login" 882 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 883 884 > 885 Log In 886 </a></li><li><a 887 id="HeaderDrawer-accessibility" 888 href="/pages/accessibility" 889 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 890 891 > 892 Accessibility 893 </a></li></ul> 894 </nav> 895 <div class="menu-drawer__utility-links"><a 896 href="/account/login" 897 class="menu-drawer__account link focus-inset h5 medium-hide large-up-hide" 898 > 899 <svg 900 xmlns="http://www.w3.org/2000/svg" 901 aria-hidden="true" 902 focusable="false" 903 class="icon icon-account" 904 fill="none" 905 viewBox="0 0 18 19" 906> 907 <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.
9071-3.67-1.35-6.17-1.35z" fill="currentColor"> 908</svg> 909 910Log in</a><div class="menu-drawer__localization header-localization"> 911</div><ul class="list list-social list-unstyled" role="list"><li class="list-social__item"> 912 <a href="https://www.instagram.com/getquibble/" class="list-social__link link"><svg aria-hidden="true" focusable="false" class="icon icon-instagram" viewBox="0 0 20 20"> 913 <path fill="currentColor" fill-rule="evenodd" d="M13.23 3.492c-.84-.037-1.096-.046-3.23-.046-2.144 0-2.39.01-3.238.055-.776.027-1.195.164-1.487.273a2.43 2.43 0 0 0-.912.593 2.486 2.486 0 0 0-.602.922c-.11.282-.238.702-.274 1.486-.046.84-.046 1.095-.046 3.23 0 2.134.01 2.39.046 3.229.004.51.097 1.016.274 1.495.145.365.319.639.602.913.282.282.538.456.92.602.474.176.974.268 1.479.273.848.046 1.103.046 3.238.046 2.134 0 2.39-.01 3.23-.046.784-.036 1.203-.164 1.486-.273.374-.146.648-.329.921-.602.283-.283.447-.548.602-.922.177-.476.27-.979.274-1.486.037-.84.046-1.095.046-3.23 0-2.134-.01-2.39-.055-3.229-.027-.784-.164-1.204-.274-1.495a2.43 2.43 0 0 0-.593-.913 2.604 2.604 0 0 0-.92-.602c-.284-.11-.703-.237-1.488-.273ZM6.697 2.05c.857-.036 1.131-.045 3.302-.045 1.1-.014 2.202.001 3.302.045.664.014 1.321.14 1.943.374a3.968 3.968 0 0 1 1.414.922c.41.397.728.88.93 1.414.23.622.354 1.279.365 1.942C18 7.56 18 7.824 18 10.005c0 2.17-.01 2.444-.046 3.292-.036.858-.173 1.442-.374 1.943-.2.53-.474.976-.92 1.423a3.896 3.896 0 0 1-1.415.922c-.51.191-1.095.337-1.943.374-.857.036-1.122.045-3.302.045-2.171 0-2.445-.009-3.302-.055-.849-.027-1.432-.164-1.943-.364a4.152 4.152 0 0 1-1.414-.922 4.128 4.128 0 0 1-.93-1.423c-.183-.51-.329-1.085-.365-1.943C2.009 12.45 2 12.167 2 10.004c0-2.161 0-2.435.055-3.302.027-.848.164-1.432.365-1.942a4.44 4.44 0 0 1 .92-1.414 4.18 4.18 0 0 1 1.415-.93c.51-.183 1.094-.33 1.943-.366Zm.427 4.806a4.105 4.105 0 1 1 5.805 5.805 4.105 4.105 0 0 1-5.805-5.805Zm1.882 5.371a2.668 2.668 0 1 0 2.042-4.93 2.668 2.668 0 0 0-2.042 4.93Zm5.922-5.942a.958.958 0 1 1-1.355-1.355.958.958 0 0 1 1.355 1.355Z" clip-rule="evenodd"/> 914</svg> 915<span class="visually-hidden">Instagram</span> 916 </a> 917 </li><li class="list-social__item"> 918 <a href="https://www.tiktok.com/@getquibble.com" class="list-social__link link"><svg aria-hidden="true" focusable="false" class="icon icon-tiktok" viewBox="0 0 20 20"> 919 <path fill="currentColor" d="M10.511 1.705h2.74s-.157 3.51 3.795 3.768v2.711s-2.114.129-3.796-1.158l.028 5.606A5.073 5.073 0 1 1 8.213 7.56h.708v2.785a2.298 2.298 0 1 0 1.618 2.205L10.51 1.705Z"/> 920</svg> 921<span class="visually-hidden">TikTok</span> 922 </a> 923 </li></ul> 924 </div> 925 </div> 926 </div> 927 </div> 928 </details> 929</header-drawer> 930<h1 class="header__heading"><a href="/" class="header__heading-link link link--text focus-inset"><div class="header__heading-logo-wrapper"> 931 932 <img src="//getquibble.com/cdn/shop/files/icon_large_e312f111-f176-4b3e-9e02-972f923a69d3.png?v=1692385358&width=600" alt="Quibble" srcset="//getquibble.com/cdn/shop/files/icon_large_e312f111-f176-4b3e-9e02-972f923a69d3.png?v=1692385358&width=90 90w, //getquibble.com/cdn/shop/files/icon_large_e312f111-f176-4b3e-9e02-972f923a69d3.png?v=1692385358&width=135 135w, //getquibble.com/cdn/shop/files/icon_large_e312f111-f176-4b3e-9e02-972f923a69d3.png?v=1692385358&width=180 180w" width="90" height="90.0" loading="eager" class="header__heading-logo motion-reduce" sizes="(max-width: 180px) 50vw, 90px"> 933 </div></a></h1> 934 935<nav class="header__inline-menu"> 936 <ul class="list-menu list-menu--inline" role="list"><li><a 937 id="HeaderMenu-affiliate-program" 938 href="https://getquibble.com/community/affiliate/signup" 939 class="header__menu-item list-menu__item link link--text focus-inset" 940 941 > 942 <span 943 >Affiliate Program</span> 944 </a></li><li><a 945 id="HeaderMenu-pricing" 946 href="https://getquibble.com/#quibble-products" 947 class="header__menu-item list-menu__item link link--text focus-inset" 948 949 >
950 <span 951 >Pricing</span> 952 </a></li><li><a 953 id="HeaderMenu-contact" 954 href="/pages/contact-quibble" 955 class="header__menu-item list-menu__item link link--text focus-inset" 956 957 > 958 <span 959 >Contact</span> 960 </a></li><li><a 961 id="HeaderMenu-log-in" 962 href="https://getquibble.com/account/login" 963 class="header__menu-item list-menu__item link link--text focus-inset" 964 965 > 966 <span 967 >Log In</span> 968 </a></li><li><a 969 id="HeaderMenu-accessibility" 970 href="/pages/accessibility" 971 class="header__menu-item list-menu__item link link--text focus-inset" 972 973 > 974 <span 975 >Accessibility</span> 976 </a></li></ul> 977</nav> 978 979<div class="header__icons header__icons--localization header-localization"> 980 <div class="desktop-localization-wrapper"> 981</div> 982 983 984<details-modal class="header__search"> 985 <details> 986 <summary class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" aria-haspopup="dialog" aria-label="Search"> 987 <span> 988 <svg class="modal__toggle-open icon icon-search" aria-hidden="true" focusable="false"> 989 <use href="#icon-search"> 990 </svg> 991 <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false"> 992 <use href="#icon-close"> 993 </svg> 994 </span> 995 </summary> 996 <div class="search-modal modal__content gradient" role="dialog" aria-modal="true" aria-label="Search"> 997 <div class="modal-overlay"></div> 998 <div class="search-modal__content search-modal__content-bottom" tabindex="-1"><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form"> 999 <div class="field"> 1000 <input class="search__input field__input" 1001 id="Search-In-Modal" 1002 type="search" 1003 name="q" 1004 value="" 1005 placeholder="Search"role="combobox" 1006 aria-expanded="false" 1007 aria-owns="predictive-search-results" 1008 aria-controls="predictive-search-results" 1009 aria-haspopup="listbox" 1010 aria-autocomplete="list" 1011 autocorrect="off" 1012 autocomplete="off" 1013 autocapitalize="off" 1014 spellcheck="false"> 1015 <label class="field__label" for="Search-In-Modal">Search</label> 1016 <input type="hidden" name="options[prefix]" value="last"> 1017 <button type="reset" class="reset__button field__button hidden" aria-label="Clear search term"> 1018 <svg class="icon icon-close" aria-hidden="true" focusable="false"> 1019 <use xlink:href="#icon-reset"> 1020 </svg> 1021 </button> 1022 <button class="search__button field__button" aria-label="Search"> 1023 <svg class="icon icon-search" aria-hidden="true" focusable="false"> 1024 <use href="#icon-search"> 1025 </svg> 1026 </button> 1027 </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search> 1028 <div class="predictive-search__loading-state"> 1029 <svg aria-hidden="true" focusable="false" class="spinner" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"> 1030 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 1031 </svg> 1032 </div> 1033 </div> 1034 1035 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="Close"> 1036 <svg class="icon icon-close" aria-hidden="true" focusable="false"> 1037 <use href="#icon-close"> 1038 </svg> 1039 </button> 1040 </div> 1041 </div> 1042 </details> 1043</details-modal> 1044 1045<a href="/account/login" class="header__icon header__icon--account link focus-inset small-hide"> 1046 <svg 1047 xmlns="http://www.w3.org/2000/svg" 1048 aria-hidden="true" 1049 focusable="false" 1050 class="icon icon-account" 1051 fill="none" 1052 viewBox="0 0 18 19" 1053> 1054 <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.
10541-3.67-1.35-6.17-1.35z" fill="currentColor"> 1055</svg> 1056 1057 <span class="visually-hidden">Log in</span> 1058 </a><a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble"><svg 1059 class="icon icon-cart-empty" 1060 aria-hidden="true" 1061 focusable="false" 1062 xmlns="http://www.w3.org/2000/svg" 1063 viewBox="0 0 40 40" 1064 fill="none" 1065> 1066 <path d="m15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33l-.78-11.61zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1 -9.5 0zm8.5 0h-7.5v.63a3.75 3.75 0 1 0 7.5 0z" fill="currentColor" fill-rule="evenodd"/> 1067</svg> 1068<span class="visually-hidden">Cart</span></a> 1069 </div> 1070 </header> 1071</sticky-header> 1072 1073<cart-notification> 1074 <div class="cart-notification-wrapper page-width"> 1075 <div 1076 id="cart-notification" 1077 class="cart-notification focus-inset color-background-1 gradient" 1078 aria-modal="true" 1079 aria-label="Item added to your cart" 1080 role="dialog" 1081 tabindex="-1" 1082 > 1083 <div class="cart-notification__header"> 1084 <h2 class="cart-notification__heading caption-large text-body"><svg 1085 class="icon icon-checkmark" 1086 aria-hidden="true" 1087 focusable="false" 1088 xmlns="http://www.w3.org/2000/svg" 1089 viewBox="0 0 12 9" 1090 fill="none" 1091> 1092 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.35.643a.5.5 0 01.006.707l-6.77 6.886a.5.5 0 01-.719-.006L.638 4.845a.5.5 0 11.724-.69l2.872 3.011 6.41-6.517a.5.5 0 01.707-.006h-.001z" fill="currentColor"/> 1093</svg> 1094Item added to your cart 1095 </h2> 1096 <button 1097 type="button" 1098 class="cart-notification__close modal__close-button link link--text focus-inset" 1099 aria-label="Close" 1100 > 1101 <svg class="icon icon-close" aria-hidden="true" focusable="false"> 1102 <use href="#icon-close"> 1103 </svg> 1104 </button> 1105 </div> 1106 <div id="cart-notification-product" class="cart-notification-product"></div> 1107 <div class="cart-notification__links"> 1108 <a 1109 href="/cart" 1110 id="cart-notification-button" 1111 class="button button--secondary button--full-width" 1112 >View cart</a> 1113 <form action="/cart" method="post" id="cart-notification-form"> 1114 <button class="button button--primary button--full-width" name="checkout"> 1115 Check out 1116 </button> 1117 </form> 1118 <button type="button" class="link button-label">Continue shopping</button> 1119 </div> 1120 </div> 1121 </div> 1122</cart-notification> 1123<style data-shopify> 1124 .cart-notification { 1125 display: none; 1126 } 1127</style> 1128 1129
1130<script type="application/ld+json"> 1131 { 1132 "@context": "http://schema.org", 1133 "@type": "Organization", 1134 "name": "Quibble", 1135 1136 "logo": "https:\/\/getquibble.com\/cdn\/shop\/files\/icon_large_e312f111-f176-4b3e-9e02-972f923a69d3.png?v=1692385358\u0026width=500", 1137 1138 "sameAs": [ 1139 "", 1140 "", 1141 "", 1142 "https:\/\/www.instagram.com\/getquibble\/", 1143 "https:\/\/www.tiktok.com\/@getquibble.com", 1144 "", 1145 "", 1146 "", 1147 "" 1148 ], 1149 "url": "https:\/\/getquibble.com" 1150 } 1151</script>
1151 1152
1152<script type="application/ld+json"> 1153 { 1154 "@context": "http://schema.org", 1155 "@type": "WebSite", 1156 "name": "Quibble", 1157 "potentialAction": { 1158 "@type": "SearchAction", 1159 "target": "https:\/\/getquibble.com\/search?q={search_term_string}", 1160 "query-input": "required name=search_term_string" 1161 }, 1162 "url": "https:\/\/getquibble.com" 1163 } 1164 </script>
1164 1165</div> 1166<!-- END sections: header-group --> 1167 1168 <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"> 1169 <section id="shopify-section-template--23060962607411__rich_text_RkrTyk" class="shopify-section section"><link href="//getquibble.com/cdn/shop/t/4/assets/section-rich-text.css?v=155250126305810049721721086172" rel="stylesheet" type="text/css" media="all" /> 1170<style data-shopify>.section-template--23060962607411__rich_text_RkrTyk-padding { 1171 padding-top: 75px; 1172 padding-bottom: 75px; 1173 } 1174 1175 @media screen and (min-width: 750px) { 1176 .section-template--23060962607411__rich_text_RkrTyk-padding { 1177 padding-top: 100px; 1178 padding-bottom: 100px; 1179 } 1180 }</style><div class="isolate"> 1181 <div class="rich-text content-container color-background-1 gradient rich-text--full-width content-container--full-width section-template--23060962607411__rich_text_RkrTyk-padding"> 1182 <div class="rich-text__wrapper rich-text__wrapper--center page-width"> 1183 <div class="rich-text__blocks center"><h2 1184 class="rich-text__heading rte inline-richtext hxl scroll-trigger animate--slide-in" 1185 1186 1187 data-cascade 1188 style="--animation-order: 1;" 1189 1190 > 1191 Save time. Score higher. 1192 </h2><div
1193 class="rich-text__text rte scroll-trigger animate--slide-in" 1194 1195 1196 data-cascade 1197 style="--animation-order: 2;" 1198 1199 > 1200 <p><strong>Auto-complete your homework assignments with the power of Quibble.</strong></p> 1201 </div><div 1202 class="rich-text__buttons scroll-trigger animate--slide-in" 1203 1204 1205 data-cascade 1206 style="--animation-order: 3;" 1207 1208 ><a 1209 1210 href="#quibble-products" 1211 1212 class="button button--primary" 1213 >Get Quibble</a></div><p 1214 class="rich-text__caption subtitle subtitle--large scroll-trigger animate--slide-in" 1215 1216 1217 data-cascade 1218 style="--animation-order: 4;" 1219 1220 > 1221 âï¸ Join 1000+ other students 1222 </p></div> 1223 </div> 1224 </div> 1225</div> 1226 1227 1228<style> @media screen and (max-width: 749px) {#shopify-section-template--23060962607411__rich_text_RkrTyk .hxl {font-size: 3rem; }} </style></section><section id="shopify-section-template--23060962607411__154f5cc1-329f-4790-a12b-b60efd136d71" class="shopify-section section"><link href="//getquibble.com/cdn/shop/t/4/assets/video-section.css?v=163092437706280852751721086172" rel="stylesheet" type="text/css" media="all" /> 1229<link href="//getquibble.com/cdn/shop/t/4/assets/component-deferred-media.css?v=14096082462203297471721086172" rel="stylesheet" type="text/css" media="all" /> 1230<style data-shopify>.section-template--23060962607411__154f5cc1-329f-4790-a12b-b60efd136d71-padding { 1231 padding-top: 27px; 1232 padding-bottom: 0px; 1233 } 1234 1235 @media screen and (min-width: 750px) { 1236 .section-template--23060962607411__154f5cc1-329f-4790-a12b-b60efd136d71-padding { 1237 padding-top: 36px; 1238 padding-bottom: 0px; 1239 } 1240 }</style><div class="color-inverse gradient"> 1241 <div class="video-section isolate page-width section-template--23060962607411__154f5cc1-329f-4790-a12b-b60efd136d71-padding"> 1242 <div 1243 1244 ></div> 1245 <noscript> 1246 <div 1247 class="video-section__media" 1248 1249 style="--ratio-percent: 56.25%;" 1250 1251 ><video playsinline="playsinline" controls="controls" preload="metadata" poster="//getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo_1100x.jpg?v=1728848017"><source src="//getquibble.com/cdn/shop/videos/c/vp/e0cfc706061647fc88d767d1711c9eac/e0cfc706061647fc88d767d1711c9eac.HD-1080p-7.2Mbps-36236281.mp4?v=0" type="video/mp4"><img src="//getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo_1100x.jpg?v=1728848017"></video> 1252</div> 1253 </noscript> 1254 <deferred-media 1255 class="video-section__media deferred-media no-js-hidden gradient global-media-settings media-fit-cover scroll-trigger animate--slide-in" 1256 data-media-id="38869178024243" 1257 1258 style="--ratio-percent: 56.25%;" 1259 1260 > 1261 <button 1262 id="Deferred-Poster-Modal-38869178024243" 1263 class="video-section__poster media deferred-media__poster media--landscape" 1264 type="button" 1265 aria-label="Load video: Quibble Promotional Video" 1266 ><img src="//getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo.jpg?v=1728848017&width=3840" alt="Load video: Quibble Promotional Video" srcset="//getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo.jpg?v=1728848017&width=375 375w, //getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo.jpg?v=1728848017&width=750 750w, //getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo.jpg?v=1728848017&width=1100 1100w, //getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo.jpg?v=1728848017&width=1500 1500w, //getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo.jpg?v=1728848017&width=1780 1780w, //getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo.jpg?v=1728848017&width=2000 2000w, //getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo.jpg?v=1728848017&width=3000 3000w, //getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo.jpg?v=1728848017&width=3840 3840w" width="3840" height="2160" loading="lazy" sizes="(min-width: 1000px) 900px, (min-width: 750px) 1267 calc(100vw - 10rem), 100vw 1268"> 1269<span class="deferred-media__poster-button motion-reduce"><svg 1270 xmlns="http://www.w3.org/2000/svg" 1271 aria-hidden="true" 1272 focusable="false" 1273 class="icon icon-play" 1274 fill="none" 1275 viewBox="0 0 10 14" 1276> 1277 <path fill-rule="evenodd" clip-rule="evenodd" d="M1.48177 0.814643C0.81532 0.448245 0 0.930414 0 1.69094V12.2081C0 12.991 0.858787 13.4702 1.52503 13.0592L10.5398 7.49813C11.1918 7.09588 11.1679 6.13985 10.4965 5.77075L1.48177 0.814643Z" fill="currentColor"/> 1278</svg> 1279</span> 1280 </button> 1281 <template><video playsinline="playsinline" autoplay="autoplay" controls="controls" preload="metadata" poster="//getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo_1100x.jpg?v=1728848017"><source src="//getquibble.com/cdn/shop/videos/c/vp/e0cfc706061647fc88d767d1711c9eac/e0cfc706061647fc88d767d1711c9eac.HD-1080p-7.2Mbps-36236281.mp4?v=0" type="video/mp4"><img src="//getquibble.com/cdn/shop/files/preview_images/Thumbnail_Promo_1100x.jpg?v=1728848017"></video> 1282</template> 1283 </deferred-media> 1284 </div> 1285</div> 1286 1287 1288</section><section id="shopify-section-template--23060962607411__collapsible_content_xgP8eR" class="shopify-section section"><link href="//getquibble.com/cdn/shop/t/4/assets/component-accordion.css?v=180964204318874863811721086172" rel="stylesheet" type="text/css" media="all" /> 1289<link href="//getquibble.com/cdn/shop/t/4/assets/collapsible-content.css?v=42068948719489434321721086172" rel="stylesheet" type="text/css" media="all" /> 1290<style data-shopify>.section-template--23060962607411__collapsible_content_xgP8eR-padding { 1291 padding-top: 0px; 1292 padding-bottom: 27px; 1293 } 1294 1295 @media screen and (min-width: 750px) { 1296 .section-template--23060962607411__collapsible_content_xgP8eR-padding { 1297 padding-top: 0px; 1298 padding-bottom: 36px; 1299 } 1300 }</style><div class="color-inverse gradient"> 1301 <div class="collapsible-content collapsible-none-layout isolate content-container content-container--full-width"> 1302 <div class="collapsible-content__wrapper section-template--23060962607411__collapsible_content_xgP8eR-padding"> 1303 <div class="collapsible-content-wrapper-narrow"> 1304 <div
1305 class="collapsible-content__header scroll-trigger animate--slide-in" 1306 style="text-align: center;" 1307 > 1308<h2 class="visually-hidden">Collapsible content</h2> 1309 1310 </div> 1311 <div class="grid grid--1-col grid--2-col-tablet collapsible-content__grid collapsible-content__grid--reverse scroll-trigger animate--slide-in"> 1312 <div class="grid__item"><div 1313 class="accordion" 1314 1315 > 1316 <details 1317 id="Details-collapsible_row_6WCHiQ-template--23060962607411__collapsible_content_xgP8eR" 1318 1319 > 1320 <summary id="Summary-collapsible_row_6WCHiQ-template--23060962607411__collapsible_content_xgP8eR"> 1321 <svg 1322 class="icon icon-accordion" 1323 aria-hidden="true" 1324 focusable="false" 1325 xmlns="http://www.w3.org/2000/svg" 1326 width="20" 1327 height="20" 1328 viewBox="0 0 20 20" 1329 ><path d="M6.31104 9.13574C6.31104 8.99767 6.42296 8.88574 6.56104 8.88574H13.7464C13.8844 8.88574 13.9964 8.99767 13.9964 9.13574C13.9964 9.27381 13.8844 9.38574 13.7464 9.38574H6.56104C6.42296 9.38574 6.31104 9.27381 6.31104 9.13574Z" /> 1330 <path d="M6.31104 14.0544C6.31104 13.9164 6.42296 13.8044 6.56104 13.8044H13.439C13.577 13.8044 13.689 13.9164 13.689 14.0544C13.689 14.1925 13.577 14.3044 13.439 14.3044H6.56104C6.42296 14.3044 6.31104 14.1925 6.31104 14.0544Z" /> 1331 <path d="M6.92587 11.5952C6.92587 11.4571 7.0378 11.3452 7.17587 11.3452H12.8241C12.9622 11.3452 13.0741 11.4571 13.0741 11.5952C13.0741 11.7333 12.9622 11.8452 12.8241 11.8452H7.17587C7.0378 11.8452 6.92587 11.7333 6.92587 11.5952Z" /> 1332 <path d="M5.19623 1.77832C5.19623 0.949892 5.8678 0.27832 6.69623 0.27832H13.3038C14.1322 0.27832 14.8038 0.949893 14.8038 1.77832V3.46728C14.8038 4.29571 14.1322 4.96728 13.3038 4.96728H6.69623C5.8678 4.96728 5.19623 4.29571 5.19623 3.46728V1.77832ZM6.69623 1.27832C6.42009 1.27832 6.19623 1.50218 6.19623 1.77832V3.46728C6.19623 3.74342 6.42009 3.96728 6.69623 3.96728H13.3038C13.5799 3.96728 13.8038 3.74342 13.8038 3.46728V1.77832C13.8038 1.50218 13.5799 1.27832 13.3038 1.27832H6.69623Z" /> 1333 <path d="M3.73691 2.50806V18.7232H16.2631V2.50806H14.4981V1.50806H16.2631C16.8154 1.50806 17.2631 1.95577 17.2631 2.50806V18.7232C17.2631 19.2755 16.8154 19.7232 16.2631 19.7232H3.73691C3.18462 19.7232 2.73691 19.2755 2.73691 18.7232V2.50806C2.73691 1.95577 3.18462 1.50806 3.73691 1.50806H5.75974V2.50806L3.73691 2.50806Z" /></svg> 1334 <h3 class="accordion__title inline-richtext h4"> 1335 View Transcript 1336 </h3> 1337 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1338 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1339</svg> 1340 1341 </summary> 1342 <div 1343 class="accordion__content rte" 1344 id="CollapsibleAccordion-collapsible_row_6WCHiQ-template--23060962607411__collapsible_content_xgP8eR" 1345 role="region" 1346 aria-labelledby="Summary-collapsible_row_6WCHiQ-template--23060962607411__collapsible_content_xgP8eR" 1347 > 1348 <p>Struggling with homework or assignments? Introducing Quibble - your fast pass to straight A's! Quibble makes your academic life easier with its innovative features. Highlight any text, right click, and get instant answers for any question. Say goodbye to endless searches! Don't have time for an assignment, quiz, or test? With Quibble Plus, give your brain a break! With Quibble Plus, it's as simple as a single click. The autofill feature will instantly complete any school assignment! Quibble uses industry leading methods to answer all your questions with incredible accuracy. This includes GPT 3.5 for lightning fast assistance; but if you need the ultimate edge, try Quibble Expert with GPT-4.0. Quibble's explanation feature clarifies the thought process behind each answer, promoting effortless learning every step of the way. Go to GetQuibble.com, or download now from the Chrome Web Store. Quibble - Maximize your time, minimize your effort.</p> 1349 1350 </div> 1351 </details> 1352 </div></div> 1353 </div> 1354 </div> 1355 </div> 1356 </div> 1357</div> 1358 1359 1360</section><div id="shopify-section-template--23060962607411__1913a605-6764-4ef2-9a5c-4a494d389df8" class="shopify-section section"><link href="//getquibble.com/cdn/shop/t/4/assets/component-image-with-text.css?v=137489125164627035761721086172" rel="stylesheet" type="text/css" media="all" /> 1361<style data-shopify>.section-template--23060962607411__1913a605-6764-4ef2-9a5c-4a494d389df8-padding { 1362 padding-top: 27px; 1363 padding-bottom: 27px; 1364 } 1365 1366 @media screen and (min-width: 750px) { 1367 .section-template--23060962607411__1913a605-6764-4ef2-9a5c-4a494d389df8-padding { 1368 padding-top: 36px; 1369 padding-bottom: 36px; 1370 } 1371 }</style> 1372 1373<div class="image-with-text image-with-text--no-overlap page-width isolate section-template--23060962607411__1913a605-6764-4ef2-9a5c-4a494d389df8-padding scroll-tr
1373igger animate--slide-in"> 1374 <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet"> 1375 <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--top grid__item"> 1376 <div 1377 class="image-with-text__media image-with-text__media--small gradient color-background-1 global-media-settings media" 1378 1379><video autoplay loop muted playsinline id="video-template--23060962607411__1913a605-6764-4ef2-9a5c-4a494d389df8"> 1380 <source src="https://cdn.shopify.com/videos/c/o/v/ecb855192d8747859320fcc9c9c25420.mp4" type="video/mp4"> 1381 </video></div> 1382 </div> 1383 <div class="image-with-text__text-item grid__item"> 1384 <div 1385 id="ImageWithText--template--23060962607411__1913a605-6764-4ef2-9a5c-4a494d389df8" 1386 class="image-with-text__content image-with-text__content--top image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--small gradient color-background-1 content-container" 1387 ><div class="image-with-text__text rte body" > 1388 <p><strong>If you use a supported platform you can click the Quibble button to autofill your assignment.</strong></p> 1389 </div></div> 1390 </div> 1391 </div> 1392</div> 1393 1394 1395</div><div id="shopify-section-template--23060962607411__85671ca1-72e8-46c4-b9b2-57c0e19e9358" class="shopify-section section"><link href="//getquibble.com/cdn/shop/t/4/assets/component-image-with-text.css?v=137489125164627035761721086172" rel="stylesheet" type="text/css" media="all" /> 1396<style data-shopify>.section-template--23060962607411__85671ca1-72e8-46c4-b9b2-57c0e19e9358-padding { 1397 padding-top: 27px; 1398 padding-bottom: 27px; 1399 } 1400 1401 @media screen and (min-width: 750px) { 1402 .section-template--23060962607411__85671ca1-72e8-46c4-b9b2-57c0e19e9358-padding { 1403 padding-top: 36px; 1404 padding-bottom: 36px; 1405 } 1406 }</style> 1407 1408<div class="image-with-text image-with-text--no-overlap page-width isolate section-template--23060962607411__85671ca1-72e8-46c4-b9b2-57c0e19e9358-padding scroll-trigger animate--slide-in"> 1409 <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet image-with-text__grid--reverse"> 1410 <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--top grid__item"> 1411 <div 1412 class="image-with-text__media image-with-text__media--small gradient color-background-1 global-media-settings media" 1413 1414><video autoplay loop muted playsinline id="video-template--23060962607411__85671ca1-72e8-46c4-b9b2-57c0e19e9358"> 1415 <source src="https://cdn.shopify.com/videos/c/o/v/979b63062fae49b6aa0833f9d9cf7bc2.mp4" type="video/mp4"> 1416 </video></div> 1417 </div> 1418 <div class="image-with-text__text-item grid__item"> 1419 <div 1420 id="ImageWithText--template--23060962607411__85671ca1-72e8-46c4-b9b2-57c0e19e9358" 1421 class="image-with-text__content image-with-text__content--top image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--small gradient color-background-1 content-container" 1422 ><div class="image-with-text__text rte body" > 1423 <p><strong>If the Quibble button isn't showing up, simply highlight your question and right click, then click the Quibble button. Watch Quibble deliver the correct answer!</strong></p> 1424 </div></div> 1425 </div> 1426 </div> 1427</div> 1428 1429 1430</div><div id="shopify-section-template--23060962607411__38a48de8-a7da-49fd-bdea-e6ac17810bc6" class="shopify-section section"><link href="//getquibble.com/cdn/shop/t/4/assets/component-image-with-text.css?v=137489125164627035761721086172" rel="stylesheet" type="text/css" media="all" /> 1431<style data-shopify>.section-template--23060962607411__38a48de8-a7da-49fd-bdea-e6ac17810bc6-padding { 1432 padding-top: 27px; 1433 padding-bottom: 27px; 1434 } 1435 1436 @media screen and (min-width: 750px) { 1437 .section-template--23060962607411__38a48de8-a7da-49fd-bdea-e6ac17810bc6-padding { 1438 padding-top: 36px; 1439 padding-bottom: 36px; 1440 } 1441 }</style> 1442 1443<div class="image-with-text image-with-text--no-overlap page-width isolate section-template--23060962607411__38a48de8-a7da-49fd-bdea-e6ac17810bc6-padding scroll-tr
1443igger animate--slide-in"> 1444 <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet"> 1445 <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--top grid__item"> 1446 <div 1447 class="image-with-text__media image-with-text__media--small gradient color-background-1 global-media-settings media" 1448 1449><video autoplay loop muted playsinline id="video-template--23060962607411__38a48de8-a7da-49fd-bdea-e6ac17810bc6"> 1450 <source src="https://cdn.shopify.com/videos/c/o/v/15ab7e84239441d1830cbe6d07f2f7e1.mp4" type="video/mp4"> 1451 </video></div> 1452 </div> 1453 <div class="image-with-text__text-item grid__item"> 1454 <div 1455 id="ImageWithText--template--23060962607411__38a48de8-a7da-49fd-bdea-e6ac17810bc6" 1456 class="image-with-text__content image-with-text__content--top image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--small gradient color-background-1 content-container" 1457 ><div class="image-with-text__text rte body" > 1458 <p><strong>The snipping tool lets you grab image based questions.</strong></p> 1459 </div></div> 1460 </div> 1461 </div> 1462</div> 1463 1464 1465</div><div id="shopify-section-template--23060962607411__image_with_text_VRRFfd" class="shopify-section section"><link href="//getquibble.com/cdn/shop/t/4/assets/component-image-with-text.css?v=137489125164627035761721086172" rel="stylesheet" type="text/css" media="all" /> 1466<style data-shopify>.section-template--23060962607411__image_with_text_VRRFfd-padding { 1467 padding-top: 27px; 1468 padding-bottom: 27px; 1469 } 1470 1471 @media screen and (min-width: 750px) { 1472 .section-template--23060962607411__image_with_text_VRRFfd-padding { 1473 padding-top: 36px; 1474 padding-bottom: 36px; 1475 } 1476 }</style> 1477 1478<div class="image-with-text image-with-text--no-overlap page-width isolate section-template--23060962607411__image_with_text_VRRFfd-padding scroll-trigger animate--slide-in"> 1479 <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet image-with-text__grid--reverse"> 1480 <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--top grid__item"> 1481 <div 1482 class="image-with-text__media image-with-text__media--small gradient color-background-1 global-media-settings media" 1483 1484><video autoplay loop muted playsinline id="video-template--23060962607411__image_with_text_VRRFfd"> 1485 <source src="https://cdn.shopify.com/videos/c/o/v/34a89392aace4138b3ee32b52762c5e0.mp4" type="video/mp4"> 1486 </video></div> 1487 </div> 1488 <div class="image-with-text__text-item grid__item"> 1489 <div 1490 id="ImageWithText--template--23060962607411__image_with_text_VRRFfd" 1491 class="image-with-text__content image-with-text__content--top image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--small gradient color-background-1 content-container" 1492 ><div class="image-with-text__text rte body" > 1493 <p><strong>Learning mode is enabled by default. This creates a duplicate quiz box where Quibble guides you through the solution.</strong></p> 1494 </div></div> 1495 </div> 1496 </div> 1497</div> 1498 1499 1500</div><section id="shopify-section-template--23060962607411__4d3b2dae-fb60-421b-bbe6-dfa5dbe728c9" class="shopify-section section"><link href="//getquibble.com/cdn/shop/t/4/assets/section-multicolumn.css?v=138365117320925203651724854898" rel="stylesheet" type="text/css" media="all" /> 1501<link href="//getquibble.com/cdn/shop/t/4/assets/component-slider.css?v=114212096148022386971721086172" rel="stylesheet" type="text/css" media="all" /> 1502<style data-shopify>.section-template--23060962607411__4d3b2dae-fb60-421b-bbe6-dfa5dbe728c9-padding { 1503 padding-top: 27px; 1504 padding-bottom: 27px; 1505 } 1506 1507 @media screen and (min-width: 750px) { 1508 .section-template--23060962607411__4d3b2dae-fb60-421b-bbe6-dfa5dbe728c9-padding { 1509 padding-top: 36px; 1510 padding-bottom: 36px; 1511 } 1512 }</style> 1513 <div id="quibble-products"></div> 1514 1515<div 1516 class="multicolumn color-accent-1 gradient background-primary" 1517> 1518 <div 1519 class="page-width section-template--23060962607411__4d3b2dae-fb60-421b-bbe6-dfa5dbe728c9-padding isolate scroll-tr
1519igger animate--slide-in" 1520 1521 data-cascade 1522 1523 ><div class="title-wrapper-with-link title-wrapper--self-padded-mobile title-wrapper--no-top-margin"> 1524 <h2 class="title inline-richtext h1"> 1525 Pick Your Quibble 1526 </h2></div><slider-component class="slider-mobile-gutter"> 1527 <ul 1528 class="multicolumn-list contains-content-container grid grid--1-col-tablet-down grid--3-col-desktop slider slider--mobile grid--peek" 1529 id="Slider-template--23060962607411__4d3b2dae-fb60-421b-bbe6-dfa5dbe728c9" 1530 role="list" 1531 ><li 1532 id="Slide-template--23060962607411__4d3b2dae-fb60-421b-bbe6-dfa5dbe728c9-1" 1533 class="multicolumn-list__item grid__item slider__slide scroll-trigger animate--slide-in" 1534 1535 1536 data-cascade 1537 style="--animation-order: 1;" 1538 1539 > 1540 1541 <a 1542 href=" 1543 1544 https://getquibble.com/products/quibble-basic-chrome-extension 1545 1546 " 1547 > 1548 1549 <div class="multicolumn-card content-container button__color"> 1550 <div class="multicolumn-card__image-wrapper multicolumn-card__image-wrapper--full-width multicolumn-card-spacing"> 1551 <div 1552 class="media media--transparent media--adapt" 1553 1554 style="padding-bottom: 100.0%;" 1555 1556 > 1557 <img src="//getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=3200" alt=""Quibble Basic Chrome Extension: Your Fast Pass to Straight A's."" srcset="//getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=50 50w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=75 75w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=100 100w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=150 150w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=200 200w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=300 300w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=400 400w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=500 500w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=750 750w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=1000 1000w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=1250 1250w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=1500 1500w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=1750 1750w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=2000 2000w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=2250 2250w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=2500 2500w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=2750 2750w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=3000 3000w, //getquibble.com/cdn/shop/files/basic_icon_d9f66a1e-6ba2-4876-8f41-b9dfc01bd1d0.jpg?v=1694205421&width=3200 3200w" width="3200" height="3200" loading="lazy" sizes=" 1558 (min-width: 1000px) calc((1000px - 108px) * 1 / 3), 1559 (min-width: 990px) calc((100vw - 108px) * 1 / 3), 1560 (min-width: 750px) calc((100vw - 100px) * 1 / 1), 1561 calc((100vw - 30px) * 1 / 1) 1562 " class="multicolumn-card__image"> 1563 </div> 1564 </div><div class="multicolumn-card__info"><h3 class="inline-richtext">Quibble Basic</h3><div class="rte"><h5><em><strong>
1564Limited</strong></em> Quibble Basic âï¸</h5><h5>Full Answer Explanation âï¸</h5><h5>Highlight & Click âï¸</h5><h5>Quibble Expert â</h5><h5>Auto Fill â</h5><h5>$4.99</h5></div></div> 1565 </div> 1566 1567 </a> 1568 1569 </li><li 1570 id="Slide-template--23060962607411__4d3b2dae-fb60-421b-bbe6-dfa5dbe728c9-2" 1571 class="multicolumn-list__item grid__item slider__slide scroll-trigger animate--slide-in" 1572 1573 1574 data-cascade 1575 style="--animation-order: 2;" 1576 1577 > 1578 1579 <a 1580 href=" 1581 1582 https://getquibble.com/products/quibble-plus-chrome-extension 1583 1584 " 1585 > 1586 1587 <div class="multicolumn-card content-container button__color"> 1588 <div class="multicolumn-card__image-wrapper multicolumn-card__image-wrapper--full-width multicolumn-card-spacing"> 1589 <div 1590 class="media media--transparent media--adapt" 1591 1592 style="padding-bottom: 100.0%;" 1593 1594 > 1595 <img src="//getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=3200" alt=""Quibble Basic Chrome Extension: Your Fast Pass to Straight A's."" srcset="//getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=50 50w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=75 75w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=100 100w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=150 150w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=200 200w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=300 300w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=400 400w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=500 500w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=750 750w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=1000 1000w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=1250 1250w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=1500 1500w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=1750 1750w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=2000 2000w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=2250 2250w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=2500 2500w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=2750 2750w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=3000 3000w, //getquibble.com/cdn/shop/files/icon_large_8c0af47a-243f-4322-af2b-a38392910f4d.jpg?v=1694205419&width=3200 3200w" width="3200" height="3200" loading="lazy" sizes=" 1596 (min-width: 1000px) calc((1000px - 108px) * 1 / 3), 1597 (min-width: 990px) calc((100vw - 108px) * 1 / 3), 1598 (min-width: 750px) calc((100vw - 100px) * 1 / 1), 1599 calc((100vw - 30px) * 1 / 1) 1600 " class="multicolumn-card__image"> 1601 </div> 1602 </div><div class="multicolumn-card__info"><h3 class="inline-richtext">Quibble Plus</h3><div class="rte"><h5><strong>Unlimited</strong> Quibble Basic âï¸</h5><h5>Full Answer Explanation âï¸</h5><h5>Highlight & Click âï¸</h5><h5><em><strong>
1602Limited</strong></em> Quibble Expert âï¸</h5><h5>Auto Fill âï¸</h5><h5>$14.99</h5></div></div> 1603 </div> 1604 1605 </a> 1606 1607 </li><li 1608 id="Slide-template--23060962607411__4d3b2dae-fb60-421b-bbe6-dfa5dbe728c9-3" 1609 class="multicolumn-list__item grid__item slider__slide scroll-trigger animate--slide-in" 1610 1611 1612 data-cascade 1613 style="--animation-order: 3;" 1614 1615 > 1616 1617 <a 1618 href=" 1619 1620 https://getquibble.com/products/quibble-pro-chrome-extension 1621 1622 " 1623 > 1624 1625 <div class="multicolumn-card content-container button__color"> 1626 <div class="multicolumn-card__image-wrapper multicolumn-card__image-wrapper--full-width multicolumn-card-spacing"> 1627 <div 1628 class="media media--transparent media--adapt" 1629 1630 style="padding-bottom: 100.0%;" 1631 1632 > 1633 <img src="//getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=3200" alt=""Quibble Pro Chrome Extension: Your Fast Pass to Straight A's."" srcset="//getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=50 50w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=75 75w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=100 100w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=150 150w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=200 200w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=300 300w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=400 400w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=500 500w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=750 750w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=1000 1000w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=1250 1250w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=1500 1500w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=1750 1750w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=2000 2000w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=2250 2250w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=2500 2500w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=2750 2750w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=3000 3000w, //getquibble.com/cdn/shop/files/pro_icon_c9f5be46-ba9b-4146-823b-a5c27e700fef.jpg?v=1694205411&width=3200 3200w" width="3200" height="3200" loading="lazy" sizes=" 1634 (min-width: 1000px) calc((1000px - 108px) * 1 / 3), 1635 (min-width: 990px) calc((100vw - 108px) * 1 / 3), 1636 (min-width: 750px) calc((100vw - 100px) * 1 / 1), 1637 calc((100vw - 30px) * 1 / 1) 1638 " class="multicolumn-card__image"> 1639 </div> 1640 </div><div class="multicolumn-card__info"><h3 class="inline-richtext">Quibble Pro</h3><div class="rte"><h5><strong>Unlimited</strong> Quibble Basic âï¸</h5><h5>Full Answer Explanation âï¸</h5><h5>Highlight & Click âï¸</h5><h5><strong>Unlimited</strong> Quibble Expert âï¸</h5><h5>Auto Fill âï¸</h5><h5>$29.99</h5></div></div> 1641 </div> 1642 1643 </a> 1644 1645 </li></ul><div class="slider-buttons no-js-hidden medium-hide"> 1646 <button 1647 type="button" 1648 class="slider-button slider-button--prev" 1649 name="previous" 1650 aria-label="Slide left" 1651 > 1652 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1653 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1654</svg> 1655 1656 </button> 1657 <div class="slider-counter caption">
1658 <span class="slider-counter--current">1</span> 1659 <span aria-hidden="true"> / </span> 1660 <span class="visually-hidden">of</span> 1661 <span class="slider-counter--total">3</span> 1662 </div> 1663 <button 1664 type="button" 1665 class="slider-button slider-button--next" 1666 name="next" 1667 aria-label="Slide right" 1668 > 1669 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1670 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1671</svg> 1672 1673 </button> 1674 </div></slider-component> 1675 <div class="center small-hide medium-hide"></div> 1676 </div> 1677</div> 1678 1679 1680<style> #shopify-section-template--23060962607411__4d3b2dae-fb60-421b-bbe6-dfa5dbe728c9 .title {color: #fff;} </style></section><section id="shopify-section-template--23060962607411__rich_text_LiiLmB" class="shopify-section section"><link href="//getquibble.com/cdn/shop/t/4/assets/section-rich-text.css?v=155250126305810049721721086172" rel="stylesheet" type="text/css" media="all" /> 1681<style data-shopify>.section-template--23060962607411__rich_text_LiiLmB-padding { 1682 padding-top: 30px; 1683 padding-bottom: 39px; 1684 } 1685 1686 @media screen and (min-width: 750px) { 1687 .section-template--23060962607411__rich_text_LiiLmB-padding { 1688 padding-top: 40px; 1689 padding-bottom: 52px; 1690 } 1691 }</style><div class="isolate"> 1692 <div class="rich-text content-container color-background-1 gradient rich-text--full-width content-container--full-width section-template--23060962607411__rich_text_LiiLmB-padding"> 1693 <div class="rich-text__wrapper rich-text__wrapper--center page-width"> 1694 <div class="rich-text__blocks center"><h2 1695 class="rich-text__heading rte inline-richtext h1 scroll-trigger animate--slide-in" 1696 1697 1698 data-cascade 1699 style="--animation-order: 1;" 1700 1701 > 1702 Sign up now and get free highlight & click questions every day!!! 1703 </h2><div 1704 class="rich-text__buttons scroll-trigger animate--slide-in" 1705 1706 1707 data-cascade 1708 style="--animation-order: 2;" 1709 1710 ><a 1711 1712 href="https://getquibble.com/account/register" 1713 1714 class="button button--primary" 1715 >Sign Up</a></div></div> 1716 </div> 1717 </div> 1718</div> 1719 1720 1721</section><section id="shopify-section-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" class="shopify-section section"><link href="//getquibble.com/cdn/shop/t/4/assets/component-accordion.css?v=180964204318874863811721086172" rel="stylesheet" type="text/css" media="all" /> 1722<link href="//getquibble.com/cdn/shop/t/4/assets/collapsible-content.css?v=42068948719489434321721086172" rel="stylesheet" type="text/css" media="all" /> 1723<style data-shopify>.section-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed-padding { 1724 padding-top: 27px; 1725 padding-bottom: 27px; 1726 } 1727 1728 @media screen and (min-width: 750px) { 1729 .section-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed-padding { 1730 padding-top: 36px; 1731 padding-bottom: 36px; 1732 } 1733 }</style><div class="color-inverse gradient"> 1734 <div class="collapsible-content collapsible-none-layout isolate content-container content-container--full-width"> 1735 <div class="collapsible-content__wrapper section-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed-padding"> 1736 <div class="collapsible-content-wrapper-narrow"> 1737 <div 1738 class="collapsible-content__header scroll-trigger animate--slide-in" 1739 style="text-align: center;" 1740 > 1741<h2 class="collapsible-content__heading inline-richtext h1"> 1742 Frequently Asked Questions 1743 </h2> 1744 </div> 1745 <div class="grid grid--1-col grid--2-col-tablet collapsible-content__grid collapsible-content__grid--reverse scroll-tr
1745igger animate--slide-in"> 1746 <div class="grid__item"><div 1747 class="accordion" 1748 1749 > 1750 <details 1751 id="Details-template--20562933645619__b979247b-ed0d-45af-9161-0a751386e4ed-collapsible_row-2-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1752 1753 > 1754 <summary id="Summary-template--20562933645619__b979247b-ed0d-45af-9161-0a751386e4ed-collapsible_row-2-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed"> 1755 <svg 1756 class="icon icon-accordion" 1757 aria-hidden="true" 1758 focusable="false" 1759 xmlns="http://www.w3.org/2000/svg" 1760 width="20" 1761 height="20" 1762 viewBox="0 0 20 20" 1763 ><path d="M9.56285 11.959C9.36021 11.959 9.19593 11.7947 9.19593 11.5921V11.4654C9.19266 10.9745 9.27959 10.5556 9.51194 10.162C9.73885 9.77751 10.0875 9.44653 10.5519 9.09905C10.9668 8.78804 11.2183 8.53255 11.3688 8.28844C11.5132 8.05415 11.577 7.80994 11.577 7.49433V7.48101C11.577 6.58737 10.9199 5.94963 10.0093 5.94963C9.14693 5.94963 8.48176 6.556 8.39691 7.55858C8.38999 7.64041 8.35581 7.71754 8.29986 7.77765L8.29366 7.78431C8.22548 7.85755 8.13034 7.89977 8.03028 7.90119L7.55903 7.90785C7.43278 7.90963 7.31449 7.84638 7.24586 7.7404C7.19061 7.65507 7.1738 7.55171 7.19715 7.45492C7.30916 5.93601 8.41577 4.74287 10.0217 4.74287C11.6246 4.74287 12.8131 5.91906 12.8131 7.46103V7.47435C12.8131 7.98614 12.6995 8.4388 12.4473 8.86135C12.199 9.27731 11.8283 9.64397 11.3455 10.0059L11.3431 10.0077C10.929 10.313 10.7058 10.5344 10.5791 10.746C10.4596 10.9455 10.4072 11.1677 10.4072 11.5174V11.5921C10.4072 11.7947 10.2429 11.959 10.0403 11.959H9.56285ZM10.7049 14.3815C10.7049 14.8554 10.3695 15.2613 9.86668 15.2613C9.36996 15.2613 9.02231 14.862 9.02231 14.3815C9.02231 13.9045 9.37305 13.5084 9.86668 13.5084C10.3665 13.5084 10.7049 13.911 10.7049 14.3815Z"/> 1764 <path d="M18.5 10C18.5 14.6944 14.6944 18.5 10 18.5C5.30558 18.5 1.5 14.6944 1.5 10C1.5 5.30558 5.30558 1.5 10 1.5C14.6944 1.5 18.5 5.30558 18.5 10ZM10 17.4967C14.1403 17.4967 17.4967 14.1403 17.4967 10C17.4967 5.85971 14.1403 2.50335 10 2.50335C5.85971 2.50335 2.50335 5.85971 2.50335 10C2.50335 14.1403 5.85971 17.4967 10 17.4967Z"/></svg> 1765 <h3 class="accordion__title inline-richtext h4"> 1766 Can my school detect I'm using Quibble? 1767 </h3> 1768 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1769 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1770</svg> 1771 1772 </summary> 1773 <div 1774 class="accordion__content rte" 1775 id="CollapsibleAccordion-template--20562933645619__b979247b-ed0d-45af-9161-0a751386e4ed-collapsible_row-2-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1776 role="region" 1777 aria-labelledby="Summary-template--20562933645619__b979247b-ed0d-45af-9161-0a751386e4ed-collapsible_row-2-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1778 > 1779 <p>Absolutely not. Quibble is entirely undetectable, our intelligent and discrete systems bypass website tracking.</p> 1780 1781 </div> 1782 </details> 1783 </div><div 1784 class="accordion" 1785 1786 > 1787 <details 1788 id="Details-template--20562933645619__b979247b-ed0d-45af-9161-0a751386e4ed-collapsible_row-3-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1789 1790 > 1791 <summary id="Summary-template--20562933645619__b979247b-ed0d-45af-9161-0a751386e4ed-collapsible_row-3-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed"> 1792 <svg 1793 class="icon icon-accordion" 1794 aria-hidden="true" 1795 focusable="false" 1796 xmlns="http://www.w3.org/2000/svg" 1797 width="20" 1798 height="20"
1799 viewBox="0 0 20 20" 1800 ><path d="M9.56285 11.959C9.36021 11.959 9.19593 11.7947 9.19593 11.5921V11.4654C9.19266 10.9745 9.27959 10.5556 9.51194 10.162C9.73885 9.77751 10.0875 9.44653 10.5519 9.09905C10.9668 8.78804 11.2183 8.53255 11.3688 8.28844C11.5132 8.05415 11.577 7.80994 11.577 7.49433V7.48101C11.577 6.58737 10.9199 5.94963 10.0093 5.94963C9.14693 5.94963 8.48176 6.556 8.39691 7.55858C8.38999 7.64041 8.35581 7.71754 8.29986 7.77765L8.29366 7.78431C8.22548 7.85755 8.13034 7.89977 8.03028 7.90119L7.55903 7.90785C7.43278 7.90963 7.31449 7.84638 7.24586 7.7404C7.19061 7.65507 7.1738 7.55171 7.19715 7.45492C7.30916 5.93601 8.41577 4.74287 10.0217 4.74287C11.6246 4.74287 12.8131 5.91906 12.8131 7.46103V7.47435C12.8131 7.98614 12.6995 8.4388 12.4473 8.86135C12.199 9.27731 11.8283 9.64397 11.3455 10.0059L11.3431 10.0077C10.929 10.313 10.7058 10.5344 10.5791 10.746C10.4596 10.9455 10.4072 11.1677 10.4072 11.5174V11.5921C10.4072 11.7947 10.2429 11.959 10.0403 11.959H9.56285ZM10.7049 14.3815C10.7049 14.8554 10.3695 15.2613 9.86668 15.2613C9.36996 15.2613 9.02231 14.862 9.02231 14.3815C9.02231 13.9045 9.37305 13.5084 9.86668 13.5084C10.3665 13.5084 10.7049 13.911 10.7049 14.3815Z"/> 1801 <path d="M18.5 10C18.5 14.6944 14.6944 18.5 10 18.5C5.30558 18.5 1.5 14.6944 1.5 10C1.5 5.30558 5.30558 1.5 10 1.5C14.6944 1.5 18.5 5.30558 18.5 10ZM10 17.4967C14.1403 17.4967 17.4967 14.1403 17.4967 10C17.4967 5.85971 14.1403 2.50335 10 2.50335C5.85971 2.50335 2.50335 5.85971 2.50335 10C2.50335 14.1403 5.85971 17.4967 10 17.4967Z"/></svg> 1802 <h3 class="accordion__title inline-richtext h4"> 1803 What languages are supported? 1804 </h3> 1805 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1806 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1807</svg> 1808 1809 </summary> 1810 <div 1811 class="accordion__content rte" 1812 id="CollapsibleAccordion-template--20562933645619__b979247b-ed0d-45af-9161-0a751386e4ed-collapsible_row-3-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1813 role="region" 1814 aria-labelledby="Summary-template--20562933645619__b979247b-ed0d-45af-9161-0a751386e4ed-collapsible_row-3-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1815 > 1816 <p>Yes! Quibble will work in the following languages: English, Spanish, French, German, Italian, Dutch, Russian, Chinese, and Portuguese.</p> 1817 1818 </div> 1819 </details> 1820 </div><div 1821 class="accordion" 1822 1823 > 1824 <details 1825 id="Details-01ba83d2-93bd-414f-aef9-a08e821d1642-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1826 1827 > 1828 <summary id="Summary-01ba83d2-93bd-414f-aef9-a08e821d1642-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed"> 1829 <svg 1830 class="icon icon-accordion" 1831 aria-hidden="true" 1832 focusable="false" 1833 xmlns="http://www.w3.org/2000/svg" 1834 width="20" 1835 height="20" 1836 viewBox="0 0 20 20" 1837 ><path d="M9.56285 11.959C9.36021 11.959 9.19593 11.7947 9.19593 11.5921V11.4654C9.19266 10.9745 9.27959 10.5556 9.51194 10.162C9.73885 9.77751 10.0875 9.44653 10.5519 9.09905C10.9668 8.78804 11.2183 8.53255 11.3688 8.28844C11.5132 8.05415 11.577 7.80994 11.577 7.49433V7.48101C11.577 6.58737 10.9199 5.94963 10.0093 5.94963C9.14693 5.94963 8.48176 6.556 8.39691 7.55858C8.38999 7.64041 8.35581 7.71754 8.29986 7.77765L8.29366 7.78431C8.22548 7.85755 8.13034 7.89977 8.03028 7.90119L7.55903 7.90785C7.43278 7.90963 7.31449 7.84638 7.24586 7.7404C7.19061 7.65507 7.1738 7.55171 7.19715 7.45492C7.30916 5.93601 8.41577 4.74287 10.0217 4.74287C11.6246 4.74287 12.8131 5.91906 12.8131 7.46103V7.47435C12.8131 7.98614 12.6995 8.4388 12.4473 8.86135C12.199 9.27731 11.8283 9.64397 11.3455 10.0059L11.3431 10.0077C10.929 10.313 10.7058 10.5344 10.5791 10.746C10.4596 10.9455 10.4072 11.1677 10.4072 11.5174V11.5921C10.4072 11.7947 10.2429 11.959 10.0403 11.959H9.56285ZM10.7049 14.3815C10.7049 14.8554 10.3695 15.2613 9.86668 15.2613C9.36996 15.2613 9.02231 14.862 9.02231 14.3815C9.02231 13.9045 9.37305 13.5084 9.86668 13.5084C10.3665 13.5084 10.7049 13.911 10.7049 14.3815Z"/>
1838 <path d="M18.5 10C18.5 14.6944 14.6944 18.5 10 18.5C5.30558 18.5 1.5 14.6944 1.5 10C1.5 5.30558 5.30558 1.5 10 1.5C14.6944 1.5 18.5 5.30558 18.5 10ZM10 17.4967C14.1403 17.4967 17.4967 14.1403 17.4967 10C17.4967 5.85971 14.1403 2.50335 10 2.50335C5.85971 2.50335 2.50335 5.85971 2.50335 10C2.50335 14.1403 5.85971 17.4967 10 17.4967Z"/></svg> 1839 <h3 class="accordion__title inline-richtext h4"> 1840 What is the Difference between Quibble Basic and Quibble Expert? 1841 </h3> 1842 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1843 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1844</svg> 1845 1846 </summary> 1847 <div 1848 class="accordion__content rte" 1849 id="CollapsibleAccordion-01ba83d2-93bd-414f-aef9-a08e821d1642-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1850 role="region" 1851 aria-labelledby="Summary-01ba83d2-93bd-414f-aef9-a08e821d1642-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1852 > 1853 <p>Quibble Basic uses a consistently accurate and robust AI model to deliver incredible results. Quibble Expert leverages the latest and experimental advancements in AI to deliver extremely accurate answers to homework, quiz, and exam problems/questions. </p> 1854 1855 </div> 1856 </details> 1857 </div><div 1858 class="accordion" 1859 1860 > 1861 <details 1862 id="Details-collapsible_row_U76xYE-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1863 1864 > 1865 <summary id="Summary-collapsible_row_U76xYE-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed"> 1866 <svg 1867 class="icon icon-accordion" 1868 aria-hidden="true" 1869 focusable="false" 1870 xmlns="http://www.w3.org/2000/svg" 1871 width="20" 1872 height="20" 1873 viewBox="0 0 20 20" 1874 ><path d="M9.56285 11.959C9.36021 11.959 9.19593 11.7947 9.19593 11.5921V11.4654C9.19266 10.9745 9.27959 10.5556 9.51194 10.162C9.73885 9.77751 10.0875 9.44653 10.5519 9.09905C10.9668 8.78804 11.2183 8.53255 11.3688 8.28844C11.5132 8.05415 11.577 7.80994 11.577 7.49433V7.48101C11.577 6.58737 10.9199 5.94963 10.0093 5.94963C9.14693 5.94963 8.48176 6.556 8.39691 7.55858C8.38999 7.64041 8.35581 7.71754 8.29986 7.77765L8.29366 7.78431C8.22548 7.85755 8.13034 7.89977 8.03028 7.90119L7.55903 7.90785C7.43278 7.90963 7.31449 7.84638 7.24586 7.7404C7.19061 7.65507 7.1738 7.55171 7.19715 7.45492C7.30916 5.93601 8.41577 4.74287 10.0217 4.74287C11.6246 4.74287 12.8131 5.91906 12.8131 7.46103V7.47435C12.8131 7.98614 12.6995 8.4388 12.4473 8.86135C12.199 9.27731 11.8283 9.64397 11.3455 10.0059L11.3431 10.0077C10.929 10.313 10.7058 10.5344 10.5791 10.746C10.4596 10.9455 10.4072 11.1677 10.4072 11.5174V11.5921C10.4072 11.7947 10.2429 11.959 10.0403 11.959H9.56285ZM10.7049 14.3815C10.7049 14.8554 10.3695 15.2613 9.86668 15.2613C9.36996 15.2613 9.02231 14.862 9.02231 14.3815C9.02231 13.9045 9.37305 13.5084 9.86668 13.5084C10.3665 13.5084 10.7049 13.911 10.7049 14.3815Z"/> 1875 <path d="M18.5 10C18.5 14.6944 14.6944 18.5 10 18.5C5.30558 18.5 1.5 14.6944 1.5 10C1.5 5.30558 5.30558 1.5 10 1.5C14.6944 1.5 18.5 5.30558 18.5 10ZM10 17.4967C14.1403 17.4967 17.4967 14.1403 17.4967 10C17.4967 5.85971 14.1403 2.50335 10 2.50335C5.85971 2.50335 2.50335 5.85971 2.50335 10C2.50335 14.1403 5.85971 17.4967 10 17.4967Z"/></svg> 1876 <h3 class="accordion__title inline-richtext h4"> 1877 Is it more accurate than Chat GPT? 1878 </h3> 1879 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1880 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1881</svg> 1882 1883 </summary> 1884 <div 1885 class="accordion__content rte" 1886 id="CollapsibleAccordion-collapsible_row_U76xYE-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1887 role="region" 1888 aria-labelledby="Summary-collapsible_row_U76xYE-template--23060962607411__b979247b-ed0d-45af-9161-0a751386e4ed" 1889 > 1890 <p>Yes! Quibble leverages layered and more advanced AI models to analyze, answer, and explain every question!</p> 1891 1892 </div> 1893 </details> 1894 </div></div> 1895 </div> 1896 </div> 1897 </div> 1898 </div> 1899</div> 1900 1901 1902</section> 1903 </main> 1904 1905 <!-- BEGIN sections: footer-group --> 1906<div id="shopify-section-sections--23060958708019__footer" class="shopify-section shopify-section-group-footer-group"> 1907<link href="//getquibble.com/cdn/shop/t/4/assets/section-footer.css?v=125160298726032154631721086172" rel="stylesheet" type="text/css" media="all" /> 1908<link href="//getquibble.com/cdn/shop/t/4/assets/component-newsletter.css?v=4727253280200485261721086172" rel="stylesheet" type="text/css" media="all" /> 1909<link href="//getquibble.com/cdn/shop/t/4/assets/component-list-menu.css?v=151968516119678728991721086172" rel="stylesheet" type="text/css" media="all" /> 1910<link href="//getquibble.com/cdn/shop/t/4/assets/component-list-payment.css?v=69253961410771838501721086172" rel="stylesheet" type="text/css" media="all" /> 1911<link href="//getquibble.com/cdn/shop/t/4/assets/component-list-social.css?v=35792976012981934991721086172" rel="stylesheet" type="text/css" media="all" /> 1912<style data-shopify>.footer { 1913 margin-top: 0px; 1914 } 1915 1916 .section-sections--23060958708019__footer-padding { 1917 padding-top: 27px; 1918 padding-bottom: 27px; 1919 } 1920 1921 @media screen and (min-width: 750px) { 1922 .footer { 1923 margin-top: 0px; 1924 } 1925 1926 .section-sections--23060958708019__footer-padding { 1927 padding-top: 36px; 1928 padding-bottom: 36px; 1929 } 1930 }</style><footer class="footer color-background-1 gradient section-sections--23060958708019__footer-padding">
1930<div class="footer__content-top page-width"><div 1931 class="footer-block--newsletter scroll-trigger animate--slide-in" 1932 1933 data-cascade 1934 1935 > 1936 1937<ul class="list-unstyled list-social footer__list-social" role="list"><li class="list-social__item"> 1938 <a href="https://www.instagram.com/getquibble/" class="link list-social__link"><svg aria-hidden="true" focusable="false" class="icon icon-instagram" viewBox="0 0 20 20"> 1939 <path fill="currentColor" fill-rule="evenodd" d="M13.23 3.492c-.84-.037-1.096-.046-3.23-.046-2.144 0-2.39.01-3.238.055-.776.027-1.195.164-1.487.273a2.43 2.43 0 0 0-.912.593 2.486 2.486 0 0 0-.602.922c-.11.282-.238.702-.274 1.486-.046.84-.046 1.095-.046 3.23 0 2.134.01 2.39.046 3.229.004.51.097 1.016.274 1.495.145.365.319.639.602.913.282.282.538.456.92.602.474.176.974.268 1.479.273.848.046 1.103.046 3.238.046 2.134 0 2.39-.01 3.23-.046.784-.036 1.203-.164 1.486-.273.374-.146.648-.329.921-.602.283-.283.447-.548.602-.922.177-.476.27-.979.274-1.486.037-.84.046-1.095.046-3.23 0-2.134-.01-2.39-.055-3.229-.027-.784-.164-1.204-.274-1.495a2.43 2.43 0 0 0-.593-.913 2.604 2.604 0 0 0-.92-.602c-.284-.11-.703-.237-1.488-.273ZM6.697 2.05c.857-.036 1.131-.045 3.302-.045 1.1-.014 2.202.001 3.302.045.664.014 1.321.14 1.943.374a3.968 3.968 0 0 1 1.414.922c.41.397.728.88.93 1.414.23.622.354 1.279.365 1.942C18 7.56 18 7.824 18 10.005c0 2.17-.01 2.444-.046 3.292-.036.858-.173 1.442-.374 1.943-.2.53-.474.976-.92 1.423a3.896 3.896 0 0 1-1.415.922c-.51.191-1.095.337-1.943.374-.857.036-1.122.045-3.302.045-2.171 0-2.445-.009-3.302-.055-.849-.027-1.432-.164-1.943-.364a4.152 4.152 0 0 1-1.414-.922 4.128 4.128 0 0 1-.93-1.423c-.183-.51-.329-1.085-.365-1.943C2.009 12.45 2 12.167 2 10.004c0-2.161 0-2.435.055-3.302.027-.848.164-1.432.365-1.942a4.44 4.44 0 0 1 .92-1.414 4.18 4.18 0 0 1 1.415-.93c.51-.183 1.094-.33 1.943-.366Zm.427 4.806a4.105 4.105 0 1 1 5.805 5.805 4.105 4.105 0 0 1-5.805-5.805Zm1.882 5.371a2.668 2.668 0 1 0 2.042-4.93 2.668 2.668 0 0 0-2.042 4.93Zm5.922-5.942a.958.958 0 1 1-1.355-1.355.958.958 0 0 1 1.355 1.355Z" clip-rule="evenodd"/> 1940</svg> 1941<span class="visually-hidden">Instagram</span> 1942 </a> 1943 </li><li class="list-social__item"> 1944 <a href="https://www.tiktok.com/@getquibble.com" class="link list-social__link"><svg aria-hidden="true" focusable="false" class="icon icon-tiktok" viewBox="0 0 20 20"> 1945 <path fill="currentColor" d="M10.511 1.705h2.74s-.157 3.51 3.795 3.768v2.711s-2.114.129-3.796-1.158l.028 5.606A5.073 5.073 0 1 1 8.213 7.56h.708v2.785a2.298 2.298 0 1 0 1.618 2.205L10.51 1.705Z"/> 1946</svg> 1947<span class="visually-hidden">TikTok</span> 1948 </a> 1949 </li></ul> 1950</div> 1951 </div><div 1952 class="footer__content-bottom scroll-trigger animate--slide-in" 1953 1954 data-cascade 1955 1956 > 1957 <div class="footer__content-bottom-wrapper page-width"> 1958 <div class="footer__column footer__localization isolate"></div> 1959 <div class="footer__column footer__column--info"></div> 1960 </div> 1961 <div class="footer__content-bottom-wrapper page-width footer__content-bottom-wrapper--center"> 1962 <div class="footer__copyright caption"> 1963 <small class="copyright__content" 1964 >© 2026, <a href="/" title="">Quibble</a></small><ul class="policies list-unstyled"><li> 1965 <small class="copyright__content" 1966 ><a href="/policies/refund-policy">Refund policy</a></small 1967 > 1968 </li><li> 1969 <small class="copyright__content" 1970 ><a href="/policies/privacy-policy">Privacy policy</a></small 1971 > 1972 </li><li> 1973 <small class="copyright__content" 1974 ><a href="/policies/terms-of-service">Terms of service</a></small 1975 > 1976 </li><li> 1977 <small class="copyright__content" 1978 ><a href="/policies/contact-information">Contact information</a></small 1979 > 1980 </li><li> 1981 <small class="copyright__content" 1982 ><a href="/policies/subscription-policy">Cancellation policy</a></small 1983 > 1984 </li></ul></div> 1985 </div> 1986 </div> 1987</footer> 1988 1989 1990</div> 1991<!-- END sections: footer-group --> 1992 1993 <ul hidden> 1994 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li> 1995 <li id="a11y-new-window-message">Opens in a new window.</li> 1996 </ul> 1997 1998
1998<script> 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 window.shopUrl = 'https://getquibble.com'; 2018 window.routes = { 2019 cart_add_url: '/cart/add', 2020 cart_change_url: '/cart/change', 2021 cart_update_url: '/cart/update', 2022 cart_url: '/cart', 2023 predictive_search_url: '/search/suggest', 2024 }; 2025 2026 window.cartStrings = { 2027 error: `There was an error while updating your cart. Please try again.`, 2028 quantityError: `You can only add [quantity] of this item to your cart.`, 2029 }; 2030 2031 window.variantStrings = { 2032 addToCart: `Add to cart`, 2033 soldOut: `Sold out`, 2034 unavailable: `Unavailable`, 2035 unavailable_with_option: `[value] - Unavailable`, 2036 }; 2037 2038 window.quickOrderListStrings = { 2039 itemsAdded: `[quantity] items added`, 2040 itemAdded: `[quantity] item added`, 2041 itemsRemoved: `[quantity] items removed`, 2042 itemRemoved: `[quantity] item removed`, 2043 viewCart: `View cart`, 2044 each: `[money]/ea`, 2045 }; 2046 2047 window.accessibilityStrings = { 2048 imageAvailable: `Image [index] is now available in gallery view`, 2049 shareSuccess: `Link copied to clipboard`, 2050 pauseSlideshow: `Pause slideshow`, 2051 playSlideshow: `Play slideshow`, 2052 recipientFormExpanded: `Gift card recipient form expanded`, 2053 recipientFormCollapsed: `Gift card recipient form collapsed`, 2054 }; 2055 2056 2057 2058 2059 2060 2061 2062 2063<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 2063-2064
2063 2064<script async src="https://www.googletagmanager.com/gtag/js?id=
2064AW-16764775318
vendor: 13 bytes, lines 2064-2065
2064"> 2065</script>
2066<script> 2067
vendor: 134 bytes, lines 2067-2071
2067window.dataLayer = window.dataLayer || []; 2068 function gtag(){dataLayer.push(arguments);} 2069 gtag('js', new Date()); 2070 2071 gtag('config', '
2071AW-16764775318
vendor: 4 bytes, line 2071
2071');
2072</script>
2072 2073 2074 </script>
2074 2075
2075<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
2075 2076
2076<script> 2077 $(document).ready(function(){ 2078 $("a.button.button--primary").on('click', function(event) { 2079 if (this.hash !== "") { 2080 event.preventDefault(); 2081 var hash = this.hash; 2082 2083 $('html, body').animate({ 2084 scrollTop: $(hash).offset().top 2085 }, 800, function(){ 2086 window.location.hash = hash; 2087 }); 2088 } 2089 }); 2090 }); 2091 </script>
2091<script src="//getquibble.com/cdn/shop/t/4/assets/predictive-search.js?v=162273246065392412141721086172" defer="defer"></script>
2091<link href="//getquibble.com/cdn/shop/t/4/assets/recurpay.css?v=99216698867547469281721086172" rel="stylesheet" type="text/css" media="all" />
2092<script defer> 2093 (function() { 2094 //Append Script 2095 var initScript = function(url, callback) { 2096 var script = document.createElement("script"); 2097 script.type = "text/javascript"; 2098 if (script.readyState){ 2099 script.onreadystatechange = function() { 2100 if (script.readyState == "loaded" || script.readyState == "complete") { 2101 script.onreadystatechange = null; 2102 callback(); 2103 } 2104 }; 2105 } else { 2106 script.onload = function() { 2107 callback(); 2108 }; 2109 } 2110 script.src = url; 2111 document.getElementsByTagName("head")[0].appendChild(script); 2112 }; 2113 2114 var recurpaySubscription = function($) { 2115 window.recurpay = {}; 2116 recurpay.domainURL = 'https://c820c3-2.recurpay.com'; 2117 recurpay.action = 'default'; 2118 recurpay.product= []; 2119 recurpay.product.id =""; 2120 recurpay.product.available = ""; 2121 recurpay.product.availableVariant = ""; 2122 recurpay.product.onlySubscription = ""; 2123 recurpay.checkout = 'shopify'; 2124 recurpay.pageTemplate = "index"; 2125 recurpay.prepaidMixedCart = true; 2126 recurpay.subscriptionFirst = true; 2127 recurpay.subscriptionInfluence = false; 2128 recurpay.subscriptionInfluenceCount = -1; 2129 recurpay.checkout_btn_override_class = ".icart-checkout-btn, .hs-checkout-purchase, .recurpay-custom-checkout-btn"; 2130 recurpay.pdpAPI = recurpay.domainURL + '/api/storefront/v2/plans'; 2131 recurpay.accountAPI = recurpay.domainURL + '/api/storefront/v2/customers//subscriptions/count'; 2132 recurpay.manageAccountAPI = recurpay.domainURL + "/storefront/account/authenticate/"; 2133 recurpay.checkoutAPI = recurpay.domainURL + '/checkout/initiate.rp'; 2134 recurpay.logURL = recurpay.domainURL + '/api/storefront/v2/logger'; 2135 2136 recurpay.customer = 'guest'; 2137 2138 if((window.location.href.indexOf("/products/") > -1) && (window.location.href.indexOf("recurpay_preview=true") > -1)){ 2139 recurpay.pdpAPI = recurpay.domainURL + '/api/storefront/v2/plans?fetch=force'; 2140 } 2141 var accountTemplate = '', 2142 accountSelector = "#recurpay-account-widget", 2143 pdpSelector = ".recurpay-pdp-widget", 2144 subscriptionSelector = "#recurpay-manage-subscriptions", 2145 checkoutSelector = '[href="/checkout"], form[action="/cart"] button[type="submit"][name="checkout"], form[action="/cart"] input[type="submit"][name="checkout"], form[action="/checkout"] input[type="submit"][name="checkout"], form[action="/checkout"] button[type="submit"][name="checkout"], button[type="submit"][name="checkout"],button[name="checkout"], button.ucd-checkout-btn', 2146 atcFormSelector = 'form[action*="/cart/add"], form[action*="/cart/add.js"], form[id^="product_form_"], form[data-productid], form[action*="/cart/add"][data-js-product-form], form#AddToCartForm, #addToCartFormId1, form.product-form, #AddToCartForm_id, form[data-cart-submit="data-cart-submit"][data-productid], form.lh-product-form, form.shg-product-atc-btn-wrapper, form.shopify-product-form', 2147 atcSelector = '[name="add"], [type=\"submit\"], button#AddToCart, button.gf_add-to-cart', 2148 buynowSelector = '.shopify-payment-button,.shopify-payment-button__button'; 2149 2150 // ACCOUNT PAGE 2151 if(recurpay.pageTemplate == "customers/account" && $(accountSelector).length <= 0){ 2152 if($('.card__linklist').length >0){ 2153 $('.card__linklist').before('<div id="recurpay-account-widget"></div>'); 2154 } 2155 else if($('.flits-account-page-title').length >0){ 2156 $('.flits-account-page-title').append('<div id="recurpay-account-widget"></div>'); 2157 } 2158 else if($('a[href*="/account/addresses"]').length >0){ 2159 $('a[href*="/account/addresses"]').before('<div id="recurpay-account-widget"></div>'); 2160 } 2161 else if ($('.order-history').length >0){ 2162 $('.order-history').before('<div id="recurpay-account-widget"></div>'); 2163 } 2164 else if ($('a[href*="/account/logout"]').length >0){ 2165 $('a[href*="/account/logout"]').before('<div id="recurpay-account-widget"></div>'); 2166 } 2167 else{ 2168 logEvent("account_widget","Failed to show account snippet", "critical"); 2169 } 2170 } 2171 if($(accountSelector).length && recurpay.customer !== "guest"){ 2172 function recurAccount(count){ 2173 accountTemplate += '<div class="subscription__account" data-subscription-block>' 2174 accountTemplate += '<div class="subscription__account--content">' 2175 accountTemplate += '<div class="subscription__account--heading">'+recurpay.accountSettings.translations.breadcrumb_subscription_heading+' <span data-subscription-count>('+count+')</span></div>' 2176 if(count !== 0){ 2177 accountTemplate += '<div class="subscription__account--text" data-active-subscriptions>'+recurpay.accountSettings.translations.breadcrumb_subscription_description+'</div>' 2178 accountTemplate += '<div class="subscription__account--button" id="recurpay-manage-subscriptions"><a href="#">'+recurpay.accountSettings.translations.breadcrumb_subscription_button_text+'</a></div>' 2179 } 2180 else{ 2181 accountTemplate += '<div class="subscription__account--text" data-active-subscriptions>'+recurpay.accountSettings.translations.breadcrumb_subscription_placeholder_for_no_subscriptions+'</
2181div>' 2182 accountTemplate += '<div class="subscription__account--button"><a href="/">'+recurpay.accountSettings.translations.breadcrumb_subscription_text_for_no_subscriptions+'</a></div>' 2183 } 2184 accountTemplate += '</div></div>' 2185 return accountTemplate; 2186 } 2187 $.ajax({ 2188 url: recurpay.accountAPI+"?settings=true", 2189 type: 'GET', 2190 async:true, 2191 success: function(response){ 2192 var accountHTML = ''; 2193 if(response != "ERROR") { 2194 if(response.settings !== null && !$.isEmptyObject(response.settings)){ 2195 recurpay.accountSettings = response.settings; 2196 document.documentElement.style.setProperty('--recurpay_primary_color', recurpay.accountSettings.snippet_color_codes.account_brand_color); 2197 document.documentElement.style.setProperty('--recurpay_button_text_color', recurpay.accountSettings.snippet_color_codes.account_button_text_color); 2198 document.documentElement.style.setProperty('--recurpay_button_bg_color', recurpay.accountSettings.snippet_color_codes.account_button_color); 2199 } 2200 accountHTML = recurAccount(response.count); 2201 } 2202 else { 2203 accountHTML = recurAccount(0); 2204 } 2205 if($(accountSelector).length){ 2206 $(accountSelector).html(accountHTML); 2207 } 2208 }, 2209 error: function(jqXhr, textStatus, errorThrown){ 2210 console.log( errorThrown ); 2211 } 2212 }); 2213 $(document).on('click', subscriptionSelector, function(e) { 2214 e.preventDefault(); 2215 var checkoutForm = $("<form action='"+recurpay.manageAccountAPI+"' method='post' style='display:none;'></form>"); 2216 $('body').append(checkoutForm); 2217 checkoutForm.submit(); 2218 }); 2219 } 2220 2221 // CART PAGE 2222 function recurCart(cartData){ 2223 var checkoutData = [], 2224 cartItems = cartData.items, 2225 cartAttributes = [], 2226 cartNote = cartData.note, 2227 recurpayCheckout = false; 2228 $.each( cartData.attributes, function(key, value ) { 2229 if(key != "Plan" && key != '_PlanId'){ 2230 cartAttributes.push({ 2231 name: key, 2232 value:value 2233 }); 2234 } 2235 }); 2236 for(var i=0; i < cartItems.length; i++){ 2237 var Planid = '', 2238 item = cartItems[i], 2239 property = item.properties, 2240 lineProperty = []; 2241 if(property){ 2242 if(property._PlanId){ 2243 Planid = property._PlanId 2244 recurpayCheckout = true; 2245 } 2246 $.each( property, function(key, value ) { 2247 if(key != "Plan" && key != '_PlanId'){ 2248 lineProperty.push({ 2249 name: key, 2250 value:value 2251 }); 2252 } 2253 }); 2254 } 2255 if(Planid == ''){ 2256 checkoutData.push({ 2257 quantity: item.quantity, 2258 variant_id: item.id, 2259 properties: lineProperty, 2260 type: 'ONETIME', 2261 currency:'INR' 2262 }); 2263 } 2264 else{ 2265 checkoutData.push({ 2266 quantity: item.quantity, 2267 variant_id: item.id, 2268 properties: lineProperty, 2269 plan_id: Planid, 2270 type: 'SUBSCRIPTION', 2271 currency:'INR' 2272 }); 2273 } 2274 } 2275 if(recurpayCheckout) { 2276 var getCheckoutData = JSON.stringify(checkoutData), 2277 getCartAttributes = JSON.stringify(cartAttributes), 2278 cartNote = $('[name="note"]').val(); 2279 checkoutForm = $("<form action='"+recurpay.checkoutAPI+"' method='post' style='display:none;'>" + 2280 "<input type='hidden' name='line_items' value='"+getCheckoutData+"' />"+ 2281 "<input type='hidden' name='customer_id' value='"+recurpay.customer+"' />" + 2282 "<input type='hidden' name='note_attributes' value='"+getCartAttributes+"' />" + 2283 "<input type='hidden' name='note' value='"+cartNote+"' />" + 2284 "</form>"); 2285 $('body').append(checkoutForm); 2286 checkoutForm.submit(); 2287 } 2288 else { 2289 document.location.href = "/checkout"; 2290 } 2291 } 2292 2293 // VARIANT SELECTOR 2294 2295 function getProductHandle(href) { 2296 if (typeof href === "undefined") { 2297 var href = window.location.href; 2298 href = href.replace("/products/products", "/products"); 2299 } 2300 if (/\/products\/([^\?\/\n]+)/.test(href)) { 2301 var found = href.match(/\/products\/([^\?\/\n]+)/); 2302 if (typeof found[1] !== "undefined") { 2303 try { 2304 return decodeURIComponent(found[1]).replace("#", ""); 2305 } catch (e) { 2306 return found[1].replace("#", ""); 2307 } 2308 } 2309 } 2310 return false; 2311 } 2312 2313 recurpay.recurMoney = { 2314 formatPrice: function (price, convertCurrency) { 2315 if (typeof Shopify !== "undefined" && Shopify.hasOwnProperty("currency") && Shopify.currency.hasOwnProperty("rate")) { 2316 var currency = Shopify.currency.active; 2317 var exchangeRate = Shopify.currency.rate; 2318 var moneyFormat = "" + currency; 2319 var currencyFormat = ""; 2320 if (typeof convertCurrency === "undefined") { 2321 convertCurrency = false; 2322 } 2323 if (convertCurrency && exchangeRate !== "1.0") { 2324 price = this.convertMoney(price, exchangeRate, currency); 2325 } 2326 var bodyAttrMoneyFormat = $("body").attr("data-money-format"); 2327 if (currencyFormat !== "") { 2328 moneyFormat = currencyFormat; 2329 } 2330 else { 2331 if (typeof Shopify !== "undefined" && typeof Shopify.currency_settings !== "undefined" && typeof Shopify.currency_settings.money_format !== "undefined") { 2332 moneyFormat = Shopify.currency_settings.money_format; 2333 } else if (typeof window.money_format !== "undefined") { 2334 moneyFormat = window.money_format; 2335 } else if (typeof window.Theme !== "undefined" && typeof window.Theme.moneyFormat !== "undefined") { 2336 moneyFormat = window.Theme.moneyFormat; 2337 } else if (typeof window.theme !== "undefined" && typeof window.theme.moneyFormat !== "undefined") { 2338 moneyFormat = window.theme.moneyFormat; 2339 } else if (typeof window.theme !== "undefined" && typeof window.theme.money_format === "string") { 2340 moneyFormat = window.theme.money_format; 2341 } else if (typeof window.theme !== "undefined" && typeof window.theme.settings !== "undefined" && typeof window.theme.settings.moneyFormat !== "undefined") { 2342 moneyFormat = theme.settings.moneyFormat; 2343 } else if (typeof window.theme !== "undefined" && typeof window.theme.strings !== "undefined" && typeof window.theme.strings.moneyFormat === "string") { 2344 moneyFormat = window.theme.strings.moneyFormat; 2345 } else if (typeof window.Currency !== "undefined" && typeof window.Currency.money_format !== "undefined" && typeof window.Currency.money_format[currency] === "string") { 2346 moneyFormat = window.Currency.money_format[currency]; 2347 } else if (typeof window.Currency !== "undefined" && typeof window.Currency.money_format === "string") { 2348 moneyFormat = window.Currency.money_format; 2349 } else if (typeof bodyAttrMoneyFormat !== "undefined" && typeof bodyAttrMoneyFormat === "string" && bodyAttrMoneyFormat !== "") { 2350 moneyFormat = bodyAttrMoneyFormat; 2351 } else if (typeof wsgMoneyFormat === "string") { 2352 moneyFormat = wsgMoneyFormat; 2353 } else if (typeof price_format === "string") { 2354 moneyFormat = price_format; 2355 } else { 2356 price = price / 100;
2357 return price.toLocaleString(undefined, { style: "currency", currency: currency || this.getDefaultCurrency() }); 2358 } 2359 } 2360 return this.formatMoney(price, moneyFormat, currency || this.getDefaultCurrency()); 2361 } 2362 return ""; 2363 }, 2364 formatMoney: function (cents, format, fallbackCurrency, directionFor50) { 2365 if (typeof directionFor50 === "undefined") { 2366 var directionFor50 = "up"; 2367 } 2368 try { 2369 if (typeof cents == "string") { 2370 cents = cents.replace(".", ""); 2371 } 2372 var value = ""; 2373 var placeholderRegex = /\{\{\s*(\w+)\s*\}\}/; 2374 var formatString = format; 2375 function defaultOption(opt, def) { 2376 return typeof opt == "undefined" ? def : opt; 2377 } 2378 function formatWithDelimiters(number, precision, thousands, decimal, directionFor50) { 2379 precision = defaultOption(precision, 2); 2380 thousands = defaultOption(thousands, ","); 2381 decimal = defaultOption(decimal, "."); 2382 directionFor50 = defaultOption(directionFor50, "up"); 2383 if (isNaN(number) || number == null) { 2384 return 0; 2385 } 2386 var originalNumber = number; 2387 number = (number / 100.0).toFixed(precision); 2388 if (directionFor50 === "down") { 2389 if (originalNumber / 100 - number === -0.5) { 2390 number -= 1; 2391 number = number.toString(); 2392 } 2393 } 2394 var parts = number.split("."), 2395 dollars = parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + thousands), 2396 cents = parts[1] ? decimal + parts[1] : ""; 2397 return dollars + cents; 2398 } 2399 switch (formatString.match(placeholderRegex)[1]) { 2400 case "amount": 2401 value = formatWithDelimiters(cents, 2); 2402 break; 2403 case "amount_no_decimals": 2404 value = formatWithDelimiters(cents, 0, ",", ".", directionFor50); 2405 break; 2406 case "amount_with_comma_separator": 2407 value = formatWithDelimiters(cents, 2, ".", ","); 2408 break; 2409 case "amount_with_decimal_separator": 2410 value = formatWithDelimiters(cents, 2, ",", "."); 2411 break; 2412 case "amount_no_decimals_with_comma_separator": 2413 value = formatWithDelimiters(cents, 0, ".", ",", directionFor50); 2414 break; 2415 case "amount_no_decimals_with_space_separator": 2416 value = formatWithDelimiters(cents, 0, " ", ",", directionFor50); 2417 break; 2418 case "amount_with_apostrophe_separator": 2419 value = formatWithDelimiters(cents, 2, "'", "."); 2420 break; 2421 } 2422 return formatString.replace(placeholderRegex, value); 2423 } catch (e) { 2424 console.log(e.message); 2425 price = cents / 100; 2426 return price.toLocaleString(undefined, { style: "currency", currency: fallbackCurrency }); 2427 } 2428 }, 2429 convertMoney: function (value, rate, currency, round) { 2430 if (value <= 0) { 2431 return 0; 2432 } 2433 value *= rate; 2434 var roundUp = ["USD", "CAD", "AUD", "NZD", "SGD", "HKD", "GBP"]; 2435 var roundTo100 = ["JPY"]; 2436 var roundTo95 = ["EUR"]; 2437 if (round) { 2438 if (roundUp.indexOf(currency) !== -1) {
2439 value = Math.ceil(value); 2440 } else if (roundTo100.indexOf(currency) !== -1) { 2441 value = Math.ceil(value / 100) * 100; 2442 } else if (roundTo95.indexOf(currency) !== -1) { 2443 value = Math.ceil(value) - 0.05; 2444 } 2445 } 2446 return value; 2447 } 2448 }; 2449 2450 function logEvent(module_name,addon,type){ 2451 $.ajax({ 2452 url: recurpay.logURL, 2453 type: 'POST', 2454 async:true, 2455 dataType: 'json', 2456 data: { 2457 module:module_name, 2458 level: type, 2459 payload:{ 2460 store : recurpay.domainURL, 2461 remark: addon 2462 } 2463 }, 2464 success: function(response) { 2465 console.log("event logged"); 2466 } 2467 }); 2468 } 2469 2470 function calculatePrice(variant_id){ 2471 var variant_json = {}; 2472 var variant_price = 0; 2473 var productObj = {}; 2474 if(variant_id !== undefined && variant_id !== null){ 2475 variant_id = parseInt(variant_id); 2476 let variant_data = []; 2477 for(i=0 ; i< recurpay.productDatas.length; i++){ 2478 variant_data.push(...recurpay.productDatas[i].product.variants.filter(function(searchId) { 2479 return parseInt(searchId.id) == variant_id; 2480 })); 2481 } 2482 2483 if(variant_data.length >=1){ 2484 productObj.variant_price = variant_data[0].price; 2485 productObj.product_id = variant_data[0].product_id; 2486 } 2487 } 2488 else{ 2489 productObj.variant_price = recurpay.productDatas[0].product.variants[0].price; 2490 productObj.product_id = variant_data[0].product_id; 2491 } 2492 return productObj; 2493 } 2494 2495 function formatPriceMoney(price){ 2496 var multiple_price = price*100; 2497 var formatted_price = recurpay.recurMoney.formatPrice(multiple_price); 2498 return formatted_price; 2499 } 2500 2501 $(atcFormSelector).closest(".product__meta").find("button.product__chip").on("click", function () { 2502 var $this = $(this); 2503 setTimeout(function() { 2504 recurpay.product.selectedVariant = $this.parents(atcFormSelector).find('select[name="id"]').val(); 2505 recurDiscountedPrice(recurpay.product.selectedVariant); 2506 },100); 2507 }); 2508 2509 $(atcFormSelector).find(".combobox, .wetheme-dropdown__wrapper ul[id^='SingleOptionSelector-'] li, .option-values-radio .popover-list-item .form-element-radio, .single-option-selector .bcpo-image-parent, .regular-select-item, .bcpo-dd.single-option-selector ul.inner li, #clickyboxes-SingleOptionSelector-0 a, button.product__chip, .form-swatch-item, .product-variant__container .product-variant__label, .options-selection__option-value, .popout-list__option--product, .option-swatch .custom-swatch, ul.select-dropdown li, .swatch-element, .swatch_pr_item, .basel-swatch, .swatchBox label, .swatchBox span").on("click", function () { 2510 var $this = $(this); 2511 setTimeout(function() { 2512 recurpay.product.selectedVariant = $this.parents(atcFormSelector).find('select[name="id"], input[name="id"][type="radio"]:checked').val(); 2513 recurDiscountedPrice(recurpay.product.selectedVariant); 2514 },100); 2515 }); 2516 2517 $(atcFormSelector).closest(".product-selection").find("select.single-option-selector").on("change", function () { 2518 var $this = $(this); 2519 setTimeout(function() { 2520 recurpay.product.selectedVariant = $this.parents(atcFormSelector).find('select[name="id"]').val(); 2521 recurDiscountedPrice(recurpay.product.selectedVariant); 2522 },100); 2523 }); 2524 2525 $(atcFormSelector).find(".product-single__swatch__input").on("change", function () { 2526 var $this = $(this); 2527 setTimeout(function() { 2528 recurpay.product.selectedVariant = $this.parents(atcFormSelector).find('select[name="id"]').val(); 2529 recurDiscountedPrice(recurpay.product.selectedVariant); 2530 },100); 2531 }); 2532 2533 $(atcFormSelector).find('input#SelectedId, select.js-variant-select, input[name="id"], select[name="id"], select.single-option-selector, .zpa-single-option-selector, .select.options-selection__input-select, .form-options input.option-value-input, .variant-input input[type="radio"], .product-form__option-select, .option-selectors .selector-wrapper select, select.single-option-list-type, .product-options .option-input, select.input-reset, select.js-product-variant, select[data-single-option-selector], input[data-single-option-selector], select.single-option-selector-product-template, .single-option-selector[type="radio"], .single-option-selector-product-template[type="radio"]').on("change", function () { 2534 var $this = $(this) 2535 setTimeout(function() { 2536 console.log( $(this)); 2537 console.log($(this).parents(atcFormSelector)); 2538 recurpay.product.selectedVariant = $this.parents(atcFormSelector).find('input[name="id"], select[name="id"], input#SelectedId').val(); 2539 recurDiscountedPrice(recurpay.product.selectedVariant); 2540 },100); 2541 }); 2542 2543 function recurDiscountedPrice(variant){ 2544 var getVariantObj = calculatePrice(variant); 2545 var getVariantPrice = getVariantObj.variant_price; 2546 var getProductId = parseInt(getVariantObj.product_id); 2547 var showSavings = true;
2548 $('.recurpay-pdp-widget[data-product-id="'+getProductId+'"]').find(".recurpay__frequency_select option").each(function(){ 2549 var $this = $(this); 2550 console.log($this); 2551 var getDiscount = $(this).attr("data-plan-discount"); 2552 var getPlanName = $(this).attr("data-plan-name"); 2553 var getPlanShipment = $(this).attr("data-plan-shipment"); 2554 if(getPlanShipment == null || getPlanShipment == undefined || getPlanShipment == "null"){ 2555 getPlanShipment = 1; 2556 } 2557 if(getDiscount == null || getDiscount == undefined || getDiscount == "null"){ 2558 getDiscount = 0; 2559 } 2560 var discountedPrice = getVariantPrice - (getVariantPrice * getDiscount / 100); 2561 var getSavings = getVariantPrice*getPlanShipment - discountedPrice*getPlanShipment; 2562 2563 if(parseFloat(getVariantPrice) !== parseFloat(discountedPrice)){ 2564 $this.html(getPlanName+" ("+formatPriceMoney(discountedPrice*getPlanShipment)+")"); 2565 console.log( $('.recurpay-pdp-widget[data-product-id="'+getProductId+'"]')); 2566 if($this.is(':selected')){ 2567 $('.recurpay-pdp-widget[data-product-id="'+getProductId+'"]').find(".recurpay__widget_container[data-type='subscription-purchase']").find(".recurpay__group_compare_price").html("<span class='money'>"+formatPriceMoney(getVariantPrice*getPlanShipment)+"</span>"); 2568 } 2569 } 2570 else{ 2571 $this.html(getPlanName+"("+formatPriceMoney(discountedPrice*getPlanShipment)+")"); 2572 if($this.is(':selected')){ 2573 $('.recurpay-pdp-widget[data-product-id="'+getProductId+'"]').find(".recurpay__widget_container[data-type='subscription-purchase']").find(".recurpay__group_compare_price").html(""); 2574 } 2575 } 2576 if($this.is(':selected')){ 2577 if(getDiscount <=0){ 2578 showSavings = false; 2579 } 2580 $('.recurpay-pdp-widget[data-product-id="'+getProductId+'"]').find(".recurpay__widget_container[data-type='subscription-purchase']").find(".recurpay__saving_amount").html("<span class='money'>"+formatPriceMoney(getSavings)+"</span>"); 2581 $('.recurpay-pdp-widget[data-product-id="'+getProductId+'"]').find(".recurpay__widget_container[data-type='subscription-purchase']").find(".recurpay__group_selling_price").html("<span class='money'>"+formatPriceMoney(discountedPrice*getPlanShipment)+"</span>"); 2582 $('.recurpay-pdp-widget[data-product-id="'+getProductId+'"]').find(".recurpay__widget_container[data-type='subscription-purchase']").find(".recurpay__offer_saving_message_amount_text").html(parseFloat(getDiscount).toFixed(2).replace(/\.0+$/,'')); 2583 } 2584 $('.recurpay-pdp-widget[data-product-id="'+getProductId+'"]').find(".recurpay__widget_container[data-type='onetime-purchase']").find(".recurpay__group_selling_price").html("<span class='money'>"+formatPriceMoney(getVariantPrice)+"</span>"); 2585 $('.recurpay-pdp-widget[data-product-id="'+getProductId+'"]').find(".recurpay__widget_container[data-type='onetime-purchase']").find(".recurpay__offer_saving_message_amount_text").html(parseFloat(getDiscount).toFixed(2).replace(/\.0+$/,'')); 2586 }); 2587 } 2588 2589 function offerSavings(selector){ 2590 var selectedOption = $(selector).find('[name="recurpay__group_main"]').val(); 2591 var getDiscountVal = $(selector).find(".recurpay__frequency_select option:selected").attr("data-plan-discount"); 2592 2593 if(getDiscountVal == null || getDiscountVal == undefined || getDiscountVal == "null"){ 2594 getDiscountVal = 0; 2595 } 2596 if(parseFloat(getDiscountVal) > 0){ 2597 if($(selector).find('[name="recurpay__group_main"]:checked').val() == "subscription"){ 2598 $('.recurpay__offer_onetime').hide(); 2599 $('.recurpay__offer_subscription').css("display","flex"); 2600 } 2601 else{ 2602 $('.recurpay__offer_onetime').css("display","flex"); 2603 $('.recurpay__offer_subscription').hide(); 2604 } 2605 if(recurpay.settings.translations.premium_one_time_saving_icon == "" && recurpay.settings.translations.premium_one_time_saving_msg == "" && recurpay.settings.translations.premium_one_time_saving_label == "" && recurpay.settings.translations.premium_one_time_discount_label == ""){ 2606 $('.recurpay__offer_onetime').hide(); 2607 } 2608 if(recurpay.settings.translations.premium_subscription_saving_icon == "" && recurpay.settings.translations.premium_subscription_saving_msg == "" && recurpay.settings.translations.premium_subscription_saving_label == "" && recurpay.settings.translations.premium_subscription_discount_label == ""){ 2609 $('.recurpay__offer_subscription').hide(); 2610 } 2611 } 2612 else{ 2613 $('.recurpay__offer_wrapper').hide(); 2614 } 2615 } 2616 2617 // PRODUCT PAGE 2618 2619 function hexToRgbA(hex){ 2620 var c; 2621 if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){ 2622 c= hex.substring(1).split(''); 2623 if(c.length== 3){ 2624 c= [c[0], c[0], c[1], c[1], c[2], c[2]]; 2625 } 2626 c= '0x'+c.join(''); 2627 return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',0.1)'; 2628 } 2629 return 'rgba(255, 255, 255, 0.1)'; 2630 } 2631 2632 function recurPDP(data){ 2633 var prepaidCount = 0, 2634 regularCount = 0, 2635 prepaidDiscount = [], 2636 maxPrepaidDiscount = '', 2637 getPlanDesc = '', 2638 pdpTemplate = '', 2639 GetPlans = ""; 2640 $.each(data.plans, function(key, plan) { 2641 var DiscountPercentageHtml = '', 2642 DescriptionHtml = '', 2643 PlanHtml = '', 2644 PlanDiscount = 0, 2645 PlanType = 'regular'; 2646 if(plan.type){
2647 PlanType = plan.type; 2648 if(PlanType == 'prepaid'){ 2649 prepaidCount += prepaidCount+1; 2650 prepaidDiscount.push(plan.pricing_policy[0].discount.value); 2651 } 2652 else{ 2653 regularCount += regularCount+1; 2654 } 2655 } 2656 if(plan.pricing_policy[0].discount.type == "percentage" && plan.pricing_policy[0].discount.value != 0){ 2657 PlanDiscount = plan.pricing_policy[0].discount.value; 2658 DiscountPercentageHtml = '<span class="recurpay__discount">(' + PlanDiscount + '% Off)</span>'; 2659 } 2660 if(plan.description) { 2661 DescriptionHtml = '<div class="recurpay__description" style="display:none" data-description-id="'+plan.id+'">' + plan.description + '</div>'; 2662 } 2663 if(recurpay.checkout == "shopify"){ 2664 if(key == 0){ 2665 PlanHtml += '<option value="" selected="selected" data-plan="' + plan.id + '" data-selling-plan="' + plan.selling_plan_id + '" data-plan-name="' + plan.name + '" data-plan-shipment= "'+plan.delivery_policy.shipment_count+'" data-plan-discount="'+PlanDiscount+'" data-plan-type="'+PlanType+'">'+plan.name+'</option>' 2666 } 2667 else{ 2668 PlanHtml += '<option value="" data-plan="' + plan.id + '" data-selling-plan="' + plan.selling_plan_id + '" data-plan-name="' + plan.name + '" data-plan-shipment= "'+plan.delivery_policy.shipment_count+'" data-plan-discount="'+PlanDiscount+'" data-plan-type="'+PlanType+'">'+plan.name+'</option>' 2669 } 2670 } 2671 else{ 2672 if(key == 0){ 2673 PlanHtml += '<option value="" selected="selected" data-plan="' + plan.id + '" data-plan-name="' + plan.name + '" data-plan-shipment= "'+plan.delivery_policy.shipment_count+'" data-plan-discount="'+PlanDiscount+'" data-plan-type="'+PlanType+'">'+plan.name+'</option>' 2674 } 2675 else{ 2676 PlanHtml += '<option value="" data-plan="' + plan.id + '" data-plan-name="' + plan.name + '" data-plan-shipment= "'+plan.delivery_policy.shipment_count+'" data-plan-discount="'+PlanDiscount+'" data-plan-type="'+PlanType+'">'+plan.name+'</option>' 2677 } 2678 } 2679 GetPlans += PlanHtml; 2680 getPlanDesc += DescriptionHtml; 2681 }) 2682 if(regularCount > 0 && prepaidCount >0){ 2683 maxPrepaidDiscount = Math.max.apply(Math,prepaidDiscount); 2684 } 2685 2686 if(recurpay.subscriptionFirst == true){ 2687 pdpTemplate += '<div class="recurpay__widget recurpay__subscription_first" data-recurpay-widget>' 2688 } 2689 else{ 2690 pdpTemplate += '<div class="recurpay__widget" data-recurpay-widget>' 2691 } 2692 pdpTemplate += '<div class="recurpay__widget_container" data-type="subscription-purchase">' 2693 pdpTemplate += '<input class="recurpay__subscribe_radio recurpay__group_input" name="recurpay__group_main" type="radio" autocomplete="off" value="subscription">' 2694 pdpTemplate += '<div for="recurpay__subscribe_radio" class="recurpay__group_label">' 2695 pdpTemplate += '<div class="recurpay__group_header"><div class="recurpay__radio_group">' 2696 pdpTemplate += '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1"></circle><circle cx="12" cy="12" r="6" fill="currentColor" class="recurpay__radio_svg"></circle></svg>' 2697 pdpTemplate += '</div><div class="recurpay__group_title"> <div>'+recurpay.settings.translations.premium_subscription_label+'</div>' 2698 pdpTemplate += '<div class="recurpay__group_subtitle">'+recurpay.settings.translations.premium_subscription_label_description+'</div>' 2699 pdpTemplate += '</div><div class="recurpay__group_price_wrapper"><div class="recurpay__group_compare_price" ></div>' 2700 pdpTemplate += '<div class="recurpay__group_selling_price recurpay__group_discounted_price"></div></div></div>' 2701 pdpTemplate += '<div class="recurpay__group_content_wrapper"><div class="recurpay__group_content"><div class="recurpay__group_frequency">' 2702 pdpTemplate += '<div class="recurpay__frequency_label_title">'+recurpay.settings.translations.premium_frequency_dropdown_label+'</div>' 2703 pdpTemplate += '<select class="recurpay__frequency_select recurpay__frequency" name="recurpay-input">
2703'+GetPlans+'</select>' 2704 pdpTemplate += '</div><div class="recurpay__description_wrapper">'+getPlanDesc+'</div></div><div class="recurpay__action"><button type="button" data-recurpay-action="">'+recurpay.settings.translations.premium_subscription_button_text+'</button></div>' 2705 pdpTemplate += '</div>' 2706 2707 pdpTemplate += '<div class="recurpay__offer_wrapper recurpay__offer_onetime">'+recurpay.settings.translations.premium_one_time_saving_icon+'' 2708 pdpTemplate += '<div class="recurpay__offer_message recurpay__offer_message_onetime">' 2709 pdpTemplate += '<span>'+recurpay.settings.translations.premium_one_time_saving_msg+'</span>' 2710 pdpTemplate += '<span class="recurpay__offer_saving_message">' 2711 pdpTemplate += '<span class="recurpay__offer_saving_message_amount">'+recurpay.settings.translations.premium_one_time_discount_label+'' 2712 pdpTemplate += '</span><span class="recurpay__offer_saving_message_text">'+recurpay.settings.translations.premium_one_time_saving_label+'</span></span>' 2713 pdpTemplate += '</div></div>' 2714 2715 pdpTemplate += '<div class="recurpay__offer_wrapper recurpay__offer_subscription">'+recurpay.settings.translations.premium_subscription_saving_icon+'' 2716 pdpTemplate += '<div class="recurpay__offer_message recurpay__offer_message_subscription">' 2717 pdpTemplate += '<span>'+recurpay.settings.translations.premium_subscription_saving_msg+'</span>' 2718 pdpTemplate += '<span class="recurpay__offer_saving_message">'+recurpay.settings.translations.premium_subscription_discount_label+'' 2719 pdpTemplate += '<span class="recurpay__offer_saving_message_text">'+recurpay.settings.translations.premium_subscription_saving_label+'</span>' 2720 pdpTemplate += '</span></div></div>' 2721 pdpTemplate += '</div></div>' 2722 2723 pdpTemplate += '<div class="recurpay__widget_container recurpay__widget_container--selected" data-type="onetime-purchase">' 2724 pdpTemplate += '<input class="recurpay__onetime_radio recurpay__group_input" name="recurpay__group_main" type="radio" autocomplete="off" value="one-time" checked>' 2725 pdpTemplate += '<div for="recurpay__onetime_radio" class="recurpay__group_label">' 2726 pdpTemplate += '<div class="recurpay__group_header">' 2727 pdpTemplate += '<div class="recurpay__radio_group">' 2728 pdpTemplate += '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1"></circle><circle cx="12" cy="12" r="6" fill="currentColor" class="recurpay__radio_svg"></circle></svg>' 2729 pdpTemplate += '</div><div class="recurpay__group_title">'+recurpay.settings.translations.premium_onetime_label+'</div>' 2730 pdpTemplate += '<div class="recurpay__group_price_wrapper"><div class="recurpay__group_selling_price"></div>' 2731 pdpTemplate += '</div></div></div></div></div>' 2732 2733 pdpTemplate += '<input type="hidden" class="recurpay_plan_name" name="" value="">'; 2734 pdpTemplate += '<input type="hidden" class="recurpay_plan_id" name="" value="">'; 2735 pdpTemplate += '<input type="hidden" class="recurpay_purchase_data" name="" value="">'; 2736 if(recurpay.checkout == "shopify"){ 2737 pdpTemplate += '<input type="hidden" class="recurpay_selling_plan_id" name="" value="">'; 2738 } 2739 pdpTemplate = pdpTemplate.replaceAll('[[SAVING_AMOUNT]]', '<span class="recurpay__offer_saving_message_amount recurpay__saving_amount"></span>'); 2740 pdpTemplate = pdpTemplate.replaceAll('[[DISCOUNT_PERCENTAGE]]', '<span class="recurpay__offer_saving_message_amount_text"></span>'); 2741 2742 return pdpTemplate; 2743 } 2744 if($(pdpSelector).length <= 0){ 2745 if (window.location.href.indexOf("/products/") > -1) { 2746 if($(atcFormSelector).find(atcSelector).filter(':visible').length){ 2747 if($(atcFormSelector).find(atcSelector).filter(':visible').first().parent().css('display') == 'flex' && $(atcFormSelector).find(atcSelector).filter(':visible').first().parent().css('flex-direction') == 'row'){ 2748 $(atcFormSelector).find(atcSelector).filter(':visible').first().parent().before('<div class="recurpay-pdp-widget" data-product-id="'+recurpay.product.id+'" data-product-available="'+recurpay.product.available+'" data-default-variant="'+recurpay.product.availableVariant+'" data-only-subscription="'+recurpay.product.onlySubscription+'"></div>'); 2749 }
2750 else if($(atcFormSelector).find(atcSelector).filter(':visible').first().parent().css('display') == 'grid' || $(atcFormSelector).find(atcSelector).filter(':visible').first().parent().css('display') == 'inline-grid'){ 2751 $(atcFormSelector).find(atcSelector).filter(':visible').first().parent().before('<div class="recurpay-pdp-widget" data-product-id="'+recurpay.product.id+'" data-product-available="'+recurpay.product.available+'" data-default-variant="'+recurpay.product.availableVariant+'" data-only-subscription="'+recurpay.product.onlySubscription+'"></div>'); 2752 } 2753 else{ 2754 $(atcFormSelector).find(atcSelector).filter(':visible').first().before('<div class="recurpay-pdp-widget" data-product-id="'+recurpay.product.id+'" data-product-available="'+recurpay.product.available+'" data-default-variant="'+recurpay.product.availableVariant+'" data-only-subscription="'+recurpay.product.onlySubscription+'"></div>'); 2755 } 2756 if($(pdpSelector).parent().css('position') == 'fixed' || $(pdpSelector).parent().css('position') == 'sticky' || $(pdpSelector).parent().css('position') == 'absolute' ){ 2757 $(pdpSelector).parent().addClass("recurpay-z-index"); 2758 } 2759 } 2760 else if($(atcFormSelector).find(atcSelector).length){ 2761 if($(atcFormSelector).find(atcSelector).first().parent().css('display') == 'flex' && $(atcFormSelector).find(atcSelector).filter(':visible').first().parent().css('flex-direction') == 'row'){ 2762 $(atcFormSelector).find(atcSelector).first().parent().before('<div class="recurpay-pdp-widget" data-product-id="'+recurpay.product.id+'" data-product-available="'+recurpay.product.available+'" data-default-variant="'+recurpay.product.availableVariant+'" data-only-subscription="'+recurpay.product.onlySubscription+'"></div>'); 2763 } 2764 else{ 2765 $(atcFormSelector).find(atcSelector).first().before('<div class="recurpay-pdp-widget" data-product-id="'+recurpay.product.id+'" data-product-available="'+recurpay.product.available+'" data-default-variant="'+recurpay.product.availableVariant+'" data-only-subscription="'+recurpay.product.onlySubscription+'"></div>'); 2766 } 2767 if($(pdpSelector).parent().css('position') == 'fixed' || $(pdpSelector).parent().css('position') == 'sticky' || $(pdpSelector).parent().css('position') == 'absolute' ){ 2768 $(pdpSelector).parent().addClass("recurpay-z-index"); 2769 } 2770 } 2771 else{ 2772 $(atcFormSelector).append('<div class="recurpay-pdp-widget" data-product-id="'+recurpay.product.id+'" data-product-available="'+recurpay.product.available+'" data-default-variant="'+recurpay.product.availableVariant+'" data-only-subscription="'+recurpay.product.onlySubscription+'"></div>') 2773 } 2774 } 2775 } 2776 if($(pdpSelector).length){ 2777 recurpay.allProducts = []; 2778 for(i=0; i<$(pdpSelector).length; i++){ 2779 if($(pdpSelector).eq(i).attr("data-product-id") != undefined && $(pdpSelector).eq(i).attr("data-product-available") != undefined ){ 2780 recurpay.allProducts.push($(pdpSelector).eq(i).attr("data-product-id")); 2781 } 2782 } 2783 $.ajax({
2784 url: recurpay.pdpAPI, 2785 type: 'POST', 2786 async:true, 2787 data: {"products": recurpay.allProducts,"settings": true}, 2788 success: function(response) { 2789 if(response != "ERROR") { 2790 if(response.plans.length > 0){ 2791 recurpay.productDatas = response.plans; 2792 if(response.settings.translations !== null && !$.isEmptyObject(response.settings.translations)){ 2793 recurpay.settings = response.settings; 2794 document.documentElement.style.setProperty('--recurpay_primary_color', recurpay.settings.snippet_color_codes.subscription_brand_color); 2795 document.documentElement.style.setProperty('--recurpay_secondary_color', recurpay.settings.snippet_color_codes.subscription_secondary_color); 2796 document.documentElement.style.setProperty('--recurpay_button_text_color', recurpay.settings.snippet_color_codes.subscription_button_text_color); 2797 document.documentElement.style.setProperty('--recurpay_button_bg_color', recurpay.settings.snippet_color_codes.subscription_button_color); 2798 document.documentElement.style.setProperty('--recurpay_savings_bg_color', hexToRgbA(recurpay.settings.snippet_color_codes.subscription_brand_color)); 2799 } 2800 $(response.plans).each(function(){ 2801 var pdpHTML = ''; 2802 var $this = $(this); 2803 if($this[0].product.plans.length >0){ 2804 pdpHTML = recurPDP($this[0].product); 2805 var getElem = $('.recurpay-pdp-widget[data-product-id="'+$this[0].product.id+'"]'); 2806 if($(getElem).length && $(getElem).attr("data-product-available") == "true"){ 2807 $(getElem).html(pdpHTML); 2808 if($(getElem).attr("data-only-subscription") == "true"){ 2809 $(getElem).find(".recurpay__widget[data-recurpay-widget]").addClass("recurpay_only_subscription_widget"); 2810 } 2811 if((window.location.href.indexOf("/products/") > -1) && (window.location.href.indexOf("snippet_status=false") > -1)){ 2812 $(getElem).before("<span class='recurpay-preview-text'>You are previewing subscriptions currently and the option below is not visible to customers on your live store. <a href='"+recurpay.domainURL+"/home?step=go_live' class='recurpay-preview-link' target='_blank'>Click here</a> if you are ready to show it your customers now.</span>") 2813 } 2814 if($(getElem).is(":hidden") || $(getElem).width() < 220){ 2815 logEvent("product_widget","Product snippet added but needs a reverification", "warning"); 2816 } 2817 } 2818 var params = new Proxy(new URLSearchParams(window.location.search), { 2819 get: (searchParams, prop) => searchParams.get(prop), 2820 }); 2821 2822 if(params.variant !== undefined && params.variant !== null){ 2823 var variant_id = parseInt(params.variant); 2824 let variant_data = []; 2825 variant_data.push(...$this[0].product.variants.filter(function(searchId) { 2826 return parseInt(searchId.id) == variant_id; 2827 })); 2828 if(variant_data.length >=1){ 2829 recurpay.product.selectedVariant = params.variant 2830 recurDiscountedPrice(recurpay.product.selectedVariant); 2831 } 2832 else{ 2833 recurpay.product.selectedVariant = $this[0].product.variants[0].id; 2834 recurDiscountedPrice($this[0].product.variants[0].id); 2835 } 2836 } 2837 else{ 2838 if(recurpay.product.availableVariant !== "" && recurpay.product.availableVariant !== undefined){ 2839 recurpay.product.selectedVariant = recurpay.product.availableVariant; 2840 recurDiscountedPrice(recurpay.product.availableVariant); 2841 } 2842 else{ 2843 recurpay.product.selectedVariant = $this[0].product.variants[0].id; 2844 recurDiscountedPrice($this[0].product.variants[0].id); 2845 } 2846 } 2847 } 2848 }); 2849 if(response.settings.sell_only_as_subscription !== undefined && response.settings.sell_only_as_subscription !== null){ 2850 if(response.settings.sell_only_as_subscription == true){ 2851 updateSelectors(true); 2852 } 2853 else{ 2854 updateSelectors(); 2855 } 2856 } 2857 } 2858 } 2859 } 2860 }); 2861 } 2862 else{ 2863 if((window.location.href.indexOf("/products/") > -1) && (window.location.href.indexOf("recurpay_preview=true") > -1)){ 2864 var modalHTML = ""; 2865 modalHTML += '<div class="recurpay-modal-container" data-recurpay-visibility-modal>' 2866 modalHTML += '<div class="recurpay-modal--overlay"></div>' 2867 modalHTML += '<div class="recurpay-modal-inner-container">' 2868 modalHTML += '<div class="recurpay-modal-content">' 2869 modalHTML += '<div class="recurpay-modal-header">' 2870 modalHTML += '<div class="recurpay-modal-image">' 2871 modalHTML += '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="0 0 600 600" xml:space="preserve"><g id="LEFT_ARM_1"><g id="XMLID_46_"><path id="XMLID_290_" fill="#FFB96C" d="M294.4,485.5c-1.2,0.3-2.4,0.4-3.6,0.4c-0.2,0-0.4,0-0.6,0c-8.4-0.3-16.2-6.9-21-15.7 c-21.3-39.2-27.1-63.4-34.8-89.9c-1.9-6.6-1.4-13.3,1.4-18.1c2.2-3.7,5.7-6.4,10.5-6.9
2871c0.6-0.1,1.1-0.1,1.7-0.1 c8.5,0,17.4,6.8,20.9,15.6l36.5,89.4C310,471.5,305,483.1,294.4,485.5z"></path><path id="XMLID_280_" fill="#FCAF63" d="M290.2,485.9c-8.4-0.3-16.2-6.9-21-15.7c-21.3-39.2-27.1-63.4-34.8-89.9 c-1.9-6.6-1.4-13.3,1.4-18.1c9.5,23,40.7,98.5,50.3,116.1C287.6,481.1,289,483.6,290.2,485.9z"></path></g></g><g id="LEFT_ARM_2"><g id="XMLID_10_"><g id="XMLID_42_"><path id="XMLID_293_" fill="#FFB96C" d="M340.2,472c-0.9,2.3-2.1,4.1-3.3,5c-7.2,5.7-14.3,7-26.2,9.6c-11.9,2.6-24.2,2-29.9-3.4 c-1.9-1.8-3.3-3.8-4.1-5.9c-2.5-6-0.3-12.3,6.8-15c4.2-1.6,42.4-10.6,48.7-9.4C343.1,455,342.9,465.3,340.2,472z"></path><path id="XMLID_279_" fill="#FCAF63" d="M340.2,472c-0.9,2.3-2.1,4.1-3.3,5c-7.2,5.7-14.3,7-26.2,9.6c-11.9,2.6-24.2,2-29.9-3.4 c-1.9-1.8-3.3-3.8-4.1-5.9c3.2,0.9,9.6,2.1,20.5,0.9C306.4,477.2,325.3,474.3,340.2,472z"></path></g><g id="XMLID_41_"><path id="XMLID_49_" fill="#FEA691" d="M330.2,453.6c-11.9,4-10.6,11.9-8.8,19.6c1.8,7.7,16.6,27.5,21.1,28.5s4.8-0.8,3.6-4.5 c-1.2-3.7-9.7-16.6-9.7-16.6s9.4,12.8,13.3,16.6c3.9,3.8,7.2,3.5,7.1-0.7c-0.2-4.2-9.5-18.3-9.5-18.3s8.2,10.8,11.6,14.5 s7.9,3.1,6.3-1.9c-1.5-5-8.3-15.9-8.3-15.9s6.6,11,11,12.1c4.4,1.1,1.7-5.5-3-13.9C360.3,464.5,345,448.6,330.2,453.6z"></path><path id="XMLID_50_" fill="#FEA691" d="M320.2,464.6c0,0-2.5,9.8-0.9,18.4s4.3,10.3,6.1,10.7s2.4-1.9,1.5-5.6 c-0.9-3.7,1.5-11,1.5-11S325.8,462.4,320.2,464.6z"></path></g></g></g><g id="BODY"><g id="XMLID_70_"><path id="XMLID_45_" fill="#FEC272" d="M273.1,496H172.2c0,0-13.9-97.2-5.1-121.1c2.5-6.8,5.8-12.3,9.6-16.9 c9.5-11.6,21.7-16.9,30-19c10.9-2.8,20.4-2.9,28.6-0.9c21.8,5.2,33.9,25.1,37.8,46.8C278.5,414.8,273.1,496,273.1,496z"></path><path id="XMLID_43_" fill="#F9B35F" d="M207.6,358.5c-13.2,3.4-25.3,3-31-0.5c9.5-11.6,21.7-16.9,30-19 c10.9-2.8,20.4-2.9,28.6-0.9C237,344.9,224.6,354.1,207.6,358.5z"></path></g></g><g id="RIGHT_ARM_1"><g id="XMLID_16_"><path id="XMLID_278_" fill="#FFCD92" d="M199,381.3c0,1.6-0.1,3.2-0.4,4.7c-4.1,26.6-27.7,90.6-27.7,90.6c-1.7,5.1-5.3,8.9-9.7,11 c-4.4,2-9.5,2.4-14.4,0.5c-7.6-3-11.2-10.2-11.2-18.1c0-1.7,0.2-3.4,0.5-5.1c6.9-37.3,19.2-68.2,29.3-90 c4.4-9.6,15.2-15.6,24.7-10.8c2.9,1.4,4.9,3.7,6.4,6.3C198.3,373.6,199,377.4,199,381.3z"></path><path id="XMLID_273_" fill="#FCB765" d="M199,381.3c0,1.6-0.1,3.2-0.4,4.7c-4.1,26.6-27.7,90.6-27.7,90.6c-1.7,5.1-5.3,8.9-9.7,11 l35.2-117.3C198.3,373.6,199,377.4,199,381.3z"></path></g></g><g id="RIGHT_ARM_2"><g id="XMLID_17_"><g id="XMLID_20_"><path id="XMLID_285_" fill="#FFCD92" d="M230.5,487.4c-2.2,5.4-9.4,5.6-9.4,5.6s-20.2,1.2-37.7,1.2c-17.5,0-34.7,0-41.7-7.9 c-1.4-1.6-2.5-3.4-3.1-5.3c-2.6-7.3,0.7-16,11.1-20.4c7.5-3.2,16.1-2.1,25.5-1.2c9.4,0.9,27.5,5.1,38,7.9 c10.6,2.7,16.9,5.4,17.8,15.4C231.3,484.6,231,486.1,230.5,487.4z"></path><path id="XMLID_284_" fill="#FCB765" d="M230.5,487.4c-2.2,5.4-9.4,5.6-9.4,5.6s-20.2,1.2-37.7,1.2c-17.5,0-34.7,0-41.7-7.9 c-1.4-1.6-2.5-3.4-3.1-5.3c7.8,2.4,18.3,5.2,26.7,5.9C189,488.9,220.4,487.9,230.5,487.4z"></path></g><g id="XMLID_2_"><g id="XMLID_18_"><path id="XMLID_47_" fill="#FEA691" d="M251.6,471.3c0,1.6-0.2,3.3-0.6,5.1c-2.1,8.6-13.2,15.2-30.1,16.1 c-7.5,0.4-12.6,0.4-16-0.4c-4.4-1.1-6.1-3.7-6.5-9.1c-0.5-6.9,4.7-13.2,8.6-15.9c11.7-7.9,22.6-8.5,32.1-7.6 C247.6,460.4,251.5,465.1,251.6,471.3z"></path><path id="XMLID_44_" fill="#FC8172" d="M251.6,471.3c0,1.6-0.2,3.3-0.6,5.1c-2.1,8.6-13.2,15.2-30.1,16.1 c-7.5,0.4-12.6,0.4-16-0.4c-0.4-1-0.7-2.2-0.8-3.7c-0.5-5.9,4.4-11.4,8.2-13.7c11.1-6.8,21.5-7.4,30.5-6.5 C246.8,468.5,249.7,469.6,251.6,471.3z"></path></g><g id="XMLID_19_"><path id="XMLID_48_" fill="#C7DCF9" d="M264.7,488.7c0,1.1-0.2,2.1-0.5,3.2h-55c-0.3-1-0.5-2.1-0.5-3.2c0-9.6,12.5-17.4,28-17.4 C252.2,471.3,264.7,479.1,264.7,488.7z"></path><path id="XMLID_254_" opacity="0.55" fill="#C7DCF9" d="M263.5,490.2c0,0.6-0.1,1.1-0.4,1.7h-50.3c-0.3-0.6-0.4-1.1-0.4-1.7 c0-5.1,11.4-9.3,25.5-9.3C252.1,480.9,263.5,485.1,263.5,490.2z"></path></g><g id="XMLID_37_"><path id="XMLID_28_" fill="#FEA691" d="M252.6,456.6c3.6,0.4,6.1,2.7,7.5,7.5c1.4,4.8,1.7,11.9,0.2,14.4 c-1.5,2.5-4.3,3.6-7.4,1.1c-3.1-2.5-4.8-9.5-5.8-13C245.9,462,244.5,455.8,252.6,456.6z"></path><g id="XMLID_4_"><path id="XMLID_38_" fill="#FEA691" d="M239.2,454.3c3.9,0.4,5.5,3.7,7,8.7c1.5,5,1.8,12.6,0.2,15.3c-1.6,2.6-4.6,3.8-7.9,1.2 c-3.3-2.6-5.2-10.1-6.2-13.8C231,460.8,230.4,453.5,239.2,454.3z"></path><path id="XMLID_79_" fill="#FF8D76" d="M243.1,480.8c-1.4,0.3-3,0-4.6-1.4c-3.3-2.6-5.1-10.1-6.2-13.8c-1.1-4-1.7-9.7,3-11.1 c-0.9,2.7-0.4,6.4,0.3,9.2c1,4.3,2.9,13,6.2,16C242.3,480.2,242.7,480.6,243.1,480.8z"></path></g><path id="XMLID_39_" fill="#FEA691" d="M224.6,456.6c3.9,0.4,6.5,2.9,8,7.9s1.8,12.6,0.2,15.3c-1.6,2.6-4.6,3.8-7.9,1.2 c-3.3-2.6-5.2-10.1-6.2-13.8C217.4,462.3,215.9,455.7,224.6,456.6z"></path><path id="XMLID_81_" fill="#FF8D76" d="M228.5,482.4c-1.1,0-2.3-0.5-3.5-1.5c-3.3-2.6-5.1-10.1-6.2-13.8 c-1-3.8-2.2-8.6,1.5-10.2c-0.3,2.5,0.4,5.7,1.1,8.3c1.2,4.5,3.3,13.7,7,17C228.4,482.4,228.4,482.4,228.5,482.4z"></path><path id="XMLID_40_" fill="#FEA691" d="M211.5,459.4c3.4-1,6,2.7,7.3,7.3c1.3,4.6,1.7,11.6,0.2,14c-1.4,2.4-4.2,3.5-7.2,1.1 c-3-2.4-3.8-7-4.7-10.4C205.9,467,204.9,461.4,211.5,459.4z"></path><path id="XMLID_82_" fill="#FF8D76" d="M215.2,483.2c-1.1,0-2.2-0.4-3.4-1.4c-3-2.4-3.8-7-4.7-10.4c-1.1-3.8-1.9-8.5,2.1-11 c-0.3,2.7,0.2,5.6,0.7,8.2c0.9,4.6,1.6,10.9,5,14.3C215,483,215.1,483.1,215.2,483.2z"></path><path id="XMLID_78_" fill="#FF8D76" d="M256.8,480.9c-1.2,0.1-2.5-0.3-3.8-1.4c-3.1-2.5-4.8-9.5-5.8-13c-1-3.7-2.2-8.5,1.8-9.7 c0,2.2,0.5,4.7,1,6.9c1,4.5,2.9,13.5,6.1,16.7C256.4,480.6,256.6,480.8,256.8,480.9z"></path></g></g></g></g><g id="HEAD"><g id="XMLID_89_"><path id="XMLID_6_" fill="#FF8D76" d="M208.8,235c0,0,9.3-3.8,15.6,8.8c6.3,12.7-0.5,20.8-0.5,20.8S217.7,246.3,208.8,235z"></path><path id="XMLID_173_" fill="#FEA691" d="M215.2,350.9c-8.8,4.1-14.9-1.6-14.9-1.6l-5.5-11.9l-9.9-21.4c14.9-3.2,27.9-5.7,27.9-5.7 l2.3,9.5l4.3,17.7C219.2,337.6,224,346.9,215.2,350.9z"></path><path id="XMLID_171_" fill="#FF8D76" d="M215,319.9c-1.3,1.9-2.7,3.9-4.4,5.8c-4.3,5.1-10.5,9-15.9,11.7l-9.9-21.4 c14.9-3.2,27.9-5.7,27.9-5.7L215,319.9z"></path><ellipse id="XMLID_3_" transform="matrix(0.8545 -0.5194 0.5194 0.8545 -114.0092 131.008)" fill="#FEA691" cx="176.9" cy="269" rx="47.2" ry="57.7"></ellipse><path id="XMLID_12_" fill="#FF8D76" d="M217.4,308.8c-2.9,3.7-6.5,
28716.9-10.6,9.5c-22.3,13.5-53.7,2.4-70.3-24.8 c-16.4-26.9-12-59.6,9.7-73.4c-12.6,16.2-13.2,42.2,0.3,64.3c16.5,27.2,48,38.3,70.3,24.8C217,309.1,217.2,309,217.4,308.8z"></path><path id="XMLID_5_" fill="#283575" d="M157.2,309.5c0,0-17-13.4-21.3-37.4s0.5-33.7,20.2-45.3c19.7-11.5,34.4-7.4,34.4-7.4 s-14-10.5-36.9-6.6c-22.9,3.8-46.2,25.6-41.4,58.4C117.2,306.2,138,316.5,157.2,309.5z"></path><path id="XMLID_11_" fill="#F76F59" d="M177.8,246.8c-2.7,1.9,1.1,12,9.3,19.5c8.2,7.5,16.1,3.6,16.3-3.8 C203.6,254.9,187.1,240.2,177.8,246.8z"></path><path id="XMLID_7_" fill="#FF8D76" d="M137.5,291.4c0,0-16,15.7-1.6,29.4c13.8,13.1,31.2-4.5,31.2-4.5S142.7,303.2,137.5,291.4z"></path><path id="XMLID_250_" fill="#F76F59" d="M139.4,300.5c0,0-9,8.8-0.9,16.6c7.8,7.4,17.6-2.5,17.6-2.5S142.3,307.2,139.4,300.5z"></path></g></g><g id="HAIR"><g id="XMLID_84_"><path id="XMLID_8_" fill="#283575" d="M188.5,218.1c0,0,1.7-30.2-15.5-42.5c-19.4-13.8-30.3,6.1-23.9,22.4 c2.8,7.3,5.8,11.7,8.2,14.3c2.2,2.4,5.2,3.8,8.4,4L188.5,218.1z"></path><path id="XMLID_9_" fill="#283575" d="M122.7,192.6c-15.3,12.2-2.1,29.7,4.2,34.4c2.7,2,5.6,3.6,8.1,4.8c3.4,1.6,7.4,1.4,10.6-0.6 l21.6-13.7C167.2,217.6,143,176.5,122.7,192.6z"></path><path id="XMLID_51_" fill="#3C4E8E" d="M159,172.3c-4.8,0.6,0.5,9.8,7.5,11S171.3,170.8,159,172.3z"></path><path id="XMLID_61_" fill="#3C4E8E" d="M128.7,192.8c-2.8,3.2,4.5,7.3,10.4,5.3C145.1,196.2,134.9,185.8,128.7,192.8z"></path></g></g><g id="MOUTH"><g id="XMLID_83_"><path id="XMLID_177_" fill="#F76F59" d="M217.7,285c-0.5,1-1.2,1.9-2.2,2.7c-3.7,2.9-6.5,7.1-8.5,11.5c-1.8,3.9-6.4,8.5-10.7,5.2 c-0.5-0.4-1-0.8-1.4-1.4c-4.5-5.7-2.8-20.4,4.2-26.9c5.4-5,12.1-3.7,15.5-0.9C217.9,277.7,219.3,281.7,217.7,285z"></path><path id="XMLID_175_" fill="#FF6EA9" d="M217.7,285c-0.5,1-1.2,1.9-2.2,2.7c-3.7,2.9-6.5,7.1-8.5,11.5c-1.8,3.9-6.4,8.5-10.7,5.2 c0-6.3,2.3-13.7,6.7-17.7C208.1,282.1,214.1,282.7,217.7,285z"></path></g></g><g id="EYE_1"><g id="XMLID_14_"><path id="XMLID_86_" fill="#1C3177" d="M155.8,267.7c-3.2,0-5.7-1-5.9-1.1c-1.3-0.5-1.9-2-1.4-3.3c0.5-1.3,2-1.9,3.3-1.4 c0.1,0,5.6,2.2,8.6-1.1c3.9-4.1-0.2-9.4-0.3-9.6c-0.9-1.1-0.7-2.7,0.4-3.6c1.1-0.9,2.7-0.7,3.6,0.4c2.4,3.1,5.5,10.4,0,16.2 C161.6,266.9,158.5,267.7,155.8,267.7z"></path></g></g><g id="EYE_2"><g id="XMLID_15_"><path id="XMLID_85_" fill="#1C3177" d="M193,242.6c-5.1,0-9.4-3.8-9.7-4c-1.1-0.9-1.1-2.6-0.2-3.6c0.9-1,2.5-1.1,3.6-0.2 c0,0,4.6,3.9,8,2.4c1.5-0.7,0.4-3.8,0.3-3.9c-0.5-1.3,0.1-2.8,1.5-3.3c1.3-0.5,2.8,0.1,3.3,1.4c1.5,3.7,1.1,8.6-3,10.4 C195.5,242.4,194.2,242.6,193,242.6z"></path></g></g><g id="EYEBROW_1"><g id="XMLID_1_"><path id="XMLID_88_" fill="#1C3177" d="M142.4,261.7c-0.1,0-0.2,0-0.3,0c-1.4-0.2-2.4-1.4-2.3-2.8c0-0.3,0.7-6.3,4.9-12.4 c4.1-6.1,8.3-8.2,8.5-8.3c1.3-0.6,2.8-0.1,3.4,1.2c0.6,1.3,0.1,2.8-1.2,3.4c0,0-3.2,1.7-6.5,6.5c-3.4,5-4,10-4,10.1 C144.8,260.7,143.7,261.7,142.4,261.7z"></path></g></g><g id="EYEBROW_2"><g id="XMLID_13_"><path id="XMLID_87_" fill="#1C3177" d="M179,232.1c-0.7,0-1.5-0.3-2-0.9c-0.9-1.1-0.7-2.7,0.4-3.6c0.3-0.2,2.6-2.1,6.7-3.3 c4.1-1.2,7.5-1.1,7.6-1.1c1.4,0,2.5,1.2,2.5,2.6c0,1.4-1.3,2.5-2.6,2.5c0,0-2.7-0.1-6,0.9c-3.2,1-5,2.4-5,2.4 C180.1,231.9,179.6,232.1,179,232.1z"></path></g></g><g id="TABLE"><g id="XMLID_248_"><path id="XMLID_22_" fill="#99ADF9" d="M505.9,506.3H98.3c-4,0-7.2-3.2-7.2-7.2l0,0c0-4,3.2-7.2,7.2-7.2h407.6 c4,0,7.2,3.2,7.2,7.2l0,0C513.1,503,509.9,506.3,505.9,506.3z"></path><path id="XMLID_198_" fill="#789FEF" d="M505.2,506.3H157.1c-4,0-7.2-3.2-7.2-7.2l0,0c0-4,3.2-7.2,7.2-7.2h348.1 c4,0,7.2,3.2,7.2,7.2l0,0C512.5,503,509.2,506.3,505.2,506.3z"></path></g></g><g id="DESKTOP"><g id="XMLID_186_"><g id="XMLID_182_"><path id="XMLID_25_" fill="#E1ECFF" d="M457.6,444.7h-186c-3.3,0-5.9-3-5.3-6.3l19.8-118.7c0.4-2.6,2.7-4.5,5.3-4.5h186 c3.3,0,5.9,3,5.3,6.3L463,440.2C462.5,442.8,460.3,444.7,457.6,444.7z"></path><path id="XMLID_29_" fill="#C7DCF9" d="M461.6,444.7H278c-3.3,0-5.9-3-5.3-6.3l19.8-118.7c0.4-2.6,2.7-4.5,5.3-4.5h183.6 c3.3,0,5.9,3,5.3,6.3l-19.8,118.7C466.5,442.8,464.2,444.7,461.6,444.7z"></path><path id="XMLID_31_" fill="#B7D4F7" d="M442.2,432H302c-2.6,0-4.5-2.3-4.1-4.8l15.1-90.6c0.3-2,2.1-3.5,4.1-3.5h140.1 c2.6,0,4.5,2.3,4.1,4.8l-15.1,90.6C445.9,430.5,444.2,432,442.2,432z"></path></g><g id="XMLID_183_"><path id="XMLID_24_" fill="#E1ECFF" d="M382.3,484.5h-25.5c-2.4,0-4.2-2-4-4.4l6.7-66.5c0.2-2,1.9-3.6,4-3.6H389 c2.4,0,4.2,2,4,4.4l-6.7,66.5C386.1,483,384.4,484.5,382.3,484.5z"></path><path id="XMLID_26_" fill="#C7DCF9" d="M384.1,484.5h-23.4c-1.5,0-2.7-1.3-2.6-2.8l7-69.4c0.1-1.3,1.2-2.3,2.6-2.3h23.4 c1.5,0,2.7,1.3,2.6,2.8l-7,69.4C386.5,483.5,385.4,484.5,384.1,484.5z"></path></g><g id="XMLID_185_"><path id="XMLID_27_" fill="#E1ECFF" d="M424.7,491.8H318.5c-2.2,0-4-1.8-4-4V479c0-2.2,1.8-4,4-4h106.2c2.2,0,4,1.8,4,4v8.8 C428.7,490,426.9,491.8,424.7,491.8z"></path><path id="XMLID_30_" fill="#C7DCF9" d="M426.9,491.8H327c-2.3,0-4.2-1.9-4.2-4.2v-8.4c0-2.3,1.9-4.2,4.2-4.2h99.9 c2.3,0,4.2,1.9,4.2,4.2v8.4C431,489.9,429.2,491.8,426.9,491.8z"></path></g></g></g><g id="SIGN"><g id="XMLID_21_"><path id="XMLID_77_" fill="#ff9800" d="M501.5,298.7c-1,0.7-2.3,1.2-3.7,1.2H402c-4.8,0-7.8-5-5.6-9.3l34.8-66.9l12.8-24.6 c2.4-4.5,8.8-4.5,11.2,0l48.2,91.5C505,293.6,503.9,297,501.5,298.7z"></path><path id="XMLID_74_" fill="#ff9800" d="M501.5,298.7c-1,0.7-2.3,1.2-3.7,1.2H402c-4.8,0-7.8-5-5.6-9.3l34.8-66.9L420.6,280 c-0.9,4.8,2.4,9.3,7.3,9.9L501.5,298.7z"></path><g id="XMLID_32_"><g id="XMLID_34_"><path id="XMLID_35_" fill="#FFFFFF" d="M445.2,264.1l-5-35.8c-0.2-1.2,0.8-2.3,2-2.3h14.2c1.2,0,2.1,1.1,2,2.3l-5,35.8 c-0.1,1-1,1.7-2,1.7h-4.3C446.1,265.9,445.3,265.1,445.2,264.1z"></path></g><circle id="XMLID_33_" fill="#FFFFFF" cx="449.3" cy="279.1" r="7.1"></circle></g></g></g></svg>' 2872 modalHTML += '</div>' 2873 modalHTML += '<h1 class="recurpay-preview-title">You are previewing subscriptions option for this product</h1>' 2874 modalHTML += '<span class="recurpay-preview-subtext">Note: This is not visible to your customers</span>' 2875 modalHTML += '</div>' 2876 modalHTML += '<div class="recurpay-modal-body">' 2877 modalHTML += '<div class="recurpay-modal-body-content">' 2878 modalHTML += '<div class="recurpay-modal-alert-box"><span class="recurpay-modal-alert-text">Looks like the subscription option is not visible on your store due to some conflict with theme. Talk to us on <a href="'+recurpay.domainURL+'/home?theme=false" target="_blank" data-initiate-live-chat>Live Chat</a>
2878 to get it resolved instantly</span></div>' 2879 modalHTML += '</div></div>' 2880 modalHTML += '<div class="recurpay-modal-footer">' 2881 modalHTML += '<a href="javascript:void(0)" class="recurpay-modal-cancel-link"><button type="button" class="recurpay-modal-cancel-btn">Close</button></a>' 2882 modalHTML += '<a href="'+recurpay.domainURL+'/home?theme=false" target="_blank" class="recurpay-modal-chat-link"><button type="button" class="recurpay-modal-chat-btn" data-initiate-live-chat>Start a Live Chat</button></a>' 2883 modalHTML += '</div></div></div></div>' 2884 if($('[data-recurpay-visibility-modal]').length <= 0){ 2885 if($('body').length){ 2886 $('body').append(modalHTML); 2887 } 2888 else if($('html').length){ 2889 $('html').append(modalHTML); 2890 } 2891 } 2892 } 2893 if((window.location.href.indexOf("/products/") > -1)){ 2894 logEvent("product_widget","Failed to show product snippet", "critical"); 2895 } 2896 } 2897 2898 function recurProperties(elem){ 2899 var getParent = $(elem).parents(pdpSelector); 2900 if( $(getParent).find("[name='recurpay__group_main'][value='subscription']").is(":checked")){ 2901 var planName = $(getParent).find('[name="recurpay-input"] option:selected').attr('data-plan-name'), 2902 planId = $(getParent).find('[name="recurpay-input"] option:selected').attr('data-plan'); 2903 $(getParent).find('.recurpay_plan_name').attr("name","properties[Plan]").val(planName); 2904 $(getParent).find('.recurpay_plan_id').attr("name","properties[_PlanId]").val(planId); 2905 if(parseInt(recurpay.subscriptionInfluence && recurpay.subscriptionInfluenceCount) >=1){ 2906 $(getParent).find('.recurpay_purchase_data').attr("name","properties[_PurchaseData]").val(recurpay.subscriptionInfluenceCount); 2907 } 2908 $(getParent).find('.recurpay__description[data-description-id]').hide(); 2909 $(getParent).find('.recurpay__description[data-description-id="'+planId+'"]').show(); 2910 if(recurpay.checkout == "shopify"){ 2911 var sellingPlanId = $(getParent).find('[name="recurpay-input"] option:selected').attr('data-selling-plan'); 2912 $(getParent).find('.recurpay_selling_plan_id').attr("name","selling_plan").val(sellingPlanId); 2913 } 2914 } 2915 else{ 2916 $(getParent).find('.recurpay_plan_name').attr("name",""); 2917 $(getParent).find('.recurpay_plan_id').attr("name",""); 2918 $(getParent).find('.recurpay_purchase_data').attr("name",""); 2919 if(recurpay.checkout == "shopify"){ 2920 $(getParent).find('.recurpay_selling_plan_id').attr("name",""); 2921 } 2922 } 2923 offerSavings(getParent); 2924 } 2925 function addSubscription(btn){ 2926 var variantSelector = $(btn).parents(atcFormSelector).find('[name="id"]'), 2927 quantitySelector = $(btn).parents(atcFormSelector).find('[name="quantity"]'), 2928 subscriptionPlanId = $(btn).parents(pdpSelector).find('[name="recurpay-input"] option:selected').attr('data-plan'), 2929 subscriptionPlanName = $(btn).parents(pdpSelector).find('[name="recurpay-input"] option:selected').attr('data-plan-name'), 2930 subscriptionPlanType = $(btn).parents(pdpSelector).find('[name="recurpay-input"] option:selected').attr('data-plan-type'), 2931 planVariant = parseInt(variantSelector.val()), 2932 planQuantity = 1, 2933 planParams = {}; 2934 if(quantitySelector.length) { 2935 planQuantity = parseInt(quantitySelector.val()); 2936 } 2937 2938 if(recurpay.checkout == "shopify"){ 2939 var sellingPlanId = $(btn).parents(pdpSelector).find('[name="recurpay-input"] option:selected').attr('data-selling-plan'); 2940 planParams = { 2941 id: planVariant, 2942 quantity: planQuantity, 2943 selling_plan: sellingPlanId, 2944 properties: { 2945 'Plan': subscriptionPlanName, 2946 '_PlanId': subscriptionPlanId 2947 } 2948 } 2949 } 2950 else{ 2951 planParams = { 2952 id: planVariant, 2953 quantity: planQuantity, 2954 properties: { 2955 'Plan': subscriptionPlanName, 2956 '_PlanId': subscriptionPlanId 2957 } 2958 } 2959 } 2960 2961 if(recurpay.checkout == "recurpay" && !recurpay.prepaidMixedCart && subscriptionPlanType == "prepaid"){ 2962 $.getJSON('/cart', function(response) { 2963 response.items = []; 2964 response.items.push(planParams); 2965 recurCart(response); 2966 }); 2967 } 2968 else{ 2969 if (recurpay.action == "default" && $(atcFormSelector).find(atcSelector).length){ 2970 $(btn).parents(atcFormSelector).find(atcSelector).first().click(); 2971 } 2972 else{ 2973 $.ajax({
2974 type: 'POST', 2975 url: '/cart/add.js', 2976 dataType: 'json', 2977 data: planParams, 2978 success: function() { 2979 if (recurpay.checkout == "recurpay" && recurpay.action == "checkout"){ 2980 $.getJSON('/cart', function(response) { 2981 recurCart(response); 2982 }); 2983 } 2984 else if(recurpay.action == "cart"){ 2985 document.location.href = '/cart'; 2986 } 2987 else{ 2988 document.location.href = '/checkout'; 2989 } 2990 }, 2991 error: function(xhr, status, error) { 2992 var err = eval("(" + xhr.responseText + ")"); 2993 $('[data-recurpay-error]') 2994 .html(err.description) 2995 .show().delay(3000).fadeOut(); 2996 } 2997 }); 2998 } 2999 } 3000 } 3001 3002 $(document).on('change',"[name='recurpay__group_main']", function(e) { 3003 var $this = $(this); 3004 $this.parents(pdpSelector).find('.recurpay__widget_container').removeClass("recurpay__widget_container--selected"); 3005 var checkVal = $this.val(); 3006 if($this.is(":checked")){ 3007 $this.parents('.recurpay__widget_container').addClass("recurpay__widget_container--selected"); 3008 } 3009 if(checkVal == "subscription"){ 3010 recurpay.subscriptionInfluence = true; 3011 recurpay.subscriptionInfluenceCount = recurpay.subscriptionInfluenceCount + 1; 3012 $this.parents(atcFormSelector).find(atcSelector).addClass("recurpay-hide"); 3013 $this.parents(atcFormSelector).find(buynowSelector).addClass("recurpay-hide"); 3014 $this.parents(pdpSelector).find('.recurpay__plans').show(); 3015 $this.parents(pdpSelector).find('.recurpay__group_content_wrapper').slideDown(); 3016 } 3017 else{ 3018 $this.parents(atcFormSelector).find(atcSelector).removeClass("recurpay-hide"); 3019 $this.parents(atcFormSelector).find(buynowSelector).removeClass("recurpay-hide"); 3020 $this.parents(pdpSelector).find('.recurpay__plans').hide(); 3021 $this.parents(pdpSelector).find('.recurpay__group_content_wrapper').slideUp(); 3022 } 3023 recurProperties($this); 3024 }); 3025 3026 $(document).on('change',"[name='recurpay-input']", function(e) { 3027 var getId = $(this).parents(atcFormSelector).find('input[name="id"], select[name="id"], input#SelectedId').val(); 3028 recurDiscountedPrice(getId); 3029 recurProperties($(this)); 3030 }); 3031 3032 $(document).on('click',".recurpay__group_label", function(e) { 3033 $(this).parents('.recurpay__widget_container').find('[name="recurpay__group_main"]').prop("checked",true).change(); 3034 }); 3035 3036 $(document).on('click',".recurpay-modal-cancel-btn", function(e) { 3037 $('[data-recurpay-visibility-modal]').hide(); 3038 }); 3039 3040 function updateSelectors(only_subscription){ 3041 for(r=0; r<$(pdpSelector).length; r++){ 3042 if($(pdpSelector).eq(r).attr("data-only-subscription") == "true" || only_subscription == true){ 3043 $(pdpSelector).eq(r).attr("data-only-subscription",true); 3044 $(pdpSelector).eq(r).find(".recurpay__widget[data-recurpay-widget]").addClass("recurpay_only_subscription_widget"); 3045 $(pdpSelector).eq(r).find("[name='recurpay__group_main'][value='subscription']").prop("checked",true).change(); 3046 } 3047 else{ 3048 if(recurpay.subscriptionFirst == true){ 3049 $(pdpSelector).eq(r).find("[name='recurpay__group_main'][value='subscription']").prop("checked",true).change(); 3050 } 3051 } 3052 } 3053 } 3054 3055 $(document).on('click',"[data-recurpay-action]", function(e) { 3056 e.preventDefault(); 3057 e.stopPropagation(); 3058 addSubscription($(this)); 3059 }); 3060 3061 if(recurpay.checkout == "recurpay"){ 3062 $(document).on('click', checkoutSelector, function(e) { 3063 e.preventDefault(); 3064 e.stopPropagation(); 3065 $.getJSON('/cart', function(response) { 3066 recurCart(response); 3067 }) 3068 }); 3069 if($(recurpay.checkout_btn_override_class).length){ 3070 document.addEventListener("click", handler, true); 3071 function handler(e) { 3072 if($(e.target).is(recurpay.checkout_btn_override_class)){ 3073 e.stopPropagation(); 3074 e.preventDefault(); 3075 $.getJSON('/cart', function(response) { 3076 recurCart(response); 3077 }); 3078 } 3079 } 3080 } 3081 } 3082 } 3083 //Append jQuery if it is not there, then call to recurpaySubscription 3084 //Otherwise directly call to recurpaySubscription 3085 if ((typeof(jQuery) == 'undefined')) { 3086 initScript('//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js', function() { 3087 window.recurpayScript = jQuery.noConflict(true); 3088 recurpaySubscription(recurpayScript); 3089 }) 3090 } 3091 else { 3092 recurpaySubscription(jQuery); 3093 } 3094 })();
3095</script>
3095 3096<div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 3097 3098 3099<div style="position: fixed; bottom: 0; right: 0"></div> 3100
3101<script> 3102console.info("bitlogin extension version: v2.5.7"); 3103 3104const googleScript = document.createElement("script"); 3105googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 3106document.head.append(googleScript); 3107 3108const bitLoginBaseUrl = "https://api.bitbybit.studio"; 3109const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 3110 3111const appearance = {"style":"square","hasShadow":false,"colorScheme":"match","backgroundColor":"#FFFFFF","outlineColor":"#000000","textColor":"#000000","position":"top","hideDivider":false,"size":"small","format":"contentFlex","language":"en","buttonText":"Continue with","dividerText":"OR","redirectLink":"\/account","googleOneTap":false,"googleOneTapBanner":true,"captureAdditionalData":false,"customerTag":"bitLogin","redirectOneTapDesktop":null,"redirectOneTapMobile":null,"watermark":true,"domain":"c820c3-2.myshopify.com","buttonList":{"google":"Continue with Google","facebook":"Continue with Facebook","apple":"Continue with Apple","whatsapp":"Continue with WhatsApp","microsoft":"Continue with Microsoft","twitter":"Continue with Twitter","amazon":"Continue with Amazon"}}; 3112const config = [{"domain":"c820c3-2.myshopify.com","provider":"FACEBOOK","enabledMobile":true,"enabledWeb":false,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"c820c3-2.myshopify.com","provider":"GOOGLE","enabledMobile":true,"enabledWeb":false,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"c820c3-2.myshopify.com","provider":"APPLE","enabledMobile":true,"enabledWeb":false,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 3113const redirectUrl = appearance.redirectLink; 3114 3115let locationCacheSet = false; 3116let errorLocation = false; 3117let oneTapSet = false; 3118 3119let bitloginCache = { 3120 appearance: appearance, 3121 config: config 3122}; 3123 3124let isInitializing = false; 3125const queue = []; 3126 3127// Add CSS for the popup 3128const popupStyles = document.createElement('style'); 3129popupStyles.textContent = ` 3130 /* Styles for login popup */ 3131 .bitlogin-popup-overlay { 3132 position: fixed; 3133 top: 0; 3134 left: 0; 3135 width: 100%; 3136 height: 100%; 3137 background: rgba(0, 0, 0, 0.45); 3138 backdrop-filter: blur(4px); 3139 display: flex; 3140 align-items: center; 3141 justify-content: center; 3142 opacity: 0; 3143 transition: opacity 0.3s ease-in-out; 3144 z-index: 999999; 3145 } 3146 3147 .bitlogin-popup-overlay.visible { 3148 opacity: 1; 3149 } 3150 3151 .bitlogin-popup { 3152 background: #FFFFFF; 3153 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 3154 border-radius: 16px; 3155 width: 100%; 3156 max-width: 560px; 3157 display: flex; 3158 overflow: hidden; 3159 position: relative; 3160 opacity: 0; 3161 transform: translateY(20px) scale(0.98); 3162 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 3163 } 3164 3165 .bitlogin-popup.visible { 3166 opacity: 1; 3167 transform: translateY(0) scale(1); 3168 } 3169 3170 .bitlogin-popup-with-image { 3171 max-width: 640px; 3172 } 3173 3174 .bitlogin-popup-right-image { 3175 flex-direction: row-reverse; 3176 } 3177 3178 .bitlogin-popup-image { 3179 object-fit: cover; 3180 width: 50%; 3181 height: auto; 3182 } 3183 3184 .bitlogin-popup-content { 3185 padding: 32px; 3186 position: relative; 3187 width: 50%; 3188 } 3189 3190 .bitlogin-popup-close { 3191 position: absolute; 3192 top: 16px; 3193 right: 16px; 3194 background: white; 3195 border: none; 3196 width: 30px; 3197 height: 30px; 3198 display: flex; 3199 align-items: center; 3200 justify-content: center; 3201 cursor: pointer; 3202 transition: background-color 0.2s; 3203 color: inherit; 3204 padding: 0; 3205 } 3206 3207 .bitlogin-popup-close:hover { 3208 background-color: #e5e5e5; 3209 } 3210 3211 .bitlogin-popup-buttons { 3212 display: flex; 3213 flex-direction: column; 3214 gap: 12px; 3215 margin-top: 24px; 3216 } 3217 3218 /* Button styles within popup - override width for popup buttons */ 3219 .bitlogin-popup-buttons #google-login, 3220 .bitlogin-popup-buttons #facebook-login, 3221 .bitlogin-popup-buttons #apple-login, 3222 .bitlogin-popup-buttons #whatsapp-login, 3223 .bitlogin-popup-buttons #microsoft-login, 3224 .bitlogin-popup-buttons #twitter-login, 3225 .bitlogin-popup-buttons #amazon-login,
3226 .bitlogin-popup-buttons #instagram-login, 3227 .bitlogin-popup-buttons #magic-link-login, 3228 .bitlogin-popup-buttons #mobile-app-login { 3229 width: 100% !important; 3230 font-family: inherit !important; 3231 } 3232 3233 .bitlogin-popup-footer { 3234 margin-top: 32px; 3235 text-align: center; 3236 font-size: 14px; 3237 opacity: 0.6; 3238 } 3239 3240 /* Modern Typography */ 3241 .bitlogin-popup h2 { 3242 margin-top: 12px; 3243 font-size: 21px !important; 3244 line-height: 1.2 !important; 3245 font-weight: 700 !important; 3246 letter-spacing: -0.02em !important; 3247 margin-bottom: 16px !important; 3248 } 3249 3250 .bitlogin-popup-header { 3251 position: relative; 3252 margin-bottom: 24px; 3253 } 3254 3255 /* Modern gradient accent */ 3256 .bitlogin-popup-content > div { 3257 font-size: 16px !important; 3258 line-height: 1.2 !important; 3259 opacity: 0.85 !important; 3260 } 3261 3262 /* Enhanced button interactions */ 3263 .bitlogin-popup-buttons button { 3264 position: relative; 3265 overflow: hidden; 3266 } 3267 3268 @keyframes ripple { 3269 0% { 3270 transform: scale(0, 0); 3271 opacity: 0.5; 3272 } 3273 100% { 3274 transform: scale(100, 100); 3275 opacity: 0; 3276 } 3277 } 3278 3279 /* Responsive adjustments */ 3280 @media (max-width: 640px) { 3281 .bitlogin-popup { 3282 max-width: 90%; 3283 width: 90%; 3284 margin: 0 16px; 3285 } 3286 3287 .bitlogin-popup-with-image { 3288 flex-direction: column !important; 3289 } 3290 3291 .bitlogin-popup-image { 3292 width: 100%; 3293 height: 180px; 3294 } 3295 3296 .bitlogin-popup-content { 3297 padding: 24px; 3298 } 3299 3300 .bitlogin-popup h2 { 3301 font-size: 24px !important; 3302 } 3303 } 3304`; 3305 3306document.head.appendChild(popupStyles); 3307 3308// Add fonts link for different font options 3309const fontsLink = document.createElement('link'); 3310fontsLink.rel = 'stylesheet'; 3311fontsLink.href = 'https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600&family=Roboto:wght@400;500&family=Open+Sans:wght@400;500;600&family=Noto+Sans:wght@400;500;600&family=Lato:wght@400;700&family=Poppins:wght@400;500;600&family=Quicksand:wght@400;500;600&family=Raleway:wght@400;500;600&family=PT+Sans:wght@400;700&family=Oswald:wght@400;500;600&display=swap'; 3312document.head.appendChild(fontsLink); 3313 3314(async () => { 3315 try { 3316 let host = window.location.host; 3317 if (host === "admin.shopify.com") { 3318 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 3319 } 3320 3321 const urlSearchParams = new URLSearchParams(window.location.search); 3322 const checkoutUrl = urlSearchParams.get("checkout_url"); 3323 3324 async function init({ inputRef, index }) { 3325 if (isInitializing) { 3326 queue.push(() => init({ inputRef, index })); 3327 return; 3328 } 3329 3330 isInitializing = true; 3331 3332 try { 3333 let bitLoginSectionRoot = document.querySelector( 3334 `.bitlogin-root[data-index="${index}"]` 3335 ); 3336 3337 const formRef = inputRef?.closest( 3338 "form:not([action='/account/recover'])" 3339 ); 3340 3341 if (formRef && !bitLoginSectionRoot) { 3342 await getLocation(); 3343 3344 bitLoginSectionRoot = document.createElement(`div`); 3345 3346 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 3347 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 3348 3349 updateAppearance({ 3350 formRef, 3351 rootRef: bitLoginSectionRoot, 3352 host, 3353 }); 3354 } 3355 } catch (err) { 3356 console.error(`error while initiating bitlogin extensions`, err); 3357 } finally { 3358 // Release the lock 3359 isInitializing = false; 3360 3361 // Check if there are pending items in the queue 3362 if (queue.length > 0) { 3363 // Process the next function in the queue 3364 const nextFunction = queue.shift(); 3365 nextFunction(); 3366 } 3367 } 3368 } 3369 3370 function initAll() { 3371 return new Promise((resolve, reject) => { 3372 setTimeout(async () => { 3373 const inputRefs = document.querySelectorAll( 3374 'input[name="customer[email]"]' 3375 ); 3376 3377 for (let i = 0; i < inputRefs.length; i++) { 3378 const currentInputRef = inputRefs[i]; 3379 const isVisible = isElementVisible(currentInputRef); 3380 3381 if (isVisible) { 3382 await init({ inputRef: currentInputRef, index: i }); 3383 } 3384 } 3385 3386 resolve("ok"); 3387 }, 100); 3388 }); 3389 } 3390 3391 const observer = new MutationObserver((mutationsList) => { 3392 for (let mutation of mutationsList) { 3393 initAll(); 3394 } 3395 }); 3396 3397 observer.observe(document.body, { 3398 childList: true, 3399 subtree: true, 3400 attributes: true, 3401 }); 3402 3403 initAll(); 3404 3405 if (appearance.googleOneTap) { 3406 setupOneTap({ host, checkoutUrl }); 3407 } 3408 3409 // Initialize popup 3410 await initPopup(host); 3411 } catch (error) { 3412 console.error("Error initializing BitLogin:", error); 3413 } 3414})(); 3415 3416async function initPopup(host) { 3417 // Check if user is already logged in using Liquid checks properly 3418 const isLoggedIn = false || 3419 document.querySelector('.customer-logout-link') || 3420 document.querySelector('.account-link') || 3421 window.location.pathname.includes('/account'); 3422 3423 if (isLoggedIn) { 3424 return; // User is logged in, don't show popup 3425 } 3426 3427 try { 3428 // Fetch the popup configuration 3429 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 3430 .then(res => res.json()) 3431 .catch(err => { 3432 console.error('Error fetching popup configuration:', err); 3433 return null; 3434 }); 3435 3436 if (!popupConfig || !popupConfig.enabled) { 3437 return;
3437 // Don't show popup if disabled or config not found 3438 } 3439 3440 // Create popup after 10 seconds 3441 setTimeout(() => { 3442 // Check if user is still on the page and still not logged in 3443 if (document.visibilityState === 'visible') { 3444 // Additional check in case user logged in during the 10 second wait 3445 const currentlyLoggedIn = false || 3446 document.querySelector('.customer-logout-link') || 3447 document.querySelector('.account-link'); 3448 3449 if (!currentlyLoggedIn) { 3450 createLoginPopup(popupConfig, host); 3451 } 3452 } 3453 }, 10000); 3454 } catch (error) { 3455 console.error('Error initializing popup:', error); 3456 } 3457} 3458 3459function createLoginPopup(popupConfig, host) { 3460 // Font mapping 3461 const fontFamilyMap = { 3462 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 3463 montserrat: 'Montserrat, sans-serif', 3464 roboto: 'Roboto, sans-serif', 3465 open_sans: 'Open Sans, sans-serif', 3466 noto_sans: 'Noto Sans, sans-serif', 3467 lato: 'Lato, sans-serif', 3468 poppins: 'Poppins, sans-serif', 3469 quicksand: 'Quicksand, sans-serif', 3470 raleway: 'Raleway, sans-serif', 3471 pt_sans: 'PT Sans, sans-serif', 3472 oswald: 'Oswald, sans-serif', 3473 }; 3474 3475 // Create overlay 3476 const overlay = document.createElement('div'); 3477 overlay.className = 'bitlogin-popup-overlay'; 3478 3479 // Create popup container with appropriate styling 3480 const popup = document.createElement('div'); 3481 popup.className = 'bitlogin-popup'; 3482 3483 if (popupConfig.layout === 'default') { 3484 popup.style.maxWidth = '400px'; 3485 } 3486 3487 // Function to close the popup 3488 const closePopup = () => { 3489 overlay.classList.remove('visible'); 3490 popup.classList.remove('visible'); 3491 setTimeout(() => { 3492 if (document.body.contains(overlay)) { 3493 document.body.removeChild(overlay); 3494 } 3495 }, 300); 3496 }; 3497 3498 // Add click handler to the overlay to close when clicking outside 3499 overlay.addEventListener('click', (event) => { 3500 // Close only if clicking directly on the overlay, not its children 3501 if (event.target === overlay) { 3502 closePopup(); 3503 } 3504 }); 3505 3506 // Add escape key handler to close popup 3507 document.addEventListener('keydown', (event) => { 3508 if (event.key === 'Escape' && document.body.contains(overlay)) { 3509 closePopup(); 3510 } 3511 }); 3512 3513 // Create layout with image if specified 3514 let contentWrapper; 3515 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 3516 popup.classList.add('bitlogin-popup-with-image'); 3517 3518 if (popupConfig.layout === 'right') { 3519 popup.classList.add('bitlogin-popup-right-image'); 3520 } 3521 3522 // Add image 3523 const image = document.createElement('img'); 3524 image.className = 'bitlogin-popup-image'; 3525 image.src = popupConfig.popupImage; 3526 image.alt = 'Login'; 3527 image.loading = 'lazy'; 3528 popup.appendChild(image); 3529 3530 // Create content container 3531 contentWrapper = document.createElement('div'); 3532 contentWrapper.className = 'bitlogin-popup-content'; 3533 3534 if (popupConfig.layout === 'right') { 3535 const closeButton = document.createElement('button'); 3536 closeButton.className = 'bitlogin-popup-close'; 3537 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> 3538 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3539 </svg>`; 3540 closeButton.setAttribute('aria-label', 'Close'); 3541 closeButton.onclick = closePopup; 3542 3543 popup.appendChild(closeButton); 3544 } 3545 } else { 3546 contentWrapper = document.createElement('div'); 3547 contentWrapper.className = 'bitlogin-popup-content'; 3548 contentWrapper.style.width = '100%'; 3549 } 3550 3551 // Set background style 3552 if (popupConfig.backgroundTheme === 'gradient') { 3553 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 3554 } else { 3555 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 3556 } 3557 3558 // Apply font family 3559 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 3560 3561 if (popupConfig.layout !== 'right') { 3562 const closeButton = document.createElement('button'); 3563 closeButton.className = 'bitlogin-popup-close'; 3564 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> 3565 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3566 </svg>`; 3567 closeButton.setAttribute('aria-label', 'Close'); 3568 closeButton.onclick = closePopup; 3569 3570 contentWrapper.appendChild(closeButton); 3571 } 3572 3573 // Add heading with subtle animation effect 3574 const header = document.createElement('div'); 3575 header.className = 'bitlogin-popup-header'; 3576 3577 const heading = document.createElement('h2'); 3578 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
3578its'; 3579 heading.style.color = popupConfig.fontColor; 3580 header.appendChild(heading); 3581 3582 // Add body text with improved formatting 3583 const bodyText = document.createElement('div'); 3584 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 3585 bodyText.style.color = popupConfig.fontColor; 3586 header.appendChild(bodyText); 3587 3588 contentWrapper.appendChild(header); 3589 3590 // Create buttons container with modern styling 3591 const buttonsContainer = document.createElement('div'); 3592 buttonsContainer.className = 'bitlogin-popup-buttons'; 3593 3594 // Add social buttons 3595 const providerLabels = { 3596 'GOOGLE': 'Continue with Google', 3597 'FACEBOOK': 'Continue with Facebook', 3598 'APPLE': 'Continue with Apple', 3599 'WHATSAPP': 'Continue with WhatsApp', 3600 'MAGIC_LINK': 'Continue with Email', 3601 }; 3602 3603 // Add first login provider button 3604 if (popupConfig.loginProvider1 !== 'NONE') { 3605 const buttonConfig = { 3606 theme: popupConfig.colorScheme || 'match', 3607 customColor: popupConfig.textColor, 3608 format: 'contentFlex', 3609 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 3610 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 3611 style: popupConfig.style || 'rounded', 3612 size: popupConfig.size || 'medium', 3613 colorScheme: popupConfig.colorScheme || 'match', 3614 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 3615 textColor: popupConfig.textColor || '#FFFFFF', 3616 outlineColor: popupConfig.outlineColor || '#3B82F6', 3617 host: host 3618 }; 3619 3620 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 3621 3622 // Handle click event - this overrides the default click handler in createSocialLoginButton 3623 button1.onclick = () => { 3624 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 3625 closePopup(); 3626 }; 3627 3628 buttonsContainer.appendChild(button1); 3629 } 3630 3631 // Add second login provider button if enabled 3632 if (popupConfig.loginProvider2 !== 'NONE') { 3633 const buttonConfig = { 3634 theme: popupConfig.colorScheme || 'match', 3635 customColor: popupConfig.textColor, 3636 format: 'contentFlex', 3637 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 3638 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 3639 style: popupConfig.style || 'rounded', 3640 size: popupConfig.size || 'medium', 3641 colorScheme: popupConfig.colorScheme || 'match', 3642 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 3643 textColor: popupConfig.textColor || '#FFFFFF', 3644 outlineColor: popupConfig.outlineColor || '#3B82F6', 3645 host: host 3646 }; 3647 3648 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 3649 3650 // Handle click event - this overrides the default click handler in createSocialLoginButton 3651 button2.onclick = () => { 3652 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 3653 closePopup(); 3654 }; 3655 3656 buttonsContainer.appendChild(button2); 3657 } 3658 3659 contentWrapper.appendChild(buttonsContainer); 3660 3661 // Append content to popup 3662 popup.appendChild(contentWrapper); 3663 3664 // Append popup to overlay 3665 overlay.appendChild(popup); 3666 3667 // Append overlay to body 3668 document.body.appendChild(overlay); 3669 3670 // Trigger animation with slight delay for better perceived performance 3671 setTimeout(() => { 3672 overlay.classList.add('visible'); 3673 setTimeout(() => { 3674 popup.classList.add('visible'); 3675 }, 50); 3676 }, 10); 3677} 3678 3679window.addEventListener("load", () => { 3680 window.addEventListener("message", (event) => { 3681 const receivedData = event.data; 3682 3683 if (receivedData.type === "authorize") { 3684 post( 3685 JSON.parse( 3686 JSON.stringify({ 3687 "customer[email]": receivedData.email, 3688 "customer[password]": receivedData.password, 3689 form_type: "customer_login", 3690 utf8: "â", 3691 return_url: redirectUrl, 3692 }) 3693 ) 3694 ); 3695 } else if (receivedData.type === "rejected") { 3696 if (receivedData.reason === "customer_account_disabled") { 3697 showAlert( 3698 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 3699 ); 3700 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 3701 showAlert( 3702 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 3703 ); 3704 } else if (receivedData.reason === "customer_exist_email_not_set") { 3705 showAlert( 3706 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 3707 ); 3708 } 3709 } 3710 3711 if (receivedData.type === "customer_authenticated") { 3712 // Dispatch a custom event that merchants can listen for to implement their custom logic 3713 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 3714 detail: { 3715 provider: receivedData.provider, 3716 customer: receivedData.customer, 3717 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 3718 } 3719 }); 3720 3721 // Dispatch the event on the window object so merchants can listen for it 3722 window.dispatchEvent(customerAuthEvent); 3723 3724 } 3725 }); 3726}); 3727 3728// Reusable functions for social login buttons 3729function createSocialLoginButton(provider, config = {}) { 3730 const { 3731 theme = 'match', 3732 customColor = null, 3733 format = 'contentFlex', 3734 buttonText = null, 3735 hasShadow = true, 3736 style = 'rounded', 3737 size = 'medium', 3738 colorScheme = 'match', 3739 backgroundColor = '#3B82F6', 3740 textColor = '#FFFFFF', 3741 outlineColor = '#3B82F6', 3742 rootRef = null, 3743 host = null 3744 } = config; 3745 3746 // Create button element with appropriate ID and attributes 3747 const button = document.createElement('button'); 3748 button.id = `${provider.toLowerCase()}-login`; 3749 button.type = 'button'; 3750 3751 // Set the inner SVG based on provider 3752 switch (provider.toUpperCase()) { 3753 case 'GOOGLE': 3754 button.innerHTML = googleLoginIcon(theme, customColor); 3755 break; 3756 case 'FACEBOOK': 3757 button.innerHTML = facebookLoginIcon(theme, customColor); 3758 break; 3759 case 'APPLE': 3760 button.innerHTML = appleLoginIcon(theme, customColor); 3761 break; 3762 case 'WHATSAPP': 3763 button.innerHTML = whatsappLoginIcon(theme, customColor); 3764 break; 3765 case 'MICROSOFT': 3766 button.innerHTML = microsoftLoginIcon(theme, customColor); 3767 break; 3768 case 'TWITTER': 3769 button.innerHTML = twitterLoginIcon(theme, customColor); 3770 break; 3771 case 'AMAZON': 3772 button.innerHTML = amazonLoginIcon(theme, customColor); 3773 break; 3774 case 'INSTAGRAM': 3775 button.innerHTML = instagramLoginIcon(theme, customColor); 3776 break; 3777 case 'MAGIC_LINK': 3778 button.innerHTML = magicLinkLoginIcon(theme, customColor); 3779 break; 3780 case 'MOBILE_APP':
3781 button.innerHTML = mobileAppLoginIcon(theme, customColor); 3782 break; 3783 case 'LINKEDIN': 3784 button.innerHTML = linkedinLoginIcon(theme, customColor); 3785 break; 3786 } 3787 3788 // Add text if format isn't icon-only and buttonText is provided 3789 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 3790 button.innerHTML += `<p>${buttonText}</p>`; 3791 } 3792 3793 // Apply styling 3794 // Shadow 3795 if (hasShadow) { 3796 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 3797 button.style["box-shadow"] = shadowProperties; 3798 } 3799 3800 // Border radius 3801 const radiusProperties = 3802 style === "rounded" 3803 ? "8px" 3804 : style === "square" 3805 ? "0px" 3806 : style === "fullRounded" 3807 ? format === "wrapperFlexContainerOnlyLogo" 3808 ? "50%" 3809 : "50px" 3810 : undefined; 3811 button.style["border-radius"] = radiusProperties; 3812 3813 // Size 3814 const sizeProperties = 3815 size === "medium" 3816 ? "12px" 3817 : size === "small" 3818 ? "8px" 3819 : size === "large" 3820 ? "16px" 3821 : "8px"; 3822 3823 button.style["padding-block"] = sizeProperties; 3824 3825 // Format styling 3826 if (format) { 3827 if ( 3828 format === "contentFlexReverse" || 3829 format === "contentFlexCenterReverse" 3830 ) { 3831 const flexDir = `row-reverse`; 3832 button.style["flex-direction"] = flexDir; 3833 } 3834 3835 if ( 3836 format === "contentFlexCenter" || 3837 format === "contentFlexCenterReverse" 3838 ) { 3839 const justifyContent = `center`; 3840 button.style["justify-content"] = justifyContent; 3841 } else if ( 3842 format === "contentFlex" || 3843 format === "contentFlexReverse" 3844 ) { 3845 const buttonTextElement = button.querySelector("p"); 3846 if (buttonTextElement) { 3847 buttonTextElement.style["flex-grow"] = 1; 3848 buttonTextElement.style["text-align"] = "center"; 3849 } 3850 } 3851 3852 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 3853 rootRef.style["flex-direction"] = "row"; 3854 rootRef.style["gap"] = "8px"; 3855 rootRef.style["display"] = "flex"; 3856 rootRef.style["flex-wrap"] = "wrap"; 3857 3858 const sizeMapping = { 3859 small: "52px", 3860 medium: "62px", 3861 large: "72px", 3862 }; 3863 const buttonSize = sizeMapping[size] || "52px"; 3864 3865 button.style["margin"] = 0; 3866 button.style["width"] = buttonSize; 3867 button.style["height"] = buttonSize; 3868 button.style["display"] = "flex"; 3869 button.style["align-items"] = "center"; 3870 button.style["justify-content"] = "center"; 3871 3872 const svgElement = button.querySelector("svg"); 3873 if (svgElement) { 3874 svgElement.style["flex"] = "none"; 3875 } 3876 } 3877 } 3878 3879 // Color scheme styling 3880 if (colorScheme === "black") { 3881 button.classList.add("scheme-black"); 3882 } else if (colorScheme === "white") { 3883 button.classList.add("scheme-white"); 3884 } else if (colorScheme === "custom") { 3885 button.style["background-color"] = backgroundColor; 3886 button.style["color"] = textColor; 3887 button.style["border-color"] = outlineColor; 3888 3889 const darkenColor = (color, percentage) => { 3890 const value = parseInt(color.slice(1), 16); 3891 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 3892 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 3893 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 3894 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 3895 }; 3896 3897 button.addEventListener("mouseover", () => { 3898 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 3899 }); 3900 button.addEventListener("mouseout", () => { 3901 button.style["background-color"] = backgroundColor; 3902 }); 3903 } else if (colorScheme === "match") { 3904 button.classList.add("scheme-match"); 3905 } else if (colorScheme === "matchOutline") { 3906 button.classList.add("scheme-match-outline"); 3907 } 3908 3909 // Add click event listener if host is provided 3910 if (host) { 3911 button.addEventListener("click", () => 3912 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 3913 ); 3914 } 3915 3916 return button; 3917} 3918 3919function setupSocialLoginButtons(config, rootRef, data, host) { 3920 // Clear any existing content 3921 rootRef.innerHTML = ''; 3922 3923 const sortedEnabledProviders = config 3924 .filter(c => c.enabledWeb) 3925 .sort((a, b) => a.position - b.position); 3926
3927 sortedEnabledProviders.forEach(provider => { 3928 const key = provider.provider; 3929 const lowerKey = key.toLowerCase(); 3930 3931 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 3932 ? (lowerKey === 'twitter' 3933 ? data.buttonList.twitter.replace('Twitter', 'X') 3934 : data.buttonList[lowerKey]) 3935 : null; 3936 3937 const button = createSocialLoginButton(key, { 3938 theme: data.colorScheme || 'match', 3939 customColor: data.textColor, 3940 format: data.format, 3941 buttonText: buttonText, 3942 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 3943 style: data.style, 3944 size: data.size, 3945 colorScheme: data.colorScheme, 3946 backgroundColor: data.backgroundColor, 3947 textColor: data.textColor, 3948 outlineColor: data.outlineColor, 3949 rootRef: rootRef, 3950 host: host 3951 }); 3952 3953 rootRef.appendChild(button); 3954 }); 3955 3956 return rootRef; 3957} 3958 3959function updateAppearance({ formRef, rootRef, host }) { 3960 if (!formRef) return; 3961 3962 const data = bitloginCache.appearance || { 3963 style: "square", 3964 hasShadow: false, 3965 colorScheme: "match", 3966 backgroundColor: "#FFFFFF", 3967 outlineColor: "#000000", 3968 textColor: "#000000", 3969 position: "bottom", 3970 hideDivider: "false", 3971 dividerText: "OR", 3972 size: "small", 3973 format: "contentFlex", 3974 language: "en", 3975 buttonText: "Continue with", 3976 redirectLink: "/account", 3977 googleOneTap: true, 3978 googleOneTapBanner: true, 3979 customerTag: "bitLogin", 3980 redirectOneTapDesktop: null, 3981 redirectOneTapMobile: null, 3982 buttonList: { 3983 google: "Continue with Google", 3984 facebook: "Continue with Facebook", 3985 apple: "Continue with Apple", 3986 whatsapp: "Continue with WhatsApp", 3987 microsoft: "Continue with Microsoft", 3988 twitter: "Continue with X", 3989 amazon: "Continue with Amazon", 3990 instagram: "Continue with Instagram", 3991 magic_link: "Continue with Magic Link", 3992 mobile_app: "Continue with Mobile App", 3993 linkedin: "Continue with LinkedIn", 3994 }, 3995 }; 3996 3997 // Use the new setupSocialLoginButtons function to create and configure all buttons 3998 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 3999 4000 let divider; 4001 4002 if (!data.hideDivider) { 4003 divider = document.createElement("div"); 4004 const dividerStyle = "text-align:center;margin-block:16px"; 4005 divider.setAttribute("style", dividerStyle); 4006 divider.innerHTML = data.dividerText; 4007 } 4008 4009 if (data.position === "bottom") { 4010 if (divider) { 4011 formRef.appendChild(divider); 4012 } 4013 formRef.appendChild(rootRef); 4014 } else if (data.position === "top") { 4015 if (divider) { 4016 formRef.prepend(divider); 4017 } 4018 formRef.prepend(rootRef); 4019 } 4020} 4021 4022 4023async function onClickSocialLogin({ provider, host }) { 4024 const rand = Math.random().toString(); 4025 4026 const locationQueryString = bitloginCache.location 4027 ? `&${objectToQueryString(bitloginCache.location)}` 4028 : ""; 4029 4030 const width = 800; 4031 const height = 600; 4032 const left = (window.screen.width / 2) - (width / 2); 4033 const top = (window.screen.height / 2) - (height / 2) - 50; 4034 4035 if(provider === 'whatsapp') { 4036 window.open( 4037 `/apps/bitloyalty/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 4038 "mywindow", 4039 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 4040 ); 4041 } else { 4042 window.open( 4043 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 4044 "mywindow", 4045 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 4046 ); 4047 } 4048} 4049 4050function objectToQueryString(obj) { 4051 return Object.keys(obj) 4052 .map((key) => { 4053 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 4054 }) 4055 .join("&"); 4056} 4057 4058async function getLocation() { 4059 if (locationCacheSet) return; 4060 4061 try { 4062 const response = await fetch("https://ipapi.co/json/"); 4063 4064 if (!response.ok) { 4065 console.error(`error retrieving location...`, response.status); 4066 errorLocation = true; 4067 } else { 4068 const data = await response.json(); 4069 4070 const { city, region, country_name, country_code } = data; 4071 4072 const formattedLocationData = { 4073 city, 4074 region, 4075 country_name, 4076 country_code, 4077 }; 4078 4079 bitloginCache.location = formattedLocationData; 4080 locationCacheSet = true; 4081 errorLocation = false;
4082 } 4083 } catch (err) { 4084 console.error(`error fetching location`, err); 4085 errorLocation = true; 4086 } 4087} 4088 4089function post(params) { 4090 // The rest of this code assumes you are not using a library. 4091 // It can be made less verbose if you use one. 4092 const form = document.createElement("form"); 4093 form.method = "post"; 4094 form.action = `/account/login`; 4095 form.acceptCharset = "UTF-8"; 4096 form.setAttribute("data-login-with-shop-sign-in", "true"); 4097 form.setAttribute("novalidate", "novalidate"); 4098 4099 for (const key in params) { 4100 if (params.hasOwnProperty(key)) { 4101 const hiddenField = document.createElement("input"); 4102 hiddenField.type = "hidden"; 4103 hiddenField.name = key; 4104 hiddenField.value = params[key]; 4105 4106 form.appendChild(hiddenField); 4107 } 4108 } 4109 4110 document.body.appendChild(form); 4111 form.submit(); 4112} 4113 4114async function setupOneTap({ host, checkoutUrl }) { 4115 if (oneTapSet) return; 4116 4117 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 4118 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 4119 4120 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 4121 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 4122 4123 const currentPath = window.location.pathname.toLowerCase(); 4124 const currentUrl = window.location.href.toLowerCase(); 4125 4126 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 4127 switch (value) { 4128 case 'home': 4129 return currentPath === '/'; 4130 case 'product': 4131 return currentPath.startsWith('/products/'); 4132 case 'collections': 4133 return currentPath.startsWith('/collections'); 4134 case 'cart': 4135 return currentPath === '/cart'; 4136 case 'checkout': 4137 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 4138 case 'thank_you': 4139 return currentPath.includes('/thank_you'); 4140 case 'account': 4141 return currentPath.startsWith('/account'); 4142 case 'pages': 4143 return currentPath.startsWith('/pages'); 4144 case 'blogs': 4145 return currentPath === '/blogs' || currentPath === '/blogs/news'; 4146 case 'blog_post': 4147 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 4148 default: 4149 return false; 4150 } 4151 }); 4152 4153 if (shouldHideGoogleOneTap) return; 4154 4155 const oneTapClientId = bitloginCache.config.find( 4156 (config) => config.provider === "GOOGLE" 4157 )?.clientId; 4158 4159 const isLoggedIn = false; 4160 4161 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 4162 const googleOneTapButton = document.createElement("div"); 4163 googleOneTapButton.setAttribute("id", "g_id_onload"); 4164 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 4165 googleOneTapButton.setAttribute("data-context", "signin"); 4166 googleOneTapButton.setAttribute( 4167 "data-callback", 4168 "handleGoogleOneTapResponse" 4169 ); 4170 googleOneTapButton.setAttribute("data-itp_support", "true"); 4171 4172 const googleOneTapScript = document.createElement("script"); 4173 4174 googleOneTapScript.innerHTML += ` 4175 function handleGoogleOneTapResponse(response) { 4176 if (response.credential) { 4177 const idToken = response.credential; 4178 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 4179 method: 'POST', 4180 headers: { 'Content-Type': 'application/json' }, 4181 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 4182 }).then(response => { 4183 response.json().then((data) => { 4184 post( 4185 JSON.parse( 4186 JSON.stringify({ 4187 "customer[email]": data.email, 4188 "customer[password]": data.password, 4189 form_type: "customer_login", 4190 utf8: "â", 4191 return_url: redirectUrl, 4192 }) 4193 ) 4194 ); 4195 }); 4196 }).catch(error => { 4197 console.error('Error occurred:', error); 4198 }); 4199 } else { 4200 console.error('No credential available'); 4201 } 4202 } 4203 `; 4204 4205 document.body.append(googleOneTapButton); 4206 document.body.append(googleOneTapScript); 4207 } 4208 4209 oneTapSet = true; 4210} 4211 4212const googleLoginIcon = ( 4213 theme, 4214 customColor 4215) => ` 4216${ 4217 theme === "match" || theme === "matchOutline" || theme === "custom" 4218 ? `<svg 4219 xmlns='http://www.w3.org/2000/svg' 4220 xmlns:v='https://vecta.io/nano' 4221 width='24' 4222 height='24'
4223 viewBox='0 0 186.69 190.5' 4224 > 4225 <g transform="translate(1184.583 765.171)"><path clip-path="none" mask="none" d="M-1089.333-687.239v36.888h51.262c-2.251 11.863-9.006 21.908-19.137 28.662l30.913 23.986c18.011-16.625 28.402-41.044 28.402-70.052 0-6.754-.606-13.249-1.732-19.483z" fill="${ 4226 theme === "custom" ? customColor : "#4285f4" 4227 }"/><path clip-path="none" mask="none" d="M-1142.714-651.791l-6.972 5.337-24.679 19.223h0c15.673 31.086 47.796 52.561 85.03 52.561 25.717 0 47.278-8.486 63.038-23.033l-30.913-23.986c-8.486 5.715-19.31 9.179-32.125 9.179-24.765 0-45.806-16.712-53.34-39.226z" fill="${ 4228 theme === "custom" ? customColor : "#34a853" 4229 }"/><path clip-path="none" mask="none" d="M-1174.365-712.61c-6.494 12.815-10.217 27.276-10.217 42.689s3.723 29.874 10.217 42.689c0 .086 31.693-24.592 31.693-24.592-1.905-5.715-3.031-11.776-3.031-18.098s1.126-12.383 3.031-18.098z" fill="${ 4230 theme === "custom" ? customColor : "#fbbc05" 4231 }"/><path d="M-1089.333-727.244c14.028 0 26.497 4.849 36.455 14.201l27.276-27.276c-16.539-15.413-38.013-24.852-63.731-24.852-37.234 0-69.359 21.388-85.032 52.561l31.692 24.592c7.533-22.514 28.575-39.226 53.34-39.226z" fill="${ 4232 theme === "custom" ? customColor : "#ea4335" 4233 }" clip-path="none" mask="none"/></g> 4234 </svg>` 4235 : `<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25" fill="none"> 4236<path d="M24.1906 12.7758C24.1906 11.96 24.1244 11.1399 23.9833 10.3374H12.6646V14.9584H19.1463C18.8773 16.4488 18.0131 17.7672 16.7476 18.6049V21.6032H20.6146C22.8854 19.5132 24.1906 16.4267 24.1906 12.7758Z" fill="${ 4237 theme !== "black" ? "black" : "white" 4238 }"/> 4239<path d="M12.6647 24.5001C15.9011 24.5001 18.6305 23.4374 20.619 21.6031L16.7521 18.6048C15.6762 19.3368 14.2873 19.7513 12.6691 19.7513C9.53845 19.7513 6.88403 17.6391 5.93161 14.7996H1.94116V17.8904C3.97828 21.9428 8.12746 24.5001 12.6647 24.5001Z" fill="${ 4240 theme !== "black" ? "black" : "white" 4241 }"/> 4242<path d="M5.92709 14.7995C5.42442 13.3091 5.42442 11.6953 5.92709 10.205V7.11401H1.94105C0.23905 10.5048 0.23905 14.4996 1.94105 17.8903L5.92709 14.7995Z" fill="${ 4243 theme !== "black" ? "black" : "white" 4244 }"/> 4245<path d="M12.6647 5.24893C14.3755 5.22248 16.029 5.86623 17.268 7.04794L20.694 3.62188C18.5247 1.58477 15.6454 0.464802 12.6647 0.500076C8.12745 0.500076 3.97828 3.05749 1.94116 7.11408L5.9272 10.205C6.8752 7.36099 9.53403 5.24893 12.6647 5.24893Z" fill="${ 4246 theme !== "black" ? "black" : "white" 4247 }"/> 4248</svg>` 4249}`; 4250 4251const appleLoginIcon = ( 4252 theme, 4253 customColor 4254) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4255<path d="M15.4146 22.08C14.263 23.2897 12.9925 23.1013 11.7815 22.5307C10.494 21.9489 9.31698 21.9121 7.95724 22.5307C6.26395 23.322 5.36524 23.092 4.34544 22.08C-1.4122 15.663 -0.562362 5.88801 5.98138 5.52001C7.56844 5.61201 8.6796 6.46991 9.61442 6.54121C11.0039 6.23531 12.3339 5.35901 13.8211 5.47401C15.6078 5.63041 16.9443 6.39401 17.8366 7.76711C14.161 10.1591 15.0321 15.4031 18.4082 16.8751C17.7324 18.7956 16.8656 20.6931 15.4125 22.0961L15.4146 22.08ZM9.48695 5.45101C9.31486 2.59901 11.4501 0.25301 13.9061 0.0230103C14.2439 3.31201 11.1441 5.77301 9.48695 5.45101Z" fill="${ 4256 theme === "custom" 4257 ? customColor 4258 : theme === "match" || theme === "black" 4259 ? "white" 4260 : "black" 4261}"/> 4262</svg>`; 4263 4264const facebookLoginIcon = ( 4265 theme, 4266 customColor 4267) => ` 4268${ 4269 theme === "match" || theme === "matchOutline" || theme === "custom" 4270 ? `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none"> 4271 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 4272 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 4273 }"/> 4274 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 4275 theme === "match" ? "#1778f2" : "transparent" 4276 }"/> 4277 </svg>` 4278 : `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewB
4278ox="0 0 24 25" fill="none"> 4279<path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 4280 theme === "black" ? "white" : "black" 4281 }"/> 4282<path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 4283 theme === "black" ? "black" : "white" 4284 }"/> 4285</svg>` 4286}`; 4287 4288const whatsappLoginIcon = ( 4289 theme, 4290 customColor 4291) => `<svg 4292 viewBox="0 0 24 24" 4293 fill="none" 4294 width="24" 4295 height="25" 4296 xmlns="http://www.w3.org/2000/svg" 4297> 4298 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 4299 <g 4300 id="SVGRepo_tracerCarrier" 4301 stroke-linecap="round" 4302 stroke-linejoin="round" 4303 ></g> 4304 <g id="SVGRepo_iconCarrier"> 4305 <path 4306 fill-rule="evenodd" 4307 clip-rule="evenodd" 4308 d="M3.50002 12C3.50002 7.30558 7.3056 3.5 12 3.5C16.6944 3.5 20.5 7.30558 20.5 12C20.5 16.6944 16.6944 20.5 12 20.5C10.3278 20.5 8.77127 20.0182 7.45798 19.1861C7.21357 19.0313 6.91408 18.9899 6.63684 19.0726L3.75769 19.9319L4.84173 17.3953C4.96986 17.0955 4.94379 16.7521 4.77187 16.4751C3.9657 15.176 3.50002 13.6439 3.50002 12ZM12 1.5C6.20103 1.5 1.50002 6.20101 1.50002 12C1.50002 13.8381 1.97316 15.5683 2.80465 17.0727L1.08047 21.107C0.928048 21.4637 0.99561 21.8763 1.25382 22.1657C1.51203 22.4552 1.91432 22.5692 2.28599 22.4582L6.78541 21.1155C8.32245 21.9965 10.1037 22.5 12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5ZM14.2925 14.1824L12.9783 15.1081C12.3628 14.7575 11.6823 14.2681 10.9997 13.5855C10.2901 12.8759 9.76402 12.1433 9.37612 11.4713L10.2113 10.7624C10.5697 10.4582 10.6678 9.94533 10.447 9.53028L9.38284 7.53028C9.23954 7.26097 8.98116 7.0718 8.68115 7.01654C8.38113 6.96129 8.07231 7.046 7.84247 7.24659L7.52696 7.52195C6.76823 8.18414 6.3195 9.2723 6.69141 10.3741C7.07698 11.5163 7.89983 13.314 9.58552 14.9997C11.3991 16.8133 13.2413 17.5275 14.3186 17.8049C15.1866 18.0283 16.008 17.7288 16.5868 17.2572L17.1783 16.7752C17.4313 16.5691 17.5678 16.2524 17.544 15.9269C17.5201 15.6014 17.3389 15.308 17.0585 15.1409L15.3802 14.1409C15.0412 13.939 14.6152 13.9552 14.2925 14.1824Z" 4309 fill="${ 4310 theme === "match" || theme === "black" 4311 ? "#ffffff" 4312 : theme === "white" 4313 ? "#000000" 4314 : theme === "matchOutline" 4315 ? "#25d366" 4316 : customColor 4317 }" 4318 ></path> 4319 </g> 4320</svg>`; 4321 4322const microsoftLoginIcon = ( 4323 theme, 4324 customColor 4325) => `<svg 4326xmlns="http://www.w3.org/2000/svg" 4327width="25" 4328height="25" 4329viewBox="0 0 48 48"> 4330<path fill="${ 4331 theme === "match" || theme == "matchOutline" 4332 ? "#ff5722" 4333 : theme === "black" 4334 ? "#ffffff" 4335 : theme === "white" 4336 ? "#000000" 4337 : customColor 4338}" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 4339<path 4340 fill="${ 4341 theme === "match" || theme == "matchOutline" 4342 ? "#4caf50" 4343 : theme === "black" 4344 ? "#ffffff" 4345 : theme === "white" 4346 ? "#000000" 4347 : customColor 4348 }" 4349 d="M26 6H42V22H26z" 4350 transform="rotate(-180 34 14)"></path> 4351<path 4352 fill="${ 4353 theme === "match" || theme == "matchOutline" 4354 ? "#ffc107" 4355 : theme === "black" 4356 ? "#ffffff" 4357 : theme === "white" 4358 ? "#000000" 4359 : customColor 4360 }" 4361 d="M26 26H42V42H26z" 4362 transform="rotate(-180 34 34)"></path> 4363<path fill="${ 4364 theme === "match" || theme == "matchOutline" 4365 ? "#03a9f4" 4366 : theme === "black" 4367 ? "#ffffff" 4368 : theme === "white" 4369 ? "#000000" 4370 : customColor 4371}" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 4372</svg>`; 4373 4374const twitterLoginIcon = ( 4375 theme, 4376 customColor 4377) => `<svg 4378xmlns="http://www.w3.org/2000/svg" 4379width="25" 4380height="25" 4381viewBox="0 0 48 48"> 4382<polygon fill="${ 4383 theme === "match" || theme === "black" 4384 ? "#ffffff" 4385 : theme === "matchOutline" || theme === "white" 4386 ? "#000000" 4387 : customColor 4388}" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 4389<polygon 4390 fill="${ 4391 theme === "match" || theme === "black" 4392 ? "#000000" 4393 : theme === "matchOutline" || theme === "white" 4394 ? "#ffffff" 4395 : customColor 4396 }" 4397 fill-rule="evenodd" 4398 points="31.143,41 7.82,7 16.777,7 40.1,41" 4399 clip-rule="evenodd"></polygon> 4400<path 4401 fill="${ 4402 theme === "match" || theme === "black" 4403 ? "#ffffff" 4404 : theme === "matchOutline" || theme === "white" 4405 ? "#000000" 4406 : customColor 4407 }" 4408 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 4409</svg>`; 4410 4411const amazonLoginIcon = (theme, customColor) => ` 4412 <svg 4413 xmlns="http://www.w3.org/2000/svg" 4414 x="0px" 4415 y="0px" 4416 width="25" 4417 height="25"
4418 viewBox="0 0 50 50" 4419 > 4420 <path 4421 fill="${ 4422 theme === "black" 4423 ? "#ffffff" 4424 : theme === "matchOutline" 4425 ? "#FF9900" 4426 : theme === "white" || theme === "match" 4427 ? "#000000" 4428 : customColor 4429 }" 4430 d="M 25.3125 3 C 19.210938 3 12.492188 5.3125 11.09375 12.8125 C 10.894531 13.613281 11.5 13.992188 12 14.09375 L 18.1875 14.6875 C 18.789063 14.6875 19.207031 14.101563 19.40625 13.5 C 19.90625 10.898438 22.101563 9.59375 24.5 9.59375 C 25.800781 9.59375 27.292969 10.113281 28.09375 11.3125 C 28.992188 12.613281 28.8125 14.40625 28.8125 15.90625 L 28.8125 16.8125 C 25.113281 17.210938 20.3125 17.5 16.8125 19 C 12.8125 20.699219 10 24.207031 10 29.40625 C 10 36.007813 14.199219 39.3125 19.5 39.3125 C 24 39.3125 26.5 38.195313 30 34.59375 C 31.199219 36.292969 31.585938 37.105469 33.6875 38.90625 C 34.1875 39.207031 34.789063 39.085938 35.1875 38.6875 L 35.1875 38.8125 C 36.488281 37.710938 38.792969 35.601563 40.09375 34.5 C 40.59375 34.199219 40.492188 33.5 40.09375 33 C 38.894531 31.398438 37.6875 30.09375 37.6875 27.09375 L 37.6875 17.1875 C 37.6875 12.988281 38.007813 9.085938 34.90625 6.1875 C 32.40625 3.789063 28.414063 3 25.3125 3 Z M 27 22 L 28.6875 22 L 28.6875 23.40625 C 28.6875 25.804688 28.792969 27.894531 27.59375 30.09375 C 26.59375 31.894531 24.988281 33 23.1875 33 C 20.789063 33 19.3125 31.207031 19.3125 28.40625 C 19.3125 23.707031 23 22.300781 27 22 Z M 44.59375 36.59375 C 42.992188 36.59375 41.085938 37 39.6875 38 C 39.289063 38.300781 39.3125 38.6875 39.8125 38.6875 C 41.414063 38.488281 44.988281 38.007813 45.6875 38.90625 C 46.289063 39.707031 45.007813 43.085938 44.40625 44.6875 C 44.207031 45.1875 44.601563 45.300781 45 45 C 47.699219 42.699219 48.40625 38.007813 47.90625 37.40625 C 47.605469 36.90625 46.195313 36.59375 44.59375 36.59375 Z M 2.1875 37.5 C 1.886719 37.5 1.695313 38.011719 2.09375 38.3125 C 8.09375 43.710938 16.007813 47 24.90625 47 C 31.207031 47 38.492188 45.011719 43.59375 41.3125 C 44.394531 40.710938 43.707031 39.695313 42.90625 40.09375 C 37.207031 42.492188 31.101563 43.6875 25.5 43.6875 C 17.199219 43.6875 9.1875 41.386719 2.6875 37.6875 C 2.488281 37.488281 2.289063 37.5 2.1875 37.5 Z" 4431 ></path> 4432 </svg>`; 4433 4434const instagramLoginIcon= (theme, customColor) => ` 4435 <svg 4436 width="25" 4437 height="25" 4438 viewBox="0 0 25 24" 4439 fill="none" 4440 xmlns="http://www.w3.org/2000/svg"> 4441 <path 4442 fill-rule="evenodd" 4443 clip-rule="evenodd" 4444 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
444464321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 4445 fill="url(#paint0_radial_378_3535)" /> 4446 <path 4447 fill-rule="evenodd" 4448 clip-rule="evenodd" 4449 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 4450 fill="url(#paint0_radial_378_3535)" /> 4451 <path 4452 fill-rule="evenodd" 4453 clip-rule="evenodd" 4454 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
445464321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 4455 fill="url(#paint0_radial_378_3535)" /> 4456 <path 4457 fill-rule="evenodd" 4458 clip-rule="evenodd" 4459 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 4460 fill="url(#paint1_radial_378_3535)" /> 4461 <defs> 4462 <radialGradient 4463 id="paint0_radial_378_3535" 4464 cx="0" 4465 cy="0" 4466 r="1" 4467 gradientUnits="userSpaceOnUse" 4468 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 4469 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 4470 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 4471 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 4472 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 4473 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 4474 </radialGradient> 4475 <radialGradient 4476 id="paint1_radial_378_3535" 4477 cx="0" 4478 cy="0" 4479 r="1" 4480 gradientUnits="userSpaceOnUse" 4481 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 4482 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 4483 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 4484 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 4485 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 4486 </radialGradient> 4487 </defs> 4488 </svg>`; 4489 4490const magicLinkLoginIcon = (theme, customColor) => ` 4491 <svg 4492 xmlns="http://www.w3.org/2000/svg" 4493 width="25" 4494 height="25" 4495 fill="none"
4496 viewBox="0 0 25 25" 4497 > 4498 <path 4499 fill="${ 4500 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 4501 }" 4502 fillRule="evenodd" 4503 d="M10.975 14.51a1.05 1.05 0 000-1.485 2.95 2.95 0 010-4.172l3.536-3.535a2.95 2.95 0 114.172 4.172l-1.093 1.092a1.05 1.05 0 001.485 1.485l1.093-1.092a5.05 5.05 0 00-7.142-7.142L9.49 7.368a5.05 5.05 0 000 7.142c.41.41 1.075.41 1.485 0zm2.05-5.02a1.05 1.05 0 000 1.485 2.95 2.95 0 010 4.172l-3.5 3.5a2.95 2.95 0 11-4.171-4.172l1.025-1.025a1.05 1.05 0 00-1.485-1.485L3.87 12.99a5.05 5.05 0 007.142 7.142l3.5-3.5a5.05 5.05 0 000-7.142 1.05 1.05 0 00-1.485 0z" 4504 clipRule="evenodd" 4505 ></path> 4506 </svg>`; 4507 4508const mobileAppLoginIcon = (theme, customColor) => ` 4509 <svg 4510 width="20" 4511 height="24" 4512 viewBox="0 0 12 16" 4513 fill="none" 4514 xmlns="http://www.w3.org/2000/svg" 4515 > 4516 <path 4517 d="M9.75 0.5H2.25C1.42275 0.5 0.75 1.17275 0.75 2V14C0.75 14.8273 1.42275 15.5 2.25 15.5H9.75C10.5773 15.5 11.25 14.8273 11.25 14V2C11.25 1.17275 10.5773 0.5 9.75 0.5ZM2.25 11.7493V2.75H9.75L9.7515 11.7493H2.25Z" 4518 fill=${ 4519 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 4520 } 4521 /> 4522 </svg> 4523`; 4524 4525const linkedinLoginIcon = (theme, customColor) => ` 4526 <svg 4527 xmlns="http://www.w3.org/2000/svg" 4528 width="25" 4529 height="24" 4530 viewBox="0 0 25 24" 4531 fill="none" 4532 > 4533 <path 4534 d="M19.0714 0C19.8304 0 20.5 0.669643 20.5 1.47321V18.5714C20.5 19.375 19.8304 20 19.0714 20H1.88393C1.125 20 0.5 19.375 0.5 18.5714V1.47321C0.5 0.669643 1.125 0 1.88393 0H19.0714ZM6.52679 17.1429V7.63393H3.58036V17.1429H6.52679ZM5.05357 6.29464C5.99107 6.29464 6.75 5.53571 6.75 4.59821C6.75 3.66071 5.99107 2.85714 5.05357 2.85714C4.07143 2.85714 3.3125 3.66071 3.3125 4.59821C3.3125 5.53571 4.07143 6.29464 5.05357 6.29464ZM17.6429 17.1429V11.9196C17.6429 9.375 17.0625 7.36607 14.0714 7.36607C12.6429 7.36607 11.6607 8.16964 11.2589 8.92857H11.2143V7.63393H8.40179V17.1429H11.3482V12.4554C11.3482 11.2054 11.5714 10 13.1339 10C14.6518 10 14.6518 11.4286 14.6518 12.5V17.1429H17.6429Z" 4535 fill=${ 4536 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 4537 } 4538 /> 4539 </svg> 4540`; 4541 4542function isElementVisible(element) { 4543 return ( 4544 document.body.contains(element) && 4545 getComputedStyle(element).display !== "none" && 4546 getComputedStyle(element).visibility !== "hidden" && 4547 getComputedStyle(element).opacity !== "0" && 4548 !element.hasAttribute("hidden") && 4549 !isAncestorHidden(element) 4550 ); 4551} 4552 4553function isAncestorHidden(element) { 4554 let parent = element.parentElement; 4555 while (parent) { 4556 if ( 4557 getComputedStyle(parent).display === "none" || 4558 getComputedStyle(parent).visibility === "hidden" || 4559 getComputedStyle(parent).opacity === "0" || 4560 parent.hasAttribute("hidden") 4561 ) { 4562 return true; 4563 } 4564 parent = parent.parentElement; 4565 } 4566 return false; 4567} 4568 4569function showAlert(message) { 4570 const alertBox = document.createElement("div"); 4571 alertBox.textContent = message; 4572 alertBox.style.position = "fixed"; 4573 alertBox.style.top = "20px"; 4574 alertBox.style.right = "-300px"; // Start off-screen 4575 alertBox.style.backgroundColor = "#000000"; // Black background 4576 alertBox.style.color = "#ffffff"; // White text 4577 alertBox.style.padding = "15px"; 4578 alertBox.style.borderRadius = "8px"; 4579 alertBox.style.zIndex = "1000"; 4580 alertBox.style.transition = 4581 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 4582 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 4583 4584 document.body.appendChild(alertBox); 4585 4586 // Slide in 4587 requestAnimationFrame(() => { 4588 alertBox.style.right = "20px"; // Move into view 4589 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 4590 }); 4591 4592 // Slide out and remove the alert after a few seconds 4593 setTimeout(() => { 4594 alertBox.style.opacity = "0"; // Fade out 4595 alertBox.style.right = "-300px"; // Move out of view 4596 4597 // Wait for the transition to finish before removing the element 4598 setTimeout(() => { 4599 document.body.removeChild(alertBox); 4600 }, 500); // Match this duration with the exit transition duration 4601 }, 3000); 4602} 4603</script>
4603 4604 4605 4606</div><div id="shopify-block-AY3pVa3ZJR0E3aHF6e__10436698916776057164" class="shopify-block shopify-app-block">
4606<script id="subscription-helper"> 4607 4608 if (!window.AppstleIncluded) { 4609 window.AppstleIncluded = true; 4610 window.RS = Window.RS || {}; 4611 4612 RS.Config = { 4613 "selectors": { 4614 "payment_button_selectors": "form[action$='/cart/add'] .shopify-payment-button", 4615 "subscriptionLinkSelector": "#MainContent .customer.account > div:nth-child(2) > div:nth-child(2) > h2", 4616 "atcButtonPlacement": "BEFORE", 4617 "subscriptionLinkPlacement": "BEFORE", 4618 "cartRowSelector": "tr.cart-item", 4619 "cartLineItemSelector": ".cart-item__name.h4.break", 4620 "cartLineItemPerQuantityPriceSelector": "", 4621 "cartLineItemTotalPriceSelector": "", 4622 "cartLineItemSellingPlanNameSelector": "", 4623 "cartSubTotalSelector" : "p.totals__total-value", 4624 "cartLineItemPriceSelector": "", 4625 "cartLineItemPlacement": "BEFORE", 4626 "cartHiddenAttributesSelector": "", 4627 "buildABoxDiscountSelector": "", 4628 }, 4629 "baseUrl": "https://subscription-admin.appstle.com", 4630 "usedTranslation": "true", 4631 "enableCartWidgetFeature": "false", 4632 "storefrontAnalyticsForwardingEnabled": false, 4633 "appstleStorefrontAnalyticsPath": "https://subscription-admin.appstle.com/assets/js/appstle-storefront-analytics.min.js?shop=c820c3-2.myshopify.com&v=1784182483761", 4634 "useUrlWithCustomerId": "true", 4635 "atcButtonSelector": "div.product-form__buttons", 4636 "moneyFormat": "${{amount}}", 4637 "oneTimePurchaseText": "One Time Purchase", 4638 "minimumQuantityMessage": "", 4639 "tapToSelectText": "", 4640 "bundleDiscountTextV2": "", 4641 "productPageUnitPriceSelectorV2": "", 4642 "monthsFrequencyTextV2": "Months", 4643 "monthlyLabelTextV2": "Monthly", 4644 "monthFrequencyTextV2": "Month", 4645 "weeksFrequencyTextV2": "Weeks", 4646 "weeklyLabelTextV2": "Weekly", 4647 "weekFrequencyTextV2": "Week", 4648 "daysFrequencyTextV2": "Days", 4649 "dayFrequencyTextV2": "day", 4650 "yearsFrequencyTextV2": "Years", 4651 "yearlyLabelTextV2": "Yearly", 4652 "yearFrequencyTextV2": "Year", 4653 "offFrequencyTextV2": "Off", 4654 "prepayLabelTextV2": "Prepay", 4655 "prepaidLabelTextV2": "Prepaid", 4656 "prepaidSaveBadgeTextV2": "SAVE {{selectedDiscountPercentage}}", 4657 "onetimeDescriptionTextV2": "", 4658 "atcButtonTextV2": "", 4659 "oneTimeFrequencyTextV2": "One Time", 4660 "cancelAnytimeLabelTextV2": "Cancel Anytime", 4661 "noSubscriptionLabelTextV2": "No Subscription", 4662 "addToShipmentButtonTextV2": "Add to Shipment", 4663 "addToShipmentProcessingV2": "Processing...", 4664 "addToShipmentSuccessTextV2": "Success", 4665 "addToShipmentErrorTextV2": "Error", 4666 "addToShipmentTooltipTextV2": "Please avoid double delivery charges! Login to add this product to an upcoming delivery.", 4667 "frequencyCombinedWidgetTextV2": "Frequency", 4668 "selectDeliverOptionV2": "select deliver option", 4669 "subscribeAndSaveSuccessV2": "Subscribe success", 4670 "unsubscribeFrequencyTextV2": "unsubscribe", 4671 "deliveryEveryFrequencyTextV2": "Delivery Every", 4672 "sellingPlanTitleTextNonPrepaid": "{{sellingPlanName}}", 4673 "subscribeAndSaveInitalV2": "Subscribe & save", 4674 "subscriptionDescriptionTextV2": "", 4675 "atcButtonTextSelector": "", 4676 "disableCartWidgetOnVariants": "", 4677 "shop": "c820c3-2.myshopify.com", 4678 "deliveryText": "delivery", 4679 "purchaseOptionsText": "Purchase Options", 4680 "manageSubscriptionButtonText": "", 4681 "subscriptionOptionText": "Subscribe and save", 4682 "sellingPlanSelectTitle": "DELIVERY FREQUENCY", 4683 "subscriptionPriceDisplayText": "", 4684 "tooltipTitle": "Subscription detail", 4685 "showTooltipOnClick": "false", 4686 "tooltipDesctiption": `<strong>Have complete control of your subscriptions<\/strong><br\/><br\/>Skip, reschedule, edit, or cancel deliveries anytime, based on your needs.`, 4687 "tooltipDescriptionOnPrepaidPlan": "<b>Prepaid Plan Details<\/b><\/br> Total price: {{totalPrice}} ( Price for every delivery: {{pricePerDelivery}})", 4688 "tooltipDescriptionOnMultipleDiscount": "<b>Discount Details<\/b><\/br> Initial discount is {{discountOne}} and then {{discountTwo}}", 4689 "manualTranslation": "false", 4690 "tooltipDescriptionCustomization": "{{{defaultTooltipDescription}}} <\/br> {{{prepaidDetails}}} <\/br> {{{discountDetails}}}", 4691 "orderStatusManageSubscriptionTitle": "Subscription", 4692 "orderStatusManageSubscriptionDescription": "Continue to your account to view and manage your subscriptions. Please use the same email address that you used to buy the subscription.", 4693 "orderStatusManageSubscriptionButtonText": "Manage your subscription", 4694 "subscriptionOptionSelectedByDefault" : false, 4695 "totalPricePerDeliveryText" : "{{prepaidPerDeliveryPrice}}\/delivery", 4696 "memberOnlySellingPlansJson": {}, 4697 "nonMemberOnlySellingPlansJson": {}, 4698 "sellingPlansJson": [{"frequencyCount":1,"frequencyInterval":"MONTH","billingFrequencyCount":1,"billingFrequencyInterval":"MONTH","frequencyName":"Monthly","frequencyDescription":"Monthly Subscription","afterCycle1":0,"afterCycle2":0,"discountEnabled":false,"discountEnabled2":false,"discountEnabledMasked":false,"discountEnabled2Masked":false,"id":"gid://shopify/SellingPlan/5550309683","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/5550309683","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"[]","frequencySequence":0,"groupName":"Quibble (Monthly)","groupId":2283241779,"inventoryPolicyReserve":"ON_SALE","appstleCycles":[]},{"frequencyCount":1,"frequencyInterval":"YEAR","billingFrequencyCount":1,"billingFrequencyInterval":"YEAR","frequencyName":"Yearly","frequencyDescription":"Customer will be billed once every year and receive access to Quibble services for that year.","discountOffer":59.99,"afterCycle1":0,"discountType":"PRICE","discountEnabled":true,"discountEnabledMasked":true,"id":"gid://shopify/SellingPlan/5550506291","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/5550506291","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"[]","frequencySequence":0,"groupName":"Quibble (Yearly)","groupId":2283438387,"inventoryPolicyReserve":"ON_SALE","appstleCycles":[]},{"frequencyCount":1,"frequencyInterval":"MONTH","billingFrequencyCount":1,"billingFrequencyInterval":"MONTH","frequencyName":"Monthly","frequencyDescription":"Monthly Subscription","afterCycle1":0,"afterCycle2":0,"discountEnabled":false,"discountEnabled2":false,"discountEnabledMasked":false,"discountEnabled2Masked":false,"id":"gid://shopify/SellingPlan/5550801203","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/5550801203","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"[]","frequencySequence":0,"groupName":"Quibble Basic (Monthly)","groupId":2283733299,"inventoryPolicyReserve":"ON_SALE","appstleCycles":[]},{"frequencyCount":1,"frequencyInterval":"YEAR","billingFrequencyCount":1,"billingFrequencyInterval":"YEAR","frequencyName":"Yearly","frequencyDescription":"Customer will be billed once every year and receive access to Quibble services for that year.","discountOffer":39.99,"afterCycle1":0,"discountType":"PRICE","discountEnabled":true,"discountEnabledMasked":true,"id":"gid://shopify/SellingPlan/5550833971","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/5550833971","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"[]","frequencySequence":0,"groupName":"Quibble Basic (Yearly)","groupId":2283766067,"inventoryPolicyReserve":"ON_SALE","appstleCycles":[]},{"frequencyCount":1,"frequencyInterval":"MONTH","billingFrequencyCount":1,"billingFrequencyInterval":"MONTH","frequencyName":"Monthly","frequencyDescription":"Monthly Subscription","afterCycle1":0,"afterCycle2":0,"discountEnabled":false,"discountEnabled2":false,"discountEnabledMasked":false,"discountEnabled2Masked":false,"id":"gid://shopify/SellingPlan/5550866739","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/5550866739","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"[]","frequencySequence":0,"groupName":"Quibble Pro (Monthly)","groupId":2283798835,"inventoryPolicyReserve":"ON_SALE","appstleCycles":[]},{"frequencyCount":1,"frequencyInterval":"YEAR","billingFrequencyCount":1,"billingFrequencyInterval":"YEAR","frequencyName":"Yearly","frequencyDescription":"Customer will be billed once every year and receive access to Quibble services for that year.","discountOffer":199.99,"afterCycle1":0,"discountType":"PRICE","discountEnabled":true,"discountEnabledMasked":true,"id":"gid://shopify/SellingPlan/5550899507","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/5550899507","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"[]","frequencySequence":0,"groupName":"Quibble Pro (Yearly)","groupId":2283831603,"inventoryPolicyReserve":"ON_SALE","appstleCycles":[]}], 4699 "widgetEnabled": true, 4700 "showFreeGiftPrice" : true, 4701 "showFreeGiftComparePrice" : true, 4702 "enableFreeGiftLayout" : false, 4703 "freeGiftLabelText": "+ Free {{productName}}", 4704 "freeGiftBadgeText": "", 4705 "showTooltip" : true, 4706 "showCartWidgetOnBundleItems" : false, 4707 "prepaidOptionSelectedByDefault" : false, 4708 "disablePassingSellingPlanAsLineProperties" : false, 4709 "updateThemePrice" : false, 4710 "sortByDefaultSequence": false, 4711 "showSubOptionBeforeOneTime": false, 4712 "detectVariantFromURLParams": false, 4713 "disableQueryParamsUpdate": false, 4714 "showStaticTooltip": false, 4715 "showAppstleLink": true, 4716 "sellingPlanTitleText" : "{{sellingPlanName}} ({{sellingPlanPrice}}\/delivery)", 4717 "oneTimePriceText" : "{{price}}", 4718 "selectedPayAsYouGoSellingPlanPriceText" : "{{price}}", 4719 "selectedPrepaidSellingPlanPriceText" : " {{totalPrice}}", 4720 "selectedDiscountFormat" : "SAVE {{selectedDiscountPercentage}}", 4721 "manageSubscriptionBtnFormat" : "<a href='apps\/subscriptions' class='appstle_manageSubBtn' ><button class='btn' style='padding: 2px 20px'>Manage Subscription<\/button>
4721<a><br><br>", 4722 "manageSubscriptionUrl" : "https:\/\/getquibble.com\/apps\/subscriptions", 4723 "appstlePlanId": 162, 4724 "showCheckoutSubscriptionBtn": true, 4725 "priceSelector": "", 4726 "reloadPriceSelector": "", 4727 "landingPagePriceSelector": "", 4728 "quickViewClickSelector": "", 4729 "badgeTop": "", 4730 "pricePlacement": "BEFORE", 4731 "disableLoadingJquery": false, 4732 "widgetEnabledOnSoldVariant": "false", 4733 "switchRadioButtonWidget": true, 4734 "appstlePlanName": "STARTER", 4735 "appstlePlanFeatures": {"analytics": true, "webhookAccess": false, "accessBundling": false, "enableAutoSync": false, "enableBundling": true, "enableSmsAlert": false, "accessBuildABox": false, "enableCampaigns": false, "enablePriceSync": false, "enableAutomation": false, "enableCartWidget": false, "accessAppstleMenu": false, "accessResendEmail": false, "enableAddressSync": false, "enableExternalApi": false, "enablePhasedRetry": false, "enableIntegrations": true, "enableQuickActions": false, "accessQuickCheckout": false, "accessSplitContract": false, "enableSummaryReports": true, "enableCustomEmailHtml": false, "enableWidgetPlacement": false, "enableCancellationFlow": false, "enableShippingProfiles": true, "accessZapierIntegration": false, "enableCustomEmailDomain": false, "enableDunningManagement": true, "enableExportActivityLog": false, "subscriptionOrderAmount": 5000, "accessGorgiasIntegration": true, "accessKlaviyoContactSync": false, "enableOrderConsolidation": false, "accessMechanicIntegration": true, "accessWidgetDesignOptions": false, "enableImmediatePlaceOrder": true, "enableInventoryManagement": true, "accessMechanicsIntegration": true, "enableAdvancedSellingPlans": false, "accessOneTimeProductUpsells": false, "enableBillingIntervalChange": true, "enableProductSwapAutomation": false, "accessShopifyFlowIntegration": false, "enableCancellationManagement": true, "enableCustomerPortalSettings": true, "enableSubscriptionManagement": true, "accessKlaviyoEmailIntegration": false, "enableAdminNotificationAccess": true, "accessSubscriptionActivityLogs": true, "enableBackupPaymentMethodRetry": false, "accessSubscriberLoyaltyFeatures": true, "enableAddToExistingSubscription": false, "enableContractPriceModification": true, "enableTrackInventoryInSingleBAB": false, "accessManualSubscriptionCreation": true, "enableNextBillingDateModification": true, "accessCustomerPortalProductUpsells": false, "enableServerSideConversionTracking": false, "accessDiscountOnCancellationAttempt": false, "enableStorefrontAnalyticsForwarding": false, "accessAdvanceSubscriptionPlanOptions": false, "accessAdvancedCustomerPortalSettings": false}, 4736 "formMappingAttributeName": "", 4737 "formMappingAttributeSelector": "", 4738 "quickViewModalPollingSelector": "", 4739 "scriptLoadDelay": "0", 4740 "formatMoneyOverride": "false", 4741 "enableAddToExistingSubscriptionFeature": "false", 4742 "displayAddToExistingSubscriptionButtonForNotLoggedInV2": "", 4743 "showAddToSubscriptionButtonOnlyOnSubscriptionProducts": "false", 4744 "appstle_app_proxy_path_prefix": "apps\/subscriptions", 4745 "updatePriceOnQuantityChange": "", 4746 "widgetParentSelector": "", 4747 "quantitySelector": "", 4748 "enableAddJSInterceptor": "false", 4749 "isDevEnabled": false, 4750 "forceReloadWidgetSelector": "", 4751 "forceReloadOnFreqChange": false, 4752 "showPrepaidPlanSeparately": false, 4753 "debugLogsEnabled": false, 4754 "isUseStorefrontAPI": false, 4755 "reBuyEnabled": "false", 4756 "loyaltyDetailsLabelText": "", 4757 "loyaltyPerkDescriptionTextV2": "{{#isDiscountTypeFreeProduct}}<div style='display: flex;'><div style='height: 60px; width: 60px; flex-shrink: 0; margin-right: 10px;'><img style='width: 100%' src={{{featured_image}}}><\/img><\/div><div>After {{{billingCycleBlock}}} orders,<span style='color: #ffc000;font-weight: 700;';> get a FREE {{freeProductName}} <\/span><\/div><div>{{\/isDiscountTypeFreeProduct}}{{#isDiscountTypePercentage}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>
4757get <span style='color: #ffc000;font-weight: 700;';>{{{discount}}}% OFF your entire order<\/span><\/span>.{{\/isDiscountTypePercentage}}{{#isDiscountTypeShipping}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>shipping at {{{formatDiscountedPrice}}}<\/span><\/span>.{{\/isDiscountTypeShipping}}{{#isDiscountTypeFixed}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>{{{formatDiscountedPrice}}} OFF your entire order<\/span><\/span>.{{\/isDiscountTypeFixed}}", 4758 "widgetType": "WIDGET_TYPE_1", 4759 "collectionWidgetType": "LEGACY", 4760 "enableCompactProductPageWidget": false, 4761 "enableCartDrawerWidget": false, 4762 "cartDrawerWidgetStyle": false, 4763 "cartDrawerWidgetInlineStyle": "", 4764 "cartDrawerWidgetPanelStyle": "", 4765 "cartDrawerWidgetSegmentedStyle": "", 4766 "showOneTimeComparePrice": false, 4767 "showCompareAtPriceForSubscription": false, 4768 "showCombinedSellingPlanCartWidget": false, 4769 "combinedCartWidgetSelector": "", 4770 "removeUnsubscribeOption": false, 4771 "widgetTemplateHtml": `{% raw %}{% endraw %}`, 4772 4773 "allWidgetTemplateHtml": "{\"WIDGET_TYPE_1\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_6\":\"{% raw %}<div id=\\\"appstle-widget-template\\\">\\n <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n <div class=\\\"widgetSellingPlanWrapper\\\">\\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n <div class=\\\"appstle_input_wrapper appstle_onetime_block\\\">\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n<div class=\\\"appstle-selling-plan-name-wrapper\\\">\\n {{oneTimePuchaseText}}\\n<div class=\\\"appstle-cancel-text\\\">{{{noSubscriptionLabelTextV2}}}</div>\\n</div>\\n <div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<div class=\\\"appstle_span_wrapper\\\">\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}</span></div>\\n</div>\\n </label>\\n \\n </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n {{#sellingPlanVariants}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n \\n <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n{{^prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\">\\n<div class=\\\"appstle-selling-plan-name-wrapper appstle-selling-plan-label-name\\\">\\n {{{name}}}\\n<div class=\\\"appstle-cancel-text\\\">{{{cancelAnytimeLabelTextV2}}}</div>\\n</div>\\n<div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_formattedCompareAtPrice appstle_price_block\\\">{{{formattedCompareAtPrice}}}</span>\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}</span>
4773\\n\\n\\n</div> \\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_formattext_block\\\"></span>\\n{{#showPricePerDay}}<div class=\\\"appstle-perday-price\\\">{{{pricePerDay}}}</div>{{/showPricePerDay}}\\n<div class=\\\"appstle-frequency-description\\\">\\n{{{frequencyDescription}}} \\n</div>\\n </div>\\n </label>\\n{{#showFormattedDiscountText}}\\n <span class=\\\"appstle_sellingPlan_discountText\\\">{{{formattedDiscountText}}}</span>\\n{{/showFormattedDiscountText}}\\n<div class=\\\"appstle-sm-hide appstle-frequency-description\\\">{{{frequencyDescription}}} </div> \\n{{/prepaidFlag}}\\n{{#prepaidFlag}}\\n<label for=\\\"{{sellingPlanId}}\\\">\\n<div class=\\\"appstle-selling-plan-name-wrapper appstle-selling-plan-label-name\\\">\\n {{{name}}}\\n<div class=\\\"appstle-cancel-text\\\">{{{cancelAnytimeLabelTextV2}}}</div>\\n</div>\\n<div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_formattedCompareAtPrice appstle_price_block\\\">{{{formattedCompareAtPrice}}}</span>\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n\\n</div> \\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block appstle_formattedPrepaidPerDeliveryPriceText\\\">{{{formattedPrepaidPerDeliveryPriceText}}}</span>\\n {{#showPricePerDay}}<div class=\\\"appstle-perday-price\\\">{{{pricePerDay}}}</div>{{/showPricePerDay}}\\n<div class=\\\"\\\">\\n<div class=\\\"appstle-frequency-description\\\">\\n{{{frequencyDescription}}} \\n</div>\\n</div>\\n</div>\\n</label>\\n{{#showFormattedDiscountText}}\\n <span class=\\\"appstle_sellingPlan_discountText\\\">{{{formattedDiscountText}}}</span>\\n{{/showFormattedDiscountText}}\\n<div class=\\\"appstle-sm-hide appstle-frequency-description\\\">{{{frequencyDescription}}} </div> \\n\\n{{/prepaidFlag}}\\n \\n </div>\\n {{/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n <div class=\\\"appstle_input_wrapper appstle_onetime_block\\\">\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n<div class=\\\"appstle-selling-plan-name-wrapper\\\">\\n {{oneTimePuchaseText}}\\n<div class=\\\"appstle-cancel-text\\\">{{{noSubscriptionLabelTextV2}}}</div>\\n</div>\\n<div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">{{{oneTimePuchaseComparePriceAmount}}}</span>\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}</span>\\n\\n</div>\\n </label>\\n \\n </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\"> {{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n<div class=\\\"appstle-tootltip-parent\\\">\\n <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n <path\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n ></path>\\n </svg>\\n <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n </div>\\n<div class=\\\"appstle_tooltip\\\">\\n <div class=\\\"appstle_tooltip_content\\\">\\n {{{toolTipDescription}}}\\n </div>\\n {{#showAppstleLink}}\\n <div class=\\\"appstle_tooltip_appstle\\\">\\n <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n POWERED BY APPSTLE </a>\\n </div>\\n {{/showAppstleLink}}\\n </div>\\n</div>\\n{{/showTooltip}}\\n<style>\\n.widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 1.5rem;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\nmargin-top: 10px;\\n}\\n\\n.widgetSellingPlanWrapper input {\\n display: none;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n border-radius: 10px;\\n border: 1px solid rgba(var(--color-foreground));\\n padding: 0.5rem;\\n display: flex;\\n justify-content: center;
4773\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\ncursor: pointer;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground)) !important;\\ncolor: rgba(var(--color-background)) !important;\\n}\\n.appstle_lowercase {\\n text-transform: lowercase;\\n}\\n\\n\\n.appstle_input_wrapper {\\n position: relative;\\n}\\n\\nspan.appstle_sellingPlan_discountText {\\n position: absolute;\\n background: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border-radius: 3px;\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n}\\n\\nspan.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n}\\ndiv.appstle_span_wrapper{\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n}\\n</style>\\n<style>\\n.widgetSellingPlanWrapper {\\n grid-template-columns: repeat(3, minmax(0, 1fr)) !important;\\n gap: 0.8rem !important;\\n}\\n\\n.appstle_sub_widget {\\n max-width: 100%!important;\\n} \\n\\n.widgetSellingPlanWrapper label {\\n height: auto !important;\\n border: none !important;\\n padding: 14px 5px !important;\\n display: flex !important;\\n justify-content: center !important;\\n align-items: center !important;\\n flex-direction: column;\\n max-width: 100% !important;\\n width: unset !important;\\nline-height: 20px;\\n}\\n\\n.appstle_how_does_it_work {\\n line-height: 16px !important;\\n margin: 6px 0px;\\n color: rgba(var(--color-background));\\n}\\n@media screen and (max-width: 800px) {\\n .appstle_how_does_it_work {\\n text-align: right;\\n }\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_formattext_block {\\ntext-align: right !important;\\n display: block;\\n}\\n\\n.appstle_span_wrapper {\\n align-items: baseline;\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_discount_block.appstle_formattedPrepaidPerDeliveryPriceText {\\n display: block;\\n text-align: right;\\n}\\n\\n.appstle_input_wrapper {\\n display: flex;\\n height: 100% !important;\\nflex-direction: column;\\n}\\n\\n.appstle_sub_widget input[type=radio]+label:before {\\n content: \\\"\\\";\\n position: absolute;\\n inset: 0;\\n border-radius: 12px;\\n padding: 2px;\\n background: #121212;\\n -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);\\n -webkit-mask-composite: xor;\\n mask-composite: exclude;\\n pointer-events: none;\\n z-index: 0;\\n transition: all 0.2s;\\n}\\n\\n.appstle_sub_widget input[type=radio]:checked+label:before {\\n content: \\\"\\\";\\n position: absolute;\\n inset: 0;\\n border-radius: 12px;\\n // padding: 4px;\\n// background: linear-gradient(to right,#Fef58f,#7A3900);\\n//background: #E53D29;\\n border: 2px transparent;\\n -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);\\n -webkit-mask-composite: xor;\\n mask-composite: exclude;\\n pointer-events: none;\\n z-index: 0;\\n}\\n\\nspan.appstle_sellingPlan_discountText {\\n background: rgba(var(--color-foreground));\\n border-radius: 100px !important;\\n padding: 0px 8px !important;\\n height: 20px;\\n display: flex !important;\\n justify-content: center;\\n align-items: center;\\n letter-spacing: 1px;\\nz-index: 2;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\ntext-decoration: line-through;\\n}\\n\\n\\nspan.appstle-popular {\\n position: absolute;\\n top: -40px;\\n background: black;\\n color: rgba(var(--color-background));\\n z-index: -3;\\n border-radius: 10px;\\n padding: 0px 10px 29px 10px;\\nleft: 0;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n border-radius: 14px;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n overflow: hidden;\\n}\\n\\n\\n.appstle-perday-price {\\ndisplay: none;\\n}\\n\\n .widgetSellingPlanWrapper {\\n grid-template-columns: repeat(1, minmax(0, 1fr)) !important;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n flex-direction: row;\\n justify-content: space-between !important;
4773\\n align-items: flex-start !important;\\nwidth: 100% !important;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n text-align: left;\\n padding: 16px !important;\\nflex-basis: unset;\\n}\\n\\n.appstle_span_wrapper {\\n justify-content: flex-end !important;\\n}\\n\\n.appstle-perday-price {\\n text-align: right;\\n}\\n\\n.widgetSellingPlanWrapper {\\n gap: 15px !important;\\n}\\n\\nspan.appstle-popular {\\n width: calc(100% - 20px);\\n text-align: center;\\n letter-spacing: 2px;\\n top: -30px;\\nleft: 0;\\n}\\n\\nspan.appstle_sellingPlan_discountText { \\nleft: unset !important;\\n right: 15px;\\n transform: translate(0, -50%) !important;\\n}\\n.appstle-cancel-text {\\n text-align: left;\\n}\\n\\n.appstle_input_wrapper label {\\n text-align: left !important;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n width: 100% !important;\\n margin: 0 !important;\\n}\\n.appstle_input_wrapper {\\n width: 100% !important;\\nflex-direction: row;\\n}\\n.widgetSellingPlanWrapper input:checked+label+span {\\n background: rgba(var(--color-background)) !important;\\n color:rgba(var(--color-foreground)) !important;\\n border: 2px solid rgba(var(--color-foreground));\\n}\\n.appstle_onetime_block .appstle_span_wrapper {\\n grid-column: 2;\\n}\\n.appstle-frequency-description {\\n text-align: right !important;\\n}\\n\\n\\n.appstle-sm-hide {\\n display: none;\\n}\\n\\n@media screen and (min-width: 800px) {\\n.appstle-lg-show {\\n display: block;\\n}\\n.appstle-lg-hide {\\n display: none;\\n}\\n\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_formattedCompareAtPrice.appstle_price_block {\\n text-decoration: line-through;\\n display: block;\\n margin-right: 3px;\\n color: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label .appstle_sellingPlan_formattedCompareAtPrice {\\ncolor:rgba(var(--color-background));\\n} \\n\\n.appstle_span_wrapper > * {\\nflex-shrink: 0\\n}\\n.appstle-selling-plan-detail-wrapper{\\ncolor: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label .appstle-selling-plan-detail-wrapper{\\ncolor: rgba(var(--color-background)) !important;\\n}\\n\\n</style>\\n</div>{% endraw %}\",\"WIDGET_TYPE_7\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_8\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_2\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_3\":\"{% raw %}<div id=\\\"appstle-widget-template\\\">\\n <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n <div class=\\\"widgetSellingPlanWrapper appstle_subscription_wrapper\\\">\\n{{#showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n <div class=\\\"appstle_input_wrapper appstle_subscription_option\\\">\\n <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n {{^prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}</span>\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"> ({{{secondFormattedDiscountText}}})</span> {{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n</div>\\n \\n </label>\\n {{/prepaidFlag}}\\n {{#prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n {{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"> ({{{secondFormattedDiscountText}}})</span>{{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n {{#formattedPrepaidPerDeliveryPriceText}}<span class=\\\"appstle_formattedPrepaidPerDeliveryPriceText\\\"> ({{{formattedPrepaidPerDeliveryPriceText}}})</span>{{/formattedPrepaidPerDeliveryPriceText}}\\n </div>\\n \\n </label>\\n {{/prepaidFlag}}\\n \\n </div>\\n {{/sellingPlanVariants}}\\n{{/showSubOptionBeforeOneTime}}\\n {{^requires_selling_plan}}\\n <div class=\\\"appstle_input_wrapper appstle_onetime\\\">
4773\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"{{sellingPlanId}}\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" class=\\\"appstle_widget_three\\\">\\n {{oneTimePuchaseText}}\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n{{{oneTimePuchaseAmount}}}</span>\\n </label>\\n \\n </div>\\n {{/requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n <div class=\\\"appstle_input_wrapper appstle_subscription_option\\\">\\n <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n {{^prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}</span>\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"> ({{{secondFormattedDiscountText}}})</span> {{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n</div>\\n \\n </label>\\n {{/prepaidFlag}}\\n {{#prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n {{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"> ({{{secondFormattedDiscountText}}})</span>{{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n {{#formattedPrepaidPerDeliveryPriceText}}<span class=\\\"appstle_formattedPrepaidPerDeliveryPriceText\\\"> ({{{formattedPrepaidPerDeliveryPriceText}}})</span>{{/formattedPrepaidPerDeliveryPriceText}}\\n </div>\\n \\n </label>\\n {{/prepaidFlag}}\\n \\n </div>\\n {{/sellingPlanVariants}}\\n{{/showSubOptionBeforeOneTime}}\\n </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\">{{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n <path\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n ></path>\\n </svg>\\n <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n </div>\\n<div class=\\\"appstle_tooltip appstle_tooltip_hover\\\">\\n <div class=\\\"appstle_tooltip_content\\\">\\n {{{toolTipDescription}}}\\n </div>\\n {{#showAppstleLink}}\\n <div class=\\\"appstle_tooltip_appstle\\\">\\n <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n POWERED BY APPSTLE\\n </a>\\n </div>\\n{{/showAppstleLink}}\\n </div>\\n{{/showTooltip}}\\n<style>.widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 0.5rem;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\n}\\n.widgetSellingPlanWrapper input {\\n display: none;\\n}\\n.widgetSellingPlanWrapper label {\\n border-radius: 8px;\\n border: 1px solid rgba(var(--color-foreground));\\n padding: 0.5rem;\\n display: flex;\\n justify-content: center;
4773\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\ncursor: pointer;\\ncolor: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border: 1px solid rgba(var(--color-background)) !important;\\n}\\n.appstle_lowercase {\\n text-transform: lowercase;\\n}\\n.appstle_input_wrapper {\\n position: relative;\\n}\\nspan.appstle_sellingPlan_discountText {\\n position: absolute;\\n background-color: color: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border-radius: 3px;\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n}\\nspan.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price {\\n color: rgba(var(--color-foreground));\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\n color: rgba(var(--color-foreground));\\n text-decoration: line-through;\\n padding: 0 3px;\\n}\\n#appstle_subscription_widget0 .appstle_tooltip_wrapper {\\n margin-top: 8px;\\n margin-bottom: 16px;\\n}\\n.appstle_subscription_wrapper {\\n border: none !important;\\n}\\nlabel.appstle_widget_three {\\n display: flex;\\n flex-direction: column;\\n}\\n.widgetSellingPlanWrapper input:checked+label span {\\n color: rgba(var(--color-background)) !important;\\n}\\n.appstle_sub_widget .appstle_subscription_wrapper{\\n border-radius:unset !important;\\n}\\nspan.appstle_second_price_block:empty {\\n display: none !important;\\n}\\n</style>\\n</div>{% endraw %}\",\"WIDGET_TYPE_4\":\"{% raw %}<div id=\\\"appstle-widget-template\\\">\\n <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n <div class=\\\"widgetSellingPlanWrapper\\\">\\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n {{oneTimePuchaseText}}\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}/{{{oneTimeFrequencyText}}}</span>\\n </label>\\n </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n {{#sellingPlanVariants}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n <span class=\\\"appstle_sellingPlan_discountText\\\">{{{formattedDiscountText}}}</span>\\n <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n{{^prepaidFlag}}\\n <label for=\\\"{{sellingPlanId}}\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}<span>\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_formattext_block\\\">/{{{sellingPlanFrequencyText}}}{{#isFrequencySubsequent}}{{/isFrequencySubsequent}}</span>\\n</div>\\n </label>\\n{{/prepaidFlag}}\\n{{#prepaidFlag}}\\n<label for=\\\"{{sellingPlanId}}\\\">\\n {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block appstle_formattedPrepaidPerDeliveryPriceText\\\"> {{{formattedPrepaidPerDeliveryPriceText}}}</span>\\n</div>\\n</label>\\n{{/prepaidFlag}}\\n </div>\\n {{/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n <div class=\\\"appstle_input_wrapper\\\">
4773\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n {{oneTimePuchaseText}}\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}/{{{oneTimeFrequencyText}}}</span>\\n </label>\\n </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\"> {{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n <path\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n ></path>\\n </svg>\\n <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n </div>\\n <div class=\\\"appstle_tooltip\\\">\\n <div class=\\\"appstle_tooltip_content\\\">\\n {{{toolTipDescription}}}\\n </div>\\n{{#showAppstleLink}}\\n <div class=\\\"appstle_tooltip_appstle\\\">\\n <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n POWERED BY APPSTLE\\n </a>\\n </div>\\n{{/showAppstleLink}}\\n </div>\\n{{/showTooltip}}\\n<style>\\n.widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 16px;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\nmargin-top: 10px\\n}\\n.widgetSellingPlanWrapper input {\\n display: none;\\n}\\n.widgetSellingPlanWrapper label {\\n border-radius: 10px;\\n border: 1px solid rgba(var(--color-foreground, 0, 0, 0));\\n padding: 0.5rem;\\n display: flex !important;\\n flex-direction: column;\\n justify-content: center;
4773\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\ncursor: pointer;\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground, 0, 0, 0));\\n}\\n.appstle_lowercase {\\n text-transform: lowercase;\\n}\\n.appstle_input_wrapper {\\n position: relative;\\n}\\nspan.appstle_sellingPlan_discountText {\\n position: absolute;\\n font-size: 1.2rem;\\n background-color: rgba(var(--color-foreground, 0, 0, 0));\\n color: rgba(var(--color-background, 255, 255, 255));\\n border-radius: 3px;\\n border: 2px solid rgba(var(--color-background, 255, 255, 255));\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n}\\nspan.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\ntext-decoration: line-through;\\n}\\n.appstle_tooltip_wrapper {\\n margin-bottom:10px;\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground, 0, 0, 0));\\n color: rgba(var(--color-background, 255, 255, 255));\\n border: 2px solid rgba(var(--color-background, 255, 255, 255)) !important;\\n}\\n</style>\\n</div>{% endraw %}\",\"WIDGET_TYPE_5\":\"{% raw %}<div id=\\\"appstle-widget-template\\\">\\n <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n <div class=\\\"widgetSellingPlanWrapper\\\">\\n{{^showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}/>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n {{{oneTimePuchaseText}}}\\n </label>\\n \\n </div>\\n{{/requires_selling_plan}}\\n{{/showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}} />\\n <label for=\\\"{{sellingPlanId}}\\\">\\n {{{name}}}\\n </label>\\n \\n </div>\\n {{/sellingPlanVariants}}\\n{{#showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n <div class=\\\"appstle_input_wrapper\\\">\\n <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}/>\\n <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n {{{oneTimePuchaseText}}}\\n </label>\\n \\n </div>\\n{{/requires_selling_plan}}\\n{{/showSubOptionBeforeOneTime}}\\n </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\">{{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n <path\\n d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8
4773635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n ></path>\\n </svg>\\n <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n </div>\\n<div class=\\\"appstle_tooltip appstle_tooltip_hover\\\">\\n <div class=\\\"appstle_tooltip_content\\\">\\n {{{toolTipDescription}}}\\n </div>\\n {{#showAppstleLink}}\\n <div class=\\\"appstle_tooltip_appstle\\\">\\n <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n POWERED BY APPSTLE\\n </a>\\n </div>\\n {{/showAppstleLink}}\\n </div>\\n{{/showTooltip}}\\n <style>\\n .widgetSellingPlanWrapper {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 8px;\\n grid-auto-rows: 1fr;\\n margin-bottom: 6px;\\n margin-top: 10px;\\n }\\n \\n .widgetSellingPlanWrapper input {\\n display: none;\\n }\\n \\n .widgetSellingPlanWrapper label {\\n border-radius: 4px;\\n border: 1px solid rgba(var(--color-foreground));\\n padding: 0.5rem;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n display: block;\\n height: 100%;\\n width: 100%;\\n text-align: center;\\n \\t color: rgba(var(--color-foreground));\\ncursor: pointer;\\n }\\n \\n .widgetSellingPlanWrapper input:checked+label {\\n background-color: rgba(var(--color-foreground));\\n \\t color: rgba(var(--color-background));\\n }\\n .appstle_lowercase {\\n text-transform: lowercase;\\n }\\n \\n \\n .appstle_input_wrapper {\\n position: relative;\\n }\\n \\n span.appstle_sellingPlan_discountText {\\n position: absolute;\\n background-color: rgba(var(--color-foreground));\\n color: rgba(var(--color-background));\\n border-radius: 3px;\\n padding: 1px 18px;\\n left: 50%;\\n display: block;\\n transform: translate(-50%, -50%);\\n white-space: nowrap;\\n }\\n span.appstle_sellingPlan_discountText:empty {\\n display: none !important;\\n }\\n </style>\\n </div>{% endraw %}\"}", 4774 4775 4776 "bundle": {}, 4777 4778 4779 "labels": `{\"appstle.subscription.wg.noSubscriptionLabelTextV2\":\"No Subscription\",\"appstle.subscription.wg.cancelAnytimeLabelTextV2\":\"Cancel Anytime\",\"appstle.subscription.wg.addToShipmentErrorTextV2\":\"Error\",\"appstle.subscription.wg.weeksFrequencyTextV2\":\"Weeks\",\"appstle.subscription.wg.weeklyLabelTextV2\":\"Weekly\",\"appstle.subscription.wg.displayAddToExistingSubscriptionButtonForNotLoggedInV2\":\"false\",\"appstle.subscription.wg.addToShipmentProcessingV2\":\"Processing...\",\"appstle.subscription.wg.showWidgetStaticV2\":\"false\",\"appstle.subscription.wg.deliveryEveryFrequencyTextV2\":\"Delivery Every\",\"appstle.subscription.wg.subscribeAndSaveInitalV2\":\"Subscribe & save\",\"appstle.subscription.wg.allowRefreshOnCartPageV2\":\"false\",\"appstle.subscription.wg.prepaidLabelTextV2\":\"Prepaid\",\"appstle.subscription.wg.daysFrequencyTextV2\":\"Days\",\"appstle.subscription.wg.monthlyLabelTextV2\":\"Monthly\",\"appstle.subscription.wg.subscribeAndSaveSuccessV2\":\"Subscribe success\",\"appstle.subscription.wg.addToShipmentSuccessTextV2\":\"Success\",\"appstle.subscription.wg.monthFrequencyTextV2\":\"Month\",\"appstle.subscription.wg.addToShipmentButtonTextV2\":\"Add to Shipment\",\"appstle.subscription.wg.displayAddToExistingSubscriptionButtonToSubscribersOnlyV2\":\"false\",\"appstle.subscription.wg.yearsFrequencyTextV2\":\"Years\",\"appstle.subscription.wg.onetimeDescriptionTextV2\":\"\",\"appstle.subscription.wg.addToShipmentTooltipTextV2\":\"Please avoid double delivery charges! Login to add this product to an upcoming delivery.\",\"appstle.subscription.wg.weekFrequencyTextV2\":\"Week\",\"appstle.subscription.wg.oneTimePurchaseTextV2\":\"One Time Purchase\",\"appstle.subscription.wg.loyaltyPerkDescriptionTextV2\":\"{{#isDiscountTypeFreeProduct}}<div style='display: flex;'><div style='height: 60px; width: 60px; flex-shrink: 0; margin-right: 10px;'><img style='width: 100%' src={{{featured_image}}}><\/img><\/div><div>After {{{billingCycleBlock}}} orders,<span style='color: #ffc000;font-weight: 700;';> get a FREE {{freeProductName}} <\/span><\/div><div>{{\/isDiscountTypeFreeProduct}}{{#isDiscountTypePercentage}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>
4779get <span style='color: #ffc000;font-weight: 700;';>{{{discount}}}% OFF your entire order<\/span><\/span>.{{\/isDiscountTypePercentage}}{{#isDiscountTypeShipping}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>shipping at {{{formatDiscountedPrice}}}<\/span><\/span>.{{\/isDiscountTypeShipping}}{{#isDiscountTypeFixed}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>{{{formatDiscountedPrice}}} OFF your entire order<\/span><\/span>.{{\/isDiscountTypeFixed}}\",\"appstle.subscription.wg.unsubscribeFrequencyTextV2\":\"unsubscribe\",\"appstle.subscription.wg.widgetVariantChangeListenerSelectorV2\":\"\",\"appstle.subscription.wg.oneTimeFrequencyTextV2\":\"One Time\",\"appstle.subscription.wg.dayFrequencyTextV2\":\"day\",\"appstle.subscription.wg.allowFulfilmentCountViaPropertiesV2\":\"false\",\"appstle.subscription.wg.monthsFrequencyTextV2\":\"Months\",\"appstle.subscription.wg.prepaidSaveBadgeTextV2\":\"SAVE {{selectedDiscountPercentage}}\",\"appstle.subscription.wg.showPrepidPerDeliveryProductPriceV2\":\"false\",\"appstle.subscription.wg.manageSubscriptionButtonTextV2\":\"Manage Subscription\",\"appstle.subscription.wg.offFrequencyTextV2\":\"Off\",\"appstle.subscription.wg.yearFrequencyTextV2\":\"Year\",\"appstle.subscription.wg.prepayLabelTextV2\":\"Prepay\",\"appstle.subscription.wg.productPageUnitPriceSelectorV2\":\"\",\"appstle.subscription.wg.frequencyCombinedWidgetTextV2\":\"Frequency\",\"appstle.subscription.wg.showNewLoyaltyUI\":\"false\",\"appstle.subscription.wg.widgetPriceChangeListenerSelectorV2\":\"\",\"appstle.subscription.wg.sellingPlanTitleTextNonPrepaid\":\"{{sellingPlanName}}\",\"appstle.subscription.wg.selectDeliverOptionV2\":\"select deliver option\",\"appstle.subscription.wg.yearlyLabelTextV2\":\"Yearly\"}`, 4780 4781 "css": { 4782 "appstle_subscription_widget": { 4783 "margin-top": "" , 4784 "margin-bottom": "", 4785 }, 4786 4787 "appstle_subscription_wrapper": { 4788 "border-width": "", 4789 "border-color": "", 4790 }, 4791 4792 "appstle_circle": { 4793 "border-color": "", 4794 }, 4795 4796 "appstle_dot": { 4797 "background-color": "", 4798 }, 4799 4800 "appstle_select": { 4801 "padding-top": "", 4802 "padding-bottom": "", 4803 "padding-left": "", 4804 "padding-right": "", 4805 "border-width": "", 4806 "border-style": "", 4807 "border-color": "", 4808 "border-radius": "", 4809 }, 4810 4811 "tooltip_subscription_svg": { 4812 "fill": "", 4813 }, 4814 4815 "appstle_tooltip": { 4816 "color": "", 4817 "background-color": "", 4818 }, 4819 4820 "appstle_tooltip_border_top_color": { 4821 "border-top-color": "", 4822 }, 4823 4824 "appstle_subscription_final_price": { 4825 "color": "", 4826 }, 4827 "appstle_widget_text_color": { 4828 "color": "", 4829 }, 4830 "appstle_selected_background": { 4831 "background": "transparent", 4832 }, 4833 "elementCSS": "[]", 4834 "customCSS": "span.appstle_subscription_compare_amount.transcy-money{\ndisplay: none !important;\n}", 4835 "customerPortalCss": "", 4836 "externalStyleTag": "", 4837 "themeCss": "", 4838 } 4839 }; 4840 4841 4842 window.AppstleSubscription = window.AppstleSubscription || JSON.parse(JSON.stringify(RS)); 4843 4844 sessionStorage['appstleSubscriptionConfig'] = JSON.stringify(RS.Config); 4845 4846 4847 try { 4848 4849 window.appstle_build_a_box_labels = {"perDeliveryLabelTextV2":"\\/delivery","variantNotAvailable":"Not Available","saveDiscountText":"{{discount}}","bundleSummaryTextV2":"Your bundle is empty. Please add products to your bundles to see bundle summary here.","freeProductLabelTextV2":"Free","bundleDescriptionTextV2":"Our bundle of all bundles, The Ultimate Superfood Bundle delivers exactly what it promises - a complete superfood solution. With 7 superfood blends each created to empower every aspect of your health and wellbeing - from immunity and gut health to energy & better focus.","productDetails":"Product Details","failedToAddMsgText":"Your cart can't have more than {{maxProduct}}
4849 products","cart":"Cart","reviewBundleTextV2":"Review Bundle","addButtonText":"Add","minimumQuantityToCheckoutV2":"Minimum {{quantity}} quantity to checkout","continueShopping":"Continue Shopping","failedToAddTitleText":"Failed to add","spendAmountGetDiscount":"Spend {{amount}} get {{percent}}% discount","maxiumQuantityToCheckoutV2":"Maxium {{quantity}} quantity to checkout","contentsOnModalTextV2":"Contents","nextStepButtonTextV2":"Next Step","choosePlanLifeStyleTextV2":"Choose a plan to match your lifestyle","selectMinimumProductButtonText":"Please select {{minProduct}} minimum product","subtotal":"Subtotal","buyQuantityGetDiscount":"Buy {{quantity}} get {{percent}}% discount","loyaltyTablePercentageTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>{{discount}}% off<\\/span><\\/span>.","loyaltyTablePriceTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get at <span class='appstle-loyalty-discount-amount'>{{price}}<\\/span><\\/span>.","myDeliveryText":"My {{selectedSellingPlanDisplayName}} delivery","removeItem":"Remove","productsToProceedText":"Please select products to proceed","previousStepButtonTextV2":"Previous step","loadMoreTextV2":"Load more","selectedFrequencyLabelText":"Selected Frequency","addToCartButtonTextV2":"Add To Cart","basePriceFormatFieldV2":"{{unitPrice}}\\/{{quantityUnit}}","title":"Build-A-Box","productPriceFormatField":"{{price}}","reviewOrdeDescriptionTextV2":"Check your items and select your required frequency plan","quantityLabelV2":"Quantity","minimumOrderAmountLabelTextV2":"Minimum order amount {{minOrderAmount}}.","subscriptionNotAvailableButtonV2":"Subscription not available","shoppingCart":"Shopping Cart","checkoutMessage":"Shipping and taxes calculated at checkout.","discountPopupCheckoutMessageV2":"Discount","selectedButtonTextV2":"Selected","congratsMessageText":null,"okBtnText":"Ok","tieredDiscount":"Tiered Discount","choosePlanLifeStyleDescriptionTextV2":"Cutoff each week to amend your meals is midnight on Thursday's. (Delivery Schedule is as follows: Gold Coast - Mondays | Brisbane & Sunshine Coast - Wednesdays)","orderNoteLabelTextV2":"Order Note","minimumToCheckoutV2":"Minimum {{quantity}} to checkout","loyaltyTableFixedTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>{{price}} off<\\/span><\\/span>.","editQuantity":"Edit Quantity","chooseProductsTextV2":"Choose Products","loyaltyTableFreeProductTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>FREE PRODUCT ({{productName}})<\\/span><\\/span>.","loyaltyTableShippingTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>shipping at {{price}}<\\/span><\\/span>.","spentText":null,"quantityLabel":null,"addButtonV2":"Add","loyaltyTableFreeTrailTextV2":"Get <span class='appstle-loyalty-free-trial-discount'>{{discount}} <span class='appstle-loyalty-free-trial-discount-count' style='text-transform: lowercase;'>{{discountType}} <\\/span><\\/span> <span class='appstle-loyalty-free-trial-text'>free trial.<\\/span>","bundleCheckoutTextV2":"Checkout","reviewOrderTextV2":"Review Order","goBackButtonText":"Go Back","selectPlanTextV2":"Select Plan","viewProduct":"View Product","oneTimePurchaseTextV2":"One Time Purchase","bundleOnModalTextV2":"Bundle","proceedToCheckoutButtonText":"Proceed to checkout","pleaseWaitLabelTextV2":"Please wait...","typeToSearchPlaceholderTextV2":"Type to search","selectedProgressLabelTextV2":"Selected","outOfStockTextV2":"Out of stock"}; 4850 4851 } catch (e) { 4852 console.error("Error parsing build a box labels:", e); 4853 } 4854 4855 4856 var _RSConfig = _RSConfig || {}; 4857 4858 _RSConfig.shop = 'c820c3-2.myshopify.com'; 4859 4860 4861 4862 4863 4864 4865 _RSConfig.shopMoneyFormat = '${{amount}}'; 4866 _RSConfig.shopMoneyFormatWithCurrencyFormat = '${{amount}} USD'; 4867 4868 4869 4870 4871 } 4872 4873 4874 4875 _RSConfig.assetRev = "59ee67d0b557cd5e11e563d47cf9df63"; 4876 4877 4878</script>
4878 4879 4880<style id="appstle-payment-button-override"> 4881 .shopify-payment-button {display: none;} 4882</style>
4883<script> 4884 let appstleCount = 0 4885 function isAppstleJSInitiated() { 4886 appstleCount++; 4887 if (window?.["RSConfig"] || appstleCount > 20) { 4888 let appstleStyleElement = document.querySelector('#appstle-payment-button-override'); 4889 if (appstleStyleElement) { 4890 appstleStyleElement.remove(); 4891 } 4892 } else { 4893 setTimeout(isAppstleJSInitiated, 500) 4894 } 4895 } 4896 isAppstleJSInitiated(); 4897</script>
4897 4898 4899<style> 4900 4901</style>
4902<script> 4903 function pollAppstleInit() { 4904 if (window?.appstleInit) { 4905 window?.appstleInit() 4906 } else { 4907 setTimeout(pollAppstleInit, 30); 4908 } 4909 } 4910</script>
4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928
4928<script src="https://subscription-admin.appstle.com/assets/js/appstle-subscription.min.js?shop=c820c3-2.myshopify.com&v=1784182483761" defer ></script>
4928 4929 4930 4931 4932 4933 4934 4935 4936 4937</div>
4937<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4937 4938</body>
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.